Cleanup: remove duplicate check for 0 num_subbuf and subbuf_size
[lttng-ust.git] / libringbuffer / ring_buffer_backend.c
index 769e24bffa0c35475aee4ddcec62b60b4b618d93..4bc4b767f0679d5fee431fc6143df567cd6a0c9c 100644 (file)
@@ -210,19 +210,17 @@ int channel_backend_init(struct channel_backend *chanb,
        if (!name)
                return -EPERM;
 
-       if (!(subbuf_size && num_subbuf))
-               return -EPERM;
-
        /* Check that the subbuffer size is larger than a page. */
        if (subbuf_size < PAGE_SIZE)
                return -EINVAL;
 
        /*
-        * Make sure the number of subbuffers and subbuffer size are power of 2.
+        * Make sure the number of subbuffers and subbuffer size are
+        * power of 2, and nonzero.
         */
-       if (hweight32(subbuf_size) != 1)
+       if (!subbuf_size || (subbuf_size & (subbuf_size - 1)))
                return -EINVAL;
-       if (hweight32(num_subbuf) != 1)
+       if (!num_subbuf || (num_subbuf & (num_subbuf - 1)))
                return -EINVAL;
 
        ret = subbuffer_id_check_index(config, num_subbuf);
This page took 0.024333 seconds and 4 git commands to generate.