diff options
| -rw-r--r-- | drivers/base/dd.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/scsi_wait_scan.c | 5 | ||||
| -rw-r--r-- | include/linux/device.h | 2 | ||||
| -rw-r--r-- | kernel/power/hibernate.c | 8 | ||||
| -rw-r--r-- | kernel/power/user.c | 2 |
5 files changed, 2 insertions, 17 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index dcb8a6e48692..4b01ab3d2c24 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include <linux/wait.h> | 24 | #include <linux/wait.h> |
| 25 | #include <linux/async.h> | 25 | #include <linux/async.h> |
| 26 | #include <linux/pm_runtime.h> | 26 | #include <linux/pm_runtime.h> |
| 27 | #include <scsi/scsi_scan.h> | ||
| 27 | 28 | ||
| 28 | #include "base.h" | 29 | #include "base.h" |
| 29 | #include "power/power.h" | 30 | #include "power/power.h" |
| @@ -332,6 +333,7 @@ void wait_for_device_probe(void) | |||
| 332 | /* wait for the known devices to complete their probing */ | 333 | /* wait for the known devices to complete their probing */ |
| 333 | wait_event(probe_waitqueue, atomic_read(&probe_count) == 0); | 334 | wait_event(probe_waitqueue, atomic_read(&probe_count) == 0); |
| 334 | async_synchronize_full(); | 335 | async_synchronize_full(); |
| 336 | scsi_complete_async_scans(); | ||
| 335 | } | 337 | } |
| 336 | EXPORT_SYMBOL_GPL(wait_for_device_probe); | 338 | EXPORT_SYMBOL_GPL(wait_for_device_probe); |
| 337 | 339 | ||
diff --git a/drivers/scsi/scsi_wait_scan.c b/drivers/scsi/scsi_wait_scan.c index ae7814874618..072734538876 100644 --- a/drivers/scsi/scsi_wait_scan.c +++ b/drivers/scsi/scsi_wait_scan.c | |||
| @@ -22,11 +22,6 @@ static int __init wait_scan_init(void) | |||
| 22 | * and might not yet have reached the scsi async scanning | 22 | * and might not yet have reached the scsi async scanning |
| 23 | */ | 23 | */ |
| 24 | wait_for_device_probe(); | 24 | wait_for_device_probe(); |
| 25 | /* | ||
| 26 | * and then we wait for the actual asynchronous scsi scan | ||
| 27 | * to finish. | ||
| 28 | */ | ||
| 29 | scsi_complete_async_scans(); | ||
| 30 | return 0; | 25 | return 0; |
| 31 | } | 26 | } |
| 32 | 27 | ||
diff --git a/include/linux/device.h b/include/linux/device.h index 161d96241b1b..6de94151ff6f 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -865,8 +865,6 @@ extern int (*platform_notify_remove)(struct device *dev); | |||
| 865 | extern struct device *get_device(struct device *dev); | 865 | extern struct device *get_device(struct device *dev); |
| 866 | extern void put_device(struct device *dev); | 866 | extern void put_device(struct device *dev); |
| 867 | 867 | ||
| 868 | extern void wait_for_device_probe(void); | ||
| 869 | |||
| 870 | #ifdef CONFIG_DEVTMPFS | 868 | #ifdef CONFIG_DEVTMPFS |
| 871 | extern int devtmpfs_create_node(struct device *dev); | 869 | extern int devtmpfs_create_node(struct device *dev); |
| 872 | extern int devtmpfs_delete_node(struct device *dev); | 870 | extern int devtmpfs_delete_node(struct device *dev); |
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 8b53db38a279..238025f5472e 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c | |||
| @@ -27,7 +27,6 @@ | |||
| 27 | #include <linux/syscore_ops.h> | 27 | #include <linux/syscore_ops.h> |
| 28 | #include <linux/ctype.h> | 28 | #include <linux/ctype.h> |
| 29 | #include <linux/genhd.h> | 29 | #include <linux/genhd.h> |
| 30 | #include <scsi/scsi_scan.h> | ||
| 31 | 30 | ||
| 32 | #include "power.h" | 31 | #include "power.h" |
| 33 | 32 | ||
| @@ -748,13 +747,6 @@ static int software_resume(void) | |||
| 748 | async_synchronize_full(); | 747 | async_synchronize_full(); |
| 749 | } | 748 | } |
| 750 | 749 | ||
| 751 | /* | ||
| 752 | * We can't depend on SCSI devices being available after loading | ||
| 753 | * one of their modules until scsi_complete_async_scans() is | ||
| 754 | * called and the resume device usually is a SCSI one. | ||
| 755 | */ | ||
| 756 | scsi_complete_async_scans(); | ||
| 757 | |||
| 758 | swsusp_resume_device = name_to_dev_t(resume_file); | 750 | swsusp_resume_device = name_to_dev_t(resume_file); |
| 759 | if (!swsusp_resume_device) { | 751 | if (!swsusp_resume_device) { |
| 760 | error = -ENODEV; | 752 | error = -ENODEV; |
diff --git a/kernel/power/user.c b/kernel/power/user.c index 91b0fd021a95..4ed81e74f86f 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c | |||
| @@ -24,7 +24,6 @@ | |||
| 24 | #include <linux/console.h> | 24 | #include <linux/console.h> |
| 25 | #include <linux/cpu.h> | 25 | #include <linux/cpu.h> |
| 26 | #include <linux/freezer.h> | 26 | #include <linux/freezer.h> |
| 27 | #include <scsi/scsi_scan.h> | ||
| 28 | 27 | ||
| 29 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
| 30 | 29 | ||
| @@ -84,7 +83,6 @@ static int snapshot_open(struct inode *inode, struct file *filp) | |||
| 84 | * appear. | 83 | * appear. |
| 85 | */ | 84 | */ |
| 86 | wait_for_device_probe(); | 85 | wait_for_device_probe(); |
| 87 | scsi_complete_async_scans(); | ||
| 88 | 86 | ||
| 89 | data->swap = -1; | 87 | data->swap = -1; |
| 90 | data->mode = O_WRONLY; | 88 | data->mode = O_WRONLY; |
