Переглянути джерело

Silicon/Synopsys/DesignWare: Casts to avoid void* pointer arithmetic

By default, gcc allows void* pointer arithmetic.
This is a GCC extension.
However, the C reference manual states that void*
pointer "cannot be operands of addition or subtraction
operators". Cf s5.3.1 "Generic Pointers".

This patch adds casts to avoid doing void* pointer arithmetic.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Pierre Gondois 3 роки тому
батько
коміт
b2eebc1d59

+ 2 - 1
Silicon/Synopsys/DesignWare/Drivers/DwEmacSnpDxe/DriverBinding.c

@@ -1,6 +1,7 @@
 /** @file
 
   Copyright (c) 2011 - 2019, Intel Corporaton. All rights reserved.
+  Copyright (c) 2020, Arm Limited. All rights reserved.<BR>
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
  **/
@@ -171,7 +172,7 @@ DriverStart (
     }
 
     //DMA mapping for receive buffer
-    RxBufferAddr = (VOID *)Snp->MacDriver.RxBuffer + (Index * BufferSize);
+    RxBufferAddr = (UINTN*)((UINTN)Snp->MacDriver.RxBuffer + (Index * BufferSize));
     Status = DmaMap (MapOperationBusMasterWrite,  (VOID *) RxBufferAddr,
                &BufferSize, &RxBufferAddrMap, &Snp->MacDriver.RxBufNum[Index].Mapping);
     if (EFI_ERROR (Status)) {

+ 3 - 2
Silicon/Synopsys/DesignWare/Drivers/DwEmacSnpDxe/DwEmacSnpDxe.c

@@ -5,7 +5,7 @@
 
   The original software modules are licensed as follows:
 
-  Copyright (c) 2012 - 2014, ARM Limited. All rights reserved.
+  Copyright (c) 2012 - 2020, Arm Limited. All rights reserved.<BR>
   Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -1135,7 +1135,8 @@ SnpReceive (
   Snp->MacDriver.RxCurrentDescriptorNum = Snp->MacDriver.RxNextDescriptorNum;
   DescNum = Snp->MacDriver.RxCurrentDescriptorNum;
   RxDescriptor = Snp->MacDriver.RxdescRing[DescNum];
-  RxBufferAddr = (VOID *)Snp->MacDriver.RxBuffer + (DescNum * BufferSizeBuf);
+  RxBufferAddr = (UINTN*)((UINTN)Snp->MacDriver.RxBuffer +
+                          (DescNum * BufferSizeBuf));
   RxDescriptorMap = (VOID *)(UINTN)Snp->MacDriver.RxdescRingMap[DescNum].AddrMap;
 
   RawData = (UINT8 *) Data;