Re: [PATCH 1/1] x86/ioapic: Return suitable error code in mp_map_gsi_to_irq()

From: Andy Shevchenko
Date: Mon Jan 16 2017 - 12:56:30 EST


On Mon, 2017-01-16 at 15:30 +0200, Andy Shevchenko wrote:
> 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 <andriy.shevchenko@xxxxxxxxxxxxxxx>
> ---
> Âarch/x86/kernel/apic/io_apic.c | 4 ++--
> Â1 file 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..99cee86b7d17 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)
> Â
> Â 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;

Looking one more time...
Or should it be other way around: -ENODEV (ioapic < 0), -EINVAL (here)?

> Â
> Â return mp_map_pin_to_irq(gsi, idx, ioapic, pin, flags, info);
> Â}

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy