hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/ethernet/qlogic/qede/qede_fp.c
....@@ -1456,7 +1456,12 @@
14561456 rx_work_done = (likely(fp->type & QEDE_FASTPATH_RX) &&
14571457 qede_has_rx_work(fp->rxq)) ?
14581458 qede_rx_int(fp, budget) : 0;
1459
- if (rx_work_done < budget) {
1459
+
1460
+ if (fp->xdp_xmit & QEDE_XDP_REDIRECT)
1461
+ xdp_do_flush();
1462
+
1463
+ /* Handle case where we are called by netpoll with a budget of 0 */
1464
+ if (rx_work_done < budget || !budget) {
14601465 if (!qede_poll_is_more_work(fp)) {
14611466 napi_complete_done(napi, rx_work_done);
14621467
....@@ -1473,9 +1478,6 @@
14731478 fp->xdp_tx->tx_db.data.bd_prod = cpu_to_le16(xdp_prod);
14741479 qede_update_tx_producer(fp->xdp_tx);
14751480 }
1476
-
1477
- if (fp->xdp_xmit & QEDE_XDP_REDIRECT)
1478
- xdp_do_flush_map();
14791481
14801482 return rx_work_done;
14811483 }