Re: [PATCH] scsi: remove useless variable assignment

From: Gustavo A. R. Silva
Date: Thu May 18 2017 - 13:41:18 EST


Hi James,

Quoting James Bottomley <jejb@xxxxxxxxxxxxxxxxxx>:

On Wed, 2017-05-17 at 19:30 -0500, Gustavo A. R. Silva wrote:
Remove this assignment once the value stored in variable _k_ is
overwritten after a few lines.

Addresses-Coverity-ID: 1226927
Signed-off-by: Gustavo A. R. Silva <garsilva@xxxxxxxxxxxxxx>
---
drivers/scsi/qlogicfas408.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/drivers/scsi/qlogicfas408.c
b/drivers/scsi/qlogicfas408.c
index c3a9151..269440a 100644
--- a/drivers/scsi/qlogicfas408.c
+++ b/drivers/scsi/qlogicfas408.c
@@ -329,7 +329,6 @@ static unsigned int ql_pcmd(struct scsi_cmnd
*cmd)
*/
if ((k = ql_wai(priv)))
return (k << 16);
- k = inb(qbase + 5); /* should be 0x10, bus
service */

That doesn't look right to me. inb() is a statement which has an
effect on the I/O device regardless of whether the returned value is
used or discarded. In this case I think it's being used to clear
pending interrupts, so removing it will likely cause a phase error.


You are right, I get it.

In this case I think a patch to ignore the return value could be applied:

index c3a9151..8f5339a 100644
--- a/drivers/scsi/qlogicfas408.c
+++ b/drivers/scsi/qlogicfas408.c
@@ -329,7 +329,7 @@ static unsigned int ql_pcmd(struct scsi_cmnd *cmd)
*/
if ((k = ql_wai(priv)))
return (k << 16);
- k = inb(qbase + 5); /* should be 0x10, bus service */
+ inb(qbase + 5); /* should be 0x10, bus service */
}

What do you think?

Thank you for the clarification.
--
Gustavo A. R. Silva