On Fri, Jun 16, 2023 at 04:00:19PM +0000, Edgecombe, Rick P wrote: > On Fri, 2023-06-16 at 11:50 +0300, Mike Rapoport wrote: > > void *module_alloc(unsigned long size) > > { > > - if (size == 0) > > - return NULL; > > - return kmalloc(size, GFP_KERNEL); > > -} > > - > > -/* Free memory returned from module_alloc */ > > -void module_memfree(void *module_region) > > -{ > > - kfree(module_region); > > + return __vmalloc_node_range(size, 1, MODULES_VADDR, > > MODULES_END, > > + GFP_KERNEL, PAGE_KERNEL_EXEC, > > + VM_FLUSH_RESET_PERMS, > > NUMA_NO_NODE, > > + __builtin_return_address(0)); > > } > > > > int apply_relocate_add(Elf32_Shdr *sechdrs, const char *s > > I wonder if the (size == 0) check is really needed, but > __vmalloc_node_range() will WARN on this case where the old code won't. module_alloc() should not be called with zero size, so a warning there would be appropriate. Besides, no other module_alloc() had this check. -- Sincerely yours, Mike.