2014-06-26 11:53:41

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH v2] scsi: bnx2i: bnx2i_iscsi.c: Cleaning up variable is set more than once

A struct member variable is set to different values without having used in between.

This was found using a static code analysis program called cppcheck

Signed-off-by: Rickard Strandqvist <[email protected]>
---
drivers/scsi/bnx2i/bnx2i_iscsi.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index 166543f..4e17a7f 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -1643,12 +1643,11 @@ static void bnx2i_conn_get_stats(struct iscsi_cls_conn *cls_conn,
stats->r2t_pdus = conn->r2t_pdus_cnt;
stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
- stats->custom_length = 3;
strcpy(stats->custom[2].desc, "eh_abort_cnt");
stats->custom[2].value = conn->eh_abort_cnt;
stats->digest_err = 0;
stats->timeout_err = 0;
- stats->custom_length = 0;
+ stats->custom_length = 3;
}


--
1.7.10.4


2014-06-26 12:05:12

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v2] scsi: bnx2i: bnx2i_iscsi.c: Cleaning up variable is set more than once

On Thu, 2014-06-26 at 13:54 +0200, Rickard Strandqvist wrote:
> A struct member variable is set to different values without having used in between.
[]
> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
[]
> @@ -1643,12 +1643,11 @@ static void bnx2i_conn_get_stats(struct iscsi_cls_conn *cls_conn,
> stats->r2t_pdus = conn->r2t_pdus_cnt;
> stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
> stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
> - stats->custom_length = 3;
> strcpy(stats->custom[2].desc, "eh_abort_cnt");
> stats->custom[2].value = conn->eh_abort_cnt;
> stats->digest_err = 0;
> stats->timeout_err = 0;
> - stats->custom_length = 0;
> + stats->custom_length = 3;

You are changing custom_length from 0 to 3.

Why is this correct?

2014-06-26 12:12:42

by Maurizio Lombardi

[permalink] [raw]
Subject: Re: [PATCH v2] scsi: bnx2i: bnx2i_iscsi.c: Cleaning up variable is set more than once



On 06/26/2014 02:05 PM, Joe Perches wrote:
> On Thu, 2014-06-26 at 13:54 +0200, Rickard Strandqvist wrote:
>> A struct member variable is set to different values without having used in between.
> []
>> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> []
>> @@ -1643,12 +1643,11 @@ static void bnx2i_conn_get_stats(struct iscsi_cls_conn *cls_conn,
>> stats->r2t_pdus = conn->r2t_pdus_cnt;
>> stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
>> stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
>> - stats->custom_length = 3;
>> strcpy(stats->custom[2].desc, "eh_abort_cnt");
>> stats->custom[2].value = conn->eh_abort_cnt;
>> stats->digest_err = 0;
>> stats->timeout_err = 0;
>> - stats->custom_length = 0;
>> + stats->custom_length = 3;
>
> You are changing custom_length from 0 to 3.
>
> Why is this correct?

http://marc.info/?l=linux-scsi&m=140371670511706&w=2

2014-06-26 12:15:00

by Maurizio Lombardi

[permalink] [raw]
Subject: Re: [PATCH v2] scsi: bnx2i: bnx2i_iscsi.c: Cleaning up variable is set more than once



On 06/26/2014 01:54 PM, Rickard Strandqvist wrote:
> A struct member variable is set to different values without having used in between.

It is almost ok for me but I think you should mention that it also fixes a bug,
or the commit message will be misleading.

>
> This was found using a static code analysis program called cppcheck
>
> Signed-off-by: Rickard Strandqvist <[email protected]>
> ---
> drivers/scsi/bnx2i/bnx2i_iscsi.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> index 166543f..4e17a7f 100644
> --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
> +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> @@ -1643,12 +1643,11 @@ static void bnx2i_conn_get_stats(struct iscsi_cls_conn *cls_conn,
> stats->r2t_pdus = conn->r2t_pdus_cnt;
> stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
> stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
> - stats->custom_length = 3;
> strcpy(stats->custom[2].desc, "eh_abort_cnt");
> stats->custom[2].value = conn->eh_abort_cnt;
> stats->digest_err = 0;
> stats->timeout_err = 0;
> - stats->custom_length = 0;
> + stats->custom_length = 3;
> }
>
>
>

2014-06-26 12:18:01

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH v2] scsi: bnx2i: bnx2i_iscsi.c: Cleaning up variable is set more than once

On Thu, 2014-06-26 at 14:12 +0200, Maurizio Lombardi wrote:
>
> On 06/26/2014 02:05 PM, Joe Perches wrote:
> > On Thu, 2014-06-26 at 13:54 +0200, Rickard Strandqvist wrote:
> >> A struct member variable is set to different values without having used in between.
> > []
> >> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> > []
> >> @@ -1643,12 +1643,11 @@ static void bnx2i_conn_get_stats(struct iscsi_cls_conn *cls_conn,
> >> stats->r2t_pdus = conn->r2t_pdus_cnt;
> >> stats->tmfcmd_pdus = conn->tmfcmd_pdus_cnt;
> >> stats->tmfrsp_pdus = conn->tmfrsp_pdus_cnt;
> >> - stats->custom_length = 3;
> >> strcpy(stats->custom[2].desc, "eh_abort_cnt");
> >> stats->custom[2].value = conn->eh_abort_cnt;
> >> stats->digest_err = 0;
> >> stats->timeout_err = 0;
> >> - stats->custom_length = 0;
> >> + stats->custom_length = 3;
> >
> > You are changing custom_length from 0 to 3.
> >
> > Why is this correct?
>
> http://marc.info/?l=linux-scsi&m=140371670511706&w=2

Then the subject and commit message are wrong and need
to be updated to reflect your text.

This is a bugfix, not a cleanup.