aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasily Gorbik <gor@linux.ibm.com>2018-04-04 10:05:16 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-04-10 01:39:00 -0400
commit96c0cdbc7c60885d65dc8d11a39bbcfd9cc49d03 (patch)
treebf01e459a1dba82fd226395204c6b865236ef92f
parent3b9678472bab86ae654cf2c18d5dd551558045be (diff)
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: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/ipl.c57
1 files changed, 11 insertions, 46 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 75dd08547c31..4296d7e61fb6 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -117,27 +117,12 @@ static char *dump_type_str(enum dump_type type)
117 } 117 }
118} 118}
119 119
120enum ipl_method {
121 REIPL_METHOD_CCW_DIAG,
122 REIPL_METHOD_FCP_DIAG,
123 REIPL_METHOD_FCP_DUMP,
124 REIPL_METHOD_NSS_DIAG,
125 REIPL_METHOD_DEFAULT,
126};
127
128enum dump_method {
129 DUMP_METHOD_NONE,
130 DUMP_METHOD_CCW_DIAG,
131 DUMP_METHOD_FCP_DIAG,
132};
133
134static int ipl_block_valid; 120static int ipl_block_valid;
135static struct ipl_parameter_block ipl_block; 121static struct ipl_parameter_block ipl_block;
136 122
137static int reipl_capabilities = IPL_TYPE_UNKNOWN; 123static int reipl_capabilities = IPL_TYPE_UNKNOWN;
138 124
139static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN; 125static enum ipl_type reipl_type = IPL_TYPE_UNKNOWN;
140static enum ipl_method reipl_method = REIPL_METHOD_DEFAULT;
141static struct ipl_parameter_block *reipl_block_fcp; 126static struct ipl_parameter_block *reipl_block_fcp;
142static struct ipl_parameter_block *reipl_block_ccw; 127static struct ipl_parameter_block *reipl_block_ccw;
143static struct ipl_parameter_block *reipl_block_nss; 128static struct ipl_parameter_block *reipl_block_nss;
@@ -145,7 +130,6 @@ static struct ipl_parameter_block *reipl_block_actual;
145 130
146static int dump_capabilities = DUMP_TYPE_NONE; 131static int dump_capabilities = DUMP_TYPE_NONE;
147static enum dump_type dump_type = DUMP_TYPE_NONE; 132static enum dump_type dump_type = DUMP_TYPE_NONE;
148static enum dump_method dump_method = DUMP_METHOD_NONE;
149static struct ipl_parameter_block *dump_block_fcp; 133static struct ipl_parameter_block *dump_block_fcp;
150static struct ipl_parameter_block *dump_block_ccw; 134static struct ipl_parameter_block *dump_block_ccw;
151 135
@@ -928,25 +912,16 @@ static int reipl_set_type(enum ipl_type type)
928 912
929 switch(type) { 913 switch(type) {
930 case IPL_TYPE_CCW: 914 case IPL_TYPE_CCW:
931 reipl_method = REIPL_METHOD_CCW_DIAG;
932 reipl_block_actual = reipl_block_ccw; 915 reipl_block_actual = reipl_block_ccw;
933 break; 916 break;
934 case IPL_TYPE_FCP: 917 case IPL_TYPE_FCP:
935 reipl_method = REIPL_METHOD_FCP_DIAG;
936 reipl_block_actual = reipl_block_fcp; 918 reipl_block_actual = reipl_block_fcp;
937 break; 919 break;
938 case IPL_TYPE_FCP_DUMP:
939 reipl_method = REIPL_METHOD_FCP_DUMP;
940 break;
941 case IPL_TYPE_NSS: 920 case IPL_TYPE_NSS:
942 reipl_method = REIPL_METHOD_NSS_DIAG;
943 reipl_block_actual = reipl_block_nss; 921 reipl_block_actual = reipl_block_nss;
944 break; 922 break;
945 case IPL_TYPE_UNKNOWN:
946 reipl_method = REIPL_METHOD_DEFAULT;
947 break;
948 default: 923 default:
949 BUG(); 924 break;
950 } 925 }
951 reipl_type = type; 926 reipl_type = type;
952 return 0; 927 return 0;
@@ -981,23 +956,23 @@ static struct kset *reipl_fcp_kset;
981 956
982static void __reipl_run(void *unused) 957static void __reipl_run(void *unused)
983{ 958{
984 switch (reipl_method) { 959 switch (reipl_type) {
985 case REIPL_METHOD_CCW_DIAG: 960 case IPL_TYPE_CCW:
986 diag308(DIAG308_SET, reipl_block_ccw); 961 diag308(DIAG308_SET, reipl_block_ccw);
987 diag308(DIAG308_LOAD_CLEAR, NULL); 962 diag308(DIAG308_LOAD_CLEAR, NULL);
988 break; 963 break;
989 case REIPL_METHOD_FCP_DIAG: 964 case IPL_TYPE_FCP:
990 diag308(DIAG308_SET, reipl_block_fcp); 965 diag308(DIAG308_SET, reipl_block_fcp);
991 diag308(DIAG308_LOAD_CLEAR, NULL); 966 diag308(DIAG308_LOAD_CLEAR, NULL);
992 break; 967 break;
993 case REIPL_METHOD_NSS_DIAG: 968 case IPL_TYPE_NSS:
994 diag308(DIAG308_SET, reipl_block_nss); 969 diag308(DIAG308_SET, reipl_block_nss);
995 diag308(DIAG308_LOAD_CLEAR, NULL); 970 diag308(DIAG308_LOAD_CLEAR, NULL);
996 break; 971 break;
997 case REIPL_METHOD_DEFAULT: 972 case IPL_TYPE_UNKNOWN:
998 diag308(DIAG308_LOAD_CLEAR, NULL); 973 diag308(DIAG308_LOAD_CLEAR, NULL);
999 break; 974 break;
1000 case REIPL_METHOD_FCP_DUMP: 975 case IPL_TYPE_FCP_DUMP:
1001 break; 976 break;
1002 } 977 }
1003 disabled_wait((unsigned long) __builtin_return_address(0)); 978 disabled_wait((unsigned long) __builtin_return_address(0));
@@ -1230,16 +1205,6 @@ static int dump_set_type(enum dump_type type)
1230{ 1205{
1231 if (!(dump_capabilities & type)) 1206 if (!(dump_capabilities & type))
1232 return -EINVAL; 1207 return -EINVAL;
1233 switch (type) {
1234 case DUMP_TYPE_CCW:
1235 dump_method = DUMP_METHOD_CCW_DIAG;
1236 break;
1237 case DUMP_TYPE_FCP:
1238 dump_method = DUMP_METHOD_FCP_DIAG;
1239 break;
1240 default:
1241 dump_method = DUMP_METHOD_NONE;
1242 }
1243 dump_type = type; 1208 dump_type = type;
1244 return 0; 1209 return 0;
1245} 1210}
@@ -1282,11 +1247,11 @@ static void diag308_dump(void *dump_block)
1282 1247
1283static void __dump_run(void *unused) 1248static void __dump_run(void *unused)
1284{ 1249{
1285 switch (dump_method) { 1250 switch (dump_type) {
1286 case DUMP_METHOD_CCW_DIAG: 1251 case DUMP_TYPE_CCW:
1287 diag308_dump(dump_block_ccw); 1252 diag308_dump(dump_block_ccw);
1288 break; 1253 break;
1289 case DUMP_METHOD_FCP_DIAG: 1254 case DUMP_TYPE_FCP:
1290 diag308_dump(dump_block_fcp); 1255 diag308_dump(dump_block_fcp);
1291 break; 1256 break;
1292 default: 1257 default:
@@ -1296,7 +1261,7 @@ static void __dump_run(void *unused)
1296 1261
1297static void dump_run(struct shutdown_trigger *trigger) 1262static void dump_run(struct shutdown_trigger *trigger)
1298{ 1263{
1299 if (dump_method == DUMP_METHOD_NONE) 1264 if (dump_type == DUMP_TYPE_NONE)
1300 return; 1265 return;
1301 smp_send_stop(); 1266 smp_send_stop();
1302 smp_call_ipl_cpu(__dump_run, NULL); 1267 smp_call_ipl_cpu(__dump_run, NULL);