Message ID | 20180113211355.638195-1-arnd@arndb.de |
---|---|
State | Accepted |
Commit | 54f7bf7230520ef6f0c79ac507fef46e5d7aa7fb |
Headers | show |
Series | [net-next] net: netsec: use dma_addr_t for storing dma address | expand |
On 13 January 2018 at 21:13, Arnd Bergmann <arnd@arndb.de> wrote: > On targets that have different sizes for phys_addr_t and dma_addr_t, > we get a type mismatch error: > > drivers/net/ethernet/socionext/netsec.c: In function 'netsec_alloc_dring': > drivers/net/ethernet/socionext/netsec.c:970:9: error: passing argument 3 of 'dma_zalloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] > > The code is otherwise correct, as the address is never actually used as a > physical address but only passed into a DMA register. For consistently, consistency > I'm changing the variable name as well, to clarify that this is a DMA > address. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > drivers/net/ethernet/socionext/netsec.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/ethernet/socionext/netsec.c b/drivers/net/ethernet/socionext/netsec.c > index 6c263af86b8a..f4c0b02ddad8 100644 > --- a/drivers/net/ethernet/socionext/netsec.c > +++ b/drivers/net/ethernet/socionext/netsec.c > @@ -252,7 +252,7 @@ struct netsec_desc { > }; > > struct netsec_desc_ring { > - phys_addr_t desc_phys; > + dma_addr_t desc_dma; > struct netsec_desc *desc; > void *vaddr; > u16 pkt_cnt; > @@ -953,7 +953,7 @@ static void netsec_free_dring(struct netsec_priv *priv, int id) > > if (dring->vaddr) { > dma_free_coherent(priv->dev, DESC_SZ * DESC_NUM, > - dring->vaddr, dring->desc_phys); > + dring->vaddr, dring->desc_dma); > dring->vaddr = NULL; > } > > @@ -967,7 +967,7 @@ static int netsec_alloc_dring(struct netsec_priv *priv, enum ring_id id) > int ret = 0; > > dring->vaddr = dma_zalloc_coherent(priv->dev, DESC_SZ * DESC_NUM, > - &dring->desc_phys, GFP_KERNEL); > + &dring->desc_dma, GFP_KERNEL); > if (!dring->vaddr) { > ret = -ENOMEM; > goto err; > @@ -1087,14 +1087,14 @@ static int netsec_reset_hardware(struct netsec_priv *priv) > > /* set desc_start addr */ > netsec_write(priv, NETSEC_REG_NRM_RX_DESC_START_UP, > - upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); > + upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_dma)); > netsec_write(priv, NETSEC_REG_NRM_RX_DESC_START_LW, > - lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); > + lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_dma)); > > netsec_write(priv, NETSEC_REG_NRM_TX_DESC_START_UP, > - upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); > + upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_dma)); > netsec_write(priv, NETSEC_REG_NRM_TX_DESC_START_LW, > - lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); > + lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_dma)); > > /* set normal tx dring ring config */ > netsec_write(priv, NETSEC_REG_NRM_TX_CONFIG, > -- > 2.9.0 >
From: Arnd Bergmann <arnd@arndb.de> Date: Sat, 13 Jan 2018 22:13:44 +0100 > On targets that have different sizes for phys_addr_t and dma_addr_t, > we get a type mismatch error: > > drivers/net/ethernet/socionext/netsec.c: In function 'netsec_alloc_dring': > drivers/net/ethernet/socionext/netsec.c:970:9: error: passing argument 3 of 'dma_zalloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] > > The code is otherwise correct, as the address is never actually used as a > physical address but only passed into a DMA register. For consistently, > I'm changing the variable name as well, to clarify that this is a DMA > address. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Applied, thanks Arnd.
diff --git a/drivers/net/ethernet/socionext/netsec.c b/drivers/net/ethernet/socionext/netsec.c index 6c263af86b8a..f4c0b02ddad8 100644 --- a/drivers/net/ethernet/socionext/netsec.c +++ b/drivers/net/ethernet/socionext/netsec.c @@ -252,7 +252,7 @@ struct netsec_desc { }; struct netsec_desc_ring { - phys_addr_t desc_phys; + dma_addr_t desc_dma; struct netsec_desc *desc; void *vaddr; u16 pkt_cnt; @@ -953,7 +953,7 @@ static void netsec_free_dring(struct netsec_priv *priv, int id) if (dring->vaddr) { dma_free_coherent(priv->dev, DESC_SZ * DESC_NUM, - dring->vaddr, dring->desc_phys); + dring->vaddr, dring->desc_dma); dring->vaddr = NULL; } @@ -967,7 +967,7 @@ static int netsec_alloc_dring(struct netsec_priv *priv, enum ring_id id) int ret = 0; dring->vaddr = dma_zalloc_coherent(priv->dev, DESC_SZ * DESC_NUM, - &dring->desc_phys, GFP_KERNEL); + &dring->desc_dma, GFP_KERNEL); if (!dring->vaddr) { ret = -ENOMEM; goto err; @@ -1087,14 +1087,14 @@ static int netsec_reset_hardware(struct netsec_priv *priv) /* set desc_start addr */ netsec_write(priv, NETSEC_REG_NRM_RX_DESC_START_UP, - upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); + upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_dma)); netsec_write(priv, NETSEC_REG_NRM_RX_DESC_START_LW, - lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys)); + lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_dma)); netsec_write(priv, NETSEC_REG_NRM_TX_DESC_START_UP, - upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); + upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_dma)); netsec_write(priv, NETSEC_REG_NRM_TX_DESC_START_LW, - lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys)); + lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_dma)); /* set normal tx dring ring config */ netsec_write(priv, NETSEC_REG_NRM_TX_CONFIG,
On targets that have different sizes for phys_addr_t and dma_addr_t, we get a type mismatch error: drivers/net/ethernet/socionext/netsec.c: In function 'netsec_alloc_dring': drivers/net/ethernet/socionext/netsec.c:970:9: error: passing argument 3 of 'dma_zalloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types] The code is otherwise correct, as the address is never actually used as a physical address but only passed into a DMA register. For consistently, I'm changing the variable name as well, to clarify that this is a DMA address. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/net/ethernet/socionext/netsec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) -- 2.9.0