projects/guix·blob python-team · refs

47 lines · 1.6 KiB

1https://pagure.io/libaio/pull-request/23
2
3From f68c69b6cbc1260a6034997d5f146e3d0a197ed8 Mon Sep 17 00:00:00 2001
4From: Xiongchuan Tan <[email protected]>
5Date: Jun 28 2022 15:53:38 +0000
6Subject: As of June 28th, 2022, the RISC-V spec[1] reserves the PTE permission bit
7
8combination of "write+!read", and the kernel would have incoherent behavior in
9the last test case of "harness/cases/5.t". Since it leads to undefined behavior,
10until further spec update, this test case should be disabled for RISC-V.
11
12A patch to disallow such permission in mmap() can be found here[2].
13
14[1]: https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf
15[2]: https://www.spinics.net/lists/kernel/msg4412421.html
16
17---
18
19diff --git a/harness/cases/5.t b/harness/cases/5.t
20index b0a7c56..8d6c959 100644
21--- a/harness/cases/5.t
22+++ b/harness/cases/5.t
23@@ -37,6 +37,14 @@ int test_main(void)
24 status |= attempt_rw(rwfd, buf, SIZE, 0, READ, -EFAULT);
25
26 res = munmap(buf, page_size); assert(res == 0);
27+
28+ /* As of June 28th, 2022, the RISC-V spec Volume 2 Section 4.3
29+ * version "20211203 Privileged Architecture v1.12, Ratified"
30+ * reserves the usage of the PTE permission bit combination of
31+ * "write+!read", so the next test leads to undefined behavior
32+ * and should be disabled. */
33+#ifndef __riscv
34+
35 buf = mmap(0, page_size, PROT_WRITE, MAP_SHARED, rwfd, 0);
36 assert(buf != (char *)-1);
37
38@@ -48,6 +56,8 @@ int test_main(void)
39 status |= attempt_rw(rwfd, buf, SIZE, 0, READ, SIZE);
40 status |= attempt_rw(rwfd, buf, SIZE, 0, WRITE, res);
41
42+#endif
43+
44 return status;
45 }
46
47