Christophe Leroy
f8b39039cb
net: fs_enet: do not call phy_stop() in interrupts
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>
2018-01-17 15:44:16 -05:00
..
2017-12-23 13:47:22 -08:00
2017-11-14 16:54:12 -08:00
2017-12-18 15:47:12 +01:00
2017-12-04 13:57:03 -08:00
2017-11-29 13:10:25 -08:00
2017-11-27 12:36:45 -08:00
2018-01-14 09:51:25 -08:00
2017-11-15 11:56:19 -08:00
2018-01-11 16:57:32 -08:00
2018-01-04 17:06:25 +01:00
2017-11-14 15:32:19 -08:00
2017-12-11 17:01:59 -08:00
2017-12-26 17:34:03 -08:00
2017-11-23 16:29:05 +01:00
2017-12-18 12:09:39 +01:00
2017-11-16 12:47:46 -08:00
2017-12-22 19:48:01 +11:00
2017-11-29 18:40:42 -08:00
2017-11-13 01:41:39 +01:00
2017-12-15 09:53:04 +05:30
2017-11-17 14:58:01 -08:00
2017-11-15 13:46:33 -08:00
2017-11-13 21:14:07 -08:00
2017-11-13 17:56:58 -08:00
2018-01-03 13:54:31 +01:00
2017-11-16 09:10:59 -08:00
2018-01-10 14:17:17 +01:00
2018-01-12 11:48:06 +10:00
2017-12-30 10:16:51 -08:00
2017-11-15 13:35:43 -08:00
2017-12-18 15:47:12 +01:00
2017-12-26 11:53:24 -08:00
2017-11-17 20:16:20 -08:00
2017-12-04 07:14:30 -05:00
2017-12-12 23:27:04 +01:00
2017-11-19 08:04:41 -10:00
2017-11-13 01:34:14 +01:00
2017-12-02 11:15:14 +00:00
2018-01-16 16:47:40 -08:00
2018-01-05 16:45:06 -08:00
2018-01-02 16:45:51 +00:00
2017-12-29 21:13:04 +01:00
2017-11-21 15:57:09 -08:00
2018-01-07 13:27:07 +01:00
2017-11-21 15:46:44 -08:00
2017-11-13 17:56:58 -08:00
2017-11-15 13:39:18 -08:00
2017-12-17 13:57:15 +01:00
2017-12-08 13:18:47 -08:00
2017-11-16 16:05:01 -08:00
2017-11-21 15:57:07 -08:00
2017-11-15 13:46:33 -08:00
2018-01-05 11:14:57 +00:00
2017-12-17 13:54:31 -08:00
2018-01-04 12:42:31 +01:00
2018-01-06 23:06:58 +01:00
2018-01-09 14:19:41 +01:00
2018-01-17 15:44:16 -05:00
2017-11-21 15:57:09 -08:00
2017-11-21 15:57:07 -08:00
2017-11-13 12:10:24 -08:00
2017-12-21 14:59:27 -08:00
2018-01-08 10:52:03 +01:00
2017-12-23 16:46:23 +01:00
2018-01-10 15:07:47 -05:00
2018-01-02 21:01:02 +01:00
2017-11-16 09:10:59 -08:00
2017-12-31 13:13:56 -08:00
2017-11-17 16:10:04 -08:00
2017-11-15 10:56:56 -08:00
2017-12-15 16:00:41 +05:30
2017-12-29 21:13:04 +01:00
2018-01-08 10:47:48 -08:00
2017-11-15 13:37:15 -08:00
2017-11-21 15:57:07 -08:00
2017-11-16 13:06:27 -08:00
2017-11-22 21:09:18 -10:00
2017-11-17 16:56:17 -08:00
2017-11-13 17:56:58 -08:00
2017-11-16 09:15:57 -08:00
2017-11-17 20:14:10 -08:00
2017-11-16 16:05:01 -08:00
2017-11-17 20:12:08 -08:00
2017-11-25 08:37:16 -10:00
2018-01-05 12:17:33 -08:00
2017-11-17 20:21:44 -08:00
2017-12-30 14:31:30 -08:00
2017-11-14 16:54:12 -08:00
2017-11-30 15:29:44 -08:00
2017-12-19 11:07:00 +00:00
2018-01-09 15:32:11 +01:00
2017-12-18 13:55:43 -07:00
2017-11-29 10:24:57 +01:00
2017-11-17 14:31:27 -08:00
2017-12-16 16:37:51 +01:00
2017-12-21 11:19:22 +01:00
2018-01-11 18:39:52 +01:00
2017-11-21 15:57:07 -08:00
2017-11-14 16:47:47 -08:00
2017-12-02 21:31:03 -05:00
2017-11-20 21:50:24 -10:00
2017-12-14 21:01:40 +02:00
2017-11-16 09:10:59 -08:00
2017-11-16 09:10:59 -08:00
2017-11-21 15:57:07 -08:00
2018-01-12 10:00:15 -08:00
2017-11-13 01:40:52 +01:00
2017-11-28 15:17:49 +01:00