| 1426 | } |
| 1427 | |
| 1428 | static __inline struct mbuf * |
| 1429 | m_free(struct mbuf *m) |
| 1430 | { |
| 1431 | struct mbuf *n = m->m_next; |
| 1432 | |
| 1433 | MBUF_PROBE1(m__free, m); |
| 1434 | if ((m->m_flags & (M_PKTHDR|M_NOFREE)) == (M_PKTHDR|M_NOFREE)) |
| 1435 | m_tag_delete_chain(m, NULL); |
| 1436 | if (m->m_flags & M_PKTHDR && m->m_pkthdr.csum_flags & CSUM_SND_TAG) |
| 1437 | m_snd_tag_rele(m->m_pkthdr.snd_tag); |
| 1438 | if (m->m_flags & M_EXTPG) |
| 1439 | mb_free_extpg(m); |
| 1440 | else if (m->m_flags & M_EXT) |
| 1441 | mb_free_ext(m); |
| 1442 | else if ((m->m_flags & M_NOFREE) == 0) |
| 1443 | uma_zfree(zone_mbuf, m); |
| 1444 | return (n); |
| 1445 | } |
| 1446 | |
| 1447 | static __inline int |
| 1448 | rt_m_getfib(struct mbuf *m) |
no test coverage detected