]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Library/LoadLinuxLib/Linux.c
Fix IA32 build failure.
[mirror_edk2.git] / OvmfPkg / Library / LoadLinuxLib / Linux.c
index 862698a39e87308631e7c4da15f63da23d14ac11..cd673aa087c8959be12bf98a9b2325812c696d48 100644 (file)
@@ -349,15 +349,15 @@ SetupLinuxMemmap (
     if ((LastE820 != NULL) &&\r
         (LastE820->type == (UINT32) E820Type) &&\r
         (MemoryMap->PhysicalStart == LastEndAddr)) {\r
-      LastE820->size += EFI_PAGES_TO_SIZE (MemoryMap->NumberOfPages);\r
-      LastEndAddr += EFI_PAGES_TO_SIZE (MemoryMap->NumberOfPages);\r
+      LastE820->size += EFI_PAGES_TO_SIZE ((UINTN) MemoryMap->NumberOfPages);\r
+      LastEndAddr += EFI_PAGES_TO_SIZE ((UINTN) MemoryMap->NumberOfPages);\r
     } else {\r
       if (E820EntryCount >= (sizeof (Bp->e820_map) / sizeof (Bp->e820_map[0]))) {\r
         break;\r
       }\r
       E820->type = (UINT32) E820Type;\r
       E820->addr = MemoryMap->PhysicalStart;\r
-      E820->size = EFI_PAGES_TO_SIZE (MemoryMap->NumberOfPages);\r
+      E820->size = EFI_PAGES_TO_SIZE ((UINTN) MemoryMap->NumberOfPages);\r
       LastE820 = E820;\r
       LastEndAddr = E820->addr + E820->size;\r
       E820++;\r
@@ -642,13 +642,14 @@ LoadLinux (
   InitLinuxDescriptorTables ();\r
 \r
   Bp->hdr.code32_start = (UINT32)(UINTN) Kernel;\r
-  if (Bp->hdr.version >= 0x20b && Bp->hdr.handover_offset &&\r
-      (Bp->hdr.load_flags & (sizeof(long) >> 1))) {\r
+  if (Bp->hdr.version >= 0x20c && Bp->hdr.handover_offset &&\r
+      (Bp->hdr.load_flags & (sizeof (UINTN) == 4 ? BIT2 : BIT3))) {\r
     DEBUG ((EFI_D_INFO, "Jumping to kernel EFI handover point at ofs %x\n", Bp->hdr.handover_offset));\r
 \r
     DisableInterrupts ();\r
     JumpToUefiKernel ((VOID*) gImageHandle, (VOID*) gST, KernelSetup, Kernel);\r
   }\r
+\r
   //\r
   // Old kernels without EFI handover protocol\r
   //\r