[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xencons missing string allocation
I was trying to boot dom0 w/ "xencons=ttyS1 console=ttyS1". It gives some weird error messages: Warning: dev (ttyS2) tty->count(2) != #fd's(1) in release_dev Warning: dev (ttyS2) tty->count(3) != #fd's(1) in tty_open And blows up with a page fault. The page fault is because we don't actually allocate a buffer for the tty driver name. The patch below fixes that problem. Using xencons=ttyS1 still doesn't quite work and prints lots of the above error messages, but at least it doesn't crash dom0 now. Patch vs xen-unstable.hg. Thanks, Alex Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- diff -r 53cff3f88e45 linux-2.6-xen-sparse/drivers/xen/console/console.c --- a/linux-2.6-xen-sparse/drivers/xen/console/console.c Fri Dec 9 11:05:06 2005 +++ b/linux-2.6-xen-sparse/drivers/xen/console/console.c Fri Dec 9 11:12:04 2005 @@ -641,11 +641,23 @@ if (xc_mode == XC_SERIAL) { - DRV(xencons_driver)->name = "ttyS"; + DRV(xencons_driver)->name = kmalloc(strlen("ttyS") + 1, + GFP_KERNEL); + if (!DRV(xencons_driver)->name) { + kfree(xencons_driver); + return -ENOMEM; + } + strcpy(DRV(xencons_driver)->name, "ttyS"); DRV(xencons_driver)->minor_start = 64 + xc_num; DRV(xencons_driver)->name_base = 0 + xc_num; } else { - DRV(xencons_driver)->name = "tty"; + DRV(xencons_driver)->name = kmalloc(strlen("tty") + 1, + GFP_KERNEL); + if (!DRV(xencons_driver)->name) { + kfree(xencons_driver); + return -ENOMEM; + } + strcpy(DRV(xencons_driver)->name, "tty"); DRV(xencons_driver)->minor_start = xc_num; DRV(xencons_driver)->name_base = xc_num; } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |