lkml.org 
[lkml]   [2004]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.7-mm6
    On Wed, Jul 07, 2004 at 12:15:37AM -0500, Dmitry Torokhov wrote:
    > The only suspicious thing that I see is that sunzilog tries to register its
    > serio ports with spinlock held and interrupts off. I wonder if that is what
    > causing a deadlock. Could you please try applying this patch on top of the
    > changes to the drivers/Makefile that I sent earlier.

    Shall I add this to my BK then?

    > --
    > Dmitry
    >
    >
    > ===== drivers/serial/sunzilog.c 1.44 vs edited =====
    > --- 1.44/drivers/serial/sunzilog.c 2004-06-28 22:45:23 -05:00
    > +++ edited/drivers/serial/sunzilog.c 2004-07-06 23:46:54 -05:00
    > @@ -1529,7 +1529,6 @@
    > static void __init sunzilog_init_kbdms(struct uart_sunzilog_port *up, int channel)
    > {
    > int baud, brg;
    > - struct serio *serio;
    >
    > if (channel == KEYBOARD_LINE) {
    > up->flags |= SUNZILOG_FLAG_CONS_KEYB;
    > @@ -1546,8 +1545,15 @@
    > up->curregs[R15] = BRKIE;
    > brg = BPS_TO_BRG(baud, ZS_CLOCK / ZS_CLOCK_DIVISOR);
    > sunzilog_convert_to_zs(up, up->cflag, 0, brg);
    > + sunzilog_set_mctrl(&up->port, TIOCM_DTR | TIOCM_RTS);
    > + __sunzilog_startup(up);
    > +}
    >
    > #ifdef CONFIG_SERIO
    > +static void __init sunzilog_register_serio(struct uart_sunzilog_port *up, int channel)
    > +{
    > + struct serio *serio;
    > +
    > up->serio = serio = kmalloc(sizeof(struct serio), GFP_KERNEL);
    > if (serio) {
    >
    > @@ -1576,11 +1582,8 @@
    > printk(KERN_WARNING "zs%d: not enough memory for serio port\n",
    > channel);
    > }
    > -#endif
    > -
    > - sunzilog_set_mctrl(&up->port, TIOCM_DTR | TIOCM_RTS);
    > - __sunzilog_startup(up);
    > }
    > +#endif
    >
    > static void __init sunzilog_init_hw(void)
    > {
    > @@ -1624,6 +1627,11 @@
    > }
    >
    > spin_unlock_irqrestore(&up->port.lock, flags);
    > +
    > +#ifdef CONFIG_SERIO
    > + if (i == KEYBOARD_LINE || i == MOUSE_LINE)
    > + sunzilog_register_serio(up, i);
    > +#endif
    > }
    > }
    >
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/
    >

    --
    Vojtech Pavlik
    SuSE Labs, SuSE CR
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:04    [W:4.448 / U:0.760 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site