Re: aic7xxx regression occuring after 2.6.12 final

James Bottomley
2005-07-02T19:46:16Z

On Sat, 2005-07-02 at 20:03 +0100, Tony Vroon wrote:
> As you predicted, it tried but gave up.

Well, I've looked more closely at this. There's no support in either
the core or the sequencer for IU or QAS, so I think the safe course is
just to strip them out of the transport parameters (I don't have the
sequencer docs anyway, so there's no way I can correct the problem).

This should, therefore, get the whole lot booting again.

James

diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -2633,6 +2633,11 @@ static void ahc_linux_set_dt(struct scsi
ahc_unlock(ahc, &flags);
}

+#if 0
+/* FIXME: This code claims to support IU and QAS. However, the actual
+ * sequencer code and aic7xxx_core have no support for these parameters and
+ * will get into a bad state if they're negotiated. Do not enable this
+ * unless you know what you're doing */
static void ahc_linux_set_qas(struct scsi_target *starget, int qas)
{
struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
@@ -2688,6 +2693,7 @@ static void ahc_linux_set_iu(struct scsi
ppr_options, AHC_TRANS_GOAL, FALSE);
ahc_unlock(ahc, &flags);
}
+#endif

static struct spi_function_template ahc_linux_transport_functions = {
.set_offset = ahc_linux_set_offset,
@@ -2698,10 +2704,12 @@ static struct spi_function_template ahc_
.show_width = 1,
.set_dt = ahc_linux_set_dt,
.show_dt = 1,
+#if 0
.set_iu = ahc_linux_set_iu,
.show_iu = 1,
.set_qas = ahc_linux_set_qas,
.show_qas = 1,
+#endif
};