diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-10-03 13:28:46 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-10-03 13:28:46 -0400 |
| commit | f68ec0c24755e5cdb779be6240925f2175311d84 (patch) | |
| tree | a7b7128e61a8456385d82bd1c7ca5f14eecbf2ca /lib/cmdline.c | |
| parent | 98920dc3d1113b883cbc73e3293446d3525c6042 (diff) | |
| parent | 94aca1dac6f6d21f4b07e4864baf7768cabcc6e7 (diff) | |
Merge commit 'v2.6.27-rc8' into x86/setup
Diffstat (limited to 'lib/cmdline.c')
| -rw-r--r-- | lib/cmdline.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/cmdline.c b/lib/cmdline.c index f596c08d213a..5ba8a942a478 100644 --- a/lib/cmdline.c +++ b/lib/cmdline.c | |||
| @@ -116,7 +116,7 @@ char *get_options(const char *str, int nints, int *ints) | |||
| 116 | /** | 116 | /** |
| 117 | * memparse - parse a string with mem suffixes into a number | 117 | * memparse - parse a string with mem suffixes into a number |
| 118 | * @ptr: Where parse begins | 118 | * @ptr: Where parse begins |
| 119 | * @retptr: (output) Pointer to next char after parse completes | 119 | * @retptr: (output) Optional pointer to next char after parse completes |
| 120 | * | 120 | * |
| 121 | * Parses a string into a number. The number stored at @ptr is | 121 | * Parses a string into a number. The number stored at @ptr is |
| 122 | * potentially suffixed with %K (for kilobytes, or 1024 bytes), | 122 | * potentially suffixed with %K (for kilobytes, or 1024 bytes), |
| @@ -126,11 +126,13 @@ char *get_options(const char *str, int nints, int *ints) | |||
| 126 | * megabyte, or one gigabyte, respectively. | 126 | * megabyte, or one gigabyte, respectively. |
| 127 | */ | 127 | */ |
| 128 | 128 | ||
| 129 | unsigned long long memparse (char *ptr, char **retptr) | 129 | unsigned long long memparse(char *ptr, char **retptr) |
| 130 | { | 130 | { |
| 131 | unsigned long long ret = simple_strtoull (ptr, retptr, 0); | 131 | char *endptr; /* local pointer to end of parsed string */ |
| 132 | 132 | ||
| 133 | switch (**retptr) { | 133 | unsigned long long ret = simple_strtoull(ptr, &endptr, 0); |
| 134 | |||
| 135 | switch (*endptr) { | ||
| 134 | case 'G': | 136 | case 'G': |
| 135 | case 'g': | 137 | case 'g': |
| 136 | ret <<= 10; | 138 | ret <<= 10; |
| @@ -140,10 +142,14 @@ unsigned long long memparse (char *ptr, char **retptr) | |||
| 140 | case 'K': | 142 | case 'K': |
| 141 | case 'k': | 143 | case 'k': |
| 142 | ret <<= 10; | 144 | ret <<= 10; |
| 143 | (*retptr)++; | 145 | endptr++; |
| 144 | default: | 146 | default: |
| 145 | break; | 147 | break; |
| 146 | } | 148 | } |
| 149 | |||
| 150 | if (retptr) | ||
| 151 | *retptr = endptr; | ||
| 152 | |||
| 147 | return ret; | 153 | return ret; |
| 148 | } | 154 | } |
| 149 | 155 | ||
