Re: [PATCHv2 net-next 2/3] bonding: use correct return value
From: Toke Høiland-Jørgensen <hidden>
Date: 2024-10-18 11:29:37
Also in:
bpf, linux-doc, lkml
Simon Horman [off-list ref] writes:
On Fri, Oct 18, 2024 at 12:46:18AM +0000, Hangbin Liu wrote:quoted
On Thu, Oct 17, 2024 at 04:47:19PM +0200, Toke Høiland-Jørgensen wrote:quoted
quoted
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index f0f76b6ac8be..6887a867fe8b 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c@@ -5699,7 +5699,7 @@ static int bond_xdp_set(struct net_device *dev, struct bpf_prog *prog, if (dev_xdp_prog_count(slave_dev) > 0) { SLAVE_NL_ERR(dev, slave_dev, extack, "Slave has XDP program loaded, please unload before enslaving"); - err = -EOPNOTSUPP; + err = -EEXIST;Hmm, this has been UAPI since kernel 5.15, so can we really change it now? What's the purpose of changing it, anyway?I just think it should return EXIST when the error is "Slave has XDP program loaded". No special reason. If all others think we should not change it, I can drop this patch.Hi Toke, Could you add some colour to what extent user's might rely on this error code? Basically I think that if they do then we shouldn't change this.
Well, that's the trouble with UAPI, we don't really know. In libxdp and xdp-tools we look at the return code to provide a nicer error message, like: https://github.com/xdp-project/xdp-tools/blob/master/lib/libxdp/libxdp.c#L615 and as a signal to fall back to loading the programme without a dispatcher: https://github.com/xdp-project/xdp-tools/blob/master/lib/libxdp/libxdp.c#L1824 Both of these cases would be unaffected (or even improved) by this patch, so in that sense I don't have a concrete objection, just a general "userspace may react to this". In other words, my concern is more of a general "we don't know, so this seems risky". If any of you have more information about how bonding XDP is generally used, that may help get a better idea of this? -Toke