<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/wireless/core.c, branch v2.6.39</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>cfg80211: Fix power save state after interface type change</title>
<updated>2011-02-03T21:44:42+00:00</updated>
<author>
<name>Juuso Oikarinen</name>
<email>juuso.oikarinen@nokia.com</email>
</author>
<published>2011-01-31T13:52:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bf6a0579f60ae5225280c82cc52b51db1255e7fb'/>
<id>bf6a0579f60ae5225280c82cc52b51db1255e7fb</id>
<content type='text'>
Currently cfg80211 only configures the PSM state to the driver upon creation
of a new virtual interface, but not after interface type change. The mac80211
on the other hand reinitializes its sdata structure every time the interface
type is changed, losing the PSM configuration.

Hence, if the interface type is changed to, say, ad-hoc and then back to
managed, "iw wlan0 get power_save" will claim that PSM is enabled, when in
fact on mac80211 level it is not.

Fix this in cfg80211 by configuring the PSM state to the driver each time
the interface is brought up instead of just when the interface is created.

Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.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>
Currently cfg80211 only configures the PSM state to the driver upon creation
of a new virtual interface, but not after interface type change. The mac80211
on the other hand reinitializes its sdata structure every time the interface
type is changed, losing the PSM configuration.

Hence, if the interface type is changed to, say, ad-hoc and then back to
managed, "iw wlan0 get power_save" will claim that PSM is enabled, when in
fact on mac80211 level it is not.

Fix this in cfg80211 by configuring the PSM state to the driver each time
the interface is brought up instead of just when the interface is created.

Signed-off-by: Juuso Oikarinen &lt;juuso.oikarinen@nokia.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mac80211: Let userspace enable and configure vendor specific path selection.</title>
<updated>2010-12-20T19:46:57+00:00</updated>
<author>
<name>Javier Cardona</name>
<email>javier@cozybit.com</email>
</author>
<published>2010-12-17T01:37:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c80d545da3f7c0e534ccd4a780f322f80a92cff1'/>
<id>c80d545da3f7c0e534ccd4a780f322f80a92cff1</id>
<content type='text'>
Userspace will now be allowed to toggle between the default path
selection algorithm (HWMP, implemented in the kernel), and a vendor
specific alternative.  Also in the same patch, allow userspace to add
information elements to mesh beacons.  This is accordance with the
Extensible Path Selection Framework specified in version 7.0 of the
802.11s draft.

Signed-off-by: Javier Cardona &lt;javier@cozybit.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>
Userspace will now be allowed to toggle between the default path
selection algorithm (HWMP, implemented in the kernel), and a vendor
specific alternative.  Also in the same patch, allow userspace to add
information elements to mesh beacons.  This is accordance with the
Extensible Path Selection Framework specified in version 7.0 of the
802.11s draft.

Signed-off-by: Javier Cardona &lt;javier@cozybit.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211/mac80211: add mesh join/leave commands</title>
<updated>2010-12-06T21:01:29+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2010-12-03T08:20:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=29cbe68c516a48a9a88b3226878570c6cbd83c02'/>
<id>29cbe68c516a48a9a88b3226878570c6cbd83c02</id>
<content type='text'>
Instead of tying mesh activity to interface up,
add join and leave commands for mesh. Since we
must be backward compatible, let cfg80211 handle
joining a mesh if a mesh ID was pre-configured
when the device goes up.

Note that this therefore must modify mac80211 as
well since mac80211 needs to lose the logic to
start the mesh on interface up.

We now allow querying mesh parameters before the
mesh is connected, which simply returns defaults.
Setting them (internally renamed to "update") is
only allowed while connected. Specify them with
the new mesh join command instead where needed.

In mac80211, beaconing must now also follow the
mesh enabled/not enabled state, which is done
by testing the mesh ID.

Signed-off-by: Javier Cardona &lt;javier@cozybit.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>
Instead of tying mesh activity to interface up,
add join and leave commands for mesh. Since we
must be backward compatible, let cfg80211 handle
joining a mesh if a mesh ID was pre-configured
when the device goes up.

Note that this therefore must modify mac80211 as
well since mac80211 needs to lose the logic to
start the mesh on interface up.

We now allow querying mesh parameters before the
mesh is connected, which simply returns defaults.
Setting them (internally renamed to "update") is
only allowed while connected. Specify them with
the new mesh join command instead where needed.

