diff options
author | Holger Brunck <holger.brunck@keymile.com> | 2017-05-17 11:24:35 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-18 10:28:38 -0400 |
commit | 5b8aad93c52bdda6a731cab8497998cfa0f2df07 (patch) | |
tree | 3e502105c01c399d928becab0497e9b74e9941ff /drivers/net/wan/fsl_ucc_hdlc.c | |
parent | 10515db509780224bf48ea189cff989ebd01dd0e (diff) |
net/wan/fsl_ucc_hdlc: fix incorrect memory allocation
We need space for the struct qe_bd and not for a pointer to this struct.
Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Cc: Zhao Qiang <qiang.zhao@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wan/fsl_ucc_hdlc.c')
-rw-r--r-- | drivers/net/wan/fsl_ucc_hdlc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 1a60897767d9..49b91b2c113c 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c | |||
@@ -136,7 +136,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) | |||
136 | priv->tx_ring_size = TX_BD_RING_LEN; | 136 | priv->tx_ring_size = TX_BD_RING_LEN; |
137 | /* Alloc Rx BD */ | 137 | /* Alloc Rx BD */ |
138 | priv->rx_bd_base = dma_alloc_coherent(priv->dev, | 138 | priv->rx_bd_base = dma_alloc_coherent(priv->dev, |
139 | RX_BD_RING_LEN * sizeof(struct qe_bd *), | 139 | RX_BD_RING_LEN * sizeof(struct qe_bd), |
140 | &priv->dma_rx_bd, GFP_KERNEL); | 140 | &priv->dma_rx_bd, GFP_KERNEL); |
141 | 141 | ||
142 | if (!priv->rx_bd_base) { | 142 | if (!priv->rx_bd_base) { |
@@ -147,7 +147,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) | |||
147 | 147 | ||
148 | /* Alloc Tx BD */ | 148 | /* Alloc Tx BD */ |
149 | priv->tx_bd_base = dma_alloc_coherent(priv->dev, | 149 | priv->tx_bd_base = dma_alloc_coherent(priv->dev, |
150 | TX_BD_RING_LEN * sizeof(struct qe_bd *), | 150 | TX_BD_RING_LEN * sizeof(struct qe_bd), |
151 | &priv->dma_tx_bd, GFP_KERNEL); | 151 | &priv->dma_tx_bd, GFP_KERNEL); |
152 | 152 | ||
153 | if (!priv->tx_bd_base) { | 153 | if (!priv->tx_bd_base) { |
@@ -294,11 +294,11 @@ free_ucc_pram: | |||
294 | qe_muram_free(priv->ucc_pram_offset); | 294 | qe_muram_free(priv->ucc_pram_offset); |
295 | free_tx_bd: | 295 | free_tx_bd: |
296 | dma_free_coherent(priv->dev, | 296 | dma_free_coherent(priv->dev, |
297 | TX_BD_RING_LEN * sizeof(struct qe_bd *), | 297 | TX_BD_RING_LEN * sizeof(struct qe_bd), |
298 | priv->tx_bd_base, priv->dma_tx_bd); | 298 | priv->tx_bd_base, priv->dma_tx_bd); |
299 | free_rx_bd: | 299 | free_rx_bd: |
300 | dma_free_coherent(priv->dev, | 300 | dma_free_coherent(priv->dev, |
301 | RX_BD_RING_LEN * sizeof(struct qe_bd *), | 301 | RX_BD_RING_LEN * sizeof(struct qe_bd), |
302 | priv->rx_bd_base, priv->dma_rx_bd); | 302 | priv->rx_bd_base, priv->dma_rx_bd); |
303 | free_uccf: | 303 | free_uccf: |
304 | ucc_fast_free(priv->uccf); | 304 | ucc_fast_free(priv->uccf); |
@@ -656,7 +656,7 @@ static void uhdlc_memclean(struct ucc_hdlc_private *priv) | |||
656 | 656 | ||
657 | if (priv->rx_bd_base) { | 657 | if (priv->rx_bd_base) { |
658 | dma_free_coherent(priv->dev, | 658 | dma_free_coherent(priv->dev, |
659 | RX_BD_RING_LEN * sizeof(struct qe_bd *), | 659 | RX_BD_RING_LEN * sizeof(struct qe_bd), |
660 | priv->rx_bd_base, priv->dma_rx_bd); | 660 | priv->rx_bd_base, priv->dma_rx_bd); |
661 | 661 | ||
662 | priv->rx_bd_base = NULL; | 662 | priv->rx_bd_base = NULL; |
@@ -665,7 +665,7 @@ static void uhdlc_memclean(struct ucc_hdlc_private *priv) | |||
665 | 665 | ||
666 | if (priv->tx_bd_base) { | 666 | if (priv->tx_bd_base) { |
667 | dma_free_coherent(priv->dev, | 667 | dma_free_coherent(priv->dev, |
668 | TX_BD_RING_LEN * sizeof(struct qe_bd *), | 668 | TX_BD_RING_LEN * sizeof(struct qe_bd), |
669 | priv->tx_bd_base, priv->dma_tx_bd); | 669 | priv->tx_bd_base, priv->dma_tx_bd); |
670 | 670 | ||
671 | priv->tx_bd_base = NULL; | 671 | priv->tx_bd_base = NULL; |