On Tue, Sep 05, James Bottomley wrote: > On Wed, 2006-09-06 at 08:20 +1000, Benjamin Herrenschmidt wrote: > > Yes, it's a PCI error. > > Thanks, and the cat of /proc/scsi_host/host<n>/signalling? > > My suspicion is the register doesn't actually exist on this card so it > doesn't actually respond on the bus. However, on my equivalent > everything works; largely I think because the only PC's I have don't > know how to signal a PCI error. Where is that area mapped? It crashes already if I read port 0. Everything works if I also add the second hunk to disable signalling. Index: linux-2.6.17/drivers/scsi/aic7xxx/aic7xxx_osm.c =================================================================== --- linux-2.6.17.orig/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ linux-2.6.17/drivers/scsi/aic7xxx/aic7xxx_osm.c @@ -2539,8 +2539,15 @@ static void ahc_linux_set_iu(struct scsi static void ahc_linux_get_signalling(struct Scsi_Host *shost) { struct ahc_softc *ahc = *(struct ahc_softc **)shost->hostdata; - u8 mode = ahc_inb(ahc, SBLKCTL); + int i; + u8 mode; + for (i=0;i!=SBLKCTL;i++) { + printk("i 0x%02x ",i); + mode = ahc_inb(ahc, i); + printk("m 0x%02x\n",mode); + } + mode = ahc_inb(ahc, SBLKCTL); if (mode & ENAB40) spi_signalling(shost) = SPI_SIGNAL_LVD; else if (mode & ENAB20) @@ -2566,8 +2573,8 @@ static struct spi_function_template ahc_ .show_iu = 1, .set_qas = ahc_linux_set_qas, .show_qas = 1, -#endif .get_signalling = ahc_linux_get_signalling, +#endif }; - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html