aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorReddy, Sreekanth <Sreekanth.Reddy@lsi.com>2013-02-26 06:29:59 -0500
committerJames Bottomley <JBottomley@Parallels.com>2013-06-24 15:35:34 -0400
commitb0df96a0068daee4f9c2189c29b9053eb6e46b17 (patch)
tree6e9f6aa9ca2160fa0198b80e06020bfbe9ee85c6 /drivers
parent49c1241384b599421a5e8c9f73f72e2052dd416d (diff)
[SCSI] mpt2sas: Fix for issue Missing delay not getting set during system bootup
Missing delay is not getting set properly. The reason is that it is not defined in the same file from where it is being invoked. The fix is to move the missing delay module parameter from mpt2sas_base.c to mpt2sas_scsh.c. Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@lsi.com> Cc: stable@vger.kernel.org Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c13
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h3
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c8
3 files changed, 13 insertions, 11 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index bcb23d28b3e8..c76b18bbacb8 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -80,10 +80,6 @@ static int msix_disable = -1;
80module_param(msix_disable, int, 0); 80module_param(msix_disable, int, 0);
81MODULE_PARM_DESC(msix_disable, " disable msix routed interrupts (default=0)"); 81MODULE_PARM_DESC(msix_disable, " disable msix routed interrupts (default=0)");
82 82
83static int missing_delay[2] = {-1, -1};
84module_param_array(missing_delay, int, NULL, 0);
85MODULE_PARM_DESC(missing_delay, " device missing delay , io missing delay");
86
87static int mpt2sas_fwfault_debug; 83static int mpt2sas_fwfault_debug;
88MODULE_PARM_DESC(mpt2sas_fwfault_debug, " enable detection of firmware fault " 84MODULE_PARM_DESC(mpt2sas_fwfault_debug, " enable detection of firmware fault "
89 "and halt firmware - (default=0)"); 85 "and halt firmware - (default=0)");
@@ -2199,7 +2195,7 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc)
2199} 2195}
2200 2196
2201/** 2197/**
2202 * _base_update_missing_delay - change the missing delay timers 2198 * mpt2sas_base_update_missing_delay - change the missing delay timers
2203 * @ioc: per adapter object 2199 * @ioc: per adapter object
2204 * @device_missing_delay: amount of time till device is reported missing 2200 * @device_missing_delay: amount of time till device is reported missing
2205 * @io_missing_delay: interval IO is returned when there is a missing device 2201 * @io_missing_delay: interval IO is returned when there is a missing device
@@ -2210,8 +2206,8 @@ _base_display_ioc_capabilities(struct MPT2SAS_ADAPTER *ioc)
2210 * delay, as well as the io missing delay. This should be called at driver 2206 * delay, as well as the io missing delay. This should be called at driver
2211 * load time. 2207 * load time.
2212 */ 2208 */
2213static void 2209void
2214_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc, 2210mpt2sas_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc,
2215 u16 device_missing_delay, u8 io_missing_delay) 2211 u16 device_missing_delay, u8 io_missing_delay)
2216{ 2212{
2217 u16 dmd, dmd_new, dmd_orignal; 2213 u16 dmd, dmd_new, dmd_orignal;
@@ -4407,9 +4403,6 @@ mpt2sas_base_attach(struct MPT2SAS_ADAPTER *ioc)
4407 if (r) 4403 if (r)
4408 goto out_free_resources; 4404 goto out_free_resources;
4409 4405
4410 if (missing_delay[0] != -1 && missing_delay[1] != -1)
4411 _base_update_missing_delay(ioc, missing_delay[0],
4412 missing_delay[1]);
4413 ioc->non_operational_loop = 0; 4406 ioc->non_operational_loop = 0;
4414 4407
4415 return 0; 4408 return 0;
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.h b/drivers/scsi/mpt2sas/mpt2sas_base.h
index 4caaac13682f..11301974628b 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.h
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.h
@@ -1055,6 +1055,9 @@ void mpt2sas_base_validate_event_type(struct MPT2SAS_ADAPTER *ioc, u32 *event_ty
1055 1055
1056void mpt2sas_halt_firmware(struct MPT2SAS_ADAPTER *ioc); 1056void mpt2sas_halt_firmware(struct MPT2SAS_ADAPTER *ioc);
1057 1057
1058void mpt2sas_base_update_missing_delay(struct MPT2SAS_ADAPTER *ioc,
1059 u16 device_missing_delay, u8 io_missing_delay);
1060
1058int mpt2sas_port_enable(struct MPT2SAS_ADAPTER *ioc); 1061int mpt2sas_port_enable(struct MPT2SAS_ADAPTER *ioc);
1059 1062
1060/* scsih shared API */ 1063/* scsih shared API */
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index c6bdc9267229..116e20195e15 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -101,6 +101,10 @@ static ushort max_sectors = 0xFFFF;
101module_param(max_sectors, ushort, 0); 101module_param(max_sectors, ushort, 0);
102MODULE_PARM_DESC(max_sectors, "max sectors, range 64 to 32767 default=32767"); 102MODULE_PARM_DESC(max_sectors, "max sectors, range 64 to 32767 default=32767");
103 103
104static int missing_delay[2] = {-1, -1};
105module_param_array(missing_delay, int, NULL, 0);
106MODULE_PARM_DESC(missing_delay, " device missing delay , io missing delay");
107
104/* scsi-mid layer global parmeter is max_report_luns, which is 511 */ 108/* scsi-mid layer global parmeter is max_report_luns, which is 511 */
105#define MPT2SAS_MAX_LUN (16895) 109#define MPT2SAS_MAX_LUN (16895)
106static int max_lun = MPT2SAS_MAX_LUN; 110static int max_lun = MPT2SAS_MAX_LUN;
@@ -7303,7 +7307,9 @@ _firmware_event_work(struct work_struct *work)
7303 case MPT2SAS_PORT_ENABLE_COMPLETE: 7307 case MPT2SAS_PORT_ENABLE_COMPLETE:
7304 ioc->start_scan = 0; 7308 ioc->start_scan = 0;
7305 7309
7306 7310 if (missing_delay[0] != -1 && missing_delay[1] != -1)
7311 mpt2sas_base_update_missing_delay(ioc, missing_delay[0],
7312 missing_delay[1]);
7307 7313
7308 dewtprintk(ioc, printk(MPT2SAS_INFO_FMT "port enable: complete " 7314 dewtprintk(ioc, printk(MPT2SAS_INFO_FMT "port enable: complete "
7309 "from worker thread\n", ioc->name)); 7315 "from worker thread\n", ioc->name));