summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2008-08-01 14:39:10 (GMT)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2008-08-01 14:39:30 (GMT)
commit3a95e8eb34f595a0144adb6e5513d456319bd8a5 (patch)
treede89a06fbfcbe6fdcbdb168183f00292febb9086 /arch
parent4abb08c24b5fa7b6ad0807c07077f0f216f6788b (diff)
downloadlinux-3a95e8eb34f595a0144adb6e5513d456319bd8a5.tar.xz
[S390] ipl: Reboot from alternate device does not work when booting from file
During startup we check if diag308 works using diag 308 subcode 6, which stores the actual ipl information. This fails with rc = 0x102, if the system has been ipled from the HMC using load from CD or load from file. In the case of rc = 0x102 we have to assume that diag 308 is working, since it still can be used to ipl from an alternative device. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/kernel/ipl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 54b2779..2dcf590f 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -1705,7 +1705,10 @@ void __init setup_ipl(void)
void __init ipl_update_parameters(void)
{
- if (diag308(DIAG308_STORE, &ipl_block) == DIAG308_RC_OK)
+ int rc;
+
+ rc = diag308(DIAG308_STORE, &ipl_block);
+ if ((rc == DIAG308_RC_OK) || (rc == DIAG308_RC_NOCONFIG))
diag308_set_works = 1;
}