summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-11-05 16:39:48 +0000
committerLeah Rowe <leah@libreboot.org>2023-11-05 16:39:48 +0000
commitdd03a87b684d86eaaad572ce24864417c2d869aa (patch)
treecbd9646f9b50ce2aa9cbdb72c81888dc58fb0771
parentab57e7a4889c38b798c53f14d78498140f153893 (diff)
grub: don't print messages if a module isn't found
it can annoy some users, so just silence it. we don't need a lot of modules so we only have a few, but some distro grub configs can load modules frivilously. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/grub/patches/0004-prefix/0002-don-t-print-error-if-module-not-found.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/config/grub/patches/0004-prefix/0002-don-t-print-error-if-module-not-found.patch b/config/grub/patches/0004-prefix/0002-don-t-print-error-if-module-not-found.patch
new file mode 100644
index 00000000..f4cf939e
--- /dev/null
+++ b/config/grub/patches/0004-prefix/0002-don-t-print-error-if-module-not-found.patch
@@ -0,0 +1,34 @@
+From 6237c5762edccc1e1fa4746b1d4aa5e8d81e4883 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 5 Nov 2023 16:36:22 +0000
+Subject: [PATCH 1/1] don't print error if module not found
+
+still set grub_errno accordingly, and otherwise
+behave the same. in libreboot, we remove a lot of
+modules but then rely on loading a grub.cfg
+provided by a distro; in almost all cases that works,
+but also in almost all cases, that will try to load
+a module we don't actually need, but then it prints
+a message. this can annoy some users, so silence it.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ grub-core/kern/dl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
+index af3bd00d0..21d0cedb1 100644
+--- a/grub-core/kern/dl.c
++++ b/grub-core/kern/dl.c
+@@ -486,7 +486,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
+
+ s = grub_dl_find_section (e, ".modname");
+ if (!s)
+- return grub_error (GRUB_ERR_BAD_MODULE, "no module name found");
++ return (grub_errno = GRUB_ERR_BAD_MODULE);
+
+ mod->name = grub_strdup ((char *) e + s->sh_offset);
+ if (! mod->name)
+--
+2.39.2
+