Bug 42852

Summary: wistron_btns "breaks" -pae: floods with "Unknown key code 10", causing severe slowdown
Product: Drivers Reporter: Jani Uusitalo (jani)
Component: Input DevicesAssignee: drivers_input-devices
Status: NEW ---    
Severity: normal CC: alan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.3.0-030300rc4-generic Subsystem:
Regression: No Bisected commit-id:
Attachments: 3.3.0-030300rc4-generic-pae dmesg output on FS Amilo

Description Jani Uusitalo 2012-03-03 13:01:26 UTC
Created attachment 72532 [details]
3.3.0-030300rc4-generic-pae dmesg output on FS Amilo 

My summary's crap because this is difficult to summarize, hopefully the explanation below makes it clearer. I have little understanding of kernel internals, so I'll first just try and describe the symptom as it appears.

I've come across an issue on my Fujitsu Siemens Amilo M7400 laptop with wistron_btns that is triggered by certain kernels, and once triggered, seems to affect all subsequent attempts to reboot with -pae kernels until a non-pae kernel is booted. I initially reported this on Launchpad [1].

I can currently trigger the issue by (cold or re-) booting 3.2.0-14-pae (these are Ubuntu's packaged kernels) or by booting (for example) 3.3.0-030300rc4-generic-pae in recovery mode (= "ro recovery nomodeset"). The recovery boot seems to work normally, but the 3.2.0-14-pae boot already exhibits the failure: it seemingly freezes. (More about the exact nature of "failure" below.)

Once I've triggered the issue, rebooting with any -pae kernel fails similar to how 3.2.0-14-pae behaves irregardless of preceding boots.

I can "fix" this by booting a non-pae kernel (which never fails). After that subsequent reboots with -pae kernels (apart from 3.2.0-14-pae) no longer fail — not until I do any of the triggering actions again.

Now, the "failure" looks like a freeze, but it's actually just an extreme slowdown. With patience, I can actually have the boot finish and can inspect logs. Dmesg reveals that wistron_btns is repeating "Unknown key code 10" over and over.

If I comment wistron_btns out of /etc/modules so that it isn't loaded, the issue goes away, meaning I can no longer trigger it.

As I said, I have little understanding of kernel bugs, so what I say next may be completely off, but the way I've interpreted this is that the "brokenness" is actually hidden in the hardware, in something controlled by wistron_btns. Booting 3.2.0-14-pae/recovery booting any -pay puts the controller(?) in a "broken" state from which a -pae kernel can't recover, but a non-pae kernel can. And although -pae kernels later than 3.2.0-14 can't recover a "broken" controller, they also cannot put it into that "broken" state (which is a good turn of development).

I'll be happy to provide more info as requested. I'm attaching dmesg output for starters.

* [1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/926012