Re: [PATCH bpf-next v3 2/6] bpf: Add syscall common attrs support for xdp link_create
From: Alexei Starovoitov
Date: Tue Oct 20 2026 - 23:04:53 EST
On Wed Oct 21, 2026 at 1:25 AM UTC, Jakub Kicinski wrote:
> On Tue, 20 Oct 2026 23:28:00 +0800 Leon Hwang wrote:
>> --- a/net/core/dev.c
>> +++ b/net/core/dev.c
>> @@ -97,6 +97,7 @@
>> #include <linux/kthread.h>
>> #include <linux/bpf.h>
>> #include <linux/bpf_trace.h>
>> +#include <linux/bpf_verifier.h>
>> #include <net/net_namespace.h>
>> #include <net/sock.h>
>> #include <net/busy_poll.h>
>> @@ -10771,7 +10772,8 @@ static const struct bpf_link_ops bpf_xdp_link_lops = {
>> .update_prog = bpf_xdp_link_update,
>> };
>>
>> -int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
>> +int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog,
>> + struct bpf_verifier_log *log)
>> {
>> struct net *net = current->nsproxy->net_ns;
>> struct bpf_link_primer link_primer;
>> @@ -10784,6 +10786,7 @@ int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
>> dev = dev_get_by_index(net, attr->link_create.target_ifindex);
>> if (!dev) {
>> rtnl_unlock();
>> + bpf_log(log, "Invalid target_ifindex.\n");
>> return -EINVAL;
>> }
>>
>> @@ -10812,6 +10815,8 @@ int bpf_xdp_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
>> if (err) {
>> link->dev = NULL;
>> bpf_link_cleanup(&link_primer);
>> + if (extack._msg)
>> + bpf_log(log, "%s\n", extack._msg);
>> trace_bpf_xdp_link_attach_failed(extack._msg);
>> goto out_put_dev;
>> }
>
> No, this is silly. We shouldn't be spreading bpf_verifier.h includes
> around, and making core networking code use bpf_log().
>
> Add an extack to this API and for the extack -> bpf_log() conversion
> in the caller or some "boundary crossing" helper.
Tnis will be a trivial refactor in the follow up.