Accepting request 507134 from home:ptesarik:branches:Kernel:kdump

Actiavte QETH devices.

OBS-URL: https://build.opensuse.org/request/show/507134
OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/kdump?expand=0&rev=138
This commit is contained in:
Petr Tesařík 2017-06-29 16:35:58 +00:00 committed by Git OBS Bridge
parent dc11343831
commit 1f7858a76c
4 changed files with 137 additions and 35 deletions

View File

@ -0,0 +1,124 @@
From: Petr Tesarik <ptesarik@suse.com>
Date: Thu Jun 29 18:11:52 2017 +0200
Subject: Activate QETH network devices
References: bsc#1038669
Upstream: v0.8.17
Git-commit: 2288f2b56fec0298fdf21ff7a5dd03157d12242e
Take care of activating QETH devices in the kdump environment, because
dracut does not do it automatically.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
init/setup-kdump.functions | 72 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
--- a/init/setup-kdump.functions
+++ b/init/setup-kdump.functions
@@ -457,6 +457,7 @@ function kdump_vlan_config() # {
# kdump_netif corresponding ifname= initrd parameter added
# kdump_iface device name in initrd
# kdump_kmods additional kernel modules updated
+# kdump_hwif hardware interfaces updated
function kdump_ifname_config() # {{{
{
kdump_iface="$1"
@@ -464,6 +465,8 @@ function kdump_ifname_config() #
if [ -z "$ifkind" ]
then
+ kdump_hwif="$kdump_hwif $kdump_iface"
+
local hwaddr
local addrtype=$(<"/sys/class/net/$kdump_iface/addr_assign_type")
if [ "$addrtype" -eq 0 ]
@@ -1038,6 +1041,69 @@ function kdump_filter_sysctl() #
} # }}}
#
+# Set up a QETH network interface
+# Parameters:
+# 1) _root: initrd temporary root
+# 2) _iface: interface name
+# Input variables:
+# kdump_hwif hardware network interfaces
+function kdump_setup_qeth() # {{{
+{
+ local _root="$1"
+ local _iface="$2"
+ local _dev=$( readlink "/sys/class/net/$_iface/device" )
+ _dev="${_dev##*/}"
+ local _cdev0=$( readlink "/sys/class/net/$_iface/device/cdev0" )
+ _cdev0="${_cdev0##*/}"
+ local _cdev1=$( readlink "/sys/class/net/$_iface/device/cdev1" )
+ _cdev1="${_cdev1##*/}"
+ local _cdev2=$( readlink "/sys/class/net/$_iface/device/cdev2" )
+ _cdev2="${_cdev2##*/}"
+ local _layer2=$(</sys/class/net/$_iface/device/layer2)
+ local _portno=$(</sys/class/net/$_iface/device/portno)
+
+ cat >"${_root}/etc/udev/rules.d/51-qeth-${_dev}.rules" <<EOF
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev0", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev1", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev2", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="remove", SUBSYSTEM=="drivers", KERNEL=="qeth", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev0", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev1", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev2", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
+TEST=="[ccwgroup/$_dev]", GOTO="qeth-${_dev}-end"
+ACTION=="add", SUBSYSTEM=="ccw", ENV{COLLECT_$_dev}=="0", ATTR{[drivers/ccwgroup:qeth]group}="$_cdev0,$_cdev1,$_cdev2"
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", ENV{COLLECT_$_dev}=="0", ATTR{[drivers/ccwgroup:qeth]group}="$_cdev0,$_cdev1,$_cdev2"
+LABEL="qeth-$_dev-end"
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{portno}="$_portno"
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{layer2}="$_layer2"
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{online}="1"
+EOF
+} # }}}
+
+#
+# Set up hardware network interfaces
+# Parameters:
+# 1) _root: initrd temporary root
+# Input variables:
+# kdump_hwif hardware network interfaces
+function kdump_setup_hwif() # {{{
+{
+ local _root="$1"
+ local _iface _drv
+
+ for _iface in $kdump_hwif
+ do
+ _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
+ case "$_drv" in
+ */qeth)
+ kdump_setup_qeth "$_root" "$_iface"
+ ;;
+ esac
+ done
+} # }}}
+
+#
# Set up or create all necessary files
# Parameters:
# 1) outdir: initrd temporary root
@@ -1046,6 +1112,7 @@ function kdump_filter_sysctl() #
# Input variables:
# KDUMP_* see kdump_get_config
# kdump_mnt[] mountpoints in kdump environment
+# kdump_hwif hardware network interfaces
# Output variables:
# KDUMP_REQUIRED_PROGRAMS updated as necessary
function kdump_setup_files() # {{{
@@ -1087,5 +1154,10 @@ function kdump_setup_files() # {
#
kdump_filter_sysctl "$outdir"
+ #
+ # set up hardware interfaces
+ #
+ kdump_setup_hwif "$outdir"
+
return 0
} # }}}

