x86/ioapic: Return suitable error code in mp_map_gsi_to_irq()
PATCH 1/1 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 codes.
--- arch/x86/kernel/apic/io_apic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/x86/kernel/apic/io_apic.c +2 -2
@@ -1107,12 +1107,12 @@ int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, struct irq_alloc_info *info) ioapic =mp_find_ioapic (gsi);if (ioapic <0 ) -return -1 ; +return -EINVAL ; pin =mp_find_ioapic_pin (ioapic, gsi); idx =find_irq_entry (ioapic, pin, mp_INT);if ((flags &IOAPIC_MAP_CHECK ) && idx <0 ) -return -1 ; +return -ENODEV ;return mp_map_pin_to_irq (gsi, idx, ioapic, pin, flags, info); }
Signature · 1 line
2.11.0
Quoted 27 lines · Andy Shevchenko
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 codes.
Signed-off-by Andy Shevchenko <[email protected]>---
arch/x86/kernel/apic/io_apic.c | 4 ++--1 file changed, 2 insertions(+), 2 deletions(-)arch/x86/kernel/apic/io_apic.c +0
-0@@ -1107,12 +1107,12 @@ int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, struct irq_alloc_info *info)
ioapic =mp_find_ioapic(gsi);
if (ioapic < 0)arch/x86/kernel/apic/io_apic.c +1
-1-return -1 ; +return -EINVAL ;
pin =mp_find_ioapic_pin(ioapic, gsi); idx =find_irq_entry(ioapic, pin, mp_INT); if ((flags &IOAPIC_MAP_CHECK) && idx < 0)
arch/x86/kernel/apic/io_apic.c
Quoted 2 lines
arch/x86/kernel/apic/io_apic.c +1
-1-return -1 ; +return -ENODEV ;
Looking one more time...
Or should it be other way around: -ENODEV (ioapic < 0), -EINVAL (here)?
Quoted 3 lines
returnmp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info); }
Signature · 2 lines
Andy Shevchenko <[email protected]> Intel Finland Oy
Quoted 25 lines · Andy Shevchenko
Quoted 24 lines · Andy Shevchenko
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 codes.
Signed-off-by Andy Shevchenko <[email protected]>---
arch/x86/kernel/apic/io_apic.c | 4 ++--1 file changed, 2 insertions(+), 2 deletions(-)arch/x86/kernel/apic/io_apic.c +0
-0@@ -1107,12 +1107,12 @@ int mp_map_gsi_to_irq(u32 gsi, unsigned int flags, struct irq_alloc_info *info)
ioapic =mp_find_ioapic(gsi);
if (ioapic < 0)arch/x86/kernel/apic/io_apic.c +1
-1-return -1 ; +return -EINVAL ;
Quoted 8 lines
arch/x86/kernel/apic/io_apic.c
Quoted 5 lines
pin =
mp_find_ioapic_pin(ioapic, gsi); idx =find_irq_entry(ioapic, pin, mp_INT); if ((flags &IOAPIC_MAP_CHECK) && idx < 0)arch/x86/kernel/apic/io_apic.c +1
-1-return -1 ; +return -ENODEV ;Looking one more time...
Or should it be other way around:-ENODEV(ioapic < 0),-EINVAL(here)?
ENODEV for both cases I think,