aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@de.ibm.com>2007-03-19 08:19:03 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-03-19 08:19:03 -0400
commitfbb04f38cf85ae8691cf3049ec62636ad968479b (patch)
tree57851e73e07e01cad97db37c2633dd1e9fe35c12 /arch/s390/kernel/ipl.c
parent10c16a37e32b74abe088c303f600746e73f5b7e2 (diff)
[S390] reboot from and dump to SCSI under z/VM fails.
We used wrong length values for ipl and dump hardware structures. Since z/VM checks the ipl parameters more accurately than LPAR, the operations fail there. Signed-off-by: Michael Holzheu <holzheu@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r--arch/s390/kernel/ipl.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index d125a4ead08d..f731185bf2bd 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -839,7 +839,7 @@ static int __init reipl_ccw_init(void)
839 } 839 }
840 reipl_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; 840 reipl_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN;
841 reipl_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; 841 reipl_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION;
842 reipl_block_ccw->hdr.blk0_len = sizeof(reipl_block_ccw->ipl_info.ccw); 842 reipl_block_ccw->hdr.blk0_len = IPL_PARM_BLK0_CCW_LEN;
843 reipl_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; 843 reipl_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW;
844 /* check if read scp info worked and set loadparm */ 844 /* check if read scp info worked and set loadparm */
845 if (SCCB_VALID) 845 if (SCCB_VALID)
@@ -880,8 +880,7 @@ static int __init reipl_fcp_init(void)
880 } else { 880 } else {
881 reipl_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; 881 reipl_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN;
882 reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; 882 reipl_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION;
883 reipl_block_fcp->hdr.blk0_len = 883 reipl_block_fcp->hdr.blk0_len = IPL_PARM_BLK0_FCP_LEN;
884 sizeof(reipl_block_fcp->ipl_info.fcp);
885 reipl_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; 884 reipl_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP;
886 reipl_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_IPL; 885 reipl_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_IPL;
887 } 886 }
@@ -930,7 +929,7 @@ static int __init dump_ccw_init(void)
930 } 929 }
931 dump_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN; 930 dump_block_ccw->hdr.len = IPL_PARM_BLK_CCW_LEN;
932 dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION; 931 dump_block_ccw->hdr.version = IPL_PARM_BLOCK_VERSION;
933 dump_block_ccw->hdr.blk0_len = sizeof(reipl_block_ccw->ipl_info.ccw); 932 dump_block_ccw->hdr.blk0_len = IPL_PARM_BLK0_CCW_LEN;
934 dump_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW; 933 dump_block_ccw->hdr.pbt = DIAG308_IPL_TYPE_CCW;
935 dump_capabilities |= IPL_TYPE_CCW; 934 dump_capabilities |= IPL_TYPE_CCW;
936 return 0; 935 return 0;
@@ -954,7 +953,7 @@ static int __init dump_fcp_init(void)
954 } 953 }
955 dump_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN; 954 dump_block_fcp->hdr.len = IPL_PARM_BLK_FCP_LEN;
956 dump_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION; 955 dump_block_fcp->hdr.version = IPL_PARM_BLOCK_VERSION;
957 dump_block_fcp->hdr.blk0_len = sizeof(dump_block_fcp->ipl_info.fcp); 956 dump_block_fcp->hdr.blk0_len = IPL_PARM_BLK0_FCP_LEN;
958 dump_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP; 957 dump_block_fcp->hdr.pbt = DIAG308_IPL_TYPE_FCP;
959 dump_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_DUMP; 958 dump_block_fcp->ipl_info.fcp.opt = DIAG308_IPL_OPT_DUMP;
960 dump_capabilities |= IPL_TYPE_FCP; 959 dump_capabilities |= IPL_TYPE_FCP;