arch/tile: use proper memparse() for "maxmem" options
Chris Metcalf [Thu, 29 Mar 2012 19:56:18 +0000 (15:56 -0400)]
This is more standard and avoids having to remember what units
the options actually take.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>

arch/tile/kernel/setup.c

index 735ecad..bff23f4 100644 (file)
@@ -103,13 +103,11 @@ unsigned long __initdata pci_reserve_end_pfn = -1U;
 
 static int __init setup_maxmem(char *str)
 {
-       long maxmem_mb;
-       if (str == NULL || strict_strtol(str, 0, &maxmem_mb) != 0 ||
-           maxmem_mb == 0)
+       unsigned long long maxmem;
+       if (str == NULL || (maxmem = memparse(str, NULL)) == 0)
                return -EINVAL;
 
-       maxmem_pfn = (maxmem_mb >> (HPAGE_SHIFT - 20)) <<
-               (HPAGE_SHIFT - PAGE_SHIFT);
+       maxmem_pfn = (maxmem >> HPAGE_SHIFT) << (HPAGE_SHIFT - PAGE_SHIFT);
        pr_info("Forcing RAM used to no more than %dMB\n",
               maxmem_pfn >> (20 - PAGE_SHIFT));
        return 0;
@@ -119,14 +117,15 @@ early_param("maxmem", setup_maxmem);
 static int __init setup_maxnodemem(char *str)
 {
        char *endp;
-       long maxnodemem_mb, node;
+       unsigned long long maxnodemem;
+       long node;
 
        node = str ? simple_strtoul(str, &endp, 0) : INT_MAX;
-       if (node >= MAX_NUMNODES || *endp != ':' ||
-           strict_strtol(endp+1, 0, &maxnodemem_mb) != 0)
+       if (node >= MAX_NUMNODES || *endp != ':')
                return -EINVAL;
 
-       maxnodemem_pfn[node] = (maxnodemem_mb >> (HPAGE_SHIFT - 20)) <<
+       maxnodemem = memparse(endp+1, NULL);
+       maxnodemem_pfn[node] = (maxnodemem >> HPAGE_SHIFT) <<
                (HPAGE_SHIFT - PAGE_SHIFT);
        pr_info("Forcing RAM used on node %ld to no more than %dMB\n",
               node, maxnodemem_pfn[node] >> (20 - PAGE_SHIFT));