scsi: remove the use_clustering flag
authorChristoph Hellwig <hch@lst.de>
Thu, 13 Dec 2018 15:17:09 +0000 (16:17 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 19 Dec 2018 04:19:21 +0000 (23:19 -0500)
The same effects can be achieved by setting the dma_boundary to
PAGE_SIZE - 1 and the max_segment_size to PAGE_SIZE, so shift those
settings into the drivers.  Note that in many cases the setting might
be bogus, but this keeps the status quo.

[mkp: fix myrs and myrb]

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
37 files changed:
Documentation/scsi/scsi_mid_low_api.txt
arch/ia64/hp/sim/simscsi.c
drivers/scsi/a2091.c
drivers/scsi/advansys.c
drivers/scsi/aha152x.c
drivers/scsi/arm/acornscsi.c
drivers/scsi/arm/arxescsi.c
drivers/scsi/arm/cumana_1.c
drivers/scsi/arm/oak.c
drivers/scsi/atari_scsi.c
drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
drivers/scsi/dc395x.c
drivers/scsi/dmx3191d.c
drivers/scsi/g_NCR5380.c
drivers/scsi/gvp11.c
drivers/scsi/hosts.c
drivers/scsi/ips.c
drivers/scsi/iscsi_tcp.c
drivers/scsi/mac_esp.c
drivers/scsi/mac_scsi.c
drivers/scsi/mvumi.c
drivers/scsi/myrb.c
drivers/scsi/myrs.c
drivers/scsi/nsp32.c
drivers/scsi/pcmcia/nsp_cs.c
drivers/scsi/pcmcia/qlogic_stub.c
drivers/scsi/qlogicfas.c
drivers/scsi/scsi_debug.c
drivers/scsi/scsi_lib.c
drivers/scsi/sgiwd93.c
drivers/scsi/stex.c
drivers/scsi/sun3_scsi.c
drivers/scsi/ufs/ufshcd.c
drivers/target/loopback/tcm_loop.c
drivers/usb/storage/uas.c
include/scsi/scsi_host.h

index 177c031..c1dd493 100644 (file)
@@ -1098,8 +1098,6 @@ of interest:
     unchecked_isa_dma - 1=>only use bottom 16 MB of ram (ISA DMA addressing
                    restriction), 0=>can use full 32 bit (or better) DMA
                    address space
-    use_clustering - 1=>SCSI commands in mid level's queue can be merged,
-                     0=>disallow SCSI command merging
     no_async_abort - 1=>Asynchronous aborts are not supported
                      0=>Timed-out commands will be aborted asynchronously
     hostt        - pointer to driver's struct scsi_host_template from which
index 7e1426e..f86844f 100644 (file)
@@ -347,7 +347,7 @@ static struct scsi_host_template driver_template = {
        .sg_tablesize           = SG_ALL,
        .max_sectors            = 1024,
        .cmd_per_lun            = SIMSCSI_REQ_QUEUE_LEN,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int __init
index 61aadc7..c96bc72 100644 (file)
@@ -160,7 +160,7 @@ static struct scsi_host_template a2091_scsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = CMD_PER_LUN,
-       .use_clustering         = DISABLE_CLUSTERING
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int a2091_probe(struct zorro_dev *z, const struct zorro_device_id *ent)
index 95b4793..d375844 100644 (file)
@@ -3192,8 +3192,8 @@ static void asc_prt_driver_conf(struct seq_file *m, struct Scsi_Host *shost)
                   shost->sg_tablesize, shost->cmd_per_lun);
 
        seq_printf(m,
-                  " unchecked_isa_dma %d, use_clustering %d\n",
-                  shost->unchecked_isa_dma, shost->use_clustering);
+                  " unchecked_isa_dma %d\n",
+                  shost->unchecked_isa_dma);
 
        seq_printf(m,
                   " flags 0x%x, last_reset 0x%lx, jiffies 0x%lx, asc_n_io_port 0x%x\n",
index 301b3ca..9787283 100644 (file)
@@ -2920,7 +2920,7 @@ static struct scsi_host_template aha152x_driver_template = {
        .can_queue                      = 1,
        .this_id                        = 7,
        .sg_tablesize                   = SG_ALL,
-       .use_clustering                 = DISABLE_CLUSTERING,
+       .dma_boundary                   = PAGE_SIZE - 1,
        .slave_alloc                    = aha152x_adjust_queue,
 };
 
index 421fe86..d750985 100644 (file)
@@ -2890,7 +2890,7 @@ static struct scsi_host_template acornscsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .proc_name              = "acornscsi",
 };
 
