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 <xunleer...@huawei.com> --- 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 ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired