| 559 | } |
| 560 | |
| 561 | static void |
| 562 | fs_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid) |
| 563 | { |
| 564 | struct sub_device *sdev; |
| 565 | uint8_t i; |
| 566 | struct txq *txq = dev->data->tx_queues[qid]; |
| 567 | |
| 568 | if (txq == NULL) |
| 569 | return; |
| 570 | if (fs_lock(dev, 0) != 0) |
| 571 | return; |
| 572 | FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { |
| 573 | if (ETH(sdev)->data->tx_queues != NULL && |
| 574 | ETH(sdev)->data->tx_queues[txq->qid] != NULL) |
| 575 | SUBOPS(sdev, tx_queue_release)(ETH(sdev), txq->qid); |
| 576 | } |
| 577 | dev->data->tx_queues[txq->qid] = NULL; |
| 578 | rte_free(txq); |
| 579 | fs_unlock(dev, 0); |
| 580 | } |
| 581 | |
| 582 | static int |
| 583 | fs_tx_queue_setup(struct rte_eth_dev *dev, |
no test coverage detected