| 2490 | } |
| 2491 | |
| 2492 | int |
| 2493 | ice_release_vsi(struct ice_vsi *vsi) |
| 2494 | { |
| 2495 | struct ice_hw *hw; |
| 2496 | struct ice_vsi_ctx vsi_ctx; |
| 2497 | enum ice_status ret; |
| 2498 | int error = 0; |
| 2499 | |
| 2500 | if (!vsi) |
| 2501 | return error; |
| 2502 | |
| 2503 | hw = ICE_VSI_TO_HW(vsi); |
| 2504 | |
| 2505 | ice_remove_all_mac_vlan_filters(vsi); |
| 2506 | |
| 2507 | memset(&vsi_ctx, 0, sizeof(vsi_ctx)); |
| 2508 | |
| 2509 | vsi_ctx.vsi_num = vsi->vsi_id; |
| 2510 | vsi_ctx.info = vsi->info; |
| 2511 | ret = ice_free_vsi(hw, vsi->idx, &vsi_ctx, false, NULL); |
| 2512 | if (ret != ICE_SUCCESS) { |
| 2513 | PMD_INIT_LOG(ERR, "Failed to free vsi by aq, %u", vsi->vsi_id); |
| 2514 | error = -1; |
| 2515 | } |
| 2516 | |
| 2517 | rte_free(vsi->rss_lut); |
| 2518 | rte_free(vsi->rss_key); |
| 2519 | rte_free(vsi); |
| 2520 | return error; |
| 2521 | } |
| 2522 | |
| 2523 | void |
| 2524 | ice_vsi_disable_queues_intr(struct ice_vsi *vsi) |
no test coverage detected