• Tobias Regnery's avatar
    alx: work around hardware bug in interrupt fallback path · 185aceef
    Tobias Regnery authored
    If requesting msi-x interrupts fails in alx_request_irq we fall back to
    a single tx queue and msi or legacy interrupts.
    
    Currently the adapter stops working in this case and we get tx watchdog
    timeouts. For reasons unknown the adapter gets confused when we load the
    dma adresses to the chip in alx_init_ring_ptrs twice: the first time with
    multiple queues and the second time in the fallback case with a single
    queue.
    
    To fix this move the the call to alx_reinit_rings (which calls
    alx_init_ring_ptrs) after alx_request_irq. At this time it is clear how
    much tx queues we have and which dma addresses we use.
    
    Fixes: d768319c ("alx: enable multiple tx queues")
    Signed-off-by: default avatarTobias Regnery <tobias.regnery@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    185aceef
main.c 47.7 KB