diff options
author | Ajit Khaparde <ajit.khaparde@emulex.com> | 2011-02-11 13:35:56 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-11 21:14:45 -0800 |
commit | 7ab8b0b432cf5110624858e23ef264982e542f17 (patch) | |
tree | 185acdc0a274191767cd6aa8b267b66c14bde919 | |
parent | e63193652bfbea40e33b3a4cf4d338f9c82fbc05 (diff) | |
download | blackbird-op-linux-7ab8b0b432cf5110624858e23ef264982e542f17.tar.gz blackbird-op-linux-7ab8b0b432cf5110624858e23ef264982e542f17.zip |
be2net: Cleanup the VF interface handles
The PF needs to cleanup all the interface handles that it created for the VFs.
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/benet/be_main.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c index 48eef9e2ed94..fc119d1f542b 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c @@ -2340,6 +2340,8 @@ do_none: static int be_clear(struct be_adapter *adapter) { + int vf; + if (be_physfn(adapter) && adapter->sriov_enabled) be_vf_eth_addr_rem(adapter); @@ -2347,6 +2349,13 @@ static int be_clear(struct be_adapter *adapter) be_rx_queues_destroy(adapter); be_tx_queues_destroy(adapter); + if (be_physfn(adapter) && adapter->sriov_enabled) + for (vf = 0; vf < num_vfs; vf++) + if (adapter->vf_cfg[vf].vf_if_handle) + be_cmd_if_destroy(adapter, + adapter->vf_cfg[vf].vf_if_handle, + vf + 1); + be_cmd_if_destroy(adapter, adapter->if_handle, 0); /* tell fw we're done with firing cmds */ |