<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/wireless/broadcom, branch linux-4.8.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>brcmfmac: use correct skb freeing helper when deleting flowring</title>
<updated>2016-10-22T10:40:23+00:00</updated>
<author>
<name>Rafał Miłecki</name>
<email>rafal@milecki.pl</email>
</author>
<published>2016-09-27T12:11:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9119232cc92a269d7860b4aa51f07d3923a3cc10'/>
<id>9119232cc92a269d7860b4aa51f07d3923a3cc10</id>
<content type='text'>
commit 7f00ee2bbc630900ba16fc2690473f3e2db0e264 upstream.

Flowrings contain skbs waiting for transmission that were passed to us
by netif. It means we checked every one of them looking for 802.1x
Ethernet type. When deleting flowring we have to use freeing function
that will check for 802.1x type as well.

Freeing skbs without a proper check was leading to counter not being
properly decreased. This was triggering a WARNING every time
brcmf_netdev_wait_pend8021x was called.

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Acked-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7f00ee2bbc630900ba16fc2690473f3e2db0e264 upstream.

Flowrings contain skbs waiting for transmission that were passed to us
by netif. It means we checked every one of them looking for 802.1x
Ethernet type. When deleting flowring we have to use freeing function
that will check for 802.1x type as well.

Freeing skbs without a proper check was leading to counter not being
properly decreased. This was triggering a WARNING every time
brcmf_netdev_wait_pend8021x was called.

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Acked-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>brcmfmac: fix memory leak in brcmf_fill_bss_param</title>
<updated>2016-10-22T10:40:23+00:00</updated>
<author>
<name>Rafał Miłecki</name>
<email>rafal@milecki.pl</email>
</author>
<published>2016-09-21T06:23:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5de3caefee0e48a924c8817ea10371a6a02fdf2b'/>
<id>5de3caefee0e48a924c8817ea10371a6a02fdf2b</id>
<content type='text'>
commit 23e9c128adb2038c27a424a5f91136e7fa3e0dc6 upstream.

This function is called from get_station callback which means that every
time user space was getting/dumping station(s) we were leaking 2 KiB.

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 23e9c128adb2038c27a424a5f91136e7fa3e0dc6 upstream.

This function is called from get_station callback which means that every
time user space was getting/dumping station(s) we were leaking 2 KiB.

Signed-off-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>brcmfmac: fix pmksa-&gt;bssid usage</title>
<updated>2016-10-22T10:40:23+00:00</updated>
<author>
<name>Nicolas Iooss</name>
<email>nicolas.iooss_linux@m4x.org</email>
</author>
<published>2016-08-23T09:37:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4a50f927452e20733353aec9da63fc69a8e2a93c'/>
<id>4a50f927452e20733353aec9da63fc69a8e2a93c</id>
<content type='text'>
commit 7703773ef1d85b40433902a8da20167331597e4a upstream.

The struct cfg80211_pmksa defines its bssid field as:

    const u8 *bssid;

contrary to struct brcmf_pmksa, which uses:

    u8 bssid[ETH_ALEN];

Therefore in brcmf_cfg80211_del_pmksa(), &amp;pmksa-&gt;bssid takes the address
of this field (of type u8**), not the one of its content (which would be
u8*).  Remove the &amp; operator to make brcmf_dbg("%pM") and memcmp()
behave as expected.

This bug have been found using a custom static checker (which checks the
usage of %p... attributes at build time).  It has been introduced in
commit 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code"),
which replaced pmksa-&gt;bssid by &amp;pmksa-&gt;bssid while refactoring the code,
without modifying struct cfg80211_pmksa definition.

Replace &amp;pmk[i].bssid with pmk[i].bssid too to make the code clearer,
this change does not affect the semantic.

Fixes: 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code")
Signed-off-by: Nicolas Iooss &lt;nicolas.iooss_linux@m4x.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 7703773ef1d85b40433902a8da20167331597e4a upstream.

The struct cfg80211_pmksa defines its bssid field as:

    const u8 *bssid;

contrary to struct brcmf_pmksa, which uses:

    u8 bssid[ETH_ALEN];

Therefore in brcmf_cfg80211_del_pmksa(), &amp;pmksa-&gt;bssid takes the address
of this field (of type u8**), not the one of its content (which would be
u8*).  Remove the &amp; operator to make brcmf_dbg("%pM") and memcmp()
behave as expected.

This bug have been found using a custom static checker (which checks the
usage of %p... attributes at build time).  It has been introduced in
commit 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code"),
which replaced pmksa-&gt;bssid by &amp;pmksa-&gt;bssid while refactoring the code,
without modifying struct cfg80211_pmksa definition.

