[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xencons missing string allocation
On Fri, 2005-12-09 at 13:37 -0700, Alex Williamson wrote: > On Fri, 2005-12-09 at 20:54 +0200, Muli Ben-Yehuda wrote: > > On Fri, Dec 09, 2005 at 11:37:31AM -0700, Alex Williamson wrote: > > > > > > > > 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. > > > > Errr... the patch looks curious. Why does it work when ->name points > > to the heap but not when it points to the data segment? they should be > > equivalent and many tty drivers appear to set ->name to the data > > segment. Is something trying to modify xencons_driver->name later? > > You're right, I guess a lot of tty/char drivers seem to have the name > on the heap. However, it would suggest there's a path where the name is > referenced outside of the context of that function since it prevents a > page fault. I'll keep looking to make sure I'm not just getting lucky. Ok, disregard that previous attempt, it was definitely chasing a false positive. I'm not sure this one is correct either, but I'll toss it out in case anyone else is interested in chasing this problem too. I believe the problem is that kcons_device() is incorrectly calculating the index when xc_num != 0 on serial devices. If I subtract xc_num from the console index, which should always give me 0, things work perfectly for all ttyS console values (that I've tested). I don't know if something similar needs to be done for tty devices. Patch attached, comments/suggestions welcome. 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 16:34:33 2005 @@ -168,7 +168,7 @@ static struct tty_driver *kcons_device(struct console *c, int *index) { - *index = c->index; + *index = c->index - (xc_mode == XC_SERIAL ? xc_num : 0); return xencons_driver; } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |