On 05/24/2017 12:54 PM, Kirill A. Shutemov wrote:
> This basically restores slightly modified version of original
> sync_global_pgds() which we had before folded p4d was introduced.
> 
> The only modification is protection against 'addr' overflow.
> 
> Signed-off-by: Kirill A. Shutemov <[email protected]>
> ---
>  arch/x86/mm/init_64.c | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
> 
> diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
> index 95651dc58e09..ce410c05d68d 100644
> --- a/arch/x86/mm/init_64.c
> +++ b/arch/x86/mm/init_64.c
> @@ -92,6 +92,44 @@ __setup("noexec32=", nonx32_setup);
>   * When memory was added make sure all the processes MM have
>   * suitable PGD entries in the local PGD level page.
>   */
> +#ifdef CONFIG_X86_5LEVEL
> +void sync_global_pgds(unsigned long start, unsigned long end)
> +{
> +     unsigned long addr;
> +
> +     for (addr = start; addr <= end; addr += ALIGN(addr + 1, PGDIR_SIZE)) {

                                        addr = ALIGN(addr + 1, PGDIR_SIZE)

Reply via email to