android_kernel_sony_sdm845/drivers/net
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christophe Leroy b0b77fb6c9 net: fs_enet: do not call phy_stop() in interrupts
[ Upstream commit f8b39039cbf2a15f2b8c9f081e1cbd5dee00aaf5 ]

In case of TX timeout, fs_timeout() calls phy_stop(), which
triggers the following BUG_ON() as we are in interrupt.

[92708.199889] kernel BUG at drivers/net/phy/mdio_bus.c:482!
[92708.204985] Oops: Exception in kernel mode, sig: 5 [#1]
[92708.210119] PREEMPT
[92708.212107] CMPC885
[92708.214216] CPU: 0 PID: 3 Comm: ksoftirqd/0 Tainted: G        W       4.9.61 #39
[92708.223227] task: c60f0a40 task.stack: c6104000
[92708.227697] NIP: c02a84bc LR: c02a947c CTR: c02a93d8
[92708.232614] REGS: c6105c70 TRAP: 0700   Tainted: G        W        (4.9.61)
[92708.241193] MSR: 00021032 <ME,IR,DR,RI>[92708.244818]   CR: 24000822  XER: 20000000
[92708.248767]
GPR00: c02a947c c6105d20 c60f0a40 c62b4c00 00000005 0000001f c069aad8 0001a688
GPR08: 00000007 00000100 c02a93d8 00000000 000005fc 00000000 c6213240 c06338e4
GPR16: 00000001 c06330d4 c0633094 00000000 c0680000 c6104000 c6104000 00000000
GPR24: 00000200 00000000 ffffffff 00000004 00000078 00009032 00000000 c62b4c00
NIP [c02a84bc] mdiobus_read+0x20/0x74
[92708.281517] LR [c02a947c] kszphy_config_intr+0xa4/0xc4
[92708.286547] Call Trace:
[92708.288980] [c6105d20] [c6104000] 0xc6104000 (unreliable)
[92708.294339] [c6105d40] [c02a947c] kszphy_config_intr+0xa4/0xc4
[92708.300098] [c6105d50] [c02a5330] phy_stop+0x60/0x9c
[92708.305007] [c6105d60] [c02c84d0] fs_timeout+0xdc/0x110
[92708.310197] [c6105d80] [c035cd48] dev_watchdog+0x268/0x2a0
[92708.315593] [c6105db0] [c0060288] call_timer_fn+0x34/0x17c
[92708.321014] [c6105dd0] [c00605f0] run_timer_softirq+0x21c/0x2e4
[92708.326887] [c6105e50] [c001e19c] __do_softirq+0xf4/0x2f4
[92708.332207] [c6105eb0] [c001e3c8] run_ksoftirqd+0x2c/0x40
[92708.337560] [c6105ec0] [c003b420] smpboot_thread_fn+0x1f0/0x258
[92708.343405] [c6105ef0] [c003745c] kthread+0xbc/0xd0
[92708.348217] [c6105f40] [c000c400] ret_from_kernel_thread+0x5c/0x64
[92708.354275] Instruction dump:
[92708.357207] 7c0803a6 bbc10018 38210020 4e800020 7c0802a6 9421ffe0 54290024 bfc10018
[92708.364865] 90010024 7c7f1b78 81290008 552902ee <0f090000> 3bc3002c 7fc3f378 90810008
[92708.372711] ---[ end trace 42b05441616fafd7 ]---

This patch moves fs_timeout() actions into an async worker.

Fixes: commit 48257c4f16 ("Add fs_enet ethernet network driver, for several embedded platforms")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-11-10 07:43:01 -08:00
..
appletalk net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT 2018-09-29 03:07:32 -07:00
arcnet
bonding bonding: fix length of actor system 2018-11-10 07:42:59 -08:00
caif
can can: mpc5xxx_can: check of_iomap return before use 2018-09-05 09:20:01 +02:00
cris
dsa net: dsa: bcm_sf2: Fix unbind ordering 2018-10-18 09:13:23 +02:00
ethernet net: fs_enet: do not call phy_stop() in interrupts 2018-11-10 07:43:01 -08:00
fddi
fjes fjes: Fix wrong netdevice feature flags 2017-12-20 10:07:22 +01:00
hamradio net: hamradio: use eth_broadcast_addr 2018-08-24 13:12:30 +02:00
hippi hippi: Fix a Fix a possible sleep-in-atomic bug in rr_close 2018-02-25 11:05:50 +01:00
hyperv hv_netvsc: ignore devices that are not PCI 2018-09-15 09:42:56 +02:00
ieee802154 ieee802154: fakelb: switch from BUG_ON() to WARN_ON() on problem 2018-08-24 13:12:37 +02:00
ipvlan ipvlan: call dev_change_flags when ipvlan mode is reset 2018-08-24 13:12:35 +02:00
irda irda: vlsi_ir: fix check for DMA mapping errors 2017-12-25 14:23:41 +01:00
phy net: phy: marvell: Limit 88m1101 autoneg errata to 88E1145 as well. 2018-11-10 07:42:46 -08:00
plip
ppp pppoe: check sockaddr length in pppoe_connect() 2018-04-29 11:32:01 +02:00
slip slip: Check if rstate is initialized before uncompressing 2018-04-20 08:21:07 +02:00
team team: Forbid enslaving team device to itself 2018-10-18 09:13:23 +02:00
usb net: cdc_ncm: GetNtbFormat endian fix 2018-11-10 07:42:51 -08:00
vmxnet3 vmxnet3: use DMA memory barriers where required 2018-05-25 16:12:56 +02:00
wan wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of qe_muram_alloc 2018-09-26 08:36:33 +02:00
wimax net: wimax/i2400m: fix NULL-deref at probe 2017-12-20 10:07:20 +01:00
wireless libertas: call into generic suspend code before turning off power 2018-11-10 07:42:56 -08:00
xen-netback xen-netback: fix input validation in xenvif_set_hash_mapping() 2018-10-13 09:18:53 +02:00
dummy.c
eql.c
geneve.c geneve: add missing rx stats accounting 2018-04-13 19:48:26 +02:00
gtp.c gtp: fix cross netns recv on gtp socket 2017-12-09 22:01:54 +01:00
ifb.c
Kconfig vmxnet3: prevent building with 64K pages 2018-02-25 11:05:51 +01:00
LICENSE.SRC
loopback.c net: introduce device min_header_len 2017-02-18 15:11:43 +01:00
macsec.c macsec: fix memory leaks when skb_to_sgvec fails 2018-11-10 07:42:54 -08:00
macvlan.c macvlan: fix use-after-free in macvlan_common_newlink() 2018-05-30 07:50:30 +02:00
macvtap.c tap: double-free in error path in tap_open() 2017-11-18 11:22:22 +01:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c tun: fix a memory leak for tfile->tx_array 2018-01-31 12:55:56 +01:00
veth.c veth: set peer GSO values 2018-03-22 09:17:57 +01:00
virtio_net.c virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS 2018-05-30 07:50:44 +02:00
vrf.c vrf: Fix use after free and double free in vrf_finish_output 2018-04-13 19:48:37 +02:00
vxlan.c vxlan: dont migrate permanent fdb entries during learn 2018-04-13 19:48:29 +02:00
xen-netfront.c xen-netfront: Fix mismatched rtnl_unlock 2018-11-10 07:42:55 -08:00