aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2018-06-04 11:33:56 -0400
committerThomas Gleixner <tglx@linutronix.de>2018-06-06 09:18:20 -0400
commit8a2b7d142e7ac477d52f5f92251e59fc136d7ddd (patch)
tree0879d519f25b7077ced3a9e8b6b131d5ec54ccf2
parentc0255770ccdc77ef2184d2a0a2e0cde09d2b44a4 (diff)
irq_remapping: Use apic_ack_irq()
To address the EBUSY fail of interrupt affinity settings in case that the previous setting has not been cleaned up yet, use the new apic_ack_irq() function instead of the special ir_ack_apic_edge() implementation which is merily a wrapper around ack_APIC_irq(). Preparatory change for the real fix Fixes: dccfe3147b42 ("x86/vector: Simplify vector move cleanup") Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Song Liu <songliubraving@fb.com> Cc: Joerg Roedel <jroedel@suse.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Song Liu <liu.song.a23@gmail.com> Cc: Dmitry Safonov <0x7f454c46@gmail.com> Cc: stable@vger.kernel.org Cc: Mike Travis <mike.travis@hpe.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Tariq Toukan <tariqt@mellanox.com> Link: https://lkml.kernel.org/r/20180604162224.555716895@linutronix.de
-rw-r--r--drivers/iommu/amd_iommu.c2
-rw-r--r--drivers/iommu/intel_irq_remapping.c2
-rw-r--r--drivers/iommu/irq_remapping.c5
-rw-r--r--drivers/iommu/irq_remapping.h2
4 files changed, 2 insertions, 9 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 8fb8c737fffe..b0b30a568db7 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -4379,7 +4379,7 @@ static void ir_compose_msi_msg(struct irq_data *irq_data, struct msi_msg *msg)
4379 4379
4380static struct irq_chip amd_ir_chip = { 4380static struct irq_chip amd_ir_chip = {
4381 .name = "AMD-IR", 4381 .name = "AMD-IR",
4382 .irq_ack = ir_ack_apic_edge, 4382 .irq_ack = apic_ack_irq,
4383 .irq_set_affinity = amd_ir_set_affinity, 4383 .irq_set_affinity = amd_ir_set_affinity,
4384 .irq_set_vcpu_affinity = amd_ir_set_vcpu_affinity, 4384 .irq_set_vcpu_affinity = amd_ir_set_vcpu_affinity,
4385 .irq_compose_msi_msg = ir_compose_msi_msg, 4385 .irq_compose_msi_msg = ir_compose_msi_msg,
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index 3062a154a9fb..967450bd421a 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -1223,7 +1223,7 @@ static int intel_ir_set_vcpu_affinity(struct irq_data *data, void *info)
1223 1223
1224static struct irq_chip intel_ir_chip = { 1224static struct irq_chip intel_ir_chip = {
1225 .name = "INTEL-IR", 1225 .name = "INTEL-IR",
1226 .irq_ack = ir_ack_apic_edge, 1226 .irq_ack = apic_ack_irq,
1227 .irq_set_affinity = intel_ir_set_affinity, 1227 .irq_set_affinity = intel_ir_set_affinity,
1228 .irq_compose_msi_msg = intel_ir_compose_msi_msg, 1228 .irq_compose_msi_msg = intel_ir_compose_msi_msg,
1229 .irq_set_vcpu_affinity = intel_ir_set_vcpu_affinity, 1229 .irq_set_vcpu_affinity = intel_ir_set_vcpu_affinity,
diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
index 496deee3ae3a..7d0f3074d41d 100644
--- a/drivers/iommu/irq_remapping.c
+++ b/drivers/iommu/irq_remapping.c
@@ -156,11 +156,6 @@ void panic_if_irq_remap(const char *msg)
156 panic(msg); 156 panic(msg);
157} 157}
158 158
159void ir_ack_apic_edge(struct irq_data *data)
160{
161 ack_APIC_irq();
162}
163
164/** 159/**
165 * irq_remapping_get_ir_irq_domain - Get the irqdomain associated with the IOMMU 160 * irq_remapping_get_ir_irq_domain - Get the irqdomain associated with the IOMMU
166 * device serving request @info 161 * device serving request @info
diff --git a/drivers/iommu/irq_remapping.h b/drivers/iommu/irq_remapping.h
index 039c7af7b190..0afef6e43be4 100644
--- a/drivers/iommu/irq_remapping.h
+++ b/drivers/iommu/irq_remapping.h
@@ -65,8 +65,6 @@ struct irq_remap_ops {
65extern struct irq_remap_ops intel_irq_remap_ops; 65extern struct irq_remap_ops intel_irq_remap_ops;
66extern struct irq_remap_ops amd_iommu_irq_ops; 66extern struct irq_remap_ops amd_iommu_irq_ops;
67 67
68extern void ir_ack_apic_edge(struct irq_data *data);
69
70#else /* CONFIG_IRQ_REMAP */ 68#else /* CONFIG_IRQ_REMAP */
71 69
72#define irq_remapping_enabled 0 70#define irq_remapping_enabled 0