]> www.infradead.org Git - users/jedix/linux-maple.git/commit
qed: Correct slowpath interrupt scheme
authorSudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
Mon, 7 Dec 2015 11:25:59 +0000 (06:25 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Fri, 8 Jul 2016 19:29:04 +0000 (12:29 -0700)
commitfef58e15914e5a1438f4f10092c24b434f4175eb
treec8358a5cd370a250249dc71c8e6c53167a4aa5b8
parent4fc62400d49fdb92f8492f57b42232bc11e821e7
qed: Correct slowpath interrupt scheme

When using INTa, ISR might be called before device is configured
for INTa [E.g., due to other device asserting the shared interrupt line],
in which case the ISR would read the SISR registers that shouldn't be
read unless HW is already configured for INTa. This might break interrupts
later on. There's also an MSI-X issue due to this difference, although
it's mostly theoretical.

This patch changes the initialization order, calling request_irq() for the
slowpath interrupt only after the chip is configured for working
in the preferred interrupt mode.

Signed-off-by: Sudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 23732603
Signed-off-by: Manjunath Govindashetty <manjunath.govindashetty@oracle.com>
drivers/net/ethernet/qlogic/qed/qed.h
drivers/net/ethernet/qlogic/qed/qed_int.c
drivers/net/ethernet/qlogic/qed/qed_int.h
drivers/net/ethernet/qlogic/qed/qed_main.c