diff options
author | Anton Vorontsov <avorontsov@mvista.com> | 2010-04-23 09:12:35 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-24 01:20:25 +0200 |
commit | 3b1fd3e55a39824e68bc8dd055d14892476e3671 (patch) | |
tree | 787512b50f0fe920c0ce2e0aaef0cc6d85f3128c /drivers/net/cs89x0.c | |
parent | tcp: bind() fix when many ports are bound (diff) | |
download | linux-3b1fd3e55a39824e68bc8dd055d14892476e3671.tar.xz linux-3b1fd3e55a39824e68bc8dd055d14892476e3671.zip |
fsl_pq_mdio: Fix kernel oops during OF address translation
Old P1020RDB device trees were not specifing tbipa address for
MDIO nodes, which is now causing this kernel oops:
...
eth2: TX BD ring size for Q[6]: 256
eth2: TX BD ring size for Q[7]: 256
Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc0015504
Oops: Kernel access of bad area, sig: 11 [#1]
...
NIP [c0015504] memcpy+0x3c/0x9c
LR [c000a9f8] __of_translate_address+0xfc/0x21c
Call Trace:
[df839e00] [c000a94c] __of_translate_address+0x50/0x21c (unreliable)
[df839e50] [c01a33e8] get_gfar_tbipa+0xb0/0xe0
...
The old device trees are buggy, though having a dead ethernet is
better than a dead kernel, so fix the issue by using of_iomap().
Also, a somewhat similar issue exist in the probe() routine, though
there the oops is only a possibility. Nonetheless, fix it too.
Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cs89x0.c')
0 files changed, 0 insertions, 0 deletions