Re: [PATCH v12 01/11] x86: text_poke() may access uninitialized struct pages
From: Thomas Gleixner
Date: Mon Jun 25 2018 - 04:41:03 EST
On Mon, 25 Jun 2018, Peter Zijlstra wrote:
> On Thu, Jun 21, 2018 at 05:25:08PM -0400, Pavel Tatashin wrote:
> > -void *text_poke(void *addr, const void *opcode, size_t len)
> > +void __ref *text_poke(void *addr, const void *opcode, size_t len)
> > {
> > unsigned long flags;
> > char *vaddr;
> > struct page *pages[2];
> > int i;
> >
> > + /* While boot memory allocator is runnig we cannot use struct
>
> Broken comment style..
>
> > + * pages as they are not yet initialized. However, we also know
> > + * that this is early in boot, and it is safe to fallback to
> > + * text_poke_early.
> > + */
> > + if (unlikely(!after_bootmem))
> > + return text_poke_early(addr, opcode, len);
>
> 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?
Thanks,
tglx