From ce8f7967204ff3f8b7ad622984306f10926d684f Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: May 09 2024 05:40:43 +0000 Subject: Try to install PHY and MDIO bus drivers explicitly Resolves: https://issues.redhat.com/browse/RHEL-7028 Conflict: None Upstream Status: git@github.com:rhkdump/kdump-utils.git commit d057153a1c3c36612a14143b29c0ff0be34e4fc2 Author: Coiby Xu Date: Thu Sep 21 11:50:14 2023 +0800 Try to install PHY and MDIO bus drivers explicitly Resolves: https://issues.redhat.com/browse/RHEL-7028 Currently, nfs dumping fails on some machines that has a dedicated PHY driver (dealing with the physical layer) or MDIO bus (connecting the MAC to PHY devices) driver. This is because kexec-tools doesn't install dedicated PHY or MDIO driver explicitly. Usually a NIC driver shouldn't specify the dependency on the needed PHY or MDIO driver because it shouldn't a NIC (medium access control, MAC) driver is for dealing with the Data link layer and a PHY driver is for physical layer. So as long as a MAC driver can talk to the PHY layer via APIs, it shouldn't care which PHY driver or device it's talking to. So when the dependency on a PHY driver or MDIO driver is not found by dracut's instmods, the PHY or MDIO driver won't be installed. This patch passes =drivers/net/phy and =drivers/net/mdio to dracut's instmods which will only install in-use PHY or MDIO driver(s). Note ideally we should find out which PHY driver is used by a NIC but unfortunately currently no universal way can be found (/sys/class/net/NIC_NAME/phydev/driver/module can be used to find the name of the PHY driver for some NICs but it doesn't exist for some NICs like Qualcomm Atheros AR8031). So is it for a MDIO bus driver. Fortunately currently no huge memory consumption is found for a PHY or MDIO driver. Fixes: a65dde2d ("Reduce kdump memory consumption by only installing needed NIC drivers") Reported-by: Doreen Alongi Signed-off-by: Coiby Xu Signed-off-by: Coiby Xu --- diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index bcbb2e5..454e8b0 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -394,7 +394,7 @@ _get_hpyerv_physical_driver() { kdump_install_nic_driver() { local _netif _driver _drivers - _drivers=() + _drivers=('=drivers/net/phy' '=drivers/net/mdio') for _netif in $1; do [[ $_netif == lo ]] && continue