Description of problem: When the integrated RT3090 (Bluetooth combo) is enabled in the BIOS, Fedora freezes after going through most of the systemd tasks prior to actual shutdown. The task that is shown when the system freezes varies. Version-Release number of selected component (if applicable): kernel-2.6.38.1-6.fc15.i686 kernel-PAE-2.6.38.1-6.fc15.i686 How reproducible: Every time (except when WiFi chip is disabled in BIOS). Steps to Reproduce: 1. Boot with WiFi enabled. 2. At any time, reboot, shutdown or suspend the system, for example using GDM. Actual results: Observe Fedora goes into the console, and freezes, refusing all user input, including terminal switching. Expected results: Shutdown, reboot or suspend as normal. Additional info: lspci -v: 43:00.0 Network controller: RaLink RT3090 Wireless 802.11n 1T/1R PCIe Subsystem: Hewlett-Packard Company Device 1453 Flags: bus master, fast devsel, latency 0, IRQ 19 Memory at 90700000 (32-bit, non-prefetchable) [size=64K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable- Count=1/32 Maskable- 64bit+ Capabilities: [70] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Capabilities: [140] Device Serial Number 00-00-17-2d-5b-82-2a-e0 Kernel driver in use: rt2800pci Kernel modules: rt2800pci kernel messages containing rt2800: [ 11.602278] rt2800pci 0000:43:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 [ 11.602311] rt2800pci 0000:43:00.0: setting latency timer to 64
Does it hung when iptables script stop? Can you install kernel-debug and see if there are some additional messages when you rmmod the module or do "/etc/init.d/iptables stop" (or corresponding systemd action that disable iptables) ?
(In reply to comment #1) > Does it hung when iptables script stop? Can you install kernel-debug and see if The machine does not hang when I stop iptables using 'service iptables stop' (which invokes systemd). There are no additional messages when I stop or start iptables, with kernel-debug installed. > there are some additional messages when you rmmod the module or do > "/etc/init.d/iptables stop" rmmod rt2800pci freezes the machine immediately; if there are additional messages, I can't type dmesg to see them.
Please do (as root): $ echo "kernel.panic_on_oops = 1" >> /etc/sysctl.conf $ sysctl -p /etc/sysctl.conf then login on virtual terminal (eg. Ctrl+Alt+F2), reproduce the problem and take a photo of messages that will show up.
(In reply to comment #3) > $ echo "kernel.panic_on_oops = 1" >> /etc/sysctl.conf > $ sysctl -p /etc/sysctl.conf > > then login on virtual terminal (eg. Ctrl+Alt+F2), reproduce the problem and > take a photo of messages that will show up. With that sysctl enabled, and executing `rmmod rt2800pci', no messages are printed on the screen; there is only what I typed, and no new input is accepted.
Created attachment 489681 [details] photo of oops message I had to boot into single user mode with the debug kernel and enable the panic_on_oops in order to get any output at all after rmmod'ing the rt2800pci module. When following these steps, an 'oops' was printed, but the system did *not* freeze. It is perhaps worth noting that I can load and unload the module without freezing in single user mode, even with a non-debug kernel, so long as I don't enable wlan1 using ifconfig. Attaching photo.
(In reply to comment #5) > I had to boot into single user mode with the debug kernel and enable the > panic_on_oops in order to get any output at all after rmmod'ing the rt2800pci > module. When following these steps, an 'oops' was printed, but the system did > *not* freeze. typing 'modprobe rt2800pci' again after rmmod does freeze the system without further messages.
Created attachment 489682 [details] photo of second oops message I repeated the steps from Comment #5, and yielded a different oops call trace. I was able to reload the module after the oops several times without a freeze, but when I typed 'ifconfig wlan1 up' again and unloaded the module, the system froze.
Created attachment 489715 [details] 0001-rt2x00-fix-cancelling-uninitialized-work.patch I think patch will fix the problem, at least problem of hung when module is unloaded. I'm not sure if that is the same problem as suspend/reboot, I will prepare patched module to test.
Please download tarbal from http://people.redhat.com/sgruszka/rt2x00.tar.bz2, unpack it and install like below (need kernel-devel package and perhaps some other packages for compilation) $ cd rt2x00 $ make KDIR=/lib/modules/`uname -r`/build $ su -c 'make KDIR=/lib/modules/`uname -r`/build install' $ sync # to synchronize filesystems if case of reboot hang After reboot patched rt2x00 modules should be used, check them out.
(In reply to comment #9) > Please download tarbal from http://people.redhat.com/sgruszka/rt2x00.tar.bz2, > unpack it and install like below (need kernel-devel package and perhaps some > other packages for compilation) With this driver, there is no freeze when I rmmod or modprobe -r rt2800pci (ifconfig wlan1 up prior to the first rmmod). However, there *is* a freeze when I then proceed to modprobe rt2800pci after unloading it. I have not seen an oops call trace with this modified driver, unfortunately. For the end user, the end result is also the same: a reboot still freezes.
Created attachment 489879 [details] fix I spent the evening tracking this bug down. The freeze was happening while loading the EEPROM on the second load, which wasn't very helpful for finding the cause. Ultimately I found the culprit in rt2800_disable_radio(). It is conceivable that setting the power bits to zero does no harm on other devices that use this chip, but I think the chances of it being useful are pretty slim. I attempted to reset the power bits to 0x2 in the probe function, but that had no effect. It should be possible to apply this patch using git-am.
Thank you very much for debugging. We have already this commit on 2.6.39+, which do the same thing as your patch and some more: http://git.kernel.org/linus/7f6e144fb99a4a70d3c5ad5f074204c5b89a6f65 I'll will post it to stable and fedora.
(In reply to comment #12) > We have already this commit on 2.6.39+, which do the same thing as your patch > and some more: > http://git.kernel.org/linus/7f6e144fb99a4a70d3c5ad5f074204c5b89a6f65 > I'll will post it to stable and fedora. This hang fix should go into the upstream 2.6.38 stable tree as well. Thanks!
(In reply to comment #12) > http://git.kernel.org/linus/7f6e144fb99a4a70d3c5ad5f074204c5b89a6f65 > I'll will post it to stable and fedora. When do you plan to do this?
Already done, http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.38.y.git;a=commitdiff;h=d6cdf976903232d385274ffa4bbfac182b3991d6 Fedora kernel build with fix is here: http://koji.fedoraproject.org/koji/buildinfo?buildID=238906
(In reply to comment #15) > Fedora kernel build with fix is here: > http://koji.fedoraproject.org/koji/buildinfo?buildID=238906 I have tested this kernel build, and I confirm that it does not freeze when suspending or rebooting.