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).