<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/net/wireless/core.c, branch v3.5</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Net: wireless: core.c: fixed checkpatch warnings</title>
<updated>2012-05-16T16:46:32+00:00</updated>
<author>
<name>Cristian Chilipirea</name>
<email>cristian.chilipirea@gmail.com</email>
</author>
<published>2012-05-08T09:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c4f6084623726857ac7c55922aefe138bd77292e'/>
<id>c4f6084623726857ac7c55922aefe138bd77292e</id>
<content type='text'>
Fixed some checkpatch warnings.

Signed-off-by: Cristian Chilipirea &lt;cristian.chilipirea@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed some checkpatch warnings.

Signed-off-by: Cristian Chilipirea &lt;cristian.chilipirea@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: enforce lack of interface combinations</title>
<updated>2012-04-16T18:16:58+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-03-15T09:16:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8e8b41f9d8c8e63fc92f899ace8da91a490ac573'/>
<id>8e8b41f9d8c8e63fc92f899ace8da91a490ac573</id>
<content type='text'>
My grand plan to allow drivers to gradually move over
to advertising virtual interface combinations and only
enforce with drivers that do want it enforced doesn't
seem to be working out, only Christian ever added the
advertising (to carl9170), nobody else did.

Begin enforcing combinations in cfg80211 so that users
can rely on the information reported about a device.

Cc: "Luis R. Rodriguez" &lt;mcgrof@qca.qualcomm.com&gt;
Cc: Jouni Malinen &lt;jouni@qca.qualcomm.com&gt;
Cc: Vasanthakumar Thiagarajan &lt;vthiagar@qca.qualcomm.com&gt;
Cc: Senthil Balasubramanian &lt;senthilb@qca.qualcomm.com&gt;
Cc: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Cc: Jiri Slaby &lt;jirislaby@gmail.com&gt;
Cc: Nick Kossifidis &lt;mickflemm@gmail.com&gt;
Cc: Bob Copeland &lt;me@bobcopeland.com&gt;
Cc: Bing Zhao &lt;bzhao@marvell.com&gt;
Cc: Lennert Buytenhek &lt;buytenh@wantstofly.org&gt;
Cc: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Cc: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Cc: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Cc: Luciano Coelho &lt;coelho@ti.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
My grand plan to allow drivers to gradually move over
to advertising virtual interface combinations and only
enforce with drivers that do want it enforced doesn't
seem to be working out, only Christian ever added the
advertising (to carl9170), nobody else did.

Begin enforcing combinations in cfg80211 so that users
can rely on the information reported about a device.

Cc: "Luis R. Rodriguez" &lt;mcgrof@qca.qualcomm.com&gt;
Cc: Jouni Malinen &lt;jouni@qca.qualcomm.com&gt;
Cc: Vasanthakumar Thiagarajan &lt;vthiagar@qca.qualcomm.com&gt;
Cc: Senthil Balasubramanian &lt;senthilb@qca.qualcomm.com&gt;
Cc: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Cc: Jiri Slaby &lt;jirislaby@gmail.com&gt;
Cc: Nick Kossifidis &lt;mickflemm@gmail.com&gt;
Cc: Bob Copeland &lt;me@bobcopeland.com&gt;
Cc: Bing Zhao &lt;bzhao@marvell.com&gt;
Cc: Lennert Buytenhek &lt;buytenh@wantstofly.org&gt;
Cc: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Cc: Gertjan van Wingerde &lt;gwingerde@gmail.com&gt;
Cc: Helmut Schaa &lt;helmut.schaa@googlemail.com&gt;
Cc: Luciano Coelho &lt;coelho@ti.com&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211/mac80211: enable proper device_set_wakeup_enable handling</title>
<updated>2012-04-11T20:23:57+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2012-04-04T13:05:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6d52563f2bc217cbdccb97068f5b6176352f01f2'/>
<id>6d52563f2bc217cbdccb97068f5b6176352f01f2</id>
<content type='text'>
In WoWLAN, we only get the triggers when we actually get
to suspend. As a consequence, drivers currently don't
know that the device should enable wakeup. However, the
device_set_wakeup_enable() API is intended to be called
when the wakeup is enabled, not later when needed.

