From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3E47C433E1 for ; Thu, 2 Jul 2020 08:31:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9B6DC20899 for ; Thu, 2 Jul 2020 08:31:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593678687; bh=QGpdAyRMoNsVdtVoCbNXP1VWmICFLyANXqWYO+rUTTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=F5lllI4EsIaaC/V1Va3oeiOuJJJlqdXzt9WlRmgmf1j/i44QfJWBM5y8AAmY28pQb cO5/FAmEOMIlMs0yBzS0YU/QxRLwEyIjZzTgMHqVIaEHtaFVoPhmu+AQIEtW4SDll8 0RyjB3xki52q2gMJaeo5ojq4HtVW6y9dJnmmAhr8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726924AbgGBIb0 (ORCPT ); Thu, 2 Jul 2020 04:31:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:55754 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726292AbgGBIbZ (ORCPT ); Thu, 2 Jul 2020 04:31:25 -0400 Received: from pali.im (pali.im [31.31.79.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 08AE8206A1; Thu, 2 Jul 2020 08:31:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593678685; bh=QGpdAyRMoNsVdtVoCbNXP1VWmICFLyANXqWYO+rUTTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z1epipgTDmBHHxSLs1kheGHs/9TjzD4Pzu+GyUKLJ143corYoaQnOjaV6M4AZG8Cl yaZqpViNj9UGoHkMZv/XMoDNCfiECTq00dmdP1Qkv3FUTuZgvkP26Ki5JBNnQbBpYT hGB4gfDrBgh7bdE3oezH9cl61u67W2SDkluwi/4g= Received: by pali.im (Postfix) id 2A905E92; Thu, 2 Jul 2020 10:31:23 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Thomas Petazzoni , Lorenzo Pieralisi , Andrew Murray , Bjorn Helgaas , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Remi Pommarel , Tomasz Maciej Nowak , Xogium Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v3] PCI: aardvark: Don't touch PCIe registers if no card connected Date: Thu, 2 Jul 2020 10:30:36 +0200 Message-Id: <20200702083036.12230-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200528143141.29956-1-pali@kernel.org> References: <20200528143141.29956-1-pali@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When there is no PCIe card connected and advk_pcie_rd_conf() or advk_pcie_wr_conf() is called for PCI bus which doesn't belong to emulated root bridge, the aardvark driver throws the following error message: advk-pcie d0070000.pcie: config read/write timed out Obviously accessing PCIe registers of disconnected card is not possible. Extend check in advk_pcie_valid_device() function for validating availability of PCIe bus. If PCIe link is down, then the device is marked as Not Found and the driver does not try to access these registers. This is just an optimization to prevent accessing PCIe registers when card is disconnected. Trying to access PCIe registers of disconnected card does not cause any crash, kernel just needs to wait for a timeout. So if card disappear immediately after checking for PCIe link (before accessing PCIe registers), it does not cause any problems. Signed-off-by: Pali Rohár --- Changes in V3: * Add comment to the code Changes in V2: * Update commit message, mention that this is optimization --- drivers/pci/controller/pci-aardvark.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index 90ff291c24f0..d18f389b36a1 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -644,6 +644,13 @@ static bool advk_pcie_valid_device(struct advk_pcie *pcie, struct pci_bus *bus, if ((bus->number == pcie->root_bus_nr) && PCI_SLOT(devfn) != 0) return false; + /* + * If the link goes down after we check for link-up, nothing bad + * happens but the config access times out. + */ + if (bus->number != pcie->root_bus_nr && !advk_pcie_link_up(pcie)) + return false; + return true; } -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E000C433DF for ; Thu, 2 Jul 2020 08:32:35 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2FFC9206A1 for ; Thu, 2 Jul 2020 08:32:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="slHC1fn2"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z1epipgT" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2FFC9206A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=8ktEz1iP7LSHH3gTZht9xnMu6ZBL00MJNU2E3ycTS14=; b=slHC1fn2/0QbMjwBcilBIngaM jdHltCkW65fkCJ1WcZbkpLyAC+sgN7krf9QxFDxhliCFwSHk2IogFkhv6e7lfk9MIL7A+FMO1lPdx ZOAq08Ggf9XrRVeCBWpHx0DXW7I9WGIlH4+psUA1SH1pWk4j8Zdi5OVmwInUhs9vWhg6rvWNyk7mc evBPg6PffMG2J1g3oqOvV3MG6cbBCRvJ8+4I7CPwkFWttigvqlGoPqO9dGn8LoVfbruJhrZ1fci8q zfT3T2xrhyFBEDN4KCQeufdXc1EQuqadQg/AYUt6uyOxqslKIFa9fPoGVTavaIeo+TPfiyzG4t5Zs 2NsJBVfXQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqucx-00018i-JK; Thu, 02 Jul 2020 08:31:27 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqucv-000182-Q0 for linux-arm-kernel@lists.infradead.org; Thu, 02 Jul 2020 08:31:26 +0000 Received: from pali.im (pali.im [31.31.79.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 08AE8206A1; Thu, 2 Jul 2020 08:31:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593678685; bh=QGpdAyRMoNsVdtVoCbNXP1VWmICFLyANXqWYO+rUTTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z1epipgTDmBHHxSLs1kheGHs/9TjzD4Pzu+GyUKLJ143corYoaQnOjaV6M4AZG8Cl yaZqpViNj9UGoHkMZv/XMoDNCfiECTq00dmdP1Qkv3FUTuZgvkP26Ki5JBNnQbBpYT hGB4gfDrBgh7bdE3oezH9cl61u67W2SDkluwi/4g= Received: by pali.im (Postfix) id 2A905E92; Thu, 2 Jul 2020 10:31:23 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Thomas Petazzoni , Lorenzo Pieralisi , Andrew Murray , Bjorn Helgaas , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Remi Pommarel , Tomasz Maciej Nowak , Xogium Subject: [PATCH v3] PCI: aardvark: Don't touch PCIe registers if no card connected Date: Thu, 2 Jul 2020 10:30:36 +0200 Message-Id: <20200702083036.12230-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200528143141.29956-1-pali@kernel.org> References: <20200528143141.29956-1-pali@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200702_043125_950358_1B6654ED X-CRM114-Status: GOOD ( 14.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org V2hlbiB0aGVyZSBpcyBubyBQQ0llIGNhcmQgY29ubmVjdGVkIGFuZCBhZHZrX3BjaWVfcmRfY29u ZigpIG9yCmFkdmtfcGNpZV93cl9jb25mKCkgaXMgY2FsbGVkIGZvciBQQ0kgYnVzIHdoaWNoIGRv ZXNuJ3QgYmVsb25nIHRvIGVtdWxhdGVkCnJvb3QgYnJpZGdlLCB0aGUgYWFyZHZhcmsgZHJpdmVy IHRocm93cyB0aGUgZm9sbG93aW5nIGVycm9yIG1lc3NhZ2U6CgogIGFkdmstcGNpZSBkMDA3MDAw MC5wY2llOiBjb25maWcgcmVhZC93cml0ZSB0aW1lZCBvdXQKCk9idmlvdXNseSBhY2Nlc3Npbmcg UENJZSByZWdpc3RlcnMgb2YgZGlzY29ubmVjdGVkIGNhcmQgaXMgbm90IHBvc3NpYmxlLgoKRXh0 ZW5kIGNoZWNrIGluIGFkdmtfcGNpZV92YWxpZF9kZXZpY2UoKSBmdW5jdGlvbiBmb3IgdmFsaWRh dGluZwphdmFpbGFiaWxpdHkgb2YgUENJZSBidXMuIElmIFBDSWUgbGluayBpcyBkb3duLCB0aGVu IHRoZSBkZXZpY2UgaXMgbWFya2VkCmFzIE5vdCBGb3VuZCBhbmQgdGhlIGRyaXZlciBkb2VzIG5v dCB0cnkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycy4KClRoaXMgaXMganVzdCBhbiBvcHRpbWl6 YXRpb24gdG8gcHJldmVudCBhY2Nlc3NpbmcgUENJZSByZWdpc3RlcnMgd2hlbiBjYXJkCmlzIGRp c2Nvbm5lY3RlZC4gVHJ5aW5nIHRvIGFjY2VzcyBQQ0llIHJlZ2lzdGVycyBvZiBkaXNjb25uZWN0 ZWQgY2FyZCBkb2VzCm5vdCBjYXVzZSBhbnkgY3Jhc2gsIGtlcm5lbCBqdXN0IG5lZWRzIHRvIHdh aXQgZm9yIGEgdGltZW91dC4gU28gaWYgY2FyZApkaXNhcHBlYXIgaW1tZWRpYXRlbHkgYWZ0ZXIg Y2hlY2tpbmcgZm9yIFBDSWUgbGluayAoYmVmb3JlIGFjY2Vzc2luZyBQQ0llCnJlZ2lzdGVycyks IGl0IGRvZXMgbm90IGNhdXNlIGFueSBwcm9ibGVtcy4KClNpZ25lZC1vZmYtYnk6IFBhbGkgUm9o w6FyIDxwYWxpQGtlcm5lbC5vcmc+CgotLS0KQ2hhbmdlcyBpbiBWMzoKKiBBZGQgY29tbWVudCB0 byB0aGUgY29kZQpDaGFuZ2VzIGluIFYyOgoqIFVwZGF0ZSBjb21taXQgbWVzc2FnZSwgbWVudGlv biB0aGF0IHRoaXMgaXMgb3B0aW1pemF0aW9uCi0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2ktYWFyZHZhcmsuYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMgYi9k cml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCmluZGV4IDkwZmYyOTFjMjRmMC4u ZDE4ZjM4OWIzNmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJk dmFyay5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMKQEAgLTY0 NCw2ICs2NDQsMTMgQEAgc3RhdGljIGJvb2wgYWR2a19wY2llX3ZhbGlkX2RldmljZShzdHJ1Y3Qg YWR2a19wY2llICpwY2llLCBzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCWlmICgoYnVzLT5udW1iZXIg PT0gcGNpZS0+cm9vdF9idXNfbnIpICYmIFBDSV9TTE9UKGRldmZuKSAhPSAwKQogCQlyZXR1cm4g ZmFsc2U7CiAKKwkvKgorCSAqIElmIHRoZSBsaW5rIGdvZXMgZG93biBhZnRlciB3ZSBjaGVjayBm b3IgbGluay11cCwgbm90aGluZyBiYWQKKwkgKiBoYXBwZW5zIGJ1dCB0aGUgY29uZmlnIGFjY2Vz cyB0aW1lcyBvdXQuCisJICovCisJaWYgKGJ1cy0+bnVtYmVyICE9IHBjaWUtPnJvb3RfYnVzX25y ICYmICFhZHZrX3BjaWVfbGlua191cChwY2llKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJcmV0dXJu IHRydWU7CiB9CiAKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1r ZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK