[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] gnttab_setup_table error case



On Wed, 2008-07-30 at 14:17 +0100, Diego Ongaro wrote:
> gnttab_setup_table should set an error status code if the gmfn it gets
> for a grant table page is invalid.
> 
> I ran into this issue when I tried to set up the grant table during hvm
> domain creation, and it caused a BUG_ON later down the line. With this
> patch, the hypercall will gracefully fail instead.

Do you use 32bit guest on top of 64bit hypervisor? In that case
op.frame_list has different size in the hypervisor and the guest, and
the BUG_ON is probably triggered because of the hypervisor ruining the
stack.

Just curious, but why we want to call setup_table in HVM in the first
place. Since HVM has its isolated address space, it will always fail. It
seems that setup_table is added to HVM because of this:
  http://lists.xensource.com/archives/html/xen-devel/2008-03/msg00927.html

At that time, calling setup_table is a guest bug and I think it's already
fixed by removing that call.

So, can we:
1. let setup_table return -ENOSYS again in HVM? or
2. call something like compat_grant_table_op instead in 32/64? or
2. add a stub in hvm_grant_table_op so that it doesn't bother calling
   {do,compat}_grant_table_op at all?

Thanks,
Qing

> 
> Signed-off-by: Diego Ongaro <diego.ongaro@xxxxxxxxxx>
> ---
> diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
> --- a/xen/common/grant_table.c
> +++ b/xen/common/grant_table.c
> @@ -913,8 +913,15 @@ gnttab_setup_table(
>      op.status = GNTST_okay;
>      for ( i = 0; i < op.nr_frames; i++ )
>      {
>          gmfn = gnttab_shared_gmfn(d, d->grant_table, i);
> +        if ( gmfn == -1 )
> +        {
> +            gdprintk(XENLOG_INFO,
> +                    "grant table gmfn unavailable\n");
> +            op.status = GNTST_general_error;
> +            goto out3;
> +        }
>          (void)copy_to_guest_offset(op.frame_list, i, &gmfn, 1);
>      }
>  
>   out3:
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.