Add a new set_wakeup() call to cfg80211 and mac80211 to
allow drivers to properly call device_set_wakeup_enable.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In WoWLAN, we only get the triggers when we actually get
to suspend. As a consequence, drivers currently don't
know that the device should enable wakeup. However, the
device_set_wakeup_enable() API is intended to be called
when the wakeup is enabled, not later when needed.

Add a new set_wakeup() call to cfg80211 and mac80211 to
allow drivers to properly call device_set_wakeup_enable.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nl80211: advertise device AP SME</title>
<updated>2011-11-09T21:12:38+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-11-07T11:39:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=562a74803f4881772ba2375ec4e5aa0ad90f4caa'/>
<id>562a74803f4881772ba2375ec4e5aa0ad90f4caa</id>
<content type='text'>
Add the ability to advertise that the device
contains the AP SME and what features it can
support. There are currently no features in
the bitmap -- probe response offload will be
advertised by a few patches Arik is working
on now (who took over from Guy Eilam) and a
device with AP SME will typically implement
and require response offload.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the ability to advertise that the device
contains the AP SME and what features it can
support. There are currently no features in
the bitmap -- probe response offload will be
advertised by a few patches Arik is working
on now (who took over from Guy Eilam) and a
device with AP SME will typically implement
and require response offload.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of github.com:davem330/net</title>
<updated>2011-09-22T07:23:13+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-09-22T07:23:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8decf868790b48a727d7e7ca164f2bcd3c1389c0'/>
<id>8decf868790b48a727d7e7ca164f2bcd3c1389c0</id>
<content type='text'>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	MAINTAINERS
	drivers/net/Kconfig
	drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
	drivers/net/ethernet/broadcom/tg3.c
	drivers/net/wireless/iwlwifi/iwl-pci.c
	drivers/net/wireless/iwlwifi/iwl-trans-tx-pcie.c
	drivers/net/wireless/rt2x00/rt2800usb.c
	drivers/net/wireless/wl12xx/main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: hold reg_mutex when updating regulatory</title>
<updated>2011-09-14T17:26:39+00:00</updated>
<author>
<name>Sven Neumann</name>
<email>s.neumann@raumfeld.com</email>
</author>
<published>2011-08-30T21:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=eac03e381957a05f3842ceb8de987a1025966ecf'/>
<id>eac03e381957a05f3842ceb8de987a1025966ecf</id>
<content type='text'>
The function wiphy_update_regulatory() uses the static variable
last_request and thus needs to be called with reg_mutex held.
This is the case for all users in reg.c, but the function was
exported for use by wiphy_register(), from where it is called
without the lock being held.

Fix this by making wiphy_update_regulatory() private and introducing
regulatory_update() as a wrapper that acquires and holds the lock.

Signed-off-by: Sven Neumann &lt;s.neumann@raumfeld.com&gt;
Cc: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Luis R. Rodriguez &lt;mcgrof@gmail.com&gt;
Cc: Daniel Mack &lt;daniel@zonque.org&gt;
Cc: linux-wireless@vger.kernel.org
Acked-by:  Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The function wiphy_update_regulatory() uses the static variable
last_request and thus needs to be called with reg_mutex held.
This is the case for all users in reg.c, but the function was
exported for use by wiphy_register(), from where it is called
without the lock being held.

Fix this by making wiphy_update_regulatory() private and introducing
regulatory_update() as a wrapper that acquires and holds the lock.

Signed-off-by: Sven Neumann &lt;s.neumann@raumfeld.com&gt;
Cc: John W. Linville &lt;linville@tuxdriver.com&gt;
Cc: Luis R. Rodriguez &lt;mcgrof@gmail.com&gt;
Cc: Daniel Mack &lt;daniel@zonque.org&gt;
Cc: linux-wireless@vger.kernel.org
Acked-by:  Luis R. Rodriguez &lt;mcgrof@qca.qualcomm.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: fix suspend/resume races with unregister hw</title>
<updated>2011-08-22T18:21:40+00:00</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2011-08-12T12:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ecb4433550f0620f3d1471ae7099037ede30a91e'/>
<id>ecb4433550f0620f3d1471ae7099037ede30a91e</id>
<content type='text'>
Do not call -&gt;suspend, -&gt;resume methods after we unregister wiphy. Also
delete sta_clanup timer after we finish wiphy unregister to avoid this:

