| #!/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 $?; |