Re: aic7xxx regression occuring after 2.6.12 final

James Bottomley
2005-07-02T18:36:32Z

On Sat, 2005-07-02 at 18:47 +0100, Tony Vroon wrote:
> (scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options
> 7
> (scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f,
> ppr_options 7
> Filtered to width 0, period 0, offset 0, options 0

Well, I think this is it. The drive is actually offering IU and QAS.
That's fun; I've never seen a u160 drive that could do those before.
Although the aic7xxx driver is apparently coded to allow this, it looks
like the code paths have never been exercised.

So, although I think this patch will fix up the first error, there's
probably a long line behind it ...

James

diff --git a/drivers/scsi/aic7xxx/aic7xxx_core.c
b/drivers/scsi/aic7xxx/aic7xxx_core.c
--- a/drivers/scsi/aic7xxx/aic7xxx_core.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_core.c
@@ -3258,7 +3258,8 @@ ahc_parse_msg(struct ahc_softc *ahc, str
* on any controller. Transfer options are
* only available if we are negotiating wide.
*/
- ppr_options &= MSG_EXT_PPR_DT_REQ;
+ ppr_options &= MSG_EXT_PPR_DT_REQ |
+ MSG_EXT_PPR_QAS_REQ | MSG_EXT_PPR_IU_REQ;
if (bus_width == 0)
ppr_options = 0;