From 485ab39b2b1c3e5348d37108c4056bf83cc4a5c4 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sat, 28 Apr 2012 17:51:42 -0400 Subject: [PATCH] --- yaml --- r: 309007 b: refs/heads/master c: 21c1176a72bd019d513b26e05d491a31b50b18d2 h: refs/heads/master i: 309005: c86df37ebf90e069bdbbe2afb6039dadefc26a1c 309003: f6a7a76b7e745489e561b11311e317cd4c43bc85 308999: 7c986b6a0c18da6622ef4e9eae4e75c207f9e023 308991: 0cc79fc9c1de3d14526526bcb7358af6f56725b6 v: v3 --- [refs] | 2 +- trunk/arch/arm/kernel/entry-common.S | 3 +++ trunk/arch/arm/kernel/signal.c | 9 --------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 2af4755308f9..24b1e4405f3f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d9be5ea6f9b6a51535ccdd9881ffb3be2dbd48e9 +refs/heads/master: 21c1176a72bd019d513b26e05d491a31b50b18d2 diff --git a/trunk/arch/arm/kernel/entry-common.S b/trunk/arch/arm/kernel/entry-common.S index 82aaf0aeb85d..b669b49d7cc4 100644 --- a/trunk/arch/arm/kernel/entry-common.S +++ b/trunk/arch/arm/kernel/entry-common.S @@ -56,7 +56,10 @@ work_pending: /* * TIF_SIGPENDING or TIF_NOTIFY_RESUME must've been set if we got here */ + ldr r2, [sp, #S_PSR] mov r0, sp @ 'regs' + tst r2, #15 @ are we returning to user mode? + bne no_work_pending @ no? just leave, then... mov r2, why @ 'syscall' tst r1, #_TIF_SIGPENDING @ delivering a signal? movne why, #0 @ prevent further restarts diff --git a/trunk/arch/arm/kernel/signal.c b/trunk/arch/arm/kernel/signal.c index 3b37c14c47f5..6b37d4ddf0b6 100644 --- a/trunk/arch/arm/kernel/signal.c +++ b/trunk/arch/arm/kernel/signal.c @@ -608,15 +608,6 @@ static void do_signal(struct pt_regs *regs, int syscall) siginfo_t info; int signr; - /* - * 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 (!user_mode(regs)) - return; - /* * If we were from a system call, check for system call restarting... */