Re: Calling kfuncs in modules - BTF mismatch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>
> Hi everyone
>
> There seems to be some issue with BTF mismatch when trying to run the
> bpf_ct_set_nat_info() kfunc from a module. I was under the impression
> that this is supposed to work, so is there some kind of BTF dedup issue
> here or something?
>
> Steps to reproduce:
>
> 1. Compile kernel with nf_conntrack built-in and run selftests;
>    './test_progs -a bpf_nf' works
>
> 2. Change the kernel config so nf_conntrack is build as a module
>
> 3. Start the test kernel and manually modprobe nf_conntrack and nf_nat
>
> 4. Run ./test_progs -a bpf_nf; this now fails with an error like:
>
> kernel function bpf_ct_set_nat_info args#0 expected pointer to STRUCT nf_conn___init but R1 has a pointer to STRUCT nf_conn___init

This week Kumar and I took a look at this issue and we ended up
identifying a duplication of nf_conn___init structure. In particular:

[~/workspace/bpf-next]$ bpftool btf --base-btf vmlinux dump file
net/netfilter/nf_conntrack.ko format raw | grep nf_conn__
[110941] STRUCT 'nf_conn___init' size=248 vlen=1
[~/workspace/bpf-next]$ bpftool btf --base-btf vmlinux dump file
net/netfilter/nf_nat.ko format raw | grep nf_conn__
[107488] STRUCT 'nf_conn___init' size=248 vlen=1

Is it the root cause of the problem?

Regards,
Lorenzo

>
> Anyone has any ideas what's going on here, and how to fix it?
>
> -Toke
>




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux