• X
    ixgbevf: don't release the soft entries · a1f6c6b1
    xunleer 提交于
    When the ixgbevf driver is opened the request to allocate MSIX irq
    vectors may fail.  In that case the driver will call ixgbevf_down()
    which will call ixgbevf_irq_disable() to clear the HW interrupt
    registers and calls synchronize_irq() using the msix_entries pointer in
    the adapter structure.  However, when the function to request the MSIX
    irq vectors failed it had already freed the msix_entries which causes
    an OOPs from using the NULL pointer in synchronize_irq().
    
    The calls to pci_disable_msix() and to free the msix_entries memory
    should not occur if device open fails.  Instead they should be called
    during device driver removal to balance with the call to
    pci_enable_msix() and the call to allocate msix_entries memory
    during the device probe and driver load.
    Signed-off-by: NLi Xun <xunleer.li@huawei.com>
    Signed-off-by: NGreg Rose <gregory.v.rose@intel.com>
    Tested-by: NSibai Li <sibai.li@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    a1f6c6b1
ixgbevf_main.c 96.0 KB