summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/amd_iommu.c
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2011-05-10 10:50:42 +0200
committerJoerg Roedel <joerg.roedel@amd.com>2011-05-10 11:07:58 +0200
commit72fe00f01f9a3240a1073be27aeaf4fc476cc662 (patch)
tree6030bac491411d7a70e8c1c1da90c8f5e552dc74 /arch/x86/kernel/amd_iommu.c
parent604c307bf47350c74bb36507b86a08726c7c2075 (diff)
downloadlinux-72fe00f01f9a3240a1073be27aeaf4fc476cc662.tar.gz
linux-72fe00f01f9a3240a1073be27aeaf4fc476cc662.tar.bz2
linux-72fe00f01f9a3240a1073be27aeaf4fc476cc662.zip
x86/amd-iommu: Use threaded interupt handler
Move the interupt handling for the iommu into the interupt thread to reduce latencies and prepare interupt handling for pri handling. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu.c')
-rw-r--r--arch/x86/kernel/amd_iommu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index dc5dddafe5c2..873e7e1ead7b 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -366,7 +366,7 @@ static void iommu_poll_events(struct amd_iommu *iommu)
spin_unlock_irqrestore(&iommu->lock, flags);
}
-irqreturn_t amd_iommu_int_handler(int irq, void *data)
+irqreturn_t amd_iommu_int_thread(int irq, void *data)
{
struct amd_iommu *iommu;
@@ -376,6 +376,11 @@ irqreturn_t amd_iommu_int_handler(int irq, void *data)
return IRQ_HANDLED;
}
+irqreturn_t amd_iommu_int_handler(int irq, void *data)
+{
+ return IRQ_WAKE_THREAD;
+}
+
/****************************************************************************
*
* IOMMU command queuing functions