summaryrefslogtreecommitdiff
path: root/kernel/locking
diff options
context:
space:
mode:
authorFrederic Weisbecker <frederic@kernel.org>2025-11-30 22:20:33 +0100
committerFrederic Weisbecker <frederic@kernel.org>2025-11-30 22:20:33 +0100
commit9a08942f17017b708991c5089843d4a1bfac4420 (patch)
treeff6f10bf7f0a7bf3c77873c92d403d00b44c6e6c /kernel/locking
parenta50413848f1cf66fa7cb464271f9f81f78808121 (diff)
parent82a224498005b2a2e8edaba8e6b89464688f20e1 (diff)
Merge branch 'rcu/misc' into next
- In order to prepare the layout for nohz_full work deferral to user exit, the context tracking state must shrink the counter of transitions to/from RCU not watching. The only possible hazard is to trigger wrap-around more easily, delaying a bit grace periods when that happens. This should be a rare event though. Yet add debugging and torture code to test that assumption. - Fix memory leak on locktorture module - Annotate accesses in rculist_nulls.h to prevent from KCSAN warnings. On recent discussions, we also concluded that all those WRITE_ONCE() and READ_ONCE() on list APIs deserve appropriate comments. Something to be expected for the next cycle. - Provide a script to apply several configs to several commits with torture. - Allow torture to reuse a build directory in order to save needless rebuild time. - Various cleanups.
Diffstat (limited to 'kernel/locking')
-rw-r--r--kernel/locking/locktorture.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index ce0362f0a871..6567e5eeacc0 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -103,8 +103,8 @@ static const struct kernel_param_ops lt_bind_ops = {
.get = param_get_cpumask,
};
-module_param_cb(bind_readers, &lt_bind_ops, &bind_readers, 0644);
-module_param_cb(bind_writers, &lt_bind_ops, &bind_writers, 0644);
+module_param_cb(bind_readers, &lt_bind_ops, &bind_readers, 0444);
+module_param_cb(bind_writers, &lt_bind_ops, &bind_writers, 0444);
long torture_sched_setaffinity(pid_t pid, const struct cpumask *in_mask, bool dowarn);
@@ -1211,6 +1211,10 @@ end:
cxt.cur_ops->exit();
cxt.init_called = false;
}
+
+ free_cpumask_var(bind_readers);
+ free_cpumask_var(bind_writers);
+
torture_cleanup_end();
}