diff options
| author | 2012-02-28 12:42:14 +0000 | |
|---|---|---|
| committer | 2012-02-28 12:42:21 +0000 | |
| commit | fb0b82b32ce17564bc64cede50bf4a3204eecc60 (patch) | |
| tree | 00b5e466074c6fb373d64c493b3341186024acc7 /arch/powerpc/kernel/signal.c | |
| parent | Merge branch 'kirkwood/board' into next/boards (diff) | |
| parent | ARM: pxa: add dummy clock for pxa25x and pxa27x (diff) | |
| download | wireguard-linux-fb0b82b32ce17564bc64cede50bf4a3204eecc60.tar.xz wireguard-linux-fb0b82b32ce17564bc64cede50bf4a3204eecc60.zip | |
Merge branch 'board-specific' of git://github.com/hzhuang1/linux into next/boards
* 'board-specific' of git://github.com/hzhuang1/linux: (5 commits)
  ARM: pxa: add dummy clock for pxa25x and pxa27x
  ARM: mmp: append irq name of gpio device
  pxa/hx4700: Fix PXA_GPIO_IRQ_BASE/IRQ_NUM values
  pxa/hx4700: Add ASIC3 LED support
  pxa/hx4700: Correct StrataFlash block size discovery
(update to v3.3-rc5)
Diffstat (limited to 'arch/powerpc/kernel/signal.c')
| -rw-r--r-- | arch/powerpc/kernel/signal.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c index 2300426e531a..ac6e437b1021 100644 --- a/arch/powerpc/kernel/signal.c +++ b/arch/powerpc/kernel/signal.c @@ -11,6 +11,7 @@  #include <linux/tracehook.h>  #include <linux/signal.h> +#include <linux/key.h>  #include <asm/hw_breakpoint.h>  #include <asm/uaccess.h>  #include <asm/unistd.h> @@ -113,8 +114,9 @@ static void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka,  	}  } -static int do_signal_pending(sigset_t *oldset, struct pt_regs *regs) +static int do_signal(struct pt_regs *regs)  { +	sigset_t *oldset;  	siginfo_t info;  	int signr;  	struct k_sigaction ka; @@ -123,7 +125,7 @@ static int do_signal_pending(sigset_t *oldset, struct pt_regs *regs)  	if (current_thread_info()->local_flags & _TLF_RESTORE_SIGMASK)  		oldset = ¤t->saved_sigmask; -	else if (!oldset) +	else  		oldset = ¤t->blocked;  	signr = get_signal_to_deliver(&info, &ka, regs, NULL); @@ -191,14 +193,16 @@ static int do_signal_pending(sigset_t *oldset, struct pt_regs *regs)  	return ret;  } -void do_signal(struct pt_regs *regs, unsigned long thread_info_flags) +void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags)  {  	if (thread_info_flags & _TIF_SIGPENDING) -		do_signal_pending(NULL, regs); +		do_signal(regs);  	if (thread_info_flags & _TIF_NOTIFY_RESUME) {  		clear_thread_flag(TIF_NOTIFY_RESUME);  		tracehook_notify_resume(regs); +		if (current->replacement_session_keyring) +			key_replace_session_keyring();  	}  } | 
