net/iavf: fix access to null value
Checks
Commit Message
The "vsi" may be null, so it needs to be used after checking.
Fixes: ab28aad9c24f ("net/iavf: fix Rx Tx burst in multi-process")
Cc: stable@dpdk.org
Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
---
drivers/net/iavf/iavf_rxtx.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
Comments
On Wed, Jan 24, 2024 at 02:05:55AM +0000, Mingjin Ye wrote:
> The "vsi" may be null, so it needs to be used after checking.
>
> Fixes: ab28aad9c24f ("net/iavf: fix Rx Tx burst in multi-process")
> Cc: stable@dpdk.org
>
> Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
> ---
> drivers/net/iavf/iavf_rxtx.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
This looks safer with the checks this way.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
On 1/24/2024 3:05 AM, Mingjin Ye wrote:
> The "vsi" may be null, so it needs to be used after checking.
>
> Fixes: ab28aad9c24f ("net/iavf: fix Rx Tx burst in multi-process")
> Cc: stable@dpdk.org
>
> Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
On Fri, Feb 09, 2024 at 03:27:56PM +0100, Burakov, Anatoly wrote:
> On 1/24/2024 3:05 AM, Mingjin Ye wrote:
> > The "vsi" may be null, so it needs to be used after checking.
> >
> > Fixes: ab28aad9c24f ("net/iavf: fix Rx Tx burst in multi-process")
Fixes: 9f6186cf0d80 ("net/iavf: fix Rx/Tx burst in multi-process")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
> > ---
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>
Applied to dpdk-next-net-intel.
Thanks,
/Bruce
@@ -3781,12 +3781,13 @@ iavf_recv_pkts_no_poll(void *rx_queue, struct rte_mbuf **rx_pkts,
uint16_t nb_pkts)
{
struct iavf_rx_queue *rxq = rx_queue;
- enum iavf_rx_burst_type rx_burst_type =
- rxq->vsi->adapter->rx_burst_type;
+ enum iavf_rx_burst_type rx_burst_type;
if (!rxq->vsi || rxq->vsi->adapter->no_poll)
return 0;
+ rx_burst_type = rxq->vsi->adapter->rx_burst_type;
+
return iavf_rx_pkt_burst_ops[rx_burst_type](rx_queue,
rx_pkts, nb_pkts);
}
@@ -3796,12 +3797,13 @@ iavf_xmit_pkts_no_poll(void *tx_queue, struct rte_mbuf **tx_pkts,
uint16_t nb_pkts)
{
struct iavf_tx_queue *txq = tx_queue;
- enum iavf_tx_burst_type tx_burst_type =
- txq->vsi->adapter->tx_burst_type;
+ enum iavf_tx_burst_type tx_burst_type;
if (!txq->vsi || txq->vsi->adapter->no_poll)
return 0;
+ tx_burst_type = txq->vsi->adapter->tx_burst_type;
+
return iavf_tx_pkt_burst_ops[tx_burst_type](tx_queue,
tx_pkts, nb_pkts);
}