index 3110736..5e9dd9f 100644 (file)
@@ -245,7 +245,7 @@ static struct scsi_host_template arxescsi_template = {
        .can_queue                      = 0,
        .this_id                        = 7,
        .sg_tablesize                   = SG_ALL,
-       .use_clustering                 = DISABLE_CLUSTERING,
+       .dma_boundary                   = PAGE_SIZE - 1,
        .proc_name                      = "arxescsi",
 };
 
index ae1d809..e2d2a81 100644 (file)
@@ -221,10 +221,10 @@ static struct scsi_host_template cumanascsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
        .proc_name              = "CumanaSCSI-1",
        .cmd_size               = NCR5380_CMD_SIZE,
        .max_sectors            = 128,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int cumanascsi1_probe(struct expansion_card *ec,
index 05b7f75..8f2efaa 100644 (file)
@@ -110,7 +110,7 @@ static struct scsi_host_template oakscsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .proc_name              = "oakscsi",
        .cmd_size               = NCR5380_CMD_SIZE,
        .max_sectors            = 128,
index 89f5154..a503dc5 100644 (file)
@@ -714,7 +714,7 @@ static struct scsi_host_template atari_scsi_template = {
        .eh_host_reset_handler  = atari_scsi_host_reset,
        .this_id                = 7,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .cmd_size               = NCR5380_CMD_SIZE,
 };
 
index bf07735..8a20411 100644 (file)
@@ -95,7 +95,7 @@ static struct scsi_host_template cxgb3i_host_template = {
        .eh_device_reset_handler = iscsi_eh_device_reset,
        .eh_target_reset_handler = iscsi_eh_recover_target,
        .target_alloc   = iscsi_target_alloc,
-       .use_clustering = DISABLE_CLUSTERING,
+       .dma_boundary   = PAGE_SIZE - 1,
        .this_id        = -1,
        .track_queue_depth = 1,
 };
index 064ef57..762337d 100644 (file)
@@ -113,7 +113,7 @@ static struct scsi_host_template cxgb4i_host_template = {
        .eh_device_reset_handler = iscsi_eh_device_reset,
        .eh_target_reset_handler = iscsi_eh_recover_target,
        .target_alloc   = iscsi_target_alloc,
-       .use_clustering = DISABLE_CLUSTERING,
+       .dma_boundary   = PAGE_SIZE - 1,
        .this_id        = -1,
        .track_queue_depth = 1,
 };
index 8c55ec6..13fbb2e 100644 (file)
@@ -4631,7 +4631,7 @@ static struct scsi_host_template dc395x_driver_template = {
        .cmd_per_lun            = DC395x_MAX_CMD_PER_LUN,
        .eh_abort_handler       = dc395x_eh_abort,
        .eh_bus_reset_handler   = dc395x_eh_bus_reset,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 
index 003c3d7..8db1cc5 100644 (file)
@@ -63,7 +63,7 @@ static struct scsi_host_template dmx3191d_driver_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .cmd_size               = NCR5380_CMD_SIZE,
 };
 
index fc53818..9cdca06 100644 (file)
@@ -700,7 +700,7 @@ static struct scsi_host_template driver_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .cmd_size               = NCR5380_CMD_SIZE,
        .max_sectors            = 128,
 };
index a27fc49..d2acd0d 100644 (file)
@@ -184,7 +184,7 @@ static struct scsi_host_template gvp11_scsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = CMD_PER_LUN,
-       .use_clustering         = DISABLE_CLUSTERING
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int check_wd33c93(struct gvp11_scsiregs *regs)
index e8148ba..fce0b5d 100644 (file)
@@ -431,7 +431,6 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
        shost->sg_prot_tablesize = sht->sg_prot_tablesize;
        shost->cmd_per_lun = sht->cmd_per_lun;
        shost->unchecked_isa_dma = sht->unchecked_isa_dma;
-       shost->use_clustering = sht->use_clustering;
        shost->no_write_same = sht->no_write_same;
 
        if (shost_eh_deadline == -1 || !sht->eh_host_reset_handler)
index 0677252..e8bc8d3 100644 (file)
@@ -6677,7 +6677,6 @@ ips_register_scsi(int index)
        sh->sg_tablesize = sh->hostt->sg_tablesize;
        sh->can_queue = sh->hostt->can_queue;
        sh->cmd_per_lun = sh->hostt->cmd_per_lun;
