OSDN Git Service

net: ethernet: ti: cpsw: fix bad register access in probe error path
authorJohan Hovold <johan@kernel.org>
Thu, 17 Nov 2016 16:39:58 +0000 (17:39 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Nov 2016 18:48:52 +0000 (13:48 -0500)
commitc46ab7e08c79be7400f6d59edbc6f26a91941c5a
tree1e6ac5331ccbfed283b37c2bf134568b210f47c9
parent06ba3b2133dc203e1e9bc36cee7f0839b79a9e8b
net: ethernet: ti: cpsw: fix bad register access in probe error path

Make sure to keep the platform device runtime-resumed throughout probe
to avoid accessing the CPSW registers in the error path (e.g. for
deferred probe) with clocks disabled:

Unhandled fault: external abort on non-linefetch (0x1008) at 0xd0872d08
...
[<c04fabcc>] (cpsw_ale_control_set) from [<c04fb8b4>] (cpsw_ale_destroy+0x2c/0x44)
[<c04fb8b4>] (cpsw_ale_destroy) from [<c04fea58>] (cpsw_probe+0xbd0/0x10c4)
[<c04fea58>] (cpsw_probe) from [<c047b2a0>] (platform_drv_probe+0x5c/0xc0)

Fixes: df828598a755 ("netdev: driver: ethernet: Add TI CPSW driver")
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c