Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/iflib.c
Show First 20 Lines • Show All 2,540 Lines • ▼ Show 20 Lines | |||||
#endif | #endif | ||||
if (rxq->ifr_ctx->ifc_flags & IFC_PREFETCH) | if (rxq->ifr_ctx->ifc_flags & IFC_PREFETCH) | ||||
prefetch_pkts(fl, cidx); | prefetch_pkts(fl, cidx); | ||||
next = (cidx + CACHE_PTR_INCREMENT) & (fl->ifl_size-1); | next = (cidx + CACHE_PTR_INCREMENT) & (fl->ifl_size-1); | ||||
prefetch(&fl->ifl_sds.ifsd_map[next]); | prefetch(&fl->ifl_sds.ifsd_map[next]); | ||||
map = fl->ifl_sds.ifsd_map[cidx]; | map = fl->ifl_sds.ifsd_map[cidx]; | ||||
next = (cidx + CACHE_LINE_SIZE) & (fl->ifl_size-1); | next = (cidx + CACHE_LINE_SIZE) & (fl->ifl_size-1); | ||||
/* not valid assert if bxe really does SGE from non-contiguous elements */ | |||||
MPASS(fl->ifl_cidx == cidx); | |||||
bus_dmamap_sync(fl->ifl_buf_tag, map, BUS_DMASYNC_POSTREAD); | bus_dmamap_sync(fl->ifl_buf_tag, map, BUS_DMASYNC_POSTREAD); | ||||
if (rxq->pfil != NULL && PFIL_HOOKED_IN(rxq->pfil) && pf_rv != NULL && | if (rxq->pfil != NULL && PFIL_HOOKED_IN(rxq->pfil) && pf_rv != NULL && | ||||
irf->irf_len != 0) { | irf->irf_len != 0) { | ||||
payload = *sd->ifsd_cl; | payload = *sd->ifsd_cl; | ||||
payload += ri->iri_pad; | payload += ri->iri_pad; | ||||
len = ri->iri_len - ri->iri_pad; | len = ri->iri_len - ri->iri_pad; | ||||
*pf_rv = pfil_run_hooks(rxq->pfil, payload, ri->iri_ifp, | *pf_rv = pfil_run_hooks(rxq->pfil, payload, ri->iri_ifp, | ||||
▲ Show 20 Lines • Show All 4,313 Lines • Show Last 20 Lines |