From 710ef7f43a256494083907d9e05c77652a9c1aa7 Mon Sep 17 00:00:00 2001 From: David P Date: Wed, 18 May 2022 23:20:23 -0400 Subject: updpkg: libre/linux-libre-pae 5.17.9-1 Signed-off-by: David P --- ...-Remove-obsolete-rcu_needs_cpu-parameters.patch | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 libre/linux-libre-pae/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch (limited to 'libre/linux-libre-pae/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch') diff --git a/libre/linux-libre-pae/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch b/libre/linux-libre-pae/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch new file mode 100644 index 000000000..a63635d1a --- /dev/null +++ b/libre/linux-libre-pae/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch @@ -0,0 +1,101 @@ +From 1f17192df29b2410380147075754e8f40dc7af5b Mon Sep 17 00:00:00 2001 +From: Frederic Weisbecker +Date: Tue, 8 Feb 2022 17:16:33 +0100 +Subject: [PATCH 4/7] tick/rcu: Remove obsolete rcu_needs_cpu() parameters + +With the removal of CONFIG_RCU_FAST_NO_HZ, the parameters in +rcu_needs_cpu() are not necessary anymore. Simply remove them. + +Signed-off-by: Frederic Weisbecker +Cc: Thomas Gleixner +Cc: Peter Zijlstra +Cc: Paul E. McKenney +Cc: Paul Menzel +--- + include/linux/rcutiny.h | 3 +-- + include/linux/rcutree.h | 2 +- + kernel/rcu/tree.c | 3 +-- + kernel/time/tick-sched.c | 10 ++++------ + 4 files changed, 7 insertions(+), 11 deletions(-) + +diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h +index 858f4d429946..5fed476f977f 100644 +--- a/include/linux/rcutiny.h ++++ b/include/linux/rcutiny.h +@@ -64,9 +64,8 @@ static inline void rcu_softirq_qs(void) + rcu_tasks_qs(current, (preempt)); \ + } while (0) + +-static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt) ++static inline int rcu_needs_cpu(void) + { +- *nextevt = KTIME_MAX; + return 0; + } + +diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h +index 53209d669400..6cc91291d078 100644 +--- a/include/linux/rcutree.h ++++ b/include/linux/rcutree.h +@@ -19,7 +19,7 @@ + + void rcu_softirq_qs(void); + void rcu_note_context_switch(bool preempt); +-int rcu_needs_cpu(u64 basem, u64 *nextevt); ++int rcu_needs_cpu(void); + void rcu_cpu_stall_reset(void); + + /* +diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c +index 73a4c9d07b86..5dae0da879ae 100644 +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -1086,9 +1086,8 @@ void rcu_irq_enter_irqson(void) + * Just check whether or not this CPU has non-offloaded RCU callbacks + * queued. + */ +-int rcu_needs_cpu(u64 basemono, u64 *nextevt) ++int rcu_needs_cpu(void) + { +- *nextevt = KTIME_MAX; + return !rcu_segcblist_empty(&this_cpu_ptr(&rcu_data)->cblist) && + !rcu_rdp_is_offloaded(this_cpu_ptr(&rcu_data)); + } +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index 0578c9301b17..4c62fa0f70f1 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -785,7 +785,7 @@ static inline bool local_timer_softirq_pending(void) + + static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + { +- u64 basemono, next_tick, next_tmr, next_rcu, delta, expires; ++ u64 basemono, next_tick, delta, expires; + unsigned long basejiff; + unsigned int seq; + +@@ -808,7 +808,7 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + * minimal delta which brings us back to this place + * immediately. Lather, rinse and repeat... + */ +- if (rcu_needs_cpu(basemono, &next_rcu) || arch_needs_cpu() || ++ if (rcu_needs_cpu() || arch_needs_cpu() || + irq_work_needs_cpu() || local_timer_softirq_pending()) { + next_tick = basemono + TICK_NSEC; + } else { +@@ -819,10 +819,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + * disabled this also looks at the next expiring + * hrtimer. + */ +- next_tmr = get_next_timer_interrupt(basejiff, basemono); +- ts->next_timer = next_tmr; +- /* Take the next rcu event into account */ +- next_tick = next_rcu < next_tmr ? next_rcu : next_tmr; ++ next_tick = get_next_timer_interrupt(basejiff, basemono); ++ ts->next_timer = next_tick; + } + + /* +-- +2.36.1 + -- cgit v1.2.3