Skip to content
  • David Daney's avatar
    MIPS: Don't vmap things at address zero. · c8f3cc0b
    David Daney authored
    
    
    In the 64-bit kernel we use swapper_pg_dir for three different things.
    
    1) xuseg mappings for kernel threads.
    
    2) vmap mappings for all kernel-space accesses in xkseg.
    
    3) vmap mappings for kernel modules in ksseg (kseg2).
    
    Due to how the TLB refill handlers work, any mapping established in
    xkseg or ksseg will also establish a xuseg mapping that should never
    be used by the kernel.
    
    In order to be able to use exceptions to trap NULL pointer
    dereferences, we need to ensure that nothing is mapped at address
    zero.  Since vmap mappings in xkseg are reflected in xuseg, this means
    we need to ensure that there are no vmap mappings established at the
    start of xkseg.  So we move back VMALLOC_START to avoid establishing
    vmap mappings at the start of xkseg.
    
    Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1129/
    
    
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    c8f3cc0b