summaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.ibm.com>2019-05-23 22:56:12 +0200
committerPaul E. McKenney <paulmck@linux.ibm.com>2019-08-13 23:35:49 +0200
commitce0a825e40606d6dbe6dfe90d4d4c0ccc9fa3bde (patch)
tree178dccd9ca01e5f563652148c271ca995da9f3dd /kernel/rcu
parentrcu/nocb: Never downgrade ->nocb_defer_wakeup in wake_nocb_gp_defer() (diff)
downloadlinux-ce0a825e40606d6dbe6dfe90d4d4c0ccc9fa3bde.tar.xz
linux-ce0a825e40606d6dbe6dfe90d4d4c0ccc9fa3bde.zip
rcu/nocb: Make __call_rcu_nocb_wake() safe for many callbacks
It might be hard to imagine having more than two billion callbacks queued on a single CPU's ->cblist, but someone will do it sometime. This commit therefore makes __call_rcu_nocb_wake() handle this situation by upgrading local variable "len" from "int" to "long". Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tree_plugin.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index b9e00660af60..5cbc0848647c 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -1615,7 +1615,7 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, bool was_alldone,
unsigned long flags)
__releases(rdp->nocb_lock)
{
- int len;
+ long len;
struct task_struct *t;
// If we are being polled or there is no kthread, just leave.