Most recent kernel where this bug did not occur: 2.6.22.9 Distribution: Gentoo (vanilla kernel) I left my MacBook Pro alone for some minutes. Usually the Bluetooth Mouse (Apple Mighty Mouse) goes into some kind of suspend mode after some time. When I came back and moved the mouse it probably tried to reconnect. That's when I saw the OOPS in the log: Oct 13 13:20:23 mithril BUG: unable to handle kernel paging request at virtual address 00100100 Oct 13 13:20:23 mithril printing eip: Oct 13 13:20:23 mithril c02e8ec1 Oct 13 13:20:23 mithril *pde = 35b58067 Oct 13 13:20:23 mithril *pte = 00000000 Oct 13 13:20:23 mithril Oops: 0000 [#1] Oct 13 13:20:23 mithril PREEMPT SMP Oct 13 13:20:23 mithril Modules linked in: uvcvideo compat_ioctl32 videodev v4l1_compat v4l2_common fglrx(P) ndiswrapper ipv6 rfcomm sha1 video output ohci1394 appletouch Oct 13 13:20:23 mithril CPU: 0 Oct 13 13:20:23 mithril EIP: 0060:[<c02e8ec1>] Tainted: P VLI Oct 13 13:20:23 mithril EFLAGS: 00010206 (2.6.23 #6) Oct 13 13:20:23 mithril EIP is at evdev_disconnect+0x91/0xd0 Oct 13 13:20:23 mithril eax: 00000000 ebx: 000ffcf0 ecx: ffffffff edx: c23f0030 Oct 13 13:20:23 mithril esi: f5272254 edi: f5272200 ebp: f527225c esp: f5287f2c Oct 13 13:20:23 mithril ds: 007b es: 007b fs: 00d8 gs: 0000 ss: 0068 Oct 13 13:20:23 mithril Process khidpd_05ac030c (pid: 9855, ti=f5286000 task=f7f92030 task.ti=f5286000) Oct 13 13:20:23 mithril Stack: c235e800 f6657fb0 f6657800 f6657fc4 f758d400 c02e69b6 00000000 000663d4 Oct 13 13:20:23 mithril 00000000 00000003 f4313c58 f446f2c0 f4313c58 c02f9ff1 00000708 f44ee840 Oct 13 13:20:23 mithril 00000001 c03be197 00000007 00000001 0000030c f44ee8c8 f70d9478 f758d478 Oct 13 13:20:23 mithril Call Trace: Oct 13 13:20:23 mithril [<c02e69b6>] input_unregister_device+0x86/0x120 Oct 13 13:20:23 mithril [<c02f9ff1>] hidinput_disconnect+0x41/0x60 Oct 13 13:20:23 mithril [<c03be197>] hidp_session+0x477/0x580 Oct 13 13:20:23 mithril [<c01264f7>] schedule_tail+0x37/0xa0 Oct 13 13:20:23 mithril [<c01243d0>] default_wake_function+0x0/0x10 Oct 13 13:20:23 mithril [<c01243d0>] default_wake_function+0x0/0x10 Oct 13 13:20:23 mithril [<c03bdd20>] hidp_session+0x0/0x580 Oct 13 13:20:23 mithril [<c0104f8f>] kernel_thread_helper+0x7/0x18 Oct 13 13:20:23 mithril ======================= Oct 13 13:20:23 mithril Code: 00 00 00 8d bc 27 00 00 00 00 8d 83 08 04 00 00 b9 06 00 02 00 ba 1d 00 00 00 e8 fb b6 e9 ff 8b 9b 10 04 00 00 81 eb 10 04 00 00 <8b> 83 10 04 00 00 0f 18 00 90 8d 83 10 04 00 00 39 f0 75 cb 8d Oct 13 13:20:23 mithril EIP: [<c02e8ec1>] evdev_disconnect+0x91/0xd0 SS:ESP 0068:f5287f2c
This could be well solved by Dmitry's input locking patches, that will appear in 2.6.24-rc1 (and they are already in Linus' current git tree). Could you please verify whether this solves the problem you are seeing?
Indeed, they solve the OOPS. As Linus' tree didn't boot, I have applied these commits to a 2.6.23 and it works: 8006479c9b75fb6594a7b746af3d7f1fbb68f18f 6addb1d6de1968b84852f54561cc9a999909b5a9 464b241575f3700e14492e34f26bcd1794280f55 Would be nice to have them in 2.6.23.y
The patches are way too intrusive for -stable I am afraid.
Any idea what could have caused the regression then (to find a workaround for -stable)? Or is this just a race on a dual core which has been lurking there for ages but only surfaces now with the new scheduler?
You could try reverting this commit 1dfa2812404c37d7571622195f907cea3331616c but then some other boxes will break. You can't really do anything about missing locking in 2.6.23 and earlier kernels. Since my patches fixes the issue and they are now in mainline to be released with 2.6.24-rc1 I am marking this as resolved.