<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/wireless, branch v3.8</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.8</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.8'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2013-02-12T15:41:46Z</updated>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2013-02-12T15:41:46Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-02-12T15:41:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=318d86dbe55cbc63a61a83b9ff6cdbc044905f5e'/>
<id>urn:sha1:318d86dbe55cbc63a61a83b9ff6cdbc044905f5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mwl8k: fix band for supported channels</title>
<updated>2013-02-11T19:31:36Z</updated>
<author>
<name>Jonas Gorski</name>
<email>jogo@openwrt.org</email>
</author>
<published>2013-02-08T15:07:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d786f67e5c587a4de8245336cb64cf4dd06871a7'/>
<id>urn:sha1:d786f67e5c587a4de8245336cb64cf4dd06871a7</id>
<content type='text'>
The band field for the supported channels were left unpopulated, making
them default to 0 == IEEE80211_BAND_2GHZ, even for the 5GHz channels.

This resulted in null pointer accesses if anything tries to access
wiphy-&gt;bands[channel-&gt;band] of a 5GHz channel on 5GHz only cards, since
wiphy-&gt;bands[2GHZ] is NULL for them (e.g. cfg80211_chandef_usable does).

Example kernel OOPS:

[  665.669993] Unable to handle kernel NULL pointer dereference at virtual address 00000016
[  665.678194] pgd = c6d58000
[  665.680941] [00000016] *pgd=06f8a831, *pte=00000000, *ppte=00000000
[  665.687303] Internal error: Oops: 17 [#1]
(...)
[  666.116373] Backtrace:
[  666.118866] [&lt;bf0368dc&gt;] (cfg80211_chandef_usable+0x0/0x1bc [cfg80211]) from [&lt;bf025e64&gt;] (nl80211_leave_mesh+0x244/0x264 [cfg80211])
[  666.130919]  r7:c6d12100 r6:0000143c r5:c0611c48 r4:c0611b98
[  666.136668] [&lt;bf025d84&gt;] (nl80211_leave_mesh+0x164/0x264 [cfg80211]) from [&lt;bf02634c&gt;] (nl80211_remain_on_channel+0x2a0/0x358 [cfg80211])
[  666.149074]  r7:c6d12000 r6:c6d12000 r5:c6f4f368 r4:00000003
[  666.154814] [&lt;bf0262ec&gt;] (nl80211_remain_on_channel+0x240/0x358 [cfg80211]) from [&lt;bf02ddb0&gt;] (nl80211_set_wiphy+0x264/0x560 [cfg80211])
[  666.167150] [&lt;bf02db4c&gt;] (nl80211_set_wiphy+0x0/0x560 [cfg80211]) from [&lt;c01f94e0&gt;] (genl_rcv_msg+0x1b8/0x1f8)
[  666.177205] [&lt;c01f9328&gt;] (genl_rcv_msg+0x0/0x1f8) from [&lt;c01f89a0&gt;] (netlink_rcv_skb+0x58/0xb4)
[  666.185949] [&lt;c01f8948&gt;] (netlink_rcv_skb+0x0/0xb4) from [&lt;c01f931c&gt;] (genl_rcv+0x20/0x2c)
[  666.194251]  r6:c6f70780 r5:0000002c r4:c6f70780 r3:00000001
[  666.199973] [&lt;c01f92fc&gt;] (genl_rcv+0x0/0x2c) from [&lt;c01f8418&gt;] (netlink_unicast+0x154/0x1f4)
[  666.208449]  r4:c785ea00 r3:c01f92fc
[  666.212057] [&lt;c01f82c4&gt;] (netlink_unicast+0x0/0x1f4) from [&lt;c01f8790&gt;] (netlink_sendmsg+0x230/0x2b0)
[  666.221240] [&lt;c01f8560&gt;] (netlink_sendmsg+0x0/0x2b0) from [&lt;c01cccf8&gt;] (sock_sendmsg+0x90/0xa4)
[  666.229986] [&lt;c01ccc68&gt;] (sock_sendmsg+0x0/0xa4) from [&lt;c01cdcb0&gt;] (__sys_sendmsg+0x290/0x298)
[  666.238637]  r9:00000000 r8:c0611ec8 r6:0000002c r5:c0610000 r4:c0611f64
[  666.245411] [&lt;c01cda20&gt;] (__sys_sendmsg+0x0/0x298) from [&lt;c01cf52c&gt;] (sys_sendmsg+0x44/0x6c)
[  666.253897] [&lt;c01cf4e8&gt;] (sys_sendmsg+0x0/0x6c) from [&lt;c00090a0&gt;] (ret_fast_syscall+0x0/0x2c)
[  666.262460]  r6:00000000 r5:beeff96c r4:00000005

Signed-off-by: Jonas Gorski &lt;jogo@openwrt.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2013-02-06T18:55:44Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-02-06T18:55:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b3b66ae4c8aff0636521034d824b8953dc617335'/>
<id>urn:sha1:b3b66ae4c8aff0636521034d824b8953dc617335</id>
<content type='text'>
</content>
</entry>
<entry>
<title>brcmsmac: rework of mac80211 .flush() callback operation</title>
<updated>2013-02-04T21:46:28Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2013-02-02T13:36:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7b2385b95363c9ff49801c19cba2489a05bd6672'/>
<id>urn:sha1:7b2385b95363c9ff49801c19cba2489a05bd6672</id>
<content type='text'>
This patch addresses a long standing issue of the driver with the
mac80211 .flush() callback. Since implementing the .flush() callback
a number of issues have been fixed, but a WARN_ON_ONCE() was still
triggered because the timeout on the flush could still occur.

This patch changes the awkward design using msleep() into one using
a waitqueue. The waiting flush() context will kick the transmit dma
when it is idle and the timeout used waiting for the event is set
to 500 ms. Worst case there can be 64 frames outstanding for transmit
in the driver. At a rate of 1Mbps that would take 1.5 seconds assuming
MTU is 1500 bytes and ignoring retries. The WARN_ON_ONCE() is also
removed as this was put in to indicate the flush timeout as a reason
for the driver to stall. That was not happening since fixing endless
AMPDU retries with following upstream commit:

commit 85091fc0a75653e239dc8379658515e577544927
Author: Arend van Spriel &lt;arend@broadcom.com&gt;
Date:   Thu Feb 23 18:38:22 2012 +0100

    brcm80211: smac: fix endless retry of A-MPDU transmissions

bugzilla: 42840 &lt;https://bugzilla.kernel.org/show_bug.cgi?id=42840&gt;
bugzilla@redhat: &lt;https://bugzilla.redhat.com/show_bug.cgi?id=799168&gt;
bugzilla@redhat: &lt;https://bugzilla.redhat.com/show_bug.cgi?id=787649&gt;

Cc: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Cc: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Cc: Camaleón &lt;noelamac@gmail.com&gt;
Cc: Milan Bouchet-Valat &lt;nalimilan@club-internet.fr&gt;
Cc: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieterpg@broadcom.com&gt;
Reviewed-by: Hante Meuleman &lt;meuleman@broadcom.com&gt;
Reviewed-by: Piotr Haber &lt;phaber@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Acked-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rtlwifi: Fix scheduling while atomic bug</title>
<updated>2013-02-04T21:41:56Z</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2013-02-02T21:55:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=a5ffbe0a1993a27072742ef7db6cf9839956fce9'/>
<id>urn:sha1:a5ffbe0a1993a27072742ef7db6cf9839956fce9</id>
<content type='text'>
Kernel commits 41affd5 and 6539306 changed the locking in rtl_lps_leave()
from a spinlock to a mutex by doing the calls indirectly from a work queue
to reduce the time that interrupts were disabled. This change was fine for
most systems; however a scheduling while atomic bug was reported in
https://bugzilla.redhat.com/show_bug.cgi?id=903881. The backtrace indicates
that routine rtl_is_special(), which calls rtl_lps_leave() in three places
was entered in atomic context. These direct calls are replaced by putting a
request on the appropriate work queue.

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Reported-and-tested-by: Nathaniel Doherty &lt;ntdoherty@gmail.com&gt;
Cc: Nathaniel Doherty &lt;ntdoherty@gmail.com&gt;
Cc: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Cc: Stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem</title>
<updated>2013-02-01T18:43:25Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-02-01T18:43:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ed6882ac40552034ae6bde3e540b84c832dc8491'/>
<id>urn:sha1:ed6882ac40552034ae6bde3e540b84c832dc8491</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mwifiex: fix incomplete scan in case of IE parsing error</title>
<updated>2013-01-30T19:13:09Z</updated>
<author>
<name>Bing Zhao</name>
<email>bzhao@marvell.com</email>
</author>
<published>2013-01-29T22:38:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8a7d7cbf7b5ff9912ef50b3e94c9ad9f37b1c75f'/>
<id>urn:sha1:8a7d7cbf7b5ff9912ef50b3e94c9ad9f37b1c75f</id>
<content type='text'>
A scan request is split into multiple scan commands queued in
scan_pending_q. Each scan command will be sent to firmware and
its response is handlded one after another.

If any error is detected while parsing IE in command response
buffer the remaining data will be ignored and error is returned.

We should check if there is any more scan commands pending in
the queue before returning error. This ensures that we will call
cfg80211_scan_done if this is the last scan command, or send
next scan command in scan_pending_q to firmware.

Cc: "3.6+" &lt;stable@vger.kernel.org&gt;
Signed-off-by: Bing Zhao &lt;bzhao@marvell.com&gt;
Signed-off-by: Amitkumar Karwar &lt;akarwar@marvell.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rtlwifi: Fix the usage of the wrong variable in usb.c</title>
<updated>2013-01-28T19:48:53Z</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2013-01-27T22:24:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0a06ad8e3a1cb5311b7dbafde45410aa1bce9d40'/>
<id>urn:sha1:0a06ad8e3a1cb5311b7dbafde45410aa1bce9d40</id>
<content type='text'>
In routine _rtl_rx_pre_process(), skb_dequeue() is called to get an skb;
however, the wrong variable name is used in subsequent calls.

Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Cc: Guenter Roeck &lt;linux@roeck-us.net&gt;
Cc: Stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>brcmsmac: fix tx status processing</title>
<updated>2013-01-28T19:48:52Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2013-01-22T21:47:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0e33e48ddc4402e890aaeeeacc95f730bf522098'/>
<id>urn:sha1:0e33e48ddc4402e890aaeeeacc95f730bf522098</id>
<content type='text'>
This issue was reported on the wireless list (see [1]) in which
brcmsmac ran into a fatal error:

[  588.284074] brcmsmac bcma0:0: frameid != txh-&gt;TxFrameID
[  588.284098] brcmsmac bcma0:0: MI_TFS: fatal
[  588.284103] brcmsmac bcma0:0: wl0: fatal error, reinitializing
[  588.286208] ieee80211 phy0: Hardware restart was requested

The tx status feedback is processed in a loop limiting the number of
frames processed in one run. The code terminate processing when the
limit is reached regardless the txstatus value read from the device
register. When that status is is flagged as being valid it must be
processed as the hardware will clear it after is has been read.

Bisecting was done by Seth Forshee and showed following commit as the
culprit:

commit 57fe504817ccec9b6ac23e973d2925343bf1e3b6
Author: Piotr Haber &lt;phaber@broadcom.com&gt;
Date:   Wed Nov 28 21:44:07 2012 +0100

    brcmsmac: fix bounds checking in tx/rx

[1] http://www.spinics.net/lists/linux-wireless/msg101293.html

Reported-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Tested-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Reviewed-by: Hante Meuleman &lt;meuleman@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieterpg@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes</title>
<updated>2013-01-28T19:47:43Z</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2013-01-28T19:47:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=006da9ebba4f958812289c9f4df69d6c12a79eaf'/>
<id>urn:sha1:006da9ebba4f958812289c9f4df69d6c12a79eaf</id>
<content type='text'>
</content>
</entry>
</feed>
