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=-8.6 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_SANE_1 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 E54DEC433E1 for ; Tue, 30 Jun 2020 14:04:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BF88F206E9 for ; Tue, 30 Jun 2020 14:04:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593525865; bh=SqVQK1p3HM5Lh8t8VwYGyeSHYFj1rCTiTIyGwW608xs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=IvF3IsUjo1XQFFA4GQpEvwnJDi1BZ9kuYS3JQ5wFLHxHySqkGMqL/TTjgyRL+1MPk 1rAQ9/grB5f0c3wLj13b1BQ1dlN84f6sxpi2YgHjFWOLudf5CxlUumrdmEWLG/AeNi beqi/C7bci19wpDKnCHoYph4f1kNJgf5pa6HByHw= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388402AbgF3OEY (ORCPT ); Tue, 30 Jun 2020 10:04:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:49740 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727796AbgF3OEY (ORCPT ); Tue, 30 Jun 2020 10:04:24 -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 07375206BE; Tue, 30 Jun 2020 14:04:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593525863; bh=SqVQK1p3HM5Lh8t8VwYGyeSHYFj1rCTiTIyGwW608xs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=VC9amz8/vWzYBN4hRZC3Fmfd1OnVrNc3D+bbz2VFBnUOAutjh7xGXV5DKIW1hs9x/ HNYKmJFG5bIzc5eV2VqXVanjn29mwmp5zBt4ERRU0LYhgEJ3p1I8SJ4FHD7aa2ob6H 74dXi4rrFfcqNx5SAki+O5xSv50INVKkNsGBGn1o= Received: by pali.im (Postfix) id C08AA81A; Tue, 30 Jun 2020 16:04:20 +0200 (CEST) Date: Tue, 30 Jun 2020 16:04:20 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Bjorn Helgaas Cc: Thomas Petazzoni , Lorenzo Pieralisi , Andrew Murray , Bjorn Helgaas , Marek =?utf-8?B?QmVow7pu?= , Remi Pommarel , Tomasz Maciej Nowak , Xogium , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] PCI: aardvark: Don't touch PCIe registers if no card connected Message-ID: <20200630140420.7qkuq7wturmaafzf@pali> References: <20200528163809.54f5ldvphrjg3zg3@pali> <20200630135127.GA3414186@bjorn-Precision-5520> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200630135127.GA3414186@bjorn-Precision-5520> User-Agent: NeoMutt/20180716 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 30 June 2020 08:51:27 Bjorn Helgaas wrote: > On Thu, May 28, 2020 at 06:38:09PM +0200, Pali Rohár wrote: > > On Thursday 28 May 2020 11:26:04 Bjorn Helgaas wrote: > > > On Thu, May 28, 2020 at 04:31:41PM +0200, Pali Rohár wrote: > > > > 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. > > > > > > > > Signed-off-by: Pali Rohár > > > > --- > > > > drivers/pci/controller/pci-aardvark.c | 3 +++ > > > > 1 file changed, 3 insertions(+) > > > > > > > > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c > > > > index 90ff291c24f0..53a4cfd7d377 100644 > > > > --- a/drivers/pci/controller/pci-aardvark.c > > > > +++ b/drivers/pci/controller/pci-aardvark.c > > > > @@ -644,6 +644,9 @@ 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 (bus->number != pcie->root_bus_nr && !advk_pcie_link_up(pcie)) > > > > + return false; > > > > > > I don't think this is the right fix. This makes it racy because the > > > link may go down after we call advk_pcie_valid_device() but before we > > > perform the config read. > > > > Yes, it is racy, but I do not think it cause problems. Trying to read > > PCIe registers when device is not connected cause just those timeouts, > > printing error message and increased delay in advk_pcie_wait_pio() due > > to polling loop. This patch reduce unnecessary access to PCIe registers > > when advk_pcie_wait_pio() polling just fail. > > What happens when the device is removed after advk_pcie_link_up() > returns true, but before we actually do the config access? Do you mean to remove device physically at runtime? I was told that our board would crash or issue reset. Removing device from mini PCIe slot without power off is not supported. Anyway, currently we are trying to read from device registers even when no device is connected. So when advk_pcie_link_up() returns true and after that device is not connected (somehow board and kernel would be still alive) I guess that it would behave as without applying this patch. So kernel starts reading from register and would wait until timeout expires. As device is not connected there would be no answer, so kernel print error message to dmesg (same as in commit message) and returns error that read failed. 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=-8.5 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_SANE_1 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 41593C433E0 for ; Tue, 30 Jun 2020 14:06:03 +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 0FBE42072D for ; Tue, 30 Jun 2020 14:06:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="0ZvRb2sU"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="VC9amz8/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0FBE42072D 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:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mAo4kAHir1R9yX4b0AllpwxS0dwVxmZ8M09QeSSum90=; b=0ZvRb2sUzNnPdU/UYb44PZ048 hpAvbbMp88xei0F84iYSw0B6/zZsU/sWnAygo9Zy2I8V77y0tszel5dVX9J/eOiqJ+HgCsNz6JTzn 9jjV1IWjEo8x2RRaA4mFtxKfiwrZcQ4wLFPKDDNoWb6mrMEnURbSFPe6T5s0ESmOT6/xGtSCzYBVd G2z1mZ54oEZnXRI7yEyF/j0EuDnz7roAH4s8wgTR7osk1O8wHhpD/IrQNguqm2U7V79K5heujyjab lzL7qVxDBV0o3QCwpLyM6Pt+lIiKA+90psS2MKqFoFpxeBn/FSbiQ4o57hQcptr2AILD77FL90wgi V4hg3ylTg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jqGsD-00086a-1i; Tue, 30 Jun 2020 14:04:33 +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 1jqGs4-00083e-O3 for linux-arm-kernel@lists.infradead.org; Tue, 30 Jun 2020 14:04:25 +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 07375206BE; Tue, 30 Jun 2020 14:04:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593525863; bh=SqVQK1p3HM5Lh8t8VwYGyeSHYFj1rCTiTIyGwW608xs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=VC9amz8/vWzYBN4hRZC3Fmfd1OnVrNc3D+bbz2VFBnUOAutjh7xGXV5DKIW1hs9x/ HNYKmJFG5bIzc5eV2VqXVanjn29mwmp5zBt4ERRU0LYhgEJ3p1I8SJ4FHD7aa2ob6H 74dXi4rrFfcqNx5SAki+O5xSv50INVKkNsGBGn1o= Received: by pali.im (Postfix) id C08AA81A; Tue, 30 Jun 2020 16:04:20 +0200 (CEST) Date: Tue, 30 Jun 2020 16:04:20 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Bjorn Helgaas Subject: Re: [PATCH] PCI: aardvark: Don't touch PCIe registers if no card connected Message-ID: <20200630140420.7qkuq7wturmaafzf@pali> References: <20200528163809.54f5ldvphrjg3zg3@pali> <20200630135127.GA3414186@bjorn-Precision-5520> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200630135127.GA3414186@bjorn-Precision-5520> User-Agent: NeoMutt/20180716 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: Tomasz Maciej Nowak , Lorenzo Pieralisi , linux-pci@vger.kernel.org, Xogium , linux-kernel@vger.kernel.org, Marek =?utf-8?B?QmVow7pu?= , Remi Pommarel , Thomas Petazzoni , Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, Andrew Murray 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 T24gVHVlc2RheSAzMCBKdW5lIDIwMjAgMDg6NTE6MjcgQmpvcm4gSGVsZ2FhcyB3cm90ZToKPiBP biBUaHUsIE1heSAyOCwgMjAyMCBhdCAwNjozODowOVBNICswMjAwLCBQYWxpIFJvaMOhciB3cm90 ZToKPiA+IE9uIFRodXJzZGF5IDI4IE1heSAyMDIwIDExOjI2OjA0IEJqb3JuIEhlbGdhYXMgd3Jv dGU6Cj4gPiA+IE9uIFRodSwgTWF5IDI4LCAyMDIwIGF0IDA0OjMxOjQxUE0gKzAyMDAsIFBhbGkg Um9ow6FyIHdyb3RlOgo+ID4gPiA+IFdoZW4gdGhlcmUgaXMgbm8gUENJZSBjYXJkIGNvbm5lY3Rl ZCBhbmQgYWR2a19wY2llX3JkX2NvbmYoKSBvcgo+ID4gPiA+IGFkdmtfcGNpZV93cl9jb25mKCkg aXMgY2FsbGVkIGZvciBQQ0kgYnVzIHdoaWNoIGRvZXNuJ3QgYmVsb25nIHRvIGVtdWxhdGVkCj4g PiA+ID4gcm9vdCBicmlkZ2UsIHRoZSBhYXJkdmFyayBkcml2ZXIgdGhyb3dzIHRoZSBmb2xsb3dp bmcgZXJyb3IgbWVzc2FnZToKPiA+ID4gPiAKPiA+ID4gPiAgIGFkdmstcGNpZSBkMDA3MDAwMC5w Y2llOiBjb25maWcgcmVhZC93cml0ZSB0aW1lZCBvdXQKPiA+ID4gPiAKPiA+ID4gPiBPYnZpb3Vz bHkgYWNjZXNzaW5nIFBDSWUgcmVnaXN0ZXJzIG9mIGRpc2Nvbm5lY3RlZCBjYXJkIGlzIG5vdCBw b3NzaWJsZS4KPiA+ID4gPiAKPiA+ID4gPiBFeHRlbmQgY2hlY2sgaW4gYWR2a19wY2llX3ZhbGlk X2RldmljZSgpIGZ1bmN0aW9uIGZvciB2YWxpZGF0aW5nCj4gPiA+ID4gYXZhaWxhYmlsaXR5IG9m IFBDSWUgYnVzLiBJZiBQQ0llIGxpbmsgaXMgZG93biwgdGhlbiB0aGUgZGV2aWNlIGlzIG1hcmtl ZAo+ID4gPiA+IGFzIE5vdCBGb3VuZCBhbmQgdGhlIGRyaXZlciBkb2VzIG5vdCB0cnkgdG8gYWNj ZXNzIHRoZXNlIHJlZ2lzdGVycy4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYWxp IFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgo+ID4gPiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jIHwgMyArKysKPiA+ID4gPiAgMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2ktYWFyZHZhcmsuYwo+ID4gPiA+IGluZGV4IDkwZmYyOTFjMjRmMC4uNTNhNGNmZDdkMzc3IDEw MDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWFhcmR2YXJrLmMK PiA+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCj4gPiA+ ID4gQEAgLTY0NCw2ICs2NDQsOSBAQCBzdGF0aWMgYm9vbCBhZHZrX3BjaWVfdmFsaWRfZGV2aWNl KHN0cnVjdCBhZHZrX3BjaWUgKnBjaWUsIHN0cnVjdCBwY2lfYnVzICpidXMsCj4gPiA+ID4gIAlp ZiAoKGJ1cy0+bnVtYmVyID09IHBjaWUtPnJvb3RfYnVzX25yKSAmJiBQQ0lfU0xPVChkZXZmbikg IT0gMCkKPiA+ID4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gIAo+ID4gPiA+ICsJaWYgKGJ1 cy0+bnVtYmVyICE9IHBjaWUtPnJvb3RfYnVzX25yICYmICFhZHZrX3BjaWVfbGlua191cChwY2ll KSkKPiA+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+IAo+ID4gPiBJIGRvbid0IHRoaW5rIHRo aXMgaXMgdGhlIHJpZ2h0IGZpeC4gIFRoaXMgbWFrZXMgaXQgcmFjeSBiZWNhdXNlIHRoZQo+ID4g PiBsaW5rIG1heSBnbyBkb3duIGFmdGVyIHdlIGNhbGwgYWR2a19wY2llX3ZhbGlkX2RldmljZSgp IGJ1dCBiZWZvcmUgd2UKPiA+ID4gcGVyZm9ybSB0aGUgY29uZmlnIHJlYWQuCj4gPiAKPiA+IFll cywgaXQgaXMgcmFjeSwgYnV0IEkgZG8gbm90IHRoaW5rIGl0IGNhdXNlIHByb2JsZW1zLiBUcnlp bmcgdG8gcmVhZAo+ID4gUENJZSByZWdpc3RlcnMgd2hlbiBkZXZpY2UgaXMgbm90IGNvbm5lY3Rl ZCBjYXVzZSBqdXN0IHRob3NlIHRpbWVvdXRzLAo+ID4gcHJpbnRpbmcgZXJyb3IgbWVzc2FnZSBh bmQgaW5jcmVhc2VkIGRlbGF5IGluIGFkdmtfcGNpZV93YWl0X3BpbygpIGR1ZQo+ID4gdG8gcG9s bGluZyBsb29wLiBUaGlzIHBhdGNoIHJlZHVjZSB1bm5lY2Vzc2FyeSBhY2Nlc3MgdG8gUENJZSBy ZWdpc3RlcnMKPiA+IHdoZW4gYWR2a19wY2llX3dhaXRfcGlvKCkgcG9sbGluZyBqdXN0IGZhaWwu Cj4gCj4gV2hhdCBoYXBwZW5zIHdoZW4gdGhlIGRldmljZSBpcyByZW1vdmVkIGFmdGVyIGFkdmtf cGNpZV9saW5rX3VwKCkKPiByZXR1cm5zIHRydWUsIGJ1dCBiZWZvcmUgd2UgYWN0dWFsbHkgZG8g dGhlIGNvbmZpZyBhY2Nlc3M/CgpEbyB5b3UgbWVhbiB0byByZW1vdmUgZGV2aWNlIHBoeXNpY2Fs bHkgYXQgcnVudGltZT8gSSB3YXMgdG9sZCB0aGF0IG91cgpib2FyZCB3b3VsZCBjcmFzaCBvciBp c3N1ZSByZXNldC4gUmVtb3ZpbmcgZGV2aWNlIGZyb20gbWluaSBQQ0llIHNsb3QKd2l0aG91dCBw b3dlciBvZmYgaXMgbm90IHN1cHBvcnRlZC4KCkFueXdheSwgY3VycmVudGx5IHdlIGFyZSB0cnlp bmcgdG8gcmVhZCBmcm9tIGRldmljZSByZWdpc3RlcnMgZXZlbiB3aGVuCm5vIGRldmljZSBpcyBj b25uZWN0ZWQuIFNvIHdoZW4gYWR2a19wY2llX2xpbmtfdXAoKSByZXR1cm5zIHRydWUgYW5kCmFm dGVyIHRoYXQgZGV2aWNlIGlzIG5vdCBjb25uZWN0ZWQgKHNvbWVob3cgYm9hcmQgYW5kIGtlcm5l bCB3b3VsZCBiZQpzdGlsbCBhbGl2ZSkgSSBndWVzcyB0aGF0IGl0IHdvdWxkIGJlaGF2ZSBhcyB3 aXRob3V0IGFwcGx5aW5nIHRoaXMKcGF0Y2guIFNvIGtlcm5lbCBzdGFydHMgcmVhZGluZyBmcm9t IHJlZ2lzdGVyIGFuZCB3b3VsZCB3YWl0IHVudGlsCnRpbWVvdXQgZXhwaXJlcy4gQXMgZGV2aWNl IGlzIG5vdCBjb25uZWN0ZWQgdGhlcmUgd291bGQgYmUgbm8gYW5zd2VyLApzbyBrZXJuZWwgcHJp bnQgZXJyb3IgbWVzc2FnZSB0byBkbWVzZyAoc2FtZSBhcyBpbiBjb21taXQgbWVzc2FnZSkgYW5k CnJldHVybnMgZXJyb3IgdGhhdCByZWFkIGZhaWxlZC4KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK