diff options
author | Vince Bridgers <vbridgers2013@gmail.com> | 2014-03-20 20:43:16 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-24 12:45:00 -0400 |
commit | a804ad0e3b4a8302412304a5e9490ea318288cc2 (patch) | |
tree | e3bdc0bcc07f8b594ea00a526dce93075d82d6f5 | |
parent | 8adfc3ae45fa854205608a04e5c71cd1c833579f (diff) |
Altera TSE: Correct typecast issue detected by kbuild test robot
This patch addresses a portable pointer arithmetic issue in the
original submission found by the kbuild test robot.
config: make ARCH=i386 allyesconfig
altera_sgdma.c: In function 'sgdma_txphysaddr':
>> altera_sgdma.c:393:33: warning: cast from
>> pointer to integer of different size [-Wpointer-to-int-cast]
dma_addr_t offs = (dma_addr_t)((dma_addr_t)desc -
^
>> altera_sgdma.c:394:5: warning: cast from
>> pointer to integer of different size [-Wpointer-to-int-cast]
(dma_addr_t)priv->tx_dma_desc);
^
altera_sgdma.c: In function 'sgdma_rxphysaddr':
>> altera_sgdma.c:403:33: warning: cast from
>> pointer to integer of different size [-Wpointer-to-int-cast]
dma_addr_t offs = (dma_addr_t)((dma_addr_t)desc -
^
>> altera_sgdma.c:404:5: warning: cast from
>> pointer to integer of different size [-Wpointer-to-int-cast]
(dma_addr_t)priv->rx_dma_desc);
^
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Vince Bridgers <vbridgers2013@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/altera/altera_sgdma.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/ethernet/altera/altera_sgdma.c b/drivers/net/ethernet/altera/altera_sgdma.c index cbeee073a9ff..ebc4840a0dbb 100644 --- a/drivers/net/ethernet/altera/altera_sgdma.c +++ b/drivers/net/ethernet/altera/altera_sgdma.c @@ -390,9 +390,8 @@ sgdma_txphysaddr(struct altera_tse_private *priv, struct sgdma_descrip *desc) { dma_addr_t paddr = priv->txdescmem_busaddr; - dma_addr_t offs = (dma_addr_t)((dma_addr_t)desc - - (dma_addr_t)priv->tx_dma_desc); - return paddr + offs; + uintptr_t offs = (uintptr_t)desc - (uintptr_t)priv->tx_dma_desc; + return (dma_addr_t)((uintptr_t)paddr + offs); } static dma_addr_t @@ -400,9 +399,8 @@ sgdma_rxphysaddr(struct altera_tse_private *priv, struct sgdma_descrip *desc) { dma_addr_t paddr = priv->rxdescmem_busaddr; - dma_addr_t offs = (dma_addr_t)((dma_addr_t)desc - - (dma_addr_t)priv->rx_dma_desc); - return paddr + offs; + uintptr_t offs = (uintptr_t)desc - (uintptr_t)priv->rx_dma_desc; + return (dma_addr_t)((uintptr_t)paddr + offs); } #define list_remove_head(list, entry, type, member) \ |