diff options
author | Alexander Gordeev <agordeev@redhat.com> | 2014-09-29 18:26:01 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2014-10-06 11:43:36 -0400 |
commit | 227dfb4dbf109596d76a9b842856c4ff68e4efb2 (patch) | |
tree | 21d347c6ee2f4d53fffd158bab63acecd23d9a39 /drivers/ata/ahci.h | |
parent | 5ee1cfd975518bc9cdcd79e0b76552b5ae5c8c1e (diff) |
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 <agordeev@redhat.com>
Suggested-by: "Jiang, Dave" <dave.jiang@intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "Jiang, Dave" <dave.jiang@intel.com>
Cc: linux-ide@vger.kernel.org
Diffstat (limited to 'drivers/ata/ahci.h')
-rw-r--r-- | drivers/ata/ahci.h | 2 |
1 files changed, 1 insertions, 1 deletions
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 */ |