You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.4 KiB
80 lines
2.4 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Patrick Steinhardt <ps@pks.im> |
|
Date: Thu, 21 Apr 2022 15:24:17 +1000 |
|
Subject: [PATCH] mm: Drop unused unloading of modules on OOM |
|
|
|
In grub_memalign(), there's a commented section which would allow for |
|
unloading of unneeded modules in case where there is not enough free |
|
memory available to satisfy a request. Given that this code is never |
|
compiled in, let's remove it together with grub_dl_unload_unneeded(). |
|
|
|
Signed-off-by: Patrick Steinhardt <ps@pks.im> |
|
Signed-off-by: Daniel Axtens <dja@axtens.net> |
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> |
|
Tested-by: Patrick Steinhardt <ps@pks.im> |
|
(cherry picked from commit 139fd9b134a01e0b5fe0ebefafa7f48d1ffb6d60) |
|
--- |
|
grub-core/kern/dl.c | 20 -------------------- |
|
grub-core/kern/mm.c | 8 -------- |
|
include/grub/dl.h | 1 - |
|
3 files changed, 29 deletions(-) |
|
|
|
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c |
|
index d5de80186f..ab9101a5ad 100644 |
|
--- a/grub-core/kern/dl.c |
|
+++ b/grub-core/kern/dl.c |
|
@@ -998,23 +998,3 @@ grub_dl_unload (grub_dl_t mod) |
|
grub_free (mod); |
|
return 1; |
|
} |
|
- |
|
-/* Unload unneeded modules. */ |
|
-void |
|
-grub_dl_unload_unneeded (void) |
|
-{ |
|
- /* Because grub_dl_remove modifies the list of modules, this |
|
- implementation is tricky. */ |
|
- grub_dl_t p = grub_dl_head; |
|
- |
|
- while (p) |
|
- { |
|
- if (grub_dl_unload (p)) |
|
- { |
|
- p = grub_dl_head; |
|
- continue; |
|
- } |
|
- |
|
- p = p->next; |
|
- } |
|
-} |
|
diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c |
|
index 38bfb01df9..1825dc8289 100644 |
|
--- a/grub-core/kern/mm.c |
|
+++ b/grub-core/kern/mm.c |
|
@@ -444,14 +444,6 @@ grub_memalign (grub_size_t align, grub_size_t size) |
|
count++; |
|
goto again; |
|
|
|
-#if 0 |
|
- case 1: |
|
- /* Unload unneeded modules. */ |
|
- grub_dl_unload_unneeded (); |
|
- count++; |
|
- goto again; |
|
-#endif |
|
- |
|
default: |
|
break; |
|
} |
|
diff --git a/include/grub/dl.h b/include/grub/dl.h |
|
index 45ac8e339f..6bc2560bf0 100644 |
|
--- a/include/grub/dl.h |
|
+++ b/include/grub/dl.h |
|
@@ -206,7 +206,6 @@ 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); |
|
-extern void grub_dl_unload_unneeded (void); |
|
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);
|
|
|