In mac80211, beaconing must now also follow the
mesh enabled/not enabled state, which is done
by testing the mesh ID.

Signed-off-by: Javier Cardona &lt;javier@cozybit.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>net/wireless: Use pr_&lt;level&gt; and netdev_&lt;level&gt;</title>
<updated>2010-11-24T21:19:33+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-11-17T03:56:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e9c0268f02f8970149158a9b7ea1e5c1c45c819d'/>
<id>e9c0268f02f8970149158a9b7ea1e5c1c45c819d</id>
<content type='text'>
No change in output for pr_&lt;level&gt; prefixes.
netdev_&lt;level&gt; output is different, arguably improved.

Signed-off-by: Joe Perches &lt;joe@perches.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>
No change in output for pr_&lt;level&gt; prefixes.
netdev_&lt;level&gt; output is different, arguably improved.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "wireless: Use first phyX name available when registering phy devices."</title>
<updated>2010-10-11T18:46:52+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes@sipsolutions.net</email>
</author>
<published>2010-10-11T18:46:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7623225f905263424c7254dc6a07bff083a498dd'/>
<id>7623225f905263424c7254dc6a07bff083a498dd</id>
<content type='text'>
This reverts commit 5a254ffe3ffdfa84fe076009bd8e88da412180d2.

The commit failed to take into account that allocated wireless devices
(wiphys) are not added into the device list upon allocation, but only
when they are registered. Therefore, it opened up a race between
allocating and registering a name, so that if two processes allocate and
register concurrently ("alloc, alloc, register, register" rather than
"alloc, register, alloc, register") the code will attempt to use the
same name twice.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5a254ffe3ffdfa84fe076009bd8e88da412180d2.

The commit failed to take into account that allocated wireless devices
(wiphys) are not added into the device list upon allocation, but only
when they are registered. Therefore, it opened up a race between
allocating and registering a name, so that if two processes allocate and
register concurrently ("alloc, alloc, register, register" rather than
"alloc, register, alloc, register") the code will attempt to use the
same name twice.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wireless: Use first phyX name available when registering phy devices.</title>
<updated>2010-10-05T17:35:21+00:00</updated>
<author>
<name>Ben Greear</name>
<email>greearb@candelatech.com</email>
</author>
<published>2010-09-27T16:07:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5a254ffe3ffdfa84fe076009bd8e88da412180d2'/>
<id>5a254ffe3ffdfa84fe076009bd8e88da412180d2</id>
<content type='text'>
Choose first available phyX name when creating phy devices.  This
means that reloading a wifi driver will not cause a change in the
name of it's phy device.

Also, allow users to rename a phy to any un-used name, including
phy%d.

Signed-off-by: Ben Greear &lt;greearb@candelatech.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>
Choose first available phyX name when creating phy devices.  This
means that reloading a wifi driver will not cause a change in the
name of it's phy device.

Also, allow users to rename a phy to any un-used name, including
phy%d.

Signed-off-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6</title>
<updated>2010-09-24T19:52:34+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2010-09-24T19:52:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=29ad2facd47f8e37eab8b156e2c384fa181c8b4a'/>
<id>29ad2facd47f8e37eab8b156e2c384fa181c8b4a</id>
<content type='text'>
Conflicts:
	drivers/net/wireless/ath/ath5k/base.c
	net/mac80211/main.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/net/wireless/ath/ath5k/base.c
	net/mac80211/main.c
</pre>
</div>
</content>
</entry>
<entry>
<title>cfg80211/nl80211: introduce p2p device types</title>
<updated>2010-09-16T19:46:06+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2010-09-16T12:58:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=074ac8df9f93f2a35a356d92fd7f16cd846f0a03'/>
<id>074ac8df9f93f2a35a356d92fd7f16cd846f0a03</id>
<content type='text'>
This adds P2P-STA and P2P-GO as device types so
we can distinguish between those and normal STA
or AP (respectively) type interfaces.

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>
This adds P2P-STA and P2P-GO as device types so
we can distinguish between those and normal STA
or AP (respectively) type interfaces.

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>include/net/cfg80211.h: wiphy_&lt;level&gt; messages use dev_printk</title>
<updated>2010-09-16T19:19:44+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-08-20T22:13:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9c376639297d3dd82d40e54c9cdca8da9dfc22f1'/>
<id>9c376639297d3dd82d40e54c9cdca8da9dfc22f1</id>
<content type='text'>
The output becomes:

