[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200922215651.GE29330@paulmck-ThinkPad-P72>
Date: Tue, 22 Sep 2020 14:56:51 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Randy Dunlap <rdunlap@...radead.org>
Cc: linux-kernel@...r.kernel.org, kernel test robot <lkp@...el.com>,
"Rafael J . Wysocki" <rjw@...ysocki.net>,
linux-acpi@...r.kernel.org, Peter Zijlstra <peterz@...radead.org>,
Tony Luck <tony.luck@...el.com>,
Fenghua Yu <fenghua.yu@...el.com>, linux-ia64@...r.kernel.org,
Josh Triplett <josh@...htriplett.org>, rcu@...r.kernel.org
Subject: Re: [PATCH] RCU: export rcu_idle_enter/_exit for loadable modules
On Tue, Sep 22, 2020 at 02:43:30PM -0700, Randy Dunlap wrote:
> drivers/acpi/processor.ko uses rcu_idle_enter()/_exit() but
> they are not exported. This causes build errors on IA64,
> so export those 2 functions.
>
> ERROR: modpost: "rcu_idle_enter" [drivers/acpi/processor.ko] undefined!
> ERROR: modpost: "rcu_idle_exit" [drivers/acpi/processor.ko] undefined!
>
> Reported-by: kernel test robot <lkp@...el.com>
> Signed-off-by: Randy Dunlap <rdunlap@...radead.org>
> Cc: Rafael J. Wysocki <rjw@...ysocki.net>
> Cc: linux-acpi@...r.kernel.org
> Cc: Peter Zijlstra <peterz@...radead.org>
> Cc: Tony Luck <tony.luck@...el.com>
> Cc: Fenghua Yu <fenghua.yu@...el.com>
> Cc: linux-ia64@...r.kernel.org
> Cc: "Paul E. McKenney" <paulmck@...nel.org>
> Cc: Josh Triplett <josh@...htriplett.org>
> Cc: rcu@...r.kernel.org
> ---
> Is there a problem with exporting these functions for use by
> loadable modules? If so, this driver should be modified not
> to use rcu_idle_enter/exit.
Good catch, but Borislav Petkov beat you to it:
https://lore.kernel.org/lkml/20200921103741.GC5901@zn.tnic/
Rafael has applied Borislav's patch to his cpuidle tree for v5.9-rc7.
Thanx, Paul
> kernel/rcu/tree.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> --- lnx-59-rc6.orig/kernel/rcu/tree.c
> +++ lnx-59-rc6/kernel/rcu/tree.c
> @@ -673,6 +673,7 @@ void rcu_idle_enter(void)
> lockdep_assert_irqs_disabled();
> rcu_eqs_enter(false);
> }
> +EXPORT_SYMBOL_GPL(rcu_idle_enter);
>
> #ifdef CONFIG_NO_HZ_FULL
> /**
> @@ -886,6 +887,7 @@ void rcu_idle_exit(void)
> rcu_eqs_exit(false);
> local_irq_restore(flags);
> }
> +EXPORT_SYMBOL_GPL(rcu_idle_exit);
>
> #ifdef CONFIG_NO_HZ_FULL
> /**
Powered by blists - more mailing lists