MCPcopy Create free account
hub / github.com/F-Stack/f-stack / iflib_remove_mbuf

Function iflib_remove_mbuf

freebsd/net/iflib.c:3303–3323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3301 * m_defrag'd mbufs
3302 */
3303static __noinline struct mbuf *
3304iflib_remove_mbuf(iflib_txq_t txq)
3305{
3306 int ntxd, pidx;
3307 struct mbuf *m, **ifsd_m;
3308
3309 ifsd_m = txq->ift_sds.ifsd_m;
3310 ntxd = txq->ift_size;
3311 pidx = txq->ift_pidx & (ntxd - 1);
3312 ifsd_m = txq->ift_sds.ifsd_m;
3313 m = ifsd_m[pidx];
3314 ifsd_m[pidx] = NULL;
3315 bus_dmamap_unload(txq->ift_buf_tag, txq->ift_sds.ifsd_map[pidx]);
3316 if (txq->ift_sds.ifsd_tso_map != NULL)
3317 bus_dmamap_unload(txq->ift_tso_buf_tag,
3318 txq->ift_sds.ifsd_tso_map[pidx]);
3319#if MEMORY_LOGGING
3320 txq->ift_dequeued++;
3321#endif
3322 return (m);
3323}
3324
3325static inline caddr_t
3326calc_next_txd(iflib_txq_t txq, int cidx, uint8_t qid)

Callers 1

iflib_encapFunction · 0.85

Calls 1

bus_dmamap_unloadFunction · 0.50

Tested by

no test coverage detected