aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2021-03-10 14:11:59 +0000
committerKristof Provost <kp@FreeBSD.org>2021-03-19 22:40:07 +0000
commitacc600ea3280d2f9196d1429a91cad5500eae8e0 (patch)
tree42af7db664975da6e8a85ca289ab6381fac1e9a1
parent2001c1a0d2c003379c702373a9d259cb660cbff3 (diff)
downloadsrc-acc600ea3280d2f9196d1429a91cad5500eae8e0.tar.gz
src-acc600ea3280d2f9196d1429a91cad5500eae8e0.zip
uma: allow uma_zfree_pcu(..., NULL)
We already allow free(NULL) and uma_zfree(..., NULL). Make uma_zfree_pcpu(..., NULL) work as well. This also means that counter_u64_free(NULL) will work. These make cleanup code simpler. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D29189 (cherry picked from commit b8f7267d499c8ef8e70b021879d3e9e087ecc32d)
-rw-r--r--sys/vm/uma_core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
index 8cbd1216678a..b1762500c147 100644
--- a/sys/vm/uma_core.c
+++ b/sys/vm/uma_core.c
@@ -3171,6 +3171,11 @@ uma_zfree_pcpu_arg(uma_zone_t zone, void *pcpu_item, void *udata)
#ifdef SMP
MPASS(zone->uz_flags & UMA_ZONE_PCPU);
#endif
+
+ /* uma_zfree_pcu_*(..., NULL) does nothing, to match free(9). */
+ if (pcpu_item == NULL)
+ return;
+
item = zpcpu_offset_to_base(pcpu_item);
uma_zfree_arg(zone, item, udata);
}