Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / hal / acpi / parser / mcfg_parser.c
index 49d04a79cb044f1aa1ba0eda7dbc1d4ab9e2b09b..cbd139e1e4b38883250fdc5d72f556ca028c82bb 100644 (file)
@@ -7,10 +7,11 @@ LOG_MODULE("MCFG")
 void
 mcfg_parse(acpi_sdthdr_t* mcfg, acpi_context* toc)
 {
-    size_t alloc_num = (mcfg->length - sizeof(acpi_sdthdr_t) - 8) /
-                       sizeof(struct acpi_mcfg_alloc);
+    size_t alloc_num = (mcfg->length - sizeof(acpi_sdthdr_t) - 8);
+    alloc_num = alloc_num / sizeof(struct acpi_mcfg_alloc);
+
     struct acpi_mcfg_alloc* allocs =
-      (struct acpi_mcfg_alloc*)((uintptr_t)mcfg + (sizeof(acpi_sdthdr_t) + 8));
+      (struct acpi_mcfg_alloc*)((ptr_t)mcfg + (sizeof(acpi_sdthdr_t) + 8));
 
     toc->mcfg.alloc_num = alloc_num;
     toc->mcfg.allocations = valloc(sizeof(struct mcfg_alloc_info) * alloc_num);