[RFC v2 4/5] x86/crash: make the page that stores the LUKS volume key inaccessible
Dave Hansen
dave.hansen at intel.com
Fri Nov 4 07:38:17 PDT 2022
On 11/4/22 04:29, Coiby Xu wrote:
> + if (kexec_crash_image->luks_volume_key_addr) {
> + start = kexec_crash_image->luks_volume_key_addr;
> + end = start + kexec_crash_image->luks_volume_key_sz - 1;
> + page = pfn_to_page(start >> PAGE_SHIFT);
> + nr_pages = (end >> PAGE_SHIFT) - (start >> PAGE_SHIFT) + 1;
> + set_memory_np((unsigned long)page_address(page), nr_pages);
> + }
Why does this go pfn -> page -> vaddr? What good does having the page
do? Can you just do phys_to_virt() on the start address? Maybe:
start_paddr = kexec_crash_image->luks_volume_key_addr;
end_paddr = start_paddr + kexec_crash_image->luks_volume_key_sz - 1;
nr_pages = (PAGE_ALIGN(end_paddr) - PAGE_ALIGN_DOWN(start_paddr))/
PAGE_SIZE;
set_memory_np((unsigned long)phys_to_virt(start_paddr), nr_pages);
Also, if you resend this, please just cc the x86 folks on the series.
The other patches and cover letter have desperately needed context
around this.
More information about the kexec
mailing list