• Li Yang's avatar
    powerpc/fsl-booke: Fix InstructionTLBError execute permission check · 78e2e68a
    Li Yang authored
    In CONFIG_PTE_64BIT the PTE format has unique permission bits for user
    and supervisor execute.  However on !CONFIG_PTE_64BIT we overload the
    supervisor bit to imply user execute with _PAGE_USER set.  This allows
    us to use the same permission check mask for user or supervisor code on
    !CONFIG_PTE_64BIT.
    
    However, on CONFIG_PTE_64BIT we map _PAGE_EXEC to _PAGE_BAP_UX so we
    need a different permission mask based on the fault coming from a kernel
    address or user space.
    
    Without unique permission masks we see issues like the following with
    modules:
    
    Unable to handle kernel paging request for instruction fetch
    Faulting instruction address: 0xf938d040
    Oops: Kernel access of bad area, sig: 11 [#1]
    Signed-off-by: default avatarLi Yang <leoli@freescale.com>
    Signed-off-by: default avatarJin Qing <b24347@freescale.com>
    Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
    78e2e68a
head_fsl_booke.S 28.4 KB