* [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code
@ 2008-02-19 19:29 Adrian Bunk
2008-02-20 2:13 ` James Bottomley
0 siblings, 1 reply; 7+ messages in thread
From: Adrian Bunk @ 2008-02-19 19:29 UTC (permalink / raw)
To: David Somayajulu, James Bottomley; +Cc: linux-kernel, linux-scsi
This patch removes dead code spotted by the Coverity checker.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
---
drivers/scsi/qla4xxx/ql4_isr.c | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)
--- linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c.old 2008-02-19 20:29:16.000000000 +0200
+++ linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c 2008-02-19 20:30:37.000000000 +0200
@@ -91,38 +91,22 @@ static void qla4xxx_status_entry(struct
if (scsi_status == 0) {
cmd->result = DID_OK << 16;
break;
}
if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) {
cmd->result = DID_ERROR << 16;
break;
}
- if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) {
+ if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER)
scsi_set_resid(cmd, residual);
- if (!scsi_status && ((scsi_bufflen(cmd) - residual) <
- cmd->underflow)) {
-
- cmd->result = DID_ERROR << 16;
-
- DEBUG2(printk("scsi%ld:%d:%d:%d: %s: "
- "Mid-layer Data underrun0, "
- "xferlen = 0x%x, "
- "residual = 0x%x\n", ha->host_no,
- cmd->device->channel,
- cmd->device->id,
- cmd->device->lun, __func__,
- scsi_bufflen(cmd), residual));
- break;
- }
- }
cmd->result = DID_OK << 16 | scsi_status;
if (scsi_status != SCSI_CHECK_CONDITION)
break;
/* Copy Sense Data into sense buffer. */
memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
sensebytecnt = le16_to_cpu(sts_entry->senseDataByteCnt);
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-19 19:29 [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code Adrian Bunk @ 2008-02-20 2:13 ` James Bottomley 2008-02-20 2:35 ` Andrew Vasquez 0 siblings, 1 reply; 7+ messages in thread From: James Bottomley @ 2008-02-20 2:13 UTC (permalink / raw) To: Adrian Bunk; +Cc: David Somayajulu, linux-kernel, linux-scsi On Tue, 2008-02-19 at 21:29 +0200, Adrian Bunk wrote: > This patch removes dead code spotted by the Coverity checker. > > Signed-off-by: Adrian Bunk <bunk@kernel.org> > > --- > > drivers/scsi/qla4xxx/ql4_isr.c | 18 +----------------- > 1 file changed, 1 insertion(+), 17 deletions(-) > > --- linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c.old 2008-02-19 20:29:16.000000000 +0200 > +++ linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c 2008-02-19 20:30:37.000000000 +0200 > @@ -91,38 +91,22 @@ static void qla4xxx_status_entry(struct > if (scsi_status == 0) { > cmd->result = DID_OK << 16; > break; > } > > if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) { > cmd->result = DID_ERROR << 16; > break; > } > > - if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { > + if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) > scsi_set_resid(cmd, residual); > - if (!scsi_status && ((scsi_bufflen(cmd) - residual) < > - cmd->underflow)) { > - > - cmd->result = DID_ERROR << 16; > - > - DEBUG2(printk("scsi%ld:%d:%d:%d: %s: " > - "Mid-layer Data underrun0, " > - "xferlen = 0x%x, " > - "residual = 0x%x\n", ha->host_no, > - cmd->device->channel, > - cmd->device->id, > - cmd->device->lun, __func__, > - scsi_bufflen(cmd), residual)); > - break; > - } > - } This code doesn't look dead to me, it looks to be enforcing cmd->underrun if set ... what makes the coverity checker think it can never be executed? James ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-20 2:13 ` James Bottomley @ 2008-02-20 2:35 ` Andrew Vasquez 2008-02-20 2:43 ` James Bottomley 0 siblings, 1 reply; 7+ messages in thread From: Andrew Vasquez @ 2008-02-20 2:35 UTC (permalink / raw) To: James Bottomley, David Somayajulu; +Cc: Adrian Bunk, linux-kernel, linux-scsi On Tue, 19 Feb 2008, James Bottomley wrote: > On Tue, 2008-02-19 at 21:29 +0200, Adrian Bunk wrote: > > This patch removes dead code spotted by the Coverity checker. > > > > Signed-off-by: Adrian Bunk <bunk@kernel.org> > > > > --- > > > > drivers/scsi/qla4xxx/ql4_isr.c | 18 +----------------- > > 1 file changed, 1 insertion(+), 17 deletions(-) > > > > --- linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c.old 2008-02-19 20:29:16.000000000 +0200 > > +++ linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c 2008-02-19 20:30:37.000000000 +0200 > > @@ -91,38 +91,22 @@ static void qla4xxx_status_entry(struct > > if (scsi_status == 0) { > > cmd->result = DID_OK << 16; > > break; > > } > > > > if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) { > > cmd->result = DID_ERROR << 16; > > break; > > } > > > > - if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { > > + if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) > > scsi_set_resid(cmd, residual); > > - if (!scsi_status && ((scsi_bufflen(cmd) - residual) < > > - cmd->underflow)) { > > - > > - cmd->result = DID_ERROR << 16; > > - > > - DEBUG2(printk("scsi%ld:%d:%d:%d: %s: " > > - "Mid-layer Data underrun0, " > > - "xferlen = 0x%x, " > > - "residual = 0x%x\n", ha->host_no, > > - cmd->device->channel, > > - cmd->device->id, > > - cmd->device->lun, __func__, > > - scsi_bufflen(cmd), residual)); > > - break; > > - } > > - } > > This code doesn't look dead to me, it looks to be enforcing > cmd->underrun if set ... what makes the coverity checker think it can > never be executed? Hmm, guess it's the earlier 'if (scsi_status == 0)' check a few lines up... Dave S., can you take a look at this... Thanks, av ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-20 2:35 ` Andrew Vasquez @ 2008-02-20 2:43 ` James Bottomley 2008-02-20 2:55 ` Andrew Vasquez 0 siblings, 1 reply; 7+ messages in thread From: James Bottomley @ 2008-02-20 2:43 UTC (permalink / raw) To: Andrew Vasquez; +Cc: David Somayajulu, Adrian Bunk, linux-kernel, linux-scsi On Tue, 2008-02-19 at 18:35 -0800, Andrew Vasquez wrote: > On Tue, 19 Feb 2008, James Bottomley wrote: > > > On Tue, 2008-02-19 at 21:29 +0200, Adrian Bunk wrote: > > > This patch removes dead code spotted by the Coverity checker. > > > > > > Signed-off-by: Adrian Bunk <bunk@kernel.org> > > > > > > --- > > > > > > drivers/scsi/qla4xxx/ql4_isr.c | 18 +----------------- > > > 1 file changed, 1 insertion(+), 17 deletions(-) > > > > > > --- linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c.old 2008-02-19 20:29:16.000000000 +0200 > > > +++ linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c 2008-02-19 20:30:37.000000000 +0200 > > > @@ -91,38 +91,22 @@ static void qla4xxx_status_entry(struct > > > if (scsi_status == 0) { > > > cmd->result = DID_OK << 16; > > > break; > > > } > > > > > > if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) { > > > cmd->result = DID_ERROR << 16; > > > break; > > > } > > > > > > - if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { > > > + if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) > > > scsi_set_resid(cmd, residual); > > > - if (!scsi_status && ((scsi_bufflen(cmd) - residual) < > > > - cmd->underflow)) { > > > - > > > - cmd->result = DID_ERROR << 16; > > > - > > > - DEBUG2(printk("scsi%ld:%d:%d:%d: %s: " > > > - "Mid-layer Data underrun0, " > > > - "xferlen = 0x%x, " > > > - "residual = 0x%x\n", ha->host_no, > > > - cmd->device->channel, > > > - cmd->device->id, > > > - cmd->device->lun, __func__, > > > - scsi_bufflen(cmd), residual)); > > > - break; > > > - } > > > - } > > > > This code doesn't look dead to me, it looks to be enforcing > > cmd->underrun if set ... what makes the coverity checker think it can > > never be executed? > > Hmm, guess it's the earlier 'if (scsi_status == 0)' check a few lines > up... Dave S., can you take a look at this... Thanks, av Ah, so the !scsi_status is wrong it was supposed to be scsi_status != 0 ... and even then it can just be dropped. James ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-20 2:43 ` James Bottomley @ 2008-02-20 2:55 ` Andrew Vasquez 2008-02-21 11:43 ` David Somayajulu 0 siblings, 1 reply; 7+ messages in thread From: Andrew Vasquez @ 2008-02-20 2:55 UTC (permalink / raw) To: James Bottomley; +Cc: David Somayajulu, Adrian Bunk, linux-kernel, linux-scsi On Tue, 19 Feb 2008, James Bottomley wrote: > On Tue, 2008-02-19 at 18:35 -0800, Andrew Vasquez wrote: > > On Tue, 19 Feb 2008, James Bottomley wrote: > > > > > On Tue, 2008-02-19 at 21:29 +0200, Adrian Bunk wrote: > > > > This patch removes dead code spotted by the Coverity checker. > > > > > > > > Signed-off-by: Adrian Bunk <bunk@kernel.org> > > > > > > > > --- > > > > > > > > drivers/scsi/qla4xxx/ql4_isr.c | 18 +----------------- > > > > 1 file changed, 1 insertion(+), 17 deletions(-) > > > > > > > > --- linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c.old 2008-02-19 20:29:16.000000000 +0200 > > > > +++ linux-2.6/drivers/scsi/qla4xxx/ql4_isr.c 2008-02-19 20:30:37.000000000 +0200 > > > > @@ -91,38 +91,22 @@ static void qla4xxx_status_entry(struct > > > > if (scsi_status == 0) { > > > > cmd->result = DID_OK << 16; > > > > break; > > > > } > > > > > > > > if (sts_entry->iscsiFlags & ISCSI_FLAG_RESIDUAL_OVER) { > > > > cmd->result = DID_ERROR << 16; > > > > break; > > > > } > > > > > > > > - if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { > > > > + if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) > > > > scsi_set_resid(cmd, residual); > > > > - if (!scsi_status && ((scsi_bufflen(cmd) - residual) < > > > > - cmd->underflow)) { > > > > - > > > > - cmd->result = DID_ERROR << 16; > > > > - > > > > - DEBUG2(printk("scsi%ld:%d:%d:%d: %s: " > > > > - "Mid-layer Data underrun0, " > > > > - "xferlen = 0x%x, " > > > > - "residual = 0x%x\n", ha->host_no, > > > > - cmd->device->channel, > > > > - cmd->device->id, > > > > - cmd->device->lun, __func__, > > > > - scsi_bufflen(cmd), residual)); > > > > - break; > > > > - } > > > > - } > > > > > > This code doesn't look dead to me, it looks to be enforcing > > > cmd->underrun if set ... what makes the coverity checker think it can > > > never be executed? > > > > Hmm, guess it's the earlier 'if (scsi_status == 0)' check a few lines > > up... Dave S., can you take a look at this... Thanks, av > > Ah, so the !scsi_status is wrong it was supposed to be scsi_status != > 0 ... and even then it can just be dropped. My guess is that the check should have been written as: ... if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) scsi_set_resid(cmd, residual); if ((scsi_bufflen(cmd) - residual) < cmd->underflow) { ... It looks to be a logic-error while porting from qla2xxx, where scsi_status during CS_COMPLETE is the full 16-bit status (high-byte is transport, low-byte SCSI status) from from the FCP_RSP frame (not so in iSCSI, where it's just the SCSI-status) and the residual check in qla_isr.c::qla2x00_status_entry() looks like: if (!lscsi_status && ((unsigned)(scsi_bufflen(cp) - resid) < cp->underflow)) { ... I'll defer to Dave S. for verification. ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-20 2:55 ` Andrew Vasquez @ 2008-02-21 11:43 ` David Somayajulu 2008-02-21 11:51 ` Rolf Eike Beer 0 siblings, 1 reply; 7+ messages in thread From: David Somayajulu @ 2008-02-21 11:43 UTC (permalink / raw) To: Andrew Vasquez, James Bottomley; +Cc: Adrian Bunk, linux-kernel, linux-scsi Andrew Vasquez wrote: <snip> > > > Hmm, guess it's the earlier 'if (scsi_status == 0)' check > a few lines > > > up... Dave S., can you take a look at this... Thanks, av > > > > Ah, so the !scsi_status is wrong it was supposed to be > scsi_status != > > 0 ... and even then it can just be dropped. > > My guess is that the check should have been written as: > > ... > if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) > scsi_set_resid(cmd, residual); > if ((scsi_bufflen(cmd) - residual) < cmd->underflow) { > ... > > It looks to be a logic-error while porting from qla2xxx, where > scsi_status during CS_COMPLETE is the full 16-bit status (high-byte is > transport, low-byte SCSI status) from from the FCP_RSP frame (not so > in iSCSI, where it's just the SCSI-status) and the residual check > in qla_isr.c::qla2x00_status_entry() looks like: > > if (!lscsi_status && > ((unsigned)(scsi_bufflen(cp) - resid) < > cp->underflow)) { > ... > > I'll defer to Dave S. for verification. > The correct patch needs to be Signed-off-by: David C Somayajulu <david.somayajulu@qlogic.com> --- diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index 0f029d0..fc84db4 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c @@ -100,8 +100,7 @@ static void qla4xxx_status_entry(struct if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { scsi_set_resid(cmd, residual); - if (!scsi_status && ((scsi_bufflen(cmd) - residual) < - cmd->underflow)) { + if ((scsi_bufflen(cmd) - residual) < cmd->underflow) { cmd->result = DID_ERROR << 16; ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code 2008-02-21 11:43 ` David Somayajulu @ 2008-02-21 11:51 ` Rolf Eike Beer 0 siblings, 0 replies; 7+ messages in thread From: Rolf Eike Beer @ 2008-02-21 11:51 UTC (permalink / raw) To: David Somayajulu Cc: Andrew Vasquez, James Bottomley, Adrian Bunk, linux-kernel, linux-scsi [-- Attachment #1: Type: text/plain, Size: 680 bytes --] > The correct patch needs to be > > Signed-off-by: David C Somayajulu <david.somayajulu@qlogic.com> > > --- > > diff --git a/drivers/scsi/qla4xxx/ql4_isr.c > b/drivers/scsi/qla4xxx/ql4_isr.c > index 0f029d0..fc84db4 100644 > --- a/drivers/scsi/qla4xxx/ql4_isr.c > +++ b/drivers/scsi/qla4xxx/ql4_isr.c > @@ -100,8 +100,7 @@ static void qla4xxx_status_entry(struct > > if (sts_entry->iscsiFlags &ISCSI_FLAG_RESIDUAL_UNDER) { > scsi_set_resid(cmd, residual); > - if (!scsi_status && ((scsi_bufflen(cmd) - > residual) < > - cmd->underflow)) { > + if ((scsi_bufflen(cmd) - residual) < > cmd->underflow) { The patch is line-wrapped and can' be applied. Greetings, Eike [-- Attachment #2: This is a digitally signed message part. --] [-- Type: application/pgp-signature, Size: 194 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-02-21 11:58 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-02-19 19:29 [2.6 patch] scsi/qla4xxx/ql4_isr.c: remove dead code Adrian Bunk 2008-02-20 2:13 ` James Bottomley 2008-02-20 2:35 ` Andrew Vasquez 2008-02-20 2:43 ` James Bottomley 2008-02-20 2:55 ` Andrew Vasquez 2008-02-21 11:43 ` David Somayajulu 2008-02-21 11:51 ` Rolf Eike Beer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox