I've found and fixed the bug. Submitting to mailing list and attaching patch here too.
Subject: [PATCH] UBUNTU: SAUCE: iwl3945: Don't queue rfkill_poll work when module is exiting Bug: #345710 When the wireless interface is active and the iwl3945 module is unloaded the call to ieee80211_unregister_hw() would call iwl3945_mac_stop() which would restart the delayed workqueue for rfkill_poll. That workqueue had already been cancelled so when the next work item was run (2 seconds later) the system would suffer a hard lock-up because the module had been unloaded by then. This patch implements STATUS_EXIT_PENDING checks in places where the rfkill_poll work is scheduled, and moves the final workqueue cancellation to occur after the call to ieee80211_unregister_hw(). Bug discovered, experienced and fix tested on my PC. Signed-off-by: TJ <[email protected]> ** Attachment added: "Don't schedule delayed work when module is exiting" http://launchpadlibrarian.net/24291905/0001-UBUNTU-SAUCE-iwl3945-Don-t-queue-rfkill_poll-work.patch ** Changed in: linux (Ubuntu) Importance: Undecided => High ** Changed in: linux (Ubuntu) Status: Incomplete => In Progress ** Changed in: linux (Ubuntu) Milestone: None => ubuntu-9.04-beta Assignee: (unassigned) => TJ (intuitivenipple) -- modprobe -r iwl3945 causes total system freeze https://bugs.launchpad.net/bugs/345710 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
