Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34447271 authored by Daode Huang's avatar Daode Huang Committed by Doug Ledford
Browse files

net: hns: delete repeat read fbd num after while



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: default avatarDaode Huang <huangdaode@hisilicon.com>
Reviewed-by: default avatarYisen Zhuang <yisen.zhuang@huawei.com>
Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent cee5add4
Loading
Loading
Loading
Loading
+2 −13
Original line number Diff line number Diff line
@@ -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 @@ static int hns_nic_rx_poll_one(struct hns_nic_ring_data *ring_data,
		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)