diff options
-rw-r--r-- | arch/s390/mm/cmm.c | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index ceea51cff03b..786a44dba5bf 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c | |||
@@ -53,22 +53,6 @@ static void cmm_timer_fn(unsigned long); | |||
53 | static void cmm_set_timer(void); | 53 | static void cmm_set_timer(void); |
54 | 54 | ||
55 | static long | 55 | static long |
56 | cmm_strtoul(const char *cp, char **endp) | ||
57 | { | ||
58 | unsigned int base = 10; | ||
59 | |||
60 | if (*cp == '0') { | ||
61 | base = 8; | ||
62 | cp++; | ||
63 | if ((*cp == 'x' || *cp == 'X') && isxdigit(cp[1])) { | ||
64 | base = 16; | ||
65 | cp++; | ||
66 | } | ||
67 | } | ||
68 | return simple_strtoul(cp, endp, base); | ||
69 | } | ||
70 | |||
71 | static long | ||
72 | cmm_alloc_pages(long pages, long *counter, struct cmm_page_array **list) | 56 | cmm_alloc_pages(long pages, long *counter, struct cmm_page_array **list) |
73 | { | 57 | { |
74 | struct cmm_page_array *pa; | 58 | struct cmm_page_array *pa; |
@@ -276,7 +260,7 @@ cmm_pages_handler(ctl_table *ctl, int write, struct file *filp, | |||
276 | return -EFAULT; | 260 | return -EFAULT; |
277 | buf[sizeof(buf) - 1] = '\0'; | 261 | buf[sizeof(buf) - 1] = '\0'; |
278 | cmm_skip_blanks(buf, &p); | 262 | cmm_skip_blanks(buf, &p); |
279 | pages = cmm_strtoul(p, &p); | 263 | pages = simple_strtoul(p, &p, 0); |
280 | if (ctl == &cmm_table[0]) | 264 | if (ctl == &cmm_table[0]) |
281 | cmm_set_pages(pages); | 265 | cmm_set_pages(pages); |
282 | else | 266 | else |
@@ -317,9 +301,9 @@ cmm_timeout_handler(ctl_table *ctl, int write, struct file *filp, | |||
317 | return -EFAULT; | 301 | return -EFAULT; |
318 | buf[sizeof(buf) - 1] = '\0'; | 302 | buf[sizeof(buf) - 1] = '\0'; |
319 | cmm_skip_blanks(buf, &p); | 303 | cmm_skip_blanks(buf, &p); |
320 | pages = cmm_strtoul(p, &p); | 304 | pages = simple_strtoul(p, &p, 0); |
321 | cmm_skip_blanks(p, &p); | 305 | cmm_skip_blanks(p, &p); |
322 | seconds = cmm_strtoul(p, &p); | 306 | seconds = simple_strtoul(p, &p, 0); |
323 | cmm_set_timeout(pages, seconds); | 307 | cmm_set_timeout(pages, seconds); |
324 | } else { | 308 | } else { |
325 | len = sprintf(buf, "%ld %ld\n", | 309 | len = sprintf(buf, "%ld %ld\n", |
@@ -382,24 +366,24 @@ cmm_smsg_target(char *from, char *msg) | |||
382 | if (strncmp(msg, "SHRINK", 6) == 0) { | 366 | if (strncmp(msg, "SHRINK", 6) == 0) { |
383 | if (!cmm_skip_blanks(msg + 6, &msg)) | 367 | if (!cmm_skip_blanks(msg + 6, &msg)) |
384 | return; | 368 | return; |
385 | pages = cmm_strtoul(msg, &msg); | 369 | pages = simple_strtoul(msg, &msg, 0); |
386 | cmm_skip_blanks(msg, &msg); | 370 | cmm_skip_blanks(msg, &msg); |
387 | if (*msg == '\0') | 371 | if (*msg == '\0') |
388 | cmm_set_pages(pages); | 372 | cmm_set_pages(pages); |
389 | } else if (strncmp(msg, "RELEASE", 7) == 0) { | 373 | } else if (strncmp(msg, "RELEASE", 7) == 0) { |
390 | if (!cmm_skip_blanks(msg + 7, &msg)) | 374 | if (!cmm_skip_blanks(msg + 7, &msg)) |
391 | return; | 375 | return; |
392 | pages = cmm_strtoul(msg, &msg); | 376 | pages = simple_strtoul(msg, &msg, 0); |
393 | cmm_skip_blanks(msg, &msg); | 377 | cmm_skip_blanks(msg, &msg); |
394 | if (*msg == '\0') | 378 | if (*msg == '\0') |
395 | cmm_add_timed_pages(pages); | 379 | cmm_add_timed_pages(pages); |
396 | } else if (strncmp(msg, "REUSE", 5) == 0) { | 380 | } else if (strncmp(msg, "REUSE", 5) == 0) { |
397 | if (!cmm_skip_blanks(msg + 5, &msg)) | 381 | if (!cmm_skip_blanks(msg + 5, &msg)) |
398 | return; | 382 | return; |
399 | pages = cmm_strtoul(msg, &msg); | 383 | pages = simple_strtoul(msg, &msg, 0); |
400 | if (!cmm_skip_blanks(msg, &msg)) | 384 | if (!cmm_skip_blanks(msg, &msg)) |
401 | return; | 385 | return; |
402 | seconds = cmm_strtoul(msg, &msg); | 386 | seconds = simple_strtoul(msg, &msg, 0); |
403 | cmm_skip_blanks(msg, &msg); | 387 | cmm_skip_blanks(msg, &msg); |
404 | if (*msg == '\0') | 388 | if (*msg == '\0') |
405 | cmm_set_timeout(pages, seconds); | 389 | cmm_set_timeout(pages, seconds); |