diff options
author | Christophe Jaillet <christophe.jaillet@wanadoo.fr> | 2016-10-07 16:58:47 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-10-08 00:04:48 -0400 |
commit | 776482cd8d8af063878ed22a1a0d44e4c6238a94 (patch) | |
tree | 5c3eae9946c74dd3fc456dd965c4b88b42cee8b2 | |
parent | fa6114d4bde70152765ba1c35fed4fcd8481faf6 (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.c | 8 |
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); |
296 | free_tx_bd: | 296 | free_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); |
300 | free_rx_bd: | 300 | free_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); |
304 | free_uccf: | 304 | free_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; |