kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
authorSascha Wildner <saw@online.de>
Thu, 19 Feb 2015 00:16:23 +0000 (01:16 +0100)
committerSascha Wildner <saw@online.de>
Thu, 19 Feb 2015 00:39:08 +0000 (01:39 +0100)
commitb5523eac31a95e6876e05e20e6fe836ec3a45202
treef9a6ac8a32db4aa510bdcc2e4542068568ffbff8
parentfe4eb395d1c2252f95aadbfc4cc1ae753373659a
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.

The main reason is that our having to use the MB_WAIT and MB_DONTWAIT
flags was a recurring issue when porting drivers from FreeBSD because
it tended to get forgotten and the code would compile anyway with the
wrong constants. And since MB_WAIT and MB_DONTWAIT ended up as ocflags
for an objcache_get() or objcache_reclaimlist call (which use M_WAITOK
and M_NOWAIT), it was just one big converting back and forth with some
sanitization in between.

This commit allows M_* again for the mbuf functions and keeps the
sanitizing as it was before: when M_WAITOK is among the passed flags,
objcache functions will be called with M_WAITOK and when it is absent,
they will be called with M_NOWAIT. All other flags are scrubbed by the
MB_OCFLAG() macro which does the same as the former MBTOM().

Approved-by: dillon
257 files changed:
share/man/man9/mbuf.9
sys/bus/firewire/fwohci.c
sys/bus/u4b/net/if_axe.c
sys/bus/u4b/net/if_axge.c
sys/bus/u4b/net/if_urndis.c
sys/bus/u4b/net/usb_ethernet.c
sys/bus/u4b/wlan/if_rum.c
sys/bus/u4b/wlan/if_run.c
sys/bus/u4b/wlan/if_urtwn.c
sys/dev/crypto/hifn/hifn7751.c
sys/dev/crypto/safe/safe.c
sys/dev/crypto/ubsec/ubsec.c
sys/dev/disk/iscsi/initiator/isc_soc.c
sys/dev/misc/musycc/musycc.c
sys/dev/netif/acx/if_acx.c
sys/dev/netif/age/if_age.c
sys/dev/netif/alc/if_alc.c
sys/dev/netif/ale/if_ale.c
sys/dev/netif/an/if_an.c
sys/dev/netif/ar/if_ar.c
sys/dev/netif/ath/ath/if_ath_rx.c
sys/dev/netif/ath/ath/if_ath_rx_edma.c
sys/dev/netif/bce/if_bce.c
sys/dev/netif/bfe/if_bfe.c
sys/dev/netif/bge/if_bge.c
sys/dev/netif/bnx/if_bnx.c
sys/dev/netif/bwi/if_bwi.c
sys/dev/netif/bwn/bwn/if_bwn.c
sys/dev/netif/cs/if_cs.c
sys/dev/netif/dc/if_dc.c
sys/dev/netif/de/if_de.c
sys/dev/netif/ed/if_ed.c
sys/dev/netif/em/if_em.c
sys/dev/netif/emx/if_emx.c
sys/dev/netif/ep/if_ep.c
sys/dev/netif/et/if_et.c
sys/dev/netif/ex/if_ex.c
sys/dev/netif/fe/if_fe.c
sys/dev/netif/fwe/if_fwe.c
sys/dev/netif/fxp/if_fxp.c
sys/dev/netif/igb/if_igb.c
sys/dev/netif/iwi/if_iwi.c
sys/dev/netif/iwl/iwl2100.c
sys/dev/netif/iwn/if_iwn.c
sys/dev/netif/ix/if_ix.c
sys/dev/netif/jme/if_jme.c
sys/dev/netif/lge/if_lge.c
sys/dev/netif/lnc/lance.c
sys/dev/netif/mn/if_mn.c
sys/dev/netif/msk/if_msk.c
sys/dev/netif/mxge/if_mxge.c
sys/dev/netif/my/if_my.c
sys/dev/netif/ndis/if_ndis.c
sys/dev/netif/nfe/if_nfe.c
sys/dev/netif/nge/if_nge.c
sys/dev/netif/oce/oce_if.c
sys/dev/netif/pcn/if_pcn.c
sys/dev/netif/ral/rt2560.c
sys/dev/netif/ral/rt2661.c
sys/dev/netif/ral/rt2860.c
sys/dev/netif/re/if_re.c
sys/dev/netif/rl/if_rl.c
sys/dev/netif/rtw/rtw.c
sys/dev/netif/sbni/if_sbni.c
sys/dev/netif/sbsh/if_sbsh.c
sys/dev/netif/sf/if_sf.c
sys/dev/netif/sis/if_sis.c
sys/dev/netif/sk/if_sk.c
sys/dev/netif/sln/if_sln.c
sys/dev/netif/sn/if_sn.c
sys/dev/netif/sr/if_sr.c
sys/dev/netif/ste/if_ste.c
sys/dev/netif/stge/if_stge.c
sys/dev/netif/ti/if_ti.c
sys/dev/netif/tl/if_tl.c
sys/dev/netif/tx/if_tx.c
sys/dev/netif/txp/if_txp.c
sys/dev/netif/vge/if_vge.c
sys/dev/netif/vr/if_vr.c
sys/dev/netif/vx/if_vx.c
sys/dev/netif/wb/if_wb.c
sys/dev/netif/wi/if_wi.c
sys/dev/netif/wpi/if_wpi.c
sys/dev/netif/xe/if_xe.c
sys/dev/netif/xl/if_xl.c
sys/dev/virtual/virtio/net/if_vtnet.c
sys/dev/virtual/vkernel/net/if_vke.c
sys/emulation/43bsd/43bsd_socket.c
sys/emulation/linux/linux_socket.c
sys/emulation/ndis/kern_ndis.c
sys/kern/libmchain/subr_mchain.c
sys/kern/subr_busdma.c
sys/kern/uipc_mbuf.c
sys/kern/uipc_mbuf2.c
sys/kern/uipc_sockbuf.c
sys/kern/uipc_socket.c
sys/kern/uipc_socket2.c
sys/kern/uipc_syscalls.c
sys/kern/uipc_usrreq.c
sys/net/bpf.c
sys/net/bridge/bridgestp.c
sys/net/bridge/if_bridge.c
sys/net/bsd_comp.c
sys/net/gre/if_gre.c
sys/net/if_ethersubr.c
sys/net/if_loop.c
sys/net/ip6fw/ip6_fw.c
sys/net/ip_mroute/ip_mroute.c
sys/net/ipfw/ip_fw2.c
sys/net/lagg/ieee8023ad_lacp.c
sys/net/netmap/netmap_generic.c
sys/net/pf/pf.c
sys/net/pf/pf_norm.c
sys/net/ppp/if_ppp.c
sys/net/ppp_layer/ppp_deflate.c
sys/net/ppp_layer/ppp_tty.c
sys/net/raw_cb.c
sys/net/raw_usrreq.c
sys/net/route.c
sys/net/rtsock.c
sys/net/sl/if_sl.c
sys/net/sppp/if_spppsubr.c
sys/net/stf/if_stf.c
sys/net/tap/if_tap.c
sys/net/tun/if_tun.c
sys/net/vlan/if_vlan_ether.c
sys/netbt/hci_link.c
sys/netbt/hci_socket.c
sys/netbt/hci_unit.c
sys/netbt/l2cap_signal.c
sys/netbt/l2cap_socket.c
sys/netbt/l2cap_upper.c
sys/netbt/rfcomm_dlc.c
sys/netbt/rfcomm_session.c
sys/netbt/rfcomm_socket.c
sys/netbt/sco_socket.c
sys/netbt/sco_upper.c
sys/netgraph/UI/ng_UI.c
sys/netgraph/bridge/ng_bridge.c
sys/netgraph/cisco/ng_cisco.c
sys/netgraph/frame_relay/ng_frame_relay.c
sys/netgraph/l2tp/ng_l2tp.c
sys/netgraph/lmi/ng_lmi.c
sys/netgraph/ppp/ng_ppp.c
sys/netgraph/pppoe/ng_pppoe.c
sys/netgraph/pptpgre/ng_pptpgre.c
sys/netgraph/rfc1490/ng_rfc1490.c
sys/netgraph/tee/ng_tee.c
sys/netgraph/tty/ng_tty.c
sys/netgraph/vjc/ng_vjc.c
sys/netgraph7/UI/ng_UI.c
sys/netgraph7/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
sys/netgraph7/bluetooth/drivers/h4/ng_h4.c
sys/netgraph7/bluetooth/drivers/ubt/ng_ubt.c
sys/netgraph7/bluetooth/hci/ng_hci_cmds.c
sys/netgraph7/bluetooth/hci/ng_hci_evnt.c
sys/netgraph7/bluetooth/hci/ng_hci_misc.c
sys/netgraph7/bluetooth/hci/ng_hci_ulpi.c
sys/netgraph7/bluetooth/l2cap/ng_l2cap_cmds.h
sys/netgraph7/bluetooth/l2cap/ng_l2cap_evnt.c
sys/netgraph7/bluetooth/l2cap/ng_l2cap_llpi.c
sys/netgraph7/bluetooth/l2cap/ng_l2cap_misc.c
sys/netgraph7/bluetooth/socket/ng_btsocket_hci_raw.c
sys/netgraph7/bluetooth/socket/ng_btsocket_l2cap.c
sys/netgraph7/bluetooth/socket/ng_btsocket_rfcomm.c
sys/netgraph7/bridge/ng_bridge.c
sys/netgraph7/cisco/ng_cisco.c
sys/netgraph7/frame_relay/ng_frame_relay.c
sys/netgraph7/hub/ng_hub.c
sys/netgraph7/iface/ng_iface.c
sys/netgraph7/ksocket/ng_ksocket.c
sys/netgraph7/l2tp/ng_l2tp.c
sys/netgraph7/lmi/ng_lmi.c
sys/netgraph7/mppc/ng_mppc.c
sys/netgraph7/netflow/netflow.c
sys/netgraph7/ng_device.c
sys/netgraph7/ng_gif.c
sys/netgraph7/ng_gif_demux.c
sys/netgraph7/ng_ipfw.c
sys/netgraph7/ng_source.c
sys/netgraph7/ng_tag.c
sys/netgraph7/ng_vlan.c
sys/netgraph7/one2many/ng_one2many.c
sys/netgraph7/ppp/ng_ppp.c
sys/netgraph7/pppoe/ng_pppoe.c
sys/netgraph7/pptpgre/ng_pptpgre.c
sys/netgraph7/rfc1490/ng_rfc1490.c
sys/netgraph7/tee/ng_tee.c
sys/netgraph7/tty/ng_tty.c
sys/netgraph7/vjc/ng_vjc.c
sys/netinet/if_ether.c
sys/netinet/igmp.c
sys/netinet/in_gif.c
sys/netinet/ip_carp.c
sys/netinet/ip_divert.c
sys/netinet/ip_encap.c
sys/netinet/ip_icmp.c
sys/netinet/ip_input.c
sys/netinet/ip_output.c
sys/netinet/raw_ip.c
sys/netinet/tcp_output.c
sys/netinet/tcp_subr.c
sys/netinet/tcp_syncache.c
sys/netinet/udp_usrreq.c
sys/netinet6/ah_core.c
sys/netinet6/ah_input.c
sys/netinet6/ah_output.c
sys/netinet6/esp_core.c
sys/netinet6/esp_input.c
sys/netinet6/esp_output.c
sys/netinet6/frag6.c
sys/netinet6/icmp6.c
sys/netinet6/in6_gif.c
sys/netinet6/ip6_input.c
sys/netinet6/ip6_mroute.c
sys/netinet6/ip6_output.c
sys/netinet6/ipcomp_core.c
sys/netinet6/ipcomp_output.c
sys/netinet6/ipsec.c
sys/netinet6/mld6.c
sys/netinet6/nd6_nbr.c
sys/netinet6/raw_ip6.c
sys/netinet6/udp6_output.c
sys/netproto/802_11/README.DRAGONFLY
sys/netproto/802_11/wlan/ieee80211_dragonfly.c
sys/netproto/802_11/wlan/ieee80211_hostap.c
sys/netproto/802_11/wlan/ieee80211_ht.c
sys/netproto/802_11/wlan/ieee80211_hwmp.c
sys/netproto/802_11/wlan/ieee80211_input.c
sys/netproto/802_11/wlan/ieee80211_mesh.c
sys/netproto/802_11/wlan/ieee80211_output.c
sys/netproto/802_11/wlan/ieee80211_superg.c
sys/netproto/802_11/wlan/ieee80211_wds.c
sys/netproto/802_11/wlan_ccmp/ieee80211_crypto_ccmp.c
sys/netproto/802_11/wlan_tkip/ieee80211_crypto_tkip.c
sys/netproto/802_11/wlan_wep/ieee80211_crypto_wep.c
sys/netproto/ipsec/ipsec_input.c
sys/netproto/ipsec/ipsec_mbuf.c
sys/netproto/ipsec/ipsec_output.c
sys/netproto/ipsec/key.c
sys/netproto/ipsec/keysock.c
sys/netproto/ipsec/xform_ipip.c
sys/netproto/key/key.c
sys/netproto/key/keysock.c
sys/netproto/mpls/mpls_output.c
sys/netproto/smb/smb_iod.c
sys/netproto/smb/smb_rq.c
sys/netproto/smb/smb_trantcp.c
sys/sys/mbuf.h
sys/vfs/nfs/krpc_subr.c
sys/vfs/nfs/nfs_mountrpc.c
sys/vfs/nfs/nfs_serv.c
sys/vfs/nfs/nfs_socket.c
sys/vfs/nfs/nfs_srvcache.c
sys/vfs/nfs/nfs_syscalls.c
sys/vfs/nfs/nfsm_subs.c
tools/tools/netrate/pktgen/pktgen.c