common/qat: fix uninitialized variable bug

Message ID 20200724094010.1025-1-adamx.dybkowski@intel.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series common/qat: fix uninitialized variable bug |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-intel-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Dybkowski, AdamX July 24, 2020, 9:40 a.m. UTC
  This patch fixes the uninitialized variable bug in QAT PMD.

Fixes: 9f27a860dc16 ("crypto/qat: move generic qp function to qp file")

Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
---
 drivers/common/qat/qat_qp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Fiona Trahe July 24, 2020, 11:54 a.m. UTC | #1
> -----Original Message-----
> From: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> Sent: Friday, July 24, 2020 10:40 AM
> To: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; akhil.goyal@nxp.com
> Cc: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> Subject: [PATCH] common/qat: fix uninitialized variable bug
> 
> This patch fixes the uninitialized variable bug in QAT PMD.
> 
> Fixes: 9f27a860dc16 ("crypto/qat: move generic qp function to qp file")
> 
> Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
> ---
>  drivers/common/qat/qat_qp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
> index aacd4ab21..0ee713955 100644
> --- a/drivers/common/qat/qat_qp.c
> +++ b/drivers/common/qat/qat_qp.c
> @@ -582,7 +582,7 @@ qat_enqueue_op_burst(void *qp, void **ops, uint16_t nb_ops)
>  	register struct qat_queue *queue;
>  	struct qat_qp *tmp_qp = (struct qat_qp *)qp;
>  	register uint32_t nb_ops_sent = 0;
> -	register int ret;
> +	register int ret = -1;
Nack - this fn returns an unsigned. So the correct option is to default to 0
  
