]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
term/ns8250-spcr: Return if redirection is disabled
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 21 Jan 2025 17:01:26 +0000 (11:01 -0600)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 26 Feb 2025 18:34:57 +0000 (19:34 +0100)
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 early if redirection
is disabled (base address = 0). If this check is not done we may get
invalid ports on machines with redirection disabled and boot may hang
when reading the grub.cfg file.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Leo Sandoval <lsandova@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/term/ns8250-spcr.c

index 4efaaf768ce518627f74aa80da31de8cd7b59baa..428b2d59a7d932cbc020c4031ed816f10576ed28 100644 (file)
@@ -76,6 +76,11 @@ grub_ns8250_spcr_init (void)
         config.speed = 115200;
         break;
     };
+
+  /* If base address is 0 it means redirection is disabled. */
+  if (spcr->base_addr.addr == 0)
+    return NULL;
+
   switch (spcr->base_addr.space_id)
     {
       case GRUB_ACPI_GENADDR_MEM_SPACE: