[1/2] powerpc/mm: Remove duplicated check in do_page_fault()
Michael Ellerman
mpe at ellerman.id.au
Mon May 9 20:03:50 AEST 2016
On Fri, 2016-26-02 at 00:26:25 UTC, Gavin Shan wrote:
> When the page fault happened in user space, we need check it's
> caused by stack frame pointer update instruction and update
> local variable @flag with FAULT_FLAG_USER. Currently, the code
> has two separate check for the same condition. That's unnecessary.
>
> This removes one of the duplicated check. No functinal changes
> introduced.
It's possible though that store_updates_sp() changes regs, and causes
user_mode(regs) to change, which would mean the second check is necessary.
That's not true with the current code, but you should mention that you confirmed
that in the change log.
> diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
> index a67c6d7..935f386 100644
> --- a/arch/powerpc/mm/fault.c
> +++ b/arch/powerpc/mm/fault.c
> @@ -294,11 +294,10 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
> * can result in fault, which will cause a deadlock when called with
> * mmap_sem held
> */
> - if (user_mode(regs))
> - store_update_sp = store_updates_sp(regs);
> -
> - if (user_mode(regs))
> + if (user_mode(regs)) {
> flags |= FAULT_FLAG_USER;
> + store_update_sp = store_updates_sp(regs);
> + }
It doesn't really matter in this case, but it would be better to keep the
ordering of the two statements the same as before.
cheers
More information about the Linuxppc-dev
mailing list