[PATCH] PCI/AER: Use pci_clear_and_set_config_dword() to simplify mask updates
From: Hans Zhang
Date: Sun May 04 2025 - 11:44:40 EST
Replace the manual read-modify-write sequences in
pci_aer_unmask_internal_errors()with pci_clear_and_set_config_dword().
This function performs the read/write operations atomically and reduces
code duplication.
Signed-off-by: Hans Zhang <18255117159@xxxxxxx>
---
drivers/pci/pcie/aer.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index a1cf8c7ef628..20d2d7419fa4 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -953,15 +953,12 @@ static bool find_source_device(struct pci_dev *parent,
static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
{
int aer = dev->aer_cap;
- u32 mask;
- pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, &mask);
- mask &= ~PCI_ERR_UNC_INTN;
- pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, mask);
+ pci_clear_and_set_config_dword(dev, aer + PCI_ERR_UNCOR_MASK,
+ PCI_ERR_UNC_INTN, 0);
- pci_read_config_dword(dev, aer + PCI_ERR_COR_MASK, &mask);
- mask &= ~PCI_ERR_COR_INTERNAL;
- pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
+ pci_clear_and_set_config_dword(dev, aer + PCI_ERR_COR_MASK,
+ PCI_ERR_COR_INTERNAL, 0);
}
static bool is_cxl_mem_dev(struct pci_dev *dev)
base-commit: ca91b9500108d4cf083a635c2e11c884d5dd20ea
--
2.25.1