in drivers/scsi/scsi_lib.c::scsi_io_completion() 'good_bytes' is tested
for being >= 0, but 'good_bytes' is an unsigned int, so that test is
always true. My *guess* is that what was intended was to test if
good_bytes is > 0, but I don't know this code well enough to be sure.
The patch below makes the change to test if it's > 0, but if the code in
the 'if' really wants to run if it's >= 0, then we might as well just
remove the 'if'.
In any case, the current code looks fishy.
Signed-off-by: Jesper Juhl <[email protected]>
--- linux-2.6.12-rc2-mm3-orig/drivers/scsi/scsi_lib.c 2005-04-11 21:20:49.000000000 +0200
+++ linux-2.6.12-rc2-mm3/drivers/scsi/scsi_lib.c 2005-04-20 00:29:14.000000000 +0200
@@ -766,7 +766,7 @@ void scsi_io_completion(struct scsi_cmnd
* Next deal with any sectors which we were able to correctly
* handle.
*/
- if (good_bytes >= 0) {
+ if (good_bytes > 0) {
SCSI_LOG_HLCOMPLETE(1, printk("%ld sectors total, %d bytes done.\n",
req->nr_sectors, good_bytes));
SCSI_LOG_HLCOMPLETE(1, printk("use_sg is %d\n", cmd->use_sg));
Please keep me on CC:
(please keep me on the CC list when replying)
Hi James,
I never got any response to the mail below, so I'll try again :)
Should we just get rid of the code in the 'if' since it'll never trigger,
or was the intention actually to test if (good_bytes > 0) ? If so, then
the patch should make good sense...
Comments ?
--
Jesper Juhl
On Wed, 20 Apr 2005, Jesper Juhl wrote:
>
> in drivers/scsi/scsi_lib.c::scsi_io_completion() 'good_bytes' is tested
> for being >= 0, but 'good_bytes' is an unsigned int, so that test is
> always true. My *guess* is that what was intended was to test if
> good_bytes is > 0, but I don't know this code well enough to be sure.
> The patch below makes the change to test if it's > 0, but if the code in
> the 'if' really wants to run if it's >= 0, then we might as well just
> remove the 'if'.
>
> In any case, the current code looks fishy.
>
>
> Signed-off-by: Jesper Juhl <[email protected]>
>
> --- linux-2.6.12-rc2-mm3-orig/drivers/scsi/scsi_lib.c 2005-04-11 21:20:49.000000000 +0200
> +++ linux-2.6.12-rc2-mm3/drivers/scsi/scsi_lib.c 2005-04-20 00:29:14.000000000 +0200
> @@ -766,7 +766,7 @@ void scsi_io_completion(struct scsi_cmnd
> * Next deal with any sectors which we were able to correctly
> * handle.
> */
> - if (good_bytes >= 0) {
> + if (good_bytes > 0) {
> SCSI_LOG_HLCOMPLETE(1, printk("%ld sectors total, %d bytes done.\n",
> req->nr_sectors, good_bytes));
> SCSI_LOG_HLCOMPLETE(1, printk("use_sg is %d\n", cmd->use_sg));
>
>
>
>
> Please keep me on CC:
>
On Mon, 16 May 2005, Jesper Juhl wrote:
> (please keep me on the CC list when replying)
>
>
> Hi James,
>
> I never got any response to the mail below, so I'll try again :)
> Should we just get rid of the code in the 'if' since it'll never trigger,
I mean get rid of the "if", not "the code in the if" of course..
> or was the intention actually to test if (good_bytes > 0) ? If so, then
> the patch should make good sense...
>
> Comments ?
>
> --
> Jesper Juhl
>
>
> On Wed, 20 Apr 2005, Jesper Juhl wrote:
>
> >
> > in drivers/scsi/scsi_lib.c::scsi_io_completion() 'good_bytes' is tested
> > for being >= 0, but 'good_bytes' is an unsigned int, so that test is
> > always true. My *guess* is that what was intended was to test if
> > good_bytes is > 0, but I don't know this code well enough to be sure.
> > The patch below makes the change to test if it's > 0, but if the code in
> > the 'if' really wants to run if it's >= 0, then we might as well just
> > remove the 'if'.
> >
> > In any case, the current code looks fishy.
> >
> >
> > Signed-off-by: Jesper Juhl <[email protected]>
> >
> > --- linux-2.6.12-rc2-mm3-orig/drivers/scsi/scsi_lib.c 2005-04-11 21:20:49.000000000 +0200
> > +++ linux-2.6.12-rc2-mm3/drivers/scsi/scsi_lib.c 2005-04-20 00:29:14.000000000 +0200
> > @@ -766,7 +766,7 @@ void scsi_io_completion(struct scsi_cmnd
> > * Next deal with any sectors which we were able to correctly
> > * handle.
> > */
> > - if (good_bytes >= 0) {
> > + if (good_bytes > 0) {
> > SCSI_LOG_HLCOMPLETE(1, printk("%ld sectors total, %d bytes done.\n",
> > req->nr_sectors, good_bytes));
> > SCSI_LOG_HLCOMPLETE(1, printk("use_sg is %d\n", cmd->use_sg));
> >
> >
> >
> >
> > Please keep me on CC:
> >
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>