diff options
Diffstat (limited to 'mm/slob.c')
-rw-r--r-- | mm/slob.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mm/slob.c b/mm/slob.c index 45a061b8ba38..fe567fcfa3a3 100644 --- a/mm/slob.c +++ b/mm/slob.c @@ -564,6 +564,20 @@ void kfree(const void *block) } EXPORT_SYMBOL(kfree); +size_t kmalloc_size_roundup(size_t size) +{ + /* Short-circuit the 0 size case. */ + if (unlikely(size == 0)) + return 0; + /* Short-circuit saturated "too-large" case. */ + if (unlikely(size == SIZE_MAX)) + return SIZE_MAX; + + return ALIGN(size, ARCH_KMALLOC_MINALIGN); +} + +EXPORT_SYMBOL(kmalloc_size_roundup); + /* can't use ksize for kmem_cache_alloc memory, only kmalloc */ size_t __ksize(const void *block) { |