diff options
author | Mark Johnston <markj@FreeBSD.org> | 2021-07-13 21:47:02 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2021-07-13 21:47:02 +0000 |
commit | 45e2357113e65537feabb7c872053b5ea5f7a0f1 (patch) | |
tree | f988e3bc5989d01307ccac774bc78a4cdd826b75 /sys/kern/kern_malloc.c | |
parent | 39552dff7bb5463a74e5195d65a3252c583d9414 (diff) | |
download | src-45e2357113e65537feabb7c872053b5ea5f7a0f1.tar.gz src-45e2357113e65537feabb7c872053b5ea5f7a0f1.zip |
malloc: Pass the allocation size to malloc_large() by value
Its callers do not make use the modified size that malloc_large() was
returning, so there's no need to pass a pointer. No functional change
intended.
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/kern/kern_malloc.c')
-rw-r--r-- | sys/kern/kern_malloc.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 75cbc2a0fd04..bd0f46ea5220 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -584,23 +584,21 @@ malloc_large_size(uma_slab_t slab) } static caddr_t __noinline -malloc_large(size_t *size, struct malloc_type *mtp, struct domainset *policy, +malloc_large(size_t size, struct malloc_type *mtp, struct domainset *policy, int flags DEBUG_REDZONE_ARG_DEF) { vm_offset_t kva; caddr_t va; - size_t sz; - sz = roundup(*size, PAGE_SIZE); - kva = kmem_malloc_domainset(policy, sz, flags); + size = roundup(size, PAGE_SIZE); + kva = kmem_malloc_domainset(policy, size, flags); if (kva != 0) { /* The low bit is unused for slab pointers. */ - vsetzoneslab(kva, NULL, (void *)((sz << 1) | 1)); - uma_total_inc(sz); - *size = sz; + vsetzoneslab(kva, NULL, (void *)((size << 1) | 1)); + uma_total_inc(size); } va = (caddr_t)kva; - malloc_type_allocated(mtp, va == NULL ? 0 : sz); + malloc_type_allocated(mtp, va == NULL ? 0 : size); if (__predict_false(va == NULL)) { KASSERT((flags & M_WAITOK) == 0, ("malloc(M_WAITOK) returned NULL")); @@ -608,7 +606,7 @@ malloc_large(size_t *size, struct malloc_type *mtp, struct domainset *policy, #ifdef DEBUG_REDZONE va = redzone_setup(va, osize); #endif - kasan_mark((void *)va, osize, sz, KASAN_MALLOC_REDZONE); + kasan_mark((void *)va, osize, size, KASAN_MALLOC_REDZONE); } return (va); } @@ -648,7 +646,7 @@ void * #endif if (__predict_false(size > kmem_zmax)) - return (malloc_large(&size, mtp, DOMAINSET_RR(), flags + return (malloc_large(size, mtp, DOMAINSET_RR(), flags DEBUG_REDZONE_ARG)); if (size & KMEM_ZMASK) @@ -718,7 +716,7 @@ malloc_domainset(size_t size, struct malloc_type *mtp, struct domainset *ds, #endif if (__predict_false(size > kmem_zmax)) - return (malloc_large(&size, mtp, DOMAINSET_RR(), flags + return (malloc_large(size, mtp, DOMAINSET_RR(), flags DEBUG_REDZONE_ARG)); vm_domainset_iter_policy_init(&di, ds, &domain, &flags); @@ -770,7 +768,7 @@ malloc_domainset_exec(size_t size, struct malloc_type *mtp, struct domainset *ds return (va); #endif - return (malloc_large(&size, mtp, ds, flags DEBUG_REDZONE_ARG)); + return (malloc_large(size, mtp, ds, flags DEBUG_REDZONE_ARG)); } void * |