Skip to content

Commit

Permalink
[S390] ipl: Reboot from alternate device does not work when booting f…
Browse files Browse the repository at this point in the history
…rom 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>
  • Loading branch information
Michael Holzheu authored and Martin Schwidefsky committed Aug 1, 2008
1 parent 4abb08c commit 3a95e8e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
5 changes: 4 additions & 1 deletion arch/s390/kernel/ipl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
3 changes: 2 additions & 1 deletion include/asm-s390/ipl.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ enum diag308_vm_flags {
};

enum diag308_rc {
DIAG308_RC_OK = 1,
DIAG308_RC_OK = 0x0001,
DIAG308_RC_NOCONFIG = 0x0102,
};

extern int diag308(unsigned long subcode, void *addr);
Expand Down

0 comments on commit 3a95e8e

Please sign in to comment.