]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/BdsLib: Fix incorrect pointer casting
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 27 Sep 2011 18:27:20 +0000 (18:27 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 27 Sep 2011 18:27:20 +0000 (18:27 +0000)
A physical address (64bit) was cast to a 32bit pointer.

Signed-off-by: Eugene Cohen (HP)
Reviewed-by: oliviermartin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12460 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Library/BdsLib/BdsInternal.h
ArmPkg/Library/BdsLib/BdsLinuxAtag.c
ArmPkg/Library/BdsLib/BdsLinuxLoader.c

index 1b5094c17b9dcbb3821ae40e4b34bca98858a8b8..880d7809946e648fe93f3bab19aa4b162d6c8cf3 100644 (file)
@@ -96,11 +96,11 @@ BdsLoadImage (
 
 EFI_STATUS
 PrepareAtagList (
-  IN  CONST CHAR8*     CommandLineString,
-  IN  EFI_PHYSICAL_ADDRESS InitrdImage,
-  IN  UINTN            InitrdImageSize,
-  OUT LINUX_ATAG       **AtagBase,
-  OUT UINT32           *AtagSize
+  IN  CONST CHAR8*          CommandLineString,
+  IN  EFI_PHYSICAL_ADDRESS  InitrdImage,
+  IN  UINTN                 InitrdImageSize,
+  OUT EFI_PHYSICAL_ADDRESS  *AtagBase,
+  OUT UINT32                *AtagSize
   );
 
 #endif
index 253cf65f36109c6ad861d28966294dbaa9c04e90..8c16bc0ec315542b90cd5385ef375909fbcd2c49 100644 (file)
@@ -98,11 +98,11 @@ SetupEndTag (
 
 EFI_STATUS
 PrepareAtagList (
-  IN  CONST CHAR8*     CommandLineString,
-  IN  EFI_PHYSICAL_ADDRESS InitrdImage,
-  IN  UINTN            InitrdImageSize,
-  OUT LINUX_ATAG       **AtagBase,
-  OUT UINT32           *AtagSize
+  IN  CONST CHAR8*          CommandLineString,
+  IN  EFI_PHYSICAL_ADDRESS  InitrdImage,
+  IN  UINTN                 InitrdImageSize,
+  OUT EFI_PHYSICAL_ADDRESS  *AtagBase,
+  OUT UINT32                *AtagSize
   )
 {
   EFI_STATUS                  Status;
@@ -155,7 +155,7 @@ PrepareAtagList (
   SetupEndTag();
 
   // Calculate atag list size
-  *AtagBase = (LINUX_ATAG*)(UINTN)AtagStartAddress;
+  *AtagBase = AtagStartAddress;
   *AtagSize = (UINT32)mLinuxKernelCurrentAtag - (UINT32)AtagStartAddress + 1;
 
   return EFI_SUCCESS;
index 81144b3ff85a4e0d41a72acdf6e82cd934bc82cf..3ff67f9b125f26dc3ef8577a38117ddfd0afaeff 100644 (file)
@@ -161,7 +161,7 @@ BdsBootLinuxAtag (
   //
  
   // By setting address=0 we leave the memory allocation to the function
-  Status = PrepareAtagList (Arguments, InitrdImage, InitrdImageSize, (LINUX_ATAG**)&KernelParamsAddress, &KernelParamsSize);
+  Status = PrepareAtagList (Arguments, InitrdImage, InitrdImageSize, &KernelParamsAddress, &KernelParamsSize);
   if (EFI_ERROR(Status)) {
     Print(L"ERROR: Can not prepare ATAG list. Status=0x%X\n", Status);
     return Status;