|
@@ -1901,10 +1901,10 @@ static void mvneta_rxq_drop_pkts(struct mvneta_port *pp,
|
|
|
}
|
|
|
|
|
|
/* Main rx processing when using software buffer management */
|
|
|
-static int mvneta_rx_swbm(struct mvneta_port *pp, int rx_todo,
|
|
|
+static int mvneta_rx_swbm(struct napi_struct *napi,
|
|
|
+ struct mvneta_port *pp, int rx_todo,
|
|
|
struct mvneta_rx_queue *rxq)
|
|
|
{
|
|
|
- struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
|
|
|
struct net_device *dev = pp->dev;
|
|
|
int rx_done;
|
|
|
u32 rcvd_pkts = 0;
|
|
@@ -1959,7 +1959,7 @@ err_drop_frame:
|
|
|
|
|
|
skb->protocol = eth_type_trans(skb, dev);
|
|
|
mvneta_rx_csum(pp, rx_status, skb);
|
|
|
- napi_gro_receive(&port->napi, skb);
|
|
|
+ napi_gro_receive(napi, skb);
|
|
|
|
|
|
rcvd_pkts++;
|
|
|
rcvd_bytes += rx_bytes;
|
|
@@ -2001,7 +2001,7 @@ err_drop_frame:
|
|
|
|
|
|
mvneta_rx_csum(pp, rx_status, skb);
|
|
|
|
|
|
- napi_gro_receive(&port->napi, skb);
|
|
|
+ napi_gro_receive(napi, skb);
|
|
|
}
|
|
|
|
|
|
if (rcvd_pkts) {
|
|
@@ -2020,10 +2020,10 @@ err_drop_frame:
|
|
|
}
|
|
|
|
|
|
/* Main rx processing when using hardware buffer management */
|
|
|
-static int mvneta_rx_hwbm(struct mvneta_port *pp, int rx_todo,
|
|
|
+static int mvneta_rx_hwbm(struct napi_struct *napi,
|
|
|
+ struct mvneta_port *pp, int rx_todo,
|
|
|
struct mvneta_rx_queue *rxq)
|
|
|
{
|
|
|
- struct mvneta_pcpu_port *port = this_cpu_ptr(pp->ports);
|
|
|
struct net_device *dev = pp->dev;
|
|
|
int rx_done;
|
|
|
u32 rcvd_pkts = 0;
|
|
@@ -2085,7 +2085,7 @@ err_drop_frame:
|
|
|
|
|
|
skb->protocol = eth_type_trans(skb, dev);
|
|
|
mvneta_rx_csum(pp, rx_status, skb);
|
|
|
- napi_gro_receive(&port->napi, skb);
|
|
|
+ napi_gro_receive(napi, skb);
|
|
|
|
|
|
rcvd_pkts++;
|
|
|
rcvd_bytes += rx_bytes;
|
|
@@ -2129,7 +2129,7 @@ err_drop_frame:
|
|
|
|
|
|
mvneta_rx_csum(pp, rx_status, skb);
|
|
|
|
|
|
- napi_gro_receive(&port->napi, skb);
|
|
|
+ napi_gro_receive(napi, skb);
|
|
|
}
|
|
|
|
|
|
if (rcvd_pkts) {
|
|
@@ -2722,9 +2722,11 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
|
|
|
if (rx_queue) {
|
|
|
rx_queue = rx_queue - 1;
|
|
|
if (pp->bm_priv)
|
|
|
- rx_done = mvneta_rx_hwbm(pp, budget, &pp->rxqs[rx_queue]);
|
|
|
+ rx_done = mvneta_rx_hwbm(napi, pp, budget,
|
|
|
+ &pp->rxqs[rx_queue]);
|
|
|
else
|
|
|
- rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]);
|
|
|
+ rx_done = mvneta_rx_swbm(napi, pp, budget,
|
|
|
+ &pp->rxqs[rx_queue]);
|
|
|
}
|
|
|
|
|
|
if (rx_done < budget) {
|