Replace &amp;pmk[i].bssid with pmk[i].bssid too to make the code clearer,
this change does not affect the semantic.

Fixes: 6c404f34f2bd ("brcmfmac: Cleanup pmksa cache handling code")
Signed-off-by: Nicolas Iooss &lt;nicolas.iooss_linux@m4x.org&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>b43legacy: fix debugfs crash</title>
<updated>2016-10-22T10:40:22+00:00</updated>
<author>
<name>Christian Lamparter</name>
<email>chunkeey@googlemail.com</email>
</author>
<published>2016-09-17T19:43:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c5054f7709318ac0da1e3281148472d1b43e6717'/>
<id>c5054f7709318ac0da1e3281148472d1b43e6717</id>
<content type='text'>
commit 9c4a45b17e094a090e96beb1138e34c2a10c6b8c upstream.

This patch fixes a crash that happens because b43legacy's
debugfs code expects file-&gt;f_op to be a pointer to its own
b43legacy_debugfs_fops struct. This is no longer the case
since commit 9fd4dcece43a
("debugfs: prevent access to possibly dead file_operations at file open")

Reviewed-by: Nicolai Stange &lt;nicstange@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9c4a45b17e094a090e96beb1138e34c2a10c6b8c upstream.

This patch fixes a crash that happens because b43legacy's
debugfs code expects file-&gt;f_op to be a pointer to its own
b43legacy_debugfs_fops struct. This is no longer the case
since commit 9fd4dcece43a
("debugfs: prevent access to possibly dead file_operations at file open")

Reviewed-by: Nicolai Stange &lt;nicstange@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>b43: fix debugfs crash</title>
<updated>2016-10-22T10:40:22+00:00</updated>
<author>
<name>Christian Lamparter</name>
<email>chunkeey@googlemail.com</email>
</author>
<published>2016-09-17T19:43:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d7b41551c48d95640b92582bcb762e3517b5c418'/>
<id>d7b41551c48d95640b92582bcb762e3517b5c418</id>
<content type='text'>
commit 51b275a6fe5601834b717351d6cbdb89bd1f308b upstream.

This patch fixes a crash that happens because b43's
debugfs code expects file-&gt;f_op to be a pointer to
its own b43_debugfs_fops struct. This is no longer
the case since commit 9fd4dcece43a
("debugfs: prevent access to possibly dead file_operations at file open")

Reviewed-by: Nicolai Stange &lt;nicstange@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 51b275a6fe5601834b717351d6cbdb89bd1f308b upstream.

This patch fixes a crash that happens because b43's
debugfs code expects file-&gt;f_op to be a pointer to
its own b43_debugfs_fops struct. This is no longer
the case since commit 9fd4dcece43a
("debugfs: prevent access to possibly dead file_operations at file open")

Reviewed-by: Nicolai Stange &lt;nicstange@gmail.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>brcmfmac: avoid potential stack overflow in brcmf_cfg80211_start_ap()</title>
<updated>2016-09-07T13:43:50+00:00</updated>
<author>
<name>Arend Van Spriel</name>
<email>arend.vanspriel@broadcom.com</email>
</author>
<published>2016-09-05T09:45:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ded89912156b1a47d940a0c954c43afbabd0c42c'/>
<id>ded89912156b1a47d940a0c954c43afbabd0c42c</id>
<content type='text'>
User-space can choose to omit NL80211_ATTR_SSID and only provide raw
IE TLV data. When doing so it can provide SSID IE with length exceeding
the allowed size. The driver further processes this IE copying it
into a local variable without checking the length. Hence stack can be
corrupted and used as exploit.

Cc: stable@vger.kernel.org # v4.7
Reported-by: Daxing Guo &lt;freener.gdx@gmail.com&gt;
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.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
User-space can choose to omit NL80211_ATTR_SSID and only provide raw
IE TLV data. When doing so it can provide SSID IE with length exceeding
the allowed size. The driver further processes this IE copying it
into a local variable without checking the length. Hence stack can be
corrupted and used as exploit.

Cc: stable@vger.kernel.org # v4.7
Reported-by: Daxing Guo &lt;freener.gdx@gmail.com&gt;
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.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>brcmfmac: Change vif_event_lock to spinlock</title>
<updated>2016-08-24T13:13:48+00:00</updated>
<author>
<name>mhiramat@kernel.org</name>
<email>mhiramat@kernel.org</email>
</author>
<published>2016-08-15T09:41:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b64abcb7dae6060c67ab0e548da3ef923c49641d'/>
<id>b64abcb7dae6060c67ab0e548da3ef923c49641d</id>
<content type='text'>
Change vif_event_lock to spinlock from mutex, since this lock is
used in wait_event_timeout() via vif_event_equals(). This caused
a warning report as below.

