net/sfc: fix Rx queue start failure path
Checks
Commit Message
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Call correct cleanup operations on failure in Rx queue start function.
Fixes: df1bfde4ff0d ("net/sfc: factor out libefx-based Rx datapath")
Fixes: 28944ac098aa ("net/sfc: implement Rx queue start and stop operations")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/sfc_rx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
On 3/5/2020 3:48 PM, Andrew Rybchenko wrote:
> From: Igor Romanov <igor.romanov@oktetlabs.ru>
>
> Call correct cleanup operations on failure in Rx queue start function.
>
> Fixes: df1bfde4ff0d ("net/sfc: factor out libefx-based Rx datapath")
> Fixes: 28944ac098aa ("net/sfc: implement Rx queue start and stop operations")
> Cc: stable@dpdk.org
>
> Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Applied to dpdk-next-net/master, thanks.
@@ -822,10 +822,12 @@ sfc_rx_qstart(struct sfc_adapter *sa, unsigned int sw_index)
return 0;
fail_mac_filter_default_rxq_set:
+ sfc_rx_qflush(sa, sw_index);
sa->priv.dp_rx->qstop(rxq_info->dp, &rxq->evq->read_ptr);
+ rxq_info->state = SFC_RXQ_INITIALIZED;
fail_dp_qstart:
- sfc_rx_qflush(sa, sw_index);
+ efx_rx_qdestroy(rxq->common);
fail_rx_qcreate:
fail_bad_contig_block_size: