Several drivers have own definitions for this constant, so move it to the PCI core. In addition in multiple places the following code sequence is used: 1. Read PCI_STATUS 2. Mask out non-error bits 3. Action based on set error bits 4. Write back set error bits to clear them As this is a repeated pattern, add a helper to the PCI core. Most affected drivers are network drivers. But as it's about core PCI functionality, I suppose the series should go through the PCI tree. v2: - fix formal issue with cover letter v3: - fix dumb typo in patch 7 v4: - add patches 1-3 - move new constant PCI_STATUS_ERROR_BITS to include/linux/pci.h - small improvements in commit messages Heiner Kallweit (10): net: marvell: add PCI_STATUS_SIG_TARGET_ABORT to PCI status error bits net: skfp: add PCI_STATUS_REC_TARGET_ABORT to PCI status error bits r8169: add PCI_STATUS_PARITY to PCI status error bits PCI: Add constant PCI_STATUS_ERROR_BITS PCI: Add pci_status_get_and_clear_errors r8169: use pci_status_get_and_clear_errors net: sun: use pci_status_get_and_clear_errors net: skfp: use new constant PCI_STATUS_ERROR_BITS PCI: pci-bridge-emul: Use new constant PCI_STATUS_ERROR_BITS sound: bt87x: use pci_status_get_and_clear_errors drivers/net/ethernet/marvell/skge.h | 6 ----- drivers/net/ethernet/marvell/sky2.h | 6 ----- drivers/net/ethernet/realtek/r8169_main.c | 15 +++++------- drivers/net/ethernet/sun/cassini.c | 28 ++++++++------------- drivers/net/ethernet/sun/sungem.c | 30 +++++++---------------- drivers/net/fddi/skfp/drvfbi.c | 4 +-- drivers/net/fddi/skfp/h/skfbi.h | 5 ---- drivers/pci/pci-bridge-emul.c | 14 ++--------- drivers/pci/pci.c | 23 +++++++++++++++++ include/linux/pci.h | 8 ++++++ sound/pci/bt87x.c | 7 +----- 11 files changed, 61 insertions(+), 85 deletions(-) -- 2.25.1