Page MenuHomeFreeBSD

D17868.diff
No OneTemporary

D17868.diff

Index: sys/dev/cxgbe/t4_netmap.c
===================================================================
--- sys/dev/cxgbe/t4_netmap.c
+++ sys/dev/cxgbe/t4_netmap.c
@@ -911,7 +911,8 @@
PNMB(na, slot, &ba);
MPASS(ba != 0);
nm_rxq->fl_desc[fl_pidx] = htobe64(ba | hwidx);
- slot->flags &= ~NS_BUF_CHANGED;
+ if (__predict_false(slot->flags & NS_BUF_CHANGED))
+ slot->flags &= ~NS_BUF_CHANGED;
MPASS(fl_pidx <= nm_rxq->fl_sidx);
}
n -= 8;
Index: sys/dev/netmap/netmap_kern.h
===================================================================
--- sys/dev/netmap/netmap_kern.h
+++ sys/dev/netmap/netmap_kern.h
@@ -1876,14 +1876,16 @@
uint32_t i = slot->buf_idx;
struct lut_entry *lut = na->na_lut.lut;
struct plut_entry *plut = na->na_lut.plut;
- void *ret = (i >= na->na_lut.objtotal) ? lut[0].vaddr : lut[i].vaddr;
+ if (unlikely((i >= na->na_lut.objtotal))) {
+ i = 0;
+ }
#ifdef _WIN32
- *pp = (i >= na->na_lut.objtotal) ? (uint64_t)plut[0].paddr.QuadPart : (uint64_t)plut[i].paddr.QuadPart;
+ *pp = (uint64_t)plut[i].paddr.QuadPart;
#else
- *pp = (i >= na->na_lut.objtotal) ? plut[0].paddr : plut[i].paddr;
+ *pp = plut[i].paddr;
#endif
- return ret;
+ return lut[i].vaddr;
}

File Metadata

Mime Type
text/plain
Expires
Thu, May 28, 11:44 PM (5 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33594629
Default Alt Text
D17868.diff (1 KB)

Event Timeline