On Wed, Oct 16, 2024 at 09:59:01AM +0200, Daniel Borkmann wrote: > > diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c > > index b1bffd8e9a95..f0f76b6ac8be 100644 > > --- a/drivers/net/bonding/bond_main.c > > +++ b/drivers/net/bonding/bond_main.c > > @@ -5676,8 +5676,11 @@ static int bond_xdp_set(struct net_device *dev, struct bpf_prog *prog, > > ASSERT_RTNL(); > > - if (!bond_xdp_check(bond)) > > + if (!bond_xdp_check(bond)) { > > + BOND_NL_ERR(dev, extack, > > + "No native XDP support for the current bonding mode"); > > return -EOPNOTSUPP; > > + } > > old_prog = bond->xdp_prog; > > bond->xdp_prog = prog; > > LGTM, but independent of these I was more thinking whether something like this > could do the trick (only compile tested). That way you also get the fallback > without changing anything in the core XDP code. Yes, I also thought about do fallback on bonding. But Nikolay suggested just use extack msg[1], and Jakub think this is report by QE rather than a real user. So I think we can use extack first, and convert to auto fallback on bonding if a real user complains. What do you think? [1] https://lore.kernel.org/netdev/8088f2a7-3ab1-4a1e-996d-c15703da13cc@xxxxxxxxxxxxx/ [2] https://lore.kernel.org/netdev/20241015085121.5f22e96f@xxxxxxxxxx/ Thanks Hangbin