aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel
diff options
context:
space:
mode:
authorStephen Boyd <stephen.boyd@linaro.org>2017-04-05 12:18:31 -0700
committerCatalin Marinas <catalin.marinas@arm.com>2017-04-06 17:36:09 +0100
commitb824b930682308ce453b73b0e3ba9686e1f3a93a (patch)
tree88ced851e68471fa58189e79eb68235b147b1993 /arch/arm64/kernel
parentefi/libstub/arm*: Set default address and size cells values for an empty dtb (diff)
downloadlinux-dev-b824b930682308ce453b73b0e3ba9686e1f3a93a.tar.xz
linux-dev-b824b930682308ce453b73b0e3ba9686e1f3a93a.zip
arm64: print a fault message when attempting to write RO memory
If a page is marked read only we should print out that fact, instead of printing out that there was a page fault. Right now we get a cryptic error message that something went wrong with an unhandled fault, but we don't evaluate the esr to figure out that it was a read/write permission fault. Instead of seeing: Unable to handle kernel paging request at virtual address ffff000008e460d8 pgd = ffff800003504000 [ffff000008e460d8] *pgd=0000000083473003, *pud=0000000083503003, *pmd=0000000000000000 Internal error: Oops: 9600004f [#1] PREEMPT SMP we'll see: Unable to handle kernel write to read-only memory at virtual address ffff000008e760d8 pgd = ffff80003d3de000 [ffff000008e760d8] *pgd=0000000083472003, *pud=0000000083435003, *pmd=0000000000000000 Internal error: Oops: 9600004f [#1] PREEMPT SMP We also add a userspace address check into is_permission_fault() so that the function doesn't return true for ttbr0 PAN faults when it shouldn't. Reviewed-by: James Morse <james.morse@arm.com> Tested-by: James Morse <james.morse@arm.com> Acked-by: Laura Abbott <labbott@redhat.com> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel')
0 files changed, 0 insertions, 0 deletions