If dracut watchdog module is enabled then, it includes kernel watchdog
module of active watchdog device in initramfs.
kdump.conf has an option to modify dracut_args. So, if an user passes "-a
watchdog" in dracut_args then dracut will add kernel watchdog module of
active watchdog device in initramfs.
Since, kexec-tools always requires to add kernel watchdog module of active
watchdog device in initramfs, therefore even when an user does not pass any
watchdog option then also kexec-tools adds "-a watchdog" in dracut args.
Therefore, if an user does not want to add kernel watchdog module in
initramfs then he/she must pass "-o watchdog" in dracut_args.
Signed-off-by: Pratyush Anand <panand(a)redhat.com>
---
kdump-lib.sh | 29 +++++++++++++++++++++++++++++
mkdumprd | 5 ++++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/kdump-lib.sh b/kdump-lib.sh
index 141a5614f1d5..bd1d95ea4bfd 100755
--- a/kdump-lib.sh
+++ b/kdump-lib.sh
@@ -382,3 +382,32 @@ get_ifcfg_filename() {
echo -n "${ifcfg_file}"
}
+
+# returns 0 when omission of watchdog module is desired in dracut_args
+# returns 1 when addition of watchdog module is desired in dracut_args
+# returns 2 when there is no option for watchdog module in dracut_args
+check_wdt_mod_omission() {
+ local dracut_args
+ local ret=2
+
+ dracut_args=$(grep "^dracut_args" /etc/kdump.conf)
+ [[ -z $dracut_args ]] && return $ret
+
+ eval set -- $dracut_args
+ while :; do
+ [[ -z $1 ]] && break
+ case $1 in
+ -o|--omit)
+ echo $2 | grep -qw "watchdog"
+ [[ $? == 0 ]] && ret=0
+ shift;;
+ -a|--add)
+ echo $2 | grep -qw "watchdog"
+ [[ $? == 0 ]] && ret=1
+ shift;;
+ esac
+ shift
+ done
+
+ return $ret
+}
diff --git a/mkdumprd b/mkdumprd
index eb0d5e06fac9..f964940555ee 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -16,8 +16,11 @@ SAVE_PATH=$(grep ^path $conf_file| cut -d' ' -f2)
# strip the duplicated "/"
SAVE_PATH=$(echo $SAVE_PATH | tr -s /)
+check_wdt_mod_omission
+[[ $? -eq 2 ]] && WDTCFG="-a watchdog"
+
extra_modules=""
-dracut_args=("--hostonly" "-o" "plymouth dash resume
ifcfg")
+dracut_args=("--hostonly" "-o" "plymouth dash resume ifcfg"
$WDTCFG)
OVERRIDE_RESETTABLE=0
add_dracut_arg() {
--
2.5.5