|
@@ -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;
|
|
|
|