linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Naveen Naidu <naveennaidu479@gmail.com>
To: bhelgaas@google.com
Cc: Naveen Naidu <naveennaidu479@gmail.com>,
	linux-kernel-mentees@lists.linuxfoundation.org,
	linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	skhan@linuxfoundation.org, Russell Currey <ruscur@russell.cc>,
	"Oliver O'Halloran" <oohall@gmail.com>,
	linuxppc-dev@lists.ozlabs.org (open list:PCI ENHANCED ERROR
	HANDLING (EEH) FOR POWERPC)
Subject: [PATCH v4 19/25] PCI/DPC: Use PCI_POSSIBLE_ERROR() to check read from hardware
Date: Thu, 18 Nov 2021 19:33:29 +0530	[thread overview]
Message-ID: <9b0632f1f183432149f495cf12bdd5a72cc597a4.1637243717.git.naveennaidu479@gmail.com> (raw)
In-Reply-To: <cover.1637243717.git.naveennaidu479@gmail.com>

An MMIO read from a PCI device that doesn't exist or doesn't respond
causes a PCI error.  There's no real data to return to satisfy the
CPU read, so most hardware fabricates ~0 data.

Use PCI_POSSIBLE_ERROR() to check the response we get when we read
data from hardware.

This helps unify PCI error response checking and make error checks
consistent and easier to find.

Compile tested only.

Signed-off-by: Naveen Naidu <naveennaidu479@gmail.com>
---
 drivers/pci/pcie/dpc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c
index c556e7beafe3..3e9afee02e8d 100644
--- a/drivers/pci/pcie/dpc.c
+++ b/drivers/pci/pcie/dpc.c
@@ -79,7 +79,7 @@ static bool dpc_completed(struct pci_dev *pdev)
 	u16 status;
 
 	pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_STATUS, &status);
-	if ((status != 0xffff) && (status & PCI_EXP_DPC_STATUS_TRIGGER))
+	if ((!PCI_POSSIBLE_ERROR(status)) && (status & PCI_EXP_DPC_STATUS_TRIGGER))
 		return false;
 
 	if (test_bit(PCI_DPC_RECOVERING, &pdev->priv_flags))
@@ -312,7 +312,7 @@ static irqreturn_t dpc_irq(int irq, void *context)
 
 	pci_read_config_word(pdev, cap + PCI_EXP_DPC_STATUS, &status);
 
-	if (!(status & PCI_EXP_DPC_STATUS_INTERRUPT) || status == (u16)(~0))
+	if (!(status & PCI_EXP_DPC_STATUS_INTERRUPT) || PCI_POSSIBLE_ERROR(status))
 		return IRQ_NONE;
 
 	pci_write_config_word(pdev, cap + PCI_EXP_DPC_STATUS,
-- 
2.25.1


  parent reply	other threads:[~2021-11-18 14:09 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-18 14:03 [PATCH v4 00/25] Unify PCI error response checking Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 01/25] PCI: Add PCI_ERROR_RESPONSE and it's related definitions Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 02/25] PCI: Set error response in config access defines when ops->read() fails Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 03/25] PCI: Use PCI_SET_ERROR_RESPONSE() when device not found Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 04/25] PCI: Remove redundant error fabrication when device read fails Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 05/25] PCI: thunder: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 06/25] PCI: iproc: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 07/25] PCI: mediatek: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 08/25] PCI: exynos: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 09/25] PCI: histb: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 10/25] PCI: kirin: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 11/25] PCI: aardvark: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 12/25] PCI: mvebu: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 13/25] PCI: altera: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 14/25] PCI: rcar: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 15/25] PCI: rockchip: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 16/25] PCI/ERR: Use PCI_POSSIBLE_ERROR() to check read from hardware Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 17/25] PCI: vmd: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 18/25] PCI: pciehp: " Naveen Naidu
2021-11-18 14:03 ` Naveen Naidu [this message]
2021-11-18 14:03 ` [PATCH v4 20/25] PCI/PME: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 21/25] PCI: cpqphp: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 22/25] PCI: Use PCI_ERROR_RESPONSE to specify hardware error Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 23/25] PCI: keystone: " Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 24/25] PCI: hv: Use PCI_ERROR_RESPONSE to specify hardware read error Naveen Naidu
2021-11-18 14:03 ` [PATCH v4 25/25] PCI: xgene: Use PCI_ERROR_RESPONSE to specify hardware error Naveen Naidu
2021-11-18 20:44 ` [PATCH v4 00/25] Unify PCI error response checking Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9b0632f1f183432149f495cf12bdd5a72cc597a4.1637243717.git.naveennaidu479@gmail.com \
    --to=naveennaidu479@gmail.com \
    --cc=bhelgaas@google.com \
    --cc=linux-kernel-mentees@lists.linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=oohall@gmail.com \
    --cc=ruscur@russell.cc \
    --cc=skhan@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).