[   41.261941] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'

Signed-off-by: Joe Perches &lt;joe@perches.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 output becomes:

[   41.261941] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wireless: register wiphy rfkill w/o holding cfg80211_mutex</title>
<updated>2010-08-31T18:48:47+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2010-08-30T21:36:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c3d34d5d9654ec9c2510f9341bfb1030b8f029d1'/>
<id>c3d34d5d9654ec9c2510f9341bfb1030b8f029d1</id>
<content type='text'>
Otherwise lockdep complains...

https://bugzilla.kernel.org/show_bug.cgi?id=17311

[ INFO: possible circular locking dependency detected ]
2.6.36-rc2-git4 #12
-------------------------------------------------------
kworker/0:3/3630 is trying to acquire lock:
 (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff813396c7&gt;] rtnl_lock+0x12/0x14

but task is already holding lock:
 (rfkill_global_mutex){+.+.+.}, at: [&lt;ffffffffa014b129&gt;]
rfkill_switch_all+0x24/0x49 [rfkill]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 (rfkill_global_mutex){+.+.+.}:
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffffa014b4ab&gt;] rfkill_register+0x2b/0x29c [rfkill]
       [&lt;ffffffffa0185ba0&gt;] wiphy_register+0x1ae/0x270 [cfg80211]
       [&lt;ffffffffa0206f01&gt;] ieee80211_register_hw+0x1b4/0x3cf [mac80211]
       [&lt;ffffffffa0292e98&gt;] iwl_ucode_callback+0x9e9/0xae3 [iwlagn]
       [&lt;ffffffff812d3e9d&gt;] request_firmware_work_func+0x54/0x6f
       [&lt;ffffffff81065d15&gt;] kthread+0x8c/0x94
       [&lt;ffffffff8100ac24&gt;] kernel_thread_helper+0x4/0x10

-&gt; #1 (cfg80211_mutex){+.+.+.}:
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffffa018605e&gt;] cfg80211_get_dev_from_ifindex+0x1b/0x7c [cfg80211]
       [&lt;ffffffffa0189f36&gt;] cfg80211_wext_giwscan+0x58/0x990 [cfg80211]
       [&lt;ffffffff8139a3ce&gt;] ioctl_standard_iw_point+0x1a8/0x272
       [&lt;ffffffff8139a529&gt;] ioctl_standard_call+0x91/0xa7
       [&lt;ffffffff8139a687&gt;] T.723+0xbd/0x12c
       [&lt;ffffffff8139a727&gt;] wext_handle_ioctl+0x31/0x6d
       [&lt;ffffffff8133014e&gt;] dev_ioctl+0x63d/0x67a
       [&lt;ffffffff8131afd9&gt;] sock_ioctl+0x48/0x21d
       [&lt;ffffffff81102abd&gt;] do_vfs_ioctl+0x4ba/0x509
       [&lt;ffffffff81102b5d&gt;] sys_ioctl+0x51/0x74
       [&lt;ffffffff81009e02&gt;] system_call_fastpath+0x16/0x1b

-&gt; #0 (rtnl_mutex){+.+.+.}:
       [&lt;ffffffff810796b0&gt;] __lock_acquire+0xa93/0xd9a
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffff813396c7&gt;] rtnl_lock+0x12/0x14
       [&lt;ffffffffa0185cb5&gt;] cfg80211_rfkill_set_block+0x1a/0x7b [cfg80211]
       [&lt;ffffffffa014aed0&gt;] rfkill_set_block+0x80/0xd5 [rfkill]
       [&lt;ffffffffa014b07e&gt;] __rfkill_switch_all+0x3f/0x6f [rfkill]
       [&lt;ffffffffa014b13d&gt;] rfkill_switch_all+0x38/0x49 [rfkill]
       [&lt;ffffffffa014b821&gt;] rfkill_op_handler+0x105/0x136 [rfkill]
       [&lt;ffffffff81060708&gt;] process_one_work+0x248/0x403
       [&lt;ffffffff81062620&gt;] worker_thread+0x139/0x214
       [&lt;ffffffff81065d15&gt;] kthread+0x8c/0x94
       [&lt;ffffffff8100ac24&gt;] kernel_thread_helper+0x4/0x10

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise lockdep complains...

