percpu pool: mmap set attr: return error value
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 7 Mar 2024 20:57:40 +0000 (15:57 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 7 Mar 2024 20:57:40 +0000 (15:57 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id2debf769299ee1d6624097b38e79f916b8c0f2b

include/rseq/percpu-alloc.h
src/rseq-percpu-alloc.c

index 50580b0811222878c4aad928e23daf7bb4a603a0..1532ed6bcfca17cf7d19caa5d9a54386e1b8786d 100644 (file)
@@ -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);
index 4e15693a511327aac76d6f82af94002565c18310..daccf868ead563d59273314bcf0aa56df75e2c43 100644 (file)
@@ -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;
 }
This page took 0.024951 seconds and 4 git commands to generate.