From 5595ff4eb8ba12515f5975f2e47a3aaa1134c9a2 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 12 Nov 2014 08:49:58 +0900 Subject: [PATCH] 3.17-stable patches added patches: sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch --- ...ched_setaffinity-under-rcu-read-lock.patch | 44 +++++++++++++++++++ queue-3.17/series | 1 + 2 files changed, 45 insertions(+) create mode 100644 queue-3.17/sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch diff --git a/queue-3.17/sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch b/queue-3.17/sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch new file mode 100644 index 00000000000..0789692bb25 --- /dev/null +++ b/queue-3.17/sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch @@ -0,0 +1,44 @@ +From f1e3a0932f3a9554371792a7daaf1e0eb19f66d5 Mon Sep 17 00:00:00 2001 +From: Kirill Tkhai +Date: Mon, 22 Sep 2014 22:36:36 +0400 +Subject: sched: Use rq->rd in sched_setaffinity() under RCU read lock + +From: Kirill Tkhai + +commit f1e3a0932f3a9554371792a7daaf1e0eb19f66d5 upstream. + +Probability of use-after-free isn't zero in this place. + +Signed-off-by: Kirill Tkhai +Signed-off-by: Peter Zijlstra (Intel) +Cc: Paul E. McKenney +Cc: Linus Torvalds +Link: http://lkml.kernel.org/r/20140922183636.11015.83611.stgit@localhost +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/sched/core.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -4008,13 +4008,14 @@ long sched_setaffinity(pid_t pid, const + * root_domain. + */ + #ifdef CONFIG_SMP +- if (task_has_dl_policy(p)) { +- const struct cpumask *span = task_rq(p)->rd->span; +- +- if (dl_bandwidth_enabled() && !cpumask_subset(span, new_mask)) { ++ if (task_has_dl_policy(p) && dl_bandwidth_enabled()) { ++ rcu_read_lock(); ++ if (!cpumask_subset(task_rq(p)->rd->span, new_mask)) { + retval = -EBUSY; ++ rcu_read_unlock(); + goto out_unlock; + } ++ rcu_read_unlock(); + } + #endif + again: diff --git a/queue-3.17/series b/queue-3.17/series index ea9fb911470..e76318c5eac 100644 --- a/queue-3.17/series +++ b/queue-3.17/series @@ -279,3 +279,4 @@ crypto-algif-avoid-excessive-use-of-socket-buffer-in-skcipher.patch mtd-m25p80-fix-module-aliases-for-m25p80.patch usb-dwc3-gadget-fix-set_halt-bug-with-pending-transfers.patch usb-gadget-function-acm-make-f_acm-pass-usb20cv-chapter9.patch +sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch -- 2.47.3