summaryrefslogtreecommitdiffstats
path: root/include/linux/signal.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-04 11:08:32 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-04 11:08:32 -0700
commitf357a82048ff1e5645861475b014570e11ad1911 (patch)
treea3ca0cf7b1638d3e8b0a1cb5815af43dd6e0c2c3 /include/linux/signal.h
parentb20c99eb668f10b855a9fd87e0a2f5db3fb3637d (diff)
parentbd1c149aa9915b9abb6d83d0f01dfd2ace0680b5 (diff)
Merge branch 'x86-smap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 SMAP fixes from Ingo Molnar: "Fixes for Intel SMAP support, to fix SIGSEGVs during bootup" * 'x86-smap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: Introduce [compat_]save_altstack_ex() to unbreak x86 SMAP x86, smap: Handle csum_partial_copy_*_user()
Diffstat (limited to 'include/linux/signal.h')
-rw-r--r--include/linux/signal.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/signal.h b/include/linux/signal.h
index d897484730c..2ac423bdb67 100644
--- a/include/linux/signal.h
+++ b/include/linux/signal.h
@@ -434,6 +434,14 @@ void signals_init(void);
int restore_altstack(const stack_t __user *);
int __save_altstack(stack_t __user *, unsigned long);
+#define save_altstack_ex(uss, sp) do { \
+ stack_t __user *__uss = uss; \
+ struct task_struct *t = current; \
+ put_user_ex((void __user *)t->sas_ss_sp, &__uss->ss_sp); \
+ put_user_ex(sas_ss_flags(sp), &__uss->ss_flags); \
+ put_user_ex(t->sas_ss_size, &__uss->ss_size); \
+} while (0);
+
#ifdef CONFIG_PROC_FS
struct seq_file;
extern void render_sigset_t(struct seq_file *, const char *, sigset_t *);