diff options
author | Ido Barnea <ibarnea@cisco.com> | 2016-07-31 11:16:27 +0300 |
---|---|---|
committer | Ido Barnea <ibarnea@cisco.com> | 2016-07-31 11:21:40 +0300 |
commit | dceb010b01e9f8a0e9c905370d39f149f01cab7e (patch) | |
tree | 562201fb20db07440462f27e4d8b95ad3ce84611 /src/dpdk/drivers/net/i40e/i40e_ethdev.c | |
parent | 81c896604a50486d8b658dc559f7b98492d778e5 (diff) |
dpdk 16.07 - merges of final version changes
Diffstat (limited to 'src/dpdk/drivers/net/i40e/i40e_ethdev.c')
-rw-r--r-- | src/dpdk/drivers/net/i40e/i40e_ethdev.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/dpdk/drivers/net/i40e/i40e_ethdev.c b/src/dpdk/drivers/net/i40e/i40e_ethdev.c index 94b8cb7d..2ee9326e 100644 --- a/src/dpdk/drivers/net/i40e/i40e_ethdev.c +++ b/src/dpdk/drivers/net/i40e/i40e_ethdev.c @@ -31,7 +31,6 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <sys/queue.h> #include <stdio.h> #include <errno.h> #include <stdint.h> @@ -51,6 +50,7 @@ #include <rte_alarm.h> #include <rte_dev.h> #include <rte_eth_ctrl.h> +#include <rte_tailq.h> #include "i40e_logs.h" #include "base/i40e_prototype.h" @@ -4206,6 +4206,7 @@ i40e_vsi_release(struct i40e_vsi *vsi) struct i40e_pf *pf; struct i40e_hw *hw; struct i40e_vsi_list *vsi_list; + void *temp; int ret; struct i40e_mac_filter *f; uint16_t user_param = vsi->user_param; @@ -4218,25 +4219,23 @@ i40e_vsi_release(struct i40e_vsi *vsi) /* VSI has child to attach, release child first */ if (vsi->veb) { - TAILQ_FOREACH(vsi_list, &vsi->veb->head, list) { + TAILQ_FOREACH_SAFE(vsi_list, &vsi->veb->head, list, temp) { if (i40e_vsi_release(vsi_list->vsi) != I40E_SUCCESS) return -1; - TAILQ_REMOVE(&vsi->veb->head, vsi_list, list); } i40e_veb_release(vsi->veb); } if (vsi->floating_veb) { - TAILQ_FOREACH(vsi_list, &vsi->floating_veb->head, list) { + TAILQ_FOREACH_SAFE(vsi_list, &vsi->floating_veb->head, list, temp) { if (i40e_vsi_release(vsi_list->vsi) != I40E_SUCCESS) return -1; - TAILQ_REMOVE(&vsi->floating_veb->head, vsi_list, list); } } /* Remove all macvlan filters of the VSI */ i40e_vsi_remove_all_macvlan_filter(vsi); - TAILQ_FOREACH(f, &vsi->mac_list, next) + TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) rte_free(f); if (vsi->type != I40E_VSI_MAIN && @@ -4818,6 +4817,7 @@ i40e_vsi_config_vlan_filter(struct i40e_vsi *vsi, bool on) { int i, num; struct i40e_mac_filter *f; + void *temp; struct i40e_mac_filter_info *mac_filter; enum rte_mac_filter_type desired_filter; int ret = I40E_SUCCESS; @@ -4842,7 +4842,7 @@ i40e_vsi_config_vlan_filter(struct i40e_vsi *vsi, bool on) i = 0; /* Remove all existing mac */ - TAILQ_FOREACH(f, &vsi->mac_list, next) { + TAILQ_FOREACH_SAFE(f, &vsi->mac_list, next, temp) { mac_filter[i] = f->mac_info; ret = i40e_vsi_delete_mac(vsi, &f->mac_info.mac_addr); if (ret) { |