File kdump-net-0017-kernel-mods-for-inactive.patch of Package kdump

From: Petr Tesarik <ptesarik@suse.com>
Date: Mon, 12 Sep 2016 17:43:14 +0200
Subject: Include required kernel modules for inactive interfaces
References: bsc#980328
Patch-mainline: v0.8.16
Git-commit: 848f4d15558bb6ae82d028cc5c281e813f84889b

Dracut's network module already includes modules for bridges, bonding
and vlan, but if dracut runs with the --hostonly option, they are
included only if the corresponding module is loaded. This logic is
wrong if kdump uses a non-default interface which is not started
automatically (e.g. with STARTMODE='manual').

Make sure that all necessary kernel modules are included by calling
instmods with hostonly explicitly set to an empty string.

Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
 init/module-setup.sh       | 5 +++++
 init/setup-kdump.functions | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/init/module-setup.sh b/init/module-setup.sh
index 27a06f8..5f295f5 100755
--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -112,6 +112,11 @@ cmdline() {
     kdump_cmdline_ip
 }
 
+installkernel() {
+    [ -n "$kdump_kmods" ] || return 0
+    hostonly='' instmods $kdump_kmods
+}
+
 install() {
     if [[ $hostonly_cmdline == "yes" ]] ; then
         local _cmdline=$(cmdline)
diff --git a/init/setup-kdump.functions b/init/setup-kdump.functions
index f97b498..133aa99 100644
--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -253,6 +253,7 @@ function kdump_list_slaves()						   # {{{
 # Output variables:
 #   kdump_netif  corresponding bridge= initrd parameter added
 #   kdump_iface  device name in initrd
+#   kdump_kmods  additional kernel modules updated
 function kdump_bridge_config()						   # {{{
 {
     local bridge="$1"
@@ -278,6 +279,7 @@ function kdump_bridge_config()						   # {{{
     kdump_iface="$bridge"
     [ -n "$slaves" ] || return 1
 
+    kdump_kmods="$kdump_kmods bridge"
     slaves="${slaves# }"
     kdump_netif="$kdump_netif bridge=$kdump_iface:${slaves// /,}"
 }									   # }}}
@@ -290,6 +292,7 @@ function kdump_bridge_config()						   # {{{
 # Output variables:
 #   kdump_netif  corresponding bond= initrd parameter added
 #   kdump_iface  device name in initrd
+#   kdump_kmods  additional kernel modules updated
 function kdump_bond_config()						   # {{{
 {
     local bond="$1"
@@ -392,6 +395,7 @@ function kdump_bond_config()						   # {{{
     [ -n "$slaves" ] || return 1
     slaves="${slaves# }"
 
+    kdump_kmods="$kdump_kmods bonding"
     kdump_netif="$kdump_netif bond=$kdump_iface:${slaves// /,}:${opts#,}"
 }									   # }}}
 
@@ -415,6 +419,7 @@ function kdump_link2vlan()                                                # {{{{
 # Output variables:
 #   kdump_netif  corresponding vlan= initrd parameter added
 #   kdump_iface  device name in initrd
+#   kdump_kmods  additional kernel modules updated
 #
 # Because of dracut limitations for vlan interface naming, the initrd
 # interface name may be different from the original name.
@@ -438,6 +443,7 @@ function kdump_vlan_config()						   # {{{
 	if="${slaves# }"
     fi
 
+    kdump_kmods="$kdump_kmods 8021q"
     kdump_ifname_config "$if"
     kdump_iface="$if.$vid"
     kdump_netif="$kdump_netif vlan=$kdump_iface:$if"
@@ -450,6 +456,7 @@ function kdump_vlan_config()						   # {{{
 # Output variables:
 #   kdump_netif  corresponding ifname= initrd parameter added
 #   kdump_iface  device name in initrd
+#   kdump_kmods  additional kernel modules updated
 function kdump_ifname_config()						   # {{{
 {
     kdump_iface="$1"
-- 
2.6.6

openSUSE Build Service is sponsored by