WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Diego Ongaro <diego.ongaro@xxxxxxxxxx>, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] gnttab_setup_table error case
From: Qing He <qing.he@xxxxxxxxx>
Date: Thu, 31 Jul 2008 10:08:28 +0800
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 30 Jul 2008 19:06:30 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <489069F3.7070200@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <489069F3.7070200@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.17+20080114 (2008-01-14)
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

<Prev in Thread] Current Thread [Next in Thread>