On 6/24/2024 1:26 PM, Borislav Petkov wrote: >> + */ >> + >> + addr = PAGE_OFFSET; >> + end = PAGE_OFFSET + get_max_mapped(); >> + >> + while (addr < end) { >> + unsigned long size; >> + unsigned int level; >> + pte_t *pte; >> + >> + pte = lookup_address(addr, &level); >> + size = page_level_size(level); >> + >> + /* >> + * pte_none() check is required to skip physical memory holes in direct mapped. > This sentence needs to be written for humans. And come to think of it, you can > simply drop it. lookup_address() can return NULL so you simply need to check > its retval. I had to additionally add check for pte_none() here to handle physical memory holes in direct mapping. Looking at lookup_address_in_pgd_attr(), at pte level it is simply returning pte_offset_kernel() and there does not seem to be a check for returning NULL if pte_none() ? Probably need to fix lookup_address_in_pgd_attr(), to add check for pte_none() after pte_offset_kernel() and return NULL if it is true. Thanks, Ashish >> + */ >> + if (pte && pte_decrypted(*pte) && !pte_none(*pte)) { >> + int pages = size / PAGE_SIZE; >> _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec