| 290 | } |
| 291 | |
| 292 | static void |
| 293 | virtio_free_queues(struct virtio_hw *hw) |
| 294 | { |
| 295 | uint16_t nr_vq = virtio_get_nr_vq(hw); |
| 296 | struct virtqueue *vq; |
| 297 | uint16_t i; |
| 298 | |
| 299 | if (hw->vqs == NULL) |
| 300 | return; |
| 301 | |
| 302 | for (i = 0; i < nr_vq; i++) { |
| 303 | vq = hw->vqs[i]; |
| 304 | if (!vq) |
| 305 | continue; |
| 306 | virtqueue_free(vq); |
| 307 | hw->vqs[i] = NULL; |
| 308 | } |
| 309 | |
| 310 | rte_free(hw->vqs); |
| 311 | hw->vqs = NULL; |
| 312 | } |
| 313 | |
| 314 | static int |
| 315 | virtio_alloc_queues(struct rte_eth_dev *dev) |
no test coverage detected