summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-10-08 10:49:26 -0700
committerJakub Kicinski <kuba@kernel.org>2026-10-08 10:49:26 -0700
commitff6f5157e034f81c2d6482259fc656cd0fe5a8ff (patch)
tree829db06971b3900b274aa125a0883e57b911effe /tools
parentfc13ba44da197a186f2f4d77c5b7d73d0f99f053 (diff)
parent71198b59df56a9a0115115091cc1aad2a4e3c74d (diff)
downloadlinux-ff6f5157e034f81c2d6482259fc656cd0fe5a8ff.tar.gz
linux-ff6f5157e034f81c2d6482259fc656cd0fe5a8ff.zip
Merge branch 'mlxsw-fix-port-range-register-leak'
Petr Machata says: ==================== mlxsw: Fix port range register leak When the mlxsw driver parses a port range template rule, it acquires the actual port range registers. The parsing is only done to determine the element usage, so the registers can be deallocated right away, but this is never done, and the registers are leaked. Plug this leak and add a selftest that would have caught it. ==================== Link: https://patch.msgid.link/cover.1791294384.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/testing/selftests/drivers/net/mlxsw/port_range_occ.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/testing/selftests/drivers/net/mlxsw/port_range_occ.sh b/tools/testing/selftests/drivers/net/mlxsw/port_range_occ.sh
index b1f0781f6b25..c7eba3f15066 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/port_range_occ.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/port_range_occ.sh
@@ -9,6 +9,7 @@ lib_dir=$(dirname $0)/../../../net/forwarding
ALL_TESTS="
port_range_occ_test
+ port_range_occ_tmplt_test
"
NUM_NETIFS=2
source $lib_dir/lib.sh
@@ -101,6 +102,31 @@ port_range_occ_test()
log_test "port range occupancy"
}
+port_range_occ_tmplt_test()
+{
+ local occ
+
+ RET=0
+ occ=$(port_range_occ_get)
+
+ # Addition of a chain template should not impact occupancy.
+ tc chain add dev "$swp1" ingress chain 1 protocol ip \
+ flower ip_proto udp src_port 501-600 dst_port 701-800
+ check_err $? "Could not add chain template"
+
+ (( occ == $(port_range_occ_get) ))
+ check_err $? "Got occupancy $(port_range_occ_get), expected $occ"
+
+ # And just for completeness sake, neither should deletion.
+ tc chain del dev "$swp1" ingress chain 1
+ check_err $? "Could not delete chain template"
+
+ (( occ == $(port_range_occ_get) ))
+ check_err $? "Got occupancy $(port_range_occ_get), expected $occ"
+
+ log_test "port range occupancy after template create/destroy"
+}
+
trap cleanup EXIT
setup_prepare