-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[S390] Reset infrastructure for re-IPL.
In case of re-IPL and diag308 doesn't work we have to reset all devices manually and wait synchronously that each reset finished. This patch adds the necessary infrastucture and the first exploiter of it. Subsystems that need to add a function that needs to be called at re-IPL may register/unregister this function via struct reset_call { struct reset_call *next; void (*fn)(void); }; void register_reset_call(struct reset_call *reset); void unregister_reset_call(struct reset_call *reset); When the registered function get called the context is: - all cpus beside the current one are stopped - all machine checks and interrupts are disabled - prefixing is disabled - a default machine check handler is available for use The registered functions may not take any locks are sleep. For the common I/O layer part of this patch: Introduce a reset_call css_reset that does the following: - clear all subchannels - perform a rchp on all channel paths and wait for the resulting machine checks This replaces the calls to clear_all_subchannels() and cio_reset_channel_paths() for kexec and ccw reipl. reipl_ccw_dev() now uses reipl_find_schid() to determine the subchannel id for a given device id. Also remove cio_reset_channel_paths() and friends since they are not needed anymore. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
- Loading branch information
Heiko Carstens
authored and
Martin Schwidefsky
committed
Dec 4, 2006
1 parent
2254f5a
commit 15e9b58
Showing
13 changed files
with
246 additions
and
108 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* | ||
* arch/s390/kernel/reset.S | ||
* | ||
* Copyright (C) IBM Corp. 2006 | ||
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | ||
*/ | ||
|
||
#include <asm/ptrace.h> | ||
#include <asm/lowcore.h> | ||
|
||
#ifdef CONFIG_64BIT | ||
|
||
.globl reset_mcck_handler | ||
reset_mcck_handler: | ||
basr %r13,0 | ||
0: lg %r15,__LC_PANIC_STACK # load panic stack | ||
aghi %r15,-STACK_FRAME_OVERHEAD | ||
lg %r1,s390_reset_mcck_handler-0b(%r13) | ||
ltgr %r1,%r1 | ||
jz 1f | ||
basr %r14,%r1 | ||
1: la %r1,4095 | ||
lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1) | ||
lpswe __LC_MCK_OLD_PSW | ||
|
||
.globl s390_reset_mcck_handler | ||
s390_reset_mcck_handler: | ||
.quad 0 | ||
|
||
#else /* CONFIG_64BIT */ | ||
|
||
.globl reset_mcck_handler | ||
reset_mcck_handler: | ||
basr %r13,0 | ||
0: l %r15,__LC_PANIC_STACK # load panic stack | ||
ahi %r15,-STACK_FRAME_OVERHEAD | ||
l %r1,s390_reset_mcck_handler-0b(%r13) | ||
ltr %r1,%r1 | ||
jz 1f | ||
basr %r14,%r1 | ||
1: lm %r0,%r15,__LC_GPREGS_SAVE_AREA | ||
lpsw __LC_MCK_OLD_PSW | ||
|
||
.globl s390_reset_mcck_handler | ||
s390_reset_mcck_handler: | ||
.long 0 | ||
|
||
#endif /* CONFIG_64BIT */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.