[PATCH 4.17 95/97] tools headers: Synchronize prctl.h ABI header

From: Greg Kroah-Hartman
Date: Tue Aug 14 2018 - 13:42:07 EST


4.17-stable review patch. If anyone has any objections, please let me know.

------------------

From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

commit 63b89a19cc9ef911dcc64d41b60930c346eee0c0 upstream

To pick up changes from:

$ git log --oneline -2 -i include/uapi/linux/prctl.h
356e4bfff2c5 prctl: Add force disable speculation
b617cfc85816 prctl: Add speculation control prctls

$ tools/perf/trace/beauty/prctl_option.sh > before.c
$ cp include/uapi/linux/prctl.h tools/include/uapi/linux/prctl.h
$ tools/perf/trace/beauty/prctl_option.sh > after.c
$ diff -u before.c after.c
# --- before.c 2018-06-01 10:39:53.834073962 -0300
# +++ after.c 2018-06-01 10:42:11.307985394 -0300
@@ -35,6 +35,8 @@
[42] = "GET_THP_DISABLE",
[45] = "SET_FP_MODE",
[46] = "GET_FP_MODE",
+ [52] = "GET_SPECULATION_CTRL",
+ [53] = "SET_SPECULATION_CTRL",
};
static const char *prctl_set_mm_options[] = {
[1] = "START_CODE",
$

This will be used by 'perf trace' to show these strings when beautifying
the prctl syscall args. At some point we'll be able to say something
like:

'perf trace --all-cpus -e prctl(option=*SPEC*)'

To filter by arg by name.

This silences this warning when building tools/perf:

Warning: Kernel ABI header at 'tools/include/uapi/linux/prctl.h' differs from latest version at 'include/uapi/linux/prctl.h'

Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Wang Nan <wangnan0@xxxxxxxxxx>
Link: https://lkml.kernel.org/n/tip-zztsptwhc264r8wg44tqh5gp@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: David Woodhouse <dwmw@xxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
tools/include/uapi/linux/prctl.h | 12 ++++++++++++
1 file changed, 12 insertions(+)

--- a/tools/include/uapi/linux/prctl.h
+++ b/tools/include/uapi/linux/prctl.h
@@ -207,4 +207,16 @@ struct prctl_mm_map {
# define PR_SVE_VL_LEN_MASK 0xffff
# define PR_SVE_VL_INHERIT (1 << 17) /* inherit across exec */

+/* Per task speculation control */
+#define PR_GET_SPECULATION_CTRL 52
+#define PR_SET_SPECULATION_CTRL 53
+/* Speculation control variants */
+# define PR_SPEC_STORE_BYPASS 0
+/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
+# define PR_SPEC_NOT_AFFECTED 0
+# define PR_SPEC_PRCTL (1UL << 0)
+# define PR_SPEC_ENABLE (1UL << 1)
+# define PR_SPEC_DISABLE (1UL << 2)
+# define PR_SPEC_FORCE_DISABLE (1UL << 3)
+
#endif /* _LINUX_PRCTL_H */