diff options
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/src/HEL/AMD64/BootEFI.cc | 12 | ||||
| -rw-r--r-- | src/boot/src/HEL/ARM64/BootEFI.cc | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/boot/src/HEL/AMD64/BootEFI.cc b/src/boot/src/HEL/AMD64/BootEFI.cc index 7558ec62..c043bbb9 100644 --- a/src/boot/src/HEL/AMD64/BootEFI.cc +++ b/src/boot/src/HEL/AMD64/BootEFI.cc @@ -131,18 +131,18 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa kHandoverHeader->f_BitMapStart = nullptr; /* Start of bitmap. */ kHandoverHeader->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap in bytes. */ - UInt16 trials = 5; + UInt16 trials = 15; while (BS->AllocatePool(EfiLoaderData, kHandoverHeader->f_BitMapSize, &kHandoverHeader->f_BitMapStart) != kEfiOk) { --trials; - if (!trials) { - writer.Write("BootZ: Unable to allocate sufficient memory, trying again with 2GB...\r"); + if (trials) { + writer.Write("BootZ: Unable to allocate sufficient memory, trying again...\r"); - trials = 3; - - kHandoverHeader->f_BitMapSize = kHandoverBitMapSz / 2; /* Size of bitmap in bytes. */ + if (kHandoverHeader->f_BitMapSize > 0) + kHandoverHeader->f_BitMapSize = + kHandoverHeader->f_BitMapSize / 2; /* Size of bitmap in bytes. */ while (BS->AllocatePool(EfiLoaderData, kHandoverHeader->f_BitMapSize, &kHandoverHeader->f_BitMapStart) != kEfiOk) { diff --git a/src/boot/src/HEL/ARM64/BootEFI.cc b/src/boot/src/HEL/ARM64/BootEFI.cc index 7f4b152c..bdef6549 100644 --- a/src/boot/src/HEL/ARM64/BootEFI.cc +++ b/src/boot/src/HEL/ARM64/BootEFI.cc @@ -130,18 +130,18 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa kHandoverHeader->f_BitMapStart = nullptr; /* Start of bitmap. */ kHandoverHeader->f_BitMapSize = kHandoverBitMapSz; /* Size of bitmap in bytes. */ - UInt16 trials = 5; + UInt16 trials = 15; while (BS->AllocatePool(EfiLoaderData, kHandoverHeader->f_BitMapSize, &kHandoverHeader->f_BitMapStart) != kEfiOk) { --trials; - if (!trials) { - writer.Write("BootZ: Unable to allocate sufficient memory, trying again with 2GB...\r"); + if (trials) { + writer.Write("BootZ: Unable to allocate sufficient memory, trying again...\r"); - trials = 3; - - kHandoverHeader->f_BitMapSize = kHandoverBitMapSz / 2; /* Size of bitmap in bytes. */ + if (kHandoverHeader->f_BitMapSize > 0) + kHandoverHeader->f_BitMapSize = + kHandoverHeader->f_BitMapSize / 2; /* Size of bitmap in bytes. */ while (BS->AllocatePool(EfiLoaderData, kHandoverHeader->f_BitMapSize, &kHandoverHeader->f_BitMapStart) != kEfiOk) { |
