Subject: Re: [PATCH bpf 1/2] xdp, bonding: Fix feature flags when there are no slave devs anymore

From: Toke Høiland-Jørgensen <[email-masked]>
Date: Tue, 05 Mar 2024 16:46:33 +0100

Daniel Borkmann <[email-masked]> writes:

> Commit 9b0ed890ac2a ("bonding: do not report NETDEV_XDP_ACT_XSK_ZEROCOPY")
> changed the driver from reporting everything as supported before a device
> was bonded into having the driver report that no XDP feature is supported
> until a real device is bonded as it seems to be more truthful given
> eventually real underlying devices decide what XDP features are supported.
>
> The change however did not take into account when all slave devices get
> removed from the bond device. In this case after 9b0ed890ac2a, the driver
> keeps reporting a feature mask of 0x77, that is, NETDEV_XDP_ACT_MASK &
> ~NETDEV_XDP_ACT_XSK_ZEROCOPY whereas it should have reported a feature
> mask of 0.
>
> Fix it by resetting XDP feature flags in the same way as if no XDP program
> is attached to the bond device. This was uncovered by the XDP bond selftest
> which let BPF CI fail. After adjusting the starting masks on the latter
> to 0 instead of NETDEV_XDP_ACT_MASK the test passes again together with
> this fix.
>
> Fixes: 9b0ed890ac2a ("bonding: do not report NETDEV_XDP_ACT_XSK_ZEROCOPY")
> Signed-off-by: Daniel Borkmann <[email-masked]>
> Cc: Magnus Karlsson <[email-masked]>
> Cc: Prashant Batra <[email-masked]>
> Cc: Toke Høiland-Jørgensen <[email-masked]>
> Cc: Jakub Kicinski <[email-masked]>

Ah yes, makes sense, of course we should reset the mask when devices are
removed!

Reviewed-by: Toke Høiland-Jørgensen <[email-masked]>