Skip to content

Commit

Permalink
microblaze: evict the check for kernel_mode(regs) from do_notify_resu…
Browse files Browse the repository at this point in the history
…me()

Only one caller hasn't done it in assembler - work_pending on !MMU.
Everything else can't reach do_notify_resume() if we are returning
to kernel mode, so move that check to that sole caller and make
do_notify_resume() reachable only when returning to userland.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Feb 3, 2013
1 parent 4a9d32d commit c886a9f
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 9 deletions.
3 changes: 3 additions & 0 deletions arch/microblaze/kernel/entry-nommu.S
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,8 @@ ENTRY(ret_from_kernel_thread)
addk r3, r0, r0

work_pending:
lwi r11, r1, PT_MODE
bneid r11, 2f
enable_irq

andi r11, r19, _TIF_NEED_RESCHED
Expand All @@ -507,6 +509,7 @@ ENTRY(ret_to_user)
no_work_pending:
disable_irq

2:
/* save r31 */
swi r31, r0, PER_CPU(CURRENT_SAVE)
/* save mode indicator */
Expand Down
9 changes: 0 additions & 9 deletions arch/microblaze/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,15 +343,6 @@ static void do_signal(struct pt_regs *regs, int in_syscall)

asmlinkage void do_notify_resume(struct pt_regs *regs, int in_syscall)
{
/*
* We want the common case to go fast, which
* is why we may in certain cases get here from
* kernel mode. Just return without doing anything
* if so.
*/
if (kernel_mode(regs))
return;

if (test_thread_flag(TIF_SIGPENDING))
do_signal(regs, in_syscall);

Expand Down

0 comments on commit c886a9f

Please sign in to comment.