Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: - fix failure to add bond interfaces to a bridge, the offload-handling code was too defensive there and recent refactoring unearthed that. Users complained (Ido) - fix unnecessarily reflecting ECN bits within TOS values / QoS marking in TCP ACK and reset packets (Wei) - fix a deadlock with bpf iterator. Hopefully we're in the clear on this front now... (Yonghong) - BPF fix for clobbering r2 in bpf_gen_ld_abs (Daniel) - fix AQL on mt76 devices with FW rate control and add a couple of AQL issues in mac80211 code (Felix) - fix authentication issue with mwifiex (Maximilian) - WiFi connectivity fix: revert IGTK support in ti/wlcore (Mauro) - fix exception handling for multipath routes via same device (David Ahern) - revert back to a BH spin lock flavor for nsid_lock: there are paths which do require the BH context protection (Taehee) - fix interrupt / queue / NAPI handling in the lantiq driver (Hauke) - fix ife module load deadlock (Cong) - make an adjustment to netlink reply message type for code added in this release (the sole change touching uAPI here) (Michal) - a number of fixes for small NXP and Microchip switches (Vladimir) [ Pull request acked by David: "you can expect more of this in the future as I try to delegate more things to Jakub" ] * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (167 commits) net: mscc: ocelot: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries net: dsa: seville: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries net: dsa: felix: fix some key offsets for IP4_TCP_UDP VCAP IS2 entries inet_diag: validate INET_DIAG_REQ_PROTOCOL attribute net: bridge: br_vlan_get_pvid_rcu() should dereference the VLAN group under RCU net: Update MAINTAINERS for MediaTek switch driver net/mlx5e: mlx5e_fec_in_caps() returns a boolean net/mlx5e: kTLS, Avoid kzalloc(GFP_KERNEL) under spinlock net/mlx5e: kTLS, Fix leak on resync error flow net/mlx5e: kTLS, Add missing dma_unmap in RX resync net/mlx5e: kTLS, Fix napi sync and possible use-after-free net/mlx5e: TLS, Do not expose FPGA TLS counter if not supported net/mlx5e: Fix using wrong stats_grps in mlx5e_update_ndo_stats() net/mlx5e: Fix multicast counter not up-to-date in "ip -s" net/mlx5e: Fix endianness when calculating pedit mask first bit net/mlx5e: Enable adding peer miss rules only if merged eswitch is supported net/mlx5e: CT: Fix freeing ct_label mapping net/mlx5e: Fix memory leak of tunnel info when rule under multipath not ready net/mlx5e: Use synchronize_rcu to sync with NAPI net/mlx5e: Use RCU to protect rq->xdp_prog ...
This commit is contained in:
+2
-2
@@ -38,7 +38,7 @@ FEATURE_TESTS = libbfd disassembler-four-args
|
||||
FEATURE_DISPLAY = libbfd disassembler-four-args
|
||||
|
||||
check_feat := 1
|
||||
NON_CHECK_FEAT_TARGETS := clean bpftool_clean runqslower_clean
|
||||
NON_CHECK_FEAT_TARGETS := clean bpftool_clean runqslower_clean resolve_btfids_clean
|
||||
ifdef MAKECMDGOALS
|
||||
ifeq ($(filter-out $(NON_CHECK_FEAT_TARGETS),$(MAKECMDGOALS)),)
|
||||
check_feat := 0
|
||||
@@ -89,7 +89,7 @@ $(OUTPUT)bpf_exp.lex.c: $(OUTPUT)bpf_exp.yacc.c
|
||||
$(OUTPUT)bpf_exp.yacc.o: $(OUTPUT)bpf_exp.yacc.c
|
||||
$(OUTPUT)bpf_exp.lex.o: $(OUTPUT)bpf_exp.lex.c
|
||||
|
||||
clean: bpftool_clean runqslower_clean
|
||||
clean: bpftool_clean runqslower_clean resolve_btfids_clean
|
||||
$(call QUIET_CLEAN, bpf-progs)
|
||||
$(Q)$(RM) -r -- $(OUTPUT)*.o $(OUTPUT)bpf_jit_disasm $(OUTPUT)bpf_dbg \
|
||||
$(OUTPUT)bpf_asm $(OUTPUT)bpf_exp.yacc.* $(OUTPUT)bpf_exp.lex.*
|
||||
|
||||
@@ -80,6 +80,7 @@ libbpf-clean:
|
||||
clean: libsubcmd-clean libbpf-clean fixdep-clean
|
||||
$(call msg,CLEAN,$(BINARY))
|
||||
$(Q)$(RM) -f $(BINARY); \
|
||||
$(RM) -rf $(if $(OUTPUT),$(OUTPUT),.)/feature; \
|
||||
find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
|
||||
|
||||
tags:
|
||||
|
||||
@@ -59,7 +59,7 @@ FEATURE_USER = .libbpf
|
||||
FEATURE_TESTS = libelf libelf-mmap zlib bpf reallocarray
|
||||
FEATURE_DISPLAY = libelf zlib bpf
|
||||
|
||||
INCLUDES = -I. -I$(srctree)/tools/include -I$(srctree)/tools/arch/$(ARCH)/include/uapi -I$(srctree)/tools/include/uapi
|
||||
INCLUDES = -I. -I$(srctree)/tools/include -I$(srctree)/tools/include/uapi
|
||||
FEATURE_CHECK_CFLAGS-bpf = $(INCLUDES)
|
||||
|
||||
check_feat := 1
|
||||
@@ -152,6 +152,7 @@ GLOBAL_SYM_COUNT = $(shell readelf -s --wide $(BPF_IN_SHARED) | \
|
||||
awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}' | \
|
||||
sort -u | wc -l)
|
||||
VERSIONED_SYM_COUNT = $(shell readelf --dyn-syms --wide $(OUTPUT)libbpf.so | \
|
||||
awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}' | \
|
||||
grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | sort -u | wc -l)
|
||||
|
||||
CMD_TARGETS = $(LIB_TARGET) $(PC_FILE)
|
||||
@@ -219,6 +220,7 @@ check_abi: $(OUTPUT)libbpf.so
|
||||
awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \
|
||||
sort -u > $(OUTPUT)libbpf_global_syms.tmp; \
|
||||
readelf --dyn-syms --wide $(OUTPUT)libbpf.so | \
|
||||
awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {print $$NF}'| \
|
||||
grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | \
|
||||
sort -u > $(OUTPUT)libbpf_versioned_syms.tmp; \
|
||||
diff -u $(OUTPUT)libbpf_global_syms.tmp \
|
||||
|
||||
@@ -5203,8 +5203,8 @@ static int bpf_object__collect_map_relos(struct bpf_object *obj,
|
||||
int i, j, nrels, new_sz;
|
||||
const struct btf_var_secinfo *vi = NULL;
|
||||
const struct btf_type *sec, *var, *def;
|
||||
struct bpf_map *map = NULL, *targ_map;
|
||||
const struct btf_member *member;
|
||||
struct bpf_map *map, *targ_map;
|
||||
const char *name, *mname;
|
||||
Elf_Data *symbols;
|
||||
unsigned int moff;
|
||||
|
||||
@@ -47,7 +47,10 @@ int dump_bpf_hash_map(struct bpf_iter__bpf_map_elem *ctx)
|
||||
__u32 seq_num = ctx->meta->seq_num;
|
||||
struct bpf_map *map = ctx->map;
|
||||
struct key_t *key = ctx->key;
|
||||
struct key_t tmp_key;
|
||||
__u64 *val = ctx->value;
|
||||
__u64 tmp_val = 0;
|
||||
int ret;
|
||||
|
||||
if (in_test_mode) {
|
||||
/* test mode is used by selftests to
|
||||
@@ -61,6 +64,18 @@ int dump_bpf_hash_map(struct bpf_iter__bpf_map_elem *ctx)
|
||||
if (key == (void *)0 || val == (void *)0)
|
||||
return 0;
|
||||
|
||||
/* update the value and then delete the <key, value> pair.
|
||||
* it should not impact the existing 'val' which is still
|
||||
* accessible under rcu.
|
||||
*/
|
||||
__builtin_memcpy(&tmp_key, key, sizeof(struct key_t));
|
||||
ret = bpf_map_update_elem(&hashmap1, &tmp_key, &tmp_val, 0);
|
||||
if (ret)
|
||||
return 0;
|
||||
ret = bpf_map_delete_elem(&hashmap1, &tmp_key);
|
||||
if (ret)
|
||||
return 0;
|
||||
|
||||
key_sum_a += key->a;
|
||||
key_sum_b += key->b;
|
||||
key_sum_c += key->c;
|
||||
|
||||
@@ -1175,6 +1175,51 @@ kci_test_neigh_get()
|
||||
echo "PASS: neigh get"
|
||||
}
|
||||
|
||||
kci_test_bridge_parent_id()
|
||||
{
|
||||
local ret=0
|
||||
sysfsnet=/sys/bus/netdevsim/devices/netdevsim
|
||||
probed=false
|
||||
|
||||
if [ ! -w /sys/bus/netdevsim/new_device ] ; then
|
||||
modprobe -q netdevsim
|
||||
check_err $?
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "SKIP: bridge_parent_id can't load netdevsim"
|
||||
return $ksft_skip
|
||||
fi
|
||||
probed=true
|
||||
fi
|
||||
|
||||
echo "10 1" > /sys/bus/netdevsim/new_device
|
||||
while [ ! -d ${sysfsnet}10 ] ; do :; done
|
||||
echo "20 1" > /sys/bus/netdevsim/new_device
|
||||
while [ ! -d ${sysfsnet}20 ] ; do :; done
|
||||
udevadm settle
|
||||
dev10=`ls ${sysfsnet}10/net/`
|
||||
dev20=`ls ${sysfsnet}20/net/`
|
||||
|
||||
ip link add name test-bond0 type bond mode 802.3ad
|
||||
ip link set dev $dev10 master test-bond0
|
||||
ip link set dev $dev20 master test-bond0
|
||||
ip link add name test-br0 type bridge
|
||||
ip link set dev test-bond0 master test-br0
|
||||
check_err $?
|
||||
|
||||
# clean up any leftovers
|
||||
ip link del dev test-br0
|
||||
ip link del dev test-bond0
|
||||
echo 20 > /sys/bus/netdevsim/del_device
|
||||
echo 10 > /sys/bus/netdevsim/del_device
|
||||
$probed && rmmod netdevsim
|
||||
|
||||
if [ $ret -ne 0 ]; then
|
||||
echo "FAIL: bridge_parent_id"
|
||||
return 1
|
||||
fi
|
||||
echo "PASS: bridge_parent_id"
|
||||
}
|
||||
|
||||
kci_test_rtnl()
|
||||
{
|
||||
local ret=0
|
||||
@@ -1224,6 +1269,8 @@ kci_test_rtnl()
|
||||
check_err $?
|
||||
kci_test_neigh_get
|
||||
check_err $?
|
||||
kci_test_bridge_parent_id
|
||||
check_err $?
|
||||
|
||||
kci_del_dummy
|
||||
return $ret
|
||||
|
||||
Reference in New Issue
Block a user