Fix: provide membarrier_private_expedited_rseq_available on all architectures
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jan 2022 20:10:22 +0000 (15:10 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 20 Jan 2022 20:11:55 +0000 (15:11 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I59afb18ba3687587b2712c3b076b170515d255bf

tests/param_test.c

index a273b9da82f4f20c472a1853068b0d1d5cb7fb52..5ed560ec022b283227af17eef892b8737b889773 100644 (file)
@@ -1147,6 +1147,26 @@ static int set_signal_handler(void)
        return ret;
 }
 
+static
+int sys_membarrier(int cmd, int flags, int cpu_id)
+{
+       return syscall(__NR_membarrier, cmd, flags, cpu_id);
+}
+
+static
+bool membarrier_private_expedited_rseq_available(void)
+{
+       int status = sys_membarrier(MEMBARRIER_CMD_QUERY, 0, 0);
+
+       if (status < 0) {
+               perror("membarrier");
+               return false;
+       }
+       if (!(status & MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ))
+               return false;
+       return true;
+}
+
 /* Test MEMBARRIER_CMD_PRIVATE_RESTART_RSEQ_ON_CPU membarrier command. */
 #ifdef RSEQ_ARCH_HAS_OFFSET_DEREF_ADDV
 struct test_membarrier_thread_args {
@@ -1217,12 +1237,6 @@ void test_membarrier_free_percpu_list(struct percpu_list *list)
                free(list->c[i].head);
 }
 
-static
-int sys_membarrier(int cmd, int flags, int cpu_id)
-{
-       return syscall(__NR_membarrier, cmd, flags, cpu_id);
-}
-
 /*
  * The manager thread swaps per-cpu lists that worker threads see,
  * and validates that there are no unexpected modifications.
@@ -1310,20 +1324,6 @@ void *test_membarrier_manager_thread(void *arg)
        return NULL;
 }
 
-static
-bool membarrier_private_expedited_rseq_available(void)
-{
-       int status = sys_membarrier(MEMBARRIER_CMD_QUERY, 0, 0);
-
-       if (status < 0) {
-               perror("membarrier");
-               return false;
-       }
-       if (!(status & MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ))
-               return false;
-       return true;
-}
-
 static
 void test_membarrier(void)
 {
This page took 0.024651 seconds and 4 git commands to generate.