[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] [IA64] Support grant_table v2 for XENMAPSPACE_grant_table
Hi, This patch is ia64 counter part of 20281:95ea2052b41b. This fixes the issue that HVM domains with PV-on-HVM drivers panic. Signed-off-by: KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx> -- KUWAMURA Shin'ya # HG changeset patch # User KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx> # Date 1266821680 -32400 # Node ID 29ae377cd6bc38562586658c62e9e6c238f9668d # Parent 077089e37ac90d9aba7fc72e16a6b8523b294db1 [IA64] Support grant_table v2 for XENMAPSPACE_grant_table This patch is ia64 counter part of 20281:95ea2052b41b. This fixes the issue that HVM domains with PV-on-HVM drivers panic. Signed-off-by: KUWAMURA Shin'ya <kuwa@xxxxxxxxxxxxxx> diff -r 077089e37ac9 -r 29ae377cd6bc xen/arch/ia64/xen/mm.c --- a/xen/arch/ia64/xen/mm.c Wed Feb 17 15:54:40 2010 +0000 +++ b/xen/arch/ia64/xen/mm.c Mon Feb 22 15:54:40 2010 +0900 @@ -3338,12 +3338,25 @@ arch_memory_op(int op, XEN_GUEST_HANDLE( case XENMAPSPACE_grant_table: spin_lock(&d->grant_table->lock); - if ((xatp.idx >= nr_grant_frames(d->grant_table)) && - (xatp.idx < max_nr_grant_frames)) - gnttab_grow_table(d, xatp.idx + 1); + if (d->grant_table->gt_version == 0) + d->grant_table->gt_version = 1; - if (xatp.idx < nr_grant_frames(d->grant_table)) - mfn = virt_to_mfn(d->grant_table->shared_raw[xatp.idx]); + if (d->grant_table->gt_version == 2 && + (xatp.idx & XENMAPIDX_grant_table_status)) + { + xatp.idx &= ~XENMAPIDX_grant_table_status; + if (xatp.idx < nr_status_frames(d->grant_table)) + mfn = virt_to_mfn(d->grant_table->status[xatp.idx]); + } + else + { + if ((xatp.idx >= nr_grant_frames(d->grant_table)) && + (xatp.idx < max_nr_grant_frames)) + gnttab_grow_table(d, xatp.idx + 1); + + if (xatp.idx < nr_grant_frames(d->grant_table)) + mfn = virt_to_mfn(d->grant_table->shared_raw[xatp.idx]); + } spin_unlock(&d->grant_table->lock); break; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |