| 2662 | } |
| 2663 | |
| 2664 | static int |
| 2665 | sfc_flow_flush(struct rte_eth_dev *dev, |
| 2666 | struct rte_flow_error *error) |
| 2667 | { |
| 2668 | struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); |
| 2669 | struct rte_flow *flow; |
| 2670 | int ret = 0; |
| 2671 | void *tmp; |
| 2672 | |
| 2673 | sfc_adapter_lock(sa); |
| 2674 | |
| 2675 | RTE_TAILQ_FOREACH_SAFE(flow, &sa->flow_list, entries, tmp) { |
| 2676 | if (flow->internal) |
| 2677 | continue; |
| 2678 | |
| 2679 | if (sa->state == SFC_ETHDEV_STARTED) { |
| 2680 | int rc; |
| 2681 | |
| 2682 | rc = sfc_flow_remove(sa, flow, error); |
| 2683 | if (rc != 0) |
| 2684 | ret = rc; |
| 2685 | } |
| 2686 | |
| 2687 | TAILQ_REMOVE(&sa->flow_list, flow, entries); |
| 2688 | sfc_flow_free(sa, flow); |
| 2689 | } |
| 2690 | |
| 2691 | sfc_adapter_unlock(sa); |
| 2692 | |
| 2693 | return -ret; |
| 2694 | } |
| 2695 | |
| 2696 | static int |
| 2697 | sfc_flow_query(struct rte_eth_dev *dev, |
nothing calls this directly
no test coverage detected