• Yongxin Liu's avatar
    ixgbe: fix unbalanced device enable/disable in suspend/resume · debb9df3
    Yongxin Liu authored
    pci_disable_device() called in __ixgbe_shutdown() decreases
    dev->enable_cnt by 1. pci_enable_device_mem() which increases
    dev->enable_cnt by 1, was removed from ixgbe_resume() in commit
    6f82b255 ("ixgbe: use generic power management"). This caused
    unbalanced increase/decrease. So add pci_enable_device_mem() back.
    
    Fix the following call trace.
    
      ixgbe 0000:17:00.1: disabling already-disabled device
      Call Trace:
       __ixgbe_shutdown+0x10a/0x1e0 [ixgbe]
       ixgbe_suspend+0x32/0x70 [ixgbe]
       pci_pm_suspend+0x87/0x160
       ? pci_pm_freeze+0xd0/0xd0
       dpm_run_callback+0x42/0x170
       __device_suspend+0x114/0x460
       async_suspend+0x1f/0xa0
       async_run_entry_fn+0x3c/0xf0
       process_one_work+0x1dd/0x410
       worker_thread+0x34/0x3f0
       ? cancel_delayed_work+0x90/0x90
       kthread+0x14c/0x170
       ? kthread_park+0x90/0x90
       ret_from_fork+0x1f/0x30
    
    Fixes: 6f82b255 ("ixgbe: use generic power management")
    Signed-off-by: default avatarYongxin Liu <yongxin.liu@windriver.com>
    Tested-by: default avatarDave Switzer <david.switzer@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    debb9df3
ixgbe_main.c 311 KB