From 5f27cd10087483dc86236f6e3f2ff5ac18df0d2f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 6 Nov 2024 08:27:22 +0100 Subject: [PATCH] 6.1-stable patches added patches: loongarch-fix-build-errors-due-to-backported-timens.patch --- ...uild-errors-due-to-backported-timens.patch | 91 +++++++++++++++++++ queue-6.1/series | 1 + 2 files changed, 92 insertions(+) create mode 100644 queue-6.1/loongarch-fix-build-errors-due-to-backported-timens.patch diff --git a/queue-6.1/loongarch-fix-build-errors-due-to-backported-timens.patch b/queue-6.1/loongarch-fix-build-errors-due-to-backported-timens.patch new file mode 100644 index 00000000000..ca02683af08 --- /dev/null +++ b/queue-6.1/loongarch-fix-build-errors-due-to-backported-timens.patch @@ -0,0 +1,91 @@ +From chenhuacai@loongson.cn Wed Nov 6 08:26:52 2024 +From: Huacai Chen +Date: Sat, 2 Nov 2024 11:36:16 +0800 +Subject: LoongArch: Fix build errors due to backported TIMENS +To: Huacai Chen +Cc: Xuerui Wang , loongarch@lists.linux.dev, Greg Kroah-Hartman , Sasha Levin , stable@vger.kernel.org, Jiaxun Yang , linux-kernel@vger.kernel.org, Huacai Chen +Message-ID: <20241102033616.3517188-1-chenhuacai@loongson.cn> + +From: Huacai Chen + +Commit eb3710efffce1dcff83761db4615f91d93aabfcb ("LoongArch: Add support +to clone a time namespace") backports the TIMENS support for LoongArch +(corresponding upstream commit aa5e65dc0818bbf676bf06927368ec46867778fd) +but causes build errors: + + CC arch/loongarch/kernel/vdso.o +arch/loongarch/kernel/vdso.c: In function ‘vvar_fault’: +arch/loongarch/kernel/vdso.c:54:36: error: implicit declaration of +function ‘find_timens_vvar_page’ [-Werror=implicit-function-declaration] + 54 | struct page *timens_page = find_timens_vvar_page(vma); + | ^~~~~~~~~~~~~~~~~~~~~ +arch/loongarch/kernel/vdso.c:54:36: warning: initialization of ‘struct +page *’ from ‘int’ makes pointer from integer without a cast +[-Wint-conversion] +arch/loongarch/kernel/vdso.c: In function ‘vdso_join_timens’: +arch/loongarch/kernel/vdso.c:143:25: error: implicit declaration of +function ‘zap_vma_pages’; did you mean ‘zap_vma_ptes’? +[-Werror=implicit-function-declaration] + 143 | zap_vma_pages(vma); + | ^~~~~~~~~~~~~ + | zap_vma_ptes +cc1: some warnings being treated as errors + +Because in 6.1.y we should define find_timens_vvar_page() by ourselves +and use zap_page_range() instead of zap_vma_pages(), so fix it. + +Signed-off-by: Huacai Chen +--- + arch/loongarch/kernel/vdso.c | 28 +++++++++++++++++++++++++++- + 1 file changed, 27 insertions(+), 1 deletion(-) + +--- a/arch/loongarch/kernel/vdso.c ++++ b/arch/loongarch/kernel/vdso.c +@@ -40,6 +40,8 @@ static struct page *vdso_pages[] = { NUL + struct vdso_data *vdso_data = generic_vdso_data.data; + struct vdso_pcpu_data *vdso_pdata = loongarch_vdso_data.vdata.pdata; + ++static struct page *find_timens_vvar_page(struct vm_area_struct *vma); ++ + static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) + { + current->mm->context.vdso = (void *)(new_vma->vm_start); +@@ -139,13 +141,37 @@ int vdso_join_timens(struct task_struct + + mmap_read_lock(mm); + for_each_vma(vmi, vma) { ++ unsigned long size = vma->vm_end - vma->vm_start; ++ + if (vma_is_special_mapping(vma, &vdso_info.data_mapping)) +- zap_vma_pages(vma); ++ zap_page_range(vma, vma->vm_start, size); + } + mmap_read_unlock(mm); + + return 0; + } ++ ++static struct page *find_timens_vvar_page(struct vm_area_struct *vma) ++{ ++ if (likely(vma->vm_mm == current->mm)) ++ return current->nsproxy->time_ns->vvar_page; ++ ++ /* ++ * VM_PFNMAP | VM_IO protect .fault() handler from being called ++ * through interfaces like /proc/$pid/mem or ++ * process_vm_{readv,writev}() as long as there's no .access() ++ * in special_mapping_vmops. ++ * For more details check_vma_flags() and __access_remote_vm() ++ */ ++ WARN(1, "vvar_page accessed remotely"); ++ ++ return NULL; ++} ++#else ++static struct page *find_timens_vvar_page(struct vm_area_struct *vma) ++{ ++ return NULL; ++} + #endif + + static unsigned long vdso_base(void) diff --git a/queue-6.1/series b/queue-6.1/series index 67a76342112..ec7dd69c1d0 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -117,3 +117,4 @@ wifi-mac80211-fix-null-dereference-at-band-check-in-starting-tx-ba-session.patch nilfs2-fix-kernel-bug-due-to-missing-clearing-of-checked-flag.patch wifi-iwlwifi-mvm-fix-6-ghz-scan-construction.patch mm-shmem-fix-data-race-in-shmem_getattr.patch +loongarch-fix-build-errors-due-to-backported-timens.patch -- 2.47.3