Skip to content

Commit 0242132

Browse files
Naveenaidubjorn-helgaas
authored andcommitted
PCI/DPC: Use PCI_POSSIBLE_ERROR() to check config reads
When config pci_ops.read() can detect failed PCI transactions, the data returned to the CPU is PCI_ERROR_RESPONSE (~0 or 0xffffffff). Obviously a successful PCI config read may *also* return that data if a config register happens to contain ~0, so it doesn't definitively indicate an error unless we know the register cannot contain ~0. Use PCI_POSSIBLE_ERROR() to check the response we get when we read data from hardware. This unifies PCI error response checking and makes error checks consistent and easier to find. Compile tested only. Link: https://lore.kernel.org/r/9b0632f1f183432149f495cf12bdd5a72cc597a4.1637243717.git.naveennaidu479@gmail.com Signed-off-by: Naveen Naidu <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]>
1 parent a3b0f10 commit 0242132

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/pci/pcie/dpc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ static bool dpc_completed(struct pci_dev *pdev)
7979
u16 status;
8080

8181
pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_STATUS, &status);
82-
if ((status != 0xffff) && (status & PCI_EXP_DPC_STATUS_TRIGGER))
82+
if ((!PCI_POSSIBLE_ERROR(status)) && (status & PCI_EXP_DPC_STATUS_TRIGGER))
8383
return false;
8484

8585
if (test_bit(PCI_DPC_RECOVERING, &pdev->priv_flags))
@@ -312,7 +312,7 @@ static irqreturn_t dpc_irq(int irq, void *context)
312312

313313
pci_read_config_word(pdev, cap + PCI_EXP_DPC_STATUS, &status);
314314

315-
if (!(status & PCI_EXP_DPC_STATUS_INTERRUPT) || status == (u16)(~0))
315+
if (!(status & PCI_EXP_DPC_STATUS_INTERRUPT) || PCI_POSSIBLE_ERROR(status))
316316
return IRQ_NONE;
317317

318318
pci_write_config_word(pdev, cap + PCI_EXP_DPC_STATUS,

0 commit comments

Comments
 (0)