On Mon, May 17, 2021 at 07:50:46AM +0200, Etienne Carriere wrote: > Use (UINTN) cast to cast physical or virtual address values to the > pointer size before casting from/to a pointer value. > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org> > Cc: Leif Lindholm <l...@nuviainc.com> > Cc: Sami Mujawar <sami.muja...@arm.com> > Signed-off-by: Etienne Carriere <etienne.carri...@linaro.org> > --- > No change since v1 > --- > Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c | 21 +++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c > b/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c > index 6eb19bed0e..83c2750368 100644 > --- a/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c > +++ b/Drivers/OpTee/OpteeRpmbPkg/OpTeeRpmbFvb.c > @@ -305,7 +305,8 @@ OpTeeRpmbFvbRead ( > } > } > > - Base = (VOID *)Instance->MemBaseAddress + (Lba * Instance->BlockSize) + > Offset; > + Base = (VOID *)(UINTN)Instance->MemBaseAddress + (Lba * > Instance->BlockSize) + > + Offset; > // We could read the data from the RPMB instead of memory > // The 2 copies should already be identical > // Copy from memory image > @@ -387,7 +388,8 @@ OpTeeRpmbFvbWrite ( > return Status; > } > } > - Base = (VOID *)Instance->MemBaseAddress + Lba * Instance->BlockSize + > Offset; > + Base = (VOID *)(UINTN)Instance->MemBaseAddress + (Lba * > Instance->BlockSize) + > + Offset; > Status = ReadWriteRpmb ( > SP_SVC_RPMB_WRITE, > (UINTN)Buffer, > @@ -477,7 +479,8 @@ OpTeeRpmbFvbErase ( > return EFI_INVALID_PARAMETER; > } > NumBytes = NumLba * Instance->BlockSize; > - Base = (VOID *)Instance->MemBaseAddress + Start * Instance->BlockSize; > + Base = (VOID *)(UINTN)Instance->MemBaseAddress + > + (Start * Instance->BlockSize); > Buf = AllocatePool (NumLba * Instance->BlockSize); > if (Buf == NULL) { > return EFI_DEVICE_ERROR; > @@ -689,7 +692,7 @@ InitializeFvAndVariableStoreHeaders ( > goto Exit; > } > // Install the combined header in memory > - CopyMem ((VOID*)Instance->MemBaseAddress, Headers, HeadersLength); > + CopyMem ((VOID*)(UINTN)Instance->MemBaseAddress, Headers, HeadersLength); > > Exit: > FreePool (Headers); > @@ -747,14 +750,18 @@ FvbInitialize ( > // Read the file from disk and copy it to memory > ReadEntireFlash (Instance); > > - FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)Instance->MemBaseAddress; > + FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER > *)(UINTN)Instance->MemBaseAddress; > Status = ValidateFvHeader (FwVolHeader); > if (EFI_ERROR (Status)) { > // There is no valid header, so time to install one. > DEBUG ((DEBUG_INFO, "%a: The FVB Header is not valid.\n", __FUNCTION__)); > > // Reset memory > - SetMem64 ((VOID *)Instance->MemBaseAddress, Instance->NBlocks * > Instance->BlockSize, ~0UL); > + SetMem64 ( > + (VOID *)(UINTN)Instance->MemBaseAddress, > + Instance->NBlocks * Instance->BlockSize, > + ~0UL > + ); > DEBUG ((DEBUG_INFO, "%a: Erasing Flash.\n", __FUNCTION__)); > Status = ReadWriteRpmb ( > SP_SVC_RPMB_WRITE, > @@ -827,7 +834,7 @@ OpTeeRpmbFvbInit ( > mInstance.FvbProtocol.Write = OpTeeRpmbFvbWrite; > mInstance.FvbProtocol.Read = OpTeeRpmbFvbRead; > > - mInstance.MemBaseAddress = (EFI_PHYSICAL_ADDRESS)Addr; > + mInstance.MemBaseAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)Addr; > mInstance.Signature = FLASH_SIGNATURE; > mInstance.Initialize = FvbInitialize; > mInstance.BlockSize = EFI_PAGE_SIZE; > -- > 2.17.1 >
Acked-by: Ilias Apalodimas <ilias.apalodi...@linaro.org> -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#75204): https://edk2.groups.io/g/devel/message/75204 Mute This Topic: https://groups.io/mt/82880298/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-