linux/arch/s390
Gerald Schaefer 082a639b1c s390/mm: Remove possible false-positive warning in pte_free_defer()
commit 5647f61ad9 upstream.

Commit 8211dad627 ("s390: add pte_free_defer() for pgtables sharing
page") added a warning to pte_free_defer(), on our request. It was meant
to warn if this would ever be reached for KVM guest mappings, because
the page table would be freed w/o a gmap_unlink(). THP mappings are not
allowed for KVM guests on s390, so this should never happen.

However, it is possible that the warning is triggered in a valid case as
false-positive.

s390_enable_sie() takes the mmap_lock, marks all VMAs as VM_NOHUGEPAGE and
splits possibly existing THP guest mappings. mm->context.has_pgste is set
to 1 before that, to prevent races with the mm_has_pgste() check in
MADV_HUGEPAGE.

khugepaged drops the mmap_lock for file mappings and might run in parallel,
before a vma is marked VM_NOHUGEPAGE, but after mm->context.has_pgste was
set to 1. If it finds file mappings to collapse, it will eventually call
pte_free_defer(). This will trigger the warning, but it is a valid case
because gmap is not yet set up, and the THP mappings will be split again.

Therefore, remove the warning and the comment.

Fixes: 8211dad627 ("s390: add pte_free_defer() for pgtables sharing page")
Cc: <stable@vger.kernel.org> # 6.6+
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Signed-off-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-08-15 12:14:13 +02:00
..
appldata sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-24 20:59:29 +02:00
boot s390/boot: Fix ESSA detection 2025-02-27 04:30:22 -08:00
configs s390: Update defconfigs 2024-10-16 11:32:32 +02:00
crypto crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2 2025-07-17 18:37:01 +02:00
hypfs hypfs_create_cpu_files(): add missing check for hypfs_mkdir() failure 2025-05-29 11:02:15 +02:00
include s390/ap: Unmask SLCF bit in card and queue ap functions sysfs 2025-08-15 12:14:05 +02:00
kernel s390/entry: Fix last breaking event handling in case of stack corruption 2025-05-18 08:24:47 +02:00
kvm KVM: s390: rename PROT_NONE to PROT_TYPE_DUMMY 2025-06-27 11:11:23 +01:00
lib s390/alternatives: Rework to allow for callbacks 2024-07-23 16:02:31 +02:00
mm s390/mm: Remove possible false-positive warning in pte_free_defer() 2025-08-15 12:14:13 +02:00
net s390/bpf: Fix bpf_arch_text_poke() with new_addr == NULL again 2025-07-24 08:56:27 +02:00
pci s390/pci: Do not try re-enabling load/store if device is disabled 2025-07-10 16:04:41 +02:00
purgatory s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS 2025-02-08 09:58:19 +01:00
tools s390 updates for 6.12 merge window 2024-09-21 09:02:54 -07:00
Kbuild - An extensive rework of kexec and crash Kconfig from Eric DeVolder 2023-08-29 14:53:51 -07:00
Kconfig s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init() 2025-02-08 09:58:07 +01:00
Kconfig.debug s390/Kconfig.debug: fix indentation 2022-06-01 12:03:15 +02:00
Makefile s390: Fix linker error when -no-pie option is unavailable 2025-04-20 10:15:59 +02:00
Makefile.postlink s390/build: Avoid relocation information in final vmlinux 2024-08-27 20:16:48 +02:00