ide: don't acquire queue_lock in ide_complete_pm_rq
authorChristoph Hellwig <hch@lst.de>
Fri, 16 Nov 2018 08:10:05 +0000 (09:10 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 16 Nov 2018 16:17:02 +0000 (09:17 -0700)
blk_mq_stop_hw_queues doesn't need any locking, and the ide
dev_flags field isn't protected by it either.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ide/ide-pm.c

index 56690f5..192e6c6 100644 (file)
@@ -201,7 +201,6 @@ void ide_complete_pm_rq(ide_drive_t *drive, struct request *rq)
 {
        struct request_queue *q = drive->queue;
        struct ide_pm_state *pm = ide_req(rq)->special;
-       unsigned long flags;
 
        ide_complete_power_step(drive, rq);
        if (pm->pm_step != IDE_PM_COMPLETED)
@@ -211,12 +210,10 @@ void ide_complete_pm_rq(ide_drive_t *drive, struct request *rq)
        printk("%s: completing PM request, %s\n", drive->name,
               (ide_req(rq)->type == ATA_PRIV_PM_SUSPEND) ? "suspend" : "resume");
 #endif
-       spin_lock_irqsave(&q->queue_lock, flags);
        if (ide_req(rq)->type == ATA_PRIV_PM_SUSPEND)
                blk_mq_stop_hw_queues(q);
        else
                drive->dev_flags &= ~IDE_DFLAG_BLOCKED;
-       spin_unlock_irqrestore(&q->queue_lock, flags);
 
        drive->hwif->rq = NULL;