ddafa09
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
ddafa09
From: Daniel Axtens <dja@axtens.net>
ddafa09
Date: Wed, 14 Apr 2021 20:10:23 +1000
ddafa09
Subject: [PATCH] ieee1275: drop HEAP_MAX_ADDR, HEAP_MIN_SIZE
ddafa09
ddafa09
HEAP_MAX_ADDR is confusing. Currently it is set to 32MB, except
ddafa09
on ieee1275 on x86, where it is 64MB.
ddafa09
ddafa09
There is a comment which purports to explain it:
ddafa09
ddafa09
/* If possible, we will avoid claiming heap above this address, because it
ddafa09
   seems to cause relocation problems with OSes that link at 4 MiB */
ddafa09
ddafa09
This doesn't make a lot of sense when the constants are well above 4MB
ddafa09
already. It was not always this way. Prior to
ddafa09
commit 7b5d0fe4440c ("Increase heap limit") in 2010, HEAP_MAX_SIZE and
ddafa09
HEAP_MAX_ADDR were indeed 4MB. However, when the constants were increased
ddafa09
the comment was left unchanged.
ddafa09
ddafa09
It's been over a decade. It doesn't seem like we have problems with
ddafa09
claims over 4MB on powerpc or x86 ieee1275. (sparc does things completely
ddafa09
differently and never used the constant.)
ddafa09
ddafa09
Drop the constant and the check.
ddafa09
ddafa09
The only use of HEAP_MIN_SIZE was to potentially override the
ddafa09
HEAP_MAX_ADDR check. It is now unused. Remove it.
ddafa09
ddafa09
Signed-off-by: Daniel Axtens <dja@axtens.net>
ddafa09
---
ddafa09
 grub-core/kern/ieee1275/init.c | 17 -----------------
ddafa09
 1 file changed, 17 deletions(-)
ddafa09
ddafa09
diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
ddafa09
index fc7d9712729..0dcd114ce54 100644
ddafa09
--- a/grub-core/kern/ieee1275/init.c
ddafa09
+++ b/grub-core/kern/ieee1275/init.c
ddafa09
@@ -46,9 +46,6 @@
ddafa09
 #endif
ddafa09
 #include <grub/lockdown.h>
ddafa09
 
ddafa09
-/* The minimal heap size we can live with. */
ddafa09
-#define HEAP_MIN_SIZE		(unsigned long) (2 * 1024 * 1024)
ddafa09
-
ddafa09
 /* The maximum heap size we're going to claim */
ddafa09
 #ifdef __i386__
ddafa09
 #define HEAP_MAX_SIZE		(unsigned long) (64 * 1024 * 1024)
ddafa09
@@ -56,14 +53,6 @@
ddafa09
 #define HEAP_MAX_SIZE		(unsigned long) (32 * 1024 * 1024)
ddafa09
 #endif
ddafa09
 
ddafa09
-/* If possible, we will avoid claiming heap above this address, because it
ddafa09
-   seems to cause relocation problems with OSes that link at 4 MiB */
ddafa09
-#ifdef __i386__
ddafa09
-#define HEAP_MAX_ADDR		(unsigned long) (64 * 1024 * 1024)
ddafa09
-#else
ddafa09
-#define HEAP_MAX_ADDR		(unsigned long) (32 * 1024 * 1024)
ddafa09
-#endif
ddafa09
-
ddafa09
 extern char _end[];
ddafa09
 
ddafa09
 #ifdef __sparc__
ddafa09
@@ -185,12 +174,6 @@ heap_init (grub_uint64_t addr, grub_uint64_t len, grub_memory_type_t type,
ddafa09
   if (*total + len > HEAP_MAX_SIZE)
ddafa09
     len = HEAP_MAX_SIZE - *total;
ddafa09
 
ddafa09
-  /* Avoid claiming anything above HEAP_MAX_ADDR, if possible. */
ddafa09
-  if ((addr < HEAP_MAX_ADDR) &&				/* if it's too late, don't bother */
ddafa09
-      (addr + len > HEAP_MAX_ADDR) &&				/* if it wasn't available anyway, don't bother */
ddafa09
-      (*total + (HEAP_MAX_ADDR - addr) > HEAP_MIN_SIZE))	/* only limit ourselves when we can afford to */
ddafa09
-     len = HEAP_MAX_ADDR - addr;
ddafa09
-
ddafa09
   /* In theory, firmware should already prevent this from happening by not
ddafa09
      listing our own image in /memory/available.  The check below is intended
ddafa09
      as a safeguard in case that doesn't happen.  However, it doesn't protect