diff options
Diffstat (limited to 'drivers/s390/block/dasd_devmap.c')
-rw-r--r-- | drivers/s390/block/dasd_devmap.c | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index 34339902efb9..e77666c8e6c0 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
@@ -13,6 +13,8 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #define KMSG_COMPONENT "dasd" | ||
17 | |||
16 | #include <linux/ctype.h> | 18 | #include <linux/ctype.h> |
17 | #include <linux/init.h> | 19 | #include <linux/init.h> |
18 | #include <linux/module.h> | 20 | #include <linux/module.h> |
@@ -67,6 +69,8 @@ int dasd_probeonly = 0; /* is true, when probeonly mode is active */ | |||
67 | int dasd_autodetect = 0; /* is true, when autodetection is active */ | 69 | int dasd_autodetect = 0; /* is true, when autodetection is active */ |
68 | int dasd_nopav = 0; /* is true, when PAV is disabled */ | 70 | int dasd_nopav = 0; /* is true, when PAV is disabled */ |
69 | EXPORT_SYMBOL_GPL(dasd_nopav); | 71 | EXPORT_SYMBOL_GPL(dasd_nopav); |
72 | int dasd_nofcx; /* disable High Performance Ficon */ | ||
73 | EXPORT_SYMBOL_GPL(dasd_nofcx); | ||
70 | 74 | ||
71 | /* | 75 | /* |
72 | * char *dasd[] is intended to hold the ranges supplied by the dasd= statement | 76 | * char *dasd[] is intended to hold the ranges supplied by the dasd= statement |
@@ -125,6 +129,7 @@ __setup ("dasd=", dasd_call_setup); | |||
125 | * Read a device busid/devno from a string. | 129 | * Read a device busid/devno from a string. |
126 | */ | 130 | */ |
127 | static int | 131 | static int |
132 | |||
128 | dasd_busid(char **str, int *id0, int *id1, int *devno) | 133 | dasd_busid(char **str, int *id0, int *id1, int *devno) |
129 | { | 134 | { |
130 | int val, old_style; | 135 | int val, old_style; |
@@ -132,8 +137,7 @@ dasd_busid(char **str, int *id0, int *id1, int *devno) | |||
132 | /* Interpret ipldev busid */ | 137 | /* Interpret ipldev busid */ |
133 | if (strncmp(DASD_IPLDEV, *str, strlen(DASD_IPLDEV)) == 0) { | 138 | if (strncmp(DASD_IPLDEV, *str, strlen(DASD_IPLDEV)) == 0) { |
134 | if (ipl_info.type != IPL_TYPE_CCW) { | 139 | if (ipl_info.type != IPL_TYPE_CCW) { |
135 | MESSAGE(KERN_ERR, "%s", "ipl device is not a ccw " | 140 | pr_err("The IPL device is not a CCW device\n"); |
136 | "device"); | ||
137 | return -EINVAL; | 141 | return -EINVAL; |
138 | } | 142 | } |
139 | *id0 = 0; | 143 | *id0 = 0; |
@@ -209,9 +213,8 @@ dasd_feature_list(char *str, char **endp) | |||
209 | else if (len == 8 && !strncmp(str, "failfast", 8)) | 213 | else if (len == 8 && !strncmp(str, "failfast", 8)) |
210 | features |= DASD_FEATURE_FAILFAST; | 214 | features |= DASD_FEATURE_FAILFAST; |
211 | else { | 215 | else { |
212 | MESSAGE(KERN_WARNING, | 216 | pr_warning("%*s is not a supported device option\n", |
213 | "unsupported feature: %*s, " | 217 | len, str); |
214 | "ignoring setting", len, str); | ||
215 | rc = -EINVAL; | 218 | rc = -EINVAL; |
216 | } | 219 | } |
217 | str += len; | 220 | str += len; |
@@ -220,8 +223,8 @@ dasd_feature_list(char *str, char **endp) | |||
220 | str++; | 223 | str++; |
221 | } | 224 | } |
222 | if (*str != ')') { | 225 | if (*str != ')') { |
223 | MESSAGE(KERN_WARNING, "%s", | 226 | pr_warning("A closing parenthesis ')' is missing in the " |
224 | "missing ')' in dasd parameter string\n"); | 227 | "dasd= parameter\n"); |
225 | rc = -EINVAL; | 228 | rc = -EINVAL; |
226 | } else | 229 | } else |
227 | str++; | 230 | str++; |
@@ -253,25 +256,29 @@ dasd_parse_keyword( char *parsestring ) { | |||
253 | } | 256 | } |
254 | if (strncmp("autodetect", parsestring, length) == 0) { | 257 | if (strncmp("autodetect", parsestring, length) == 0) { |
255 | dasd_autodetect = 1; | 258 | dasd_autodetect = 1; |
256 | MESSAGE (KERN_INFO, "%s", | 259 | pr_info("The autodetection mode has been activated\n"); |
257 | "turning to autodetection mode"); | ||
258 | return residual_str; | 260 | return residual_str; |
259 | } | 261 | } |
260 | if (strncmp("probeonly", parsestring, length) == 0) { | 262 | if (strncmp("probeonly", parsestring, length) == 0) { |
261 | dasd_probeonly = 1; | 263 | dasd_probeonly = 1; |
262 | MESSAGE(KERN_INFO, "%s", | 264 | pr_info("The probeonly mode has been activated\n"); |
263 | "turning to probeonly mode"); | ||
264 | return residual_str; | 265 | return residual_str; |
265 | } | 266 | } |
266 | if (strncmp("nopav", parsestring, length) == 0) { | 267 | if (strncmp("nopav", parsestring, length) == 0) { |
267 | if (MACHINE_IS_VM) | 268 | if (MACHINE_IS_VM) |
268 | MESSAGE(KERN_INFO, "%s", "'nopav' not supported on VM"); | 269 | pr_info("'nopav' is not supported on z/VM\n"); |
269 | else { | 270 | else { |
270 | dasd_nopav = 1; | 271 | dasd_nopav = 1; |
271 | MESSAGE(KERN_INFO, "%s", "disable PAV mode"); | 272 | pr_info("PAV support has be deactivated\n"); |
272 | } | 273 | } |
273 | return residual_str; | 274 | return residual_str; |
274 | } | 275 | } |
276 | if (strncmp("nofcx", parsestring, length) == 0) { | ||
277 | dasd_nofcx = 1; | ||
278 | pr_info("High Performance FICON support has been " | ||
279 | "deactivated\n"); | ||
280 | return residual_str; | ||
281 | } | ||
275 | if (strncmp("fixedbuffers", parsestring, length) == 0) { | 282 | if (strncmp("fixedbuffers", parsestring, length) == 0) { |
276 | if (dasd_page_cache) | 283 | if (dasd_page_cache) |
277 | return residual_str; | 284 | return residual_str; |
@@ -280,10 +287,10 @@ dasd_parse_keyword( char *parsestring ) { | |||
280 | PAGE_SIZE, SLAB_CACHE_DMA, | 287 | PAGE_SIZE, SLAB_CACHE_DMA, |
281 | NULL); | 288 | NULL); |
282 | if (!dasd_page_cache) | 289 | if (!dasd_page_cache) |
283 | MESSAGE(KERN_WARNING, "%s", "Failed to create slab, " | 290 | DBF_EVENT(DBF_WARNING, "%s", "Failed to create slab, " |
284 | "fixed buffer mode disabled."); | 291 | "fixed buffer mode disabled."); |
285 | else | 292 | else |
286 | MESSAGE (KERN_INFO, "%s", | 293 | DBF_EVENT(DBF_INFO, "%s", |
287 | "turning on fixed buffer mode"); | 294 | "turning on fixed buffer mode"); |
288 | return residual_str; | 295 | return residual_str; |
289 | } | 296 | } |
@@ -321,7 +328,7 @@ dasd_parse_range( char *parsestring ) { | |||
321 | (from_id0 != to_id0 || from_id1 != to_id1 || from > to)) | 328 | (from_id0 != to_id0 || from_id1 != to_id1 || from > to)) |
322 | rc = -EINVAL; | 329 | rc = -EINVAL; |
323 | if (rc) { | 330 | if (rc) { |
324 | MESSAGE(KERN_ERR, "Invalid device range %s", parsestring); | 331 | pr_err("%s is not a valid device range\n", parsestring); |
325 | return ERR_PTR(rc); | 332 | return ERR_PTR(rc); |
326 | } | 333 | } |
327 | features = dasd_feature_list(str, &str); | 334 | features = dasd_feature_list(str, &str); |
@@ -340,8 +347,8 @@ dasd_parse_range( char *parsestring ) { | |||
340 | return str + 1; | 347 | return str + 1; |
341 | if (*str == '\0') | 348 | if (*str == '\0') |
342 | return str; | 349 | return str; |
343 | MESSAGE(KERN_WARNING, | 350 | pr_warning("The dasd= parameter value %s has an invalid ending\n", |
344 | "junk at end of dasd parameter string: %s\n", str); | 351 | str); |
345 | return ERR_PTR(-EINVAL); | 352 | return ERR_PTR(-EINVAL); |
346 | } | 353 | } |
347 | 354 | ||