linux/tools/include/uapi/linux
Stanislav Fomichev bd7d30bd1d xsk: align TX metadata layout across ABIs
Add explicit padding before launch_time so xsk_tx_metadata has the same
layout on 32-bit and 64-bit systems.

On several architectures (csky, i386, nios2, m65k, openrisc, sh), the old
native 32-bit layout put launch_time at offset 12 and had a natural size of
20 bytes. Using sizeof(struct xsk_tx_metadata) as tx_metadata_len was already
rejected because the length must be a multiple of eight, so the
straightforward use of the interface was broken on those ABIs. Userspace
could still register a padded length of 24 bytes, though; mixing the old and
new layouts then silently reads launch_time from the wrong offset and
misprograms packet launch times. This intentionally replaces that
incompatible layout because the affected architectures are unlikely to
have any notable users. (x86_64 and arm64 have the most users and are _not_
affected)

Fixes: ca4419f15a ("xsk: Add launch time hardware offload support to XDP Tx metadata")
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20260819160535.1472459-2-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
History 2026-08-24 11:11:59 -07:00
..
tc_act headers: Remove some left-over license text 2022-09-27 07:48:01 -07:00
acct.h tools headers UAPI: sync linux/taskstats.h for procacct.c 2026-06-03 16:25:50 -07:00
bits.h uapi: bitops: use UAPI-safe variant of BITS_PER_LONG again (2) 2025-07-08 10:23:13 -04:00
bpf.h bpf: Add BPF_F_ADJ_ROOM_DECAP_* flags for tunnel decapsulation 2026-08-17 11:30:04 +02:00
bpf_common.h bpf: Sync kernel ABI header with tooling header for bpf_common.h 2018-02-09 00:24:38 +01:00
bpf_perf_event.h tools, headers: Sync struct bpf_perf_event_data 2021-01-26 00:15:03 +01:00
btf.h bpf: Extend BTF UAPI vlen, kinds to use unused bits 2026-04-20 17:52:48 -07:00
const.h tools headers UAPI: Sync linux/const.h with the kernel sources 2026-07-21 21:00:09 -03:00
coredump.h tools: add coredump.h header 2025-06-12 14:00:32 +02:00
elf.h tools/include: Add uapi/linux/elf.h 2025-03-03 20:00:12 +01:00
erspan.h tools, include: Grab a copy of linux/erspan.h 2018-04-30 17:56:24 +02:00
fanotify.h selftests/fs/mount-notify: build with tools include dir 2025-05-12 11:40:12 +02:00
filter.h tools: bpf: Use local copy of headers including uapi/linux/filter.h 2020-07-21 10:50:35 +01:00
fs.h tools headers UAPI: sync linux/fs.h with the kernel sources 2025-05-11 17:48:16 -07:00
fscrypt.h fscrypt: Remove FSCRYPT_MODE_MAX 2026-07-20 10:39:25 -07:00
genetlink.h tools include: Add headers to make tools builds more hermetic 2025-10-02 15:13:19 -03:00
hw_breakpoint.h Move bp_type_idx to include/linux/hw_breakpoint.h 2023-03-10 21:05:16 +01:00
if_addr.h tools include: Add headers to make tools builds more hermetic 2025-10-02 15:13:19 -03:00
if_link.h bonding: 3ad: add lacp_strict configuration knob 2026-06-10 07:53:26 -07:00
if_tun.h tun/tap: add IFF_BACKPRESSURE flag 2026-08-07 17:29:15 -07:00
if_xdp.h xsk: align TX metadata layout across ABIs 2026-08-24 11:11:59 -07:00
in.h tools headers: Update the socket headers with the kernel sources 2025-04-10 09:28:24 -07:00
io_uring.h tools headers: Grab copy of io_uring.h 2023-10-19 16:42:03 -06:00
kcmp.h tools headers: Synchronize kernel ABI headers wrt SPDX tags 2017-11-28 14:29:20 -03:00
kvm.h tools headers: Sync KVM headers with the kernel sources 2026-07-21 21:00:10 -03:00
memfd.h selftests/mm: fix additional build errors for selftests 2024-04-25 20:56:42 -07:00
mman.h mm: add MAP_DROPPABLE for designating always lazily freeable mappings 2024-07-19 20:22:12 +02:00
module_signature.h tools uapi headers: add linux/module_signature.h 2026-03-24 21:42:37 +00:00
mount.h tools: update mount.h header 2026-03-12 13:33:54 +01:00
neighbour.h tools include: Add headers to make tools builds more hermetic 2025-10-02 15:13:19 -03:00
netdev.h net: devmem: allow rx-page-size > PAGE_SIZE per dmabuf binding 2026-08-07 18:32:39 -07:00
netfilter.h tools include: Add headers to make tools builds more hermetic 2025-10-02 15:13:19 -03:00
netfilter_arp.h tools include: Add headers to make tools builds more hermetic 2025-10-02 15:13:19 -03:00
netlink.h net: netlink: rename NETLINK_DUMP_STRICT_CHK -> NETLINK_GET_STRICT_CHK 2018-12-14 11:44:31 -08:00
nsfs.h nsfs: update tools header 2025-11-03 17:41:18 +01:00
openat2.h selftest: add tests for O_EMPTYPATH 2026-05-21 10:53:37 +02:00
perf_event.h perf beauty: Update the linux/perf_event.h copy with the kernel sources 2026-03-04 11:51:36 -03:00
pkt_cls.h net/sched: Remove uapi support for tcindex classifier 2024-01-02 14:25:51 +00:00
pkt_sched.h net/sched: Remove uapi support for CBQ qdisc 2024-01-02 14:25:51 +00:00
prctl.h Updates for the generic entry code: 2025-07-29 15:14:29 -07:00
rtnetlink.h tools headers UAPI: Sync linux/rtnetlink.h with the kernel sources 2026-07-21 21:00:09 -03:00
seccomp.h tools headers UAPI: Copy seccomp.h to be able to build 'perf bench' in older systems 2023-09-13 08:48:48 -03:00
seg6.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
seg6_local.h selftests/bpf: missing headers test_lwt_seg6local 2018-05-28 17:41:00 +02:00
stat.h tools headers: Update the fs headers with the kernel sources 2025-06-16 14:05:10 -03:00
stddef.h tools/headers: Regenerate stddef.h to fix BPF selftests 2026-05-02 09:37:44 -07:00
taskstats.h tools headers UAPI: sync linux/taskstats.h 2026-03-27 21:19:43 -07:00
tcp.h bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE 2021-01-20 14:23:00 -08:00
tls.h bpf, tls: add tls header to tools infrastructure 2018-10-16 08:10:01 -07:00
types.h tools/include: make uapi/linux/types.h usable from assembly 2025-04-06 12:55:31 -07:00
userfaultfd.h selftests/mm: fix additional build errors for selftests 2024-04-25 20:56:42 -07:00