aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wan/fsl_ucc_hdlc.c
diff options
context:
space:
mode:
authorHolger Brunck <holger.brunck@keymile.com>2017-05-17 11:24:35 -0400
committerDavid S. Miller <davem@davemloft.net>2017-05-18 10:28:38 -0400
commit5b8aad93c52bdda6a731cab8497998cfa0f2df07 (patch)
tree3e502105c01c399d928becab0497e9b74e9941ff /drivers/net/wan/fsl_ucc_hdlc.c
parent10515db509780224bf48ea189cff989ebd01dd0e (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.c12
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);
295free_tx_bd: 295free_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);
299free_rx_bd: 299free_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);
303free_uccf: 303free_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;