[linux] 02/02: [rt] Rebase onto 3.2.93

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Mon Sep 18 02:01:53 UTC 2017


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch wheezy-security
in repository linux.

commit e202232e439e3aa4d177f921d7be86ba99771110
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Mon Sep 18 02:46:03 2017 +0100

    [rt] Rebase onto 3.2.93
---
 ...low-rt-tasks-to-cache-one-sigqueue-struct.patch | 48 +++++++++-------------
 1 file changed, 19 insertions(+), 29 deletions(-)

diff --git a/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
index 01ba9f0..8758530 100644
--- a/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+++ b/debian/patches/features/all/rt/0035-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -15,11 +15,9 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  kernel/signal.c        | 83 +++++++++++++++++++++++++++++++++++++++++++++++---
  5 files changed, 83 insertions(+), 5 deletions(-)
 
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index c72e75350e89..7c6e59299fbd 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1398,6 +1398,7 @@ struct task_struct {
+@@ -1400,6 +1400,7 @@ struct task_struct {
  /* signal handlers */
  	struct signal_struct *signal;
  	struct sighand_struct *sighand;
@@ -27,11 +25,9 @@ index c72e75350e89..7c6e59299fbd 100644
  
  	sigset_t blocked, real_blocked;
  	sigset_t saved_sigmask;	/* restored if set_restore_sigmask() was used */
-diff --git a/include/linux/signal.h b/include/linux/signal.h
-index a822300a253b..a4489006a5bb 100644
 --- a/include/linux/signal.h
 +++ b/include/linux/signal.h
-@@ -229,6 +229,7 @@ static inline void init_sigpending(struct sigpending *sig)
+@@ -229,6 +229,7 @@ static inline void init_sigpending(struc
  }
  
  extern void flush_sigqueue(struct sigpending *queue);
@@ -39,11 +35,9 @@ index a822300a253b..a4489006a5bb 100644
  
  /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
  static inline int valid_signal(unsigned long sig)
-diff --git a/kernel/exit.c b/kernel/exit.c
-index ee5a8786c3d2..adb477acf4b3 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
-@@ -141,7 +141,7 @@ static void __exit_signal(struct task_struct *tsk)
+@@ -141,7 +141,7 @@ static void __exit_signal(struct task_st
  	 * Do this under ->siglock, we can race with another thread
  	 * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals.
  	 */
@@ -52,11 +46,9 @@ index ee5a8786c3d2..adb477acf4b3 100644
  	tsk->sighand = NULL;
  	spin_unlock(&sighand->siglock);
  
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 29b460431c12..24887a0fddad 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
-@@ -1138,6 +1138,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1138,6 +1138,7 @@ static struct task_struct *copy_process(
  	spin_lock_init(&p->alloc_lock);
  
  	init_sigpending(&p->pending);
@@ -64,11 +56,9 @@ index 29b460431c12..24887a0fddad 100644
  
  	p->utime = cputime_zero;
  	p->stime = cputime_zero;
-diff --git a/kernel/signal.c b/kernel/signal.c
-index 3cc8b934cf93..7a682231bad5 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
-@@ -344,13 +344,45 @@ static bool task_participate_group_stop(struct task_struct *task)
+@@ -344,13 +344,45 @@ static bool task_participate_group_stop(
  	return false;
  }
  
@@ -115,7 +105,7 @@ index 3cc8b934cf93..7a682231bad5 100644
  {
  	struct sigqueue *q = NULL;
  	struct user_struct *user;
-@@ -367,7 +399,10 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
+@@ -367,7 +399,10 @@ __sigqueue_alloc(int sig, struct task_st
  	if (override_rlimit ||
  	    atomic_read(&user->sigpending) <=
  			task_rlimit(t, RLIMIT_SIGPENDING)) {
@@ -127,7 +117,7 @@ index 3cc8b934cf93..7a682231bad5 100644
  	} else {
  		print_dropped_signal(sig);
  	}
-@@ -384,6 +419,13 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
+@@ -384,6 +419,13 @@ __sigqueue_alloc(int sig, struct task_st
  	return q;
  }
  
@@ -141,7 +131,7 @@ index 3cc8b934cf93..7a682231bad5 100644
  static void __sigqueue_free(struct sigqueue *q)
  {
  	if (q->flags & SIGQUEUE_PREALLOC)
-@@ -393,6 +435,21 @@ static void __sigqueue_free(struct sigqueue *q)
+@@ -393,6 +435,21 @@ static void __sigqueue_free(struct sigqu
  	kmem_cache_free(sigqueue_cachep, q);
  }
  
@@ -163,11 +153,10 @@ index 3cc8b934cf93..7a682231bad5 100644
  void flush_sigqueue(struct sigpending *queue)
  {
  	struct sigqueue *q;
-@@ -405,6 +462,21 @@ void flush_sigqueue(struct sigpending *queue)
- 	}
+@@ -406,6 +463,21 @@ void flush_sigqueue(struct sigpending *q
  }
  
-+/*
+ /*
 + * Called from __exit_signal. Flush tsk->pending and
 + * tsk->sigqueue_cache
 + */
@@ -182,20 +171,21 @@ index 3cc8b934cf93..7a682231bad5 100644
 +		kmem_cache_free(sigqueue_cachep, q);
 +}
 +
- /*
++/*
   * Flush all pending signals for a task.
   */
-@@ -557,7 +629,7 @@ static void collect_signal(int sig, struct sigpending *list, siginfo_t *info)
- still_pending:
- 		list_del_init(&first->list);
- 		copy_siginfo(info, &first->info);
+ void __flush_signals(struct task_struct *t)
+@@ -564,7 +636,7 @@ still_pending:
+ 			(info->si_code == SI_TIMER) &&
+ 			(info->si_sys_private);
+ 
 -		__sigqueue_free(first);
 +		sigqueue_free_current(first);
  	} else {
  		/*
  		 * Ok, it wasn't in the queue.  This must be
-@@ -603,6 +675,8 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info)
- {
+@@ -611,6 +683,8 @@ int dequeue_signal(struct task_struct *t
+ 	bool resched_timer = false;
  	int signr;
  
 +	WARN_ON_ONCE(tsk != current);
@@ -203,7 +193,7 @@ index 3cc8b934cf93..7a682231bad5 100644
  	/* We only dequeue private signals from ourselves, we don't let
  	 * signalfd steal them
  	 */
-@@ -1516,7 +1590,8 @@ EXPORT_SYMBOL(kill_pid);
+@@ -1524,7 +1598,8 @@ EXPORT_SYMBOL(kill_pid);
   */
  struct sigqueue *sigqueue_alloc(void)
  {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list