]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
net: ethernet: eqos: delete eee timer handlers unconditionally
authorBhadram Varka <vbhadram@nvidia.com>
Wed, 11 Jan 2017 11:34:28 +0000 (17:04 +0530)
committermobile promotions <svcmobile_promotions@nvidia.com>
Thu, 12 Jan 2017 23:44:06 +0000 (15:44 -0800)
eee_enabled can be false through the eqos_adjust_link() function.
while going to the suspend mode if eee_enabled is false we are not
deleting the pending EEE timer handlers. On resume these handlers
are scheduled and trying to set the LPI control status which leads
to kernel crash.

[20935.155554] PC is at el1_irq+0x58/0xe0
[20935.155561] LR is at set_eee_mode+0x24/0x68
[20935.155563] pc : [<ffffffc0000845d8>] lr : [<ffffffc000a51470>] pstate: 600000c5
[20935.155564] sp : ffffffc1f3eef150
[20935.155568] x29: ffffffc1f3eef270 x28: ffffffc1f0225800
[20935.155571] x27: ffffffc0014a6000 x26: ffffffc0014a6000
[20935.155574] x25: ffffffc000d4a000 x24: ffffffc1f0224800
[20935.155577] x23: 0000000060000045 x22: ffffffc000a51478
[20935.155580] x21: ffffffc1f3eef270 x20: ffffffc001940000
[20935.155582] x19: 00000000dead1009 x18: 000000000000dcfa
[20935.155585] x17: 0000000000000528 x16: 0000000000000000
[20935.155588] x15: 0000000000002fc2 x14: 000000000009c385
[20935.155590] x13: 000000000000000e x12: 0000000000009fac
[20935.155593] x11: 0000000000000000 x10: 0000000000000400
[20935.155595] x9 : 0000000000000527 x8 : 000000000000ba7e
[20935.155598] x7 : 000000005f0f125b x6 : 0000000000001850
[20935.155601] x5 : ffffffc1f022905c x4 : ffffffc1f3eec000
[20935.155603] x3 : 0000000000000001 x2 : 0000000000000000
[20935.155606] x1 : ffffff8012ac00d0 x0 : 0000000000000000
[20935.155607]
[20935.155609] Process system_server (pid: 782, stack limit = 0xffffffc1f3eec020)
[20935.155610] Call trace:
[20935.155613] [<ffffffc0000845d8>] el1_irq+0x58/0xe0
[20935.155618] [<ffffffc000a64498>] eqos_eee_ctrl_timer+0x7c/0x84
[20935.155623] [<ffffffc0001125f4>] call_timer_fn+0x54/0x1c4
[20935.155627] [<ffffffc000112930>] run_timer_softirq+0x1b8/0x2b0
[20935.155630] [<ffffffc0000aa508>] __do_softirq+0x16c/0x3b0

Bug 200265718

Change-Id: Ia4077a77b1c12c4939a16a2a0db94c4d7f73304d
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: http://git-master/r/1283485
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
drivers/net/ethernet/nvidia/eqos/drv.c

index 9e6fd2bd352ec45aea0cc31d200d89cd18268c44..8368b0a95efd9296926538292ca62bf0ee524f4e 100644 (file)
@@ -5809,8 +5809,7 @@ void eqos_stop_dev(struct eqos_prv_data *pdata)
        /* stop DMA RX */
        eqos_stop_all_ch_rx_dma(pdata);
 
-       if (pdata->eee_enabled)
-               del_timer_sync(&pdata->eee_ctrl_timer);
+       del_timer_sync(&pdata->eee_ctrl_timer);
 
        /* return tx skbs */
        desc_if->tx_skb_free_mem(pdata, pdata->num_chans);