1. 24 10月, 2013 1 次提交
    • S
      igb: fix driver reload with VF assigned to guest · 781798a1
      Stefan Assmann 提交于
      commit fa44f2f1 broke reloading of igb, when
      VFs are assigned to a guest, in several ways.
      1. on module load adapter->vf_data does not get properly allocated,
      resulting in a null pointer exception when accessing adapter->vf_data in
      igb_reset() on module reload.
       modprobe -r igb ; modprobe igb max_vfs=7
      [  215.215837] igb 0000:01:00.1: removed PHC on eth1
      [  216.932072] igb 0000:01:00.1: IOV Disabled
      [  216.937038] igb 0000:01:00.0: removed PHC on eth0
      [  217.127032] igb 0000:01:00.0: Cannot deallocate SR-IOV virtual functions while they are assigned - VFs will not be deallocated
      [  217.146178] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.0.5-k
      [  217.154050] igb: Copyright (c) 2007-2013 Intel Corporation.
      [  217.160688] igb 0000:01:00.0: Enabling SR-IOV VFs using the module parameter is deprecated - please use the pci sysfs interface.
      [  217.173703] igb 0000:01:00.0: irq 103 for MSI/MSI-X
      [  217.179227] igb 0000:01:00.0: irq 104 for MSI/MSI-X
      [  217.184735] igb 0000:01:00.0: irq 105 for MSI/MSI-X
      [  217.220082] BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
      [  217.228846] IP: [<ffffffffa007c5e5>] igb_reset+0xc5/0x4b0 [igb]
      [  217.235472] PGD 3607ec067 PUD 36170b067 PMD 0
      [  217.240461] Oops: 0002 [#1] SMP
      [  217.244085] Modules linked in: igb(+) igbvf mptsas mptscsih mptbase scsi_transport_sas [last unloaded: igb]
      [  217.255040] CPU: 4 PID: 4833 Comm: modprobe Not tainted 3.11.0+ #46
      [...]
      [  217.390007]  [<ffffffffa007fab2>] igb_probe+0x892/0xfd0 [igb]
      [  217.396422]  [<ffffffff81470b3e>] local_pci_probe+0x1e/0x40
      [  217.402641]  [<ffffffff81472029>] pci_device_probe+0xf9/0x110
      [...]
      2. A follow up issue, pci_enable_sriov() should only be called if no VFs were
      still allocated on module unload. Otherwise pci_enable_sriov() gets called
      multiple times in a row rendering the NIC unusable until reset.
      3. simply calling igb_enable_sriov() in igb_probe_vfs() is not enough as the
      interrupts need to be re-setup. Switching that to igb_pci_enable_sriov().
      Signed-off-by: NStefan Assmann <sassmann@kpanic.de>
      Tested-by: NAaron Brown <aaron.f.brown@intel.com>
      Tested-by: NSibai Li <Sibai.li@intel.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      781798a1
  2. 03 10月, 2013 1 次提交
  3. 02 10月, 2013 1 次提交
  4. 04 9月, 2013 3 次提交
  5. 22 8月, 2013 9 次提交
  6. 29 7月, 2013 1 次提交
  7. 21 5月, 2013 2 次提交
  8. 25 4月, 2013 4 次提交
  9. 20 4月, 2013 3 次提交
  10. 19 4月, 2013 9 次提交
  11. 26 3月, 2013 2 次提交
  12. 05 3月, 2013 2 次提交
  13. 15 2月, 2013 2 次提交