As far as I can see, this lock protects regions where updating
structure members, not function calls. Also, since those
regions are not called from interrupt handlers (of course, it
was a mutex), spin_lock is used instead of spin_lock_irqsave.

[  186.678550] ------------[ cut here ]------------
[  186.678556] WARNING: CPU: 2 PID: 7140 at /home/mhiramat/ksrc/linux/kernel/sched/core.c:7545 __might_sleep+0x7c/0x80
[  186.678560] do not call blocking ops when !TASK_RUNNING; state=2 set at [&lt;ffffffff980d9090&gt;] prepare_to_wait_event+0x60/0x100
[  186.678560] Modules linked in: brcmfmac xt_CHECKSUM rfcomm ipt_MASQUERADE nf_nat_masquerade_ipv4 xt_addrtype br_netfilter xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_raw ip6table_security ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_filter ip6_tables iptable_raw iptable_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_filter ip_tables x_tables bnep nls_iso8859_1 i2c_designware_platform i2c_designware_core snd_hda_codec_hdmi snd_hda_codec_realtek dcdbas snd_hda_codec_generic snd_hda_intel snd_hda_codec intel_rapl snd_hda_core x86_pkg_temp_thermal intel_powerclamp coretemp
[  186.678594]  snd_pcm crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 joydev glue_helper snd_hwdep lrw gf128mul uvcvideo ablk_helper snd_seq_midi cryptd snd_seq_midi_event snd_rawmidi videobuf2_vmalloc videobuf2_memops snd_seq input_leds videobuf2_v4l2 cfg80211 videobuf2_core snd_timer videodev serio_raw btusb snd_seq_device media btrtl rtsx_pci_ms snd mei_me memstick hid_multitouch mei soundcore brcmutil idma64 virt_dma intel_lpss_pci processor_thermal_device intel_soc_dts_iosf hci_uart btbcm btqca btintel bluetooth int3403_thermal dell_smo8800 intel_lpss_acpi intel_lpss int3402_thermal int340x_thermal_zone intel_hid mac_hid int3400_thermal shpchp sparse_keymap acpi_pad acpi_thermal_rel acpi_als kfifo_buf industrialio kvm_intel kvm irqbypass parport_pc ppdev lp parport autofs4 btrfs xor raid6_pq
[  186.678631]  usbhid nouveau ttm i915 rtsx_pci_sdmmc mxm_wmi i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops psmouse drm ahci rtsx_pci nvme nvme_core libahci i2c_hid hid pinctrl_sunrisepoint video wmi pinctrl_intel fjes [last unloaded: brcmfmac]
[  186.678646] CPU: 2 PID: 7140 Comm: wpa_supplicant Not tainted 4.8.0-rc1+ #8
[  186.678647] Hardware name: Dell Inc. XPS 15 9550/0N7TVV, BIOS 01.02.00 04/07/2016
[  186.678648]  0000000000000000 ffff9d8c64b5b900 ffffffff98442f23 ffff9d8c64b5b950
[  186.678651]  0000000000000000 ffff9d8c64b5b940 ffffffff9808b22b 00001d790000000d
[  186.678653]  ffffffff98c75e78 000000000000026c 0000000000000000 ffff9d8c2706d058
[  186.678655] Call Trace:
[  186.678659]  [&lt;ffffffff98442f23&gt;] dump_stack+0x85/0xc2
[  186.678666]  [&lt;ffffffff9808b22b&gt;] __warn+0xcb/0xf0
[  186.678668]  [&lt;ffffffff9808b29f&gt;] warn_slowpath_fmt+0x4f/0x60
[  186.678671]  [&lt;ffffffff980d9090&gt;] ? prepare_to_wait_event+0x60/0x100
[  186.678672]  [&lt;ffffffff980d9090&gt;] ? prepare_to_wait_event+0x60/0x100
[  186.678674]  [&lt;ffffffff980b922c&gt;] __might_sleep+0x7c/0x80
[  186.678680]  [&lt;ffffffff988b0853&gt;] mutex_lock_nested+0x33/0x3b0
[  186.678682]  [&lt;ffffffff980e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[  186.678689]  [&lt;ffffffffc0c57d2d&gt;] brcmf_cfg80211_wait_vif_event+0xcd/0x130 [brcmfmac]
[  186.678691]  [&lt;ffffffff980d9190&gt;] ? wake_atomic_t_function+0x60/0x60
[  186.678697]  [&lt;ffffffffc0c628e9&gt;] brcmf_p2p_del_vif+0xf9/0x220 [brcmfmac]
[  186.678702]  [&lt;ffffffffc0c57fab&gt;] brcmf_cfg80211_del_iface+0x21b/0x270 [brcmfmac]
[  186.678716]  [&lt;ffffffffc0b0539e&gt;] nl80211_del_interface+0xfe/0x3a0 [cfg80211]
[  186.678718]  [&lt;ffffffff987ca335&gt;] genl_family_rcv_msg+0x1b5/0x370
[  186.678720]  [&lt;ffffffff980e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[  186.678721]  [&lt;ffffffff987ca56d&gt;] genl_rcv_msg+0x7d/0xb0
[  186.678722]  [&lt;ffffffff987ca4f0&gt;] ? genl_family_rcv_msg+0x370/0x370
[  186.678724]  [&lt;ffffffff987c9a47&gt;] netlink_rcv_skb+0x97/0xb0
[  186.678726]  [&lt;ffffffff987ca168&gt;] genl_rcv+0x28/0x40
[  186.678727]  [&lt;ffffffff987c93c3&gt;] netlink_unicast+0x1d3/0x2f0
[  186.678729]  [&lt;ffffffff987c933b&gt;] ? netlink_unicast+0x14b/0x2f0
[  186.678731]  [&lt;ffffffff987c97cb&gt;] netlink_sendmsg+0x2eb/0x3a0
[  186.678733]  [&lt;ffffffff9876dad8&gt;] sock_sendmsg+0x38/0x50
[  186.678734]  [&lt;ffffffff9876e4df&gt;] ___sys_sendmsg+0x27f/0x290
[  186.678737]  [&lt;ffffffff9828b935&gt;] ? mntput_no_expire+0x5/0x3f0
[  186.678739]  [&lt;ffffffff9828b9be&gt;] ? mntput_no_expire+0x8e/0x3f0
[  186.678741]  [&lt;ffffffff9828b935&gt;] ? mntput_no_expire+0x5/0x3f0
[  186.678743]  [&lt;ffffffff9828bd44&gt;] ? mntput+0x24/0x40
[  186.678744]  [&lt;ffffffff98267830&gt;] ? __fput+0x190/0x200
[  186.678746]  [&lt;ffffffff9876f125&gt;] __sys_sendmsg+0x45/0x80
[  186.678748]  [&lt;ffffffff9876f172&gt;] SyS_sendmsg+0x12/0x20
[  186.678749]  [&lt;ffffffff988b5680&gt;] entry_SYSCALL_64_fastpath+0x23/0xc1
[  186.678751]  [&lt;ffffffff980e2b8f&gt;] ? trace_hardirqs_off_caller+0x1f/0xc0
[  186.678752] ---[ end trace e224d66c5d8408b5 ]---

Signed-off-by: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change vif_event_lock to spinlock from mutex, since this lock is
used in wait_event_timeout() via vif_event_equals(). This caused
a warning report as below.

As far as I can see, this lock protects regions where updating
structure members, not function calls. Also, since those
regions are not called from interrupt handlers (of course, it
was a mutex), spin_lock is used instead of spin_lock_irqsave.

[  186.678550] ------------[ cut here ]------------
[  186.678556] WARNING: CPU: 2 PID: 7140 at /home/mhiramat/ksrc/linux/kernel/sched/core.c:7545 __might_sleep+0x7c/0x80
[  186.678560] do not call blocking ops when !TASK_RUNNING; state=2 set at [&lt;ffffffff980d9090&gt;] prepare_to_wait_event+0x60/0x100
[  186.678560] Modules linked in: brcmfmac xt_CHECKSUM rfcomm ipt_MASQUERADE nf_nat_masquerade_ipv4 xt_addrtype br_netfilter xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_raw ip6table_security ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_filter ip6_tables iptable_raw iptable_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_filter ip_tables x_tables bnep nls_iso8859_1 i2c_designware_platform i2c_designware_core snd_hda_codec_hdmi snd_hda_codec_realtek dcdbas snd_hda_codec_generic snd_hda_intel snd_hda_codec intel_rapl snd_hda_core x86_pkg_temp_thermal intel_powerclamp coretemp
[  186.678594]  snd_pcm crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 joydev glue_helper snd_hwdep lrw gf128mul uvcvideo ablk_helper snd_seq_midi cryptd snd_seq_midi_event snd_rawmidi videobuf2_vmalloc videobuf2_memops snd_seq input_leds videobuf2_v4l2 cfg80211 videobuf2_core snd_timer videodev serio_raw btusb snd_seq_device media btrtl rtsx_pci_ms snd mei_me memstick hid_multitouch mei soundcore brcmutil idma64 virt_dma intel_lpss_pci processor_thermal_device intel_soc_dts_iosf hci_uart btbcm btqca btintel bluetooth int3403_thermal dell_smo8800 intel_lpss_acpi intel_lpss int3402_thermal int340x_thermal_zone intel_hid mac_hid int3400_thermal shpchp sparse_keymap acpi_pad acpi_thermal_rel acpi_als kfifo_buf industrialio kvm_intel kvm irqbypass parport_pc ppdev lp parport autofs4 btrfs xor raid6_pq
[  186.678631]  usbhid nouveau ttm i915 rtsx_pci_sdmmc mxm_wmi i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops psmouse drm ahci rtsx_pci nvme nvme_core libahci i2c_hid hid pinctrl_sunrisepoint video wmi pinctrl_intel fjes [last unloaded: brcmfmac]
[  186.678646] CPU: 2 PID: 7140 Comm: wpa_supplicant Not tainted 4.8.0-rc1+ #8
[  186.678647] Hardware name: Dell Inc. XPS 15 9550/0N7TVV, BIOS 01.02.00 04/07/2016
[  186.678648]  0000000000000000 ffff9d8c64b5b900 ffffffff98442f23 ffff9d8c64b5b950
[  186.678651]  0000000000000000 ffff9d8c64b5b940 ffffffff9808b22b 00001d790000000d
[  186.678653]  ffffffff98c75e78 000000000000026c 0000000000000000 ffff9d8c2706d058
[  186.678655] Call Trace:
[  186.678659]  [&lt;ffffffff98442f23&gt;] dump_stack+0x85/0xc2
[  186.678666]  [&lt;ffffffff9808b22b&gt;] __warn+0xcb/0xf0
[  186.678668]  [&lt;ffffffff9808b29f&gt;] warn_slowpath_fmt+0x4f/0x60
[  186.678671]  [&lt;ffffffff980d9090&gt;] ? prepare_to_wait_event+0x60/0x100
[  186.678672]  [&lt;ffffffff980d9090&gt;] ? prepare_to_wait_event+0x60/0x100
[  186.678674]  [&lt;ffffffff980b922c&gt;] __might_sleep+0x7c/0x80
[  186.678680]  [&lt;ffffffff988b0853&gt;] mutex_lock_nested+0x33/0x3b0
[  186.678682]  [&lt;ffffffff980e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[  186.678689]  [&lt;ffffffffc0c57d2d&gt;] brcmf_cfg80211_wait_vif_event+0xcd/0x130 [brcmfmac]
[  186.678691]  [&lt;ffffffff980d9190&gt;] ? wake_atomic_t_function+0x60/0x60
[  186.678697]  [&lt;ffffffffc0c628e9&gt;] brcmf_p2p_del_vif+0xf9/0x220 [brcmfmac]
[  186.678702]  [&lt;ffffffffc0c57fab&gt;] brcmf_cfg80211_del_iface+0x21b/0x270 [brcmfmac]
[  186.678716]  [&lt;ffffffffc0b0539e&gt;] nl80211_del_interface+0xfe/0x3a0 [cfg80211]
[  186.678718]  [&lt;ffffffff987ca335&gt;] genl_family_rcv_msg+0x1b5/0x370
[  186.678720]  [&lt;ffffffff980e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[  186.678721]  [&lt;ffffffff987ca56d&gt;] genl_rcv_msg+0x7d/0xb0
[  186.678722]  [&lt;ffffffff987ca4f0&gt;] ? genl_family_rcv_msg+0x370/0x370
[  186.678724]  [&lt;ffffffff987c9a47&gt;] netlink_rcv_skb+0x97/0xb0
[  186.678726]  [&lt;ffffffff987ca168&gt;] genl_rcv+0x28/0x40
[  186.678727]  [&lt;ffffffff987c93c3&gt;] netlink_unicast+0x1d3/0x2f0
[  186.678729]  [&lt;ffffffff987c933b&gt;] ? netlink_unicast+0x14b/0x2f0
[  186.678731]  [&lt;ffffffff987c97cb&gt;] netlink_sendmsg+0x2eb/0x3a0
[  186.678733]  [&lt;ffffffff9876dad8&gt;] sock_sendmsg+0x38/0x50
[  186.678734]  [&lt;ffffffff9876e4df&gt;] ___sys_sendmsg+0x27f/0x290
[  186.678737]  [&lt;ffffffff9828b935&gt;] ? mntput_no_expire+0x5/0x3f0
[  186.678739]  [&lt;ffffffff9828b9be&gt;] ? mntput_no_expire+0x8e/0x3f0
[  186.678741]  [&lt;ffffffff9828b935&gt;] ? mntput_no_expire+0x5/0x3f0
[  186.678743]  [&lt;ffffffff9828bd44&gt;] ? mntput+0x24/0x40
[  186.678744]  [&lt;ffffffff98267830&gt;] ? __fput+0x190/0x200
[  186.678746]  [&lt;ffffffff9876f125&gt;] __sys_sendmsg+0x45/0x80
[  186.678748]  [&lt;ffffffff9876f172&gt;] SyS_sendmsg+0x12/0x20
[  186.678749]  [&lt;ffffffff988b5680&gt;] entry_SYSCALL_64_fastpath+0x23/0xc1
[  186.678751]  [&lt;ffffffff980e2b8f&gt;] ? trace_hardirqs_off_caller+0x1f/0xc0
[  186.678752] ---[ end trace e224d66c5d8408b5 ]---

Signed-off-by: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>brcmfmac: Check rtnl_lock is locked when removing interface</title>
<updated>2016-08-24T13:13:47+00:00</updated>
<author>
<name>mhiramat@kernel.org</name>
<email>mhiramat@kernel.org</email>
</author>
<published>2016-08-15T09:40:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=15dacf880e49ce3ecee05eb1a0c6b8e363dbacdc'/>
<id>15dacf880e49ce3ecee05eb1a0c6b8e363dbacdc</id>
<content type='text'>
Check rtnl_lock is locked in brcmf_p2p_ifp_removed() by passing
rtnl_locked flag. Actually the caller brcmf_del_if() checks whether
the rtnl_lock is locked, but doesn't pass it to brcmf_p2p_ifp_removed().

Without this fix, wpa_supplicant goes softlockup with rtnl_lock
holding (this means all other process using netlink are locked up too)

e.g.
[ 4495.876627] INFO: task wpa_supplicant:7307 blocked for more than 10 seconds.
[ 4495.876632]       Tainted: G        W       4.8.0-rc1+ #8
[ 4495.876635] "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 4495.876638] wpa_supplicant  D ffff974c647b39a0     0  7307      1 0x00000000
[ 4495.876644]  ffff974c647b39a0 0000000000000000 ffff974c00000000 ffff974c7dc59c58
[ 4495.876651]  ffff974c6b7417c0 ffff974c645017c0 ffff974c647b4000 ffffffff86f16c08
[ 4495.876657]  ffff974c645017c0 0000000000000246 00000000ffffffff ffff974c647b39b8
[ 4495.876664] Call Trace:
[ 4495.876671]  [&lt;ffffffff868aeccc&gt;] schedule+0x3c/0x90
[ 4495.876676]  [&lt;ffffffff868af065&gt;] schedule_preempt_disabled+0x15/0x20
[ 4495.876682]  [&lt;ffffffff868b0996&gt;] mutex_lock_nested+0x176/0x3b0
[ 4495.876686]  [&lt;ffffffff867a2067&gt;] ? rtnl_lock+0x17/0x20
[ 4495.876690]  [&lt;ffffffff867a2067&gt;] rtnl_lock+0x17/0x20
[ 4495.876720]  [&lt;ffffffffc0ae9a5d&gt;] brcmf_p2p_ifp_removed+0x4d/0x70 [brcmfmac]
[ 4495.876741]  [&lt;ffffffffc0aebde6&gt;] brcmf_remove_interface+0x196/0x1b0 [brcmfmac]
[ 4495.876760]  [&lt;ffffffffc0ae9901&gt;] brcmf_p2p_del_vif+0x111/0x220 [brcmfmac]
[ 4495.876777]  [&lt;ffffffffc0adefab&gt;] brcmf_cfg80211_del_iface+0x21b/0x270 [brcmfmac]
[ 4495.876820]  [&lt;ffffffffc097b39e&gt;] nl80211_del_interface+0xfe/0x3a0 [cfg80211]
[ 4495.876825]  [&lt;ffffffff867ca335&gt;] genl_family_rcv_msg+0x1b5/0x370
[ 4495.876832]  [&lt;ffffffff860e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[ 4495.876836]  [&lt;ffffffff867ca56d&gt;] genl_rcv_msg+0x7d/0xb0
[ 4495.876839]  [&lt;ffffffff867ca4f0&gt;] ? genl_family_rcv_msg+0x370/0x370
[ 4495.876846]  [&lt;ffffffff867c9a47&gt;] netlink_rcv_skb+0x97/0xb0
[ 4495.876849]  [&lt;ffffffff867ca168&gt;] genl_rcv+0x28/0x40
[ 4495.876854]  [&lt;ffffffff867c93c3&gt;] netlink_unicast+0x1d3/0x2f0
[ 4495.876860]  [&lt;ffffffff867c933b&gt;] ? netlink_unicast+0x14b/0x2f0
[ 4495.876866]  [&lt;ffffffff867c97cb&gt;] netlink_sendmsg+0x2eb/0x3a0
[ 4495.876870]  [&lt;ffffffff8676dad8&gt;] sock_sendmsg+0x38/0x50
[ 4495.876874]  [&lt;ffffffff8676e4df&gt;] ___sys_sendmsg+0x27f/0x290
[ 4495.876882]  [&lt;ffffffff8628b935&gt;] ? mntput_no_expire+0x5/0x3f0
[ 4495.876888]  [&lt;ffffffff8628b9be&gt;] ? mntput_no_expire+0x8e/0x3f0
[ 4495.876894]  [&lt;ffffffff8628b935&gt;] ? mntput_no_expire+0x5/0x3f0
[ 4495.876899]  [&lt;ffffffff8628bd44&gt;] ? mntput+0x24/0x40
[ 4495.876904]  [&lt;ffffffff86267830&gt;] ? __fput+0x190/0x200
[ 4495.876909]  [&lt;ffffffff8676f125&gt;] __sys_sendmsg+0x45/0x80
[ 4495.876914]  [&lt;ffffffff8676f172&gt;] SyS_sendmsg+0x12/0x20
[ 4495.876918]  [&lt;ffffffff868b5680&gt;] entry_SYSCALL_64_fastpath+0x23/0xc1
[ 4495.876924]  [&lt;ffffffff860e2b8f&gt;] ? trace_hardirqs_off_caller+0x1f/0xc0

Signed-off-by: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Acked-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check rtnl_lock is locked in brcmf_p2p_ifp_removed() by passing
rtnl_locked flag. Actually the caller brcmf_del_if() checks whether
the rtnl_lock is locked, but doesn't pass it to brcmf_p2p_ifp_removed().

Without this fix, wpa_supplicant goes softlockup with rtnl_lock
holding (this means all other process using netlink are locked up too)

e.g.
[ 4495.876627] INFO: task wpa_supplicant:7307 blocked for more than 10 seconds.
[ 4495.876632]       Tainted: G        W       4.8.0-rc1+ #8
[ 4495.876635] "echo 0 &gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 4495.876638] wpa_supplicant  D ffff974c647b39a0     0  7307      1 0x00000000
[ 4495.876644]  ffff974c647b39a0 0000000000000000 ffff974c00000000 ffff974c7dc59c58
[ 4495.876651]  ffff974c6b7417c0 ffff974c645017c0 ffff974c647b4000 ffffffff86f16c08
[ 4495.876657]  ffff974c645017c0 0000000000000246 00000000ffffffff ffff974c647b39b8
[ 4495.876664] Call Trace:
[ 4495.876671]  [&lt;ffffffff868aeccc&gt;] schedule+0x3c/0x90
[ 4495.876676]  [&lt;ffffffff868af065&gt;] schedule_preempt_disabled+0x15/0x20
[ 4495.876682]  [&lt;ffffffff868b0996&gt;] mutex_lock_nested+0x176/0x3b0
[ 4495.876686]  [&lt;ffffffff867a2067&gt;] ? rtnl_lock+0x17/0x20
[ 4495.876690]  [&lt;ffffffff867a2067&gt;] rtnl_lock+0x17/0x20
[ 4495.876720]  [&lt;ffffffffc0ae9a5d&gt;] brcmf_p2p_ifp_removed+0x4d/0x70 [brcmfmac]
[ 4495.876741]  [&lt;ffffffffc0aebde6&gt;] brcmf_remove_interface+0x196/0x1b0 [brcmfmac]
[ 4495.876760]  [&lt;ffffffffc0ae9901&gt;] brcmf_p2p_del_vif+0x111/0x220 [brcmfmac]
[ 4495.876777]  [&lt;ffffffffc0adefab&gt;] brcmf_cfg80211_del_iface+0x21b/0x270 [brcmfmac]
[ 4495.876820]  [&lt;ffffffffc097b39e&gt;] nl80211_del_interface+0xfe/0x3a0 [cfg80211]
[ 4495.876825]  [&lt;ffffffff867ca335&gt;] genl_family_rcv_msg+0x1b5/0x370
[ 4495.876832]  [&lt;ffffffff860e5d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[ 4495.876836]  [&lt;ffffffff867ca56d&gt;] genl_rcv_msg+0x7d/0xb0
[ 4495.876839]  [&lt;ffffffff867ca4f0&gt;] ? genl_family_rcv_msg+0x370/0x370
[ 4495.876846]  [&lt;ffffffff867c9a47&gt;] netlink_rcv_skb+0x97/0xb0
[ 4495.876849]  [&lt;ffffffff867ca168&gt;] genl_rcv+0x28/0x40
[ 4495.876854]  [&lt;ffffffff867c93c3&gt;] netlink_unicast+0x1d3/0x2f0
[ 4495.876860]  [&lt;ffffffff867c933b&gt;] ? netlink_unicast+0x14b/0x2f0
[ 4495.876866]  [&lt;ffffffff867c97cb&gt;] netlink_sendmsg+0x2eb/0x3a0
[ 4495.876870]  [&lt;ffffffff8676dad8&gt;] sock_sendmsg+0x38/0x50
[ 4495.876874]  [&lt;ffffffff8676e4df&gt;] ___sys_sendmsg+0x27f/0x290
[ 4495.876882]  [&lt;ffffffff8628b935&gt;] ? mntput_no_expire+0x5/0x3f0
[ 4495.876888]  [&lt;ffffffff8628b9be&gt;] ? mntput_no_expire+0x8e/0x3f0
[ 4495.876894]  [&lt;ffffffff8628b935&gt;] ? mntput_no_expire+0x5/0x3f0
[ 4495.876899]  [&lt;ffffffff8628bd44&gt;] ? mntput+0x24/0x40
[ 4495.876904]  [&lt;ffffffff86267830&gt;] ? __fput+0x190/0x200
[ 4495.876909]  [&lt;ffffffff8676f125&gt;] __sys_sendmsg+0x45/0x80
[ 4495.876914]  [&lt;ffffffff8676f172&gt;] SyS_sendmsg+0x12/0x20
[ 4495.876918]  [&lt;ffffffff868b5680&gt;] entry_SYSCALL_64_fastpath+0x23/0xc1
[ 4495.876924]  [&lt;ffffffff860e2b8f&gt;] ? trace_hardirqs_off_caller+0x1f/0xc0

Signed-off-by: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Acked-by: Rafał Miłecki &lt;rafal@milecki.pl&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get()</title>
<updated>2016-07-19T18:14:20+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-18T23:24:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f823a2aa8f4674c095a5413b9e3ba12d82df06f2'/>
<id>f823a2aa8f4674c095a5413b9e3ba12d82df06f2</id>
<content type='text'>
wlc_phy_txpower_get_current() does a logical OR of power-&gt;flags, which
presumes that power.flags was initiliazed earlier by the caller,
unfortunately, this is not the case, so make sure we zero out the struct
tx_power before calling into wlc_phy_txpower_get_current().

Reported-by: coverity (CID 146011)
Fixes: 5b435de0d7868 ("net: wireless: add brcm80211 drivers")
Signed-off-by: Florian Fainelli &lt;f.fainelli@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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
wlc_phy_txpower_get_current() does a logical OR of power-&gt;flags, which
presumes that power.flags was initiliazed earlier by the caller,
unfortunately, this is not the case, so make sure we zero out the struct
tx_power before calling into wlc_phy_txpower_get_current().

Reported-by: coverity (CID 146011)
Fixes: 5b435de0d7868 ("net: wireless: add brcm80211 drivers")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Arend van Spriel &lt;arend.vanspriel@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill</title>
<updated>2016-07-19T18:14:20+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>f.fainelli@gmail.com</email>
</author>
<published>2016-07-18T23:24:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5c5fa1f464ac954982df1d96b9f9a5103d21aedd'/>
<id>5c5fa1f464ac954982df1d96b9f9a5103d21aedd</id>
<content type='text'>
In case dma_mapping_error() returns an error in dma_rxfill, we would be
leaking a packet that we allocated with brcmu_pkt_buf_get_skb().

Reported-by: coverity (CID 1081819)
Fixes: 67d0cf50bd32 ("brcmsmac: Fix WARNING caused by lack of calls to dma_mapping_error()")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case dma_mapping_error() returns an error in dma_rxfill, we would be
leaking a packet that we allocated with brcmu_pkt_buf_get_skb().

Reported-by: coverity (CID 1081819)
Fixes: 67d0cf50bd32 ("brcmsmac: Fix WARNING caused by lack of calls to dma_mapping_error()")
Signed-off-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Arend van Spriel &lt;arend@broadcom.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
