[RFC v2 18/26] rcu: Make percpu rcu_data non-static

From: Alexandre Chartre
Date: Thu Jul 11 2019 - 10:28:05 EST


Make percpu rcu_data non-static so that it can be mapped into an
isolation address space page-table. This will allow address space
isolation to use RCU without faulting.

Signed-off-by: Alexandre Chartre <alexandre.chartre@xxxxxxxxxx>
---
kernel/rcu/tree.c | 2 +-
kernel/rcu/tree.h | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 44dd3b4..2827b2b 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -126,7 +126,7 @@ static void rcu_check_gp_start_stall(struct rcu_node *rnp, struct rcu_data *rdp,
#define rcu_eqs_special_exit() do { } while (0)
#endif

-static DEFINE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_data) = {
+DEFINE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_data) = {
.dynticks_nesting = 1,
.dynticks_nmi_nesting = DYNTICK_IRQ_NONIDLE,
.dynticks = ATOMIC_INIT(RCU_DYNTICK_CTRL_CTR),
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index 9790b58..a043fde 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -394,3 +394,4 @@ struct rcu_state {
int rcu_dynticks_snap(struct rcu_data *rdp);
void call_rcu(struct rcu_head *head, rcu_callback_t func);

+DECLARE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_data);
--
1.7.1