Paolo Abeni <pabeni@xxxxxxxxxx> writes: > Hi, > > On Mon, 2023-09-11 at 15:58 +0200, Toke Høiland-Jørgensen wrote: >> There's an early return in veth_set_features() if the device is in a down >> state, which leads to the XDP feature flags not being updated when enabling >> GRO while the device is down. Which in turn leads to XDP_REDIRECT not >> working, because the redirect code now checks the flags. >> >> Fix this by updating the feature flags after bringing the device up. >> >> Before this patch: >> >> NETDEV_XDP_ACT_BASIC: yes >> NETDEV_XDP_ACT_REDIRECT: yes >> NETDEV_XDP_ACT_NDO_XMIT: no >> NETDEV_XDP_ACT_XSK_ZEROCOPY: no >> NETDEV_XDP_ACT_HW_OFFLOAD: no >> NETDEV_XDP_ACT_RX_SG: yes >> NETDEV_XDP_ACT_NDO_XMIT_SG: no >> >> After this patch: >> >> NETDEV_XDP_ACT_BASIC: yes >> NETDEV_XDP_ACT_REDIRECT: yes >> NETDEV_XDP_ACT_NDO_XMIT: yes >> NETDEV_XDP_ACT_XSK_ZEROCOPY: no >> NETDEV_XDP_ACT_HW_OFFLOAD: no >> NETDEV_XDP_ACT_RX_SG: yes >> NETDEV_XDP_ACT_NDO_XMIT_SG: yes >> >> Fixes: fccca038f300 ("veth: take into account device reconfiguration for xdp_features flag") >> Fixes: 66c0e13ad236 ("drivers: net: turn on XDP features") >> Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> >> --- >> drivers/net/veth.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/net/veth.c b/drivers/net/veth.c >> index 9c6f4f83f22b..0deefd1573cf 100644 >> --- a/drivers/net/veth.c >> +++ b/drivers/net/veth.c >> @@ -1446,6 +1446,8 @@ static int veth_open(struct net_device *dev) >> netif_carrier_on(peer); >> } >> >> + veth_set_xdp_features(dev); >> + >> return 0; >> } > > The patch LGTM, thanks! > > I think it would be nice to add some specific self-tests here. Could > you please consider following-up with them? Sure! Do you want me to resubmit this as well, or are you just going to apply it as-is and do the selftest as a follow-up? -Toke