lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 13 Jan 2018 21:32:27 +0000
From:   Ard Biesheuvel <ard.biesheuvel@...aro.org>
To:     Arnd Bergmann <arnd@...db.de>
Cc:     Jassi Brar <jaswinder.singh@...aro.org>,
        "David S. Miller" <davem@...emloft.net>,
        Wei Yongjun <weiyongjun1@...wei.com>,
        "<netdev@...r.kernel.org>" <netdev@...r.kernel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] [net-next] net: netsec: use dma_addr_t for storing dma address

On 13 January 2018 at 21:13, Arnd Bergmann <arnd@...db.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@...db.de>

Acked-by: Ard Biesheuvel <ard.biesheuvel@...aro.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
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