From: Greg Kroah-Hartman Date: Wed, 24 Apr 2019 13:52:33 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v3.18.139~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e0d67f35848526a4f0f266772190d2778bad0b56;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: device_cgroup-fix-rcu-imbalance-in-error-case.patch --- diff --git a/queue-3.18/device_cgroup-fix-rcu-imbalance-in-error-case.patch b/queue-3.18/device_cgroup-fix-rcu-imbalance-in-error-case.patch new file mode 100644 index 00000000000..90c833ea22e --- /dev/null +++ b/queue-3.18/device_cgroup-fix-rcu-imbalance-in-error-case.patch @@ -0,0 +1,42 @@ +From 0fcc4c8c044e117ac126ab6df4138ea9a67fa2a9 Mon Sep 17 00:00:00 2001 +From: Jann Horn +Date: Tue, 19 Mar 2019 02:36:59 +0100 +Subject: device_cgroup: fix RCU imbalance in error case + +From: Jann Horn + +commit 0fcc4c8c044e117ac126ab6df4138ea9a67fa2a9 upstream. + +When dev_exception_add() returns an error (due to a failed memory +allocation), make sure that we move the RCU preemption count back to where +it was before we were called. We dropped the RCU read lock inside the loop +body, so we can't just "break". + +sparse complains about this, too: + +$ make -s C=2 security/device_cgroup.o +./include/linux/rcupdate.h:647:9: warning: context imbalance in +'propagate_exception' - unexpected unlock + +Fixes: d591fb56618f ("device_cgroup: simplify cgroup tree walk in propagate_exception()") +Cc: stable@vger.kernel.org +Signed-off-by: Jann Horn +Acked-by: Michal Hocko +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman + +--- + security/device_cgroup.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/security/device_cgroup.c ++++ b/security/device_cgroup.c +@@ -568,7 +568,7 @@ static int propagate_exception(struct de + devcg->behavior == DEVCG_DEFAULT_ALLOW) { + rc = dev_exception_add(devcg, ex); + if (rc) +- break; ++ return rc; + } else { + /* + * in the other possible cases: diff --git a/queue-3.18/series b/queue-3.18/series index f21f6435ea1..04ca2e4c037 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -102,3 +102,4 @@ x86-kprobes-verify-stack-frame-on-kretprobe.patch kprobes-fix-error-check-when-reusing-optimized-probes.patch mac80211-do-not-call-driver-wake_tx_queue-op-during-reconfig.patch sched-fair-limit-sched_cfs_period_timer-loop-to-avoi.patch +device_cgroup-fix-rcu-imbalance-in-error-case.patch