Jeremy Fitzhardinge wrote: > If we're running under Xen, then there's no VT console. This results > in vc->vc_screenbuf_size == 0, which causes alloc_bootmem to panic. > Don't bother allocating a vc_screenbuf if its going to be 0 sized.
NAK. The *real* problem is that the real-mode boot code never ever runs, thus SCREEN_INFO is not initialized (all zeros), and vgacon doesn't catch that case. Instead it thinks it runs on a EGA card with 0 lines and 0 columns. So better fix vgacon to catch this and switch to the 80x25 dummy console instead, patch attached. cheers, Gerd
--- drivers/video/console/vgacon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: paravirt-2.6.20-hg749/drivers/video/console/vgacon.c =================================================================== --- paravirt-2.6.20-hg749.orig/drivers/video/console/vgacon.c +++ paravirt-2.6.20-hg749/drivers/video/console/vgacon.c @@ -372,7 +372,8 @@ static const char *vgacon_startup(void) } /* VGA16 modes are not handled by VGACON */ - if ((ORIG_VIDEO_MODE == 0x0D) || /* 320x200/4 */ + if ((ORIG_VIDEO_MODE == 0x00) || /* SCREEN_INFO not initialized */ + (ORIG_VIDEO_MODE == 0x0D) || /* 320x200/4 */ (ORIG_VIDEO_MODE == 0x0E) || /* 640x200/4 */ (ORIG_VIDEO_MODE == 0x10) || /* 640x350/4 */ (ORIG_VIDEO_MODE == 0x12) || /* 640x480/4 */