Re: 2.6.7-mm6

From: Vojtech Pavlik
Date: Wed Jul 07 2004 - 11:32:27 EST


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@xxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/