linux/drivers/net
Guenter Roeck 46eafd0f59 brcmfmac: abort and release host after error
[ Upstream commit 863844ee3b ]

With commit 216b44000a ("brcmfmac: Fix use after free in
brcmf_sdio_readframes()") applied, we see locking timeouts in
brcmf_sdio_watchdog_thread().

brcmfmac: brcmf_escan_timeout: timer expired
INFO: task brcmf_wdog/mmc1:621 blocked for more than 120 seconds.
Not tainted 4.19.94-07984-g24ff99a0f713 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
brcmf_wdog/mmc1 D    0   621      2 0x00000000 last_sleep: 2440793077.  last_runnable: 2440766827
[<c0aa1e60>] (__schedule) from [<c0aa2100>] (schedule+0x98/0xc4)
[<c0aa2100>] (schedule) from [<c0853830>] (__mmc_claim_host+0x154/0x274)
[<c0853830>] (__mmc_claim_host) from [<bf10c5b8>] (brcmf_sdio_watchdog_thread+0x1b0/0x1f8 [brcmfmac])
[<bf10c5b8>] (brcmf_sdio_watchdog_thread [brcmfmac]) from [<c02570b8>] (kthread+0x178/0x180)

In addition to restarting or exiting the loop, it is also necessary to
abort the command and to release the host.

Fixes: 216b44000a ("brcmfmac: Fix use after free in brcmf_sdio_readframes()")
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Matthias Kaehlcke <mka@chromium.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Acked-by: franky.lin@broadcom.com
Acked-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-05-27 17:37:42 +02:00
..
appletalk
arcnet arcnet: provide a buffer big enough to actually receive packets 2019-10-05 13:09:26 +02:00
bonding bonding/alb: make sure arp header is pulled before accessing it 2020-03-18 07:14:18 +01:00
caif caif-hsi: fix possible deadlock in cfhsi_exit_module() 2019-07-28 08:29:23 +02:00
can slcan: Don't transmit uninitialized stack data in padding 2020-04-13 10:45:08 +02:00
dsa net: dsa: loop: Add module soft dependency 2020-05-20 08:18:37 +02:00
ethernet cxgb4/cxgb4vf: Fix mac_hlist initialization and free 2020-05-27 17:37:41 +02:00
fddi
fjes fjes: fix missed check in fjes_acpi_add 2019-12-31 16:34:36 +01:00
hamradio 6pack,mkiss: fix possible deadlock 2020-01-04 19:13:27 +01:00
hippi
hyperv hv_netvsc: Fix unwanted wakeup in netvsc_attach() 2020-03-05 16:42:19 +01:00
ieee802154 ieee802154: ca8210: prevent memory leak 2019-10-29 09:19:31 +01:00
ipvlan ipvlan: don't deref eth hdr before checking it's set 2020-03-18 07:14:12 +01:00
netdevsim
phy net: phy: fix aneg restart in phy_ethtool_set_eee 2020-05-20 08:18:35 +02:00
plip
ppp pppoe: only process PADT targeted at local interfaces 2020-05-20 08:18:36 +02:00
slip slip: not call free_netdev before rtnl_unlock in slip_open 2020-03-20 11:55:54 +01:00
team team: fix hang in team_mode_get() 2020-04-29 16:31:22 +02:00
usb net: usb: qmi_wwan: add support for DW5816e 2020-05-14 07:57:18 +02:00
vmxnet3
wan wan: ixp4xx_hss: fix compile-testing on 64-bit 2020-02-24 08:34:46 +01:00
wimax wimax/i2400m: Fix potential urb refcnt leak 2020-05-10 10:30:08 +02:00
wireless brcmfmac: abort and release host after error 2020-05-27 17:37:42 +02:00
xen-netback net: xen-netback: fix return type of ndo_start_xmit function 2019-11-24 08:19:18 +01:00
dummy.c
eql.c
geneve.c net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup 2020-04-29 16:31:17 +02:00
gtp.c gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp() 2020-05-27 17:37:33 +02:00
ifb.c
Kconfig geneve: change NET_UDP_TUNNEL dependency to select 2019-12-05 09:21:10 +01:00
LICENSE.SRC
loopback.c
macsec.c net: macsec: preserve ingress frame ordering 2020-05-14 07:57:17 +02:00
macvlan.c macvlan: fix null dereference in macvlan_device_event() 2020-04-29 16:31:20 +02:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c failover: Fix error return code in net_failover_create 2019-11-20 18:46:12 +01:00
netconsole.c
nlmon.c
ntb_netdev.c ntb_netdev: fix sleep time mismatch 2019-12-01 09:17:13 +01:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c tun: add mutex_unlock() call and napi.skb clearing in tun_get_user() 2020-01-29 16:43:17 +01:00
veth.c
virtio_net.c virtio_net: fix lockdep warning on 32 bit 2020-05-20 08:18:37 +02:00
vrf.c vrf: Check skb for XFRM_TRANSFORMED flag 2020-04-29 16:31:23 +02:00
vsockmon.c
vxlan.c net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup 2020-04-29 16:31:17 +02:00
xen-netfront.c xen-netfront: do not use ~0U as error return value for xennet_fill_frags() 2019-10-07 18:57:25 +02:00