diff options
-rw-r--r-- | drivers/scsi/NCR5380.c | 3 | ||||
-rw-r--r-- | drivers/scsi/arcmsr/arcmsr_hba.c | 4 | ||||
-rw-r--r-- | drivers/scsi/ipr.c | 2 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas_base.c | 6 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 1 | ||||
-rw-r--r-- | drivers/scsi/pmcraid.c | 2 |
6 files changed, 7 insertions, 11 deletions
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c index 9a5629f94f95..e7cd2fcbe036 100644 --- a/drivers/scsi/NCR5380.c +++ b/drivers/scsi/NCR5380.c | |||
@@ -936,8 +936,7 @@ static void NCR5380_exit(struct Scsi_Host *instance) | |||
936 | { | 936 | { |
937 | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; | 937 | struct NCR5380_hostdata *hostdata = (struct NCR5380_hostdata *) instance->hostdata; |
938 | 938 | ||
939 | cancel_delayed_work(&hostdata->coroutine); | 939 | cancel_delayed_work_sync(&hostdata->coroutine); |
940 | flush_scheduled_work(); | ||
941 | } | 940 | } |
942 | 941 | ||
943 | /** | 942 | /** |
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c index 1cadcd6b7da6..d6d17a1a41df 100644 --- a/drivers/scsi/arcmsr/arcmsr_hba.c +++ b/drivers/scsi/arcmsr/arcmsr_hba.c | |||
@@ -1022,7 +1022,7 @@ static void arcmsr_remove(struct pci_dev *pdev) | |||
1022 | int poll_count = 0; | 1022 | int poll_count = 0; |
1023 | arcmsr_free_sysfs_attr(acb); | 1023 | arcmsr_free_sysfs_attr(acb); |
1024 | scsi_remove_host(host); | 1024 | scsi_remove_host(host); |
1025 | flush_scheduled_work(); | 1025 | flush_work_sync(&acb->arcmsr_do_message_isr_bh); |
1026 | del_timer_sync(&acb->eternal_timer); | 1026 | del_timer_sync(&acb->eternal_timer); |
1027 | arcmsr_disable_outbound_ints(acb); | 1027 | arcmsr_disable_outbound_ints(acb); |
1028 | arcmsr_stop_adapter_bgrb(acb); | 1028 | arcmsr_stop_adapter_bgrb(acb); |
@@ -1068,7 +1068,7 @@ static void arcmsr_shutdown(struct pci_dev *pdev) | |||
1068 | (struct AdapterControlBlock *)host->hostdata; | 1068 | (struct AdapterControlBlock *)host->hostdata; |
1069 | del_timer_sync(&acb->eternal_timer); | 1069 | del_timer_sync(&acb->eternal_timer); |
1070 | arcmsr_disable_outbound_ints(acb); | 1070 | arcmsr_disable_outbound_ints(acb); |
1071 | flush_scheduled_work(); | 1071 | flush_work_sync(&acb->arcmsr_do_message_isr_bh); |
1072 | arcmsr_stop_adapter_bgrb(acb); | 1072 | arcmsr_stop_adapter_bgrb(acb); |
1073 | arcmsr_flush_adapter_cache(acb); | 1073 | arcmsr_flush_adapter_cache(acb); |
1074 | } | 1074 | } |
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 9c5c8be72231..a8e24f06b8d8 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -8865,7 +8865,7 @@ static void __ipr_remove(struct pci_dev *pdev) | |||
8865 | 8865 | ||
8866 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); | 8866 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); |
8867 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); | 8867 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); |
8868 | flush_scheduled_work(); | 8868 | flush_work_sync(&ioa_cfg->work_q); |
8869 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); | 8869 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); |
8870 | 8870 | ||
8871 | spin_lock(&ipr_driver_lock); | 8871 | spin_lock(&ipr_driver_lock); |
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index 5d6d07bd1cd0..e7c9b41def7b 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c | |||
@@ -4242,9 +4242,8 @@ megasas_suspend(struct pci_dev *pdev, pm_message_t state) | |||
4242 | /* cancel the delayed work if this work still in queue */ | 4242 | /* cancel the delayed work if this work still in queue */ |
4243 | if (instance->ev != NULL) { | 4243 | if (instance->ev != NULL) { |
4244 | struct megasas_aen_event *ev = instance->ev; | 4244 | struct megasas_aen_event *ev = instance->ev; |
4245 | cancel_delayed_work( | 4245 | cancel_delayed_work_sync( |
4246 | (struct delayed_work *)&ev->hotplug_work); | 4246 | (struct delayed_work *)&ev->hotplug_work); |
4247 | flush_scheduled_work(); | ||
4248 | instance->ev = NULL; | 4247 | instance->ev = NULL; |
4249 | } | 4248 | } |
4250 | 4249 | ||
@@ -4417,9 +4416,8 @@ static void __devexit megasas_detach_one(struct pci_dev *pdev) | |||
4417 | /* cancel the delayed work if this work still in queue*/ | 4416 | /* cancel the delayed work if this work still in queue*/ |
4418 | if (instance->ev != NULL) { | 4417 | if (instance->ev != NULL) { |
4419 | struct megasas_aen_event *ev = instance->ev; | 4418 | struct megasas_aen_event *ev = instance->ev; |
4420 | cancel_delayed_work( | 4419 | cancel_delayed_work_sync( |
4421 | (struct delayed_work *)&ev->hotplug_work); | 4420 | (struct delayed_work *)&ev->hotplug_work); |
4422 | flush_scheduled_work(); | ||
4423 | instance->ev = NULL; | 4421 | instance->ev = NULL; |
4424 | } | 4422 | } |
4425 | 4423 | ||
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c index eda347c57979..b375150a379b 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c | |||
@@ -6935,7 +6935,6 @@ _scsih_suspend(struct pci_dev *pdev, pm_message_t state) | |||
6935 | u32 device_state; | 6935 | u32 device_state; |
6936 | 6936 | ||
6937 | mpt2sas_base_stop_watchdog(ioc); | 6937 | mpt2sas_base_stop_watchdog(ioc); |
6938 | flush_scheduled_work(); | ||
6939 | scsi_block_requests(shost); | 6938 | scsi_block_requests(shost); |
6940 | device_state = pci_choose_state(pdev, state); | 6939 | device_state = pci_choose_state(pdev, state); |
6941 | printk(MPT2SAS_INFO_FMT "pdev=0x%p, slot=%s, entering " | 6940 | printk(MPT2SAS_INFO_FMT "pdev=0x%p, slot=%s, entering " |
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index 321cf3ae8630..bcf858e88c64 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c | |||
@@ -5454,7 +5454,7 @@ static void __devexit pmcraid_remove(struct pci_dev *pdev) | |||
5454 | pmcraid_shutdown(pdev); | 5454 | pmcraid_shutdown(pdev); |
5455 | 5455 | ||
5456 | pmcraid_disable_interrupts(pinstance, ~0); | 5456 | pmcraid_disable_interrupts(pinstance, ~0); |
5457 | flush_scheduled_work(); | 5457 | flush_work_sync(&pinstance->worker_q); |
5458 | 5458 | ||
5459 | pmcraid_kill_tasklets(pinstance); | 5459 | pmcraid_kill_tasklets(pinstance); |
5460 | pmcraid_unregister_interrupt_handler(pinstance); | 5460 | pmcraid_unregister_interrupt_handler(pinstance); |