On 9/7/23 08:44, Adrian Hunter wrote: > On 7/09/23 18:39, Dave Hansen wrote: >> On 9/6/23 00:39, Adrian Hunter wrote: >>> @@ -559,7 +567,8 @@ static int vmcore_remap_oldmem_pfn(struct vm_area_struct *vma, >>> * pages without a reason. >>> */ >>> idx = srcu_read_lock(&vmcore_cb_srcu); >>> - if (!list_empty(&vmcore_cb_list)) >>> + if (!list_empty(&vmcore_cb_list) || >>> + range_contains_unaccepted_memory(paddr, paddr + size)) >>> ret = remap_oldmem_pfn_checked(vma, from, pfn, size, prot); >>> else >>> ret = remap_oldmem_pfn_range(vma, from, pfn, size, prot); >> The whole callback mechanism which fs/proc/vmcore.c::pfn_is_ram() >> implements seems to be in place to ensure that there aren't a billion >> different "ram" checks in here. >> >> Is there a reason you can't register_vmcore_cb() a callback to check for >> unaccepted memory? > Someone asked for the change to be in arch-independent code... 😉 That doesn't really answer my question. virtio_mem_init_kdump(), for instance, is in arch-independent code.