Blame SOURCES/strace-rh1540954-1.patch

3ca629
commit 52231be034160c786735c6ae2f51ac7723c2e1fd
3ca629
Author: Dmitry V. Levin <ldv@altlinux.org>
3ca629
Date:   Fri Sep 15 16:06:14 2017 +0000
3ca629
3ca629
    Update MEMBARRIER_CMD_* constants
3ca629
    
3ca629
    * xlat/membarrier_cmds.in: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED
3ca629
    introduced by kernel commit v4.14-rc1~174^2^2^4.
3ca629
    * NEWS: Mention this.
3ca629
    * tests/membarrier.c (main): Update expected output.
3ca629
3037e0
[ ES: also patch files in tests-m32 and tests-mx32 directories ]
3037e0
3ca629
diff -rup a/tests/membarrier.c b/tests/membarrier.c
3ca629
--- a/tests/membarrier.c	2016-04-21 14:16:50.000000000 -0400
3ca629
+++ b/tests/membarrier.c	2018-02-05 19:24:07.016341127 -0500
3ca629
@@ -42,10 +42,23 @@ main(void)
3ca629
 	printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = -1 %s (%m)\n",
3ca629
 	       errno2name());
3ca629
 	if (errno != ENOSYS) {
3ca629
-		/* the test needs to be updated? */
3037e0
-		assert(syscall(__NR_membarrier, 0, 0) == 1);
3037e0
-		puts("membarrier(MEMBARRIER_CMD_QUERY, 0)"
3037e0
-		     " = 0x1 (MEMBARRIER_CMD_SHARED)");
3037e0
+		const char *text;
3037e0
+		int rc = syscall(__NR_membarrier, 0, 0);
3037e0
+
3037e0
+		switch (rc) {
3037e0
+		case 1:
3037e0
+			text = "MEMBARRIER_CMD_SHARED";
3037e0
+			break;
3037e0
+		case 1|8:
3037e0
+			text = "MEMBARRIER_CMD_SHARED|"
3037e0
+			       "MEMBARRIER_CMD_PRIVATE_EXPEDITED";
3037e0
+			break;
3037e0
+		default:
3037e0
+			error_msg_and_fail("membarrier returned %#x, does"
3037e0
+					   " the test have to be updated?", rc);
3037e0
+		}
3037e0
+		printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n",
3037e0
+		       rc, text);
3037e0
 	}
3037e0
 	puts("+++ exited with 0 +++");
3037e0
 	return 0;
3037e0
diff -rup a/tests-m32/membarrier.c b/tests-m32/membarrier.c
3037e0
--- a/tests-m32/membarrier.c	2016-04-21 14:16:50.000000000 -0400
3037e0
+++ b/tests-m32/membarrier.c	2018-02-05 19:24:07.016341127 -0500
3037e0
@@ -42,10 +42,23 @@ main(void)
3037e0
 	printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = -1 %s (%m)\n",
3037e0
 	       errno2name());
3037e0
 	if (errno != ENOSYS) {
3037e0
-		/* the test needs to be updated? */
3037e0
-		assert(syscall(__NR_membarrier, 0, 0) == 1);
3037e0
-		puts("membarrier(MEMBARRIER_CMD_QUERY, 0)"
3037e0
-		     " = 0x1 (MEMBARRIER_CMD_SHARED)");
3037e0
+		const char *text;
3037e0
+		int rc = syscall(__NR_membarrier, 0, 0);
3037e0
+
3037e0
+		switch (rc) {
3037e0
+		case 1:
3037e0
+			text = "MEMBARRIER_CMD_SHARED";
3037e0
+			break;
3037e0
+		case 1|8:
3037e0
+			text = "MEMBARRIER_CMD_SHARED|"
3037e0
+			       "MEMBARRIER_CMD_PRIVATE_EXPEDITED";
3037e0
+			break;
3037e0
+		default:
3037e0
+			error_msg_and_fail("membarrier returned %#x, does"
3037e0
+					   " the test have to be updated?", rc);
3037e0
+		}
3037e0
+		printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n",
3037e0
+		       rc, text);
3037e0
 	}
3037e0
 	puts("+++ exited with 0 +++");
3037e0
 	return 0;
3037e0
diff -rup a/tests-mx32/membarrier.c b/tests-mx32/membarrier.c
3037e0
--- a/tests-mx32/membarrier.c	2016-04-21 14:16:50.000000000 -0400
3037e0
+++ b/tests-mx32/membarrier.c	2018-02-05 19:24:07.016341127 -0500
3037e0
@@ -42,10 +42,23 @@ main(void)
3037e0
 	printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = -1 %s (%m)\n",
3037e0
 	       errno2name());
3037e0
 	if (errno != ENOSYS) {
3037e0
-		/* the test needs to be updated? */
3ca629
-		assert(syscall(__NR_membarrier, 0, 0) == 1);
3ca629
-		puts("membarrier(MEMBARRIER_CMD_QUERY, 0)"
3ca629
-		     " = 0x1 (MEMBARRIER_CMD_SHARED)");
3ca629
+		const char *text;
3ca629
+		int rc = syscall(__NR_membarrier, 0, 0);
3ca629
+
3ca629
+		switch (rc) {
3ca629
+		case 1:
3ca629
+			text = "MEMBARRIER_CMD_SHARED";
3ca629
+			break;
3ca629
+		case 1|8:
3ca629
+			text = "MEMBARRIER_CMD_SHARED|"
3ca629
+			       "MEMBARRIER_CMD_PRIVATE_EXPEDITED";
3ca629
+			break;
3ca629
+		default:
3ca629
+			error_msg_and_fail("membarrier returned %#x, does"
3ca629
+					   " the test have to be updated?", rc);
3ca629
+		}
3ca629
+		printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n",
3ca629
+		       rc, text);
3ca629
 	}
3ca629
 	puts("+++ exited with 0 +++");
3ca629
 	return 0;
3ca629
diff -rup a/xlat/membarrier_cmds.in b/xlat/membarrier_cmds.in
3ca629
--- a/xlat/membarrier_cmds.in	2015-11-16 19:40:22.000000000 -0500
3ca629
+++ b/xlat/membarrier_cmds.in	2018-02-05 19:23:39.097820501 -0500
3ca629
@@ -1,2 +1,3 @@
3ca629
-MEMBARRIER_CMD_QUERY	0
3ca629
-MEMBARRIER_CMD_SHARED	1
3ca629
+MEMBARRIER_CMD_QUERY			0
3ca629
+MEMBARRIER_CMD_SHARED			1
3ca629
+MEMBARRIER_CMD_PRIVATE_EXPEDITED	8