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 16failed=0 17for vf in $vf_list ; do 18 log "Testing $vf" 19 20 if eeh_can_recover $vf ; then 21 log "Driver for $vf supports error recovery. Unbinding..." 22 echo "$vf" > /sys/bus/pci/devices/$vf/driver/unbind 23 fi 24 25 log "Breaking $vf..." 26 if ! eeh_one_dev $vf ; then 27 log "$vf failed to recover" 28 failed="$((failed + 1))" 29 fi 30done 31 32eeh_disable_vfs 33 34test "$failed" != 0 35exit $?; 36