From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss-mx-na.foss.arm.com ([217.140.108.86]:35407 "EHLO foss-mx-na.foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754559AbaKTQby (ORCPT ); Thu, 20 Nov 2014 11:31:54 -0500 Message-ID: <546E1771.4030201@arm.com> Date: Thu, 20 Nov 2014 16:31:45 +0000 From: Marc Zyngier MIME-Version: 1.0 To: Bjorn Helgaas , Yijing Wang CC: Thomas Gleixner , "linux-arm-kernel@lists.infradead.org" , linux-pci@vger.kernel.org, "linux-kernel@vger.kernel.org" , Jiang Liu , Will Deacon , Catalin Marinas Subject: Removal of bus->msi assignment breaks MSI with stacked domains Content-Type: text/plain; charset=utf-8 Sender: linux-pci-owner@vger.kernel.org List-ID: Bjorn, Yijing, I've just realized that patch c167caf8d174 (PCI/MSI: Remove useless bus->msi assignment) completely breaks MSI on arm64 when using the new MSI stacked domain: This patch relies on architectures to implement either pcibios_msi_controller() or arch_setup_msi_irq(). It turns out that with stacked domains, none of this is actually necessary, as long as you can access to the msi_controller. And everything was fine until this patch came around (and managed to test on a system where the PCI devices are not directly attached to the root bus). Of course, everything now breaks, as we cannot get to the MSI controller (which contains the domain we allocate the MSIs from). In short, this patch breaks an important feature on which arm64 relies, and I believe this patch should be reverted ASAP. Thanks, M. -- Jazz is not dead. It just smells funny... From mboxrd@z Thu Jan 1 00:00:00 1970 From: marc.zyngier@arm.com (Marc Zyngier) Date: Thu, 20 Nov 2014 16:31:45 +0000 Subject: Removal of bus->msi assignment breaks MSI with stacked domains Message-ID: <546E1771.4030201@arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Bjorn, Yijing, I've just realized that patch c167caf8d174 (PCI/MSI: Remove useless bus->msi assignment) completely breaks MSI on arm64 when using the new MSI stacked domain: This patch relies on architectures to implement either pcibios_msi_controller() or arch_setup_msi_irq(). It turns out that with stacked domains, none of this is actually necessary, as long as you can access to the msi_controller. And everything was fine until this patch came around (and managed to test on a system where the PCI devices are not directly attached to the root bus). Of course, everything now breaks, as we cannot get to the MSI controller (which contains the domain we allocate the MSIs from). In short, this patch breaks an important feature on which arm64 relies, and I believe this patch should be reverted ASAP. Thanks, M. -- Jazz is not dead. It just smells funny...