From: Mathieu Desnoyers Date: Thu, 7 Mar 2024 20:57:40 +0000 (-0500) Subject: percpu pool: mmap set attr: return error value X-Git-Url: https://git.efficios.com/?a=commitdiff_plain;h=8118247ec2f3912f2fb59db3a77eca5b3723f330;p=librseq.git percpu pool: mmap set attr: return error value Signed-off-by: Mathieu Desnoyers Change-Id: Id2debf769299ee1d6624097b38e79f916b8c0f2b --- diff --git a/include/rseq/percpu-alloc.h b/include/rseq/percpu-alloc.h index 50580b0..1532ed6 100644 --- a/include/rseq/percpu-alloc.h +++ b/include/rseq/percpu-alloc.h @@ -303,8 +303,10 @@ void rseq_pool_attr_destroy(struct rseq_pool_attr *attr); * * The @mmap_priv argument is a private data pointer passed to both * @mmap_func and @munmap_func callbacks. + * + * Returns 0 on success, -1 with errno=EINVAL if arguments are invalid. */ -void rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr, +int rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr, void *(*mmap_func)(void *priv, size_t len), int (*munmap_func)(void *priv, void *ptr, size_t len), void *mmap_priv); diff --git a/src/rseq-percpu-alloc.c b/src/rseq-percpu-alloc.c index 4e15693..daccf86 100644 --- a/src/rseq-percpu-alloc.c +++ b/src/rseq-percpu-alloc.c @@ -651,13 +651,18 @@ void rseq_pool_attr_destroy(struct rseq_pool_attr *attr) free(attr); } -void rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr, +int rseq_pool_attr_set_mmap(struct rseq_pool_attr *attr, void *(*mmap_func)(void *priv, size_t len), int (*munmap_func)(void *priv, void *ptr, size_t len), void *mmap_priv) { + if (!attr) { + errno = EINVAL; + return -1; + } attr->mmap_set = true; attr->mmap_func = mmap_func; attr->munmap_func = munmap_func; attr->mmap_priv = mmap_priv; + return 0; }