WARNING: at lib/debugobjects.c:262 debug_print_object+0x85/0xa0()
Hardware name: 6369CTO
ODEBUG: free active (active state 0) object type: timer_list hint: sta_info_cleanup+0x0/0x180 [mac80211]
Modules linked in: aes_i586 aes_generic fuse bridge stp llc autofs4 sunrpc cpufreq_ondemand acpi_cpufreq mperf ext2 dm_mod uinput thinkpad_acpi hwmon sg arc4 rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib mac80211 cfg80211 i2c_i801 iTCO_wdt iTCO_vendor_support e1000e ext4 mbcache jbd2 sd_mod crc_t10dif sr_mod cdrom yenta_socket ahci libahci pata_acpi ata_generic ata_piix i915 drm_kms_helper drm i2c_algo_bit video [last unloaded: microcode]
Pid: 5663, comm: pm-hibernate Not tainted 3.1.0-rc1-wl+ #19
Call Trace:
 [&lt;c0454cfd&gt;] warn_slowpath_common+0x6d/0xa0
 [&lt;c05e05e5&gt;] ? debug_print_object+0x85/0xa0
 [&lt;c05e05e5&gt;] ? debug_print_object+0x85/0xa0
 [&lt;c0454dae&gt;] warn_slowpath_fmt+0x2e/0x30
 [&lt;c05e05e5&gt;] debug_print_object+0x85/0xa0
 [&lt;f8a808e0&gt;] ? sta_info_alloc+0x1a0/0x1a0 [mac80211]
 [&lt;c05e0bd2&gt;] debug_check_no_obj_freed+0xe2/0x180
 [&lt;c051175b&gt;] kfree+0x8b/0x150
 [&lt;f8a126ae&gt;] cfg80211_dev_free+0x7e/0x90 [cfg80211]
 [&lt;f8a13afd&gt;] wiphy_dev_release+0xd/0x10 [cfg80211]
 [&lt;c068d959&gt;] device_release+0x19/0x80
 [&lt;c05d06ba&gt;] kobject_release+0x7a/0x1c0
 [&lt;c07646a8&gt;] ? rtnl_unlock+0x8/0x10
 [&lt;f8a13adb&gt;] ? wiphy_resume+0x6b/0x80 [cfg80211]
 [&lt;c05d0640&gt;] ? kobject_del+0x30/0x30
 [&lt;c05d1a6d&gt;] kref_put+0x2d/0x60
 [&lt;c05d056d&gt;] kobject_put+0x1d/0x50
 [&lt;c08015f4&gt;] ? mutex_lock+0x14/0x40
 [&lt;c068d60f&gt;] put_device+0xf/0x20
 [&lt;c069716a&gt;] dpm_resume+0xca/0x160
 [&lt;c04912bd&gt;] hibernation_snapshot+0xcd/0x260
 [&lt;c04903df&gt;] ? freeze_processes+0x3f/0x90
 [&lt;c049151b&gt;] hibernate+0xcb/0x1e0
 [&lt;c048fdc0&gt;] ? pm_async_store+0x40/0x40
 [&lt;c048fe60&gt;] state_store+0xa0/0xb0
 [&lt;c048fdc0&gt;] ? pm_async_store+0x40/0x40
 [&lt;c05d0200&gt;] kobj_attr_store+0x20/0x30
 [&lt;c0575ea4&gt;] sysfs_write_file+0x94/0xf0
 [&lt;c051e26a&gt;] vfs_write+0x9a/0x160
 [&lt;c0575e10&gt;] ? sysfs_open_file+0x200/0x200
 [&lt;c051e3fd&gt;] sys_write+0x3d/0x70
 [&lt;c080959f&gt;] sysenter_do_call+0x12/0x28

Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not call -&gt;suspend, -&gt;resume methods after we unregister wiphy. Also
delete sta_clanup timer after we finish wiphy unregister to avoid this:

