From patchwork Thu Sep 17 17:17:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Zyngier X-Patchwork-Id: 518978 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 142A71416D5 for ; Fri, 18 Sep 2015 03:19:26 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id E60B51A2C04 for ; Fri, 18 Sep 2015 03:19:25 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by lists.ozlabs.org (Postfix) with ESMTP id 986241A0F12 for ; Fri, 18 Sep 2015 03:17:43 +1000 (AEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id BC46D59E; Thu, 17 Sep 2015 10:17:42 -0700 (PDT) Received: from [10.1.209.148] (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0BDAB3F25F; Thu, 17 Sep 2015 10:17:38 -0700 (PDT) Message-ID: <55FAF5B1.1030401@arm.com> Date: Thu, 17 Sep 2015 18:17:37 +0100 From: Marc Zyngier Organization: ARM Ltd User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: Bjorn Helgaas Subject: Re: [PATCH v4 0/4] PCI: arm64/powerpc: Fix parsing of linux, pci-probe-only References: <1441385411-7624-1-git-send-email-marc.zyngier@arm.com> <20150917153009.GH25767@google.com> In-Reply-To: <20150917153009.GH25767@google.com> X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Lorenzo Pieralisi , linux-pci@vger.kernel.org, Will Deacon , Alexander Graf , linux-kernel@vger.kernel.org, Rob Herring , Paul Mackerras , Suravee Suthikulpanit , Grant Likely , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" On 17/09/15 16:30, Bjorn Helgaas wrote: > On Fri, Sep 04, 2015 at 05:50:07PM +0100, Marc Zyngier wrote: >> The pci-host-generic driver parses the linux,pci-probe-only property, >> and assumes that it will have a boolean parameter. >> >> Turns out that the Seattle DTS file has a naked "linux,pci-probe-only" >> property, which leads to the driver dereferencing some unsuspecting >> memory location. Nothing really bad happens (we end up reading some >> other bit of DT, fortunately), but that not a reason to keep it this >> way. Turns out that the Pseries code (where this code was lifted from) >> may suffer from the same issue. >> >> The first patch introduces a common (and fixed) version of that check >> that can be used by drivers and architectures that require it. The two >> following patches change the pci-host-generic driver and the powerpc >> code to use it. >> >> Finally, the bad property is removed from the Seatle DTS, because it >> is simply not necessary (it actually prevents me from using SR-IOV, >> which otherwise runs fine without the probe-only thing). >> >> This has been tested on the offending Seattle board. >> >> * From v3: >> - Restrict the property lookup to /chosen (Rob) >> - Acked-by on patch #4 from Suravee >> - I swear this is the last time I rework these patches! ;-) >> >> * From v2: >> - Use of_property_read_u32 to safely read the property (Rob) >> - Add a log message to indicate when we enable probe-only >> (probably quite useful for debugging) >> >> * From v1: >> - Consolidate the parsing in of_pci.c (Bjorn) >> >> Marc Zyngier (4): >> of/pci: Add of_pci_check_probe_only to parse "linux,pci-probe-only" >> PCI: pci-host-generic: Fix lookup of linux,pci-probe-only property >> powerpc: PCI: Fix lookup of linux,pci-probe-only property >> arm64: dts: Drop linux,pci-probe-only from the Seattle DTS >> >> arch/arm64/boot/dts/amd/amd-overdrive.dts | 1 - >> arch/powerpc/platforms/pseries/setup.c | 14 ++------------ >> drivers/of/of_pci.c | 28 ++++++++++++++++++++++++++++ >> drivers/pci/host/pci-host-generic.c | 9 +-------- >> include/linux/of_pci.h | 3 +++ >> 5 files changed, 34 insertions(+), 21 deletions(-) > > Applied with the comment tweak and acks to pci/host-generic for v4.4, > thanks! Turns out that the 01.org infrastructure has picked up on a compilation bug with randconfig. The following patch seems to fix it and should be applied on the first patch: Sorry for the annoyance. M. diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c index 485d625..2da5abc 100644 --- a/drivers/of/of_pci.c +++ b/drivers/of/of_pci.c @@ -6,6 +6,8 @@ #include #include +#include + static inline int __of_pci_pci_compare(struct device_node *node, unsigned int data) {