Re: [PATCH v12 01/11] x86: text_poke() may access uninitialized struct pages

From: Thomas Gleixner
Date: Mon Jun 25 2018 - 05:18:41 EST


On Mon, 25 Jun 2018, Peter Zijlstra wrote:
> On Mon, Jun 25, 2018 at 10:39:24AM +0200, Thomas Gleixner wrote:
> > On Mon, 25 Jun 2018, Peter Zijlstra wrote:
> > > I'm not entirely sure this is right.. Because not only do we need the
> > > whole fixmap stuff working, we also need #DB and the IPI handlers set-up
> > > and working.
> >
> > IPI? That's early UP boot why would you need an IPI?
>
> Because the way this is called is from __jump_label_transform() ->
> text_poke_bp() -> text_poke() -> text_poke_early().
>
> And if you look at text_poke_bp(), you'll note it relies on #DB and
> on_each_cpu() IPIs.

on_each_cpu() resolves to a direct call on the current CPU and as there is
no other CPU it does not matter. #DB might be a different story, haven't
looked yet.

> Which is of course exactly the reason I avoided text_poke_bp() entirely
> in the first place.

Fair enough.

Thanks,

tglx