]> git.proxmox.com Git - mirror_edk2.git/commit - MdeModulePkg/Core/Dxe/Mem/HeapGuard.c
MdeModulePkg/Core: fix too many available pages between BS_Data
authorJian J Wang <jian.j.wang@intel.com>
Wed, 7 Mar 2018 03:26:32 +0000 (11:26 +0800)
committerStar Zeng <star.zeng@intel.com>
Thu, 8 Mar 2018 04:37:28 +0000 (12:37 +0800)
commit8b13bca9b81490fc0e42df25d5feb82bbb47833e
tree170ce84b113329d4511a8aa581466733cf146030
parent3d1872b780cc6e028a554c7f7b5f6e04e98ab36b
MdeModulePkg/Core: fix too many available pages between BS_Data

The root cause is an unnecessary check to Size parameter in function
AdjustMemoryS(). It will cause one standalone free page (happen to have
Guard page around) in the free memory list cannot be allocated, even if
the requested memory size is less than a page.

  //
  // At least one more page needed for Guard page.
  //
  if (Size < (SizeRequested + EFI_PAGES_TO_SIZE (1))) {
    return 0;
  }

The following code in the same function actually covers above check
implicitly. So the fix is simply removing above check.

Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
MdeModulePkg/Core/Dxe/Mem/HeapGuard.c
MdeModulePkg/Core/PiSmmCore/HeapGuard.c