qed: Correct slowpath interrupt scheme
authorSudarsana Kalluru <Sudarsana.Kalluru@qlogic.com>
Mon, 7 Dec 2015 11:25:59 +0000 (06:25 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 7 Dec 2015 19:14:04 +0000 (14:14 -0500)
commit8f16bc97fa2a47e2e46d36f2f682e1215ee172f5
tree6f66536e6aea5474156bada139a9c1e728e871e3
parentc78df14ee0f6bc5e8741b4324b600b7277abb13e
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>
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