From patchwork Wed Dec 13 01:57:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Levin, Alexander \(Sasha Levin\)" X-Patchwork-Id: 121697 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp4883268qgn; Tue, 12 Dec 2017 17:59:15 -0800 (PST) X-Google-Smtp-Source: ACJfBoshhyWAeRwhQLBzphP98ADLfxtplcqvZoec6g1tDLTcY0dUGtk20Egks7ypxWPIqELUIXcz X-Received: by 10.99.160.26 with SMTP id r26mr3873049pge.408.1513130355046; Tue, 12 Dec 2017 17:59:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513130355; cv=none; d=google.com; s=arc-20160816; b=KLulng7MxT+hW/3Z7ANrZy0dBawVxInH/Zp7/FNqOkHNhrzNW6WcgjxjOQc9u+/+mj DDjuhVmho9E0ony4j5b81QNcUiTKiK+tf636KApMZbwOQOgr8UUMebxXL3+/ILTm/VN4 APkud4KOsSPczoiQ5Rve6wx+3xYo+Uj1LLru8o66ilrX/mlO0TJpx4VzkR3O97VblyQq 0zu4e//EKhR3Xwa4BC3t5dnrOfyfUV+zOtxk2z88OFzvkC2xqJvT6p2Gz97CI6AkmOVR rk4XOtVNX2r7MlQXIRs8BjVoTCNJq2jfVFPJTYSMku0ZSUg8Uyt4SYK4WUMnRHsvJYXy tSGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:to:cc:from:dkim-signature :dkim-signature:dkim-signature:arc-authentication-results; bh=cJTySjQWl9UajfcBi8MMfj/Yccq2KbssiP3ffs52LTg=; b=O3LWWWva6TrtmawihgMO9XBhh7c78+YDatGW+OhTq4/oQY6c6XTk16X1E/MCEOozm2 EgCPjDDSuZPMJtZI60vWZ4hoYguvDSSSmPdeQjXDMd43ig79peds76nNJwph2VwzjYD7 SioHTRIRow7t2RDpFZLr1S7hQ9qqV/LQnHpoUbveGeBc58WeEhpsTAOPi4/3q+cDlpXf kvlLZc6bgju+3KRGCJqcsyw1OWYvXYA/56vvRP5l90RkMyH1bWD8PK+DAAN4o1UtIoYc xmmxJLoiV320Ch4oQseuhahTUDBLHA7F4/uNu9sxXQAWGHJbLeHu46Zs0nFet66ifr7t JOIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@verizon.com header.s=corp header.b=ayJ7xhjB; dkim=fail header.i=@verizon.com header.s=corp header.b=FpVwwlrF; dkim=fail header.i=@verizon.com header.s=corp header.b=TnxxwDM1; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=verizon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f9si387749pgt.544.2017.12.12.17.59.14; Tue, 12 Dec 2017 17:59:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@verizon.com header.s=corp header.b=ayJ7xhjB; dkim=fail header.i=@verizon.com header.s=corp header.b=FpVwwlrF; dkim=fail header.i=@verizon.com header.s=corp header.b=TnxxwDM1; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=verizon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753334AbdLMB7M (ORCPT + 10 others); Tue, 12 Dec 2017 20:59:12 -0500 Received: from fldsmtpe03.verizon.com ([140.108.26.142]:46399 "EHLO fldsmtpe03.verizon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752365AbdLMB6y (ORCPT ); Tue, 12 Dec 2017 20:58:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=verizon.com; i=@verizon.com; q=dns/txt; s=corp; t=1513130334; x=1544666334; h=from:cc:to:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WH1GSDT9CJ5J4RlqZ+rwJ6ANG4gdDptsRdkip1GhB90=; b=ayJ7xhjBHWsBkgXtcQhLjwUvYP3ZTQ0TF0ccctXzUBnyexFAJmNF4MZ3 FDJbua7oV9spfBjIZr59R+iqhk5+rXyDCIAeJ0zv+OyjqKz/Unk01BGX+ yjmMPg1uw3B0nPDr0SOgOa6sMuUX8c61OaQNSUQyvkSfqVH5by3mte6Vq k=; Received: from unknown (HELO fldsmtpi02.verizon.com) ([166.68.71.144]) by fldsmtpe03.verizon.com with ESMTP; 13 Dec 2017 01:58:45 +0000 Received: from rogue-10-255-192-101.rogue.vzwcorp.com (HELO atlantis.verizonwireless.com) ([10.255.192.101]) by fldsmtpi02.verizon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 13 Dec 2017 01:58:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=verizon.com; i=@verizon.com; q=dns/txt; s=corp; t=1513130318; x=1544666318; h=from:cc:to:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WH1GSDT9CJ5J4RlqZ+rwJ6ANG4gdDptsRdkip1GhB90=; b=FpVwwlrFVSZuBXe8C0bCHR4qh5RzcWivV6GklKFYJKZxfVHtDjLvR0uI Uaf5tPSEKfF+0iaSQxtDlriQG1aPPDQCErMZqujo4fan3OkIESIUGOfyR gRDNNtODdTzo2xsk7CrGpL9u437KuyvX5O+tGC0xi8VuKCnY3NgSxIn9b s=; Received: from pioneer.tdc.vzwcorp.com (HELO eris.verizonwireless.com) ([10.254.88.34]) by atlantis.verizonwireless.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 12 Dec 2017 20:58:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=verizon.com; i=@verizon.com; q=dns/txt; s=corp; t=1513130318; x=1544666318; h=to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version:from:cc; bh=WH1GSDT9CJ5J4RlqZ+rwJ6ANG4gdDptsRdkip1GhB90=; b=TnxxwDM1vFWUAMo4ZIyhMHrKq2SYsdkBJgPSqrVlAa8HnKrUM02fMXZW m//43Rm9oaK0ybh8gitpdlDGCiVofq6o9TLMRE0QGigISpD51hPoWXnR3 VoW8yiv4oUPnO2RzygwHPVkXIZX4qtVn2rK/k4snvHggzUWfE6UEXFwRd 0=; From: alexander.levin@verizon.com Cc: Gabriele Paoloni , Dongdong Liu , Bjorn Helgaas , alexander.levin@verizon.com X-Host: pioneer.tdc.vzwcorp.com Received: from ohtwi1exh002.uswin.ad.vzwcorp.com ([10.144.218.44]) by eris.verizonwireless.com with ESMTP/TLS/AES128-SHA256; 13 Dec 2017 01:58:37 +0000 Received: from tbwexch11apd.uswin.ad.vzwcorp.com (153.114.162.35) by OHTWI1EXH002.uswin.ad.vzwcorp.com (10.144.218.44) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 12 Dec 2017 20:58:37 -0500 Received: from OMZP1LUMXCA20.uswin.ad.vzwcorp.com (144.8.22.198) by tbwexch11apd.uswin.ad.vzwcorp.com (153.114.162.35) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 12 Dec 2017 20:58:37 -0500 Received: from OMZP1LUMXCA17.uswin.ad.vzwcorp.com (144.8.22.195) by OMZP1LUMXCA20.uswin.ad.vzwcorp.com (144.8.22.198) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 12 Dec 2017 19:58:36 -0600 Received: from OMZP1LUMXCA17.uswin.ad.vzwcorp.com ([144.8.22.195]) by OMZP1LUMXCA17.uswin.ad.vzwcorp.com ([144.8.22.195]) with mapi id 15.00.1263.000; Tue, 12 Dec 2017 19:58:36 -0600 To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" Subject: [PATCH AUTOSEL for 4.9 085/100] PCI/AER: Report non-fatal errors only to the affected endpoint Thread-Topic: [PATCH AUTOSEL for 4.9 085/100] PCI/AER: Report non-fatal errors only to the affected endpoint Thread-Index: AQHTc7XD0qTNPCuJ7E+B2JxSyrMIFA== Date: Wed, 13 Dec 2017 01:57:43 +0000 Message-ID: <20171213015722.6722-60-alexander.levin@verizon.com> References: <20171213015722.6722-1-alexander.levin@verizon.com> In-Reply-To: <20171213015722.6722-1-alexander.levin@verizon.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.144.60.250] MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Gabriele Paoloni [ Upstream commit 86acc790717fb60fb51ea3095084e331d8711c74 ] Previously, if an non-fatal error was reported by an endpoint, we called report_error_detected() for the endpoint, every sibling on the bus, and their descendents. If any of them did not implement the .error_detected() method, do_recovery() failed, leaving all these devices unrecovered. For example, the system described in the bugzilla below has two devices: 0000:74:02.0 [19e5:a230] SAS controller, driver has .error_detected() 0000:74:03.0 [19e5:a235] SATA controller, driver lacks .error_detected() When a device such as 74:02.0 reported a non-fatal error, do_recovery() failed because 74:03.0 lacked an .error_detected() method. But per PCIe r3.1, sec 6.2.2.2.2, such an error does not compromise the Link and does not affect 74:03.0: Non-fatal errors are uncorrectable errors which cause a particular transaction to be unreliable but the Link is otherwise fully functional. Isolating Non-fatal from Fatal errors provides Requester/Receiver logic in a device or system management software the opportunity to recover from the error without resetting the components on the Link and disturbing other transactions in progress. Devices not associated with the transaction in error are not impacted by the error. Report non-fatal errors only to the endpoint that reported them. We really want to check for AER_NONFATAL here, but the current code structure doesn't allow that. Looking for pci_channel_io_normal is the best we can do now. Link: https://bugzilla.kernel.org/show_bug.cgi?id=197055 Fixes: 6c2b374d7485 ("PCI-Express AER implemetation: AER core and aerdriver") Signed-off-by: Gabriele Paoloni Signed-off-by: Dongdong Liu [bhelgaas: changelog] Signed-off-by: Bjorn Helgaas Signed-off-by: Sasha Levin --- drivers/pci/pcie/aer/aerdrv_core.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) -- 2.11.0 diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c index b1303b32053f..057465adf0b6 100644 --- a/drivers/pci/pcie/aer/aerdrv_core.c +++ b/drivers/pci/pcie/aer/aerdrv_core.c @@ -390,7 +390,14 @@ static pci_ers_result_t broadcast_error_message(struct pci_dev *dev, * If the error is reported by an end point, we think this * error is related to the upstream link of the end point. */ - pci_walk_bus(dev->bus, cb, &result_data); + if (state == pci_channel_io_normal) + /* + * the error is non fatal so the bus is ok, just invoke + * the callback for the function that logged the error. + */ + cb(dev, &result_data); + else + pci_walk_bus(dev->bus, cb, &result_data); } return result_data.result;