kernel: bump 4.9 to 4.9.192
[openwrt/openwrt.git] / target / linux / generic / backport-4.9 / 090-net-generalize-napi_complete_done.patch
index dc409ea0695dfb68ee59101890e07019636662da..b9f018db9d8c4793041ee6d9c808d273cb6024d6 100644 (file)
@@ -388,7 +388,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                                        BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-@@ -3236,7 +3236,7 @@ static int bnx2x_poll(struct napi_struct
+@@ -3240,7 +3240,7 @@ static int bnx2x_poll(struct napi_struct
                 * has been updated when NAPI was scheduled.
                 */
                if (IS_FCOE_FP(fp)) {
@@ -399,7 +399,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        /* bnx2x_has_rx_work() reads the status block,
 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
 +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
-@@ -1781,7 +1781,7 @@ static int bnxt_poll_nitroa0(struct napi
+@@ -1799,7 +1799,7 @@ static int bnxt_poll_nitroa0(struct napi
        }
  
        if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) {
@@ -476,7 +476,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        octeon_mgmt_update_rx_stats(netdev);
 --- a/drivers/net/ethernet/cavium/thunder/nicvf_main.c
 +++ b/drivers/net/ethernet/cavium/thunder/nicvf_main.c
-@@ -737,7 +737,7 @@ static int nicvf_poll(struct napi_struct
+@@ -748,7 +748,7 @@ static int nicvf_poll(struct napi_struct
  
        if (work_done < budget) {
                /* Slow packet rate, exit polling */
@@ -668,15 +668,15 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/ethernet/hisilicon/hip04_eth.c
 +++ b/drivers/net/ethernet/hisilicon/hip04_eth.c
-@@ -555,7 +555,7 @@ refill:
+@@ -559,7 +559,7 @@ refill:
                priv->reg_inten |= RCV_INT;
                writel_relaxed(priv->reg_inten, priv->base + PPE_INTEN);
        }
 -      napi_complete(napi);
 +      napi_complete_done(napi, rx);
  done:
-       /* clean up tx descriptors and start a new timer if necessary */
-       tx_remaining = hip04_tx_reclaim(ndev, false);
+       /* start a new timer if necessary */
+       if (rx < budget && tx_remaining)
 --- a/drivers/net/ethernet/hisilicon/hisi_femac.c
 +++ b/drivers/net/ethernet/hisilicon/hisi_femac.c
 @@ -330,7 +330,7 @@ static int hisi_femac_poll(struct napi_s
@@ -701,7 +701,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/ethernet/ibm/ibmveth.c
 +++ b/drivers/net/ethernet/ibm/ibmveth.c
-@@ -1324,7 +1324,7 @@ restart_poll:
+@@ -1323,7 +1323,7 @@ static int ibmveth_poll(struct napi_stru
        ibmveth_replenish_task(adapter);
  
        if (frames_processed < budget) {
@@ -819,7 +819,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 --- a/drivers/net/ethernet/marvell/mvpp2.c
 +++ b/drivers/net/ethernet/marvell/mvpp2.c
-@@ -5406,7 +5406,7 @@ static int mvpp2_poll(struct napi_struct
+@@ -5404,7 +5404,7 @@ static int mvpp2_poll(struct napi_struct
  
        if (budget > 0) {
                cause_rx = 0;
@@ -1095,7 +1095,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -2702,7 +2702,7 @@ static int stmmac_poll(struct napi_struc
+@@ -2700,7 +2700,7 @@ static int stmmac_poll(struct napi_struc
  
        work_done = stmmac_rx(priv, budget);
        if (work_done < budget) {
@@ -1238,7 +1238,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
 --- a/drivers/net/ethernet/tundra/tsi108_eth.c
 +++ b/drivers/net/ethernet/tundra/tsi108_eth.c
-@@ -887,7 +887,7 @@ static int tsi108_poll(struct napi_struc
+@@ -888,7 +888,7 @@ static int tsi108_poll(struct napi_struc
  
        if (num_received < budget) {
                data->rxpending = 0;