grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] kern/dl: Disable grub_dl_unload_unneeded


From: Colin Watson
Subject: [PATCH] kern/dl: Disable grub_dl_unload_unneeded
Date: Sat, 20 Mar 2021 01:22:44 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

grub_dl_unload_unneeded has been unused by default since de04eecfa9 put
its only call within an "#if 0", so there's no point in it sitting
around taking up space in the core image.  Turn the "#if 0" into "#ifdef
GRUB_UNLOAD_UNNEEDED_MODULES" just in case somebody is turning this code
back on locally for some reason, and guard all the relevant code with it
rather than just the call in grub_memalign.

  DOWN: obj/i386-pc/grub-core/kernel.img (31740 > 31708) - change: -32
  DOWN: i386-pc core image (biosdisk ext2 part_msdos) (27453 > 27430) - change: 
-23
  DOWN: i386-pc core image (biosdisk ext2 part_msdos diskfilter mdraid09) 
(32367 > 32334) - change: -33
  DOWN: i386-pc core image (biosdisk ext2 part_msdos lvm mdraid1x) (35595 > 
35594) - change: -1

Signed-off-by: Colin Watson <cjwatson@debian.org>
---
 grub-core/kern/dl.c | 2 ++
 grub-core/kern/mm.c | 2 +-
 include/grub/dl.h   | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 48f8a7907..88cd2fddc 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
@@ -804,6 +804,7 @@ grub_dl_unload (grub_dl_t mod)
   return 1;
 }
 
+#ifdef GRUB_UNLOAD_UNNEEDED_MODULES
 /* Unload unneeded modules.  */
 void
 grub_dl_unload_unneeded (void)
@@ -823,3 +824,4 @@ grub_dl_unload_unneeded (void)
       p = p->next;
     }
 }
+#endif
diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c
index c070afc62..a913d66bf 100644
--- a/grub-core/kern/mm.c
+++ b/grub-core/kern/mm.c
@@ -360,7 +360,7 @@ grub_memalign (grub_size_t align, grub_size_t size)
       count++;
       goto again;
 
-#if 0
+#ifdef GRUB_UNLOAD_UNNEEDED_MODULES
     case 1:
       /* Unload unneeded modules.  */
       grub_dl_unload_unneeded ();
diff --git a/include/grub/dl.h b/include/grub/dl.h
index b3753c9ca..4a0712406 100644
--- a/include/grub/dl.h
+++ b/include/grub/dl.h
@@ -203,7 +203,9 @@ grub_dl_t EXPORT_FUNC(grub_dl_load) (const char *name);
 grub_dl_t grub_dl_load_core (void *addr, grub_size_t size);
 grub_dl_t EXPORT_FUNC(grub_dl_load_core_noinit) (void *addr, grub_size_t size);
 int EXPORT_FUNC(grub_dl_unload) (grub_dl_t mod);
+#ifdef GRUB_UNLOAD_UNNEEDED_MODULES
 extern void grub_dl_unload_unneeded (void);
+#endif
 extern int EXPORT_FUNC(grub_dl_ref) (grub_dl_t mod);
 extern int EXPORT_FUNC(grub_dl_unref) (grub_dl_t mod);
 extern int EXPORT_FUNC(grub_dl_ref_count) (grub_dl_t mod);
-- 
2.25.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]