Re: [Bugfix] x86, irq: Fix a regression caused by commit b5dc8e6c21e7

Alex Deucher
2015-08-17T21:02:59Z

On Sun, Aug 9, 2015 at 4:15 AM, Jiang Liu <jiang.liu@linux.intel.com> wrote:
> Alex Deucher, Mark Rustad and Alexander Holler reported a regression
> with the latest v4.2-rc4 kernel, which breaks some SATA controllers.
> With multi-MSI capable SATA controllers, only the first port works,
> all other ports times out when executing SATA commands. This regression
> bisects to 52f518a3a7c2 ("x86/MSI: Use hierarchical irqdomains to manage
> MSI interrupts"), but it's not the root cause, it just triggers a bug
> caused by b5dc8e6c21e7 ("x86/irq: Use hierarchical irqdomain to manage
> CPU interrupt vectors").
>
> With this patch applied, the affected SATA controllers work as expected.

I don't see this upstream yet. Any chance this will make 4.2?

Alex

>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> Reported-by: Alex Deucher <alexdeucher@gmail.com>
> Reported-by: Mark Rustad <mrustad@gmail.com>
> Reported-by: Alexander Holler <holler@ahsoftware.de>
> ---
> Hi Alex, Mark and Alexandler,
> Sorry for the long delay to root cause this regression, it's
> really annoying. Could you please help test this patch against the
> latest v4.2-rcx?
> Thanks!
> Gerry
> ---
> arch/x86/kernel/apic/vector.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
> index f813261d9740..2683f36e4e0a 100644
> --- a/arch/x86/kernel/apic/vector.c
> +++ b/arch/x86/kernel/apic/vector.c
> @@ -322,7 +322,7 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq,
> irq_data->chip = &lapic_controller;
> irq_data->chip_data = data;
> irq_data->hwirq = virq + i;
> - err = assign_irq_vector_policy(virq, irq_data->node, data,
> + err = assign_irq_vector_policy(virq + i, irq_data->node, data,
> info);
> if (err)
> goto error;
> --
> 1.7.10.4
>