git: 4f784d330d3f - stable/13 - libnv: Allow use in non-sleepable contexts
Kristof Provost
kp at FreeBSD.org
Wed Apr 14 13:08:14 UTC 2021
The branch stable/13 has been updated by kp:
URL: https://cgit.FreeBSD.org/src/commit/?id=4f784d330d3f664d35eaaa45024d442b776a0458
commit 4f784d330d3f664d35eaaa45024d442b776a0458
Author: Kristof Provost <kp at FreeBSD.org>
AuthorDate: 2021-03-25 12:59:14 +0000
Commit: Kristof Provost <kp at FreeBSD.org>
CommitDate: 2021-04-14 08:16:27 +0000
libnv: Allow use in non-sleepable contexts
44c125c4cebc2fd87c6260b90eddae11201f5232 switched the nvlist allocations
to be M_WAITOK, but this precludes the use in non-sleepable contexts.
(E.g. with a nonsleepable lock held).
All callers for these allocation functions already cope with memory
alloation failures, so there's no reason to allow sleeping during
allocations.
Reviewed by: melifaro, oshogbo
MFC after: 1 week
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D29556
(cherry picked from commit ab8d25880ebc9ddca1ae6af938680036349edf3f)
---
sys/contrib/libnv/nv_impl.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sys/contrib/libnv/nv_impl.h b/sys/contrib/libnv/nv_impl.h
index 14f2fb8f2c11..1875c739beee 100644
--- a/sys/contrib/libnv/nv_impl.h
+++ b/sys/contrib/libnv/nv_impl.h
@@ -52,13 +52,13 @@ typedef struct nvpair nvpair_t;
#define NV_FLAG_IN_ARRAY 0x100
#ifdef _KERNEL
-#define nv_malloc(size) malloc((size), M_NVLIST, M_WAITOK)
+#define nv_malloc(size) malloc((size), M_NVLIST, M_NOWAIT)
#define nv_calloc(n, size) mallocarray((n), (size), M_NVLIST, \
- M_WAITOK | M_ZERO)
+ M_NOWAIT | M_ZERO)
#define nv_realloc(buf, size) realloc((buf), (size), M_NVLIST, \
- M_WAITOK)
+ M_NOWAIT)
#define nv_free(buf) free((buf), M_NVLIST)
-#define nv_strdup(buf) strdup((buf), M_NVLIST)
+#define nv_strdup(buf) strdup_flags((buf), M_NVLIST, M_NOWAIT)
#define nv_vasprintf(ptr, ...) vasprintf(ptr, M_NVLIST, __VA_ARGS__)
#define ERRNO_SET(var) do { } while (0)
More information about the dev-commits-src-branches
mailing list