On Fri, Jan 26, 2024 at 3:00 PM David Laight <David.Laight@xxxxxxxxxx> wrote: > > From: oficerovas@xxxxxxxxxxxx > > Sent: 26 January 2024 09:55 > > > > commit a8749a35c399 ("mm: vmalloc: introduce array allocation functions") > > > > Linux has dozens of occurrences of vmalloc(array_size()) and > > vzalloc(array_size()). Allow to simplify the code by providing > > vmalloc_array and vcalloc, as well as the underscored variants that let > > the caller specify the GFP flags. > > > > Acked-by: Michal Hocko <mhocko@xxxxxxxx> > > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > > Signed-off-by: Alexander Ofitserov <oficerovas@xxxxxxxxxxxx> > > --- > > include/linux/vmalloc.h | 5 +++++ > > mm/util.c | 50 +++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 55 insertions(+) > > > > diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h > > index 76dad53a410ac..0fd47f2f39eb0 100644 > > --- a/include/linux/vmalloc.h > > +++ b/include/linux/vmalloc.h > > @@ -112,6 +112,11 @@ extern void *__vmalloc_node_range(unsigned long size, unsigned long align, > > void *__vmalloc_node(unsigned long size, unsigned long align, gfp_t gfp_mask, > > int node, const void *caller); > > > > +extern void *__vmalloc_array(size_t n, size_t size, gfp_t flags); > > +extern void *vmalloc_array(size_t n, size_t size); > > +extern void *__vcalloc(size_t n, size_t size, gfp_t flags); > > +extern void *vcalloc(size_t n, size_t size); > > Symbols starting __ should really be ones that are part of the implementation > and not publicly visible. This is a patch that already exists in master. Paolo