diff options
author | Christophe Leroy <christophe.leroy@c-s.fr> | 2020-01-23 17:30:47 +0000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2020-01-26 00:11:35 +1100 |
commit | def0bfdbd6039e96a9eb2baaa4470b079daab0d4 (patch) | |
tree | ec4077cf1931e6bd1018a3c3b5526c721b05624b /arch/powerpc/mm/fault.c | |
parent | 1e3531982ee70adf1880715a968d9c3365f321ed (diff) | |
download | lwn-def0bfdbd6039e96a9eb2baaa4470b079daab0d4.tar.gz lwn-def0bfdbd6039e96a9eb2baaa4470b079daab0d4.zip |
powerpc: use probe_user_read() and probe_user_write()
Instead of opencoding, use probe_user_read() to failessly read
a user location and probe_user_write() for writing to user.
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/e041f5eedb23f09ab553be8a91c3de2087147320.1579800517.git.christophe.leroy@c-s.fr
Diffstat (limited to 'arch/powerpc/mm/fault.c')
-rw-r--r-- | arch/powerpc/mm/fault.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index b5047f9b5dec..9e119f98a725 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c @@ -279,12 +279,8 @@ static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address, if ((flags & FAULT_FLAG_WRITE) && (flags & FAULT_FLAG_USER) && access_ok(nip, sizeof(*nip))) { unsigned int inst; - int res; - pagefault_disable(); - res = __get_user_inatomic(inst, nip); - pagefault_enable(); - if (!res) + if (!probe_user_read(&inst, nip, sizeof(inst))) return !store_updates_sp(inst); *must_retry = true; } |