• Alexander Duyck's avatar
    e1000e: Use rtnl_lock to prevent race conditions between net and pci/pm · a7023819
    Alexander Duyck authored
    This patch is meant to address possible race conditions that can exist
    between network configuration and power management. A similar issue was
    fixed for igb in commit 9474933c ("igb: close/suspend race in
    netif_device_detach").
    
    In addition it consolidates the code so that the PCI error handling code
    will essentially perform the power management freeze on the device prior to
    attempting a reset, and will thaw the device afterwards if that is what it
    is planning to do. Otherwise when we call close on the interface it should
    see it is detached and not attempt to call the logic to down the interface
    and free the IRQs again.
    
    From what I can tell the check that was adding the check for __E1000_DOWN
    in e1000e_close was added when runtime power management was added. However
    it should not be relevant for us as we perform a call to
    pm_runtime_get_sync before we call e1000_down/free_irq so it should always
    be back up before we call into this anyway.
    Reported-by: default avatarMorumuri Srivalli <smorumu1@in.ibm.com>
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
    Tested-by: default avatarDavid Dai <zdai@linux.vnet.ibm.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    a7023819
netdev.c 219 KB