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: 7209221 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 151199F39B for ; Thu, 17 Sep 2015 17:17:46 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 275D2207BB for ; Thu, 17 Sep 2015 17:17:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 247DC207A6 for ; Thu, 17 Sep 2015 17:17:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751849AbbIQRRn (ORCPT ); Thu, 17 Sep 2015 13:17:43 -0400 Received: from foss.arm.com ([217.140.101.70]:42599 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751310AbbIQRRm (ORCPT ); Thu, 17 Sep 2015 13:17:42 -0400 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 CC: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Will Deacon , Suravee Suthikulpanit , Lorenzo Pieralisi , Grant Likely , Rob Herring , Alexander Graf , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org 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> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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) {