Received: by 2002:a05:6830:16d2:b0:61c:ac69:ca1b with SMTP id l18csp2180037otr; Mon, 25 Jul 2022 09:11:07 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sPtV8c6F/Dn3rqeYExnIPpwUuQsRlU59zf8j9Bt7IbZzUxnT6xrhnDlNRMWiWxSFpaGU4X X-Received: by 2002:a63:2486:0:b0:412:9de2:eb49 with SMTP id k128-20020a632486000000b004129de2eb49mr11709453pgk.224.1658765466650; Mon, 25 Jul 2022 09:11:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658765466; cv=none; d=google.com; s=arc-20160816; b=Q3hPzYg8/tA2ZZsXAgqWZj4sG0dEhJkK/tz51flx8IDC/Az9XhhPvWP9KsjTMiBl5u 85djy6h328BqQsVwCz1MJPUvEAQbAED3CQdnURyeFtLYo1KjWFle3DYfb9R2qyFyN940 awMfkstiLiNrfVK7n9FYcRezV7VUcHM2wYvrMySTaFzieTYAqfM8gDpNkhmmAPypSroR UzYAdhsv5XFs97fZTlEMMmFqL0q5Hfd8qqC+7FYKN16PWhXGRW68rbYopHgkq/MxW/Uc HqyzEQWLS7UVeb92hGnojTCY4C3QRKVmXGvhJCMOTN6Qc09/ZLeWqAhxfPYbAo3tIYko TT/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=JKqeLialV+6vbEP9iLh1rw+b+hmjByPHU1zMv6k/ebc=; b=C9JA3PSOLQNg+2mz7hG87FN1JfKzUXdS8Cef2u0t06VVxbiFUe1T+EU7/fTwEKNFk3 4ig6fGLLU0G/9NLY3yUb6oaXG4k0oQkG4x960rdn0hjXu0h+cd/D3NEung4E+kDL5eSC OFvk5BkpcstY8U/AjW0Xzr5cxy5eSzFw8KHP5Tlayt5n9/1Qtio3GjzkQgZSGbOgIkFN woESc2LOxkzV1PD2qL9tobxKfH0XX8uE60ovvvBv+ZS/A1NnwnKjMSzdiGerYRJEzxXL zPo7cc0iuVFkxWNjLmqE0Mo9i0D2aAKzqNbXhixN1PpS90dQT08OJh7lWwWzQL6qCeLr V2rg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=3zsZRztK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ip4-20020a17090b314400b001f2d848e960si1307848pjb.84.2022.07.25.09.10.50; Mon, 25 Jul 2022 09:11:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=3zsZRztK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235738AbiGYQCX (ORCPT + 99 others); Mon, 25 Jul 2022 12:02:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235509AbiGYQCW (ORCPT ); Mon, 25 Jul 2022 12:02:22 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32B8E12745 for ; Mon, 25 Jul 2022 09:02:21 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id r8so2443754plh.8 for ; Mon, 25 Jul 2022 09:02:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JKqeLialV+6vbEP9iLh1rw+b+hmjByPHU1zMv6k/ebc=; b=3zsZRztKOEhwhcwxTyuAJc8jmK7Yd5DM5WDlQ8uNoCD0B0JdzO0Zr6i0fvzBbIeHGL K1J9803VZkOtPHjBJjT4QvcPcrBqPmlyBibQFNfoLnJL2nH/8cmJZUl6jIbQx7NGbPNN 08+Ll+QxTbHmmBtibJ4KKjfXAbYDVI3PjoT0djdSDPSnUr00wKWUXUem3GEA9s+0sqso vpZFIY0eOy38/uhvApzUMyDSDhHH3jPQ1VTXer2Cyum9Ff5GijNMSLUXAyVfmk/nlRqL c0WLgAt1NLkoXArDAkcdqPEZWBzIV/RYls6whvzrjgsVYeCHBq/VtW9q21vfsycSgx3Y CQZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=JKqeLialV+6vbEP9iLh1rw+b+hmjByPHU1zMv6k/ebc=; b=XEPNXrirSWRsfqYdTGapnPlZ5+z8EWdIR2JIE0daA5qRRM21S4WQ4IwGpPOh3uQnqM TrVKRylJ6F+60QMrWrn6cYJY0JIQgluYbr+qMSIJCCHKYeYR5sOK0CG/Afay2FbeeaPW hEBLh6IM6JHPi4vf8MXEhuWo08ejzX2dw/+dWD1A7SEfZHz8WsFA2XrnlwdW5LPha8py C+OoNwKft0U80pJvfpKiNvkc5+oriJECvZlJOaR9OEY8kpcjHyxkS7gM6xEVDuKhPPsO +wE9Q4wsBDCJhYTcmy64UG0bqmq8aOIITDyA+NbNzQfrAftFLKBmRgEosdkLCxuEeSc6 ijmQ== X-Gm-Message-State: AJIora/1CXIJQSw8NAhNcGgxl56mfLrshtuKIvLN2x/0HqbzH6JQ2tU5 REc3yjKqRnCNDOtXxQRjqAuUeQ== X-Received: by 2002:a17:90b:3ec5:b0:1f0:3986:4502 with SMTP id rm5-20020a17090b3ec500b001f039864502mr15647381pjb.6.1658764940683; Mon, 25 Jul 2022 09:02:20 -0700 (PDT) Received: from C02F63J9MD6R.bytedance.net ([61.120.150.78]) by smtp.gmail.com with ESMTPSA id o6-20020a1709026b0600b0015e8d4eb2easm9273441plk.308.2022.07.25.09.02.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Jul 2022 09:02:19 -0700 (PDT) From: Zhuo Chen To: ruscur@russell.cc, oohall@gmail.com, bhelgaas@google.com Cc: chenzhuo.1@bytedance.com, lukas@wunner.de, jan.kiszka@siemens.com, stuart.w.hayes@gmail.com, linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] PCI/ERR: Use pcie_aer_is_native() to judge whether OS owns AER Date: Tue, 26 Jul 2022 00:01:31 +0800 Message-Id: <20220725160131.83687-1-chenzhuo.1@bytedance.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After commit 7d7cbeaba5b7 ("PCI/ERR: Clear status of the reporting device"), the AER status of the device that reported the error rather than the first downstream port is cleared. So the problem in commit aa344bc8b727 ("PCI/ERR: Clear AER status only when we control AER") is no longer existent, and we change to use pcie_aer_is_native() here. pci_aer_clear_nonfatal_status() already has pcie_aer_is_native(), so we move pci_aer_clear_nonfatal_status() out of pcie_aer_is_native(). Replace statements that judge whether OS owns AER in get_port_device_capability() with pcie_aer_is_native(). Signed-off-by: Zhuo Chen --- drivers/pci/pcie/err.c | 12 ++---------- drivers/pci/pcie/portdrv_core.c | 3 +-- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/pci/pcie/err.c b/drivers/pci/pcie/err.c index 0c5a143025af..28339c741555 100644 --- a/drivers/pci/pcie/err.c +++ b/drivers/pci/pcie/err.c @@ -184,7 +184,6 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, int type = pci_pcie_type(dev); struct pci_dev *bridge; pci_ers_result_t status = PCI_ERS_RESULT_CAN_RECOVER; - struct pci_host_bridge *host = pci_find_host_bridge(dev->bus); /* * If the error was detected by a Root Port, Downstream Port, RCEC, @@ -237,16 +236,9 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, pci_dbg(bridge, "broadcast resume message\n"); pci_walk_bridge(bridge, report_resume, &status); - /* - * If we have native control of AER, clear error status in the device - * that detected the error. If the platform retained control of AER, - * it is responsible for clearing this status. In that case, the - * signaling device may not even be visible to the OS. - */ - if (host->native_aer || pcie_ports_native) { + if (pcie_aer_is_native(dev)) pcie_clear_device_status(dev); - pci_aer_clear_nonfatal_status(dev); - } + pci_aer_clear_nonfatal_status(dev); pci_info(bridge, "device recovery successful\n"); return status; diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c index 604feeb84ee4..98c18f4a01b2 100644 --- a/drivers/pci/pcie/portdrv_core.c +++ b/drivers/pci/pcie/portdrv_core.c @@ -221,8 +221,7 @@ static int get_port_device_capability(struct pci_dev *dev) } #ifdef CONFIG_PCIEAER - if (dev->aer_cap && pci_aer_available() && - (pcie_ports_native || host->native_aer)) { + if (pcie_aer_is_native(dev) && pci_aer_available()) { services |= PCIE_PORT_SERVICE_AER; /* -- 2.30.1 (Apple Git-130)