diff --git a/common/spl/spl.c b/common/spl/spl.c
index d98b9fcb9ade2285b50caedbce7483db5ded78da..0d1e08245f6afa70392f3d8715f1cf0aa75c8d8f 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -227,10 +227,11 @@ int spl_early_init(void)
 int spl_init(void)
 {
 	int ret;
+	bool setup_malloc = !(IS_ENABLED(CONFIG_SPL_STACK_R) &&
+			IS_ENABLED(CONFIG_SPL_SYS_MALLOC_SIMPLE));
 
 	if (!(gd->flags & GD_FLG_SPL_EARLY_INIT)) {
-		ret = spl_common_init(
-			!IS_ENABLED(CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN));
+		ret = spl_common_init(setup_malloc);
 		if (ret)
 			return ret;
 	}