net: hns: delete repeat read fbd num after while
authorDaode Huang <huangdaode@hisilicon.com>
Thu, 29 Sep 2016 17:09:12 +0000 (18:09 +0100)
committerDoug Ledford <dledford@redhat.com>
Mon, 3 Oct 2016 15:40:57 +0000 (11:40 -0400)
Because we handle the received packets after napi, so delete the checking
before submitting. It delete the code of read the fbd number register,
which reduces the cpu usages while receiving packets

Signed-off-by: Daode Huang <huangdaode@hisilicon.com>
Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/net/ethernet/hisilicon/hns/hns_enet.c

index e6bfc51f80225fc7792ba29f5270866feea1d93c..09ed237f4b4c7c72a6fa7a110d39dafa3bfa1810 100644 (file)
@@ -760,7 +760,7 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 {
        struct hnae_ring *ring = ring_data->ring;
        struct sk_buff *skb;
-       int num, bnum, ex_num;
+       int num, bnum;
 #define RCB_NOF_ALLOC_RX_BUFF_ONCE 16
        int recv_pkts, recv_bds, clean_count, err;
        int unused_count = hns_desc_unused(ring);
@@ -770,7 +770,7 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
 
        recv_pkts = 0, recv_bds = 0, clean_count = 0;
        num -= unused_count;
-recv:
+
        while (recv_pkts < budget && recv_bds < num) {
                /* reuse or realloc buffers */
                if (clean_count + unused_count >= RCB_NOF_ALLOC_RX_BUFF_ONCE) {
@@ -798,17 +798,6 @@ recv:
                recv_pkts++;
        }
 
-       /* make all data has been write before submit */
-       if (recv_pkts < budget) {
-               ex_num = readl_relaxed(ring->io_base + RCB_REG_FBDNUM);
-               ex_num -= unused_count;
-               if (ex_num > clean_count) {
-                       num += ex_num - clean_count;
-                       rmb(); /*complete read rx ring bd number*/
-                       goto recv;
-               }
-       }
-
 out:
        /* make all data has been write before submit */
        if (clean_count + unused_count > 0)