mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@shadowen.org>
To: FUJITA Tomonori <tomof@acm.org>
Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
	mel@csn.ul.ie, jens.axboe@oracle.com, linux-scsi@vger.kernel.org,
	fujita.tomonori@lab.ntt.co.jp
Subject: Re: 2.6.23-rc4-mm1
Date: Fri, 14 Sep 2007 09:10:18 +0100	[thread overview]
Message-ID: <20070914081018.GA20042@shadowen.org> (raw)
In-Reply-To: <20070910044323T.tomof@acm.org>

On Tue, Sep 11, 2007 at 04:31:12AM +0900, FUJITA Tomonori wrote:
[...]
> > The only patch which touches qla1280 is git-block.patch.  From a quick
> > squizz the change looks OK, although it's tricky and something might have
> > broken.
> > 
> > (the dprintk at line 2929 needs to print remseg, not seg_cnt).
> > 
> > Can you retest with that change reverted (below)?  If it's not that then
> > perhaps something in scsi core broke, dunno.
> 
> Even if we revert the qla1280 patch, scsi-ml still sends chaining sg
> list. So it doesn't work.
> 
> The following patch disables chaining sg list for qla1280. If the fix
> that I've just sent doesn't work, please try this.

Ok, the other patch _did_ work, but this got tested anyhow and it did
_not_ fix things.

