On Wed, 06 Dec 2023 17:31:30 -0800 Ankur Arora <ankur.a.arora@xxxxxxxxxx> wrote: > --- > diff --git a/include/linux/preempt.h b/include/linux/preempt.h > index 9aa6358a1a16..d8139cda8814 100644 > --- a/include/linux/preempt.h > +++ b/include/linux/preempt.h > @@ -226,9 +226,11 @@ do { \ > #ifdef CONFIG_PREEMPTION > #define preempt_enable() \ > do { \ > barrier(); \ > if (unlikely(preempt_count_dec_and_test())) \ > __preempt_schedule(); \ > + else if (unlikely(raw_cpu_read(rcu_data.rcu_urgent_qs))) \ Shouldn't this still have the: else if (!IS_ENABLED(CONFIG_PREEMPT_RCU) && \ That is, is it needed when PREEMPT_RCU is set? -- Steve > + rcu_all_qs_check(); > } while (0) > > #define preempt_enable_notrace() \