aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Jaillet <christophe.jaillet@wanadoo.fr>2016-10-07 16:58:47 -0400
committerDavid S. Miller <davem@davemloft.net>2016-10-08 00:04:48 -0400
commit776482cd8d8af063878ed22a1a0d44e4c6238a94 (patch)
tree5c3eae9946c74dd3fc456dd965c4b88b42cee8b2
parentfa6114d4bde70152765ba1c35fed4fcd8481faf6 (diff)
wan/fsl_ucc_hdlc: Fix size used in dma_free_coherent()
Size used with 'dma_alloc_coherent()' and 'dma_free_coherent()' should be consistent. Here, the size of a pointer is used in dma_alloc... and the size of the pointed structure is used in dma_free... This has been spotted with coccinelle, using the following script: //////////////////// @r@ expression x0, x1, y0, y1, z0, z1, t0, t1, ret; @@ * ret = dma_alloc_coherent(x0, y0, z0, t0); ... * dma_free_coherent(x1, y1, ret, t1); @script:python@ y0 << r.y0; y1 << r.y1; @@ if y1.find(y0) == -1: print "WARNING: sizes look different: '%s' vs '%s'" % (y0, y1) //////////////////// Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/wan/fsl_ucc_hdlc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c
index 5fbf83d5aa57..65647533b401 100644
--- a/drivers/net/wan/fsl_ucc_hdlc.c
+++ b/drivers/net/wan/fsl_ucc_hdlc.c
@@ -295,11 +295,11 @@ free_ucc_pram:
295 qe_muram_free(priv->ucc_pram_offset); 295 qe_muram_free(priv->ucc_pram_offset);
296free_tx_bd: 296free_tx_bd:
297 dma_free_coherent(priv->dev, 297 dma_free_coherent(priv->dev,
298 TX_BD_RING_LEN * sizeof(struct qe_bd), 298 TX_BD_RING_LEN * sizeof(struct qe_bd *),
299 priv->tx_bd_base, priv->dma_tx_bd); 299 priv->tx_bd_base, priv->dma_tx_bd);
300free_rx_bd: 300free_rx_bd:
301 dma_free_coherent(priv->dev, 301 dma_free_coherent(priv->dev,
302 RX_BD_RING_LEN * sizeof(struct qe_bd), 302 RX_BD_RING_LEN * sizeof(struct qe_bd *),
303 priv->rx_bd_base, priv->dma_rx_bd); 303 priv->rx_bd_base, priv->dma_rx_bd);
304free_uccf: 304free_uccf:
305 ucc_fast_free(priv->uccf); 305 ucc_fast_free(priv->uccf);
@@ -688,7 +688,7 @@ static void uhdlc_memclean(struct ucc_hdlc_private *priv)
688 688
689 if (priv->rx_bd_base) { 689 if (priv->rx_bd_base) {
690 dma_free_coherent(priv->dev, 690 dma_free_coherent(priv->dev,
691 RX_BD_RING_LEN * sizeof(struct qe_bd), 691 RX_BD_RING_LEN * sizeof(struct qe_bd *),
692 priv->rx_bd_base, priv->dma_rx_bd); 692 priv->rx_bd_base, priv->dma_rx_bd);
693 693
694 priv->rx_bd_base = NULL; 694 priv->rx_bd_base = NULL;
@@ -697,7 +697,7 @@ static void uhdlc_memclean(struct ucc_hdlc_private *priv)
697 697
698 if (priv->tx_bd_base) { 698 if (priv->tx_bd_base) {
699 dma_free_coherent(priv->dev, 699 dma_free_coherent(priv->dev,
700 TX_BD_RING_LEN * sizeof(struct qe_bd), 700 TX_BD_RING_LEN * sizeof(struct qe_bd *),
701 priv->tx_bd_base, priv->dma_tx_bd); 701 priv->tx_bd_base, priv->dma_tx_bd);
702 702
703 priv->tx_bd_base = NULL; 703 priv->tx_bd_base = NULL;