You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
51 lines
1.7 KiB
commit 52231be034160c786735c6ae2f51ac7723c2e1fd |
|
Author: Dmitry V. Levin <ldv@altlinux.org> |
|
Date: Fri Sep 15 16:06:14 2017 +0000 |
|
|
|
Update MEMBARRIER_CMD_* constants |
|
|
|
* xlat/membarrier_cmds.in: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED |
|
introduced by kernel commit v4.14-rc1~174^2^2^4. |
|
* NEWS: Mention this. |
|
* tests/membarrier.c (main): Update expected output. |
|
|
|
diff -rup a/tests/membarrier.c b/tests/membarrier.c |
|
--- a/tests/membarrier.c 2016-04-21 14:16:50.000000000 -0400 |
|
+++ b/tests/membarrier.c 2018-02-05 19:24:07.016341127 -0500 |
|
@@ -42,10 +42,23 @@ main(void) |
|
printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = -1 %s (%m)\n", |
|
errno2name()); |
|
if (errno != ENOSYS) { |
|
- /* the test needs to be updated? */ |
|
- assert(syscall(__NR_membarrier, 0, 0) == 1); |
|
- puts("membarrier(MEMBARRIER_CMD_QUERY, 0)" |
|
- " = 0x1 (MEMBARRIER_CMD_SHARED)"); |
|
+ const char *text; |
|
+ int rc = syscall(__NR_membarrier, 0, 0); |
|
+ |
|
+ switch (rc) { |
|
+ case 1: |
|
+ text = "MEMBARRIER_CMD_SHARED"; |
|
+ break; |
|
+ case 1|8: |
|
+ text = "MEMBARRIER_CMD_SHARED|" |
|
+ "MEMBARRIER_CMD_PRIVATE_EXPEDITED"; |
|
+ break; |
|
+ default: |
|
+ error_msg_and_fail("membarrier returned %#x, does" |
|
+ " the test have to be updated?", rc); |
|
+ } |
|
+ printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n", |
|
+ rc, text); |
|
} |
|
puts("+++ exited with 0 +++"); |
|
return 0; |
|
diff -rup a/xlat/membarrier_cmds.in b/xlat/membarrier_cmds.in |
|
--- a/xlat/membarrier_cmds.in 2015-11-16 19:40:22.000000000 -0500 |
|
+++ b/xlat/membarrier_cmds.in 2018-02-05 19:23:39.097820501 -0500 |
|
@@ -1,2 +1,3 @@ |
|
-MEMBARRIER_CMD_QUERY 0 |
|
-MEMBARRIER_CMD_SHARED 1 |
|
+MEMBARRIER_CMD_QUERY 0 |
|
+MEMBARRIER_CMD_SHARED 1 |
|
+MEMBARRIER_CMD_PRIVATE_EXPEDITED 8
|
|
|