| 236 | } |
| 237 | |
| 238 | static int |
| 239 | ree_dev_fini(struct rte_regexdev *dev) |
| 240 | { |
| 241 | struct cn9k_ree_data *data = dev->data->dev_private; |
| 242 | struct roc_ree_vf *vf = &data->vf; |
| 243 | int i, ret; |
| 244 | |
| 245 | ree_func_trace(); |
| 246 | |
| 247 | for (i = 0; i < data->nb_queue_pairs; i++) { |
| 248 | ret = ree_queue_pair_release(dev, i); |
| 249 | if (ret) |
| 250 | return ret; |
| 251 | } |
| 252 | |
| 253 | ret = roc_ree_queues_detach(vf); |
| 254 | if (ret) |
| 255 | cn9k_err("Could not detach queues"); |
| 256 | |
| 257 | /* TEMP : should be in lib */ |
| 258 | rte_free(data->queue_pairs); |
| 259 | rte_free(data->rules); |
| 260 | |
| 261 | roc_ree_dev_fini(vf); |
| 262 | |
| 263 | ret = ree_dev_unregister(dev); |
| 264 | if (ret) |
| 265 | cn9k_err("Could not destroy PMD"); |
| 266 | |
| 267 | return ret; |
| 268 | } |
| 269 | |
| 270 | static inline int |
| 271 | ree_enqueue(struct roc_ree_qp *qp, struct rte_regex_ops *op, |
no test coverage detected