[PATCH v2 0/2] mm/vmalloc: harden remap_vmalloc_range_partial against NULL pages

From: Ye Liu

Date: Thu Oct 29 2026 - 05:23:30 EST


remap_vmalloc_range_partial() passes vmalloc_to_page()'s result to
vm_insert_page() unchecked, oopsing via page_folio() if the page is
NULL. The NULL case never happens today because VM_USERMAP areas keep
every page mapped, but that assumption is nowhere checked.

Patch 1 drops VM_DMA_COHERENT from the allow-list -- a dead entry (no
caller maps a DMA-coherent area through this path).

Patch 2 fails the mapping with -EINVAL instead of oopsing if
vmalloc_to_page() ever returns NULL, with a WARN to mark the broken
invariant.

Patch 1 is a behavior change (no in-tree caller affected)
Patch 2 only changes a failure path that cannot be reached today.
The two are independent.

Signed-off-by: Ye Liu <liuye@xxxxxxxxxx>
---
Changes in v2:
- patch 1: drop the vrealloc-shrink justification.
- patch 2: fail with -EINVAL rather than oopsing.
- Link to v1: https://patch.msgid.link/20261026-vmalloc_remap-v1-0-b7a907814e90@xxxxxxxxx

---
Ye Liu (2):
mm/vmalloc: drop VM_DMA_COHERENT from remap_vmalloc_range_partial
mm/vmalloc: reject NULL pages in remap_vmalloc_range_partial

mm/vmalloc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
---
base-commit: 2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
change-id: 20261026-vmalloc_remap-012cf418c2a8

Best regards,
--
Ye Liu <ye.liu@xxxxxxxxx>