Re: phase change messages cusing slowdown with sym53c8xx_2 driver

From: James Bottomley
Date: Wed Dec 01 2004 - 15:44:51 EST


On Wed, 2004-12-01 at 15:32, Matthew Wilcox wrote:
> On Wed, Dec 01, 2004 at 12:16:33PM -0500, James Bottomley wrote:
> > does this look like the "drive won't respond properly to PPR if the bus
> > is SE" problem again?
>
> Thomas Babut who tested that fix reported it didn't solve his problem ;-(
>
> http://marc.theaimsgroup.com/?l=linux-scsi&m=109968716312783&w=2
> http://marc.theaimsgroup.com/?l=linux-scsi&m=109969829411685&w=2
>
> I'm out of ideas for fixing that one. Would you consider Richard
> Waltham's patch?
>
> http://marc.theaimsgroup.com/?l=linux-kernel&m=109967237930243&w=2

Actually, yes, or the attached variant of it. Does this solve the
problem?

There's no reason why we should assume a SCSI_3 or greater device
automatically supports ppr (especially if it's inquiry bit is
advertising that it doesn't...)

James

===== drivers/scsi/scsi_scan.c 1.134 vs edited =====
--- 1.134/drivers/scsi/scsi_scan.c 2004-10-24 07:09:48 -04:00
+++ edited/drivers/scsi/scsi_scan.c 2004-12-01 15:41:03 -05:00
@@ -554,10 +554,8 @@
sdev->removable = (0x80 & inq_result[1]) >> 7;
sdev->lockable = sdev->removable;
sdev->soft_reset = (inq_result[7] & 1) && ((inq_result[3] & 7) == 2);
+ sdev->ppr = (sdev->inquiry_len > 56 && (inq_result[56] & 0x04) == 0x04);

- if (sdev->scsi_level >= SCSI_3 || (sdev->inquiry_len > 56 &&
- inq_result[56] & 0x04))
- sdev->ppr = 1;
if (inq_result[7] & 0x60)
sdev->wdtr = 1;
if (inq_result[7] & 0x10)

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