brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · fe0343b Raw
59 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03#4# Test that PCI reset works correctly by verifying that only the expected reset5# methods are supported and that after issuing the reset the ifindex of the6# port changes.7 8lib_dir=$(dirname $0)/../../../net/forwarding9 10ALL_TESTS="11	pci_reset_test12"13NUM_NETIFS=114source $lib_dir/lib.sh15source $lib_dir/devlink_lib.sh16 17pci_reset_test()18{19	RET=020 21	local bus=$(echo $DEVLINK_DEV | cut -d '/' -f 1)22	local bdf=$(echo $DEVLINK_DEV | cut -d '/' -f 2)23 24	if [ $bus != "pci" ]; then25		check_err 1 "devlink device is not a PCI device"26		log_test "pci reset"27		return28	fi29 30	if [ ! -f /sys/bus/pci/devices/$bdf/reset_method ]; then31		check_err 1 "reset is not supported"32		log_test "pci reset"33		return34	fi35 36	[[ $(cat /sys/bus/pci/devices/$bdf/reset_method) == "bus" ]]37	check_err $? "only \"bus\" reset method should be supported"38 39	local ifindex_pre=$(ip -j link show dev $swp1 | jq '.[]["ifindex"]')40 41	echo 1 > /sys/bus/pci/devices/$bdf/reset42	check_err $? "reset failed"43 44	# Wait for udev to rename newly created netdev.45	udevadm settle46 47	local ifindex_post=$(ip -j link show dev $swp1 | jq '.[]["ifindex"]')48 49	[[ $ifindex_pre != $ifindex_post ]]50	check_err $? "reset not performed"51 52	log_test "pci reset"53}54 55swp1=${NETIFS[p1]}56tests_run57 58exit $EXIT_STATUS59