]> git.baikalelectronics.ru Git - kernel.git/commit
alx: work around hardware bug in interrupt fallback path
authorTobias Regnery <tobias.regnery@gmail.com>
Tue, 24 Jan 2017 13:34:24 +0000 (14:34 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jan 2017 20:27:58 +0000 (15:27 -0500)
commitb37fac71b99ced38d04309f66349b4e328894add
tree9097881a608091eefbbcc1793df9406f5231c399
parent3e756a8aac17e23df1ce724fc4856e1db9e7e374
alx: work around hardware bug in interrupt fallback path

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: 703482d3a379 ("alx: enable multiple tx queues")
Signed-off-by: Tobias Regnery <tobias.regnery@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/atheros/alx/main.c