WARNING: at lib/debugobjects.c:262 debug_print_object+0x85/0xa0()
Hardware name: 6369CTO
ODEBUG: free active (active state 0) object type: timer_list hint: sta_info_cleanup+0x0/0x180 [mac80211]
Modules linked in: aes_i586 aes_generic fuse bridge stp llc autofs4 sunrpc cpufreq_ondemand acpi_cpufreq mperf ext2 dm_mod uinput thinkpad_acpi hwmon sg arc4 rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib mac80211 cfg80211 i2c_i801 iTCO_wdt iTCO_vendor_support e1000e ext4 mbcache jbd2 sd_mod crc_t10dif sr_mod cdrom yenta_socket ahci libahci pata_acpi ata_generic ata_piix i915 drm_kms_helper drm i2c_algo_bit video [last unloaded: microcode]
Pid: 5663, comm: pm-hibernate Not tainted 3.1.0-rc1-wl+ #19
Call Trace:
 [&lt;c0454cfd&gt;] warn_slowpath_common+0x6d/0xa0
 [&lt;c05e05e5&gt;] ? debug_print_object+0x85/0xa0
 [&lt;c05e05e5&gt;] ? debug_print_object+0x85/0xa0
 [&lt;c0454dae&gt;] warn_slowpath_fmt+0x2e/0x30
 [&lt;c05e05e5&gt;] debug_print_object+0x85/0xa0
 [&lt;f8a808e0&gt;] ? sta_info_alloc+0x1a0/0x1a0 [mac80211]
 [&lt;c05e0bd2&gt;] debug_check_no_obj_freed+0xe2/0x180
 [&lt;c051175b&gt;] kfree+0x8b/0x150
 [&lt;f8a126ae&gt;] cfg80211_dev_free+0x7e/0x90 [cfg80211]
 [&lt;f8a13afd&gt;] wiphy_dev_release+0xd/0x10 [cfg80211]
 [&lt;c068d959&gt;] device_release+0x19/0x80
 [&lt;c05d06ba&gt;] kobject_release+0x7a/0x1c0
 [&lt;c07646a8&gt;] ? rtnl_unlock+0x8/0x10
 [&lt;f8a13adb&gt;] ? wiphy_resume+0x6b/0x80 [cfg80211]
 [&lt;c05d0640&gt;] ? kobject_del+0x30/0x30
 [&lt;c05d1a6d&gt;] kref_put+0x2d/0x60
 [&lt;c05d056d&gt;] kobject_put+0x1d/0x50
 [&lt;c08015f4&gt;] ? mutex_lock+0x14/0x40
 [&lt;c068d60f&gt;] put_device+0xf/0x20
 [&lt;c069716a&gt;] dpm_resume+0xca/0x160
 [&lt;c04912bd&gt;] hibernation_snapshot+0xcd/0x260
 [&lt;c04903df&gt;] ? freeze_processes+0x3f/0x90
 [&lt;c049151b&gt;] hibernate+0xcb/0x1e0
 [&lt;c048fdc0&gt;] ? pm_async_store+0x40/0x40
 [&lt;c048fe60&gt;] state_store+0xa0/0xb0
 [&lt;c048fdc0&gt;] ? pm_async_store+0x40/0x40
 [&lt;c05d0200&gt;] kobj_attr_store+0x20/0x30
 [&lt;c0575ea4&gt;] sysfs_write_file+0x94/0xf0
 [&lt;c051e26a&gt;] vfs_write+0x9a/0x160
 [&lt;c0575e10&gt;] ? sysfs_open_file+0x200/0x200
 [&lt;c051e3fd&gt;] sys_write+0x3d/0x70
 [&lt;c080959f&gt;] sysenter_do_call+0x12/0x28

