Loading drivers/net/niu.c +7 −5 Original line number Original line Diff line number Diff line Loading @@ -3441,7 +3441,8 @@ static int niu_rx_pkt_ignore(struct niu *np, struct rx_ring_info *rp) return num_rcr; return num_rcr; } } static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp) static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np, struct rx_ring_info *rp) { { unsigned int index = rp->rcr_index; unsigned int index = rp->rcr_index; struct sk_buff *skb; struct sk_buff *skb; Loading Loading @@ -3518,7 +3519,7 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp) skb->protocol = eth_type_trans(skb, np->dev); skb->protocol = eth_type_trans(skb, np->dev); skb_record_rx_queue(skb, rp->rx_channel); skb_record_rx_queue(skb, rp->rx_channel); netif_receive_skb(skb); napi_gro_receive(napi, skb); return num_rcr; return num_rcr; } } Loading Loading @@ -3706,7 +3707,8 @@ static inline void niu_sync_rx_discard_stats(struct niu *np, } } } } static int niu_rx_work(struct niu *np, struct rx_ring_info *rp, int budget) static int niu_rx_work(struct napi_struct *napi, struct niu *np, struct rx_ring_info *rp, int budget) { { int qlen, rcr_done = 0, work_done = 0; int qlen, rcr_done = 0, work_done = 0; struct rxdma_mailbox *mbox = rp->mbox; struct rxdma_mailbox *mbox = rp->mbox; Loading @@ -3728,7 +3730,7 @@ static int niu_rx_work(struct niu *np, struct rx_ring_info *rp, int budget) rcr_done = work_done = 0; rcr_done = work_done = 0; qlen = min(qlen, budget); qlen = min(qlen, budget); while (work_done < qlen) { while (work_done < qlen) { rcr_done += niu_process_rx_pkt(np, rp); rcr_done += niu_process_rx_pkt(napi, np, rp); work_done++; work_done++; } } Loading Loading @@ -3776,7 +3778,7 @@ static int niu_poll_core(struct niu *np, struct niu_ldg *lp, int budget) if (rx_vec & (1 << rp->rx_channel)) { if (rx_vec & (1 << rp->rx_channel)) { int this_work_done; int this_work_done; this_work_done = niu_rx_work(np, rp, this_work_done = niu_rx_work(&lp->napi, np, rp, budget); budget); budget -= this_work_done; budget -= this_work_done; Loading Loading
drivers/net/niu.c +7 −5 Original line number Original line Diff line number Diff line Loading @@ -3441,7 +3441,8 @@ static int niu_rx_pkt_ignore(struct niu *np, struct rx_ring_info *rp) return num_rcr; return num_rcr; } } static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp) static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np, struct rx_ring_info *rp) { { unsigned int index = rp->rcr_index; unsigned int index = rp->rcr_index; struct sk_buff *skb; struct sk_buff *skb; Loading Loading @@ -3518,7 +3519,7 @@ static int niu_process_rx_pkt(struct niu *np, struct rx_ring_info *rp) skb->protocol = eth_type_trans(skb, np->dev); skb->protocol = eth_type_trans(skb, np->dev); skb_record_rx_queue(skb, rp->rx_channel); skb_record_rx_queue(skb, rp->rx_channel); netif_receive_skb(skb); napi_gro_receive(napi, skb); return num_rcr; return num_rcr; } } Loading Loading @@ -3706,7 +3707,8 @@ static inline void niu_sync_rx_discard_stats(struct niu *np, } } } } static int niu_rx_work(struct niu *np, struct rx_ring_info *rp, int budget) static int niu_rx_work(struct napi_struct *napi, struct niu *np, struct rx_ring_info *rp, int budget) { { int qlen, rcr_done = 0, work_done = 0; int qlen, rcr_done = 0, work_done = 0; struct rxdma_mailbox *mbox = rp->mbox; struct rxdma_mailbox *mbox = rp->mbox; Loading @@ -3728,7 +3730,7 @@ static int niu_rx_work(struct niu *np, struct rx_ring_info *rp, int budget) rcr_done = work_done = 0; rcr_done = work_done = 0; qlen = min(qlen, budget); qlen = min(qlen, budget); while (work_done < qlen) { while (work_done < qlen) { rcr_done += niu_process_rx_pkt(np, rp); rcr_done += niu_process_rx_pkt(napi, np, rp); work_done++; work_done++; } } Loading Loading @@ -3776,7 +3778,7 @@ static int niu_poll_core(struct niu *np, struct niu_ldg *lp, int budget) if (rx_vec & (1 << rp->rx_channel)) { if (rx_vec & (1 << rp->rx_channel)) { int this_work_done; int this_work_done; this_work_done = niu_rx_work(np, rp, this_work_done = niu_rx_work(&lp->napi, np, rp, budget); budget); budget -= this_work_done; budget -= this_work_done; Loading