net: ibm: emac: fix regression caused by emac_dt_phy_probe()
Julian Margetson reported a panic on his SAM460EX with Kernel 4.11-rc1:
| Unable to handle kernel paging request for data at address 0x00000014
| Oops: Kernel access of bad area, sig: 11 [#1]
| PREEMPT
| Canyonlands
| Modules linked in:
| CPU: 0 PID: 1 Comm: swapper Not tainted [...]
| task:
ea838000 task.stack:
ea836000
| NIP:
c0599f5c LR:
c0599dd8 CTR:
00000000
| REGS:
ea837c80 TRAP: 0300 Not tainted [...]
| MSR:
00029000 <CE,EE,ME>
| CR:
24371242 XER:
20000000
| DEAR:
00000014 ESR:
00000000
| GPR00:
c0599ce8 ea837d30 ea838000 c0e52dcc c0d56ffb [...]
| NIP [
c0599f5c] emac_probe+0xfb4/0x1304
| LR [
c0599dd8] emac_probe+0xe30/0x1304
| Call Trace:
| [
ea837d30] [
c0599ce8] emac_probe+0xd40/0x1304 (unreliable)
| [
ea837d80] [
c0533504] platform_drv_probe+0x48/0x90
| [
ea837da0] [
c0531c14] driver_probe_device+0x15c/0x2c4
| [
ea837dd0] [
c0531e04] __driver_attach+0x88/0xb0
| ---[ end trace ... ]---
The problem is caused by emac_dt_phy_probe() returing success (0)
for existing device-trees configurations that do not specify a
"phy-handle" property. This caused the code to skip the existing
phy probe and setup. Which led to essential phy related
data-structures being uninitialized.
This patch also removes the unused variable in emac_dt_phy_connect().
Fixes: a577ca6badb5261d ("net: emac: add support for device-tree based PHY discovery and setup")
Reported-by: Julian Margetson <runaway@candw.ms>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>