From 9ce6a359f76a2becb6012a53021471b80063438c Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Sun, 12 Nov 2023 19:25:48 +0000 Subject: [PATCH] nvscic2c-pcie: Use vm_flags_set() APIs for Linux 6.3 and later The VM flag is set via the API vm_flags_set() provided from core kernel from Linux 6.3 and above. Use this API to set the flag. Bug 4374520 Change-Id: If09eea1d03de8ac05aac692879a52f0f74eca251 Signed-off-by: Laxman Dewangan Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3014990 GVS: Gerrit_Virtual_Submit --- Makefile | 3 +++ drivers/misc/nvscic2c-pcie/endpoint.c | 2 +- drivers/misc/nvscic2c-pcie/stream-extensions.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a3250d5a..cb273532 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,9 @@ endif # Legacy GPIO support is removed in Linux v6.3 ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_3); echo $$?),0) export CONFIG_TEGRA_GPIO_LEGACY_DISABLE=y + +# Setting VM flag via API vm_flags_set +subdir-ccflags-y += -DNV_VM_FLAG_SET_API_AVAILABLE endif # Changes done in Linux 6.4 onwards diff --git a/drivers/misc/nvscic2c-pcie/endpoint.c b/drivers/misc/nvscic2c-pcie/endpoint.c index f752954b..8a0b2a26 100644 --- a/drivers/misc/nvscic2c-pcie/endpoint.c +++ b/drivers/misc/nvscic2c-pcie/endpoint.c @@ -345,7 +345,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_FLAG_SET_API_AVAILABLE) || (defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))) 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..4d6a4cd2 100644 --- a/drivers/misc/nvscic2c-pcie/stream-extensions.c +++ b/drivers/misc/nvscic2c-pcie/stream-extensions.c @@ -294,7 +294,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_FLAG_SET_API_AVAILABLE) || (defined(CONFIG_TEGRA_SYSTEM_TYPE_ACK) && (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0))) vm_flags_set(vma, VM_DONTCOPY); #else vma->vm_flags |= (VM_DONTCOPY);