|
@@ -1287,6 +1287,10 @@ int i40evf_napi_poll(struct napi_struct *napi, int budget)
|
|
|
ring->arm_wb = false;
|
|
|
}
|
|
|
|
|
|
+ /* Handle case where we are called by netpoll with a budget of 0 */
|
|
|
+ if (budget <= 0)
|
|
|
+ goto tx_only;
|
|
|
+
|
|
|
/* We attempt to distribute budget to each Rx queue fairly, but don't
|
|
|
* allow the budget to go below 1 because that would exit polling early.
|
|
|
*/
|
|
@@ -1303,6 +1307,7 @@ int i40evf_napi_poll(struct napi_struct *napi, int budget)
|
|
|
|
|
|
/* If work not completed, return budget and polling will return */
|
|
|
if (!clean_complete) {
|
|
|
+tx_only:
|
|
|
if (arm_wb)
|
|
|
i40evf_force_wb(vsi, q_vector);
|
|
|
return budget;
|