Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932943AbbHIIMz (ORCPT ); Sun, 9 Aug 2015 04:12:55 -0400 Received: from mga01.intel.com ([192.55.52.88]:57355 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932858AbbHIIMp (ORCPT ); Sun, 9 Aug 2015 04:12:45 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,638,1432623600"; d="scan'208";a="779812979" From: Jiang Liu To: Thomas Gleixner , Alexander Holler , Mark Rustad , Alex Deucher , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Jiang Liu Cc: Tony Luck , linux-kernel@vger.kernel.org Subject: [Bugfix] x86, irq: Fix a regression caused by commit b5dc8e6c21e7 Date: Sun, 9 Aug 2015 16:15:20 +0800 Message-Id: <1439108128-18441-1-git-send-email-jiang.liu@linux.intel.com> X-Mailer: git-send-email 1.7.10.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1902 Lines: 47 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. Signed-off-by: Jiang Liu Reported-by: Alex Deucher Reported-by: Mark Rustad Reported-by: Alexander Holler --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/