diff options
Diffstat (limited to 'meta/recipes-kernel')
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc | 2 | ||||
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch | 49 | ||||
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch | 11 | ||||
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch | 43 | ||||
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 | ||||
-rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb (renamed from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb) | 7 |
6 files changed, 9 insertions, 392 deletions
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc index be215af9b9..7f838f623e 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc | |||
@@ -38,6 +38,8 @@ python __anonymous () { | |||
38 | d.setVar("HEADER_FETCH_VER", "3.0") | 38 | d.setVar("HEADER_FETCH_VER", "3.0") |
39 | elif major == "4": | 39 | elif major == "4": |
40 | d.setVar("HEADER_FETCH_VER", "4.x") | 40 | d.setVar("HEADER_FETCH_VER", "4.x") |
41 | elif major == "5": | ||
42 | d.setVar("HEADER_FETCH_VER", "5.x") | ||
41 | else: | 43 | else: |
42 | d.setVar("HEADER_FETCH_VER", "2.6") | 44 | d.setVar("HEADER_FETCH_VER", "2.6") |
43 | } | 45 | } |
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch deleted file mode 100644 index 3684cc21bf..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Davide Caratti <dcaratti@redhat.com> | ||
3 | Date: Mon, 17 Dec 2018 11:26:38 +0100 | ||
4 | Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Herton reports the following error when building a userspace program that | ||
10 | includes net_stamp.h: | ||
11 | |||
12 | In file included from foo.c:2: | ||
13 | /usr/include/linux/net_tstamp.h:158:2: error: unknown type name | ||
14 | ‘clockid_t’ | ||
15 | clockid_t clockid; /* reference clockid */ | ||
16 | ^~~~~~~~~ | ||
17 | |||
18 | Fix it by using __kernel_clockid_t in place of clockid_t. | ||
19 | |||
20 | Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.") | ||
21 | Cc: Timothy Redaelli <tredaelli@redhat.com> | ||
22 | Reported-by: Herton R. Krzesinski <herton@redhat.com> | ||
23 | Signed-off-by: Davide Caratti <dcaratti@redhat.com> | ||
24 | Tested-by: Paolo Abeni <pabeni@redhat.com> | ||
25 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
26 | --- | ||
27 | Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5] | ||
28 | |||
29 | include/uapi/linux/net_tstamp.h | 4 ++-- | ||
30 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
31 | |||
32 | diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h | ||
33 | index 97ff3c17ec4d..e5b39721c6e4 100644 | ||
34 | --- a/include/uapi/linux/net_tstamp.h | ||
35 | +++ b/include/uapi/linux/net_tstamp.h | ||
36 | @@ -155,8 +155,8 @@ enum txtime_flags { | ||
37 | }; | ||
38 | |||
39 | struct sock_txtime { | ||
40 | - clockid_t clockid; /* reference clockid */ | ||
41 | - __u32 flags; /* as defined by enum txtime_flags */ | ||
42 | + __kernel_clockid_t clockid;/* reference clockid */ | ||
43 | + __u32 flags; /* as defined by enum txtime_flags */ | ||
44 | }; | ||
45 | |||
46 | #endif /* _NET_TIMESTAMPING_H */ | ||
47 | -- | ||
48 | 2.20.1 | ||
49 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch index 9ba1c076e8..a5ded602e5 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch | |||
@@ -1,8 +1,7 @@ | |||
1 | From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 | 1 | From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 |
2 | From: He Zhe <zhe.he@windriver.com> | 2 | From: He Zhe <zhe.he@windriver.com> |
3 | Date: Wed, 21 Nov 2018 15:12:43 +0800 | 3 | Date: Wed, 21 Nov 2018 15:12:43 +0800 |
4 | Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for | 4 | Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc |
5 | here-doc | ||
6 | 5 | ||
7 | There was a bug of "as" in binutils that when it checks if the input file and | 6 | There was a bug of "as" in binutils that when it checks if the input file and |
8 | output file are the same one, it would not check if they are on the same block | 7 | output file are the same one, it would not check if they are on the same block |
@@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com> | |||
44 | 1 file changed, 4 insertions(+), 1 deletion(-) | 43 | 1 file changed, 4 insertions(+), 1 deletion(-) |
45 | 44 | ||
46 | diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh | 45 | diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh |
47 | index 083c526..8dfac55 100755 | 46 | index 8b980fb22..d256a9438 100755 |
48 | --- a/scripts/gcc-goto.sh | 47 | --- a/scripts/gcc-goto.sh |
49 | +++ b/scripts/gcc-goto.sh | 48 | +++ b/scripts/gcc-goto.sh |
50 | @@ -3,7 +3,7 @@ | 49 | @@ -3,7 +3,7 @@ |
51 | # Test for gcc 'asm goto' support | 50 | # Test for gcc 'asm goto' support |
52 | # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> | 51 | # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> |
53 | 52 | ||
54 | -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" | 53 | -cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null |
55 | +cat << "END" > ./input | 54 | +cat << "END" > ./input |
56 | int main(void) | 55 | int main(void) |
57 | { | 56 | { |
@@ -61,8 +60,8 @@ index 083c526..8dfac55 100755 | |||
61 | } | 60 | } |
62 | END | 61 | END |
63 | + | 62 | + |
64 | +$@ -x c ./input -c -o ./output && echo "y" | 63 | +$@ -x c ./input -fno-PIE -c -o ./output |
65 | +rm ./input ./output | 64 | +rm ./input ./output |
66 | -- | 65 | -- |
67 | 2.7.4 | 66 | 2.19.1 |
68 | 67 | ||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch deleted file mode 100644 index 462fdba2ed..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch +++ /dev/null | |||
@@ -1,43 +0,0 @@ | |||
1 | From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001 | ||
2 | From: Dave Martin <Dave.Martin@arm.com> | ||
3 | Date: Tue, 11 Dec 2018 19:26:46 +0000 | ||
4 | Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition | ||
5 | |||
6 | SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping | ||
7 | over the ptrace NT_ARM_SVE header (struct user_sve_header) to the | ||
8 | start of the SVE register data proper. | ||
9 | |||
10 | However, currently SVE_PT_REGS_OFFSET is defined in terms of struct | ||
11 | sve_context, which is wrong: that structure describes the SVE | ||
12 | header in the signal frame, not in the ptrace regset. | ||
13 | |||
14 | This patch fixes the definition to use the ptrace header structure | ||
15 | struct user_sve_header instead. | ||
16 | |||
17 | By good fortune, the to structures are the same size anyway, so | ||
18 | there is no functional or ABI change. | ||
19 | |||
20 | Signed-off-by: Dave Martin <Dave.Martin@arm.com> | ||
21 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
22 | |||
23 | Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html] | ||
24 | --- | ||
25 | arch/arm64/include/uapi/asm/ptrace.h | 2 +- | ||
26 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
27 | |||
28 | diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h | ||
29 | index 98c4ce55d9c3..ad64d2c92ef5 100644 | ||
30 | --- a/arch/arm64/include/uapi/asm/ptrace.h | ||
31 | +++ b/arch/arm64/include/uapi/asm/ptrace.h | ||
32 | @@ -130,7 +130,7 @@ struct user_sve_header { | ||
33 | |||
34 | /* Offset from the start of struct user_sve_header to the register data */ | ||
35 | #define SVE_PT_REGS_OFFSET \ | ||
36 | - ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) \ | ||
37 | + ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1)) \ | ||
38 | / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
39 | |||
40 | /* | ||
41 | -- | ||
42 | 2.5.0 | ||
43 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch deleted file mode 100644 index 0423f0f2cc..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch +++ /dev/null | |||
@@ -1,289 +0,0 @@ | |||
1 | From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001 | ||
2 | From: Dave Martin <Dave.Martin@arm.com> | ||
3 | Date: Tue, 11 Dec 2018 19:26:47 +0000 | ||
4 | Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from | ||
5 | <uapi/asm/sigcontext.h> | ||
6 | |||
7 | Currently, <uapi/asm/sigcontext.h> provides common definitions for | ||
8 | describing SVE context structures that are also used by the ptrace | ||
9 | definitions in <uapi/asm/ptrace.h>. | ||
10 | |||
11 | For this reason, a #include of <asm/sigcontext.h> was added in | ||
12 | ptrace.h, but it this turns out that this can interact badly with | ||
13 | userspace code that tries to include ptrace.h on top of the libc | ||
14 | headers (which may provide their own shadow definitions for | ||
15 | sigcontext.h). | ||
16 | |||
17 | To make the headers easier for userspace to consume, this patch | ||
18 | bounces the common definitions into an __SVE_* namespace and moves | ||
19 | them to a backend header <uapi/asm/sve_context.h> that can be | ||
20 | included by the other headers as appropriate. This should allow | ||
21 | ptrace.h to be used alongside libc's sigcontext.h (if any) without | ||
22 | ill effects. | ||
23 | |||
24 | This should make the situation unambiguous: <asm/sigcontext.h> is | ||
25 | the header to include for the sigframe-specific definitions, while | ||
26 | <asm/ptrace.h> is the header to include for ptrace-specific | ||
27 | definitions. | ||
28 | |||
29 | To avoid conflicting with existing usage, <asm/sigcontext.h> | ||
30 | remains the canonical way to get the common definitions for | ||
31 | SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the | ||
32 | kernel: relying on these being defined as a side effect of | ||
33 | including just <asm/ptrace.h> was never intended to be safe. | ||
34 | |||
35 | Signed-off-by: Dave Martin <Dave.Martin@arm.com> | ||
36 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
37 | |||
38 | Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html] | ||
39 | --- | ||
40 | arch/arm64/include/uapi/asm/ptrace.h | 39 ++++++++++----------- | ||
41 | arch/arm64/include/uapi/asm/sigcontext.h | 56 +++++++++++++++---------------- | ||
42 | arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++ | ||
43 | 3 files changed, 96 insertions(+), 49 deletions(-) | ||
44 | create mode 100644 arch/arm64/include/uapi/asm/sve_context.h | ||
45 | |||
46 | diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h | ||
47 | index ad64d2c92ef5..81547c3a95a3 100644 | ||
48 | --- a/arch/arm64/include/uapi/asm/ptrace.h | ||
49 | +++ b/arch/arm64/include/uapi/asm/ptrace.h | ||
50 | @@ -23,7 +23,7 @@ | ||
51 | #include <linux/types.h> | ||
52 | |||
53 | #include <asm/hwcap.h> | ||
54 | -#include <asm/sigcontext.h> | ||
55 | +#include <asm/sve_context.h> | ||
56 | |||
57 | |||
58 | /* | ||
59 | @@ -129,9 +129,9 @@ struct user_sve_header { | ||
60 | */ | ||
61 | |||
62 | /* Offset from the start of struct user_sve_header to the register data */ | ||
63 | -#define SVE_PT_REGS_OFFSET \ | ||
64 | - ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1)) \ | ||
65 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
66 | +#define SVE_PT_REGS_OFFSET \ | ||
67 | + ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1)) \ | ||
68 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
69 | |||
70 | /* | ||
71 | * The register data content and layout depends on the value of the | ||
72 | @@ -177,39 +177,36 @@ struct user_sve_header { | ||
73 | * Additional data might be appended in the future. | ||
74 | */ | ||
75 | |||
76 | -#define SVE_PT_SVE_ZREG_SIZE(vq) SVE_SIG_ZREG_SIZE(vq) | ||
77 | -#define SVE_PT_SVE_PREG_SIZE(vq) SVE_SIG_PREG_SIZE(vq) | ||
78 | -#define SVE_PT_SVE_FFR_SIZE(vq) SVE_SIG_FFR_SIZE(vq) | ||
79 | +#define SVE_PT_SVE_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) | ||
80 | +#define SVE_PT_SVE_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
81 | +#define SVE_PT_SVE_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) | ||
82 | #define SVE_PT_SVE_FPSR_SIZE sizeof(__u32) | ||
83 | #define SVE_PT_SVE_FPCR_SIZE sizeof(__u32) | ||
84 | |||
85 | -#define __SVE_SIG_TO_PT(offset) \ | ||
86 | - ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET) | ||
87 | - | ||
88 | #define SVE_PT_SVE_OFFSET SVE_PT_REGS_OFFSET | ||
89 | |||
90 | #define SVE_PT_SVE_ZREGS_OFFSET \ | ||
91 | - __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET) | ||
92 | + (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET) | ||
93 | #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \ | ||
94 | - __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n)) | ||
95 | + (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) | ||
96 | #define SVE_PT_SVE_ZREGS_SIZE(vq) \ | ||
97 | - (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) | ||
98 | + (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) | ||
99 | |||
100 | #define SVE_PT_SVE_PREGS_OFFSET(vq) \ | ||
101 | - __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq)) | ||
102 | + (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) | ||
103 | #define SVE_PT_SVE_PREG_OFFSET(vq, n) \ | ||
104 | - __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n)) | ||
105 | + (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n)) | ||
106 | #define SVE_PT_SVE_PREGS_SIZE(vq) \ | ||
107 | - (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \ | ||
108 | + (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \ | ||
109 | SVE_PT_SVE_PREGS_OFFSET(vq)) | ||
110 | |||
111 | #define SVE_PT_SVE_FFR_OFFSET(vq) \ | ||
112 | - __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq)) | ||
113 | + (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq)) | ||
114 | |||
115 | #define SVE_PT_SVE_FPSR_OFFSET(vq) \ | ||
116 | ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \ | ||
117 | - (SVE_VQ_BYTES - 1)) \ | ||
118 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
119 | + (__SVE_VQ_BYTES - 1)) \ | ||
120 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
121 | #define SVE_PT_SVE_FPCR_OFFSET(vq) \ | ||
122 | (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE) | ||
123 | |||
124 | @@ -220,8 +217,8 @@ struct user_sve_header { | ||
125 | |||
126 | #define SVE_PT_SVE_SIZE(vq, flags) \ | ||
127 | ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE \ | ||
128 | - - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1)) \ | ||
129 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
130 | + - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1)) \ | ||
131 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
132 | |||
133 | #define SVE_PT_SIZE(vq, flags) \ | ||
134 | (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ? \ | ||
135 | diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h | ||
136 | index dca8f8b5168b..5f3c0cec5af9 100644 | ||
137 | --- a/arch/arm64/include/uapi/asm/sigcontext.h | ||
138 | +++ b/arch/arm64/include/uapi/asm/sigcontext.h | ||
139 | @@ -130,6 +130,8 @@ struct sve_context { | ||
140 | |||
141 | #endif /* !__ASSEMBLY__ */ | ||
142 | |||
143 | +#include <asm/sve_context.h> | ||
144 | + | ||
145 | /* | ||
146 | * The SVE architecture leaves space for future expansion of the | ||
147 | * vector length beyond its initial architectural limit of 2048 bits | ||
148 | @@ -138,21 +140,20 @@ struct sve_context { | ||
149 | * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ | ||
150 | * terminology. | ||
151 | */ | ||
152 | -#define SVE_VQ_BYTES 16 /* number of bytes per quadword */ | ||
153 | +#define SVE_VQ_BYTES __SVE_VQ_BYTES /* bytes per quadword */ | ||
154 | |||
155 | -#define SVE_VQ_MIN 1 | ||
156 | -#define SVE_VQ_MAX 512 | ||
157 | +#define SVE_VQ_MIN __SVE_VQ_MIN | ||
158 | +#define SVE_VQ_MAX __SVE_VQ_MAX | ||
159 | |||
160 | -#define SVE_VL_MIN (SVE_VQ_MIN * SVE_VQ_BYTES) | ||
161 | -#define SVE_VL_MAX (SVE_VQ_MAX * SVE_VQ_BYTES) | ||
162 | +#define SVE_VL_MIN __SVE_VL_MIN | ||
163 | +#define SVE_VL_MAX __SVE_VL_MAX | ||
164 | |||
165 | -#define SVE_NUM_ZREGS 32 | ||
166 | -#define SVE_NUM_PREGS 16 | ||
167 | +#define SVE_NUM_ZREGS __SVE_NUM_ZREGS | ||
168 | +#define SVE_NUM_PREGS __SVE_NUM_PREGS | ||
169 | |||
170 | -#define sve_vl_valid(vl) \ | ||
171 | - ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX) | ||
172 | -#define sve_vq_from_vl(vl) ((vl) / SVE_VQ_BYTES) | ||
173 | -#define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES) | ||
174 | +#define sve_vl_valid(vl) __sve_vl_valid(vl) | ||
175 | +#define sve_vq_from_vl(vl) __sve_vq_from_vl(vl) | ||
176 | +#define sve_vl_from_vq(vq) __sve_vl_from_vq(vq) | ||
177 | |||
178 | /* | ||
179 | * If the SVE registers are currently live for the thread at signal delivery, | ||
180 | @@ -205,34 +206,33 @@ struct sve_context { | ||
181 | * Additional data might be appended in the future. | ||
182 | */ | ||
183 | |||
184 | -#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES) | ||
185 | -#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8)) | ||
186 | -#define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq) | ||
187 | +#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) | ||
188 | +#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
189 | +#define SVE_SIG_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) | ||
190 | |||
191 | #define SVE_SIG_REGS_OFFSET \ | ||
192 | - ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) \ | ||
193 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
194 | + ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1)) \ | ||
195 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
196 | |||
197 | -#define SVE_SIG_ZREGS_OFFSET SVE_SIG_REGS_OFFSET | ||
198 | +#define SVE_SIG_ZREGS_OFFSET \ | ||
199 | + (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET) | ||
200 | #define SVE_SIG_ZREG_OFFSET(vq, n) \ | ||
201 | - (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n)) | ||
202 | -#define SVE_SIG_ZREGS_SIZE(vq) \ | ||
203 | - (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET) | ||
204 | + (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) | ||
205 | +#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq) | ||
206 | |||
207 | #define SVE_SIG_PREGS_OFFSET(vq) \ | ||
208 | - (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq)) | ||
209 | + (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) | ||
210 | #define SVE_SIG_PREG_OFFSET(vq, n) \ | ||
211 | - (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n)) | ||
212 | -#define SVE_SIG_PREGS_SIZE(vq) \ | ||
213 | - (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq)) | ||
214 | + (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n)) | ||
215 | +#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq) | ||
216 | |||
217 | #define SVE_SIG_FFR_OFFSET(vq) \ | ||
218 | - (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq)) | ||
219 | + (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq)) | ||
220 | |||
221 | #define SVE_SIG_REGS_SIZE(vq) \ | ||
222 | - (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET) | ||
223 | - | ||
224 | -#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) | ||
225 | + (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq)) | ||
226 | |||
227 | +#define SVE_SIG_CONTEXT_SIZE(vq) \ | ||
228 | + (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) | ||
229 | |||
230 | #endif /* _UAPI__ASM_SIGCONTEXT_H */ | ||
231 | diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h | ||
232 | new file mode 100644 | ||
233 | index 000000000000..140f14c318a5 | ||
234 | --- /dev/null | ||
235 | +++ b/arch/arm64/include/uapi/asm/sve_context.h | ||
236 | @@ -0,0 +1,50 @@ | ||
237 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
238 | +/* Copyright (C) 2017-2018 ARM Limited */ | ||
239 | + | ||
240 | +#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H) | ||
241 | +#error "Do not include this header or use its definitions directly." | ||
242 | +#endif | ||
243 | + | ||
244 | +#ifndef _UAPI__ASM_SVE_CONTEXT_H | ||
245 | +#define _UAPI__ASM_SVE_CONTEXT_H | ||
246 | + | ||
247 | +#define __SVE_VQ_BYTES 16 /* number of bytes per quadword */ | ||
248 | + | ||
249 | +#define __SVE_VQ_MIN 1 | ||
250 | +#define __SVE_VQ_MAX 512 | ||
251 | + | ||
252 | +#define __SVE_VL_MIN (__SVE_VQ_MIN * __SVE_VQ_BYTES) | ||
253 | +#define __SVE_VL_MAX (__SVE_VQ_MAX * __SVE_VQ_BYTES) | ||
254 | + | ||
255 | +#define __SVE_NUM_ZREGS 32 | ||
256 | +#define __SVE_NUM_PREGS 16 | ||
257 | + | ||
258 | +#define __sve_vl_valid(vl) \ | ||
259 | + ((vl) % __SVE_VQ_BYTES == 0 && \ | ||
260 | + (vl) >= __SVE_VL_MIN && \ | ||
261 | + (vl) <= __SVE_VL_MAX) | ||
262 | + | ||
263 | +#define __sve_vq_from_vl(vl) ((vl) / __SVE_VQ_BYTES) | ||
264 | +#define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) | ||
265 | + | ||
266 | +#define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) | ||
267 | +#define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) | ||
268 | +#define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
269 | + | ||
270 | +#define __SVE_ZREGS_OFFSET 0 | ||
271 | +#define __SVE_ZREG_OFFSET(vq, n) \ | ||
272 | + (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n)) | ||
273 | +#define __SVE_ZREGS_SIZE(vq) \ | ||
274 | + (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET) | ||
275 | + | ||
276 | +#define __SVE_PREGS_OFFSET(vq) \ | ||
277 | + (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq)) | ||
278 | +#define __SVE_PREG_OFFSET(vq, n) \ | ||
279 | + (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n)) | ||
280 | +#define __SVE_PREGS_SIZE(vq) \ | ||
281 | + (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq)) | ||
282 | + | ||
283 | +#define __SVE_FFR_OFFSET(vq) \ | ||
284 | + (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq)) | ||
285 | + | ||
286 | +#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */ | ||
287 | -- | ||
288 | 2.5.0 | ||
289 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb index 48f25ebc1a..e76120c5b8 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb | |||
@@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\ | |||
10 | " | 10 | " |
11 | 11 | ||
12 | SRC_URI_append = "\ | 12 | SRC_URI_append = "\ |
13 | file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \ | ||
14 | file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ | 13 | file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ |
15 | file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ | 14 | file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ |
16 | file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \ | ||
17 | file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \ | ||
18 | " | 15 | " |
19 | 16 | ||
20 | SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900" | 17 | SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0" |
21 | SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1" | 18 | SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43" |