term/ns8250-spcr: return if redirection is disabled
Compared to previous commit, this is a better approach to handle SPCR null base address indicating no redirection, doing the null check on the caller instead of the callee. Resolves: #RHEL-68622 Signed-off-by: Leo Sandoval <lsandova@redhat.com>
This commit is contained in:
parent
4052952894
commit
ff6d9c809c
@ -1,29 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Leo Sandoval <lsandova@redhat.com>
|
|
||||||
Date: Wed, 8 Jan 2025 10:24:26 -0600
|
|
||||||
Subject: [PATCH] term/ns8250: return in case of a null SPCR base addresses
|
|
||||||
|
|
||||||
Serial SPCR MMIO null address are invalid, so return from function, otherwise
|
|
||||||
invalid 'mmio,0' port names are generated halting the system when running
|
|
||||||
terminal_input|output commands.
|
|
||||||
|
|
||||||
Resolves: #RHEL-68622
|
|
||||||
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
|
|
||||||
---
|
|
||||||
grub-core/term/ns8250.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/grub-core/term/ns8250.c b/grub-core/term/ns8250.c
|
|
||||||
index 23e8e0904..4ac0bc06a 100644
|
|
||||||
--- a/grub-core/term/ns8250.c
|
|
||||||
+++ b/grub-core/term/ns8250.c
|
|
||||||
@@ -407,6 +407,9 @@ grub_serial_ns8250_add_mmio (grub_addr_t addr, unsigned int acc_size,
|
|
||||||
struct grub_serial_port *p;
|
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
+ if (addr == NULL)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
for (i = 0; i < GRUB_SERIAL_PORT_NUM; i++)
|
|
||||||
if (com_ports[i].use_mmio == true && com_ports[i].mmio.base == addr)
|
|
||||||
{
|
|
@ -0,0 +1,35 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||||
|
Date: Thu, 16 Jan 2025 10:22:48 -0600
|
||||||
|
Subject: [PATCH] term/ns8250-spcr: return if redirection is disabled
|
||||||
|
|
||||||
|
The Microsoft spec for SPCR says "The base address of the Serial Port register
|
||||||
|
set described using the ACPI Generic Address Structure, or 0 if console
|
||||||
|
redirection is disabled." so return if disable (base address = 0). If this check
|
||||||
|
is not done, we may get invalid ports for those particular machines that
|
||||||
|
redirection is disabled and at some point hanging the booting execution when
|
||||||
|
reading the grub.cfg configuration file.
|
||||||
|
|
||||||
|
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||||
|
Reviewed-by: Leo Sandoval <lsandova@redhat.com>
|
||||||
|
---
|
||||||
|
grub-core/term/ns8250-spcr.c | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/grub-core/term/ns8250-spcr.c b/grub-core/term/ns8250-spcr.c
|
||||||
|
index d52b52c26..86f1aa078 100644
|
||||||
|
--- a/grub-core/term/ns8250-spcr.c
|
||||||
|
+++ b/grub-core/term/ns8250-spcr.c
|
||||||
|
@@ -75,6 +75,11 @@ grub_ns8250_spcr_init (void)
|
||||||
|
config.speed = 115200;
|
||||||
|
break;
|
||||||
|
};
|
||||||
|
+
|
||||||
|
+ /* if base address is 0, it means redirection is disable, so return it */
|
||||||
|
+ if (spcr->base_addr.addr == 0)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
switch (spcr->base_addr.space_id)
|
||||||
|
{
|
||||||
|
case GRUB_ACPI_GENADDR_MEM_SPACE:
|
||||||
|
|
@ -281,4 +281,4 @@ Patch0280: 0280-grub2-mkconfig-Pass-all-boot-params-when-used-by-ana.patch
|
|||||||
Patch0281: 0281-10_linux.in-escape-semicolon-and-ampersand-on-BLS-up.patch
|
Patch0281: 0281-10_linux.in-escape-semicolon-and-ampersand-on-BLS-up.patch
|
||||||
Patch0282: 0282-acpi-Fix-out-of-bounds-access-in-grub_acpi_xsdt_find.patch
|
Patch0282: 0282-acpi-Fix-out-of-bounds-access-in-grub_acpi_xsdt_find.patch
|
||||||
Patch0283: 0283-fs-xfs-Fix-large-extent-counters-incompat-feature-su.patch
|
Patch0283: 0283-fs-xfs-Fix-large-extent-counters-incompat-feature-su.patch
|
||||||
Patch0284: 0284-term-ns8250-return-null-in-case-of-a-null-address.patch
|
Patch0284: 0284-term-ns8250-spcr-return-if-redirection-is-disabled.patch
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
Name: grub2
|
Name: grub2
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.12
|
Version: 2.12
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
Summary: Bootloader with support for Linux, Multiboot and more
|
Summary: Bootloader with support for Linux, Multiboot and more
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
URL: http://www.gnu.org/software/grub/
|
URL: http://www.gnu.org/software/grub/
|
||||||
@ -583,6 +583,10 @@ mv ${EFI_HOME}/grub.cfg.stb ${EFI_HOME}/grub.cfg
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 17 2025 Leo Sandoval <lsandova@redhat.com> 2.12-7
|
||||||
|
- term/ns8250-spcr: return if redirection is disabled
|
||||||
|
- Resolves: #RHEL-68622
|
||||||
|
|
||||||
* Mon Jan 13 2025 Leo Sandoval <lsandova@redhat.com> 2.12-6
|
* Mon Jan 13 2025 Leo Sandoval <lsandova@redhat.com> 2.12-6
|
||||||
- term/ns8250: return in case of a null SPCR base addresses
|
- term/ns8250: return in case of a null SPCR base addresses
|
||||||
- Resolves: #RHEL-68622
|
- Resolves: #RHEL-68622
|
||||||
|
Loading…
Reference in New Issue
Block a user