diff options
author | Michael Holzheu <holzheu@linux.vnet.ibm.com> | 2011-08-03 10:44:22 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2011-08-03 10:44:19 -0400 |
commit | 9dc7356ee1266d6a69fc80f28d006f71c20bf172 (patch) | |
tree | f2b9c912d9859cd70e1f86b05d75bd78af922461 /arch/s390/kernel/ipl.c | |
parent | ef1daec8da2c04b0c6e91a34b9cac1aad33c6692 (diff) |
[S390] Use diagnose 308 for system reset
The diagnose 308 call is the prefered method for clearing all ongoing I/O.
Therefore if it is available we use it instead of doing a manual reset.
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r-- | arch/s390/kernel/ipl.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 059c59027ac0..04361d5a4279 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -1996,6 +1996,12 @@ static void do_reset_calls(void) | |||
1996 | { | 1996 | { |
1997 | struct reset_call *reset; | 1997 | struct reset_call *reset; |
1998 | 1998 | ||
1999 | #ifdef CONFIG_64BIT | ||
2000 | if (diag308_set_works) { | ||
2001 | diag308_reset(); | ||
2002 | return; | ||
2003 | } | ||
2004 | #endif | ||
1999 | list_for_each_entry(reset, &rcall, list) | 2005 | list_for_each_entry(reset, &rcall, list) |
2000 | reset->fn(); | 2006 | reset->fn(); |
2001 | } | 2007 | } |