summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2014-10-06 16:26:35 +0100
committerTejun Heo <tj@kernel.org>2014-10-06 11:43:36 -0400
commit33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a (patch)
treebcf6430240b39ed54f03709f0fc681831627b7d1
parent18dcf433f3ded61eb140a55e7048ec2fef79e723 (diff)
downloadlinux-33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a.tar.gz
linux-33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a.tar.bz2
linux-33fb0d01ce60fe4c0c12c4f0c134c5cdb818ac5a.zip
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
-rw-r--r--drivers/ata/libahci.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 3ce3d23e4f97..5eb61c9e63da 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -1875,8 +1875,6 @@ static irqreturn_t ahci_single_irq_intr(int irq, void *dev_instance)
irq_masked = irq_stat & hpriv->port_map;
- spin_lock(&host->lock);
-
for (i = 0; i < host->n_ports; i++) {
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);
- spin_unlock(&host->lock);
-
VPRINTK("EXIT\n");
return handled ? IRQ_WAKE_THREAD : IRQ_NONE;