summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/ipr.c9
-rw-r--r--drivers/scsi/ipr.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 1f539c288ae8..95e4834c58ee 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -3288,6 +3288,11 @@ static void ipr_worker_thread(struct work_struct *work)
3288 return; 3288 return;
3289 } 3289 }
3290 3290
3291 if (!ioa_cfg->scan_enabled) {
3292 spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
3293 return;
3294 }
3295
3291restart: 3296restart:
3292 do { 3297 do {
3293 did_work = 0; 3298 did_work = 0;
@@ -10362,6 +10367,7 @@ static void ipr_remove(struct pci_dev *pdev)
10362static int ipr_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) 10367static int ipr_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
10363{ 10368{
10364 struct ipr_ioa_cfg *ioa_cfg; 10369 struct ipr_ioa_cfg *ioa_cfg;
10370 unsigned long flags;
10365 int rc, i; 10371 int rc, i;
10366 10372
10367 rc = ipr_probe_ioa(pdev, dev_id); 10373 rc = ipr_probe_ioa(pdev, dev_id);
@@ -10414,7 +10420,10 @@ static int ipr_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
10414 } 10420 }
10415 } 10421 }
10416 10422
10423 spin_lock_irqsave(ioa_cfg->host->host_lock, flags);
10424 ioa_cfg->scan_enabled = 1;
10417 schedule_work(&ioa_cfg->work_q); 10425 schedule_work(&ioa_cfg->work_q);
10426 spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
10418 return 0; 10427 return 0;
10419} 10428}
10420 10429
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 1d42c7464dfc..cdb51960b53c 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -1478,6 +1478,7 @@ struct ipr_ioa_cfg {
1478 u8 in_ioa_bringdown:1; 1478 u8 in_ioa_bringdown:1;
1479 u8 ioa_unit_checked:1; 1479 u8 ioa_unit_checked:1;
1480 u8 dump_taken:1; 1480 u8 dump_taken:1;
1481 u8 scan_enabled:1;
1481 u8 scan_done:1; 1482 u8 scan_done:1;
1482 u8 needs_hard_reset:1; 1483 u8 needs_hard_reset:1;
1483 u8 dual_raid:1; 1484 u8 dual_raid:1;