https://github.com/torvalds/linux
Revision f267f262815033452195f46c43b572159262f533 authored by Daniel Borkmann on 05 March 2024, 09:08:28 UTC, committed by Alexei Starovoitov on 06 March 2024, 00:19:42 UTC
Commit 9b0ed890ac2a ("bonding: do not report NETDEV_XDP_ACT_XSK_ZEROCOPY") changed the driver from reporting everything as supported before a device was bonded into having the driver report that no XDP feature is supported until a real device is bonded as it seems to be more truthful given eventually real underlying devices decide what XDP features are supported. The change however did not take into account when all slave devices get removed from the bond device. In this case after 9b0ed890ac2a, the driver keeps reporting a feature mask of 0x77, that is, NETDEV_XDP_ACT_MASK & ~NETDEV_XDP_ACT_XSK_ZEROCOPY whereas it should have reported a feature mask of 0. Fix it by resetting XDP feature flags in the same way as if no XDP program is attached to the bond device. This was uncovered by the XDP bond selftest which let BPF CI fail. After adjusting the starting masks on the latter to 0 instead of NETDEV_XDP_ACT_MASK the test passes again together with this fix. Fixes: 9b0ed890ac2a ("bonding: do not report NETDEV_XDP_ACT_XSK_ZEROCOPY") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Cc: Magnus Karlsson <magnus.karlsson@intel.com> Cc: Prashant Batra <prbatra.mail@gmail.com> Cc: Toke Høiland-Jørgensen <toke@redhat.com> Cc: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com> Message-ID: <20240305090829.17131-1-daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
1 parent 399eca1
Tip revision: f267f262815033452195f46c43b572159262f533 authored by Daniel Borkmann on 05 March 2024, 09:08:28 UTC
xdp, bonding: Fix feature flags when there are no slave devs anymore
xdp, bonding: Fix feature flags when there are no slave devs anymore
Tip revision: f267f26
File | Mode | Size |
---|---|---|
atomic | ||
basic | ||
clang-tools | ||
coccinelle | ||
dtc | ||
dummy-tools | ||
gcc-plugins | ||
gdb | ||
genksyms | ||
kconfig | ||
ksymoops | ||
mod | ||
package | ||
selinux | ||
tracing | ||
.gitignore | -rw-r--r-- | 214 bytes |
Kbuild.include | -rw-r--r-- | 10.1 KB |
Kconfig.include | -rw-r--r-- | 2.6 KB |
Lindent | -rwxr-xr-x | 502 bytes |
Makefile | -rw-r--r-- | 1.9 KB |
Makefile.asm-generic | -rw-r--r-- | 1.8 KB |
Makefile.btf | -rw-r--r-- | 638 bytes |
Makefile.build | -rw-r--r-- | 17.2 KB |
Makefile.clang | -rw-r--r-- | 1.6 KB |
Makefile.clean | -rw-r--r-- | 1.9 KB |
Makefile.compiler | -rw-r--r-- | 2.7 KB |
Makefile.debug | -rw-r--r-- | 1.1 KB |
Makefile.defconf | -rw-r--r-- | 1.2 KB |
Makefile.dtbinst | -rw-r--r-- | 1.0 KB |
Makefile.extrawarn | -rw-r--r-- | 7.1 KB |
Makefile.gcc-plugins | -rw-r--r-- | 2.6 KB |
Makefile.headersinst | -rw-r--r-- | 2.9 KB |
Makefile.host | -rw-r--r-- | 5.9 KB |
Makefile.kasan | -rw-r--r-- | 2.5 KB |
Makefile.kcov | -rw-r--r-- | 333 bytes |
Makefile.kcsan | -rw-r--r-- | 1004 bytes |
Makefile.kmsan | -rw-r--r-- | 208 bytes |
Makefile.lib | -rw-r--r-- | 20.9 KB |
Makefile.modfinal | -rw-r--r-- | 2.6 KB |
Makefile.modinst | -rw-r--r-- | 3.7 KB |
Makefile.modpost | -rw-r--r-- | 4.7 KB |
Makefile.package | -rw-r--r-- | 8.7 KB |
Makefile.randstruct | -rw-r--r-- | 511 bytes |
Makefile.ubsan | -rw-r--r-- | 779 bytes |
Makefile.userprogs | -rw-r--r-- | 1.6 KB |
Makefile.vdsoinst | -rw-r--r-- | 1.1 KB |
Makefile.vmlinux | -rw-r--r-- | 1.5 KB |
Makefile.vmlinux_o | -rw-r--r-- | 3.3 KB |
as-version.sh | -rwxr-xr-x | 2.0 KB |
asn1_compiler.c | -rw-r--r-- | 35.3 KB |
bloat-o-meter | -rwxr-xr-x | 3.8 KB |
bootgraph.pl | -rwxr-xr-x | 5.6 KB |
bpf_doc.py | -rwxr-xr-x | 31.7 KB |
cc-can-link.sh | -rwxr-xr-x | 166 bytes |
cc-version.sh | -rwxr-xr-x | 1.4 KB |
check-git | -rwxr-xr-x | 298 bytes |
check-sysctl-docs | -rwxr-xr-x | 3.7 KB |
check-uapi.sh | -rwxr-xr-x | 15.0 KB |
check_extable.sh | -rwxr-xr-x | 4.9 KB |
checkdeclares.pl | -rwxr-xr-x | 1.1 KB |
checkincludes.pl | -rwxr-xr-x | 1.9 KB |
checkkconfigsymbols.py | -rwxr-xr-x | 15.7 KB |
checkpatch.pl | -rwxr-xr-x | 233.2 KB |
checkstack.pl | -rwxr-xr-x | 6.0 KB |
checksyscalls.sh | -rwxr-xr-x | 7.5 KB |
checkversion.pl | -rwxr-xr-x | 2.2 KB |
cleanfile | -rwxr-xr-x | 3.5 KB |
cleanpatch | -rwxr-xr-x | 5.1 KB |
coccicheck | -rwxr-xr-x | 7.9 KB |
config | -rwxr-xr-x | 4.7 KB |
const_structs.checkpatch | -rw-r--r-- | 1.4 KB |
decode_stacktrace.sh | -rwxr-xr-x | 7.6 KB |
decodecode | -rwxr-xr-x | 4.9 KB |
depmod.sh | -rwxr-xr-x | 697 bytes |
dev-needs.sh | -rwxr-xr-x | 6.1 KB |
diffconfig | -rwxr-xr-x | 4.1 KB |
documentation-file-ref-check | -rwxr-xr-x | 5.7 KB |
export_report.pl | -rwxr-xr-x | 4.5 KB |
extract-ikconfig | -rwxr-xr-x | 1.7 KB |
extract-module-sig.pl | -rwxr-xr-x | 3.7 KB |
extract-sys-certs.pl | -rwxr-xr-x | 3.7 KB |
extract-vmlinux | -rwxr-xr-x | 1.7 KB |
extract_xc3028.pl | -rwxr-xr-x | 44.6 KB |
faddr2line | -rwxr-xr-x | 8.6 KB |
file-size.sh | -rwxr-xr-x | 86 bytes |
find-unused-docs.sh | -rwxr-xr-x | 1.3 KB |
gcc-x86_32-has-stack-protector.sh | -rwxr-xr-x | 408 bytes |
gcc-x86_64-has-stack-protector.sh | -rwxr-xr-x | 198 bytes |
gen-randstruct-seed.sh | -rwxr-xr-x | 228 bytes |
generate_initcall_order.pl | -rwxr-xr-x | 5.9 KB |
generate_rust_analyzer.py | -rwxr-xr-x | 4.8 KB |
generate_rust_target.rs | -rw-r--r-- | 5.6 KB |
get_abi.pl | -rwxr-xr-x | 25.4 KB |
get_dvb_firmware | -rwxr-xr-x | 24.5 KB |
get_feat.pl | -rwxr-xr-x | 14.6 KB |
get_maintainer.pl | -rwxr-xr-x | 67.6 KB |
gfp-translate | -rwxr-xr-x | 1.7 KB |
git.orderFile | -rw-r--r-- | 564 bytes |
head-object-list.txt | -rw-r--r-- | 1.4 KB |
headerdep.pl | -rwxr-xr-x | 3.5 KB |
headers_install.sh | -rwxr-xr-x | 2.8 KB |
insert-sys-cert.c | -rw-r--r-- | 8.9 KB |
install.sh | -rwxr-xr-x | 986 bytes |
jobserver-exec | -rwxr-xr-x | 2.6 KB |
kallsyms.c | -rw-r--r-- | 18.9 KB |
kernel-doc | -rwxr-xr-x | 67.7 KB |
ld-version.sh | -rwxr-xr-x | 1.7 KB |
leaking_addresses.pl | -rwxr-xr-x | 12.8 KB |
link-vmlinux.sh | -rwxr-xr-x | 7.6 KB |
makelst | -rwxr-xr-x | 808 bytes |
markup_oops.pl | -rwxr-xr-x | 7.9 KB |
min-tool-version.sh | -rwxr-xr-x | 630 bytes |
misc-check | -rwxr-xr-x | 509 bytes |
mkcompile_h | -rwxr-xr-x | 642 bytes |
mksysmap | -rwxr-xr-x | 2.6 KB |
mkuboot.sh | -rwxr-xr-x | 414 bytes |
module.lds.S | -rw-r--r-- | 1.4 KB |
modules-check.sh | -rwxr-xr-x | 443 bytes |
nsdeps | -rw-r--r-- | 1.6 KB |
objdiff | -rwxr-xr-x | 2.8 KB |
objdump-func | -rwxr-xr-x | 848 bytes |
orc_hash.sh | -rw-r--r-- | 316 bytes |
pahole-version.sh | -rwxr-xr-x | 269 bytes |
parse-maintainers.pl | -rwxr-xr-x | 4.5 KB |
patch-kernel | -rwxr-xr-x | 9.9 KB |
profile2linkerlist.pl | -rwxr-xr-x | 414 bytes |
prune-kernel | -rwxr-xr-x | 912 bytes |
recordmcount.c | -rw-r--r-- | 17.5 KB |
recordmcount.h | -rw-r--r-- | 19.4 KB |
recordmcount.pl | -rwxr-xr-x | 17.3 KB |
relocs_check.sh | -rwxr-xr-x | 717 bytes |
remove-stale-files | -rwxr-xr-x | 1.3 KB |
rust_is_available.sh | -rwxr-xr-x | 9.2 KB |
rust_is_available_bindgen_libclang.h | -rw-r--r-- | 91 bytes |
rust_is_available_test.py | -rwxr-xr-x | 17.7 KB |
rustdoc_test_builder.rs | -rw-r--r-- | 3.2 KB |
rustdoc_test_gen.rs | -rw-r--r-- | 9.5 KB |
setlocalversion | -rwxr-xr-x | 4.6 KB |
show_delta | -rwxr-xr-x | 3.0 KB |
sign-file.c | -rw-r--r-- | 9.9 KB |
sorttable.c | -rw-r--r-- | 7.7 KB |
sorttable.h | -rw-r--r-- | 12.9 KB |
spdxcheck-test.sh | -rw-r--r-- | 284 bytes |
spdxcheck.py | -rwxr-xr-x | 15.2 KB |
spdxexclude | -rw-r--r-- | 417 bytes |
spelling.txt | -rw-r--r-- | 34.2 KB |
sphinx-pre-install | -rwxr-xr-x | 25.1 KB |
split-man.pl | -rwxr-xr-x | 604 bytes |
stackdelta | -rwxr-xr-x | 1.8 KB |
stackusage | -rwxr-xr-x | 794 bytes |
subarch.include | -rw-r--r-- | 647 bytes |
syscallhdr.sh | -rwxr-xr-x | 1.9 KB |
syscallnr.sh | -rwxr-xr-x | 1.5 KB |
syscalltbl.sh | -rwxr-xr-x | 1.5 KB |
tags.sh | -rwxr-xr-x | 10.7 KB |
test_fortify.sh | -rw-r--r-- | 2.2 KB |
tools-support-relr.sh | -rwxr-xr-x | 726 bytes |
unifdef.c | -rw-r--r-- | 34.8 KB |
ver_linux | -rwxr-xr-x | 2.6 KB |
xen-hypercalls.sh | -rwxr-xr-x | 386 bytes |
xz_wrap.sh | -rwxr-xr-x | 516 bytes |
Computing file changes ...