Commit 96c0cdbc authored by Vasily Gorbik's avatar Vasily Gorbik Committed by Martin Schwidefsky

s390/ipl: remove reipl_method and dump_method

reipl_method and dump_method have been used in addition to reipl_type
and dump_type, because a single reipl_type could be achieved with
multiple reipl_method (same for dump_type/method). After dropping
non-diag308_set based reipl methods, there is a single method per
reipl_type/dump_type and reipl_method and dump_method could be simply
removed.
Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 3b967847
...@@ -117,27 +117,12 @@ static char *dump_type_str(enum dump_type type) ...@@ -117,27 +117,12 @@ static char *dump_type_str(enum dump_type type)
} }
} }
enum ipl_method {
REIPL_METHOD_CCW_DIAG,
REIPL_METHOD_FCP_DIAG,
REIPL_METHOD_FCP_DUMP,
REIPL_METHOD_NSS_DIAG,
REIPL_METHOD_DEFAULT,
};
enum dump_method {
DUMP_METHOD_NONE,
DUMP_METHOD_CCW_DIAG,
DUMP_METHOD_FCP_DIAG,
};
static int ipl_block_valid; static int ipl_block_valid;
static struct ipl_parameter_block ipl_block; static struct ipl_parameter_block ipl_block;
static int reipl_capabilities = IPL_TYPE_UNKNOWN; static int reipl_capabilities = IPL_TYPE_UNKNOWN;
static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN; static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN;
static enum ipl_method reipl_method = REIPL_METHOD_DEFAULT;
static struct ipl_parameter_block *reipl_block_fcp; static struct ipl_parameter_block *reipl_block_fcp;
static struct ipl_parameter_block *reipl_block_ccw; static struct ipl_parameter_block *reipl_block_ccw;
static struct ipl_parameter_block *reipl_block_nss; static struct ipl_parameter_block *reipl_block_nss;
...@@ -145,7 +130,6 @@ static struct ipl_parameter_block *reipl_block_actual; ...@@ -145,7 +130,6 @@ static struct ipl_parameter_block *reipl_block_actual;
static int dump_capabilities = DUMP_TYPE_NONE; static int dump_capabilities = DUMP_TYPE_NONE;
static enum dump_type dump_type = DUMP_TYPE_NONE; static enum dump_type dump_type = DUMP_TYPE_NONE;
static enum dump_method dump_method = DUMP_METHOD_NONE;
static struct ipl_parameter_block *dump_block_fcp; static struct ipl_parameter_block *dump_block_fcp;
static struct ipl_parameter_block *dump_block_ccw; static struct ipl_parameter_block *dump_block_ccw;
...@@ -928,25 +912,16 @@ static int reipl_set_type(enum ipl_type type) ...@@ -928,25 +912,16 @@ static int reipl_set_type(enum ipl_type type)
switch(type) { switch(type) {
case IPL_TYPE_CCW: case IPL_TYPE_CCW:
reipl_method = REIPL_METHOD_CCW_DIAG;
reipl_block_actual = reipl_block_ccw; reipl_block_actual = reipl_block_ccw;
break; break;
case IPL_TYPE_FCP: case IPL_TYPE_FCP:
reipl_method = REIPL_METHOD_FCP_DIAG;
reipl_block_actual = reipl_block_fcp; reipl_block_actual = reipl_block_fcp;
break; break;
case IPL_TYPE_FCP_DUMP:
reipl_method = REIPL_METHOD_FCP_DUMP;
break;
case IPL_TYPE_NSS: case IPL_TYPE_NSS:
reipl_method = REIPL_METHOD_NSS_DIAG;
reipl_block_actual = reipl_block_nss; reipl_block_actual = reipl_block_nss;
break; break;
case IPL_TYPE_UNKNOWN:
reipl_method = REIPL_METHOD_DEFAULT;
break;
default: default:
BUG(); break;
} }
reipl_type = type; reipl_type = type;
return 0; return 0;
...@@ -981,23 +956,23 @@ static struct kset *reipl_fcp_kset; ...@@ -981,23 +956,23 @@ static struct kset *reipl_fcp_kset;
static void __reipl_run(void *unused) static void __reipl_run(void *unused)
{ {
switch (reipl_method) { switch (reipl_type) {
case REIPL_METHOD_CCW_DIAG: case IPL_TYPE_CCW:
diag308(DIAG308_SET, reipl_block_ccw); diag308(DIAG308_SET, reipl_block_ccw);
diag308(DIAG308_LOAD_CLEAR, NULL); diag308(DIAG308_LOAD_CLEAR, NULL);
break; break;
case REIPL_METHOD_FCP_DIAG: case IPL_TYPE_FCP:
diag308(DIAG308_SET, reipl_block_fcp); diag308(DIAG308_SET, reipl_block_fcp);
diag308(DIAG308_LOAD_CLEAR, NULL); diag308(DIAG308_LOAD_CLEAR, NULL);
break; break;
case REIPL_METHOD_NSS_DIAG: case IPL_TYPE_NSS:
diag308(DIAG308_SET, reipl_block_nss); diag308(DIAG308_SET, reipl_block_nss);
diag308(DIAG308_LOAD_CLEAR, NULL); diag308(DIAG308_LOAD_CLEAR, NULL);
break; break;
case REIPL_METHOD_DEFAULT: case IPL_TYPE_UNKNOWN:
diag308(DIAG308_LOAD_CLEAR, NULL); diag308(DIAG308_LOAD_CLEAR, NULL);
break; break;
case REIPL_METHOD_FCP_DUMP: case IPL_TYPE_FCP_DUMP:
break; break;
} }
disabled_wait((unsigned long) __builtin_return_address(0)); disabled_wait((unsigned long) __builtin_return_address(0));
...@@ -1230,16 +1205,6 @@ static int dump_set_type(enum dump_type type) ...@@ -1230,16 +1205,6 @@ static int dump_set_type(enum dump_type type)
{ {
if (!(dump_capabilities & type)) if (!(dump_capabilities & type))
return -EINVAL; return -EINVAL;
switch (type) {
case DUMP_TYPE_CCW:
dump_method = DUMP_METHOD_CCW_DIAG;
break;
case DUMP_TYPE_FCP:
dump_method = DUMP_METHOD_FCP_DIAG;
break;
default:
dump_method = DUMP_METHOD_NONE;
}
dump_type = type; dump_type = type;
return 0; return 0;
} }
...@@ -1282,11 +1247,11 @@ static void diag308_dump(void *dump_block) ...@@ -1282,11 +1247,11 @@ static void diag308_dump(void *dump_block)
static void __dump_run(void *unused) static void __dump_run(void *unused)
{ {
switch (dump_method) { switch (dump_type) {
case DUMP_METHOD_CCW_DIAG: case DUMP_TYPE_CCW:
diag308_dump(dump_block_ccw); diag308_dump(dump_block_ccw);
break; break;
case DUMP_METHOD_FCP_DIAG: case DUMP_TYPE_FCP:
diag308_dump(dump_block_fcp); diag308_dump(dump_block_fcp);
break; break;
default: default:
...@@ -1296,7 +1261,7 @@ static void __dump_run(void *unused) ...@@ -1296,7 +1261,7 @@ static void __dump_run(void *unused)
static void dump_run(struct shutdown_trigger *trigger) static void dump_run(struct shutdown_trigger *trigger)
{ {
if (dump_method == DUMP_METHOD_NONE) if (dump_type == DUMP_TYPE_NONE)
return; return;
smp_send_stop(); smp_send_stop();
smp_call_ipl_cpu(__dump_run, NULL); smp_call_ipl_cpu(__dump_run, NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment