aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2011-08-03 10:44:22 -0400
committerHeiko Carstens <heiko.carstens@de.ibm.com>2011-08-03 10:44:19 -0400
commit9dc7356ee1266d6a69fc80f28d006f71c20bf172 (patch)
treef2b9c912d9859cd70e1f86b05d75bd78af922461 /arch/s390/kernel/ipl.c
parentef1daec8da2c04b0c6e91a34b9cac1aad33c6692 (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.c6
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}