diff options
| -rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c index 330d9a8774ad..686f460b1502 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | |||
| @@ -397,6 +397,7 @@ static int qlcnic_pci_sriov_disable(struct qlcnic_adapter *adapter) | |||
| 397 | { | 397 | { |
| 398 | struct net_device *netdev = adapter->netdev; | 398 | struct net_device *netdev = adapter->netdev; |
| 399 | 399 | ||
| 400 | rtnl_lock(); | ||
| 400 | if (netif_running(netdev)) | 401 | if (netif_running(netdev)) |
| 401 | __qlcnic_down(adapter, netdev); | 402 | __qlcnic_down(adapter, netdev); |
| 402 | 403 | ||
| @@ -407,12 +408,15 @@ static int qlcnic_pci_sriov_disable(struct qlcnic_adapter *adapter) | |||
| 407 | /* After disabling SRIOV re-init the driver in default mode | 408 | /* After disabling SRIOV re-init the driver in default mode |
| 408 | configure opmode based on op_mode of function | 409 | configure opmode based on op_mode of function |
| 409 | */ | 410 | */ |
| 410 | if (qlcnic_83xx_configure_opmode(adapter)) | 411 | if (qlcnic_83xx_configure_opmode(adapter)) { |
| 412 | rtnl_unlock(); | ||
| 411 | return -EIO; | 413 | return -EIO; |
| 414 | } | ||
| 412 | 415 | ||
| 413 | if (netif_running(netdev)) | 416 | if (netif_running(netdev)) |
| 414 | __qlcnic_up(adapter, netdev); | 417 | __qlcnic_up(adapter, netdev); |
| 415 | 418 | ||
| 419 | rtnl_unlock(); | ||
| 416 | return 0; | 420 | return 0; |
| 417 | } | 421 | } |
| 418 | 422 | ||
| @@ -533,6 +537,7 @@ static int qlcnic_pci_sriov_enable(struct qlcnic_adapter *adapter, int num_vfs) | |||
| 533 | return -EIO; | 537 | return -EIO; |
| 534 | } | 538 | } |
| 535 | 539 | ||
| 540 | rtnl_lock(); | ||
| 536 | if (netif_running(netdev)) | 541 | if (netif_running(netdev)) |
| 537 | __qlcnic_down(adapter, netdev); | 542 | __qlcnic_down(adapter, netdev); |
| 538 | 543 | ||
| @@ -555,6 +560,7 @@ static int qlcnic_pci_sriov_enable(struct qlcnic_adapter *adapter, int num_vfs) | |||
| 555 | __qlcnic_up(adapter, netdev); | 560 | __qlcnic_up(adapter, netdev); |
| 556 | 561 | ||
| 557 | error: | 562 | error: |
| 563 | rtnl_unlock(); | ||
| 558 | return err; | 564 | return err; |
| 559 | } | 565 | } |
| 560 | 566 | ||
