This patch fix an oops issue caused by NULL pointer. The call stack
may be like this:
[<ffffffffa04dae0b>] ixgbevf_down+0x10b/0x300 [ixgbevf]
[<ffffffffa04dc6bd>] ixgbevf_open+0x27d/0x2b0 [ixgbevf]
[<ffffffff813866b7>] __dev_open+0xa7/0x100
[<ffffffff81386745>] dev_open+0x35/0x60

When opening the net device, we are trying to request msix irqs,
if failed, the error procedure released the msix entries and disabled
the MSI-X interrupts in pci level. However, if the request is not
succeeded, the ixgbevf_down is called, it synchronizes the irq by
referring to the msix_entries, it may cause oops as to NULL pointer
references.

The msix_entries may be allocated in probe procedure and be released
in remove routine may be the best way. So we removed this error
processing action. Then we may try to reopen the device, all we must
reload the driver.

Signed-off-by: Li Xun <[email protected]>
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c 
b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index c3db6cd..f176208 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -944,9 +944,6 @@ free_queue_irqs:
                free_irq(adapter->msix_entries[vector].vector,
                         adapter->q_vector[vector]);
        }
-       pci_disable_msix(adapter->pdev);
-       kfree(adapter->msix_entries);
-       adapter->msix_entries = NULL;
        return err;
 }

-- 
1.8.0


--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to