• Zachary Amsden's avatar
    [PATCH] i386: encapsulate copying of pgd entries · d7271b14
    Zachary Amsden authored
    Add a clone operation for pgd updates.
    
    This helps complete the encapsulation of updates to page tables (or pages
    about to become page tables) into accessor functions rather than using
    memcpy() to duplicate them.  This is both generally good for consistency
    and also necessary for running in a hypervisor which requires explicit
    updates to page table entries.
    
    The new function is:
    
    clone_pgd_range(pgd_t *dst, pgd_t *src, int count);
    
       dst - pointer to pgd range anwhere on a pgd page
       src - ""
       count - the number of pgds to copy.
    
       dst and src can be on the same page, but the range must not overlap
       and must not cross a page boundary.
    
    Note that I ommitted using this call to copy pgd entries into the
    software suspend page root, since this is not technically a live paging
    structure, rather it is used on resume from suspend.  CC'ing Pavel in case
    he has any feedback on this.
    
    Thanks to Chris Wright for noticing that this could be more optimal in
    PAE compiles by eliminating the memset.
    Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    d7271b14
pgtable.h 15.1 KB