46 lines
754 B
Bash
46 lines
754 B
Bash
|
#!/bin/sh
|
||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||
|
|
||
|
. ./eeh-functions.sh
|
||
|
|
||
|
eeh_test_prep # NB: may exit
|
||
|
|
||
|
vf_list="$(eeh_enable_vfs)";
|
||
|
if $? != 0 ; then
|
||
|
log "No usable VFs found. Skipping EEH unaware VF test"
|
||
|
exit $KSELFTESTS_SKIP;
|
||
|
fi
|
||
|
|
||
|
log "Enabled VFs: $vf_list"
|
||
|
|
||
|
tested=0
|
||
|
passed=0
|
||
|
for vf in $vf_list ; do
|
||
|
log "Testing $vf"
|
||
|
|
||
|
if ! eeh_can_recover $vf ; then
|
||
|
log "Driver for $vf doesn't support error recovery, skipping"
|
||
|
continue;
|
||
|
fi
|
||
|
|
||
|
tested="$((tested + 1))"
|
||
|
|
||
|
log "Breaking $vf..."
|
||
|
if ! eeh_one_dev $vf ; then
|
||
|
log "$vf failed to recover"
|
||
|
continue;
|
||
|
fi
|
||
|
|
||
|
passed="$((passed + 1))"
|
||
|
done
|
||
|
|
||
|
eeh_disable_vfs
|
||
|
|
||
|
if [ "$tested" == 0 ] ; then
|
||
|
echo "No VFs with EEH aware drivers found, skipping"
|
||
|
exit $KSELFTESTS_SKIP
|
||
|
fi
|
||
|
|
||
|
test "$failed" != 0
|
||
|
exit $?;
|