You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.2 KiB
56 lines
2.2 KiB
From f69cd051ab85fb01ddf00aadd3c559e85d8980f0 Mon Sep 17 00:00:00 2001 |
|
From: Pratyush Anand <panand@redhat.com> |
|
Date: Wed, 16 Mar 2016 09:16:24 +0530 |
|
Subject: [PATCH] watchdog: ensure that module is loaded as early as possible |
|
|
|
It is expected that a watchdog module will disable an active watchdog when |
|
its probe is called ie, when it is loaded. So an early load of the module |
|
will help to disable it earlier. |
|
This can be helpful in some corner cases where kdump and watchdog daemon |
|
both are active. |
|
|
|
Testing: |
|
-- When watchdog kernel modules were added |
|
# dracut --no-hostonly initramfs-test.img -a watchdog |
|
# lsinitrd initramfs-test.img -f etc/cmdline.d/00-watchdog.conf |
|
rd.driver.pre=iTCO_wdt,lpc_ich, |
|
|
|
Signed-off-by: Pratyush Anand <panand@redhat.com> |
|
Cc: Dave Young <dyoung@redhat.com> |
|
Cc: Don Zickus <dzickus@redhat.com> |
|
Cc: Harald Hoyer <harald@redhat.com> |
|
--- |
|
modules.d/04watchdog/module-setup.sh | 5 +++++ |
|
1 file changed, 5 insertions(+) |
|
|
|
diff --git a/modules.d/04watchdog/module-setup.sh b/modules.d/04watchdog/module-setup.sh |
|
index 4680936f..6b35f9f5 100755 |
|
--- a/modules.d/04watchdog/module-setup.sh |
|
+++ b/modules.d/04watchdog/module-setup.sh |
|
@@ -33,6 +33,7 @@ install() { |
|
|
|
installkernel() { |
|
[[ -d /sys/class/watchdog/ ]] || return |
|
+ wdtcmdline="" |
|
for dir in /sys/class/watchdog/*; do |
|
[[ -d "$dir" ]] || continue |
|
[[ -f "$dir/state" ]] || continue |
|
@@ -46,6 +47,7 @@ installkernel() { |
|
# represented by modalias |
|
wdtdrv=$(modprobe -R $wdtdrv) |
|
instmods $wdtdrv |
|
+ wdtcmdline="$wdtcmdline$(echo $wdtdrv | tr " " ",")," |
|
# however in some cases, we also need to check that if there is |
|
# a specific driver for the parent bus/device. In such cases |
|
# we also need to enable driver for parent bus/device. |
|
@@ -55,7 +57,10 @@ installkernel() { |
|
wdtpdrv=$(< "$wdtppath/modalias") |
|
wdtpdrv=$(modprobe -R $wdtpdrv) |
|
instmods $wdtpdrv |
|
+ wdtcmdline="$wdtcmdline$(echo $wdtpdrv | tr " " ",")," |
|
wdtppath=$(readlink -f "$wdtppath/..") |
|
done |
|
done |
|
+ # ensure that watchdog module is loaded as early as possible |
|
+ [[ $wdtcmdline = "" ]] || echo "rd.driver.pre=$wdtcmdline" > ${initdir}/etc/cmdline.d/00-watchdog.conf |
|
}
|
|
|