| 6090 | } |
| 6091 | |
| 6092 | static int |
| 6093 | bnxt_uninit_resources(struct bnxt *bp, bool reconfig_dev) |
| 6094 | { |
| 6095 | int rc; |
| 6096 | |
| 6097 | bnxt_free_int(bp); |
| 6098 | bnxt_free_mem(bp, reconfig_dev); |
| 6099 | |
| 6100 | bnxt_hwrm_func_buf_unrgtr(bp); |
| 6101 | if (bp->pf != NULL) { |
| 6102 | rte_free(bp->pf->vf_req_buf); |
| 6103 | bp->pf->vf_req_buf = NULL; |
| 6104 | } |
| 6105 | |
| 6106 | rc = bnxt_hwrm_func_driver_unregister(bp); |
| 6107 | bp->flags &= ~BNXT_FLAG_REGISTERED; |
| 6108 | bnxt_free_ctx_mem(bp); |
| 6109 | if (!reconfig_dev) { |
| 6110 | bnxt_free_hwrm_resources(bp); |
| 6111 | bnxt_free_error_recovery_info(bp); |
| 6112 | rte_free(bp->mcast_addr_list); |
| 6113 | bp->mcast_addr_list = NULL; |
| 6114 | rte_free(bp->rss_conf.rss_key); |
| 6115 | bp->rss_conf.rss_key = NULL; |
| 6116 | } |
| 6117 | |
| 6118 | bnxt_uninit_ctx_mem(bp); |
| 6119 | |
| 6120 | bnxt_free_flow_stats_info(bp); |
| 6121 | bnxt_free_switch_domain(bp); |
| 6122 | rte_free(bp->ptp_cfg); |
| 6123 | bp->ptp_cfg = NULL; |
| 6124 | return rc; |
| 6125 | } |
| 6126 | |
| 6127 | static int |
| 6128 | bnxt_dev_uninit(struct rte_eth_dev *eth_dev) |
no test coverage detected