Re: [PATCH 4.9 181/310] net: phy: micrel: Restore led_mode and clk_sel on resume

From: Naresh Kamboju
Date: Thu Apr 19 2018 - 07:32:28 EST


On 12 April 2018 at 00:05, Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> 4.9-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Leonard Crestez <leonard.crestez@xxxxxxx>
>
>
> [ Upstream commit 79e498a9c7da0737829ff864aae44df434105676 ]
>
> These bits seem to be lost after a suspend/resume cycle so just set them
> again. Do this by splitting the handling of these bits into a function
> that is also called on resume.
>
> This patch fixes ethernet suspend/resume on imx6ul-14x14-evk boards.
>
> Signed-off-by: Leonard Crestez <leonard.crestez@xxxxxxx>
> Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/net/phy/micrel.c | 42 ++++++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 14 deletions(-)

arm32 x15 device booting 4.9 kernel shows kernel warning and
the network is not working on the device.

Linux version 4.9.95-rc1 (buildslave@lkft-01) (gcc version 6.2.1 20161016
(Linaro GCC 6.2-2016.11) ) #1 SMP Tue Apr 17 19:12:22 UTC 2018

Boot log kernel crash log:
--------------------------
[ 13.766589] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 13.805441] net eth0: initializing cpsw version 1.15 (0)
[ 13.930334] Unable to handle kernel NULL pointer dereference at
virtual address 00000008
[ 13.938486] pgd = ed7987c0
[ 13.941221] [00000008] *pgd=ad7f1003, *pmd=fb0b6003
[ 13.946163] Internal error: Oops: 207 [#1] SMP ARM
[ 13.950976] Modules linked in: snd_soc_simple_card
snd_soc_simple_card_utils snd_soc_core snd_pcm_dmaengine snd_pcm
snd_timer snd soundcore ac97_bus
[ 13.964430] CPU: 0 PID: 251 Comm: NetworkManager Not tainted 4.9.95-rc1 #1
[ 13.971334] Hardware name: Generic DRA74X (Flattened Device Tree)
[ 13.977452] task: ed6ed5c0 task.stack: ec220000
[ 13.982009] PC is at kszphy_config_reset+0x1c/0x150
[ 13.986909] LR is at kszphy_resume+0x24/0x64
[ 13.991198] pc : [<c0b6f680>] lr : [<c0b6f940>] psr: 60000013
[ 13.991198] sp : ec221920 ip : ec221940 fp : ec22193c
[ 14.002723] r10: 00000000 r9 : 00000007 r8 : 00000000
[ 14.007969] r7 : ed213000 r6 : 00000000 r5 : ee6fa800 r4 : ed213400
[ 14.014523] r3 : 00000001 r2 : 00000000 r1 : 00000110 r0 : ed213400
[ 14.021079] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 14.028245] Control: 30c5387d Table: ad7987c0 DAC: fffffffd
[ 14.034014] Process NetworkManager (pid: 251, stack limit = 0xec220220)
[ 14.040655] Stack: (0xec221920 to 0xec222000)
<>
[ 14.496761] [<c0b6f680>] (kszphy_config_reset) from [<c0b6f940>]
(kszphy_resume+0x24/0x64)
[ 14.505067] [<c0b6f940>] (kszphy_resume) from [<c0b693f8>]
(phy_attach_direct+0xc4/0x1cc)
[ 14.513284] [<c0b693f8>] (phy_attach_direct) from [<c0b69600>]
(phy_connect_direct+0x24/0x5c)
[ 14.521848] [<c0b69600>] (phy_connect_direct) from [<c0b6968c>]
(phy_connect+0x54/0x88)
[ 14.529901] [<c0b6968c>] (phy_connect) from [<c0c0e47c>]
(cpsw_slave_open+0x230/0x294)
[ 14.529912] [<c0c0e47c>] (cpsw_slave_open) from [<c0c11634>]
(cpsw_ndo_open+0x4b4/0x618)
[ 14.529924] [<c0c11634>] (cpsw_ndo_open) from [<c0deeb64>]
(__dev_open+0xbc/0x124)
[ 14.529934] [<c0deeb64>] (__dev_open) from [<c0deee4c>]
(__dev_change_flags+0xa4/0x154)
[ 14.529943] [<c0deee4c>] (__dev_change_flags) from [<c0deef24>]
(dev_change_flags+0x28/0x58)
[ 14.529953] [<c0deef24>] (dev_change_flags) from [<c0e025f0>]
(do_setlink+0x2f0/0x890)
[ 14.529962] [<c0e025f0>] (do_setlink) from [<c0e04554>]
(rtnl_newlink+0x4b0/0x784)
[ 14.529970] [<c0e04554>] (rtnl_newlink) from [<c0e04908>]
(rtnetlink_rcv_msg+0xe0/0x1fc)
[ 14.529979] [<c0e04908>] (rtnetlink_rcv_msg) from [<c0e1e538>]
(netlink_rcv_skb+0xb0/0xcc)
[ 14.529990] [<c0e1e538>] (netlink_rcv_skb) from [<c0e01c1c>]
(rtnetlink_rcv+0x38/0x40)
[ 14.529998] [<c0e01c1c>] (rtnetlink_rcv) from [<c0e1de70>]
(netlink_unicast+0x180/0x210)
[ 14.530006] [<c0e1de70>] (netlink_unicast) from [<c0e1e29c>]
(netlink_sendmsg+0x2c4/0x380)
[ 14.530014] [<c0e1e29c>] (netlink_sendmsg) from [<c0dc8304>]
(sock_sendmsg+0x24/0x34)
[ 14.530023] [<c0dc8304>] (sock_sendmsg) from [<c0dc8a70>]
(___sys_sendmsg+0x1e0/0x1f0)
[ 14.530035] [<c0dc8a70>] (___sys_sendmsg) from [<c0dc9884>]
(__sys_sendmsg+0x50/0x7c)
[ 14.530043] [<c0dc9884>] (__sys_sendmsg) from [<c0dc98c8>]
(SyS_sendmsg+0x18/0x1c)
[ 14.530055] [<c0dc98c8>] (SyS_sendmsg) from [<c0408c80>]
(ret_fast_syscall+0x0/0x1c)
[ 14.530062] Code: e52de004 e8bd4000 e59062dc e1a04000 (e5d63008)
[ 14.530113] ---[ end trace f4394cbc177fdd86 ]---


LAVA job id:
https://lkft.validation.linaro.org/scheduler/job/187429#L3341