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

[Xen-devel] Re: Crash when booting 32-bit kernel with pvgrub



Jeremy Fitzhardinge, le Fri 14 Aug 2009 15:44:49 -0700, a écrit :
> I'm trying to boot a 32-bit PV guest on a 64-bit xen+dom0 system, and it
> crashes as soon as I select a kernel:
> 
> 
>   Booting 'Fedora (2.6.27.19-170.2.35.fc10.i686.PAE)'
> 
> root (hd0,0)
> Error ENOENT when reading the backend path device/vkbd/0/backend

I guess you do not have pvfb enable?

> Page fault at linear address 0x1c, eip 0x4b6ee, regs 0xb4ff7c, sp 0xb4fff0, 
> our_sp 0xb4ff50, code 2
> Thread: kbdfront

Oops, dev->backend isn't allocated at this point and dev isn't zeroed,
here is a patch.

Samuel


Zero kbdfront and fbfront dev structures to fix free_kbdfront() and
free_fbfront() on error.

Signed-Off-By: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

diff -r 41b2c4e4f674 extras/mini-os/fbfront.c
--- a/extras/mini-os/fbfront.c  Wed Jul 29 09:20:46 2009 +0100
+++ b/extras/mini-os/fbfront.c  Mon Aug 17 14:45:43 2009 +0200
@@ -80,6 +80,7 @@
     printk("******************* KBDFRONT for %s **********\n\n\n", nodename);
 
     dev = malloc(sizeof(*dev));
+    memset(dev, 0, sizeof(*dev));
     dev->nodename = strdup(nodename);
 #ifdef HAVE_LIBC
     dev->fd = -1;
@@ -403,6 +404,7 @@
     printk("******************* FBFRONT for %s **********\n\n\n", nodename);
 
     dev = malloc(sizeof(*dev));
+    memset(dev, 0, sizeof(*dev));
     dev->nodename = strdup(nodename);
 #ifdef HAVE_LIBC
     dev->fd = -1;

_______________________________________________
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®.