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.
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.