diff options
| -rw-r--r-- | drivers/message/fusion/mptsas.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index 7596aecd507..73229ff9caf 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c @@ -92,6 +92,11 @@ static int max_lun = MPTSAS_MAX_LUN;  module_param(max_lun, int, 0);  MODULE_PARM_DESC(max_lun, " max lun, default=16895 "); +static int mpt_loadtime_max_sectors = 8192; +module_param(mpt_loadtime_max_sectors, int, 0); +MODULE_PARM_DESC(mpt_loadtime_max_sectors, +		" Maximum sector define for Host Bus Adaptor.Range 64 to 8192 default=8192"); +  static u8	mptsasDoneCtx = MPT_MAX_PROTOCOL_DRIVERS;  static u8	mptsasTaskCtx = MPT_MAX_PROTOCOL_DRIVERS;  static u8	mptsasInternalCtx = MPT_MAX_PROTOCOL_DRIVERS; /* Used only for internal commands */ @@ -5239,6 +5244,21 @@ mptsas_probe(struct pci_dev *pdev, const struct pci_device_id *id)  		sh->sg_tablesize = numSGE;  	} +	if (mpt_loadtime_max_sectors) { +		if (mpt_loadtime_max_sectors < 64 || +			mpt_loadtime_max_sectors > 8192) { +			printk(MYIOC_s_INFO_FMT "Invalid value passed for" +				"mpt_loadtime_max_sectors %d." +				"Range from 64 to 8192\n", ioc->name, +				mpt_loadtime_max_sectors); +		} +		mpt_loadtime_max_sectors &=  0xFFFFFFFE; +		dprintk(ioc, printk(MYIOC_s_DEBUG_FMT +			"Resetting max sector to %d from %d\n", +		  ioc->name, mpt_loadtime_max_sectors, sh->max_sectors)); +		sh->max_sectors = mpt_loadtime_max_sectors; +	} +  	hd = shost_priv(sh);  	hd->ioc = ioc;  |