[PATCH 12/14] alpha: use memparse for memory size options

From: Magnus Lindholm

Date: Tue Nov 03 2026 - 16:47:05 EST


Replace the private parser for mem= and gartsize= with memparse(),
preserving page rounding. This also accepts T/P/E suffixes and uses
memparse()'s saturating overflow handling.

Signed-off-by: Magnus Lindholm <linmag7@xxxxxxxxx>
---
arch/alpha/kernel/setup.c | 24 ++----------------------
1 file changed, 2 insertions(+), 22 deletions(-)

diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c
index 4cbcfb1852d51e7aaf37b01a176f4a4280af6dae..28387786cb9f9ad4b587a22a3b0267b825b424c7 100644
--- a/arch/alpha/kernel/setup.c
+++ b/arch/alpha/kernel/setup.c
@@ -241,26 +241,6 @@ reserve_std_resources(void)
for ((_cluster) = (memdesc)->cluster, (i) = 0; \
(i) < (memdesc)->numclusters; (i)++, (_cluster)++)

-static unsigned long __init
-get_mem_size_limit(char *s)
-{
- unsigned long end = 0;
- char *from = s;
-
- end = simple_strtoul(from, &from, 0);
- if ( *from == 'K' || *from == 'k' ) {
- end = end << 10;
- from++;
- } else if ( *from == 'M' || *from == 'm' ) {
- end = end << 20;
- from++;
- } else if ( *from == 'G' || *from == 'g' ) {
- end = end << 30;
- from++;
- }
- return end >> PAGE_SHIFT; /* Return the PFN of the limit. */
-}
-
#ifdef CONFIG_BLK_DEV_INITRD
void * __init
move_initrd(unsigned long mem_limit)
@@ -486,7 +466,7 @@ setup_arch(char **cmdline_p)
continue;
}
if (strncmp(p, "mem=", 4) == 0) {
- mem_size_limit = get_mem_size_limit(p+4);
+ mem_size_limit = memparse(p + 4, NULL) >> PAGE_SHIFT;
continue;
}
if (strncmp(p, "srmcons", 7) == 0) {
@@ -499,7 +479,7 @@ setup_arch(char **cmdline_p)
}
if (strncmp(p, "gartsize=", 9) == 0) {
alpha_agpgart_size =
- get_mem_size_limit(p+9) << PAGE_SHIFT;
+ memparse(p + 9, NULL) & PAGE_MASK;
continue;
}
#ifdef CONFIG_VERBOSE_MCHECK
--
2.43.0