if user sets nonexistent xdp_flags to detach xdp prog, kernel should return err and tell user that detach failed with detail info. Signed-off-by: Zhengchao Shao <shaozhengchao@xxxxxxxxxx> --- net/core/dev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c index 8ed0272bf32f..8ed05ef62c68 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -9149,6 +9149,12 @@ static int dev_xdp_attach(struct net_device *dev, struct netlink_ext_ack *extack return -EBUSY; } + /* no BPF XDP prog attached */ + if (!new_prog && !(dev->xdp_state[mode].prog)) { + NL_SET_ERR_MSG(extack, "no BPF XDP prog attached"); + return -ENOENT; + } + /* don't allow if an upper device already has a program */ netdev_for_each_upper_dev_rcu(dev, upper, iter) { if (dev_xdp_prog_count(upper) > 0) { -- 2.17.1