From d73c2c912be9acd32aa35e71054b193d25cb73a3 Mon Sep 17 00:00:00 2001
From: Myron Stowe <mstowe@redhat.com>
Date: Tue, 25 Mar 2025 11:02:49 -0600
Subject: [PATCH] PCI: Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT

JIRA: https://issues.redhat.com/browse/RHEL-83611
Upstream Status: 188973e3536a18aebee3af486cd3d2ef82b09f88

commit 188973e3536a18aebee3af486cd3d2ef82b09f88
Author: Dongdong Zhang <zhangdongdong@eswincomputing.com>
Date:   Mon Dec 16 09:35:36 2024 +0800

    PCI: Remove redundant PCI_VSEC_HDR and PCI_VSEC_HDR_LEN_SHIFT

    Remove duplicate macro PCI_VSEC_HDR and its related macro
    PCI_VSEC_HDR_LEN_SHIFT from pci_regs.h to avoid redundancy and
    inconsistencies. Update VFIO PCI code to use PCI_VNDR_HEADER and
    PCI_VNDR_HEADER_LEN() for consistent naming and functionality.

    These changes aim to streamline header handling while minimizing impact,
    given the niche usage of these macros in userspace.

    Link: https://lore.kernel.org/r/20241216013536.4487-1-zhangdongdong@eswincomputing.com
    Signed-off-by: Dongdong Zhang <zhangdongdong@eswincomputing.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Alex Williamson <alex.williamson@redhat.com>

Signed-off-by: Myron Stowe <mstowe@redhat.com>
---
 drivers/vfio/pci/vfio_pci_config.c | 5 +++--
 include/uapi/linux/pci_regs.h      | 3 ---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c
index ea2745c1ac5e6..5572fd99b921f 100644
--- a/drivers/vfio/pci/vfio_pci_config.c
+++ b/drivers/vfio/pci/vfio_pci_config.c
@@ -1389,11 +1389,12 @@ static int vfio_ext_cap_len(struct vfio_pci_core_device *vdev, u16 ecap, u16 epo
 
 	switch (ecap) {
 	case PCI_EXT_CAP_ID_VNDR:
-		ret = pci_read_config_dword(pdev, epos + PCI_VSEC_HDR, &dword);
+		ret = pci_read_config_dword(pdev, epos + PCI_VNDR_HEADER,
+					    &dword);
 		if (ret)
 			return pcibios_err_to_errno(ret);
 
-		return dword >> PCI_VSEC_HDR_LEN_SHIFT;
+		return PCI_VNDR_HEADER_LEN(dword);
 	case PCI_EXT_CAP_ID_VC:
 	case PCI_EXT_CAP_ID_VC9:
 	case PCI_EXT_CAP_ID_MFVC:
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
index bef1695af0783..211a8753aafed 100644
--- a/include/uapi/linux/pci_regs.h
+++ b/include/uapi/linux/pci_regs.h
@@ -1002,9 +1002,6 @@
 #define PCI_ACS_CTRL		0x06	/* ACS Control Register */
 #define PCI_ACS_EGRESS_CTL_V	0x08	/* ACS Egress Control Vector */
 
-#define PCI_VSEC_HDR		4	/* extended cap - vendor-specific */
-#define  PCI_VSEC_HDR_LEN_SHIFT	20	/* shift for length field */
-
 /* SATA capability */
 #define PCI_SATA_REGS		4	/* SATA REGs specifier */
 #define  PCI_SATA_REGS_MASK	0xF	/* location - BAR#/inline */
-- 
GitLab