libata: fix unbalanced spin_lock_irqsave/spin_unlock_irq() in ata_scsi_park_show()
authorTejun Heo <tj@kernel.org>
Thu, 18 Feb 2016 16:50:37 +0000 (11:50 -0500)
committerTejun Heo <tj@kernel.org>
Thu, 18 Feb 2016 16:53:17 +0000 (11:53 -0500)
ata_scsi_park_show() was pairing spin_lock_irqsave() with
spin_unlock_irq().  As the function is always called with irq enabled,
it didn't actually break anything.  Use spin_lock_irq() instead.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Elias Oltmanns <eo@nebensachen.de>
drivers/ata/libata-scsi.c

index e417e1a..567859c 100644 (file)
@@ -174,13 +174,13 @@ static ssize_t ata_scsi_park_show(struct device *device,
        struct ata_port *ap;
        struct ata_link *link;
        struct ata_device *dev;
-       unsigned long flags, now;
+       unsigned long now;
        unsigned int uninitialized_var(msecs);
        int rc = 0;
 
        ap = ata_shost_to_port(sdev->host);
 
-       spin_lock_irqsave(ap->lock, flags);
+       spin_lock_irq(ap->lock);
        dev = ata_scsi_find_dev(ap, sdev);
        if (!dev) {
                rc = -ENODEV;