Dybkowski, AdamX July 24, 2020, 11:58 a.m. UTC | #2
> -----Original Message-----
> From: Trahe, Fiona <fiona.trahe@intel.com>
> Sent: Friday, 24 July, 2020 13:55
> To: Dybkowski, AdamX <adamx.dybkowski@intel.com>; dev@dpdk.org;
> akhil.goyal@nxp.com
> Cc: Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [PATCH] common/qat: fix uninitialized variable bug
> 
> 
> 
> > -----Original Message-----
> > From: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> > Sent: Friday, July 24, 2020 10:40 AM
> > To: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>;
> > akhil.goyal@nxp.com
> > Cc: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> > Subject: [PATCH] common/qat: fix uninitialized variable bug
> >
> > This patch fixes the uninitialized variable bug in QAT PMD.
> >
> > Fixes: 9f27a860dc16 ("crypto/qat: move generic qp function to qp
> > file")
> >
> > Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
> > ---
> >  drivers/common/qat/qat_qp.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
> > index aacd4ab21..0ee713955 100644
> > --- a/drivers/common/qat/qat_qp.c
> > +++ b/drivers/common/qat/qat_qp.c
> > @@ -582,7 +582,7 @@ qat_enqueue_op_burst(void *qp, void **ops,
> uint16_t nb_ops)
> >  	register struct qat_queue *queue;
> >  	struct qat_qp *tmp_qp = (struct qat_qp *)qp;
> >  	register uint32_t nb_ops_sent = 0;
> > -	register int ret;
> > +	register int ret = -1;
> Nack - this fn returns an unsigned. So the correct option is to default to 0

[Adam] The ret variable value (signed) is not returned directly, please check the rest of this function in src code. This is just checked to calculate how many ops were enqueued. And if all checks skip (meaning the op was not processed by sym crypto, asym crypto nor compression), we should note the user that the actual op was NOT enqueued. That's why ret is set to -1.

Adam
  
Fiona Trahe July 24, 2020, 12:20 p.m. UTC | #3
> -----Original Message-----
> From: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> Sent: Friday, July 24, 2020 12:58 PM
> To: Trahe, Fiona <fiona.trahe@intel.com>; dev@dpdk.org; akhil.goyal@nxp.com
> Subject: RE: [PATCH] common/qat: fix uninitialized variable bug
> 
> > -----Original Message-----
> > From: Trahe, Fiona <fiona.trahe@intel.com>
> > Sent: Friday, 24 July, 2020 13:55
> > To: Dybkowski, AdamX <adamx.dybkowski@intel.com>; dev@dpdk.org;
> > akhil.goyal@nxp.com
> > Cc: Trahe, Fiona <fiona.trahe@intel.com>
> > Subject: RE: [PATCH] common/qat: fix uninitialized variable bug
> >
> >
> >
> > > -----Original Message-----
> > > From: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> > > Sent: Friday, July 24, 2020 10:40 AM
> > > To: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>;
> > > akhil.goyal@nxp.com
> > > Cc: Dybkowski, AdamX <adamx.dybkowski@intel.com>
> > > Subject: [PATCH] common/qat: fix uninitialized variable bug
> > >
> > > This patch fixes the uninitialized variable bug in QAT PMD.
> > >
> > > Fixes: 9f27a860dc16 ("crypto/qat: move generic qp function to qp
> > > file")
> > >
> > > Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com>
> > > ---
> > >  drivers/common/qat/qat_qp.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
> > > index aacd4ab21..0ee713955 100644
> > > --- a/drivers/common/qat/qat_qp.c
> > > +++ b/drivers/common/qat/qat_qp.c
> > > @@ -582,7 +582,7 @@ qat_enqueue_op_burst(void *qp, void **ops,
> > uint16_t nb_ops)
> > >  	register struct qat_queue *queue;
> > >  	struct qat_qp *tmp_qp = (struct qat_qp *)qp;
> > >  	register uint32_t nb_ops_sent = 0;
> > > -	register int ret;
> > > +	register int ret = -1;
> > Nack - this fn returns an unsigned. So the correct option is to default to 0
> 
> [Adam] The ret variable value (signed) is not returned directly, please check the rest of this function in src
> code. This is just checked to calculate how many ops were enqueued. And if all checks skip (meaning the
> op was not processed by sym crypto, asym crypto nor compression), we should note the user that the
> actual op was NOT enqueued. That's why ret is set to -1.
[Fiona] ok. makes sense thanks. In that case
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
  
Akhil Goyal July 26, 2020, 7:19 p.m. UTC | #4
> >
> > [Adam] The ret variable value (signed) is not returned directly, please check the
> rest of this function in src
> > code. This is just checked to calculate how many ops were enqueued. And if all
> checks skip (meaning the
> > op was not processed by sym crypto, asym crypto nor compression), we
> should note the user that the
> > actual op was NOT enqueued. That's why ret is set to -1.
> [Fiona] ok. makes sense thanks. In that case
> Acked-by: Fiona Trahe <fiona.trahe@intel.com>

Cc: stable@dpdk.org

Applied to dpdk-next-crypto

Thanks
  
Thomas Monjalon July 29, 2020, 1:19 p.m. UTC | #5
26/07/2020 21:19, Akhil Goyal:
> > >
> > > [Adam] The ret variable value (signed) is not returned directly, please check the
> > rest of this function in src
> > > code. This is just checked to calculate how many ops were enqueued. And if all
> > checks skip (meaning the
> > > op was not processed by sym crypto, asym crypto nor compression), we
> > should note the user that the
> > > actual op was NOT enqueued. That's why ret is set to -1.
> > [Fiona] ok. makes sense thanks. In that case
> > Acked-by: Fiona Trahe <fiona.trahe@intel.com>
> 
> Cc: stable@dpdk.org
> 
> Applied to dpdk-next-crypto


This patch should not have been merged.
The explanation is missing.

This is the commit log:
"This patch fixes the uninitialized variable bug in QAT PMD."

We don't even know what is the consequence and the scope.
That's not acceptable for a fix.
  

Patch

diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
index aacd4ab21..0ee713955 100644
--- a/drivers/common/qat/qat_qp.c
+++ b/drivers/common/qat/qat_qp.c
@@ -582,7 +582,7 @@  qat_enqueue_op_burst(void *qp, void **ops, uint16_t nb_ops)
 	register struct qat_queue *queue;
 	struct qat_qp *tmp_qp = (struct qat_qp *)qp;
 	register uint32_t nb_ops_sent = 0;
-	register int ret;
+	register int ret = -1;
 	uint16_t nb_ops_possible = nb_ops;
 	register uint8_t *base_addr;
 	register uint32_t tail;