mirror of https://github.com/acidanthera/audk.git
ArmPkg/ArmDmaLib: deal with NULL return value of UncachedAllocatePages ()
The allocation function UncachedAllocatePages () may return NULL, in which case our implementation of DmaAllocateBuffer () should return EFI_OUT_OF_RESOURCES rather than silently ignoring the NULL value and returning EFI_SUCCESS. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
parent
9c0dc0b01a
commit
e55f8c73b6
|
@ -216,6 +216,8 @@ DmaAllocateBuffer (
|
|||
OUT VOID **HostAddress
|
||||
)
|
||||
{
|
||||
VOID *Allocation;
|
||||
|
||||
if (HostAddress == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
@ -226,13 +228,19 @@ DmaAllocateBuffer (
|
|||
// We used uncached memory to keep coherency
|
||||
//
|
||||
if (MemoryType == EfiBootServicesData) {
|
||||
*HostAddress = UncachedAllocatePages (Pages);
|
||||
Allocation = UncachedAllocatePages (Pages);
|
||||
} else if (MemoryType == EfiRuntimeServicesData) {
|
||||
*HostAddress = UncachedAllocateRuntimePages (Pages);
|
||||
Allocation = UncachedAllocateRuntimePages (Pages);
|
||||
} else {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (Allocation == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
*HostAddress = Allocation;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue