2004-06-30 04:22:36

by twl

[permalink] [raw]
Subject: 2.6.7 oops in psmouse/serio while booting

The panic happens in psmouse_interrupt. It doesn't happen every time I boot,
but it happens about half of the time. It doesn't happen with 2.6.6.

I have a USB mouse, but the input driver initially seems to think it has found
a serial PS/2 mouse.

When it boots ok, I see this:

mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
input: PS/2 Generic Mouse on isa0060/serio1
<snip>
input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-0000:00:1d.0-1

When it panics, I see this:

mice: PS/2 mouse device common for all mice
serio: i8042 AUX port at 0x60,0x64 irq 12
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 00000000
Oops: 0000 [#1]
PREEMPT SMP
Modules linked in:
CPU: 1
EIP: 0060:[<00000000>] Not tainted
EFLAGS: 00010206 (2.6.7)
EIP is at 0x0
eax: 00000001 ebx: c15d3000 ecx: 00000000 edx: 000000fa
esi: 000000fa edi: c035b4a0 ebp: 00000001 esp: c15fde4c
ds: 007b es: 007b ss: 0068
Process swapper (pid: 1, threadinfo=c15fc000 task=c15ff670)
Stack: c025593c c15d3000 00000000 00000000 00000000 fffb91fa 00000000 c0257db6
c035b4a0 000000fa 00000000 00000000 fa00003d 0000003d c02584d6 c035b4a0
000000fa 00000000 00000000 ffffff3d 00000000 00000246 c0258203 00000000
Call Trace:
[<c025593c>] psmouse_interrupt+0x88/0x298
[<c0257db6>] serio_interrupt+0x66/0x6c
[<c02584d6>] i8042_interrupt+0xba/0x148
[<c0258203>] i8042_command+0xbf/0xc8
[<c02582a2>] i8042_aux_write+0x3a/0x4c
[<c0255bce>] psmouse_sendbyte+0x82/0x88
[<c0255d3f>] psmouse_command+0x16b/0x188
[<c0256991>] ps2pp_init+0x25/0x238
[<c0256012>] psmouse_extensions+0xde/0x188
[<c02563f1>] psmouse_connect+0xe9/0x224
[<c0257a4c>] serio_find_dev+0x4c/0x50
[<c0257dda>] serio_register_port+0x1e/0x30
[<c03bfa49>] i8042_port_register+0x45/0x64
[<c03bfc5b>] i8042_init+0x15f/0x168
[<c03a484b>] do_initcalls+0x27/0xa4
[<c01004dc>] init+0xe8/0x234
[<c01003f4>] init+0x0/0x234
[<c0104221>] kernel_thread_helper+0x5/0xc

Code: Bad EIP value.
<0>Kernel panic: Attempted to kill init!



--
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm


2004-06-30 05:26:05

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: 2.6.7 oops in psmouse/serio while booting

On Tuesday 29 June 2004 11:22 pm, [email protected] wrote:
> The panic happens in psmouse_interrupt. It doesn't happen every time I boot,
> but it happens about half of the time. It doesn't happen with 2.6.6.
>
> I have a USB mouse, but the input driver initially seems to think it has found
> a serial PS/2 mouse.
>
> When it boots ok, I see this:
>
> mice: PS/2 mouse device common for all mice
> serio: i8042 AUX port at 0x60,0x64 irq 12
> input: PS/2 Generic Mouse on isa0060/serio1
> <snip>
> input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-0000:00:1d.0-1
>
> When it panics, I see this:
>
> mice: PS/2 mouse device common for all mice
> serio: i8042 AUX port at 0x60,0x64 irq 12
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> printing eip:

Hi,

Could you please try the patch below?

--
Dmitry

===== drivers/input/mouse/psmouse-base.c 1.65 vs edited =====
--- 1.65/drivers/input/mouse/psmouse-base.c 2004-06-28 23:00:50 -05:00
+++ edited/drivers/input/mouse/psmouse-base.c 2004-06-30 00:13:58 -05:00
@@ -717,13 +717,14 @@
goto out;
}

+ /* Install default protocol handler (may be overriden later) */
+ psmouse->protocol_handler = psmouse_process_byte;
+
psmouse->type = psmouse_extensions(psmouse, psmouse_max_proto, 1);
if (!psmouse->vendor)
psmouse->vendor = "Generic";
if (!psmouse->name)
psmouse->name = "Mouse";
- if (!psmouse->protocol_handler)
- psmouse->protocol_handler = psmouse_process_byte;

sprintf(psmouse->devname, "%s %s %s",
psmouse_protocols[psmouse->type], psmouse->vendor, psmouse->name);

2004-06-30 15:24:24

by twl

[permalink] [raw]
Subject: Re: 2.6.7 oops in psmouse/serio while booting

> Hi,
>
> Could you please try the patch below?
>
> --
> Dmitry
>

Dmitry,

Thanks for the quick response. That fixed it.

FYI, I still get
input: PS/2 XXX Mouse on isa0060/serio1
I booted 10 times, and "XXX" was "Generic" 7 times and "Logitech" 3 times.
But no more oops. :^)

Tom

--
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm

2004-06-30 15:59:23

by Dmitry Torokhov

[permalink] [raw]
Subject: RE: 2.6.7 oops in psmouse/serio while booting

Hi Tom,
> > Hi,
> >
> > Could you please try the patch below?
> >
> > --
> > Dmitry
> >
>
> Dmitry,
>
> Thanks for the quick response. That fixed it.
>
> FYI, I still get
> input: PS/2 XXX Mouse on isa0060/serio1
> I booted 10 times, and "XXX" was "Generic" 7 times and "Logitech" 3 times.

This is still bad, I would prefer your Logitech mouse be identified
as such every time. Could you please try changing #undef DEBUG to
#define DEBUG in drivers/input/serio/i8042.c nad sending me 2 dmesg
oputputs - one when the mouse identified as "Generic" and one where
it is identified as "Logitech" - maybe I will see somethng there.
You might need log_buf_size=131072 kernel option to capture entire
dmesg and use "dmesg -s 131072" to dump it.

You can send the logs directly to me to not litter the mailing list.

> But no more oops. :^)
This is good ;) Still it was somewhat a stop-gap measure - something
else is going on - it was not supposed to hit that place in the
code yet.

Thank you for testing my patch.

--
Dmitry

2004-06-30 20:10:31

by twl

[permalink] [raw]
Subject: RE: 2.6.7 oops in psmouse/serio while booting

> Ok, it seemd that your BIOS having some issues with USB legacy
> emulation (oh-so-common-story). Could you please try compiling
> psmouse as a module and load it _after_ all yur USB modules.
> Does it get rid of phanthom mouse? If it does could you please
> CC LKML so that the interested parties will know that the mistery
> has been resolved? ;)
>
> --
> Dmitry
>

Yes, that did the trick. The phantom PS/2 mouse is gone. And I can still use
either a USB mouse or a PS/2 mouse. (It even boots a couple of seconds faster
without the inital probe for the PS/2 mouse).

Thanks.

Tom

--
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm