Page MenuHomeFreeBSD

D25167.id72875.diff
No OneTemporary

D25167.id72875.diff

Index: head/sys/net/iflib.c
===================================================================
--- head/sys/net/iflib.c
+++ head/sys/net/iflib.c
@@ -3790,6 +3790,10 @@
if_ctx_t ctx = rxq->ifr_ctx;
uint8_t more;
uint16_t budget;
+#ifdef DEV_NETMAP
+ u_int work = 0;
+ int nmirq;
+#endif
#ifdef IFLIB_DIAGNOSTICS
rxq->ifr_cpu_exec_count[curcpu]++;
@@ -3798,12 +3802,10 @@
if (__predict_false(!(if_getdrvflags(ctx->ifc_ifp) & IFF_DRV_RUNNING)))
return;
#ifdef DEV_NETMAP
- if (if_getcapenable(ctx->ifc_ifp) & IFCAP_NETMAP) {
- u_int work = 0;
- if (netmap_rx_irq(ctx->ifc_ifp, rxq->ifr_id, &work)) {
- more = 0;
- goto skip_rxeof;
- }
+ nmirq = netmap_rx_irq(ctx->ifc_ifp, rxq->ifr_id, &work);
+ if (nmirq != NM_IRQ_PASS) {
+ more = (nmirq == NM_IRQ_RESCHED) ? IFLIB_RXEOF_MORE : 0;
+ goto skip_rxeof;
}
#endif
budget = ctx->ifc_sysctl_rx_budget;

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 1:32 AM (4 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28521561
Default Alt Text
D25167.id72875.diff (876 B)

Event Timeline