From 227dfb4dbf109596d76a9b842856c4ff68e4efb2 Mon Sep 17 00:00:00 2001 From: Alexander Gordeev Date: Mon, 29 Sep 2014 18:26:01 +0200 Subject: AHCI: Do not read HOST_IRQ_STAT reg in multi-MSI mode As described in AHCI v1.0 specification chapter 10.6.2.2 "Multiple MSI Based Messages" generation of interrupts is not controlled through the HOST_IRQ_STAT register. Considering MMIO access is expensive remove unnecessary reading and writing of HOST_IRQ_STAT register. Further, serializing access to the host data is no longer needed and the interrupt service routine can avoid competing on the host lock. Signed-off-by: Alexander Gordeev Suggested-by: "Jiang, Dave" Signed-off-by: Tejun Heo Cc: "Jiang, Dave" Cc: linux-ide@vger.kernel.org --- drivers/ata/ahci.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/ata/ahci.h') diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h index 6a22055151f0..40f0e34f17af 100644 --- a/drivers/ata/ahci.h +++ b/drivers/ata/ahci.h @@ -304,7 +304,7 @@ struct ahci_port_priv { unsigned int ncq_saw_d2h:1; unsigned int ncq_saw_dmas:1; unsigned int ncq_saw_sdb:1; - u32 intr_status; /* interrupts to handle */ + atomic_t intr_status; /* interrupts to handle */ spinlock_t lock; /* protects parent ata_port */ u32 intr_mask; /* interrupts to enable */ bool fbs_supported; /* set iff FBS is supported */ -- cgit v1.2.1