Cc: stable@kernel.org
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: enter psm when working as p2p_cli</title>
<updated>2011-07-20T19:04:35+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2011-07-19T09:57:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5966f2ddcda452455f8ab518b7cba221b5234a94'/>
<id>5966f2ddcda452455f8ab518b7cba221b5234a94</id>
<content type='text'>
cfg80211_netdev_notifier_call() is configuring psm in case
of NL80211_IFTYPE_STATION interface type (on NETDEV_UP).
do the same for NL80211_IFTYPE_P2P_CLIENT interface type.

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cfg80211_netdev_notifier_call() is configuring psm in case
of NL80211_IFTYPE_STATION interface type (on NETDEV_UP).
do the same for NL80211_IFTYPE_P2P_CLIENT interface type.

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nl80211: advertise GTK rekey support, new triggers</title>
<updated>2011-07-15T17:38:28+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-07-13T08:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=77dbbb138986b26cb99f868d4b6410577ef4c040'/>
<id>77dbbb138986b26cb99f868d4b6410577ef4c040</id>
<content type='text'>
Since we now have the necessary API in place to support
GTK rekeying, applications will need to know whether it
is supported by a device. Add a pseudo-trigger that is
used only to advertise that capability. Also, add some
new triggers that match what iwlagn devices can do.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we now have the necessary API in place to support
GTK rekeying, applications will need to know whether it
is supported by a device. Add a pseudo-trigger that is
used only to advertise that capability. Also, add some
new triggers that match what iwlagn devices can do.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: fix deadlock with rfkill/sched_scan by adding new mutex</title>
<updated>2011-07-05T18:42:36+00:00</updated>
<author>
<name>Luciano Coelho</name>
<email>coelho@ti.com</email>
</author>
<published>2011-06-30T05:32:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c10841ca722a0bc960dc541c51582773f9a24f98'/>
<id>c10841ca722a0bc960dc541c51582773f9a24f98</id>
<content type='text'>
There was a deadlock when rfkill-blocking a wireless interface,
because we were locking the rdev mutex on NETDEV_GOING_DOWN to stop
sched_scans that were eventually running.  The rfkill block code was
already holding a mutex under rdev:

kernel: =======================================================
kernel: [ INFO: possible circular locking dependency detected ]
kernel: 3.0.0-rc1-00049-g1fa7b6a #57
kernel: -------------------------------------------------------
kernel: kworker/0:1/4525 is trying to acquire lock:
kernel: (&amp;rdev-&gt;mtx){+.+.+.}, at: [&lt;ffffffff8164c831&gt;] cfg80211_netdev_notifier_call+0x131/0x5b0
kernel:
kernel: but task is already holding lock:
kernel: (&amp;rdev-&gt;devlist_mtx){+.+.+.}, at: [&lt;ffffffff8164dcef&gt;] cfg80211_rfkill_set_block+0x4f/0xa0
kernel:
kernel: which lock already depends on the new lock.

To fix this, add a new mutex specifically for sched_scan, to protect
the sched_scan_req element in the rdev struct, instead of using the
global rdev mutex.

Reported-by: Duane Griffin &lt;duaneg@dghda.com&gt;
Signed-off-by: Luciano Coelho &lt;coelho@ti.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was a deadlock when rfkill-blocking a wireless interface,
because we were locking the rdev mutex on NETDEV_GOING_DOWN to stop
sched_scans that were eventually running.  The rfkill block code was
already holding a mutex under rdev:

kernel: =======================================================
kernel: [ INFO: possible circular locking dependency detected ]
kernel: 3.0.0-rc1-00049-g1fa7b6a #57
kernel: -------------------------------------------------------
kernel: kworker/0:1/4525 is trying to acquire lock:
kernel: (&amp;rdev-&gt;mtx){+.+.+.}, at: [&lt;ffffffff8164c831&gt;] cfg80211_netdev_notifier_call+0x131/0x5b0
kernel:
kernel: but task is already holding lock:
kernel: (&amp;rdev-&gt;devlist_mtx){+.+.+.}, at: [&lt;ffffffff8164dcef&gt;] cfg80211_rfkill_set_block+0x4f/0xa0
kernel:
kernel: which lock already depends on the new lock.

To fix this, add a new mutex specifically for sched_scan, to protect
the sched_scan_req element in the rdev struct, instead of using the
global rdev mutex.

Reported-by: Duane Griffin &lt;duaneg@dghda.com&gt;
Signed-off-by: Luciano Coelho &lt;coelho@ti.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