-       sh->use_clustering = sh->hostt->use_clustering;
        sh->max_sectors = 128;
 
        sh->max_id = ha->ntargets;
index 23354f2..0175684 100644 (file)
@@ -980,7 +980,7 @@ static struct scsi_host_template iscsi_sw_tcp_sht = {
        .eh_abort_handler       = iscsi_eh_abort,
        .eh_device_reset_handler= iscsi_eh_device_reset,
        .eh_target_reset_handler = iscsi_eh_recover_target,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .slave_alloc            = iscsi_sw_tcp_slave_alloc,
        .slave_configure        = iscsi_sw_tcp_slave_configure,
        .target_alloc           = iscsi_target_alloc,
index 764d320..ee74120 100644 (file)
@@ -307,7 +307,7 @@ static int esp_mac_probe(struct platform_device *dev)
                goto fail;
 
        host->max_id = 8;
-       host->use_clustering = DISABLE_CLUSTERING;
+       host->dma_boundary = PAGE_SIZE - 1;
        esp = shost_priv(host);
 
        esp->host = host;
index dd60573..8b4b5b1 100644 (file)
@@ -333,7 +333,7 @@ static struct scsi_host_template mac_scsi_template = {
        .this_id                = 7,
        .sg_tablesize           = 1,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .cmd_size               = NCR5380_CMD_SIZE,
        .max_sectors            = 128,
 };
index d0c3f86..dbe753f 100644 (file)
@@ -2197,7 +2197,7 @@ static struct scsi_host_template mvumi_template = {
        .eh_timed_out = mvumi_timed_out,
        .eh_host_reset_handler = mvumi_host_reset,
        .bios_param = mvumi_bios_param,
-       .use_clustering = DISABLE_CLUSTERING,
+       .dma_boundary = PAGE_SIZE - 1,
        .this_id = -1,
 };
 
index f1abe38..1d6dbd7 100644 (file)
@@ -2236,7 +2236,7 @@ struct scsi_host_template myrb_template = {
        .shost_attrs            = myrb_shost_attrs,
        .sdev_attrs             = myrb_sdev_attrs,
        .this_id                = -1,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 /**
index f47b363..76a04ce 100644 (file)
@@ -1929,7 +1929,7 @@ struct scsi_host_template myrs_template = {
        .shost_attrs            = myrs_shost_attrs,
        .sdev_attrs             = myrs_sdev_attrs,
        .this_id                = -1,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static struct myrs_hba *myrs_alloc_host(struct pci_dev *pdev,
index 5aac3e8..00e3cbe 100644 (file)
@@ -274,7 +274,7 @@ static struct scsi_host_template nsp32_template = {
        .sg_tablesize                   = NSP32_SG_SIZE,
        .max_sectors                    = 128,
        .this_id                        = NSP32_HOST_SCSIID,
-       .use_clustering                 = DISABLE_CLUSTERING,
+       .dma_boundary                   = PAGE_SIZE - 1,
        .eh_abort_handler               = nsp32_eh_abort,
        .eh_host_reset_handler          = nsp32_eh_host_reset,
 /*     .highmem_io                     = 1, */
index f323049..1bd6825 100644 (file)
@@ -86,7 +86,7 @@ static struct scsi_host_template nsp_driver_template = {
        .can_queue               = 1,
        .this_id                 = NSP_INITIATOR_ID,
        .sg_tablesize            = SG_ALL,
-       .use_clustering          = DISABLE_CLUSTERING,
+       .dma_boundary            = PAGE_SIZE - 1,
 };
 
 static nsp_hw_data nsp_data_base; /* attach <-> detect glue */
index 173351a..828d53f 100644 (file)
@@ -72,7 +72,7 @@ static struct scsi_host_template qlogicfas_driver_template = {
        .can_queue              = 1,
        .this_id                = -1,
        .sg_tablesize           = SG_ALL,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 /*====================================================================*/
index 95431d6..8f70900 100644 (file)
@@ -193,7 +193,7 @@ static struct scsi_host_template qlogicfas_driver_template = {
        .can_queue              = 1,
        .this_id                = -1,
        .sg_tablesize           = SG_ALL,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static __init int qlogicfas_init(void)
index 57d418d..16cab45 100644 (file)
@@ -5866,7 +5866,8 @@ static int sdebug_driver_probe(struct device *dev)
 
        sdebug_driver_template.can_queue = sdebug_max_queue;
        if (!sdebug_clustering)
-               sdebug_driver_template.use_clustering = DISABLE_CLUSTERING;
+               sdebug_driver_template.dma_boundary = PAGE_SIZE - 1;
+
        hpnt = scsi_host_alloc(&sdebug_driver_template, sizeof(sdbg_host));
        if (NULL == hpnt) {
                pr_err("scsi_host_alloc failed\n");
index 2d4fd6b..966b7cf 100644 (file)
@@ -2230,9 +2230,6 @@ void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
        blk_queue_max_segment_size(q,
                min(shost->max_segment_size, dma_get_max_seg_size(dev)));
 
-       if (shost->use_clustering == DISABLE_CLUSTERING)
-               q->limits.cluster = 0;
-
        /*
         * Set a reasonable default alignment:  The larger of 32-byte (dword),
         * which is a common minimum for HBAs, and the minimum DMA alignment,
index 5ed696d..713bce9 100644 (file)
@@ -208,7 +208,7 @@ static struct scsi_host_template sgiwd93_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_ALL,
        .cmd_per_lun            = 8,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int sgiwd93_probe(struct platform_device *pdev)
index af90783..f6bef7a 100644 (file)
@@ -1489,7 +1489,7 @@ static struct scsi_host_template driver_template = {
        .eh_abort_handler               = stex_abort,
        .eh_host_reset_handler          = stex_reset,
        .this_id                        = -1,
-       .use_clustering                 = DISABLE_CLUSTERING,
+       .dma_boundary                   = PAGE_SIZE - 1,
 };
 
 static struct pci_device_id stex_pci_tbl[] = {
index 9492638..95a7ea7 100644 (file)
@@ -500,7 +500,7 @@ static struct scsi_host_template sun3_scsi_template = {
        .this_id                = 7,
        .sg_tablesize           = SG_NONE,
        .cmd_per_lun            = 2,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .cmd_size               = NCR5380_CMD_SIZE,
 };
 
index e5800da..34be397 100644 (file)
@@ -6982,7 +6982,7 @@ static struct scsi_host_template ufshcd_driver_template = {
        .max_host_blocked       = 1,
        .track_queue_depth      = 1,
        .sdev_groups            = ufshcd_driver_groups,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
 };
 
 static int ufshcd_config_vreg_load(struct device *dev, struct ufs_vreg *vreg,
index b0991e8..7bd7c0c 100644 (file)
@@ -324,7 +324,7 @@ static struct scsi_host_template tcm_loop_driver_template = {
        .sg_tablesize           = 256,
        .cmd_per_lun            = 1024,
        .max_sectors            = 0xFFFF,
-       .use_clustering         = DISABLE_CLUSTERING,
+       .dma_boundary           = PAGE_SIZE - 1,
        .slave_alloc            = tcm_loop_slave_alloc,
        .module                 = THIS_MODULE,
        .track_queue_depth      = 1,
index 6c75a0a..36742e8 100644 (file)
@@ -879,7 +879,7 @@ static struct scsi_host_template uas_host_template = {
        .this_id = -1,
        .sg_tablesize = SG_NONE,
        .skip_settle_delay = 1,
-       .use_clustering = DISABLE_CLUSTERING,
+       .dma_boundary = PAGE_SIZE - 1,
 };
 
 #define UNUSUAL_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \
index 8342046..7ba34a0 100644 (file)
@@ -44,8 +44,6 @@ struct blk_queue_tags;
 #define MODE_INITIATOR 0x01
 #define MODE_TARGET 0x02
 
-#define DISABLE_CLUSTERING (-1)
-
 struct scsi_host_template {
        struct module *module;
        const char *name;
@@ -418,16 +416,6 @@ struct scsi_host_template {
         */
        unsigned unchecked_isa_dma:1;
 
-       /*
-        * True if this host adapter can make good use of clustering.
-        * I originally thought that if the tablesize was large that it
-        * was a waste of CPU cycles to prepare a cluster list, but
-        * it works out that the Buslogic is faster if you use a smaller
-        * number of segments (i.e. use clustering).  I guess it is
-        * inefficient.
-        */
-       unsigned use_clustering:1;
-
        /*
         * True for emulated SCSI host adapters (e.g. ATAPI).
         */
@@ -626,7 +614,6 @@ struct Scsi_Host {
        
        unsigned active_mode:2;
        unsigned unchecked_isa_dma:1;
-       unsigned use_clustering:1;
 
        /*
         * Host has requested that no further requests come through for the