On Thu, Jun 09, 2022 at 03:05:08PM -0700, Roman Gushchin wrote:
On Thu, Jun 09, 2022 at 07:12:21PM +0000, Shakeel Butt wrote:
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@linux.dev 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).
No strong opinion here as well, but I think we don't have to be too defensive here. Actually we'll know anyway, unlikely a null pointer dereference will be unnoticed. And it's not different to calling mem_cgroup_from_obj() with some random invalid address now.
Sounds good. You can add my ack when you send the official version of the patch.