From a6701b19b9e08cb0237eb6d0eeed11b0d4fd2b70 Mon Sep 17 00:00:00 2001 From: Jon Hunter Date: Sat, 2 Dec 2023 16:40:32 +0000 Subject: [PATCH] drivers: Use conftest for vm_flags The conftest script has a test for checking if the vm_area struct has a const vm_flags member. So enable this test and use the definition generated in the appropriate drivers. Bug 4374520 Change-Id: I0e7bd105fe8a821b0af23c0a5553b8d4468fa8c4 Signed-off-by: Jon Hunter Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3026924 (cherry picked from commit d0e427c6e18b47ef57d5b5519235b7c46ba0c3fb) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3029982 Tested-by: mobile promotions Reviewed-by: mobile promotions --- drivers/gpu/drm/tegra/gem.c | 6 ++---- drivers/misc/nvscic2c-pcie/endpoint.c | 3 +-- drivers/misc/nvscic2c-pcie/stream-extensions.c | 5 +++-- drivers/video/tegra/nvmap/nvmap_dmabuf.c | 3 +-- scripts/conftest/Makefile | 1 + 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 0555e2d0..45425758 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -584,8 +584,7 @@ int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma) * and set the vm_pgoff (used as a fake buffer offset by DRM) * to 0 as we want to map the whole buffer. */ -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) \ - || (defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))) +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS) /* Linux v6.3 */ vm_flags_clear(vma, VM_PFNMAP); #else vma->vm_flags &= ~VM_PFNMAP; @@ -603,8 +602,7 @@ int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma) } else { pgprot_t prot = vm_get_page_prot(vma->vm_flags); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) \ - || (defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))) +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS) /* Linux v6.3 */ vm_flags_set(vma, VM_MIXEDMAP); vm_flags_clear(vma, VM_PFNMAP); #else diff --git a/drivers/misc/nvscic2c-pcie/endpoint.c b/drivers/misc/nvscic2c-pcie/endpoint.c index f752954b..99e40014 100644 --- a/drivers/misc/nvscic2c-pcie/endpoint.c +++ b/drivers/misc/nvscic2c-pcie/endpoint.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -345,7 +344,7 @@ endpoint_fops_mmap(struct file *filp, struct vm_area_struct *vma) } vma->vm_pgoff = 0; -#if defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS) /* Linux v6.3 */ vm_flags_set(vma, VM_DONTCOPY); #else vma->vm_flags |= (VM_DONTCOPY); // fork() not supported. diff --git a/drivers/misc/nvscic2c-pcie/stream-extensions.c b/drivers/misc/nvscic2c-pcie/stream-extensions.c index cad14962..9ff5c2b6 100644 --- a/drivers/misc/nvscic2c-pcie/stream-extensions.c +++ b/drivers/misc/nvscic2c-pcie/stream-extensions.c @@ -3,6 +3,8 @@ #define pr_fmt(fmt) "nvscic2c-pcie: stream-ext: " fmt +#include + #include #include #include @@ -15,7 +17,6 @@ #include #include #include -#include #include @@ -294,7 +295,7 @@ fops_mmap(struct file *filep, struct vm_area_struct *vma) memaddr = stream_obj->aper; vma->vm_pgoff = 0; -#if defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS) /* Linux v6.3 */ vm_flags_set(vma, VM_DONTCOPY); #else vma->vm_flags |= (VM_DONTCOPY); diff --git a/drivers/video/tegra/nvmap/nvmap_dmabuf.c b/drivers/video/tegra/nvmap/nvmap_dmabuf.c index f6c209f5..9be5d96f 100644 --- a/drivers/video/tegra/nvmap/nvmap_dmabuf.c +++ b/drivers/video/tegra/nvmap/nvmap_dmabuf.c @@ -452,8 +452,7 @@ int __nvmap_map(struct nvmap_handle *h, struct vm_area_struct *vma) } priv->handle = h; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0)) \ - || (defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))) +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS) /* Linux v6.3 */ vm_flags_set(vma, VM_SHARED | VM_DONTEXPAND | VM_DONTDUMP | VM_DONTCOPY | (h->heap_pgalloc ? 0 : VM_PFNMAP)); diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index a2e27c81..e405e12b 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -131,6 +131,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += snd_soc_of_get_dai_name_has_index_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += tc_taprio_qopt_offload_struct_has_cmd NV_CONFTEST_FUNCTION_COMPILE_TESTS += tegra_dev_iommu_get_stream_id NV_CONFTEST_FUNCTION_COMPILE_TESTS += tegra_ivc_struct_has_iosys_map +NV_CONFTEST_FUNCTION_COMPILE_TESTS += vm_area_struct_has_const_vm_flags NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_fd_to_handle NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd NV_CONFTEST_MACRO_COMPILE_TESTS ?=