Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 77212
b: refs/heads/master
c: 48657d2
h: refs/heads/master
v: v3
  • Loading branch information
Michael Holzheu authored and Martin Schwidefsky committed Jan 26, 2008
1 parent 813d819 commit c25943c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a2fd64d6aaf498756f700eb1d07818efee046733
refs/heads/master: 48657d223d403af676696d313b421368f5e2208a
14 changes: 8 additions & 6 deletions trunk/arch/s390/kernel/ipl.c
Original file line number Diff line number Diff line change
Expand Up @@ -595,7 +595,9 @@ static int reipl_set_type(enum ipl_type type)

switch(type) {
case IPL_TYPE_CCW:
if (MACHINE_IS_VM)
if (diag308_set_works)
reipl_method = REIPL_METHOD_CCW_DIAG;
else if (MACHINE_IS_VM)
reipl_method = REIPL_METHOD_CCW_VM;
else
reipl_method = REIPL_METHOD_CCW_CIO;
Expand Down Expand Up @@ -659,8 +661,6 @@ void reipl_run(struct shutdown_trigger *trigger)
switch (reipl_method) {
case REIPL_METHOD_CCW_CIO:
devid.devno = reipl_block_ccw->ipl_info.ccw.devno;
if (ipl_info.type == IPL_TYPE_CCW && devid.devno == ipl_devno)
diag308(DIAG308_IPL, NULL);
devid.ssid = 0;
reipl_ccw_dev(&devid);
break;
Expand Down Expand Up @@ -745,6 +745,7 @@ static int __init reipl_ccw_init(void)
reipl_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION;
reipl_block_ccw->hdr.blk0_len = IPL_PARM_BLK0_CCW_LEN;
reipl_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW;
reipl_block_ccw->hdr.flags = DIAG308_FLAGS_LP_VALID;
/* check if read scp info worked and set loadparm */
if (sclp_ipl_info.is_valid)
memcpy(reipl_block_ccw->ipl_info.ccw.load_param,
Expand All @@ -753,8 +754,7 @@ static int __init reipl_ccw_init(void)
/* read scp info failed: set empty loadparm (EBCDIC blanks) */
memset(reipl_block_ccw->ipl_info.ccw.load_param, 0x40,
LOADPARM_LEN);
/* FIXME: check for diag308_set_works when enabling diag ccw reipl */
if (!MACHINE_IS_VM)
if (!MACHINE_IS_VM && !diag308_set_works)
sys_reipl_ccw_loadparm_attr.attr.mode = S_IRUGO;
if (ipl_info.type == IPL_TYPE_CCW)
reipl_block_ccw->ipl_info.ccw.devno = ipl_devno;
Expand Down Expand Up @@ -876,7 +876,9 @@ static int dump_set_type(enum dump_type type)
return -EINVAL;
switch (type) {
case DUMP_TYPE_CCW:
if (MACHINE_IS_VM)
if (diag308_set_works)
dump_method = DUMP_METHOD_CCW_DIAG;
else if (MACHINE_IS_VM)
dump_method = DUMP_METHOD_CCW_VM;
else
dump_method = DUMP_METHOD_CCW_CIO;
Expand Down
4 changes: 4 additions & 0 deletions trunk/include/asm-s390/ipl.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,10 @@ enum diag308_opt {
DIAG308_IPL_OPT_DUMP = 0x20,
};

enum diag308_flags {
DIAG308_FLAGS_LP_VALID = 0x80,
};

enum diag308_rc {
DIAG308_RC_OK = 1,
};
Expand Down

0 comments on commit c25943c

Please sign in to comment.