• Anton Vorontsov's avatar
    ucc_geth: Pass proper device to DMA routines, otherwise oops happens · da1aa63e
    Anton Vorontsov authored
    The driver should pass a device that actually specifies internal DMA
    ops, but currently it passes netdev's device, which is wrong and that
    causes following oops:
    
    Kernel BUG at c01c4df8 [verbose debug info unavailable]
    Oops: Exception in kernel mode, sig: 5 [#1]
    [...]
    NIP [c01c4df8] get_new_skb+0x7c/0xf8
    LR [c01c4da4] get_new_skb+0x28/0xf8
    Call Trace:
    [ef82be00] [c01c4da4] get_new_skb+0x28/0xf8 (unreliable)
    [ef82be20] [c01c4eb8] rx_bd_buffer_set+0x44/0x98
    [ef82be40] [c01c62bc] ucc_geth_startup+0x11b0/0x147c
    [ef82be80] [c01c6674] ucc_geth_open+0xec/0x2a4
    [ef82bea0] [c02288a4] dev_open+0xc0/0x11c
    [...]
    
    Fix this by passing of_device's device that specifies DMA ops in its
    archdata.
    Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    da1aa63e
ucc_geth.h 44.5 KB