lkml.org 
[lkml]   [2020]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/8] mm: slab: provide krealloc_array()
    On Tue, Oct 27, 2020 at 01:17:18PM +0100, Bartosz Golaszewski wrote:
    > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    >
    > When allocating an array of elements, users should check for
    > multiplication overflow or preferably use one of the provided helpers
    > like: kmalloc_array().
    >
    > There's no krealloc_array() counterpart but there are many users who use
    > regular krealloc() to reallocate arrays. Let's provide an actual
    > krealloc_array() implementation.
    >
    > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    > ---
    > include/linux/slab.h | 11 +++++++++++
    > 1 file changed, 11 insertions(+)
    >
    > diff --git a/include/linux/slab.h b/include/linux/slab.h
    > index dd6897f62010..0e6683affee7 100644
    > --- a/include/linux/slab.h
    > +++ b/include/linux/slab.h
    > @@ -592,6 +592,17 @@ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
    > return __kmalloc(bytes, flags);
    > }
    >

    Can you please add kernel-doc here and a word or two about this function
    to Documentation/core-api/memory-allocation.rst?

    > +static __must_check inline void *
    > +krealloc_array(void *p, size_t new_n, size_t new_size, gfp_t flags)
    > +{
    > + size_t bytes;
    > +
    > + if (unlikely(check_mul_overflow(new_n, new_size, &bytes)))
    > + return NULL;
    > +
    > + return krealloc(p, bytes, flags);
    > +}
    > +
    > /**
    > * kcalloc - allocate memory for an array. The memory is set to zero.
    > * @n: number of elements.
    > --
    > 2.29.1
    >
    >

    --
    Sincerely yours,
    Mike.

    \
     
     \ /
      Last update: 2020-10-28 23:22    [W:2.303 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site