|
Message-Id: <20190712170024.111093-4-joel@joelfernandes.org> Date: Fri, 12 Jul 2019 13:00:18 -0400 From: "Joel Fernandes (Google)" <joel@...lfernandes.org> To: linux-kernel@...r.kernel.org Cc: "Joel Fernandes (Google)" <joel@...lfernandes.org>, Oleg Nesterov <oleg@...hat.com>, Alexey Kuznetsov <kuznet@....inr.ac.ru>, Bjorn Helgaas <bhelgaas@...gle.com>, Borislav Petkov <bp@...en8.de>, c0d1n61at3@...il.com, "David S. Miller" <davem@...emloft.net>, edumazet@...gle.com, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>, "H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...hat.com>, Jonathan Corbet <corbet@....net>, Josh Triplett <josh@...htriplett.org>, keescook@...omium.org, kernel-hardening@...ts.openwall.com, kernel-team@...roid.com, Lai Jiangshan <jiangshanlai@...il.com>, Len Brown <lenb@...nel.org>, linux-acpi@...r.kernel.org, linux-doc@...r.kernel.org, linux-pci@...r.kernel.org, linux-pm@...r.kernel.org, Mathieu Desnoyers <mathieu.desnoyers@...icios.com>, neilb@...e.com, netdev@...r.kernel.org, "Paul E. McKenney" <paulmck@...ux.ibm.com>, Pavel Machek <pavel@....cz>, peterz@...radead.org, "Rafael J. Wysocki" <rjw@...ysocki.net>, Rasmus Villemoes <rasmus.villemoes@...vas.dk>, rcu@...r.kernel.org, Steven Rostedt <rostedt@...dmis.org>, Tejun Heo <tj@...nel.org>, Thomas Gleixner <tglx@...utronix.de>, will@...nel.org, x86@...nel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)) Subject: [PATCH v2 3/9] rcu/sync: Remove custom check for reader-section The rcu/sync code was doing its own check whether we are in a reader section. With RCU consolidating flavors and the generic helper added in this series, this is no longer need. We can just use the generic helper and it results in a nice cleanup. Cc: Oleg Nesterov <oleg@...hat.com> Signed-off-by: Joel Fernandes (Google) <joel@...lfernandes.org> --- Please note: Only build and boot tested this particular patch so far. include/linux/rcu_sync.h | 5 ++--- kernel/rcu/sync.c | 22 ---------------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/include/linux/rcu_sync.h b/include/linux/rcu_sync.h index 6fc53a1345b3..c954f1efc919 100644 --- a/include/linux/rcu_sync.h +++ b/include/linux/rcu_sync.h @@ -39,9 +39,8 @@ extern void rcu_sync_lockdep_assert(struct rcu_sync *); */ static inline bool rcu_sync_is_idle(struct rcu_sync *rsp) { -#ifdef CONFIG_PROVE_RCU - rcu_sync_lockdep_assert(rsp); -#endif + RCU_LOCKDEP_WARN(!rcu_read_lock_any_held(), + "suspicious rcu_sync_is_idle() usage"); return !rsp->gp_state; /* GP_IDLE */ } diff --git a/kernel/rcu/sync.c b/kernel/rcu/sync.c index a8304d90573f..535e02601f56 100644 --- a/kernel/rcu/sync.c +++ b/kernel/rcu/sync.c @@ -10,37 +10,25 @@ #include <linux/rcu_sync.h> #include <linux/sched.h> -#ifdef CONFIG_PROVE_RCU -#define __INIT_HELD(func) .held = func, -#else -#define __INIT_HELD(func) -#endif - static const struct { void (*sync)(void); void (*call)(struct rcu_head *, void (*)(struct rcu_head *)); void (*wait)(void); -#ifdef CONFIG_PROVE_RCU - int (*held)(void); -#endif } gp_ops[] = { [RCU_SYNC] = { .sync = synchronize_rcu, .call = call_rcu, .wait = rcu_barrier, - __INIT_HELD(rcu_read_lock_held) }, [RCU_SCHED_SYNC] = { .sync = synchronize_rcu, .call = call_rcu, .wait = rcu_barrier, - __INIT_HELD(rcu_read_lock_sched_held) }, [RCU_BH_SYNC] = { .sync = synchronize_rcu, .call = call_rcu, .wait = rcu_barrier, - __INIT_HELD(rcu_read_lock_bh_held) }, }; @@ -49,16 +37,6 @@ enum { CB_IDLE = 0, CB_PENDING, CB_REPLAY }; #define rss_lock gp_wait.lock -#ifdef CONFIG_PROVE_RCU -void rcu_sync_lockdep_assert(struct rcu_sync *rsp) -{ - RCU_LOCKDEP_WARN(!gp_ops[rsp->gp_type].held(), - "suspicious rcu_sync_is_idle() usage"); -} - -EXPORT_SYMBOL_GPL(rcu_sync_lockdep_assert); -#endif - /** * rcu_sync_init() - Initialize an rcu_sync structure * @rsp: Pointer to rcu_sync structure to be initialized -- 2.22.0.510.g264f2c817a-goog
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.