View File

@ -1,34 +0,0 @@
From: Petr Tesarik <ptesarik@suse.com>
Date: Mon Jun 26 14:10:33 2017 +0200
Subject: Do not reload on CPU/memory hotplug when using FADUMP
References: bsc#1040567
Upstream: v0.8.17
Git-commit: c00516e1cb4f0679f38099880726154a507673ec
Core headers are only used with kexec-based kdump, not with FADUMP.
The whole udev rule can be skipped when using FADUMP.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
diff --git a/70-kdump.rules.in b/70-kdump.rules.in
index 6980c7e..bccb341 100644
--- a/70-kdump.rules.in
+++ b/70-kdump.rules.in
@@ -5,12 +5,16 @@
#
@else
#
-# Kdump core headers needs to be regnerated if the CPUs or memory changes.
+# Kdump core headers need to be regenerated if the CPUs or memory changes.
# For this, reload kdump.
#
# Novell Bug #389658
#
+@if @ARCH@ ppc ppc64 ppc64le
+TEST="/sys/kernel/fadump_registered", PROGRAM="/bin/cat /sys/kernel/fadump_registered", RESULT=="1", GOTO="kdump_end"
+@endif
+
SUBSYSTEM=="memory", ACTION=="add|remove", GOTO="kdump_try_restart"
@if @ARCH@ ppc ppc64 ppc64le
SUBSYSTEM=="cpu", ACTION=="online|offline", GOTO="kdump_try_restart"

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Thu Jun 29 16:31:26 UTC 2017 - ptesarik@suse.com
- kdump-activate-QETH-devices.patch: Activate QETH network devices
(bsc#1038669).
-------------------------------------------------------------------
Tue Jun 27 06:06:54 UTC 2017 - ptesarik@suse.com
- Drop kdump-do-not-reload-FADUMP-on-CPU-memory-hotplug.patch:
Reload is needed even with fadmp (bsc#1040567).
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jun 26 11:24:47 UTC 2017 - ptesarik@suse.com Mon Jun 26 11:24:47 UTC 2017 - ptesarik@suse.com

View File

@ -66,7 +66,7 @@ Patch21: %{name}-treat-KDUMP_CPUS-0-as-all-available-CPUs.patch
Patch22: %{name}-multithreading-by-default.patch Patch22: %{name}-multithreading-by-default.patch
Patch23: %{name}-explicitly-request-zFCP-devices.patch Patch23: %{name}-explicitly-request-zFCP-devices.patch
Patch24: %{name}-fail-if-fadump-cannot-be-registered.patch Patch24: %{name}-fail-if-fadump-cannot-be-registered.patch
Patch25: %{name}-do-not-reload-FADUMP-on-CPU-memory-hotplug.patch Patch25: %{name}-activate-QETH-devices.patch
BuildRequires: asciidoc BuildRequires: asciidoc
BuildRequires: cmake BuildRequires: cmake
BuildRequires: gcc-c++ BuildRequires: gcc-c++