Received: by 10.223.176.46 with SMTP id f43csp501240wra; Fri, 19 Jan 2018 22:36:55 -0800 (PST) X-Google-Smtp-Source: AH8x227pDdd4MZ4uMB9lm6FbKIlfXbLPcIldKtUn1TpBLEcdYg+7e5kQCdXSHNkJu0nk/pO5/PVq X-Received: by 10.99.65.7 with SMTP id o7mr1112884pga.238.1516430215698; Fri, 19 Jan 2018 22:36:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516430215; cv=none; d=google.com; s=arc-20160816; b=Auxv8ro4CaGERfiaYaVDrPRNxrBnkUF+wFUMWAJ4N2JpJ8Txqu9KlF5pioDjXvDx57 9TNggZxnD0rzYex8N+oijp6Z8AleW4Wj84uxyvmcLq766+POl2zG5vPzDLzr8FzKcwNd fhl4pqLsYkao5Sn1PPiBTKmATTcICbXa3hxGK/13TUzbB94KcncRQG3koyaVFmUe1451 yPzcLkTqwPUfEUmhO+2V4P7CdTPFuXMdDESAyhDNT6HviN44CPxdXu6lZ28ZqtZZvKiv wqKE8mii9YBRRqsU9vWr3T7EIAlEiNOFQYtfB4B/O+2LqoGtFuRE1XkG3h6zIzW1Z2vG ss4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=4NWgzN6Ni+psPM4clSw8zpvx7yrSYS2zxSN30JjamnU=; b=H8nq23B0HgzduQQRxQ/xSvIv7C00kPWxHPiAgvUJsOFDL+TOiJC2Ero626v9CKtGhO nPtMnNASETWZvPIWuPGheN5YFduC18u1tA7oFHMnEWk8m17JBTyzyXhH1EgkkObSdHTi +EAoED1n52h7+VN9cJXrjniHB/ZIq9n3DlBkSPa5GYGptYGvQrdO305I7/faZ1HDlZM9 E7NEF4oV/A/Xzl0tF+kOKNTmbQs+3SzKxOn6sOzlVMUHj6fah78NrFMTaHwfQvGckAW/ GP6okxEcGZohf+gXEeX/IquEsG8Bwyqw8loctgFuBNMdGHoQwtVp5kraX0yqOubZ0HRD nc6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=A4uunvs3; dkim=pass header.i=@codeaurora.org header.s=default header.b=G9fPx8r3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c200si10729542pfb.301.2018.01.19.22.36.30; Fri, 19 Jan 2018 22:36:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=A4uunvs3; dkim=pass header.i=@codeaurora.org header.s=default header.b=G9fPx8r3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753144AbeATGfi (ORCPT + 99 others); Sat, 20 Jan 2018 01:35:38 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:44878 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751023AbeATGfb (ORCPT ); Sat, 20 Jan 2018 01:35:31 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id A6D7560A54; Sat, 20 Jan 2018 06:35:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1516430130; bh=QrEu1GoJs7mEcqXVa8upRyZoPc94ytiCadaiheeKRVw=; h=From:To:Cc:Subject:Date:From; b=A4uunvs3HexWvrAnIM96Olx+Bzhga8j4CLX1QvE2UGO+WIZQvBTUgtmw1mEilxBp6 cALKatn6szs0VpQcOlBaaIUp5jlS5hEbS8IdcTfUsdyASwUvB6MKbpwK0Z5T1QGQRZ EdfD7xlL7v3yT2nPYUTUXTu0TkGtWyPyq94q+8us= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from blr-ubuntu-poza.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.18.19]) (using TLSv1.1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: poza@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 3BACA60452; Sat, 20 Jan 2018 06:35:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1516430129; bh=QrEu1GoJs7mEcqXVa8upRyZoPc94ytiCadaiheeKRVw=; h=From:To:Cc:Subject:Date:From; b=G9fPx8r3wkGZeJB+fBHz+685DGU2qthMCOzzTr1pDQ9js7Du+e/HKSs6G2A20Edwg ruxTWzMWEVcos91acc10Fro0nsRx42th9Q/34qiPTRcYJKwPb0WaMaeaGOgYNDtg4M 437HpOFkv4pM1IfwqTducqBWEvCgd7maa4yIqQHo= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 3BACA60452 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=poza@codeaurora.org From: Oza Pawandeep To: Bjorn Helgaas , Philippe Ombredanne , Thomas Gleixner , Greg Kroah-Hartman , Kate Stewart , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Dongdong Liu , Keith Busch , Wei Zhang , Sinan Kaya , Timur Tabi Cc: Oza Pawandeep Subject: [PATCH v7 0/7] Address error and recovery for AER and DPC Date: Sat, 20 Jan 2018 12:05:12 +0530 Message-Id: <1516430119-3825-1-git-send-email-poza@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch set brings in error handling support for DPC The current implementation of AER and error message broadcasting to the EP driver is tightly coupled and limited to AER service driver. It is important to factor out broadcasting and other link handling callbacks. So that not only when AER gets triggered, but also when DPC get triggered (for e.g. ERR_FATAL), callbacks are handled appropriately. DPC should enumerate the devices after recovering the link, which is achieved by implementing error_resume callback. Changes since v6: Sinan's and Stefan's comments implemented. > reordered patch 6 and 7 > cleaned up Changes since v5: Sinan's and Keith's comments incorporated. > made separate patch for mutex > unified error repotting codes into driver/pci/pci.h > got rid of wait link active/inactive and made generic function in driver/pci/pci.c Changes since v4: Bjorn's comments incorporated. > Renamed only do_recovery. > moved the things more locally to drivers/pci/pci.h Changes since v3: Bjorn's comments incorporated. > Made separate patch renaming generic pci_err.c > Introduce pci_err.h to contain all the error types and recovery > removed all the dependencies on pci.h Changes since v2: Based on feedback from Keith: " When DPC is triggered due to receipt of an uncorrectable error Message, the Requester ID from the Message is recorded in the DPC Error Source ID register and that Message is discarded and not forwarded Upstream. " Removed the patch where AER checks if DPC service is active Changes since v1: Kbuild errors fixed: > pci_find_dpc_dev made static > ras_event.h updated > pci_find_aer_service call with CONFIG check > pci_find_dpc_service call with CONFIG check Oza Pawandeep (7): PCI/AER: Rename error recovery to generic pci naming PCI/AER: factor out error reporting from AER PCI/ERR: add mutex to synchronize recovery PCI/DPC: Unify and plumb error handling into DPC PCI/AER: Unify aer error defines at single space PCI/DPC: Enumerate the devices after DPC trigger event PCI: Unify wait for link active into generic pci drivers/acpi/apei/ghes.c | 1 + drivers/pci/hotplug/pciehp_hpc.c | 21 +- drivers/pci/pci.c | 39 +++- drivers/pci/pci.h | 11 + drivers/pci/pcie/Makefile | 2 +- drivers/pci/pcie/aer/aerdrv.h | 30 --- drivers/pci/pcie/aer/aerdrv_core.c | 293 +------------------------- drivers/pci/pcie/aer/aerdrv_errprint.c | 1 + drivers/pci/pcie/pcie-dpc.c | 115 ++++++++++- drivers/pci/pcie/pcie-err.c | 366 +++++++++++++++++++++++++++++++++ drivers/pci/pcie/portdrv.h | 2 + include/linux/aer.h | 4 - include/linux/pci.h | 1 + 13 files changed, 534 insertions(+), 352 deletions(-) create mode 100644 drivers/pci/pcie/pcie-err.c -- Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc., a Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.