net/octeontx: fix stop clearing fastpath functions

Message ID 20180724104350.20652-1-pbhagavatula@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/octeontx: fix stop clearing fastpath functions |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Pavan Nikhilesh July 24, 2018, 10:43 a.m. UTC
  On dev_stop the Rx/Tx_burst functions are being set to NULL, this causes
a SEGFAULT in cases where control path calls stop and a paket is still
being processed by a worker.
Instead clear the fastpath functions in dev_close.

Fixes: da6c687471a3 ("net/octeontx: add start and stop support")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
---
 drivers/net/octeontx/octeontx_ethdev.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Jerin Jacob July 24, 2018, 3:39 p.m. UTC | #1
-----Original Message-----
> Date: Tue, 24 Jul 2018 16:13:50 +0530
> From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com,
>  ferruh.yigit@intel.com
> Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH] net/octeontx: fix stop clearing fastpath
>  functions
> X-Mailer: git-send-email 2.18.0
> 
> On dev_stop the Rx/Tx_burst functions are being set to NULL, this causes
> a SEGFAULT in cases where control path calls stop and a paket is still
> being processed by a worker.
> Instead clear the fastpath functions in dev_close.
> 
> Fixes: da6c687471a3 ("net/octeontx: add start and stop support")

Cc: stable@dpdk.org

> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>

Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

> ---
>  drivers/net/octeontx/octeontx_ethdev.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
> index 1eb453b21..8fe868678 100644
> --- a/drivers/net/octeontx/octeontx_ethdev.c
> +++ b/drivers/net/octeontx/octeontx_ethdev.c
> @@ -352,6 +352,9 @@ octeontx_dev_close(struct rte_eth_dev *dev)
>  
>  		rte_free(txq);
>  	}
> +
> +	dev->tx_pkt_burst = NULL;
> +	dev->rx_pkt_burst = NULL;
>  }
>  
>  static int
> @@ -445,9 +448,6 @@ octeontx_dev_stop(struct rte_eth_dev *dev)
>  			     ret);
>  		return;
>  	}
> -
> -	dev->tx_pkt_burst = NULL;
> -	dev->rx_pkt_burst = NULL;
>  }
>  
>  static void
> -- 
> 2.18.0
>
  
Thomas Monjalon Aug. 2, 2018, 8:01 a.m. UTC | #2
> > On dev_stop the Rx/Tx_burst functions are being set to NULL, this causes
> > a SEGFAULT in cases where control path calls stop and a paket is still
> > being processed by a worker.
> > Instead clear the fastpath functions in dev_close.
> > 
> > Fixes: da6c687471a3 ("net/octeontx: add start and stop support")
> 
> Cc: stable@dpdk.org
> 
> > 
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> 
> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>

Applied, thanks

Renamed "fastpath" to "Rx/Tx" to be more explicit.
  

Patch

diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index 1eb453b21..8fe868678 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -352,6 +352,9 @@  octeontx_dev_close(struct rte_eth_dev *dev)
 
 		rte_free(txq);
 	}
+
+	dev->tx_pkt_burst = NULL;
+	dev->rx_pkt_burst = NULL;
 }
 
 static int
@@ -445,9 +448,6 @@  octeontx_dev_stop(struct rte_eth_dev *dev)
 			     ret);
 		return;
 	}
-
-	dev->tx_pkt_burst = NULL;
-	dev->rx_pkt_burst = NULL;
 }
 
 static void