• David Hildenbrand's avatar
    s390/vmem: consolidate vmem_add_range() and vmem_remove_range() · 3e0d3e40
    David Hildenbrand authored
    We want to have only a single pagetable walker and reuse the same
    functionality for vmemmap handling. Let's start by consolidating
    vmem_add_range() and vmem_remove_range(), converting it into a
    recursive implementation.
    
    A recursive implementation makes it easier to expand individual cases
    without harming readability. In addition, we minimize traversing the
    whole hierarchy over and over again.
    
    One change is that we don't unmap large PMDs/PUDs when not completely
    covered by the request, something that should never happen with direct
    mappings, unless one would be removing in other granularity than added,
    which would be broken already.
    
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
    Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Message-Id: <20200722094558.9828-3-david@redhat.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    3e0d3e40
vmem.c 9.47 KB