> -
> From: FUJITA Tomonori <tomof@acm.org>
> Subject: [PATCH] add use_sg_chaining option to scsi_host_template
> 
> This option is true if a low-level driver can support sg
> chaining. This will be removed eventually when all the drivers are
> converted to support sg chaining. q->max_phys_segments is set to
> SCSI_MAX_SG_SEGMENTS if false.
> 
> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> ---
>  arch/ia64/hp/sim/simscsi.c            |    1 +
>  drivers/scsi/3w-9xxx.c                |    1 +
>  drivers/scsi/3w-xxxx.c                |    1 +
>  drivers/scsi/BusLogic.c               |    1 +
>  drivers/scsi/NCR53c406a.c             |    3 ++-
>  drivers/scsi/a100u2w.c                |    1 +
>  drivers/scsi/aacraid/linit.c          |    1 +
>  drivers/scsi/aha1740.c                |    1 +
>  drivers/scsi/aic7xxx/aic79xx_osm.c    |    1 +
>  drivers/scsi/aic7xxx/aic7xxx_osm.c    |    1 +
>  drivers/scsi/aic7xxx_old.c            |    1 +
>  drivers/scsi/arcmsr/arcmsr_hba.c      |    1 +
>  drivers/scsi/dc395x.c                 |    1 +
>  drivers/scsi/dpt_i2o.c                |    1 +
>  drivers/scsi/eata.c                   |    3 ++-
>  drivers/scsi/hosts.c                  |    1 +
>  drivers/scsi/hptiop.c                 |    1 +
>  drivers/scsi/ibmmca.c                 |    1 +
>  drivers/scsi/ibmvscsi/ibmvscsi.c      |    1 +
>  drivers/scsi/initio.c                 |    1 +
>  drivers/scsi/ipr.c                    |    1 +
>  drivers/scsi/lpfc/lpfc_scsi.c         |    2 ++
>  drivers/scsi/mac53c94.c               |    1 +
>  drivers/scsi/megaraid.c               |    1 +
>  drivers/scsi/megaraid/megaraid_mbox.c |    1 +
>  drivers/scsi/megaraid/megaraid_sas.c  |    1 +
>  drivers/scsi/mesh.c                   |    1 +
>  drivers/scsi/nsp32.c                  |    1 +
>  drivers/scsi/pcmcia/sym53c500_cs.c    |    1 +
>  drivers/scsi/qla2xxx/qla_os.c         |    2 ++
>  drivers/scsi/qla4xxx/ql4_os.c         |    1 +
>  drivers/scsi/qlogicfas.c              |    1 +
>  drivers/scsi/scsi_lib.c               |    5 ++++-
>  drivers/scsi/stex.c                   |    1 +
>  drivers/scsi/sym53c416.c              |    1 +
>  drivers/scsi/sym53c8xx_2/sym_glue.c   |    1 +
>  drivers/scsi/u14-34f.c                |    1 +
>  drivers/scsi/ultrastor.c              |    1 +
>  drivers/scsi/wd7000.c                 |    1 +
>  include/scsi/scsi_host.h              |   13 +++++++++++++
>  40 files changed, 59 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c
> index 4552a1c..e711657 100644
> --- a/arch/ia64/hp/sim/simscsi.c
> +++ b/arch/ia64/hp/sim/simscsi.c
> @@ -360,6 +360,7 @@ static struct scsi_host_template driver_template = {
>  	.max_sectors		= 1024,
>  	.cmd_per_lun		= SIMSCSI_REQ_QUEUE_LEN,
>  	.use_clustering		= DISABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  static int __init
> diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
> index efd9d8d..fb14014 100644
> --- a/drivers/scsi/3w-9xxx.c
> +++ b/drivers/scsi/3w-9xxx.c
> @@ -1990,6 +1990,7 @@ static struct scsi_host_template driver_template = {
>  	.max_sectors		= TW_MAX_SECTORS,
>  	.cmd_per_lun		= TW_MAX_CMDS_PER_LUN,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.shost_attrs		= twa_host_attrs,
>  	.emulated		= 1
>  };
> diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
> index c7995fc..a64153b 100644
> --- a/drivers/scsi/3w-xxxx.c
> +++ b/drivers/scsi/3w-xxxx.c
> @@ -2261,6 +2261,7 @@ static struct scsi_host_template driver_template = {
>  	.max_sectors		= TW_MAX_SECTORS,
>  	.cmd_per_lun		= TW_MAX_CMDS_PER_LUN,	
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.shost_attrs		= tw_host_attrs,
>  	.emulated		= 1
>  };
> diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
> index 9b20617..49e1ffa 100644
> --- a/drivers/scsi/BusLogic.c
> +++ b/drivers/scsi/BusLogic.c
> @@ -3575,6 +3575,7 @@ static struct scsi_host_template Bus_Logic_template = {
>  	.unchecked_isa_dma = 1,
>  	.max_sectors = 128,
>  	.use_clustering = ENABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  };
>  
>  /*
> diff --git a/drivers/scsi/NCR53c406a.c b/drivers/scsi/NCR53c406a.c
> index eda8c48..3168a17 100644
> --- a/drivers/scsi/NCR53c406a.c
> +++ b/drivers/scsi/NCR53c406a.c
> @@ -1066,7 +1066,8 @@ static struct scsi_host_template driver_template =
>       .sg_tablesize      	= 32			/*SG_ALL*/ /*SG_NONE*/, 
>       .cmd_per_lun       	= 1			/* commands per lun */, 
>       .unchecked_isa_dma 	= 1			/* unchecked_isa_dma */,
> -     .use_clustering    	= ENABLE_CLUSTERING                               
> +     .use_clustering    	= ENABLE_CLUSTERING,
> +     .use_sg_chaining           = ENABLE_SG_CHAINING,
>  };
>  
>  #include "scsi_module.c"
> diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c
> index f608d4a..d3a6d15 100644
> --- a/drivers/scsi/a100u2w.c
> +++ b/drivers/scsi/a100u2w.c
> @@ -1071,6 +1071,7 @@ static struct scsi_host_template inia100_template = {
>  	.sg_tablesize		= SG_ALL,
>  	.cmd_per_lun 		= 1,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  static int __devinit inia100_probe_one(struct pci_dev *pdev,
> diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
> index a7f42a1..038980b 100644
> --- a/drivers/scsi/aacraid/linit.c
> +++ b/drivers/scsi/aacraid/linit.c
> @@ -944,6 +944,7 @@ static struct scsi_host_template aac_driver_template = {
>  	.cmd_per_lun    		= AAC_NUM_IO_FIB, 
>  #endif	
>  	.use_clustering			= ENABLE_CLUSTERING,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  	.emulated                       = 1,
>  };
>  
> diff --git a/drivers/scsi/aha1740.c b/drivers/scsi/aha1740.c
> index e4a4f3a..f6722fd 100644
> --- a/drivers/scsi/aha1740.c
> +++ b/drivers/scsi/aha1740.c
> @@ -563,6 +563,7 @@ static struct scsi_host_template aha1740_template = {
>  	.sg_tablesize     = AHA1740_SCATTER,
>  	.cmd_per_lun      = AHA1740_CMDLUN,
>  	.use_clustering   = ENABLE_CLUSTERING,
> +	.use_sg_chaining  = ENABLE_SG_CHAINING,
>  	.eh_abort_handler = aha1740_eh_abort_handler,
>  };
>  
> diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
> index a055a96..42c0f14 100644
> --- a/drivers/scsi/aic7xxx/aic79xx_osm.c
> +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
> @@ -766,6 +766,7 @@ struct scsi_host_template aic79xx_driver_template = {
>  	.max_sectors		= 8192,
>  	.cmd_per_lun		= 2,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.slave_alloc		= ahd_linux_slave_alloc,
>  	.slave_configure	= ahd_linux_slave_configure,
>  	.target_alloc		= ahd_linux_target_alloc,
> diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
> index 2e9c38f..7770bef 100644
> --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
> +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
> @@ -747,6 +747,7 @@ struct scsi_host_template aic7xxx_driver_template = {
>  	.max_sectors		= 8192,
>  	.cmd_per_lun		= 2,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.slave_alloc		= ahc_linux_slave_alloc,
>  	.slave_configure	= ahc_linux_slave_configure,
>  	.target_alloc		= ahc_linux_target_alloc,
> diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
> index 1a71b02..4025608 100644
> --- a/drivers/scsi/aic7xxx_old.c
> +++ b/drivers/scsi/aic7xxx_old.c
> @@ -11142,6 +11142,7 @@ static struct scsi_host_template driver_template = {
>  	.max_sectors		= 2048,
>  	.cmd_per_lun		= 3,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  #include "scsi_module.c"
> diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
> index 0ddfc21..d5039f3 100644
> --- a/drivers/scsi/arcmsr/arcmsr_hba.c
> +++ b/drivers/scsi/arcmsr/arcmsr_hba.c
> @@ -121,6 +121,7 @@ static struct scsi_host_template arcmsr_scsi_host_template = {
>  	.max_sectors    	= ARCMSR_MAX_XFER_SECTORS,
>  	.cmd_per_lun		= ARCMSR_MAX_CMD_PERLUN,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.shost_attrs		= arcmsr_host_attrs,
>  };
>  static struct pci_error_handlers arcmsr_pci_error_handlers = {
> diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c
> index 7b8a345..d2a2026 100644
> --- a/drivers/scsi/dc395x.c
> +++ b/drivers/scsi/dc395x.c
> @@ -4765,6 +4765,7 @@ static struct scsi_host_template dc395x_driver_template = {
>  	.eh_bus_reset_handler   = dc395x_eh_bus_reset,
>  	.unchecked_isa_dma      = 0,
>  	.use_clustering         = DISABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  
> diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
> index bea9d65..8258506 100644
> --- a/drivers/scsi/dpt_i2o.c
> +++ b/drivers/scsi/dpt_i2o.c
> @@ -3295,6 +3295,7 @@ static struct scsi_host_template adpt_template = {
>  	.this_id		= 7,
>  	.cmd_per_lun		= 1,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  static s32 adpt_scsi_register(adpt_hba* pHba)
> diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
> index a83e9f1..2f685cf 100644
> --- a/drivers/scsi/eata.c
> +++ b/drivers/scsi/eata.c
> @@ -523,7 +523,8 @@ static struct scsi_host_template driver_template = {
>  	.slave_configure = eata2x_slave_configure,
>  	.this_id = 7,
>  	.unchecked_isa_dma = 1,
> -	.use_clustering = ENABLE_CLUSTERING
> +	.use_clustering = ENABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  };
>  
>  #if !defined(__BIG_ENDIAN_BITFIELD) && !defined(__LITTLE_ENDIAN_BITFIELD)
> diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
> index 96bc312..8c42539 100644
> --- a/drivers/scsi/hosts.c
> +++ b/drivers/scsi/hosts.c
> @@ -342,6 +342,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
>  	shost->unchecked_isa_dma = sht->unchecked_isa_dma;
>  	shost->use_clustering = sht->use_clustering;
>  	shost->ordered_tag = sht->ordered_tag;
> +	shost->use_sg_chaining = sht->use_sg_chaining;
>  
>  	if (sht->max_host_blocked)
>  		shost->max_host_blocked = sht->max_host_blocked;
> diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c
> index 8b384fa..8515054 100644
> --- a/drivers/scsi/hptiop.c
> +++ b/drivers/scsi/hptiop.c
> @@ -655,6 +655,7 @@ static struct scsi_host_template driver_template = {
>  	.unchecked_isa_dma          = 0,
>  	.emulated                   = 0,
>  	.use_clustering             = ENABLE_CLUSTERING,
> +	.use_sg_chaining            = ENABLE_SG_CHAINING,
>  	.proc_name                  = driver_name,
>  	.shost_attrs                = hptiop_attrs,
>  	.this_id                    = -1,
> diff --git a/drivers/scsi/ibmmca.c b/drivers/scsi/ibmmca.c
> index bff8252..695941a 100644
> --- a/drivers/scsi/ibmmca.c
> +++ b/drivers/scsi/ibmmca.c
> @@ -1501,6 +1501,7 @@ static struct scsi_host_template ibmmca_driver_template = {
>            .sg_tablesize   = 16,
>            .cmd_per_lun    = 1,
>            .use_clustering = ENABLE_CLUSTERING,
> +          .use_sg_chaining = ENABLE_SG_CHAINING,
>  };
>  
>  static int ibmmca_probe(struct device *dev)
> diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
> index 93bd01b..084488c 100644
> --- a/drivers/scsi/ibmvscsi/ibmvscsi.c
> +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
> @@ -1545,6 +1545,7 @@ static struct scsi_host_template driver_template = {
>  	.this_id = -1,
>  	.sg_tablesize = SG_ALL,
>  	.use_clustering = ENABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  	.shost_attrs = ibmvscsi_attrs,
>  };
>  
> diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c
> index d9dfb69..22d40fd 100644
> --- a/drivers/scsi/initio.c
> +++ b/drivers/scsi/initio.c
> @@ -2831,6 +2831,7 @@ static struct scsi_host_template initio_template = {
>  	.sg_tablesize		= SG_ALL,
>  	.cmd_per_lun		= 1,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  static int initio_probe_one(struct pci_dev *pdev,
> diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
> index b41dfb5..ba7b567 100644
> --- a/drivers/scsi/ipr.c
> +++ b/drivers/scsi/ipr.c
> @@ -4949,6 +4949,7 @@ static struct scsi_host_template driver_template = {
>  	.max_sectors = IPR_IOA_MAX_SECTORS,
>  	.cmd_per_lun = IPR_MAX_CMD_PER_LUN,
>  	.use_clustering = ENABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  	.shost_attrs = ipr_ioa_attrs,
>  	.sdev_attrs = ipr_dev_attrs,
>  	.proc_name = IPR_NAME
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index cd67493..c075556 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -1438,6 +1438,7 @@ struct scsi_host_template lpfc_template = {
>  	.scan_finished		= lpfc_scan_finished,
>  	.this_id		= -1,
>  	.sg_tablesize		= LPFC_SG_SEG_CNT,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.cmd_per_lun		= LPFC_CMD_PER_LUN,
>  	.use_clustering		= ENABLE_CLUSTERING,
>  	.shost_attrs		= lpfc_hba_attrs,
> @@ -1460,6 +1461,7 @@ struct scsi_host_template lpfc_vport_template = {
>  	.sg_tablesize		= LPFC_SG_SEG_CNT,
>  	.cmd_per_lun		= LPFC_CMD_PER_LUN,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.shost_attrs		= lpfc_vport_attrs,
>  	.max_sectors		= 0xFFFF,
>  };
> diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
> index b12ad7c..a035001 100644
> --- a/drivers/scsi/mac53c94.c
> +++ b/drivers/scsi/mac53c94.c
> @@ -402,6 +402,7 @@ static struct scsi_host_template mac53c94_template = {
>  	.sg_tablesize	= SG_ALL,
>  	.cmd_per_lun	= 1,
>  	.use_clustering	= DISABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  };
>  
>  static int mac53c94_probe(struct macio_dev *mdev, const struct of_device_id *match)
> diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
> index 9023ec6..a0133b5 100644
> --- a/drivers/scsi/megaraid.c
> +++ b/drivers/scsi/megaraid.c
> @@ -4484,6 +4484,7 @@ static struct scsi_host_template megaraid_template = {
>  	.sg_tablesize			= MAX_SGLIST,
>  	.cmd_per_lun			= DEF_CMD_PER_LUN,
>  	.use_clustering			= ENABLE_CLUSTERING,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  	.eh_abort_handler		= megaraid_abort,
>  	.eh_device_reset_handler	= megaraid_reset,
>  	.eh_bus_reset_handler		= megaraid_reset,
> diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
> index c6a53dc..e4e4c6a 100644
> --- a/drivers/scsi/megaraid/megaraid_mbox.c
> +++ b/drivers/scsi/megaraid/megaraid_mbox.c
> @@ -361,6 +361,7 @@ static struct scsi_host_template megaraid_template_g = {
>  	.eh_host_reset_handler		= megaraid_reset_handler,
>  	.change_queue_depth		= megaraid_change_queue_depth,
>  	.use_clustering			= ENABLE_CLUSTERING,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  	.sdev_attrs			= megaraid_sdev_attrs,
>  	.shost_attrs			= megaraid_shost_attrs,
>  };
> diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
> index ebb948c..e3c5c52 100644
> --- a/drivers/scsi/megaraid/megaraid_sas.c
> +++ b/drivers/scsi/megaraid/megaraid_sas.c
> @@ -1110,6 +1110,7 @@ static struct scsi_host_template megasas_template = {
>  	.eh_timed_out = megasas_reset_timer,
>  	.bios_param = megasas_bios_param,
>  	.use_clustering = ENABLE_CLUSTERING,
> +	.use_sg_chaining = ENABLE_SG_CHAINING,
>  };
>  
>  /**
> diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c
> index 651d09b..7470ff3 100644
> --- a/drivers/scsi/mesh.c
> +++ b/drivers/scsi/mesh.c
> @@ -1843,6 +1843,7 @@ static struct scsi_host_template mesh_template = {
>  	.sg_tablesize			= SG_ALL,
>  	.cmd_per_lun			= 2,
>  	.use_clustering			= DISABLE_CLUSTERING,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  };
>  
>  static int mesh_probe(struct macio_dev *mdev, const struct of_device_id *match)
> diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
> index 4215f3b..6da1504 100644
> --- a/drivers/scsi/nsp32.c
> +++ b/drivers/scsi/nsp32.c
> @@ -281,6 +281,7 @@ static struct scsi_host_template nsp32_template = {
>  	.cmd_per_lun			= 1,
>  	.this_id			= NSP32_HOST_SCSIID,
>  	.use_clustering			= DISABLE_CLUSTERING,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  	.eh_abort_handler       	= nsp32_eh_abort,
>  	.eh_bus_reset_handler		= nsp32_eh_bus_reset,
>  	.eh_host_reset_handler		= nsp32_eh_host_reset,
> diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
> index 961839e..190e2a7 100644
> --- a/drivers/scsi/pcmcia/sym53c500_cs.c
> +++ b/drivers/scsi/pcmcia/sym53c500_cs.c
> @@ -694,6 +694,7 @@ static struct scsi_host_template sym53c500_driver_template = {
>       .sg_tablesize		= 32,
>       .cmd_per_lun		= 1,
>       .use_clustering		= ENABLE_CLUSTERING,
> +     .use_sg_chaining		= ENABLE_SG_CHAINING,
>       .shost_attrs		= SYM53C500_shost_attrs
>  };
>  
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index acca898..3abbbc0 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -132,6 +132,7 @@ struct scsi_host_template qla2x00_driver_template = {
>  	.this_id		= -1,
>  	.cmd_per_lun		= 3,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.sg_tablesize		= SG_ALL,
>  
>  	/*
> @@ -163,6 +164,7 @@ struct scsi_host_template qla24xx_driver_template = {
>  	.this_id		= -1,
>  	.cmd_per_lun		= 3,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.sg_tablesize		= SG_ALL,
>  
>  	.max_sectors		= 0xFFFF,
> diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
> index 8fa5aea..89460d2 100644
> --- a/drivers/scsi/qla4xxx/ql4_os.c
> +++ b/drivers/scsi/qla4xxx/ql4_os.c
> @@ -94,6 +94,7 @@ static struct scsi_host_template qla4xxx_driver_template = {
>  	.this_id		= -1,
>  	.cmd_per_lun		= 3,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.sg_tablesize		= SG_ALL,
>  
>  	.max_sectors		= 0xFFFF,
> diff --git a/drivers/scsi/qlogicfas.c b/drivers/scsi/qlogicfas.c
> index 94baca8..2268ca1 100644
> --- a/drivers/scsi/qlogicfas.c
> +++ b/drivers/scsi/qlogicfas.c
> @@ -197,6 +197,7 @@ static struct scsi_host_template qlogicfas_driver_template = {
>  	.sg_tablesize		= SG_ALL,
>  	.cmd_per_lun		= 1,
>  	.use_clustering		= DISABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  static __init int qlogicfas_init(void)
> diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
> index d0a1028..38eec00 100644
> --- a/drivers/scsi/scsi_lib.c
> +++ b/drivers/scsi/scsi_lib.c
> @@ -1685,7 +1685,10 @@ struct request_queue *__scsi_alloc_queue(struct Scsi_Host *shost,
>  	 * converted, so better keep it safe.
>  	 */
>  #ifdef ARCH_HAS_SG_CHAIN
> -	blk_queue_max_phys_segments(q, SCSI_MAX_SG_CHAIN_SEGMENTS);
> +	if (shost->use_sg_chaining)
> +		blk_queue_max_phys_segments(q, SCSI_MAX_SG_CHAIN_SEGMENTS);
> +	else
> +		blk_queue_max_phys_segments(q, SCSI_MAX_SG_SEGMENTS);
>  #else
>  	blk_queue_max_phys_segments(q, SCSI_MAX_SG_SEGMENTS);
>  #endif
> diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
> index 72f6d80..e3fab3a 100644
> --- a/drivers/scsi/stex.c
> +++ b/drivers/scsi/stex.c
> @@ -1123,6 +1123,7 @@ static struct scsi_host_template driver_template = {
>  	.this_id			= -1,
>  	.sg_tablesize			= ST_MAX_SG,
>  	.cmd_per_lun			= ST_CMD_PER_LUN,
> +	.use_sg_chaining		= ENABLE_SG_CHAINING,
>  };
>  
>  static int stex_set_dma_mask(struct pci_dev * pdev)
> diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c
> index 92bfaea..8befab7 100644
> --- a/drivers/scsi/sym53c416.c
> +++ b/drivers/scsi/sym53c416.c
> @@ -854,5 +854,6 @@ static struct scsi_host_template driver_template = {
>  	.cmd_per_lun =		1,
>  	.unchecked_isa_dma =	1,
>  	.use_clustering =	ENABLE_CLUSTERING,
> +	.use_sg_chaining =	ENABLE_SG_CHAINING,
>  };
>  #include "scsi_module.c"
> diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
> index 764490e..7576c99 100644
> --- a/drivers/scsi/sym53c8xx_2/sym_glue.c
> +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
> @@ -1827,6 +1827,7 @@ static struct scsi_host_template sym2_template = {
>  	.eh_host_reset_handler	= sym53c8xx_eh_host_reset_handler,
>  	.this_id		= 7,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  	.max_sectors		= 0xFFFF,
>  #ifdef SYM_LINUX_PROC_INFO_SUPPORT
>  	.proc_info		= sym53c8xx_proc_info,
> diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
> index 9e8232a..a0d9ef4 100644
> --- a/drivers/scsi/u14-34f.c
> +++ b/drivers/scsi/u14-34f.c
> @@ -451,6 +451,7 @@ static struct scsi_host_template driver_template = {
>                  .this_id                 = 7,
>                  .unchecked_isa_dma       = 1,
>                  .use_clustering          = ENABLE_CLUSTERING
> +                .use_sg_chaining         = ENABLE_SG_CHAINING,
>                  };
>  
>  #if !defined(__BIG_ENDIAN_BITFIELD) && !defined(__LITTLE_ENDIAN_BITFIELD)
> diff --git a/drivers/scsi/ultrastor.c b/drivers/scsi/ultrastor.c
> index c08235d..ea72bbe 100644
> --- a/drivers/scsi/ultrastor.c
> +++ b/drivers/scsi/ultrastor.c
> @@ -1197,5 +1197,6 @@ static struct scsi_host_template driver_template = {
>  	.cmd_per_lun       = ULTRASTOR_MAX_CMDS_PER_LUN,
>  	.unchecked_isa_dma = 1,
>  	.use_clustering    = ENABLE_CLUSTERING,
> +	.use_sg_chaining   = ENABLE_SG_CHAINING,
>  };
>  #include "scsi_module.c"
> diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c
> index d6fd425..255c611 100644
> --- a/drivers/scsi/wd7000.c
> +++ b/drivers/scsi/wd7000.c
> @@ -1671,6 +1671,7 @@ static struct scsi_host_template driver_template = {
>  	.cmd_per_lun		= 1,
>  	.unchecked_isa_dma	= 1,
>  	.use_clustering		= ENABLE_CLUSTERING,
> +	.use_sg_chaining	= ENABLE_SG_CHAINING,
>  };
>  
>  #include "scsi_module.c"
> diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h
> index 88f6871..3ee3805 100644
> --- a/include/scsi/scsi_host.h
> +++ b/include/scsi/scsi_host.h
> @@ -36,6 +36,9 @@ struct blk_queue_tags;
>  #define DISABLE_CLUSTERING 0
>  #define ENABLE_CLUSTERING 1
>  
> +#define DISABLE_SG_CHAINING 0
> +#define ENABLE_SG_CHAINING 1
> +
>  enum scsi_eh_timer_return {
>  	EH_NOT_HANDLED,
>  	EH_HANDLED,
> @@ -435,6 +438,15 @@ struct scsi_host_template {
>  	unsigned ordered_tag:1;
>  
>  	/*
> +	 * true if the low-level driver can support sg chaining. this
> +	 * will be removed eventually when all the drivers are
> +	 * converted to support sg chaining.
> +	 *
> +	 * Status: OBSOLETE
> +	 */
> +	unsigned use_sg_chaining:1;
> +
> +	/*
>  	 * Countdown for host blocking with no commands outstanding
>  	 */
>  	unsigned int max_host_blocked;
> @@ -577,6 +589,7 @@ struct Scsi_Host {
>  	unsigned unchecked_isa_dma:1;
>  	unsigned use_clustering:1;
>  	unsigned use_blk_tcq:1;
> +	unsigned use_sg_chaining:1;
>  
>  	/*
>  	 * Host has requested that no further requests come through for the
> -- 
> 1.5.2.4

-apw

  reply	other threads:[~2007-09-14  8:11 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-01  4:58 2.6.23-rc4-mm1 Andrew Morton
2007-09-01  6:53 ` 2.6.23-rc4-mm1 KAMEZAWA Hiroyuki
2007-09-01  6:58   ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-01  8:54     ` 2.6.23-rc4-mm1 Herbert Xu
2007-09-01 21:09       ` 2.6.23-rc4-mm1 Satyam Sharma
2007-09-02  1:46         ` 2.6.23-rc4-mm1 Herbert Xu
2007-09-02  2:52           ` 2.6.23-rc4-mm1 Satyam Sharma
2007-09-02  3:59             ` 2.6.23-rc4-mm1 Herbert Xu
2007-09-01 11:55     ` 2.6.23-rc4-mm1 Kamalesh Babulal
2007-09-01 14:18 ` 2.6.23-rc4-mm1: geode fb compile error Adrian Bunk
2007-09-01 17:03   ` Satyam Sharma
2007-09-01 15:19 ` 2.6.23-rc4-mm1: two ktime_sub_ns() functions Adrian Bunk
2007-09-01 15:44 ` 2.6.23-rc4-mm1: mips compile error Adrian Bunk
2007-09-04  5:27   ` Mathieu Desnoyers
2007-09-04 10:21     ` Ralf Baechle
2007-09-01 16:07 ` 2.6.23-rc4-mm1 Torsten Kaiser
2007-09-01 16:16   ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-01 18:13 ` 2.6.23-rc4-mm1 OOPS in forcedeth? thunder7
2007-09-01 19:05   ` Jeff Garzik
2007-09-02  0:54     ` Satyam Sharma
2007-09-02  5:36       ` thunder7
2007-09-02  6:19       ` thunder7
2007-09-02  9:55         ` Satyam Sharma
2007-09-14  3:51           ` Andrew James Wade
2007-09-17 13:57             ` Dhaval Giani
2007-09-17 14:07               ` Denis V. Lunev
2007-09-17 21:00                 ` Vlad Yasevich
2007-09-17 23:56                 ` Satyam Sharma
2007-09-01 22:06 ` 2.6.23-rc4-mm1 "no CRC" MODPOST warnings Satyam Sharma
2007-09-01 22:40   ` Adrian Bunk
2007-09-01 23:15   ` Sam Ravnborg
2007-09-01 23:12 ` [PATCH -mm] softlockup-improve-debug-output.patch fix Satyam Sharma
2007-09-02 12:37   ` [PATCH -mm][resend] " Satyam Sharma
2007-09-02 12:28     ` Ingo Molnar
2007-09-06  6:52       ` [PATCH] sched: Use show_regs() to improve __schedule_bug() output Satyam Sharma
2007-10-22 12:35         ` Ingo Molnar
2007-09-03 16:36     ` [PATCH -mm][resend] softlockup-improve-debug-output.patch fix Valdis.Kletnieks
2007-09-01 23:42 ` [PATCH -mm] drivers/acpi/tables/tbutils.c: Shut up bogus uninitialized variable warning Satyam Sharma
2007-09-02  0:19   ` Adrian Bunk
2007-09-02  1:02     ` Satyam Sharma
2007-09-02  1:30 ` [PATCH -mm] net/sched/sch_cbq.c: Shut up " Satyam Sharma
2007-09-02 11:36   ` Patrick McHardy
2007-09-02  2:36 ` 2.6.23-rc4-mm1: unpingable box and NULL dereference at tcp_rto_min() Alexey Dobriyan
2007-09-02  5:02   ` Satyam Sharma
2007-09-02 20:52   ` Andrew Morton
2007-09-02 21:19     ` Alexey Dobriyan
2007-09-02  9:14 ` 2.6.23-rc4-mm1 net bitops compile error Adrian Bunk
2007-09-04 17:53   ` Jiri Slaby
2007-09-02 11:25 ` [-mm patch] IPV6 must select XFRM Adrian Bunk
2007-09-03 10:43   ` Masahide NAKAMURA
2007-09-06 10:01     ` net-26.24 broken with XFRM off Noriaki TAKAMIYA
2007-09-02 13:00 ` [PATCH -mm] drivers/char/nozomi.c: __devexit_p usage build fix Satyam Sharma
2007-09-02 19:01 ` 2.6.23-rc4-mm1: broke pata_via cable detection Laurent Riffard
2007-09-02 19:20   ` Alan Cox
2007-09-11  1:50   ` Jeff Garzik
2007-09-02 20:39 ` 2.6.23-rc4-mm1: boot failure on HPC nx6325 Rafael J. Wysocki
2007-09-03  8:36   ` Thomas Gleixner
2007-09-03 10:15     ` Rafael J. Wysocki
2007-09-03 20:51     ` Rafael J. Wysocki
2007-09-04  1:03       ` Thomas Gleixner
2007-09-03  4:30 ` 2.6.23-rc4-mm1 Randy Dunlap
2007-09-03 19:25   ` 2.6.23-rc4-mm1 Wim Van Sebroeck
2007-09-03 22:32     ` 2.6.23-rc4-mm1 Satyam Sharma
2007-09-04 21:21       ` 2.6.23-rc4-mm1 Wim Van Sebroeck
2007-09-04 17:54 ` 2.6.23-rc4-mm1 Zach Carter
2007-09-04 21:36   ` 2.6.23-rc4-mm1 Stephen Hemminger
2007-09-05 14:37 ` 2.6.23-rc4-mm1 Valdis.Kletnieks
2007-09-05 15:12   ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-05 15:20     ` 2.6.23-rc4-mm1 Balbir Singh
2007-09-05 15:58     ` 2.6.23-rc4-mm1 Valdis.Kletnieks
2007-09-05 19:46 ` 2.6.23-rc4-mm1 - git-alsa.patch breaks audio on Dell Latitude D820 Valdis.Kletnieks
2007-09-05 19:54   ` Valdis.Kletnieks
2007-09-05 20:22     ` Takashi Iwai
2007-09-05 20:11   ` Takashi Iwai
2007-09-05 20:27     ` Takashi Iwai
2007-09-05 21:16       ` Valdis.Kletnieks
2007-09-05 21:39         ` Takashi Iwai
2007-09-06 14:10           ` Valdis.Kletnieks
2007-09-06 14:17             ` Takashi Iwai
2007-09-06 19:37 ` 2.6.23-rc4-mm1 myri10ge module link error on x86_64 Mathieu Desnoyers
2007-09-06 20:40   ` David Miller
2007-09-06 20:48     ` David Miller
2007-09-07 23:59       ` Jeff Garzik
2007-09-08  0:25         ` Daniel Walker
2007-10-13 22:03         ` Avuton Olrich
2007-09-09 12:22 ` 2.6.23-rc4-mm1 Mel Gorman
2007-09-14 15:12   ` ath5k driver not working on ThinkPad Robert de Rooy
2007-09-09 20:24 ` [-mm patch] alpha bitops.h must #include <asm/barrier.h> Adrian Bunk
2007-09-09 20:24 ` [-mm patch] remove ide_get_error_location() Adrian Bunk
2007-09-11 21:27   ` Bartlomiej Zolnierkiewicz
2007-09-12  5:54     ` Jens Axboe
2007-09-09 20:24 ` [-mm patch] drivers/dma/ioat_dma.c: make 3 functions static Adrian Bunk
2007-09-09 20:25 ` [-mm patch] usb/serial/ch341.c: make 4 " Adrian Bunk
2007-09-09 20:25 ` [-mm patch] make nfs_wb_page_priority() static Adrian Bunk
2007-09-09 20:25 ` [-mm patch] kernel/kexec.c: make code static Adrian Bunk
2007-09-10  2:55   ` Ken'ichi Ohmichi
2007-09-10 12:20     ` Adrian Bunk
2007-09-11  5:53       ` Maneesh Soni
2007-09-12  7:37         ` Ken'ichi Ohmichi
2007-09-09 20:25 ` [-mm patch] really unexport do_softirq Adrian Bunk
2007-09-12 13:14   ` David Miller
2007-09-09 20:25 ` [-mm patch] unexport raise_softirq_irqoff Adrian Bunk
2007-09-09 20:41   ` Christoph Hellwig
2007-09-12 13:15     ` David Miller
2007-09-09 20:25 ` [-mm patch] mm/memcontrol.c: clenups Adrian Bunk
2007-09-10  8:23   ` Balbir Singh
2007-09-10 19:58     ` Jan Engelhardt
2007-09-10 19:59       ` Jan Engelhardt
2007-09-10 21:59     ` Adrian Bunk
2007-09-11  2:41       ` Balbir Singh
2007-09-09 20:25 ` [-mm patch] net/sctp/socket.c: make 3 variables static Adrian Bunk
2007-09-10 14:05   ` [Lksctp-developers] " Neil Horman
2007-09-12 13:18   ` David Miller
2007-09-09 20:25 ` [-mm patch] make tcp_splice_data_recv() static Adrian Bunk
2007-09-12 13:21   ` David Miller
2007-09-12 17:44     ` Jens Axboe
2007-09-09 20:26 ` [-mm patch] make do_try_to_free_pages() static Adrian Bunk
2007-09-10  8:24   ` Balbir Singh
2007-09-10 17:43 ` 2.6.23-rc4-mm1 -- powerpc per_cpu__cpu_sibling_map compile failure Andy Whitcroft
2007-09-10 17:49 ` 2.6.23-rc4-mm1 Andy Whitcroft
2007-09-10 18:19   ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-10 18:59     ` 2.6.23-rc4-mm1 Torsten Kaiser
2007-09-10 19:20       ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-10 19:38         ` 2.6.23-rc4-mm1 Torsten Kaiser
2007-09-10 19:42         ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-10 20:43           ` 2.6.23-rc4-mm1 Torsten Kaiser
2007-09-11  8:32             ` 2.6.23-rc4-mm1 Jens Axboe
2007-09-10 19:10     ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-13 17:34       ` 2.6.23-rc4-mm1 Andy Whitcroft
2007-09-15  4:16       ` 2.6.23-rc4-mm1 Paul Jackson
2007-09-15 10:52         ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-17 13:28           ` 2.6.23-rc4-mm1 Jens Axboe
2007-09-17 14:32             ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-18 10:18               ` 2.6.23-rc4-mm1 Jens Axboe
2007-09-18 12:25                 ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-18 12:51                   ` 2.6.23-rc4-mm1 Jens Axboe
2007-09-10 19:31     ` 2.6.23-rc4-mm1 FUJITA Tomonori
2007-09-14  8:10       ` Andy Whitcroft [this message]
2007-09-14 13:01         ` 2.6.23-rc4-mm1 Torsten Kaiser
2007-09-14 20:15           ` 2.6.23-rc4-mm1 Andrew Morton
2007-09-10 20:19 ` 2.6.23-rc4-mm1: git-block.patch broke pktcdvd Laurent Riffard
2007-09-13 22:50   ` Laurent Riffard
2007-09-13 23:05     ` Andrew Morton
2007-09-14  8:00       ` Jens Axboe
2007-09-14  8:30         ` Jens Axboe
2007-09-14  9:33     ` Jens Axboe
2007-09-14 11:06       ` Jens Axboe
2007-09-14 19:04         ` Laurent Riffard
2007-09-20 21:25           ` [PATCH] pktcdvd: don't rely on bio_init() preserving bio->bi_destructor Laurent Riffard
2007-09-21  5:19             ` Jens Axboe
2007-09-02  2:56 2.6.23-rc4-mm1 Mats Johannesson
2007-09-03  8:06 ` 2.6.23-rc4-mm1 Nicolas Mailhot
2007-09-04 15:20   ` 2.6.23-rc4-mm1 Alistair John Strachan
2007-09-04 15:26     ` 2.6.23-rc4-mm1 Andi Kleen
2007-09-04 16:05       ` 2.6.23-rc4-mm1 Alistair John Strachan
2007-09-06  7:25 net-26.24 broken with XFRM off Divy Le Ray
2007-09-06  8:13 ` Eric Dumazet
2007-09-06  9:50   ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070914081018.GA20042@shadowen.org \
    --to=apw@shadowen.org \
    --cc=akpm@linux-foundation.org \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mel@csn.ul.ie \
    --cc=tomof@acm.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome