Messages in this thread | | | Date | Tue, 10 Dec 2013 16:46:12 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH v6 2/8] x86: allow to call text_poke_bp during boot |
| |
On Tue, Dec 10, 2013 at 04:42:14PM +0100, Petr Mladek wrote: > We would like to use text_poke_bp in ftrace. It might be called also during > boot when there is only one CPU and we do not need to sync the others. > > The check is must to have because there are also disabled interrupts during > the boot. Then the call would cause a deadlock, see the warning in > "smp_call_function_many", kernel/smp.c:371. > > The change is inspired by the code in arch/x86/kernel/ftrace.c. > > Signed-off-by: Petr Mladek <pmladek@suse.cz> > Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> > --- > arch/x86/kernel/alternative.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c > index eabed9326d2a..6436beec7b0c 100644 > --- a/arch/x86/kernel/alternative.c > +++ b/arch/x86/kernel/alternative.c > @@ -599,6 +599,17 @@ static void do_sync_core(void *info) > sync_core(); > } > > +static void run_sync(void)
Can we call this sync_cores()?
It is what it does. :)
> +{ > + /* > + * We do not need to sync other cores during boot when there is only one > + * CPU enabled. In fact, we must not because there are also disabled > + * interrupts. The call would fail because of a potential deadlock. > + */ > + if (num_online_cpus() != 1) > + on_each_cpu(do_sync_core, NULL, 1); > +}
-- Regards/Gruss, Boris.
Sent from a fat crate under my desk. Formatting is fine. --
| |