diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2017-01-19 14:24:22 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-01-20 04:07:41 -0500 |
commit | 358e96deaed3330a59d9dd6a7e419f4da08d6497 (patch) | |
tree | a59d642ea2dc4f155e0619a35372ebdc57c6305f /arch/x86/kernel/apic/io_apic.c | |
parent | 81a71176740624ef3b1bff50c51e7b4aa187353d (diff) |
x86/ioapic: Return suitable error code in mp_map_gsi_to_irq()
mp_map_gsi_to_irq() in some cases might return legacy -1, which would be
wrongly interpreted as -EPERM.
Correct those cases to return proper error code.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: http://lkml.kernel.org/r/20170119192425.189899-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 945e512a112a..f62c38d325da 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -1107,12 +1107,12 @@ int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, struct irq_alloc_info *info) | |||
1107 | 1107 | ||
1108 | ioapic = mp_find_ioapic(gsi); | 1108 | ioapic = mp_find_ioapic(gsi); |
1109 | if (ioapic < 0) | 1109 | if (ioapic < 0) |
1110 | return -1; | 1110 | return -ENODEV; |
1111 | 1111 | ||
1112 | pin = mp_find_ioapic_pin(ioapic, gsi); | 1112 | pin = mp_find_ioapic_pin(ioapic, gsi); |
1113 | idx = find_irq_entry(ioapic, pin, mp_INT); | 1113 | idx = find_irq_entry(ioapic, pin, mp_INT); |
1114 | if ((flags & IOAPIC_MAP_CHECK) && idx < 0) | 1114 | if ((flags & IOAPIC_MAP_CHECK) && idx < 0) |
1115 | return -1; | 1115 | return -ENODEV; |
1116 | 1116 | ||
1117 | return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info); | 1117 | return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info); |
1118 | } | 1118 | } |