|
@@ -7143,6 +7143,13 @@ int dev_change_xdp_fd(struct net_device *dev, struct netlink_ext_ack *extack,
|
|
|
bpf_op == ops->ndo_bpf);
|
|
|
if (IS_ERR(prog))
|
|
|
return PTR_ERR(prog);
|
|
|
+
|
|
|
+ if (!(flags & XDP_FLAGS_HW_MODE) &&
|
|
|
+ bpf_prog_is_dev_bound(prog->aux)) {
|
|
|
+ NL_SET_ERR_MSG(extack, "using device-bound program without HW_MODE flag is not supported");
|
|
|
+ bpf_prog_put(prog);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
err = dev_xdp_install(dev, bpf_op, extack, flags, prog);
|