Re: [next] arm64: boot failed - next-20220606

From: Shakeel Butt
Date: Thu Jun 09 2022 - 15:12:34 EST


On Thu, Jun 09, 2022 at 10:56:09AM -0700, Roman Gushchin wrote:
> On Thu, Jun 09, 2022 at 10:47:35AM -0700, Shakeel Butt wrote:
> > On Thu, Jun 9, 2022 at 10:27 AM Roman Gushchin <roman.gushchin@xxxxxxxxx> wrote:
> > >
> > [...]
> > > +struct mem_cgroup *mem_cgroup_from_obj(void *p)
> > > +{
> > > + struct folio *folio;
> > > +
> > > + if (mem_cgroup_disabled())
> > > + return NULL;
> > > +
> > > + if (unlikely(is_vmalloc_addr(p)))
> > > + folio = page_folio(vmalloc_to_page(p));
> >
> > Do we need to check for NULL from vmalloc_to_page(p)?
>
> Idk, can it realistically return NULL after is_vmalloc_addr() returned true?
> I would be surprised, but maybe I'm missing something.

is_vmalloc_addr() is simply checking the range and some buggy caller can
provide an unmapped address within the range. Maybe VM_BUG_ON() should
be good enough (though no strong opinion either way).