Re: aic7xxx support for >2TB volumes?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Douglas Gilbert wrote:
Perhaps Kilian could try the following patch (borrowed from
scsi_debug). The patch is against lk 2.6.15-rc1 but should
by widely applicable (unless the aic7... series really
does have a 12 byte limit). I will report back if this
patch has any adverse impact on "sg_readcap -16" which
should report: "illegal request/invalid command operation
code" on my hardware.

I don't think slave_configure is the right place to be modifying
a scsi_host attribute. How about this patch instead? Only compile
tested.



--
Brian King
eServer Storage I/O
IBM Linux Technology Center

Signed-off-by: Brian King <brking@xxxxxxxxxx>
---

 drivers/scsi/aic7xxx/aic79xx.h     |    2 ++
 drivers/scsi/aic7xxx/aic79xx_osm.c |    1 +
 drivers/scsi/aic7xxx/aic7xxx.h     |    2 ++
 drivers/scsi/aic7xxx/aic7xxx_osm.c |    1 +
 4 files changed, 6 insertions(+)

diff -puN drivers/scsi/aic7xxx/aic79xx.h~aic7xxx_max_cmd_len drivers/scsi/aic7xxx/aic79xx.h
--- linux-2.6/drivers/scsi/aic7xxx/aic79xx.h~aic7xxx_max_cmd_len	2005-11-20 22:22:28.000000000 -0600
+++ linux-2.6-bjking1/drivers/scsi/aic7xxx/aic79xx.h	2005-11-20 22:22:28.000000000 -0600
@@ -201,6 +201,8 @@ do {								\
 /* Reset line assertion time in us */
 #define AHD_BUSRESET_DELAY	25
 
+#define AHD_MAX_CMD_LEN	16
+
 /******************* Chip Characteristics/Operating Settings  *****************/
 /*
  * Chip Type
diff -puN drivers/scsi/aic7xxx/aic79xx_osm.c~aic7xxx_max_cmd_len drivers/scsi/aic7xxx/aic79xx_osm.c
--- linux-2.6/drivers/scsi/aic7xxx/aic79xx_osm.c~aic7xxx_max_cmd_len	2005-11-20 22:22:28.000000000 -0600
+++ linux-2.6-bjking1/drivers/scsi/aic7xxx/aic79xx_osm.c	2005-11-20 22:22:28.000000000 -0600
@@ -1081,6 +1081,7 @@ ahd_linux_register_host(struct ahd_softc
 	host->max_id = (ahd->features & AHD_WIDE) ? 16 : 8;
 	host->max_lun = AHD_NUM_LUNS;
 	host->max_channel = 0;
+	host->max_cmd_len = AHD_MAX_CMD_LEN;
 	host->sg_tablesize = AHD_NSEG;
 	ahd_set_unit(ahd, ahd_linux_unit++);
 	sprintf(buf, "scsi%d", host->host_no);
diff -puN drivers/scsi/aic7xxx/aic7xxx.h~aic7xxx_max_cmd_len drivers/scsi/aic7xxx/aic7xxx.h
--- linux-2.6/drivers/scsi/aic7xxx/aic7xxx.h~aic7xxx_max_cmd_len	2005-11-20 22:22:28.000000000 -0600
+++ linux-2.6-bjking1/drivers/scsi/aic7xxx/aic7xxx.h	2005-11-20 22:22:28.000000000 -0600
@@ -181,6 +181,8 @@ struct seeprom_descriptor;
 /* Reset line assertion time in us */
 #define AHC_BUSRESET_DELAY	25
 
+#define AHC_MAX_CMD_LEN		16
+
 /******************* Chip Characteristics/Operating Settings  *****************/
 /*
  * Chip Type
diff -puN drivers/scsi/aic7xxx/aic7xxx_osm.c~aic7xxx_max_cmd_len drivers/scsi/aic7xxx/aic7xxx_osm.c
--- linux-2.6/drivers/scsi/aic7xxx/aic7xxx_osm.c~aic7xxx_max_cmd_len	2005-11-20 22:22:28.000000000 -0600
+++ linux-2.6-bjking1/drivers/scsi/aic7xxx/aic7xxx_osm.c	2005-11-20 22:22:28.000000000 -0600
@@ -1082,6 +1082,7 @@ ahc_linux_register_host(struct ahc_softc
 	host->max_id = (ahc->features & AHC_WIDE) ? 16 : 8;
 	host->max_lun = AHC_NUM_LUNS;
 	host->max_channel = (ahc->features & AHC_TWIN) ? 1 : 0;
+	host->max_cmd_len = AHC_MAX_CMD_LEN;
 	host->sg_tablesize = AHC_NSEG;
 	ahc_set_unit(ahc, ahc_linux_unit++);
 	sprintf(buf, "scsi%d", host->host_no);
_

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux