<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/wireless/core.c, branch v3.2.73</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>cfg80211: fix antenna gain handling</title>
<updated>2012-11-16T16:46:53+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@openwrt.org</email>
</author>
<published>2012-10-17T11:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c54acd7da1a73f24ceb15c0edc92a5f8d3b09b23'/>
<id>c54acd7da1a73f24ceb15c0edc92a5f8d3b09b23</id>
<content type='text'>
commit c4a9fafc77a5318f5ed26c509bbcddf03e18c201 upstream.

No driver initializes chan-&gt;max_antenna_gain to something sensible, and
the only place where it is being used right now is inside ath9k. This
leads to ath9k potentially using less tx power than it can use, which can
decrease performance/range in some rare cases.

Rather than going through every single driver, this patch initializes
chan-&gt;orig_mag in wiphy_register(), ignoring whatever value the driver
left in there. If a driver for some reason wishes to limit it independent
from regulatory rulesets, it can do so internally.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c4a9fafc77a5318f5ed26c509bbcddf03e18c201 upstream.

No driver initializes chan-&gt;max_antenna_gain to something sensible, and
the only place where it is being used right now is inside ath9k. This
leads to ath9k potentially using less tx power than it can use, which can
decrease performance/range in some rare cases.

Rather than going through every single driver, this patch initializes
chan-&gt;orig_mag in wiphy_register(), ignoring whatever value the driver
left in there. If a driver for some reason wishes to limit it independent
from regulatory rulesets, it can do so internally.

Signed-off-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211: process pending events when unregistering net device</title>
<updated>2012-08-19T17:15:30+00:00</updated>
<author>
<name>Daniel Drake</name>
<email>dsd@laptop.org</email>
</author>
<published>2012-08-02T17:41:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c506474fed3246e4ea1dcf86809cbd802d57e541'/>
<id>c506474fed3246e4ea1dcf86809cbd802d57e541</id>
<content type='text'>
commit 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc upstream.

libertas currently calls cfg80211_disconnected() when it is being
brought down. This causes an event to be allocated, but since the
wdev is already removed from the rdev by the time that the event
processing work executes, the event is never processed or freed.
http://article.gmane.org/gmane.linux.kernel.wireless.general/95666

Fix this leak, and other possible situations, by processing the event
queue when a device is being unregistered. Thanks to Johannes Berg for
the suggestion.

Signed-off-by: Daniel Drake &lt;dsd@laptop.org&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc upstream.

libertas currently calls cfg80211_disconnected() when it is being
brought down. This causes an event to be allocated, but since the
wdev is already removed from the rdev by the time that the event
processing work executes, the event is never processed or freed.
http://article.gmane.org/gmane.linux.kernel.wireless.general/95666

Fix this leak, and other possible situations, by processing the event
queue when a device is being unregistered. Thanks to Johannes Berg for
the suggestion.

Signed-off-by: Daniel Drake &lt;dsd@laptop.org&gt;
Reviewed-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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.toradex.cn/cgit/linux-toradex.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>
<entry>
<title>cfg80211: advertise possible interface combinations</title>
<updated>2011-05-16T18:10:40+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-05-13T08:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7527a782e187d1214a5b3dc2897ce441033bb4ef'/>
<id>7527a782e187d1214a5b3dc2897ce441033bb4ef</id>
<content type='text'>
Add the ability to advertise interface combinations in nl80211.
This allows the driver to indicate what the combinations are
that it supports. "Combinations" of just a single interface are
implicit, as previously. Note that cfg80211 will enforce that
the restrictions are met, but not for all drivers yet (once all
drivers are updated, we can remove the flag and enforce for all).

When no combinations are actually supported, an empty list will
be exported so that userspace can know if the kernel exported
this info or not (although it isn't clear to me what tools using
the info should do if the kernel didn't export it).

Since some interface types are purely virtual/software and don't
fit the restrictions, those are exposed in a new list of pure SW
types, not subject to restrictions. This mainly exists to handle
AP-VLAN and monitor interfaces in mac80211.

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 interface combinations in nl80211.
This allows the driver to indicate what the combinations are
that it supports. "Combinations" of just a single interface are
implicit, as previously. Note that cfg80211 will enforce that
the restrictions are met, but not for all drivers yet (once all
drivers are updated, we can remove the flag and enforce for all).

When no combinations are actually supported, an empty list will
be exported so that userspace can know if the kernel exported
this info or not (although it isn't clear to me what tools using
the info should do if the kernel didn't export it).

Since some interface types are purely virtual/software and don't
fit the restrictions, those are exposed in a new list of pure SW
types, not subject to restrictions. This mainly exists to handle
AP-VLAN and monitor interfaces in mac80211.

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: avoid bounce back mac-&gt;cfg-&gt;mac on sched_scan_stopped</title>
<updated>2011-05-12T18:10:55+00:00</updated>
<author>
<name>Luciano Coelho</name>
<email>coelho@ti.com</email>
</author>
<published>2011-05-12T13:28:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=85a9994a0a6cba1a6cc6af4bd3ebd85f778be0fe'/>
<id>85a9994a0a6cba1a6cc6af4bd3ebd85f778be0fe</id>
<content type='text'>
When sched_scan_stopped was called by the driver, mac80211 calls
cfg80211, which in turn was calling mac80211 back with a flag
"driver_initiated".  This flag was used so that mac80211 would do the
necessary cleanup but would not call the driver.  This was enough to
prevent the bounce back between the driver and mac80211, but not
between mac80211 and cfg80211.

To fix this, we now do the cleanup in mac80211 before calling
cfg80211.  To help with locking issues, the workqueue was moved from
cfg80211 to mac80211.

Reported-by: Johannes Berg &lt;johannes@sipsolutions.net&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>
When sched_scan_stopped was called by the driver, mac80211 calls
cfg80211, which in turn was calling mac80211 back with a flag
"driver_initiated".  This flag was used so that mac80211 would do the
necessary cleanup but would not call the driver.  This was enough to
prevent the bounce back between the driver and mac80211, but not
between mac80211 and cfg80211.

To fix this, we now do the cleanup in mac80211 before calling
cfg80211.  To help with locking issues, the workqueue was moved from
cfg80211 to mac80211.

Reported-by: Johannes Berg &lt;johannes@sipsolutions.net&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>
