igb: Use irq_synchronize per vector when using MSI-X
Subsystems (2)
PATCH 1/1 igb: Use irq_synchronize per vector when using MSI-X
From: Emil Tantilov <[email protected]>
Synchronize all IRQs when using MSI-X. Similar to ixgbe. Issue was reported on e1000e, but the patch is also valid for igb.
CC Jean Delvare <[email protected]>
Signed-off-by Emil Tantilov <[email protected]>
Tested-by Jeff Pieper <[email protected]>
Signed-off-by Jeff Kirsher <[email protected]>
---
drivers/net/igb/igb_main.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
drivers/net/igb/igb_main.c +7 -1
@@ -1290,7 +1290,13 @@ static void igb_irq_disable(struct igb_adapter *adapter)wr32 (E1000_IAM ,0 );wr32 (E1000_IMC , ~0 );wrfl (); -synchronize_irq (adapter->pdev->irq); +if (adapter->msix_entries) { +int i; +for (i =0 ; i < adapter->num_q_vectors; i++) +synchronize_irq (adapter->msix_entries[i].vector); + }else { +synchronize_irq (adapter->pdev->irq); + } }/**
From: Jeff Kirsher <[email protected]>
Date: Mon, 02 Aug 2010 17:40:52 -0700
Quoted 9 lines
From: Emil Tantilov <[email protected]>
Synchronize all IRQs when using MSI-X. Similar to ixgbe. Issue was reported on e1000e, but the patch is also valid for igb.
CC Jean Delvare <[email protected]>Signed-off-by Emil Tantilov <[email protected]>Tested-by Jeff Pieper <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.