diff options
Diffstat (limited to 'arch/arm64/mm/fault.c')
-rw-r--r-- | arch/arm64/mm/fault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 013e2cbe7924..b1166d1e5955 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c | |||
@@ -280,7 +280,8 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr, | |||
280 | } | 280 | } |
281 | 281 | ||
282 | if (permission_fault(esr) && (addr < USER_DS)) { | 282 | if (permission_fault(esr) && (addr < USER_DS)) { |
283 | if (get_fs() == KERNEL_DS) | 283 | /* regs->orig_addr_limit may be 0 if we entered from EL0 */ |
284 | if (regs->orig_addr_limit == KERNEL_DS) | ||
284 | die("Accessing user space memory with fs=KERNEL_DS", regs, esr); | 285 | die("Accessing user space memory with fs=KERNEL_DS", regs, esr); |
285 | 286 | ||
286 | if (!search_exception_tables(regs->pc)) | 287 | if (!search_exception_tables(regs->pc)) |