Re: repeatable, hard lockup on boot in linux-2.6.0-test4 (moredetails)

From: Andrew Morton
Date: Mon Sep 01 2003 - 17:29:02 EST


"Dale E Martin" <dmartin@xxxxxxxxxxxxxxx> wrote:
>
> > Are you able to plug any PS/2 devices into the machine, see if that makes
> > a difference?
>
> Yes, plugging in a PS/2 mouse in addition to the USB mouse does allow the
> machine to boot up. (Just tried it, thanks for the suggestion.)

OK, don't go away yet ;)

Could you please add this patch and see how far it gets? If you're keen,
keep adding more DB() statements, narrow it down further?


drivers/input/serio/i8042.c | 23 ++++++++++++++++++-----
include/linux/kernel.h | 1 +
2 files changed, 19 insertions(+), 5 deletions(-)

diff -puN drivers/input/serio/i8042.c~a drivers/input/serio/i8042.c
--- 25/drivers/input/serio/i8042.c~a 2003-09-01 15:24:02.000000000 -0700
+++ 25-akpm/drivers/input/serio/i8042.c 2003-09-01 15:25:31.000000000 -0700
@@ -831,36 +831,49 @@ int __init i8042_init(void)
{
int i;

+ DB();
dbg_init();

+ DB();
if (i8042_platform_init())
return -EBUSY;

i8042_aux_values.irq = I8042_AUX_IRQ;
i8042_kbd_values.irq = I8042_KBD_IRQ;

+ DB();
if (i8042_controller_init())
return -ENODEV;

+ DB();
if (i8042_dumbkbd)
i8042_kbd_port.write = NULL;

- for (i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++) {
+ DB();
i8042_init_mux_values(i8042_mux_values + i, i8042_mux_port + i, i);
+ }

- if (!i8042_nomux && !i8042_check_mux(&i8042_aux_values))
- for (i = 0; i < 4; i++)
+ if (!i8042_nomux && !i8042_check_mux(&i8042_aux_values)) {
+ for (i = 0; i < 4; i++) {
+ DB();
i8042_port_register(i8042_mux_values + i, i8042_mux_port + i);
- else
- if (!i8042_noaux && !i8042_check_aux(&i8042_aux_values))
+ }
+ } else {
+ if (!i8042_noaux && !i8042_check_aux(&i8042_aux_values)) {
+ DB();
i8042_port_register(&i8042_aux_values, &i8042_aux_port);
+ }
+ }

+ DB();
i8042_port_register(&i8042_kbd_values, &i8042_kbd_port);

init_timer(&i8042_timer);
i8042_timer.function = i8042_timer_func;
mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);

+ DB();
register_reboot_notifier(&i8042_notifier);

return 0;
diff -puN include/linux/kernel.h~a include/linux/kernel.h
--- 25/include/linux/kernel.h~a 2003-09-01 15:24:02.000000000 -0700
+++ 25-akpm/include/linux/kernel.h 2003-09-01 15:25:55.000000000 -0700
@@ -236,4 +236,5 @@ extern void BUILD_BUG(void);
#define __FUNCTION__ (__func__)
#endif

+#define DB() printk("%s:%d\n", __FILE__, __LINE__)
#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/