Messages in this thread Patch in this message | | | Subject | [PATCH] ixgb/e: fix IRQx nobody cared for shared irq with INTx | Date | Tue, 1 Apr 2008 17:20:03 -0700 | From | Yinghai Lu <> |
| |
[PATCH] ixgb/e: fix IRQx nobody cared for shared irq with INTx
solve ixgb on pci-x and mptsas on pci-x. sometime mptsas get confused.
same to [PATCH] e1000: fix IRQx nobody cared for shared irq with INTx http://lkml.org/lkml/2008/3/29/103
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Index: linux-2.6/drivers/net/ixgb/ixgb_main.c =================================================================== --- linux-2.6.orig/drivers/net/ixgb/ixgb_main.c +++ linux-2.6/drivers/net/ixgb/ixgb_main.c @@ -290,6 +290,11 @@ ixgb_up(struct ixgb_adapter *adapter) #endif ixgb_irq_enable(adapter); + if (!adapter->have_msi) { + /* enable INTx if not using MSI */ + pci_intx(adapter->pdev, 1); + } + return 0; } @@ -368,6 +373,8 @@ ixgb_probe(struct pci_dev *pdev, int i; int err; + /* disable INTx at first */ + pci_intx(pdev, 0); if((err = pci_enable_device(pdev))) return err; Index: linux-2.6/drivers/net/ixgbe/ixgbe_main.c =================================================================== --- linux-2.6.orig/drivers/net/ixgbe/ixgbe_main.c +++ linux-2.6/drivers/net/ixgbe/ixgbe_main.c @@ -1988,6 +1988,12 @@ try_intr_reinit: if (err) goto err_up; + if (!(adapter->flags & + (IXGBE_FLAG_MSI_ENABLED | IXGBE_FLAG_MSIX_ENABLED))) { + /* enable INTx if not using MSI/MSIX */ + pci_intx(adapter->pdev, 1); + } + return 0; err_up: @@ -2627,6 +2633,8 @@ static int __devinit ixgbe_probe(struct u16 link_status, link_speed, link_width; u32 part_num; + /* disable INTx at first */ + pci_intx(pdev, 0); err = pci_enable_device(pdev); if (err) return err;
| |