1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0-only
3
4. ./eeh-functions.sh
5
6eeh_test_prep # NB: may exit
7
8vf_list="$(eeh_enable_vfs)";
9if $? != 0 ; then
10	log "No usable VFs found. Skipping EEH unaware VF test"
11	exit $KSELFTESTS_SKIP;
12fi
13
14log "Enabled VFs: $vf_list"
15
16tested=0
17passed=0
18for vf in $vf_list ; do
19	log "Testing $vf"
20
21	if ! eeh_can_recover $vf ; then
22		log "Driver for $vf doesn't support error recovery, skipping"
23		continue;
24	fi
25
26	tested="$((tested + 1))"
27
28	log "Breaking $vf..."
29	if ! eeh_one_dev $vf ; then
30		log "$vf failed to recover"
31		continue;
32	fi
33
34	passed="$((passed + 1))"
35done
36
37eeh_disable_vfs
38
39if [ "$tested" == 0 ] ; then
40	echo "No VFs with EEH aware drivers found, skipping"
41	exit $KSELFTESTS_SKIP
42fi
43
44test "$failed" != 0
45exit $?;
46