From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: ACJfBouSKDH7zNwNpihsHWgzCNMPKfVyIDaM+ktt/QQIDcj0XhxD9o9EkLHX/FE6+hqhmvgucl8l ARC-Seal: i=1; a=rsa-sha256; t=1516360217; cv=none; d=google.com; s=arc-20160816; b=0hQnyTUxg6qu3ilH7OcTS7GcF1oTW7FkzXSTKf4KeXm6JOaQCpVHc5DtQjUHozRNWn zviWBnp0qnMghVUB9gJf4t2bNof1delZaYj2P9PG5DnSN+HZIJwpbzBatpLLJW8msgD8 YnG3bM1+8ruccym15LyY5upIBNeqY2cSBSsDALZuht6PVDUVEJUWfNSkM6Jcjf0bPlaK pY8IQTsqP/7YZOUwPWYwDhc9MHpOUnRb0la3f0+RQ4f39rxA0g0lGEds8jYaQVPm6Roq G+I3exnnX45gsURJjileIsmznO9tCCR1h9SOTFiBWsbV6YAjZVWQdQ6u7mGMKBdW3nEN 8OGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dmarc-filter:dkim-signature :dkim-signature:arc-authentication-results; bh=gw8mE7vckuBk88L9P7VGHfqUv/1vayAui5aeiMUcHyA=; b=0u3ql2HuE82BwX9wi/7Sdgme6kN6CkX7ymaGHuFvIx0ODS8FIxmQq8A78CAEfwITdk Sj9kcqEHokrLHxgJ/CJUeFEfC/gkoPnpQSUfTlbXCEWkq3NM0f43I74SWHQ5iVNp6DRt 8VBNNLZqwTbA6RolnuYpZB90XVVg0hsIaWpavAR+2lIuiHyzFs1XpGupI24ZWbD1cLDc s7ZMNeMPQpC1070uTb/mmZa33aFxNSb4+9WLS0VpSOpuV8LQqMWS5gzvNT+qoCvm035w XaHDXtny/Mn6nfPKJI1N6Ndvl1WY4WwyDCdflZu+3/4PvgNKEhuvXU2PNFlLdXS4qVE1 tLng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=XAL6elyJ; dkim=pass header.i=@codeaurora.org header.s=default header.b=Swiepwb4; spf=pass (google.com: domain of poza@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=poza@codeaurora.org Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=XAL6elyJ; dkim=pass header.i=@codeaurora.org header.s=default header.b=Swiepwb4; spf=pass (google.com: domain of poza@codeaurora.org designates 198.145.29.96 as permitted sender) smtp.mailfrom=poza@codeaurora.org DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D2C1060452 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 v6 0/7] Address error and recovery for AER and DPC Date: Fri, 19 Jan 2018 16:39:57 +0530 Message-Id: <1516360204-1586-1-git-send-email-poza@codeaurora.org> X-Mailer: git-send-email 1.9.1 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1590018931632179706?= X-GMAIL-MSGID: =?utf-8?q?1590018931632179706?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 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 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.