diff options
| -rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c index 14f748cbf0de..280137991544 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | |||
| @@ -461,6 +461,16 @@ static int qlcnic_pci_sriov_disable(struct qlcnic_adapter *adapter) | |||
| 461 | { | 461 | { |
| 462 | struct net_device *netdev = adapter->netdev; | 462 | struct net_device *netdev = adapter->netdev; |
| 463 | 463 | ||
| 464 | if (pci_vfs_assigned(adapter->pdev)) { | ||
| 465 | netdev_err(adapter->netdev, | ||
| 466 | "SR-IOV VFs belonging to port %d are assigned to VMs. SR-IOV can not be disabled on this port\n", | ||
| 467 | adapter->portnum); | ||
| 468 | netdev_info(adapter->netdev, | ||
| 469 | "Please detach SR-IOV VFs belonging to port %d from VMs, and then try to disable SR-IOV on this port\n", | ||
| 470 | adapter->portnum); | ||
| 471 | return -EPERM; | ||
| 472 | } | ||
| 473 | |||
| 464 | rtnl_lock(); | 474 | rtnl_lock(); |
| 465 | if (netif_running(netdev)) | 475 | if (netif_running(netdev)) |
| 466 | __qlcnic_down(adapter, netdev); | 476 | __qlcnic_down(adapter, netdev); |
