Skip to content
  • Jan Beulich's avatar
    x86-64: Fix accounting in kernel_physical_mapping_init() · 20167d34
    Jan Beulich authored
    
    
    When finding a present and acceptable 2M/1G mapping, the number
    of pages mapped this way shouldn't be incremented (as it was
    already incremented when the earlier part of the mapping was
    established). Instead, last_map_addr needs to be updated in this
    case.
    
    Further, address increments were wrong in one place each in both
    phys_pmd_init() and phys_pud_init() (lacking the aligning down
    to the respective page boundary).
    
    As we're now doing the same calculation several times, fold it
    into a single instance using a local variable (matching how
    kernel_physical_mapping_init() itself does it at the PGD level).
    
    Observed during code inspection, not because of an actual
    problem.
    
    Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/4FB3C27202000078000841A0@nat28.tlf.novell.com
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    20167d34