diff mbox series

qed: fix assignment of n_rq_elems to incorrect params field

Message ID 20200727141712.112906-1-colin.king@canonical.com (mailing list archive)
State Not Applicable
Delegated to: Jason Gunthorpe
Headers show
Series qed: fix assignment of n_rq_elems to incorrect params field | expand

Commit Message

Colin King July 27, 2020, 2:17 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

Currently n_rq_elems is being assigned to params.elem_size instead of the
field params.num_elems.  Coverity is detecting this as a double assingment
to params.elem_size and reporting this as an usused value on the first
assignment.  Fix this.

Addresses-Coverity: ("Unused value")
Fixes: b6db3f71c976 ("qed: simplify chain allocation with init params struct")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/infiniband/hw/qedr/verbs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexander Lobakin July 27, 2020, 2:36 p.m. UTC | #1
Hi Colin,

From: Colin King <colin.king@canonical.com>
Date: Mon, 27 Jul 2020 15:17:12 +0100

> From: Colin Ian King <colin.king@canonical.com>
> 
> Currently n_rq_elems is being assigned to params.elem_size instead of the
> field params.num_elems.  Coverity is detecting this as a double assingment
> to params.elem_size and reporting this as an usused value on the first
> assignment.  Fix this.
> 
> Addresses-Coverity: ("Unused value")
> Fixes: b6db3f71c976 ("qed: simplify chain allocation with init params struct")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/infiniband/hw/qedr/verbs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
> index 5a80471577a6..4ce4e2eef6cc 100644
> --- a/drivers/infiniband/hw/qedr/verbs.c
> +++ b/drivers/infiniband/hw/qedr/verbs.c
> @@ -1930,7 +1930,7 @@ qedr_roce_create_kernel_qp(struct qedr_dev *dev,
>  	in_params->sq_pbl_ptr = qed_chain_get_pbl_phys(&qp->sq.pbl);
>  
>  	params.intended_use = QED_CHAIN_USE_TO_CONSUME_PRODUCE;
> -	params.elem_size = n_rq_elems;
> +	params.num_elems = n_rq_elems;

Sorry for copy'n'paste braino. Thanks for catching.

>  	params.elem_size = QEDR_RQE_ELEMENT_SIZE;
>  
>  	rc = dev->ops->common->chain_alloc(dev->cdev, &qp->rq.pbl, &params);
> -- 
> 2.27.0

Acked-by: Alexander Lobakin <alobakin@marvell.com>

Al
Colin King July 27, 2020, 2:39 p.m. UTC | #2
On 27/07/2020 15:36, Alexander Lobakin wrote:
> Hi Colin,
> 
> From: Colin King <colin.king@canonical.com>
> Date: Mon, 27 Jul 2020 15:17:12 +0100
> 
>> From: Colin Ian King <colin.king@canonical.com>
>>
>> Currently n_rq_elems is being assigned to params.elem_size instead of the
>> field params.num_elems.  Coverity is detecting this as a double assingment
>> to params.elem_size and reporting this as an usused value on the first
>> assignment.  Fix this.
>>
>> Addresses-Coverity: ("Unused value")
>> Fixes: b6db3f71c976 ("qed: simplify chain allocation with init params struct")
>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>> ---
>>  drivers/infiniband/hw/qedr/verbs.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
>> index 5a80471577a6..4ce4e2eef6cc 100644
>> --- a/drivers/infiniband/hw/qedr/verbs.c
>> +++ b/drivers/infiniband/hw/qedr/verbs.c
>> @@ -1930,7 +1930,7 @@ qedr_roce_create_kernel_qp(struct qedr_dev *dev,
>>  	in_params->sq_pbl_ptr = qed_chain_get_pbl_phys(&qp->sq.pbl);
>>  
>>  	params.intended_use = QED_CHAIN_USE_TO_CONSUME_PRODUCE;
>> -	params.elem_size = n_rq_elems;
>> +	params.num_elems = n_rq_elems;
> 
> Sorry for copy'n'paste braino. Thanks for catching.

Kudos goes to Coverity, it's good at finding these buglets. :-)

> 
>>  	params.elem_size = QEDR_RQE_ELEMENT_SIZE;
>>  
>>  	rc = dev->ops->common->chain_alloc(dev->cdev, &qp->rq.pbl, &params);
>> -- 
>> 2.27.0
> 
> Acked-by: Alexander Lobakin <alobakin@marvell.com>
> 
> Al
>
Jason Gunthorpe July 27, 2020, 4:17 p.m. UTC | #3
On Mon, Jul 27, 2020 at 03:17:12PM +0100, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> Currently n_rq_elems is being assigned to params.elem_size instead of the
> field params.num_elems.  Coverity is detecting this as a double assingment
> to params.elem_size and reporting this as an usused value on the first
> assignment.  Fix this.
> 
> Addresses-Coverity: ("Unused value")
> Fixes: b6db3f71c976 ("qed: simplify chain allocation with init params struct")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/infiniband/hw/qedr/verbs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

DaveM will need to take this since the Fixed patch is in his tree,
thanks.

Jason
David Miller July 27, 2020, 7:46 p.m. UTC | #4
From: Jason Gunthorpe <jgg@nvidia.com>
Date: Mon, 27 Jul 2020 13:17:39 -0300

> On Mon, Jul 27, 2020 at 03:17:12PM +0100, Colin King wrote:
>> From: Colin Ian King <colin.king@canonical.com>
>> 
>> Currently n_rq_elems is being assigned to params.elem_size instead of the
>> field params.num_elems.  Coverity is detecting this as a double assingment
>> to params.elem_size and reporting this as an usused value on the first
>> assignment.  Fix this.
>> 
>> Addresses-Coverity: ("Unused value")
>> Fixes: b6db3f71c976 ("qed: simplify chain allocation with init params struct")
>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>> ---
>>  drivers/infiniband/hw/qedr/verbs.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> DaveM will need to take this since the Fixed patch is in his tree,
> thanks.

Applied to net-next, thanks everyone.
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 5a80471577a6..4ce4e2eef6cc 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -1930,7 +1930,7 @@  qedr_roce_create_kernel_qp(struct qedr_dev *dev,
 	in_params->sq_pbl_ptr = qed_chain_get_pbl_phys(&qp->sq.pbl);
 
 	params.intended_use = QED_CHAIN_USE_TO_CONSUME_PRODUCE;
-	params.elem_size = n_rq_elems;
+	params.num_elems = n_rq_elems;
 	params.elem_size = QEDR_RQE_ELEMENT_SIZE;
 
 	rc = dev->ops->common->chain_alloc(dev->cdev, &qp->rq.pbl, &params);