mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
selftests: mlxsw: Add PCI reset test
Test that PCI reset works correctly by verifying that only the expected reset methods are supported and that after issuing the reset the ifindex of the port changes. Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5e12d08985
commit
af51d6bd0b
1 changed files with 58 additions and 0 deletions
58
tools/testing/selftests/drivers/net/mlxsw/pci_reset.sh
Executable file
58
tools/testing/selftests/drivers/net/mlxsw/pci_reset.sh
Executable file
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
#
|
||||
# Test that PCI reset works correctly by verifying that only the expected reset
|
||||
# methods are supported and that after issuing the reset the ifindex of the
|
||||
# port changes.
|
||||
|
||||
lib_dir=$(dirname $0)/../../../net/forwarding
|
||||
|
||||
ALL_TESTS="
|
||||
pci_reset_test
|
||||
"
|
||||
NUM_NETIFS=1
|
||||
source $lib_dir/lib.sh
|
||||
source $lib_dir/devlink_lib.sh
|
||||
|
||||
pci_reset_test()
|
||||
{
|
||||
RET=0
|
||||
|
||||
local bus=$(echo $DEVLINK_DEV | cut -d '/' -f 1)
|
||||
local bdf=$(echo $DEVLINK_DEV | cut -d '/' -f 2)
|
||||
|
||||
if [ $bus != "pci" ]; then
|
||||
check_err 1 "devlink device is not a PCI device"
|
||||
log_test "pci reset"
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -f /sys/bus/pci/devices/$bdf/reset_method ]; then
|
||||
check_err 1 "reset is not supported"
|
||||
log_test "pci reset"
|
||||
return
|
||||
fi
|
||||
|
||||
[[ $(cat /sys/bus/pci/devices/$bdf/reset_method) == "bus" ]]
|
||||
check_err $? "only \"bus\" reset method should be supported"
|
||||
|
||||
local ifindex_pre=$(ip -j link show dev $swp1 | jq '.[]["ifindex"]')
|
||||
|
||||
echo 1 > /sys/bus/pci/devices/$bdf/reset
|
||||
check_err $? "reset failed"
|
||||
|
||||
# Wait for udev to rename newly created netdev.
|
||||
udevadm settle
|
||||
|
||||
local ifindex_post=$(ip -j link show dev $swp1 | jq '.[]["ifindex"]')
|
||||
|
||||
[[ $ifindex_pre != $ifindex_post ]]
|
||||
check_err $? "reset not performed"
|
||||
|
||||
log_test "pci reset"
|
||||
}
|
||||
|
||||
swp1=${NETIFS[p1]}
|
||||
tests_run
|
||||
|
||||
exit $EXIT_STATUS
|
Loading…
Reference in a new issue