old bug in sym53c8xx still lurks in 2.2.20pre

Michal Jaegermann (michal@harddata.com)
Wed, 24 Oct 2001 23:59:50 -0600


Gerard Roudier posted at the beginning of an April a fix to a queue
handling in that driver which seems to be forgotten. I was looking
through 2.2.20pre and found that the bug is still there.

There are two things about the bug - it may actually hit (some got it
while running cdparanoia) and if you look closer at the original code
you will see that it is quite suspicious. :-)

Here it is again the fix as posted by Gerard re-diffed against
2.2.19something sources. It still applies cleanly to 2.2.20pre11.

--- linux-2.2.19aa2/drivers/scsi/sym53c8xx.c.symx Sun Mar 25 09:31:33 2001
+++ linux-2.2.19aa2/drivers/scsi/sym53c8xx.c Fri Apr 27 10:39:16 2001
@@ -10125,14 +10125,13 @@
if (i >= MAX_START*2)
i = 0;
}
- assert(k != -1);
- if (k != 1) {
+ if (k != -1) {
np->squeue[k] = np->squeue[i]; /* Idle task */
np->squeueput = k; /* Start queue pointer */
- cp->host_status = HS_ABORTED;
- cp->scsi_status = S_ILLEGAL;
- ncr_complete(np, cp);
}
+ cp->host_status = HS_ABORTED;
+ cp->scsi_status = S_ILLEGAL;
+ ncr_complete(np, cp);
}
break;
/*

Hm, I should possibly check the latest 2.4s as well.

Michal
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/