<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/wireless/core.c, branch v2.6.37</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<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>
<entry>
<title>cfg80211/mac80211: extensible frame processing</title>
<updated>2010-08-24T20:27:56+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2010-08-12T13:38:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2e161f78e5f63a7f9fd25a766bb7f816a01eb14a'/>
<id>2e161f78e5f63a7f9fd25a766bb7f816a01eb14a</id>
<content type='text'>
Allow userspace to register for more than just
action frames by giving the frame subtype, and
make it possible to use this in various modes
as well.

With some tweaks and some added functionality
this will, in the future, also be usable in AP
mode and be able to replace the cooked monitor
interface currently used in that case.

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>
Allow userspace to register for more than just
action frames by giving the frame subtype, and
make it possible to use this in various modes
as well.

With some tweaks and some added functionality
this will, in the future, also be usable in AP
mode and be able to replace the cooked monitor
interface currently used in that case.

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: support sysfs namespaces</title>
<updated>2010-08-16T19:26:40+00:00</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2010-08-05T15:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=04600794958f1833f5571c6cde40f260ab557f55'/>
<id>04600794958f1833f5571c6cde40f260ab557f55</id>
<content type='text'>
Enable using network namespaces with
wireless devices even when sysfs is
enabled using the same infrastructure
that was built for netdevs.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Acked-by: "Eric W. Biederman" &lt;ebiederm@xmission.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>
Enable using network namespaces with
wireless devices even when sysfs is
enabled using the same infrastructure
that was built for netdevs.

Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Acked-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wireless: Convert wiphy_debug macro to function</title>
<updated>2010-07-27T19:14:13+00:00</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2010-07-26T21:40:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=073730d771d97bb5bbef080bd5d6d0a5af7cba7d'/>
<id>073730d771d97bb5bbef080bd5d6d0a5af7cba7d</id>
<content type='text'>
Save a few bytes of text

(allyesconfig)
$ size drivers/net/wireless/built-in.o*
   text	   data	    bss	    dec	    hex	filename
3924568	 100548	 871056	4896172	 4ab5ac	drivers/net/wireless/built-in.o.new
3926520	 100548	 871464	4898532	 4abee4	drivers/net/wireless/built-in.o.old

$ size net/wireless/core.o*
   text	   data	    bss	    dec	    hex	filename
  12843	    216	   3768	  16827	   41bb	net/wireless/core.o.new
  12328	    216	   3656	  16200	   3f48	net/wireless/core.o

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>
Save a few bytes of text

(allyesconfig)
$ size drivers/net/wireless/built-in.o*
   text	   data	    bss	    dec	    hex	filename
3924568	 100548	 871056	4896172	 4ab5ac	drivers/net/wireless/built-in.o.new
3926520	 100548	 871464	4898532	 4abee4	drivers/net/wireless/built-in.o.old

$ size net/wireless/core.o*
   text	   data	    bss	    dec	    hex	filename
  12843	    216	   3768	  16827	   41bb	net/wireless/core.o.new
  12328	    216	   3656	  16200	   3f48	net/wireless/core.o

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>cfg80211: fix race between sysfs and cfg80211</title>
<updated>2010-07-21T19:13:42+00:00</updated>
<author>
<name>Maxime Bizon</name>
<email>mbizon@freebox.fr</email>
</author>
<published>2010-07-21T15:21:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5a652052fedbd7869572c757dd2ffc2ed420c69d'/>
<id>5a652052fedbd7869572c757dd2ffc2ed420c69d</id>
<content type='text'>
device_add() is called before adding the phy to the cfg80211 device
list.

So if a userspace program uses sysfs uevents to detect new phy
devices, and queries nl80211 to get phy info, it can get ENODEV even
though the phy exists in sysfs.

An easy workaround is to hold the cfg80211 mutex until the phy is
present in sysfs/cfg80211/debugfs.

Signed-off-by: Maxime Bizon &lt;mbizon@freebox.fr&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>
device_add() is called before adding the phy to the cfg80211 device
list.

So if a userspace program uses sysfs uevents to detect new phy
devices, and queries nl80211 to get phy info, it can get ENODEV even
though the phy exists in sysfs.

An easy workaround is to hold the cfg80211 mutex until the phy is
present in sysfs/cfg80211/debugfs.

Signed-off-by: Maxime Bizon &lt;mbizon@freebox.fr&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
