kexec-tools/0004-Install-the-driver-of-physical-device-for-a-SR-IOV-v.patch
Lichen Liu 426b9269b8
Re apply upstream patches
We should use PatchXX to apply upstream kdump-utils
patches instead of directly merge them into git.

Resolves: RHEL-36415
Resolves: RHEL-37670
Upstream: https://github.com/rhkdump/kdump-utils/
Conflict: None

Signed-off-by: Lichen Liu <lichliu@redhat.com>
2024-06-11 11:05:24 +08:00

51 lines
1.6 KiB
Diff

From 7a8edc8de67dccae23b01461bc3b17c0ad42aa5f Mon Sep 17 00:00:00 2001
From: Coiby Xu <coxu@redhat.com>
Date: Wed, 27 Sep 2023 09:31:39 +0800
Subject: [PATCH 4/7] Install the driver of physical device for a SR-IOV
virtual device
Currently, network dumping failed over a NIC that is a Single Root I/O
Virtualization (SR-IOV) virtual device. Usually the driver of the
virtual device won't specify the dependency on the driver of the
physical device. So to fix this issue, the driver of the physical device
needs to be found and installed as well.
Fixes: a65dde2d ("Reduce kdump memory consumption by only installing needed NIC drivers")
Signed-off-by: Coiby Xu <coxu@redhat.com>
---
dracut-module-setup.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index 3c9bdbe..89d9959 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -381,6 +381,14 @@ _get_hpyerv_physical_driver() {
_get_nic_driver "$_physical_nic"
}
+_get_physical_function_driver() {
+ local _physfn_dir=/sys/class/net/"$1"/device/physfn
+
+ if [[ -e "$_physfn_dir" ]]; then
+ basename "$(readlink -f "$_physfn_dir"/driver)"
+ fi
+}
+
kdump_install_nic_driver() {
local _netif _driver _drivers
@@ -408,6 +416,9 @@ kdump_install_nic_driver() {
fi
_drivers+=("$_driver")
+ # For a Single Root I/O Virtualization (SR-IOV) virtual device,
+ # the driver of physical device needs to be installed as well
+ _drivers+=("$(_get_physical_function_driver "$_netif")")
done
[[ -n ${_drivers[*]} ]] || return
--
2.44.0