Re: [PATCH net v2 1/3] xsk: align TX metadata layout across ABIs

From: Stanislav Fomichev

Date: Tue Aug 18 2026 - 13:04:26 EST


On 08/17, Arnd Bergmann wrote:
> On Thu, Aug 13, 2026, at 21:07, Stanislav Fomichev wrote:
> > Add explicit padding before launch_time so xsk_tx_metadata has the same
> > layout on 32-bit and 64-bit systems.
> >
> > On i386 and m68k, 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 while the interface is still new.
> >
> > Fixes: ca4419f15abd ("xsk: Add launch time hardware offload support to
> > XDP Tx metadata")
> > Signed-off-by: Stanislav Fomichev <sdf@xxxxxxxxxxx>
>
> This is probably the right approach, given lack of alternatives.
> In the changelog text, it may be worth noting a few more points:
>
> - A few additional architectures have the same issue: csky,
> nios2, openrisc and sh.
> - the commit that introduced the mistake was part of linux-6.15,
> so the 6.18-lts release also needs an ABI change. I don't
> think the "while the interface is still new" wording
> makes sense here.
> - what actually saves us here is that none of the affected
> architectures are likely to have notable use cases for
> xdp that would care about the ABI break.
> The one that is most likely to have affected users
> is x86-compat, and that is also the only one that is
> broken right now.

Will try to add that to the commit description, thanks!