tools headers: Update the linux/unaligned.h copy with the kernel sources
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 28 Oct 2024 15:24:37 +0000 (12:24 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 28 Oct 2024 15:34:28 +0000 (12:34 -0300)
To pick up the changes in:

  7f053812dab3946c ("random: vDSO: minimize and simplify header includes")

That required adding a copy of include/vdso/unaligned.h and its checking
in tools/perf/check-headers.h.

Addressing this perf tools build warning:

  Warning: Kernel ABI header differences:
    diff -u tools/include/linux/unaligned.h include/linux/unaligned.h

Please see tools/include/uapi/README for further details.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Ian Rogers <irogers@google.com>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/lkml/Zx-uHvAbPAESofEN@x1
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/include/linux/unaligned.h
tools/include/vdso/unaligned.h [new file with mode: 0644]
tools/perf/check-headers.sh

index bc0633bc4650bc8c7c50327cf22dbe3ab2b166c9..395a4464fe732e7a3d8f75130874c1baf58df2fe 100644 (file)
@@ -9,16 +9,7 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wpacked"
 #pragma GCC diagnostic ignored "-Wattributes"
-
-#define __get_unaligned_t(type, ptr) ({                                                \
-       const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);      \
-       __pptr->x;                                                              \
-})
-
-#define __put_unaligned_t(type, val, ptr) do {                                 \
-       struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);            \
-       __pptr->x = (val);                                                      \
-} while (0)
+#include <vdso/unaligned.h>
 
 #define get_unaligned(ptr)     __get_unaligned_t(typeof(*(ptr)), (ptr))
 #define put_unaligned(val, ptr) __put_unaligned_t(typeof(*(ptr)), (val), (ptr))
diff --git a/tools/include/vdso/unaligned.h b/tools/include/vdso/unaligned.h
new file mode 100644 (file)
index 0000000..eee3d2a
--- /dev/null
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __VDSO_UNALIGNED_H
+#define __VDSO_UNALIGNED_H
+
+#define __get_unaligned_t(type, ptr) ({                                                \
+       const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);      \
+       __pptr->x;                                                              \
+})
+
+#define __put_unaligned_t(type, val, ptr) do {                                 \
+       struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr);            \
+       __pptr->x = (val);                                                      \
+} while (0)
+
+#endif /* __VDSO_UNALIGNED_H */
index 29adbb423327aa8de78c0436b96364ad991b4894..a05c1c105c51bf1bd18a59195220894598eb7461 100755 (executable)
@@ -22,6 +22,7 @@ FILES=(
   "include/vdso/bits.h"
   "include/linux/const.h"
   "include/vdso/const.h"
+  "include/vdso/unaligned.h"
   "include/linux/hash.h"
   "include/linux/list-sort.h"
   "include/uapi/linux/hw_breakpoint.h"