grub-devel
[Top][All Lists]
Advanced

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

[PATCH] kern/acpi: use xsdt_addr if present


From: Qiumiao Zhang
Subject: [PATCH] kern/acpi: use xsdt_addr if present
Date: Tue, 13 Jun 2023 11:20:51 +0800

According to the ACPI specification, in ACPI 2.0 or later, an ACPI-compatible 
OS must use the XSDT if present.
So, we should use xsdt_addr instead of rsdt_addr if xsdt_addr is valid.

Signed-off-by: Qiumiao Zhang <zhangqiumiao1@huawei.com>
---
 grub-core/kern/acpi.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/grub-core/kern/acpi.c b/grub-core/kern/acpi.c
index a9bcd85fc..c61115dcd 100644
--- a/grub-core/kern/acpi.c
+++ b/grub-core/kern/acpi.c
@@ -101,12 +101,6 @@ grub_acpi_find_table (const char *sig)
   if (r)
     return r;
   rsdpv2 = grub_machine_acpi_get_rsdpv2 ();
-  if (rsdpv2)
-    r = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *)
-                                  (grub_addr_t) rsdpv2->rsdpv1.rsdt_addr,
-                                  sig);
-  if (r)
-    return r;
   if (rsdpv2
 #if GRUB_CPU_SIZEOF_VOID_P != 8
       && !(rsdpv2->xsdt_addr >> 32)
@@ -117,6 +111,12 @@ grub_acpi_find_table (const char *sig)
                                   sig);
   if (r)
     return r;
+  if (rsdpv2)
+    r = grub_acpi_rsdt_find_table ((struct grub_acpi_table_header *)
+                                  (grub_addr_t) rsdpv2->rsdpv1.rsdt_addr,
+                                  sig);
+  if (r)
+    return r;
   return 0;
 }
 
-- 
2.28.0.windows.1




reply via email to

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