We have a plethora of mb_unmapped_to_ext() calls in the network stack to
work around the fact that in_cksum() doesn't work with unmapped mbufs.
However, m_apply() now works on unmapped mbufs, so we can implement
in_cksum_skip() in a way that doesn't require the mbuf to be mapped.
TODO:
- Make in_cksum_skip() MI, there is nothing machine dependent about traversing an mbuf chain. - Make m_apply() handle platforms without a direct map. sendfile may use M_EXTPG mbufs even on such platforms. We can make a CPU-private mapping using sfbufs. Though, I wonder about the utility of using unmapped mbufs on such platforms, maybe it should just be disabled. Much like rpctls_getinfo() bails if PMAP_HAS_DMAP == 0.