Bug 42122
Summary: | deadlock when using ipw2200 | ||
---|---|---|---|
Product: | Drivers | Reporter: | Witold Baryluk (witold.baryluk+kernel) |
Component: | network-wireless | Assignee: | Stanislaw Gruszka (stf_xl) |
Status: | CLOSED CODE_FIX | ||
Severity: | blocking | CC: | florian, linville, maciej.rutecki, rjw, stf_xl |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.1.0-rc4+ | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 40982, 7216 |
Description
Witold Baryluk
2011-08-31 15:41:15 UTC
In fact I first performed git bisect to find offending commit first. Call trace proves that indeed it is a problem. there is rtnl_mutex deadlock, and ecb443355 introduced usage of rtnl_lock() in wiphy_register function, without proper nesting notation. Writing down kernel log was hard, because boot_delay is not active in this stage of booting - it only affects up to the loading of initrd and/or mounting root fs AFAIK. Also just after call trace was displayed radeon changed mode settings, resolution and cleared screen, including Shift-PgDown/Up kernel log buffer). And becasue system have problems with file system, syslog isn't started yet, and boot is never ending, there is no way to dump kernel log. Thanks. in drivers/net/wireless/ipw2x00/ipw2200.c ipw_net_init calls wiphy_register which will try to acquire the rtnl lock. Sadly though, ipw_net_init is appointed the .ndo_init function in the net_device_ops structure of the ipw2200 driver and that function is called from register_netdevice in net/core/dev.c which has a big fat ASSERT_RTNL() above that call. ASSERT_RTNL() is a macro which dump_stack's if the rtnl_lock is not hold. Under the assumption that Stanislaw's change to mac80211 was tested and agreed upon it seems that ipw2200 is doing something weird here and shouldnt call wiphy_register in its ndo_init callback. Adding (s/Adding/Flo/) Does this problem persist with kernel 3.2 or later? Yes it is, we fixed that: commit 7cabafcea793c003503a118da58da358b0692930 Author: Stanislaw Gruszka <sgruszka@redhat.com> Date: Wed Sep 14 16:47:50 2011 +0200 ipw2x00: fix rtnl mutex deadlock |