This check was put in place as a workaround for some specific kernel builds which were mainly shipped under centos8. Since we already dropped centos8 in the CI and replaced it with rocky8 (where kernel is actually stable) there's no value in maintaining that anymore. Signed-off-by: Michal Berger <michal.berger@intel.com> Change-Id: Idd39b5bae888a991d7d628a19bc18acac6570f81 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15819 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
72 lines
1.5 KiB
Bash
Executable File
72 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright (C) 2020 Intel Corporation
|
|
# All rights reserved.
|
|
#
|
|
|
|
testdir=$(readlink -f "$(dirname "$0")")
|
|
rootdir=$(readlink -f "$testdir/../../")
|
|
source "$testdir/common.sh"
|
|
|
|
shopt -s nullglob extglob
|
|
|
|
dep() { modprobe --show-depends "$1"; }
|
|
mod() { [[ $(dep "$1") == *".ko"* ]]; }
|
|
bui() { [[ $(dep "$1") == "builtin $1" ]]; }
|
|
is_driver() { mod "$1" || bui "$1"; }
|
|
|
|
uio() {
|
|
is_driver uio_pci_generic
|
|
}
|
|
|
|
vfio() {
|
|
local iommu_grups
|
|
local unsafe_vfio
|
|
|
|
[[ -e /sys/module/vfio/parameters/enable_unsafe_noiommu_mode ]] \
|
|
&& unsafe_vfio=$(< /sys/module/vfio/parameters/enable_unsafe_noiommu_mode)
|
|
|
|
iommu_groups=(/sys/kernel/iommu_groups/*)
|
|
|
|
if ((${#iommu_groups[@]} > 0)) || [[ $unsafe_vfio == Y ]]; then
|
|
is_driver vfio_pci && return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
pick_driver() {
|
|
if vfio; then
|
|
echo "vfio-pci"
|
|
elif uio; then
|
|
echo "uio_pci_generic"
|
|
else
|
|
echo "No valid driver found"
|
|
fi
|
|
}
|
|
|
|
guess_driver() {
|
|
local driver setup_driver marker
|
|
local fail=0
|
|
|
|
driver=$(pick_driver)
|
|
|
|
if [[ $driver == "No valid driver found" ]]; then
|
|
[[ $(setup output config) == "$driver"* ]]
|
|
return 0
|
|
fi
|
|
|
|
echo "Looking for driver=$driver"
|
|
while read -r _ _ _ _ marker setup_driver; do
|
|
[[ $marker == "->" ]] || continue
|
|
# Allow for more open matching
|
|
# shellcheck disable=SC2053
|
|
[[ $setup_driver == $driver ]] || fail=1
|
|
done < <(setup output config)
|
|
|
|
((fail == 0))
|
|
setup reset
|
|
}
|
|
|
|
setup reset
|
|
run_test "guess_driver" "guess_driver"
|