AHCI: Do not acquire ata_host::lock from single IRQ handler

There is no need to acquire ata_host::lock spinlock from
hardware context single IRQ interrupt handler since the
handler does not access host data that could be altered
by concurrent processors.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: linux-ide@vger.kernel.org
This commit is contained in:
Alexander Gordeev 2014-10-06 16:26:35 +01:00 committed by Tejun Heo
parent 18dcf433f3
commit 33fb0d01ce

View File

@ -1875,8 +1875,6 @@ static irqreturn_t ahci_single_irq_intr(int irq, void *dev_instance)
irq_masked = irq_stat & hpriv->port_map; irq_masked = irq_stat & hpriv->port_map;
spin_lock(&host->lock);
for (i = 0; i < host->n_ports; i++) { for (i = 0; i < host->n_ports; i++) {
struct ata_port *ap; struct ata_port *ap;
@ -1908,8 +1906,6 @@ static irqreturn_t ahci_single_irq_intr(int irq, void *dev_instance)
*/ */
writel(irq_stat, mmio + HOST_IRQ_STAT); writel(irq_stat, mmio + HOST_IRQ_STAT);
spin_unlock(&host->lock);
VPRINTK("EXIT\n"); VPRINTK("EXIT\n");
return handled ? IRQ_WAKE_THREAD : IRQ_NONE; return handled ? IRQ_WAKE_THREAD : IRQ_NONE;