[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <140d2be4-6e26-5e4a-e2f1-689fb47e85fd@linux.intel.com>
Date: Thu, 22 Aug 2019 11:48:06 +0800
From: "Tanwar, Rahul" <rahul.tanwar@...ux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@...el.com>,
Thomas Gleixner <tglx@...utronix.de>
Cc: mingo@...hat.com, bp@...en8.de, hpa@...or.com, tony.luck@...el.com,
x86@...nel.org, alan@...ux.intel.com, rppt@...ux.ibm.com,
linux-kernel@...r.kernel.org, qi-ming.wu@...el.com,
cheol.yong.kim@...el.com, rahul.tanwar@...el.com
Subject: Re: [PATCH] x86/apic: Update virtual irq base for DT/OF based system
as well
Hi Thomas,
On 22/8/2019 12:47 AM, Andy Shevchenko wrote:
>> For DT we can actually avoid that completely. See below.
>>
>> For ACPI not unfortunately as the stupid GSI mapping is hard coded.
> The below works better for my case, so, if you are going with that
> Tested-by: Andy Shevchenko <andriy.shevchenko@...el.com>
>
>
> 8<-------------
> --- a/arch/x86/kernel/apic/io_apic.c
> +++ b/arch/x86/kernel/apic/io_apic.c
> @@ -2438,7 +2438,13 @@ unsigned int arch_dynirq_lower_bound(uns
> * dmar_alloc_hwirq() may be called before setup_IO_APIC(), so use
> * gsi_top if ioapic_dynirq_base hasn't been initialized yet.
> */
> - return ioapic_initialized ? ioapic_dynirq_base : gsi_top;
> + if (!ioapic_initialized)
> + return gsi_top;
> + /*
> + * For DT enabled machines ioapic_dynirq_base is irrelevant and not
> + * updated. So simply return @from if ioapic_dynirq_base == 0.
> + */
> + return ioapic_dynirq_base ? : from;
> }
>
> #ifdef CONFIG_X86_32
I have also tested above and it works fine. In fact, my first patch to
resolve it during internal review was exactly on similar lines. So if
you are going to add above then i will stop following up on this
topic further. Thanks.
Regards,
Rahul
Powered by blists - more mailing lists