• Anton Vorontsov's avatar
    fsl_pq_mdio: Fix kernel oops during OF address translation · 3b1fd3e5
    Anton Vorontsov authored
    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: default avatarAnton Vorontsov <avorontsov@mvista.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3b1fd3e5
fsl_pq_mdio.c 11.4 KB