NCR5380 core is not sg-chain ready, so maximum scatterlist supported is SCSI_MAX_SG_SEGMENTS. Define it so, in core, and let all drivers use it for the sg_tablesize in host templates. Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx> --- drivers/scsi/NCR5380.h | 3 +++ drivers/scsi/arm/cumana_1.c | 2 +- drivers/scsi/arm/oak.c | 2 +- drivers/scsi/dmx3191d.c | 2 +- drivers/scsi/dtc.c | 2 +- drivers/scsi/g_NCR5380.c | 2 +- drivers/scsi/mac_scsi.c | 9 ++++----- drivers/scsi/mac_scsi.h | 4 ---- drivers/scsi/sun3_scsi.c | 4 ++-- drivers/scsi/sun3_scsi.h | 4 ---- drivers/scsi/sun3_scsi_vme.c | 4 ++-- 11 files changed, 16 insertions(+), 22 deletions(-) diff --git a/drivers/scsi/NCR5380.h b/drivers/scsi/NCR5380.h index bdc468c..cd7e258 100644 --- a/drivers/scsi/NCR5380.h +++ b/drivers/scsi/NCR5380.h @@ -37,6 +37,9 @@ #define NCR5380_PUBLIC_RELEASE 7 #define NCR53C400_PUBLIC_RELEASE 2 +/* FIXME: Not sg-chain ready */ +#define NCR5380_MAX_SG SCSI_MAX_SG_SEGMENTS + #define NDEBUG_ARBITRATION 0x1 #define NDEBUG_AUTOSENSE 0x2 #define NDEBUG_DMA 0x4 diff --git a/drivers/scsi/arm/cumana_1.c b/drivers/scsi/arm/cumana_1.c index 49d838e..6315730 100644 --- a/drivers/scsi/arm/cumana_1.c +++ b/drivers/scsi/arm/cumana_1.c @@ -220,7 +220,7 @@ static struct scsi_host_template cumanascsi_template = { .eh_bus_reset_handler = NCR5380_bus_reset, .can_queue = 16, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = 2, .unchecked_isa_dma = 0, .use_clustering = DISABLE_CLUSTERING, diff --git a/drivers/scsi/arm/oak.c b/drivers/scsi/arm/oak.c index 849cdf8..69d9afd 100644 --- a/drivers/scsi/arm/oak.c +++ b/drivers/scsi/arm/oak.c @@ -123,7 +123,7 @@ static struct scsi_host_template oakscsi_template = { .eh_bus_reset_handler = NCR5380_bus_reset, .can_queue = 16, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = 2, .use_clustering = DISABLE_CLUSTERING, .proc_name = "oakscsi", diff --git a/drivers/scsi/dmx3191d.c b/drivers/scsi/dmx3191d.c index fa738ec..92e89b8 100644 --- a/drivers/scsi/dmx3191d.c +++ b/drivers/scsi/dmx3191d.c @@ -63,7 +63,7 @@ static struct scsi_host_template dmx3191d_driver_template = { .eh_bus_reset_handler = NCR5380_bus_reset, .can_queue = 32, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = 2, .use_clustering = DISABLE_CLUSTERING, }; diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c index c2677ba..f8e5dd9 100644 --- a/drivers/scsi/dtc.c +++ b/drivers/scsi/dtc.c @@ -479,7 +479,7 @@ static struct scsi_host_template driver_template = { .bios_param = dtc_biosparam, .can_queue = CAN_QUEUE, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = CMD_PER_LUN, .use_clustering = DISABLE_CLUSTERING, }; diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c index 75585a5..aded3be 100644 --- a/drivers/scsi/g_NCR5380.c +++ b/drivers/scsi/g_NCR5380.c @@ -922,7 +922,7 @@ static struct scsi_host_template driver_template = { .bios_param = NCR5380_BIOSPARAM, .can_queue = CAN_QUEUE, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = CMD_PER_LUN, .use_clustering = DISABLE_CLUSTERING, }; diff --git a/drivers/scsi/mac_scsi.c b/drivers/scsi/mac_scsi.c index 3b09ab2..d8a27c0 100644 --- a/drivers/scsi/mac_scsi.c +++ b/drivers/scsi/mac_scsi.c @@ -180,9 +180,8 @@ static int __init mac_scsi_setup(char *str) { if (ints[0] >= 3) { if (ints[3] >= 0) { setup_sg_tablesize = ints[3]; - /* Must be <= SG_ALL (255) */ - if (setup_sg_tablesize > SG_ALL) - setup_sg_tablesize = SG_ALL; + if (setup_sg_tablesize > NCR5380_MAX_SG) + setup_sg_tablesize = NCR5380_MAX_SG; } } if (ints[0] >= 4) { @@ -252,7 +251,7 @@ int macscsi_detect(struct scsi_host_template * tpnt) tpnt->cmd_per_lun = (setup_cmd_per_lun > 0) ? setup_cmd_per_lun : CMD_PER_LUN; tpnt->sg_tablesize = - (setup_sg_tablesize >= 0) ? setup_sg_tablesize : SG_TABLESIZE; + (setup_sg_tablesize > 0) ? setup_sg_tablesize : 1; if (setup_hostid >= 0) tpnt->this_id = setup_hostid; @@ -590,7 +589,7 @@ static struct scsi_host_template driver_template = { .eh_bus_reset_handler = macscsi_bus_reset, .can_queue = CAN_QUEUE, .this_id = 7, - .sg_tablesize = SG_ALL, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = CMD_PER_LUN, .unchecked_isa_dma = 0, .use_clustering = DISABLE_CLUSTERING diff --git a/drivers/scsi/mac_scsi.h b/drivers/scsi/mac_scsi.h index d26e331..3bc9919 100644 --- a/drivers/scsi/mac_scsi.h +++ b/drivers/scsi/mac_scsi.h @@ -41,10 +41,6 @@ #define CAN_QUEUE 16 #endif -#ifndef SG_TABLESIZE -#define SG_TABLESIZE SG_NONE -#endif - #ifndef USE_TAGGED_QUEUING #define USE_TAGGED_QUEUING 0 #endif diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c index e606cf0..ff06208 100644 --- a/drivers/scsi/sun3_scsi.c +++ b/drivers/scsi/sun3_scsi.c @@ -222,7 +222,7 @@ int sun3scsi_detect(struct scsi_host_template * tpnt) tpnt->cmd_per_lun = (setup_cmd_per_lun > 0) ? setup_cmd_per_lun : CMD_PER_LUN; tpnt->sg_tablesize = - (setup_sg_tablesize >= 0) ? setup_sg_tablesize : SG_TABLESIZE; + (setup_sg_tablesize > 0) ? setup_sg_tablesize : 1; if (setup_hostid >= 0) tpnt->this_id = setup_hostid; @@ -631,7 +631,7 @@ static struct scsi_host_template driver_template = { .eh_bus_reset_handler = sun3scsi_bus_reset, .can_queue = CAN_QUEUE, .this_id = 7, - .sg_tablesize = SG_TABLESIZE, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = CMD_PER_LUN, .use_clustering = DISABLE_CLUSTERING }; diff --git a/drivers/scsi/sun3_scsi.h b/drivers/scsi/sun3_scsi.h index b29a9d6..b44e7b4 100644 --- a/drivers/scsi/sun3_scsi.h +++ b/drivers/scsi/sun3_scsi.h @@ -63,10 +63,6 @@ static int sun3scsi_release (struct Scsi_Host *); #define CAN_QUEUE 16 #endif -#ifndef SG_TABLESIZE -#define SG_TABLESIZE SG_NONE -#endif - #ifndef MAX_TAGS #define MAX_TAGS 32 #endif diff --git a/drivers/scsi/sun3_scsi_vme.c b/drivers/scsi/sun3_scsi_vme.c index 02d9727..e9c3632 100644 --- a/drivers/scsi/sun3_scsi_vme.c +++ b/drivers/scsi/sun3_scsi_vme.c @@ -170,7 +170,7 @@ static int sun3scsi_detect(struct scsi_host_template * tpnt) tpnt->cmd_per_lun = (setup_cmd_per_lun > 0) ? setup_cmd_per_lun : CMD_PER_LUN; tpnt->sg_tablesize = - (setup_sg_tablesize >= 0) ? setup_sg_tablesize : SG_TABLESIZE; + (setup_sg_tablesize > 0) ? setup_sg_tablesize : 1; if (setup_hostid >= 0) tpnt->this_id = setup_hostid; @@ -574,7 +574,7 @@ static struct scsi_host_template driver_template = { .eh_bus_reset_handler = sun3scsi_bus_reset, .can_queue = CAN_QUEUE, .this_id = 7, - .sg_tablesize = SG_TABLESIZE, + .sg_tablesize = NCR5380_MAX_SG, .cmd_per_lun = CMD_PER_LUN, .use_clustering = DISABLE_CLUSTERING }; -- 1.5.3.3 - 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