Add code comment to make it clear that the fall-through is intentional.
Addresses-Coverity-ID: 1403728
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/edac/pnd2_edac.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
index 1cad5a9..c51ec73 100644
--- a/drivers/edac/pnd2_edac.c
+++ b/drivers/edac/pnd2_edac.c
@@ -174,6 +174,7 @@ static int apl_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
switch (sz) {
case 8:
ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
+ /* fall through */
case 4:
ret = sbi_send(port, off, op, (u32 *)data);
pnd2_printk(KERN_DEBUG, "%s=%x%08x ret=%d\n", name,
--
2.5.0
Value assigned to variable _ret_ at line 176 is overwritten
a few lines below before it can be used. This makes such
variable assignment useless.
Addresses-Coverity-ID: 1403730
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/edac/pnd2_edac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
index c51ec73..d1de53e 100644
--- a/drivers/edac/pnd2_edac.c
+++ b/drivers/edac/pnd2_edac.c
@@ -173,7 +173,7 @@ static int apl_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
edac_dbg(2, "Read %s port=%x off=%x op=%x\n", name, port, off, op);
switch (sz) {
case 8:
- ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
+ sbi_send(port, off + 4, op, (u32 *)(data + 4));
/* fall through */
case 4:
ret = sbi_send(port, off, op, (u32 *)data);
--
2.5.0
On Thu, Jun 22, 2017 at 02:30:10PM -0500, Gustavo A. R. Silva wrote:
> Value assigned to variable _ret_ at line 176 is overwritten
> a few lines below before it can be used. This makes such
> variable assignment useless.
>
> Addresses-Coverity-ID: 1403730
Get rid of this tag...
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/edac/pnd2_edac.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
> index c51ec73..d1de53e 100644
> --- a/drivers/edac/pnd2_edac.c
> +++ b/drivers/edac/pnd2_edac.c
> @@ -173,7 +173,7 @@ static int apl_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
> edac_dbg(2, "Read %s port=%x off=%x op=%x\n", name, port, off, op);
> switch (sz) {
> case 8:
> - ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
> + sbi_send(port, off + 4, op, (u32 *)(data + 4));
... keep ret but OR it in with its previous value:
case 8:
ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
/* fall through */
case 4:
ret |= sbi_send(port, off, op, (u32 *)data);
> /* fall through */
> case 4:
> ret = sbi_send(port, off, op, (u32 *)data);
... and merge both into a single patch.
Thanks.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
Hi Borislav,
Quoting Borislav Petkov <[email protected]>:
> On Thu, Jun 22, 2017 at 02:30:10PM -0500, Gustavo A. R. Silva wrote:
>> Value assigned to variable _ret_ at line 176 is overwritten
>> a few lines below before it can be used. This makes such
>> variable assignment useless.
>>
>> Addresses-Coverity-ID: 1403730
>
> Get rid of this tag...
>
>> Signed-off-by: Gustavo A. R. Silva <[email protected]>
>> ---
>> drivers/edac/pnd2_edac.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
>> index c51ec73..d1de53e 100644
>> --- a/drivers/edac/pnd2_edac.c
>> +++ b/drivers/edac/pnd2_edac.c
>> @@ -173,7 +173,7 @@ static int apl_rd_reg(int port, int off, int
>> op, void *data, size_t sz, char *na
>> edac_dbg(2, "Read %s port=%x off=%x op=%x\n", name, port, off, op);
>> switch (sz) {
>> case 8:
>> - ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
>> + sbi_send(port, off + 4, op, (u32 *)(data + 4));
>
> ... keep ret but OR it in with its previous value:
>
> case 8:
> ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
> /* fall through */
> case 4:
> ret |= sbi_send(port, off, op, (u32 *)data);
>
>> /* fall through */
>> case 4:
>> ret = sbi_send(port, off, op, (u32 *)data);
>
> ... and merge both into a single patch.
>
I got it. I'll send a new patch shortly.
Thanks!
--
Gustavo A. R. Silva
Add code comment to make it clear that the fall-through is intentional and,
OR ret with its previous value to avoid overwriting it.
Cc: Borislav Petkov <[email protected]>
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
drivers/edac/pnd2_edac.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
index 1cad5a9..63cb323 100644
--- a/drivers/edac/pnd2_edac.c
+++ b/drivers/edac/pnd2_edac.c
@@ -174,8 +174,9 @@ static int apl_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
switch (sz) {
case 8:
ret = sbi_send(port, off + 4, op, (u32 *)(data + 4));
+ /* fall through */
case 4:
- ret = sbi_send(port, off, op, (u32 *)data);
+ ret |= sbi_send(port, off, op, (u32 *)data);
pnd2_printk(KERN_DEBUG, "%s=%x%08x ret=%d\n", name,
sz == 8 ? *((u32 *)(data + 4)) : 0, *((u32 *)data), ret);
break;
--
2.5.0
On Thu, Jun 22, 2017 at 05:05:35PM -0500, Gustavo A. R. Silva wrote:
> Add code comment to make it clear that the fall-through is intentional and,
> OR ret with its previous value to avoid overwriting it.
>
> Cc: Borislav Petkov <[email protected]>
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
> drivers/edac/pnd2_edac.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
Applied, thanks.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.