Seems the table_base is not initialized, otherwise, it should be 0x1, instead
of 0x f5861e4a00000001.
I checked the libxc, and seems the parameter need be cleared in libxc. I didn't
check kernel code now.
I suspect followed patch is needed (the patch is only compiled and not tested).
--jyh
diff -r 89dfe955f1c3 tools/libxc/xc_physdev.c
--- a/tools/libxc/xc_physdev.c Thu Feb 25 17:17:02 2010 +0800
+++ b/tools/libxc/xc_physdev.c Thu Feb 25 17:27:10 2010 +0800
@@ -31,6 +31,7 @@ int xc_physdev_map_pirq(int xc_handle,
if ( !pirq )
return -EINVAL;
+ memset(&map, 0, sizeof(struct physdev_map_pirq));
map.domid = domid;
map.type = MAP_PIRQ_TYPE_GSI;
map.index = index;
@@ -59,6 +60,7 @@ int xc_physdev_map_pirq_msi(int xc_handl
if ( !pirq )
return -EINVAL;
+ memset(&map, 0, sizeof(struct physdev_map_pirq));
map.domid = domid;
map.type = MAP_PIRQ_TYPE_MSI;
map.index = index;
@@ -83,6 +85,7 @@ int xc_physdev_unmap_pirq(int xc_handle,
int rc;
struct physdev_unmap_pirq unmap;
+ memset(&unmap, 0, sizeof(struct physdev_unmap_pirq));
unmap.domid = domid;
unmap.pirq = pirq;
>-----Original Message-----
>From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>[mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Jan Beulich
>Sent: Thursday, February 25, 2010 5:16 PM
>To: George Dunlap; pasik@xxxxxx
>Cc: Sander Eikelenboom; xen-devel@xxxxxxxxxxxxxxxxxxx
>Subject: Re: [Xen-devel] Crash during boot in Debian lenny default dom0 kernel
>(2.6.26-2-xen-686)
>
>>>> George Dunlap <George.Dunlap@xxxxxxxxxxxxx> 25.02.10 00:57 >>>
>>I realize dom0 is a privileged guest, but it still seems like we
>>should try not to crash Xen as a result on guest input. :-)
>
>While generally I agree, I think in the given case this is unavoidable -
>Xen could apply some sanity check, but the passing of a machine
>address from Dom0 to Xen implies that Dom0 knows what it does,
>and Xen trusts it. Specifically, struct physdev_map_pirq has this
>contents according to the trace
>
>.domid = 00007ff0
>.type = 00000000
>.index = ffffffff
>.pirq = ffffffff
>.bus = 00000000
>.devfn = 00000008
>.entry_nr = 00000000
>.table_base = f5861e4a00000001
>
>table_base would seem like not having been initialized at all. I
>would guess that they use the structure definition from before
>c/s 18323 (which had, instead of a table_base member, an
>int field indicating MSI vs. MSI-X. The original definition was
>added with c/s 17534 and 17535, but all of those changes
>happened during 3.3 development, so no-one should be using
>the old definition in released code..
>
>Jan
>
>
>_______________________________________________
>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
|