From a600207e7d403379ebeb118027343735c20717e1 Mon Sep 17 00:00:00 2001 From: Jon Hunter Date: Thu, 13 Oct 2022 19:07:38 +0100 Subject: [PATCH] pci: epf: Fix build for pre-v5.15 Linux kernels Build the Tegra PCI EPF driver fails with Linux v5.14 because the pci_epf_alloc/free_space() have the incorrect number of arguments. The arguments to the pci_epf_alloc/free_space() functions were updated in Linux v5.12 but the current Tegra PCI EPF driver assumes that they were updating after Linux v5.14. Update the Tegra PCI EPF driver to use the correct arguments for v5.12 onwards. Bug 3820317 Change-Id: Ieba44bfc22e0f978a5ff227b6d07a6a56ad23f3b Signed-off-by: Jon Hunter Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2791670 Reviewed-by: Nagarjuna Kristam Reviewed-by: Laxman Dewangan GVS: Gerrit_Virtual_Submit --- drivers/pci/endpoint/functions/pci-epf-wrapper.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-wrapper.h b/drivers/pci/endpoint/functions/pci-epf-wrapper.h index 8856a979..b8eb81cd 100644 --- a/drivers/pci/endpoint/functions/pci-epf-wrapper.h +++ b/drivers/pci/endpoint/functions/pci-epf-wrapper.h @@ -10,6 +10,14 @@ #include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 12, 0)) +#define lpci_epf_free_space(A, B, C) pci_epf_free_space(A, B, C, PRIMARY_INTERFACE) +#define lpci_epf_alloc_space(A, B, C, D) pci_epf_alloc_space(A, B, C, D, PRIMARY_INTERFACE) +#else +#define lpci_epf_free_space(A, B, C) pci_epf_free_space(A, B, C) +#define lpci_epf_alloc_space(A, B, C, D) pci_epf_alloc_space(A, B, C, D) +#endif + #if (LINUX_VERSION_CODE > KERNEL_VERSION(5, 14, 0)) #define lpci_epc_write_header(A, B, C) pci_epc_write_header(A, B, 0, C) #define lpci_epc_raise_irq(A, B, C, D) pci_epc_raise_irq(A, B, 0, C, D) @@ -17,8 +25,6 @@ #define lpci_epc_set_msi(A, B, C) pci_epc_set_msi(A, B, 0, C) #define lpci_epc_set_bar(A, B, C) pci_epc_set_bar(A, B, 0, C) #define lpci_epc_unmap_addr(A, B, C) pci_epc_unmap_addr(A, B, 0, C) -#define lpci_epf_free_space(A, B, C) pci_epf_free_space(A, B, C, PRIMARY_INTERFACE) -#define lpci_epf_alloc_space(A, B, C, D) pci_epf_alloc_space(A, B, C, D, PRIMARY_INTERFACE) #else #define lpci_epc_write_header(A, B, C) pci_epc_write_header(A, B, C) #define lpci_epc_raise_irq(A, B, C, D) pci_epc_raise_irq(A, B, C, D) @@ -26,8 +32,6 @@ #define lpci_epc_set_msi(A, B, C) pci_epc_set_msi(A, B, C) #define lpci_epc_set_bar(A, B, C) pci_epc_set_bar(A, B, C) #define lpci_epc_unmap_addr(A, B, C) pci_epc_unmap_addr(A, B, C) -#define lpci_epf_free_space(A, B, C) pci_epf_free_space(A, B, C) -#define lpci_epf_alloc_space(A, B, C, D) pci_epf_alloc_space(A, B, C, D) #endif /* LINUX_VERSION_CODE */ #endif /* PCI_EPF_WRAPPER_H */