aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-scsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r--drivers/ata/libata-scsi.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 83c08907e042..f177ad6bfd09 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -49,7 +49,6 @@
49#include <linux/hdreg.h> 49#include <linux/hdreg.h>
50#include <linux/uaccess.h> 50#include <linux/uaccess.h>
51#include <linux/suspend.h> 51#include <linux/suspend.h>
52#include <linux/pm_qos.h>
53#include <asm/unaligned.h> 52#include <asm/unaligned.h>
54 53
55#include "libata.h" 54#include "libata.h"
@@ -3665,9 +3664,7 @@ void ata_scsi_scan_host(struct ata_port *ap, int sync)
3665 if (!IS_ERR(sdev)) { 3664 if (!IS_ERR(sdev)) {
3666 dev->sdev = sdev; 3665 dev->sdev = sdev;
3667 scsi_device_put(sdev); 3666 scsi_device_put(sdev);
3668 if (zpodd_dev_enabled(dev)) 3667 ata_scsi_acpi_bind(dev);
3669 dev_pm_qos_expose_flags(
3670 &sdev->sdev_gendev, 0);
3671 } else { 3668 } else {
3672 dev->sdev = NULL; 3669 dev->sdev = NULL;
3673 } 3670 }
@@ -3755,6 +3752,8 @@ static void ata_scsi_remove_dev(struct ata_device *dev)
3755 struct scsi_device *sdev; 3752 struct scsi_device *sdev;
3756 unsigned long flags; 3753 unsigned long flags;
3757 3754
3755 ata_scsi_acpi_unbind(dev);
3756
3758 /* Alas, we need to grab scan_mutex to ensure SCSI device 3757 /* Alas, we need to grab scan_mutex to ensure SCSI device
3759 * state doesn't change underneath us and thus 3758 * state doesn't change underneath us and thus
3760 * scsi_device_get() always succeeds. The mutex locking can 3759 * scsi_device_get() always succeeds. The mutex locking can
@@ -3764,9 +3763,6 @@ static void ata_scsi_remove_dev(struct ata_device *dev)
3764 mutex_lock(&ap->scsi_host->scan_mutex); 3763 mutex_lock(&ap->scsi_host->scan_mutex);
3765 spin_lock_irqsave(ap->lock, flags); 3764 spin_lock_irqsave(ap->lock, flags);
3766 3765
3767 if (zpodd_dev_enabled(dev))
3768 zpodd_exit(dev);
3769
3770 /* clearing dev->sdev is protected by host lock */ 3766 /* clearing dev->sdev is protected by host lock */
3771 sdev = dev->sdev; 3767 sdev = dev->sdev;
3772 dev->sdev = NULL; 3768 dev->sdev = NULL;
@@ -3816,6 +3812,9 @@ static void ata_scsi_handle_link_detach(struct ata_link *link)
3816 dev->flags &= ~ATA_DFLAG_DETACHED; 3812 dev->flags &= ~ATA_DFLAG_DETACHED;
3817 spin_unlock_irqrestore(ap->lock, flags); 3813 spin_unlock_irqrestore(ap->lock, flags);
3818 3814
3815 if (zpodd_dev_enabled(dev))
3816 zpodd_exit(dev);
3817
3819 ata_scsi_remove_dev(dev); 3818 ata_scsi_remove_dev(dev);
3820 } 3819 }
3821} 3820}