base-files: fix some failsafe issues
[openwrt/openwrt.git] / target / linux / mediatek / patches-4.4 / 0084-net-next-mediatek-fix-missing-free-of-scratch-memory.patch
index 452f8d04903201132929d8e6ad2f3c618db3a34d..15d113e8503fcc93f5a8f6e2593ecf20eacb2d2d 100644 (file)
@@ -1,4 +1,4 @@
-From 5207debf8825a8b6f2934b7d39ef76c163dfd794 Mon Sep 17 00:00:00 2001
+From 2d22628561299e1c7d71e16262131127de3c4216 Mon Sep 17 00:00:00 2001
 From: John Crispin <blogic@openwrt.org>
 Date: Sat, 23 Apr 2016 09:18:28 +0200
 Subject: [PATCH 84/91] net-next: mediatek: fix missing free of scratch memory
@@ -12,11 +12,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  drivers/net/ethernet/mediatek/mtk_eth_soc.h |    2 ++
  2 files changed, 15 insertions(+), 5 deletions(-)
 
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-index 37e9260..6896d17 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -469,14 +469,14 @@ static inline void mtk_rx_get_desc(struct mtk_rx_dma *rxd,
+@@ -469,14 +469,14 @@ static inline void mtk_rx_get_desc(struc
  /* the qdma core needs scratch memory to be setup */
  static int mtk_init_fq_dma(struct mtk_eth *eth)
  {
@@ -33,7 +31,7 @@ index 37e9260..6896d17 100644
                                               GFP_ATOMIC | __GFP_ZERO);
        if (unlikely(!eth->scratch_ring))
                return -ENOMEM;
-@@ -493,19 +493,19 @@ static int mtk_init_fq_dma(struct mtk_eth *eth)
+@@ -493,19 +493,19 @@ static int mtk_init_fq_dma(struct mtk_et
                return -ENOMEM;
  
        memset(eth->scratch_ring, 0x0, sizeof(struct mtk_tx_dma) * cnt);
@@ -56,7 +54,7 @@ index 37e9260..6896d17 100644
        mtk_w32(eth, phy_ring_tail, MTK_QDMA_FQ_TAIL);
        mtk_w32(eth, (cnt << 16) | cnt, MTK_QDMA_FQ_CNT);
        mtk_w32(eth, MTK_QDMA_PAGE_SIZE << 16, MTK_QDMA_FQ_BLEN);
-@@ -1203,6 +1203,14 @@ static void mtk_dma_free(struct mtk_eth *eth)
+@@ -1205,6 +1205,14 @@ static void mtk_dma_free(struct mtk_eth
        for (i = 0; i < MTK_MAC_COUNT; i++)
                if (eth->netdev[i])
                        netdev_reset_queue(eth->netdev[i]);
@@ -71,8 +69,6 @@ index 37e9260..6896d17 100644
        mtk_tx_clean(eth);
        mtk_rx_clean(eth);
        kfree(eth->scratch_head);
-diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-index eed626d..57f7e8a 100644
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 @@ -357,6 +357,7 @@ struct mtk_rx_ring {
@@ -91,6 +87,3 @@ index eed626d..57f7e8a 100644
        void                            *scratch_head;
        struct clk                      *clk_ethif;
        struct clk                      *clk_esw;
--- 
-1.7.10.4
-