<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/wireless/broadcom, branch v4.7</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=v4.7</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.7'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-06-03T08:17:45Z</updated>
<entry>
<title>brcmfmac: add eth_type_trans back for PCIe full dongle</title>
<updated>2016-06-03T08:17:45Z</updated>
<author>
<name>Franky Lin</name>
<email>franky.lin@broadcom.com</email>
</author>
<published>2016-06-02T09:00:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=31143e2933d1675c4c1ba6ce125cdd95870edd85'/>
<id>urn:sha1:31143e2933d1675c4c1ba6ce125cdd95870edd85</id>
<content type='text'>
A regression was introduced in commit 9c349892ccc9 ("brcmfmac: revise
handling events in receive path") which moves eth_type_trans() call
to brcmf_rx_frame(). Msgbuf layer doesn't use brcmf_rx_frame() but invokes
brcmf_netif_rx() directly. In such case the Ethernet header was not
stripped out resulting in null pointer dereference in the networking
stack.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
IP: [&lt;ffffffff814c3ce6&gt;] enqueue_to_backlog+0x56/0x260
PGD 0
Oops: 0000 [#1] PREEMPT SMP
Modules linked in: fuse ipt_MASQUERADE nf_nat_masquerade_ipv4
iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 xt_addrtype
[...]
rtsx_pci scsi_mod usbcore usb_common i8042 serio nvme nvme_core
CPU: 7 PID: 1340 Comm: irq/136-brcmf_p Not tainted 4.7.0-rc1-mainline #1
Hardware name: Dell Inc. XPS 15 9550/0N7TVV, BIOS 01.02.00 04/07/2016
task: ffff8804a0c5bd00 ti: ffff88049e124000 task.ti: ffff88049e124000
RIP: 0010:[&lt;ffffffff814c3ce6&gt;] [&lt;ffffffff814c3ce6&gt;]
enqueue_to_backlog+0x56/0x260
RSP: 0018:ffff88049e127ca0 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff8804bddd7c40 RCX: 000000000000002f
RDX: 0000000000000000 RSI: 0000000000000007 RDI: ffff8804bddd7d4c
RBP: ffff88049e127ce8 R08: 0000000000000000 R09: 0000000000000000
R10: ffff8804bddd12c0 R11: 000000000000149e R12: 0000000000017c40
R13: ffff88049e127d08 R14: ffff8804a9bd6d00 R15: ffff8804bddd7d4c
FS: 0000000000000000(0000) GS:ffff8804bddc0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000048 CR3: 0000000001806000 CR4: 00000000003406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Stack:
ffff8804bdddad00 ffff8804ad089e00 0000000000000000 0000000000000282
0000000000000000 ffff8804a9bd6d00 ffff8804a1b27e00 ffff8804a9bd6d00
ffff88002ee88000 ffff88049e127d28 ffffffff814c3f3b ffffffff81311fc3
Call Trace:
[&lt;ffffffff814c3f3b&gt;] netif_rx_internal+0x4b/0x170
[&lt;ffffffff81311fc3&gt;] ? swiotlb_tbl_unmap_single+0xf3/0x120
[&lt;ffffffff814c5467&gt;] netif_rx_ni+0x27/0xc0
[&lt;ffffffffa08519e9&gt;] brcmf_netif_rx+0x49/0x70 [brcmfmac]
[&lt;ffffffffa08564d4&gt;] brcmf_msgbuf_process_rx+0x2b4/0x570 [brcmfmac]
[&lt;ffffffff81020017&gt;] ? __xen_set_pgd_hyper+0x57/0xd0
[&lt;ffffffff810d60b0&gt;] ? irq_forced_thread_fn+0x70/0x70
[&lt;ffffffffa0857381&gt;] brcmf_proto_msgbuf_rx_trigger+0x31/0xe0 [brcmfmac]
[&lt;ffffffffa0861e8f&gt;] brcmf_pcie_isr_thread+0x7f/0x110 [brcmfmac]
[&lt;ffffffff810d60d0&gt;] irq_thread_fn+0x20/0x50
[&lt;ffffffff810d63ad&gt;] irq_thread+0x12d/0x1c0
[&lt;ffffffff815d07d5&gt;] ? __schedule+0x2f5/0x7a0
[&lt;ffffffff810d61d0&gt;] ? wake_threads_waitq+0x30/0x30
[&lt;ffffffff810d6280&gt;] ? irq_thread_dtor+0xb0/0xb0
[&lt;ffffffff81098ea8&gt;] kthread+0xd8/0xf0
[&lt;ffffffff815d4b7f&gt;] ret_from_fork+0x1f/0x40
[&lt;ffffffff81098dd0&gt;] ? kthread_worker_fn+0x170/0x170
Code: 1c f5 60 9a 8e 81 9c 58 0f 1f 44 00 00 48 89 45 d0 fa 66 0f 1f
44 00 00 4c 8d bb 0c 01 00 00 4c 89 ff e8 5e 08 11 00 49 8b 56 20 &lt;48&gt;
8b 52 48 83 e2 01 74 10 8b 8b 08 01 00 00 8b 15 59 c5 42 00
RIP [&lt;ffffffff814c3ce6&gt;] enqueue_to_backlog+0x56/0x260
RSP &lt;ffff88049e127ca0&gt;
CR2: 0000000000000048

Fixes: 9c349892ccc9 ("brcmfmac: revise handling events in receive path")
Reported-by: Rafal Milecki &lt;zajec5@gmail.com&gt;
Reported-by: Grey Christoforo &lt;grey@christoforo.net&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieter-paul.giesberts@broadcom.com&gt;
Reviewed-by: Arend Van Spriel &lt;arend@broadcom.com&gt;
Reviewed-by: Hante Meuleman &lt;hante.meuleman@broadcom.com&gt;
Signed-off-by: Franky Lin &lt;franky.lin@broadcom.com&gt;
[arend@broadcom.com: rephrased the commit message]
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcmfmac: add fallback for devices that do not report per-chain values</title>
<updated>2016-05-27T17:52:29Z</updated>
<author>
<name>Jaap Jan Meijer</name>
<email>jjmeijer88@gmail.com</email>
</author>
<published>2016-05-12T16:25:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=94abd778a7bb00ed5d00f56d9fbfcbf5b7c02a5c'/>
<id>urn:sha1:94abd778a7bb00ed5d00f56d9fbfcbf5b7c02a5c</id>
<content type='text'>
If brcmf_cfg80211_get_station fails to determine the RSSI from the
per-chain values get the value individually as a fallback.

Fixes: 1f0dc59a6de9 ("brcmfmac: rework .get_station() callback")
Signed-off-by: Jaap Jan Meijer &lt;jjmeijer88@gmail.com&gt;
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'wireless-drivers-next-for-davem-2016-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next</title>
<updated>2016-05-20T23:40:35Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2016-05-20T23:40:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=56025caa821d8e398b7cff2c45fb1e3e769549d7'/>
<id>urn:sha1:56025caa821d8e398b7cff2c45fb1e3e769549d7</id>
<content type='text'>
Kalle Valo says:

====================
wireless-drivers patches for 4.7

Major changes:

iwlwifi

* remove IWLWIFI_DEBUG_EXPERIMENTAL_UCODE kconfig option
* work for RX multiqueue continues
* dynamic queue allocation work continues
* add Luca as maintainer
* a bunch of fixes and improvements all over

brcmfmac

* add 4356 sdio support

ath6kl

* add ability to set debug uart baud rate with a module parameter

wil6210

* add debugfs file to configure firmware led functionality
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>brcmfmac: Add 4356 sdio support</title>
<updated>2016-05-11T18:55:12Z</updated>
<author>
<name>Christian Daudt</name>
<email>csd@broadcom.com</email>
</author>
<published>2016-05-05T00:55:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=496aec577b5183716ed9d8bcc853ad9003485fe8'/>
<id>urn:sha1:496aec577b5183716ed9d8bcc853ad9003485fe8</id>
<content type='text'>
This adds support for the 4356-sdio wireless chip.

Signed-off-by: Christian Daudt &lt;csd@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcm80211: correct speed testing</title>
<updated>2016-05-03T19:49:34Z</updated>
<author>
<name>Oliver Neukum</name>
<email>oneukum@suse.com</email>
</author>
<published>2016-05-02T11:06:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8caf115c726e87526c4a1cbd8ba616d6a022ccd8'/>
<id>urn:sha1:8caf115c726e87526c4a1cbd8ba616d6a022ccd8</id>
<content type='text'>
Allow for SS+ USB

Signed-off-by: Oliver Neukum &lt;ONeukum@suse.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>brcmfmac: testing the wrong variable in brcmf_rx_hdrpull()</title>
<updated>2016-04-26T09:29:43Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2016-04-19T14:25:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=81542fac6eae586e0d6fd502618342e8e20b4c5a'/>
<id>urn:sha1:81542fac6eae586e0d6fd502618342e8e20b4c5a</id>
<content type='text'>
Smatch complains about this code:

    drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c:335 brcmf_rx_hdrpull()
    error: we previously assumed '*ifp' could be null (see line 333)

The problem is that we recently changed these from "ifp" to "*ifp" but
there was one that we didn't update.

-       if (ret || !ifp || !ifp-&gt;ndev) {
+       if (ret || !(*ifp) || !(*ifp)-&gt;ndev) {
                if (ret != -ENODATA &amp;&amp; ifp)
                                       ^^^
-                       ifp-&gt;stats.rx_errors++;
+                       (*ifp)-&gt;stats.rx_errors++;

I have updated it to *ifp as well.  We always call this function is a
non-NULL "ifp" pointer, btw.

Fixes: c462ebcdfe42 ('brcmfmac: create common function for handling brcmf_proto_hdrpull()')
Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcmf: Fix null pointer exception in bcdc_hdrpull</title>
<updated>2016-04-26T09:18:37Z</updated>
<author>
<name>Per Forlin</name>
<email>per.forlin@gmail.com</email>
</author>
<published>2016-04-17T13:25:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=53985dccb1c98b7af080e2314bff0c5024e781b0'/>
<id>urn:sha1:53985dccb1c98b7af080e2314bff0c5024e781b0</id>
<content type='text'>
In fwsignal.c: brcmf_fws_commit_skb()
...
if (rc &lt; 0) {
  entry-&gt;transit_count--;
    if (entry-&gt;suppressed)
      entry-&gt;suppr_transit_count--;
      (void)brcmf_proto_hdrpull(fws-&gt;drvr, false, skb, NULL);
                                                     ^^^^^^^
    goto rollback;
}
...

The call to hdrpull will trigger a null pointer exception
unless a null check is made in the method implementation.

Signed-off-by: Per Forlin &lt;per.forlin@gmail.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcmfmac: add support for nl80211 BSS_SELECT feature</title>
<updated>2016-04-26T09:14:27Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2016-04-17T14:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7705ba6f7badb8cf38a0a19dad71e11a77ecb9cd'/>
<id>urn:sha1:7705ba6f7badb8cf38a0a19dad71e11a77ecb9cd</id>
<content type='text'>
Announce support for nl80211 feature BSS_SELECT and process
BSS selection behaviour provided in .connect() callback.

Reviewed-by: Hante Meuleman &lt;meuleman@broadcom.com&gt;
Reviewed-by: Franky (Zhenhui) Lin &lt;frankyl@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieterpg@broadcom.com&gt;
Reviewed-by: Lei Zhang &lt;leizh@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcmfmac: create common function for handling brcmf_proto_hdrpull()</title>
<updated>2016-04-14T12:57:56Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2016-04-11T09:35:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c462ebcdfe425a132aaba950d114ac32de3cdf44'/>
<id>urn:sha1:c462ebcdfe425a132aaba950d114ac32de3cdf44</id>
<content type='text'>
In receive path brcmf_proto_hdrpull() needs to be called and handled
similar in brcmf_rx_frame() and brcmf_rx_event(). Move that duplicated
code in separate function.

Reviewed-by: Hante Meuleman &lt;hante.meuleman@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieter-paul.giesberts@broadcom.com&gt;
Reviewed-by: Franky Lin &lt;franky.lin@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>brcmfmac: revise handling events in receive path</title>
<updated>2016-04-14T12:57:52Z</updated>
<author>
<name>Arend van Spriel</name>
<email>arend@broadcom.com</email>
</author>
<published>2016-04-11T09:35:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9c349892ccc90c6de2baaa69cc78449f58082273'/>
<id>urn:sha1:9c349892ccc90c6de2baaa69cc78449f58082273</id>
<content type='text'>
Move event handling out of brcmf_netif_rx() avoiding the need
to pass a flag. This flag is only ever true for USB hosts as
other interface use separate brcmf_rx_event() function.

Reviewed-by: Hante Meuleman &lt;hante.meuleman@broadcom.com&gt;
Reviewed-by: Pieter-Paul Giesberts &lt;pieter-paul.giesberts@broadcom.com&gt;
Reviewed-by: Franky Lin &lt;franky.lin@broadcom.com&gt;
Signed-off-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
</entry>
</feed>
