Bug 19822
Summary: | Releasing EVIOCGRAB causes rfkill state to change | ||
---|---|---|---|
Product: | Drivers | Reporter: | Brad Jorsch (anomie) |
Component: | Platform | Assignee: | acpi_platform-drivers (acpi_platform-drivers) |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | dmitry.torokhov |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.35.7 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | Small program to trigger the bug |
This works as expected, "ungrab" returns control over input device to rfkill-input handler which synchronizes state of rfkill switches with state of input switches/keys. Using /sys/class/rfkill/*/state simultaneously with rfkill input handler is not supported. If you want to control state of rfkill switch manually, you need to "claim" it via /sys/class/rfkill/rfkillX/claim attribute, or disable input handler using IOCTL on /dev/rfkill. |
Created attachment 32632 [details] Small program to trigger the bug Hardware: Thinkpad T500 When an EVIOCGRAB is released on thinkpad_acpi's /dev/input/eventX device ("ThinkPad Extra Buttons", "thinkpad_acpi/input0"), it re-enables both the bluetooth and wireless radios if they had previously been turned off in software. I can reproduce this at will using the following method: 1. Disable either or both of the radios by writing 0 to /sys/class/rfkill/*/state. 2. Run the attached program with the appropriate device as the argument. This also seems to be present in 2.6.34 and 2.6.32.