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:
@@ -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