https://bugzilla.kernel.org/show_bug.cgi?id=17311

[ INFO: possible circular locking dependency detected ]
2.6.36-rc2-git4 #12
-------------------------------------------------------
kworker/0:3/3630 is trying to acquire lock:
 (rtnl_mutex){+.+.+.}, at: [&lt;ffffffff813396c7&gt;] rtnl_lock+0x12/0x14

but task is already holding lock:
 (rfkill_global_mutex){+.+.+.}, at: [&lt;ffffffffa014b129&gt;]
rfkill_switch_all+0x24/0x49 [rfkill]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #2 (rfkill_global_mutex){+.+.+.}:
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffffa014b4ab&gt;] rfkill_register+0x2b/0x29c [rfkill]
       [&lt;ffffffffa0185ba0&gt;] wiphy_register+0x1ae/0x270 [cfg80211]
       [&lt;ffffffffa0206f01&gt;] ieee80211_register_hw+0x1b4/0x3cf [mac80211]
       [&lt;ffffffffa0292e98&gt;] iwl_ucode_callback+0x9e9/0xae3 [iwlagn]
       [&lt;ffffffff812d3e9d&gt;] request_firmware_work_func+0x54/0x6f
       [&lt;ffffffff81065d15&gt;] kthread+0x8c/0x94
       [&lt;ffffffff8100ac24&gt;] kernel_thread_helper+0x4/0x10

-&gt; #1 (cfg80211_mutex){+.+.+.}:
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffffa018605e&gt;] cfg80211_get_dev_from_ifindex+0x1b/0x7c [cfg80211]
       [&lt;ffffffffa0189f36&gt;] cfg80211_wext_giwscan+0x58/0x990 [cfg80211]
       [&lt;ffffffff8139a3ce&gt;] ioctl_standard_iw_point+0x1a8/0x272
       [&lt;ffffffff8139a529&gt;] ioctl_standard_call+0x91/0xa7
       [&lt;ffffffff8139a687&gt;] T.723+0xbd/0x12c
       [&lt;ffffffff8139a727&gt;] wext_handle_ioctl+0x31/0x6d
       [&lt;ffffffff8133014e&gt;] dev_ioctl+0x63d/0x67a
       [&lt;ffffffff8131afd9&gt;] sock_ioctl+0x48/0x21d
       [&lt;ffffffff81102abd&gt;] do_vfs_ioctl+0x4ba/0x509
       [&lt;ffffffff81102b5d&gt;] sys_ioctl+0x51/0x74
       [&lt;ffffffff81009e02&gt;] system_call_fastpath+0x16/0x1b

-&gt; #0 (rtnl_mutex){+.+.+.}:
       [&lt;ffffffff810796b0&gt;] __lock_acquire+0xa93/0xd9a
       [&lt;ffffffff81079ad7&gt;] lock_acquire+0x120/0x15b
       [&lt;ffffffff813ae869&gt;] __mutex_lock_common+0x54/0x52e
       [&lt;ffffffff813aede9&gt;] mutex_lock_nested+0x34/0x39
       [&lt;ffffffff813396c7&gt;] rtnl_lock+0x12/0x14
       [&lt;ffffffffa0185cb5&gt;] cfg80211_rfkill_set_block+0x1a/0x7b [cfg80211]
       [&lt;ffffffffa014aed0&gt;] rfkill_set_block+0x80/0xd5 [rfkill]
       [&lt;ffffffffa014b07e&gt;] __rfkill_switch_all+0x3f/0x6f [rfkill]
       [&lt;ffffffffa014b13d&gt;] rfkill_switch_all+0x38/0x49 [rfkill]
       [&lt;ffffffffa014b821&gt;] rfkill_op_handler+0x105/0x136 [rfkill]
       [&lt;ffffffff81060708&gt;] process_one_work+0x248/0x403
       [&lt;ffffffff81062620&gt;] worker_thread+0x139/0x214
       [&lt;ffffffff81065d15&gt;] kthread+0x8c/0x94
       [&lt;ffffffff8100ac24&gt;] kernel_thread_helper+0x4/0x10

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Acked-by: Johannes Berg &lt;johannes@sipsolutions.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
