From: Sepherosa Ziehau Date: Mon, 7 Aug 2017 09:43:54 +0000 (+0800) Subject: netisr: Simplify assertion related bits X-Git-Tag: v5.1.0~263 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/5204e13c7364ef9281dc49f18c8b4680ac99eb8d netisr: Simplify assertion related bits --- diff --git a/sys/net/altq/altq_rmclass.c b/sys/net/altq/altq_rmclass.c index 71c9557b5c..953bfefac7 100644 --- a/sys/net/altq/altq_rmclass.c +++ b/sys/net/altq/altq_rmclass.c @@ -1561,7 +1561,7 @@ rmc_restart_dispatch(netmsg_t nmsg) struct ifaltq_subque *ifsq = &ifd->ifq_->altq_subq[ALTQ_SUBQ_INDEX_DEFAULT]; - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ diff --git a/sys/net/altq/altq_subr.c b/sys/net/altq/altq_subr.c index cade087630..00381c0607 100644 --- a/sys/net/altq/altq_subr.c +++ b/sys/net/altq/altq_subr.c @@ -351,7 +351,7 @@ tbr_timeout_dispatch(netmsg_t nmsg) const struct ifnet_array *arr; int active, i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ diff --git a/sys/net/bridge/if_bridge.c b/sys/net/bridge/if_bridge.c index 5bb9de4da4..2f2c5184ee 100644 --- a/sys/net/bridge/if_bridge.c +++ b/sys/net/bridge/if_bridge.c @@ -2103,7 +2103,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m) int alt_priority; ASSERT_IFNET_NOT_SERIALIZED_ALL(ifp); - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); mbuftrackid(m, 65); /* @@ -2301,7 +2301,7 @@ bridge_start(struct ifnet *ifp, struct ifaltq_subque *ifsq) ASSERT_ALTQ_SQ_DEFAULT(ifp, ifsq); ASSERT_ALTQ_SQ_SERIALIZED_HW(ifsq); - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); ifsq_set_oactive(ifsq); for (;;) { @@ -2530,7 +2530,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) struct mbuf *mc, *mc2; ASSERT_IFNET_NOT_SERIALIZED_ALL(ifp); - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); mbuftrackid(m, 67); /* diff --git a/sys/net/gif/if_gif.c b/sys/net/gif/if_gif.c index 7ffa9ccc81..0ec9357540 100644 --- a/sys/net/gif/if_gif.c +++ b/sys/net/gif/if_gif.c @@ -407,7 +407,7 @@ gif_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct ifaltq_subque *ifsq = ifq_get_subq_default(&ifp->if_snd); int error; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); ifsq_serialize_hw(ifsq); error = gif_output_serialized(ifp, m, dst, rt); diff --git a/sys/net/gre/if_gre.c b/sys/net/gre/if_gre.c index 89ff95a639..2ba25a3ced 100644 --- a/sys/net/gre/if_gre.c +++ b/sys/net/gre/if_gre.c @@ -254,7 +254,7 @@ gre_output_serialized(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct route *ro; struct sockaddr_in *ro_dst; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); /* * gre may cause infinite recursion calls when misconfigured. @@ -691,7 +691,7 @@ gre_compute_route(struct gre_softc *sc, struct route *ro) #endif u_int32_t a, b, c; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); KASSERT(ro == &sc->route_pcpu[mycpuid], ("route mismatch")); KASSERT(ro->ro_rt == NULL, ("rtentry not freed")); @@ -761,7 +761,7 @@ gre_check_route_handler(netmsg_t msg) struct route *ro; int error; - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; ro = &sc->route_pcpu[mycpuid]; if (ro->ro_rt != NULL) { diff --git a/sys/net/if.c b/sys/net/if.c index 761411c2f8..a4e767a82e 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -745,11 +745,10 @@ if_attachdomain1(struct ifnet *ifp) static void if_purgeaddrs_nolink_dispatch(netmsg_t nmsg) { - struct lwkt_msg *lmsg = &nmsg->lmsg; - struct ifnet *ifp = lmsg->u.ms_resultp; + struct ifnet *ifp = nmsg->lmsg.u.ms_resultp; struct ifaddr_container *ifac, *next; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* * The ifaddr processing in the following loop will block, @@ -831,21 +830,18 @@ if_purgeaddrs_nolink_dispatch(netmsg_t nmsg) ifa_destroy(ifa); } - lwkt_replymsg(lmsg, 0); + netisr_replymsg(&nmsg->base, 0); } void if_purgeaddrs_nolink(struct ifnet *ifp) { struct netmsg_base nmsg; - struct lwkt_msg *lmsg = &nmsg.lmsg; - - ASSERT_CANDOMSG_NETISR0(curthread); netmsg_init(&nmsg, NULL, &curthread->td_msgport, 0, if_purgeaddrs_nolink_dispatch); - lmsg->u.ms_resultp = ifp; - lwkt_domsg(netisr_cpuport(0), lmsg, 0); + nmsg.lmsg.u.ms_resultp = ifp; + netisr_domsg(&nmsg, 0); } static void @@ -1578,7 +1574,7 @@ if_unroute_dispatch(netmsg_t nmsg) ifq_purge_all(&ifp->if_snd); rt_ifmsg(ifp); - lwkt_replymsg(&nmsg->lmsg, 0); + netisr_replymsg(&nmsg->base, 0); } void @@ -1586,14 +1582,12 @@ if_unroute(struct ifnet *ifp, int flag, int fam) { struct netmsg_ifroute msg; - ASSERT_CANDOMSG_NETISR0(curthread); - netmsg_init(&msg.base, NULL, &curthread->td_msgport, 0, if_unroute_dispatch); msg.ifp = ifp; msg.flag = flag; msg.fam = fam; - lwkt_domsg(netisr_cpuport(0), &msg.base.lmsg, 0); + netisr_domsg(&msg.base, 0); } /* @@ -1631,7 +1625,7 @@ if_route_dispatch(netmsg_t nmsg) in6_if_up(ifp); #endif - lwkt_replymsg(&nmsg->lmsg, 0); + netisr_replymsg(&nmsg->base, 0); } void @@ -1639,14 +1633,12 @@ if_route(struct ifnet *ifp, int flag, int fam) { struct netmsg_ifroute msg; - ASSERT_CANDOMSG_NETISR0(curthread); - netmsg_init(&msg.base, NULL, &curthread->td_msgport, 0, if_route_dispatch); msg.ifp = ifp; msg.flag = flag; msg.fam = fam; - lwkt_domsg(netisr_cpuport(0), &msg.base.lmsg, 0); + netisr_domsg(&msg.base, 0); } /* @@ -1702,7 +1694,7 @@ if_slowtimo_dispatch(netmsg_t nmsg) const struct ifnet_array *arr; int i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; crit_enter_gd(gd); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ diff --git a/sys/net/if_poll.c b/sys/net/if_poll.c index 5a1bf34ee0..887f28f251 100644 --- a/sys/net/if_poll.c +++ b/sys/net/if_poll.c @@ -526,7 +526,7 @@ stpoll_handler(netmsg_t msg) struct thread *td = curthread; int i; - ASSERT_IS_NETISR(td, 0); + ASSERT_NETISR0; crit_enter_quick(td); @@ -575,7 +575,7 @@ stpoll_register(struct ifnet *ifp, const struct ifpoll_status *st_rec) struct stpoll_ctx *st_ctx = &stpoll_context; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (st_rec->status_func == NULL) return 0; @@ -618,7 +618,7 @@ stpoll_deregister(struct ifnet *ifp) struct stpoll_ctx *st_ctx = &stpoll_context; int i, error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; for (i = 0; i < st_ctx->poll_handlers; ++i) { if (st_ctx->pr[i].ifp == ifp) /* Found it */ diff --git a/sys/net/ipfw/ip_fw2.c b/sys/net/ipfw/ip_fw2.c index fc5c4c31f1..dc72e1fe8d 100644 --- a/sys/net/ipfw/ip_fw2.c +++ b/sys/net/ipfw/ip_fw2.c @@ -1663,7 +1663,7 @@ ipfw_chk(struct ip_fw_args *args) int cpuid = mycpuid; struct ipfw_context *ctx; - ASSERT_NETISR_NCPUS(curthread, cpuid); + ASSERT_NETISR_NCPUS(cpuid); ctx = ipfw_ctx[cpuid]; if (m->m_pkthdr.fw_flags & IPFW_MBUF_GENERATED) diff --git a/sys/net/netisr.c b/sys/net/netisr.c index 59e053691b..7d0eb0d2af 100644 --- a/sys/net/netisr.c +++ b/sys/net/netisr.c @@ -667,7 +667,7 @@ netisr_barrier_set(struct netisr_barrier *br) volatile cpumask_t other_cpumask; int i, cur_cpuid; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KKASSERT(!br->br_isset); other_cpumask = mycpu->gd_other_cpus; @@ -716,7 +716,7 @@ netisr_barrier_rem(struct netisr_barrier *br) { int i, cur_cpuid; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KKASSERT(br->br_isset); cur_cpuid = mycpuid; diff --git a/sys/net/netisr2.h b/sys/net/netisr2.h index a667ebdde3..c2ca7dbf04 100644 --- a/sys/net/netisr2.h +++ b/sys/net/netisr2.h @@ -127,25 +127,29 @@ netisr_hashport(uint16_t hash) return netisr_cpuport(netisr_hashcpu(hash)); } -#define IS_NETISR(td, n) (&(td)->td_msgport == netisr_cpuport((n))) -#define ASSERT_IS_NETISR(td, n) \ - KASSERT(IS_NETISR((td), (n)), ("thread %p is not netisr%d", (td), (n))) -#define ASSERT_IN_NETISR(n) ASSERT_IS_NETISR(curthread, (n)) -#define ASSERT_CANDOMSG_NETISR0(td) \ - KASSERT((td)->td_type != TD_TYPE_NETISR || IS_NETISR((td), 0), \ - ("can't domsg to netisr0 from thread %p", (td))) -#define ASSERT_NETISR_NCPUS(td, n) \ - KASSERT((n) < netisr_ncpus && IS_NETISR((td), (n)), \ +#define IN_NETISR(n) \ + (&curthread->td_msgport == netisr_cpuport((n))) +#define IN_NETISR_NCPUS(n) \ + ((n) < netisr_ncpus && IN_NETISR((n))) +#define ASSERT_NETISR0 \ + KASSERT(IN_NETISR(0), ("thread %p is not netisr0", curthread)) +#define ASSERT_NETISR_NCPUS(n) \ + KASSERT(IN_NETISR_NCPUS(n), \ ("thread %p cpu%d is not within netisr_ncpus %d", \ - (td), (n), netisr_ncpus)) + curthread, (n), netisr_ncpus)) static __inline int netisr_domsg_port(struct netmsg_base *nm, lwkt_port_t port) { #ifdef INVARIANTS - if (port == netisr_cpuport(0)) - ASSERT_CANDOMSG_NETISR0(curthread); + /* + * Only netisr0, netisrN itself, or non-netisr threads + * can perform synchronous message sending to netisrN. + */ + KASSERT(curthread->td_type != TD_TYPE_NETISR || + IN_NETISR(0) || port == &curthread->td_msgport, + ("can't domsg to netisr port %p from thread %p", port, curthread)); #endif return (lwkt_domsg(port, &nm->lmsg, 0)); } diff --git a/sys/net/pf/pf_if.c b/sys/net/pf/pf_if.c index d38f38031f..cac584d532 100644 --- a/sys/net/pf/pf_if.c +++ b/sys/net/pf/pf_if.c @@ -629,7 +629,7 @@ pfi_instance_add_dispatch(netmsg_t nmsg) pfi_address_add(ia->ifa_addr, af, net2); } done: - lwkt_replymsg(&nmsg->lmsg, 0); + netisr_replymsg(&nmsg->base, 0); } void @@ -637,14 +637,12 @@ pfi_instance_add(struct ifnet *ifp, int net, int flags) { struct netmsg_pfiadd msg; - ASSERT_CANDOMSG_NETISR0(curthread); - netmsg_init(&msg.base, NULL, &curthread->td_msgport, 0, pfi_instance_add_dispatch); msg.ifp = ifp; msg.net = net; msg.flags = flags; - lwkt_domsg(netisr_cpuport(0), &msg.base.lmsg, 0); + netisr_domsg(&msg.base, 0); } void diff --git a/sys/net/route.c b/sys/net/route.c index 5e058cfeb9..56e35a1e13 100644 --- a/sys/net/route.c +++ b/sys/net/route.c @@ -339,7 +339,7 @@ rtfree_async(struct rtentry *rt) { struct netmsg_base *msg; - if (IS_NETISR(curthread, rt->rt_cpuid)) { + if (IN_NETISR(rt->rt_cpuid)) { rtfree_oncpu(rt); return; } @@ -1908,6 +1908,6 @@ rtchange(struct ifaddr *old_ifa, struct ifaddr *new_ifa) int rt_domsg_global(struct netmsg_base *nmsg) { - ASSERT_CANDOMSG_NETISR0(curthread); - return lwkt_domsg(netisr_cpuport(0), &nmsg->lmsg, 0); + + return (netisr_domsg(nmsg, 0)); } diff --git a/sys/net/stf/if_stf.c b/sys/net/stf/if_stf.c index 0d34b211f0..df81c7a1da 100644 --- a/sys/net/stf/if_stf.c +++ b/sys/net/stf/if_stf.c @@ -331,7 +331,7 @@ stf_output_serialized(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, struct route *ro; static const uint32_t af = AF_INET6; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); sc = (struct stf_softc*)ifp; dst6 = (struct sockaddr_in6 *)dst; diff --git a/sys/net/vlan/if_vlan.c b/sys/net/vlan/if_vlan.c index 9bd70c0104..bf73bb2a08 100644 --- a/sys/net/vlan/if_vlan.c +++ b/sys/net/vlan/if_vlan.c @@ -582,7 +582,7 @@ vlan_input(struct mbuf *m) struct vlan_entry *entry; int cpuid = mycpuid; - ASSERT_NETISR_NCPUS(curthread, cpuid); + ASSERT_NETISR_NCPUS(cpuid); rcvif = m->m_pkthdr.rcvif; KKASSERT(m->m_flags & M_VLANTAG); diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 5e5edf5706..fadcca0078 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -1039,7 +1039,7 @@ match: * * However, we only need to generate rtmsg on CPU0. */ - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; changed = arp_update_oncpu(m, isaddr.s_addr, itaddr.s_addr == myaddr.s_addr, RTL_REPORTMSG, TRUE); diff --git a/sys/netinet/igmp.c b/sys/netinet/igmp.c index 4cdac0e303..c88ace2b01 100644 --- a/sys/netinet/igmp.c +++ b/sys/netinet/igmp.c @@ -416,7 +416,7 @@ igmp_fasttimo_dispatch(netmsg_t nmsg) struct in_multi *inm; struct in_multistep step; - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; crit_enter(); netisr_replymsg(&nmsg->base, 0); /* reply ASAP */ @@ -465,7 +465,7 @@ igmp_slowtimo_dispatch(netmsg_t nmsg) { struct router_info *rti = Head; - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; crit_enter(); netisr_replymsg(&nmsg->base, 0); /* reply ASAP */ diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 82707b8df2..89c5e9cc9b 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -1307,7 +1307,7 @@ in_addmulti(struct in_addr *ap, struct ifnet *ifp) struct sockaddr_in sin; struct ifmultiaddr *ifma; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* * Call generic routine to add membership or increment @@ -1352,7 +1352,7 @@ in_delmulti(struct in_multi *inm) struct ifmultiaddr *ifma; struct in_multi my_inm; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; ifma = inm->inm_ifma; my_inm.inm_ifp = NULL ; /* don't send the leave msg */ diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c index 77939a37ae..33054b27af 100644 --- a/sys/netinet/in_pcb.c +++ b/sys/netinet/in_pcb.c @@ -1276,7 +1276,7 @@ in_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifnet *ifp) * In this case, the pcbinfo must be able to be shared, i.e. * pcbinfo->infotoken is not NULL. */ - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KASSERT(pcbinfo->cpu == 0 || pcbinfo->infotoken != NULL, ("pcbinfo could not be shared")); @@ -2387,7 +2387,7 @@ struct inpcb * in_pcbmarker(void) { - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); return &in_pcbmarkers[mycpuid]; } @@ -2395,7 +2395,7 @@ struct inpcontainer * in_pcbcontainer_marker(void) { - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); return &in_pcbcontainer_markers[mycpuid]; } diff --git a/sys/netinet/in_rmx.c b/sys/netinet/in_rmx.c index db92bbcc7a..c9b4a6258a 100644 --- a/sys/netinet/in_rmx.c +++ b/sys/netinet/in_rmx.c @@ -440,7 +440,7 @@ in_rtqdrain(void) CPUMASK_ASSBMASK(mask, ncpus); CPUMASK_ANDMASK(mask, smp_active_mask); - if (IS_NETISR(curthread, mycpuid)) { + if (IN_NETISR(mycpuid)) { in_rtqdrain_oncpu(&in_rtq_pcpu[mycpuid]); CPUMASK_NANDBIT(mask, mycpuid); } diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c index 85c5bf01e7..1d026061ae 100644 --- a/sys/netinet/ip_carp.c +++ b/sys/netinet/ip_carp.c @@ -1605,7 +1605,7 @@ carp_iamatch(const struct in_ifaddr *ia) { const struct carp_softc *sc = ia->ia_ifp->if_softc; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; #ifdef notyet if (carp_opts[CARPCTL_ARPBALANCE]) @@ -3081,7 +3081,7 @@ carp_ifaddr(void *arg __unused, struct ifnet *ifp, if (ifa->ifa_addr->sa_family != AF_INET) return; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (ifp->if_type == IFT_CARP) { /* diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index f428c378b6..273f1720fe 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -170,7 +170,7 @@ div_packet(struct mbuf *m, int incoming, int port) struct divert_info *divinfo; u_int16_t nport; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* Locate the divert info */ mtag = m_tag_find(m, PACKET_TAG_IPFW_DIVERT, NULL); @@ -324,7 +324,7 @@ div_output(struct socket *so, struct mbuf *m, struct m_tag *mtag; struct divert_info *divinfo; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (control) m_freem(control); /* XXX */ @@ -387,7 +387,7 @@ div_attach(netmsg_t msg) struct inpcb *inp; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; inp = so->so_pcb; if (inp) @@ -421,7 +421,7 @@ div_detach(netmsg_t msg) struct socket *so = msg->detach.base.nm_so; struct inpcb *inp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; inp = so->so_pcb; if (inp == NULL) @@ -446,7 +446,7 @@ div_disconnect(netmsg_t msg) struct socket *so = msg->disconnect.base.nm_so; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (so->so_state & SS_ISCONNECTED) { soisdisconnected(so); @@ -464,7 +464,7 @@ div_bind(netmsg_t msg) struct sockaddr *nam = msg->bind.nm_nam; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* * in_pcbbind assumes that nam is a sockaddr_in @@ -488,7 +488,7 @@ div_shutdown(netmsg_t msg) { struct socket *so = msg->shutdown.base.nm_so; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; socantsendmore(so); diff --git a/sys/netinet/ip_flow.c b/sys/netinet/ip_flow.c index f92dc881ff..1e9c1b84c1 100644 --- a/sys/netinet/ip_flow.c +++ b/sys/netinet/ip_flow.c @@ -200,7 +200,7 @@ ipflow_fastforward(struct mbuf *m) struct ifnet *ifp; int error, iplen; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); /* * Are we forwarding packets? @@ -412,7 +412,7 @@ ipflow_timeo_dispatch(netmsg_t nmsg) struct ipflow_pcpu *pcpu; int cpuid = mycpuid; - ASSERT_NETISR_NCPUS(curthread, cpuid); + ASSERT_NETISR_NCPUS(cpuid); crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ @@ -455,7 +455,7 @@ ipflow_create(const struct route *ro, struct mbuf *m) struct ipflow *ipf; unsigned hash; - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); /* * Don't create cache entries for ICMP messages. diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index d49609e536..58d350883f 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -349,7 +349,7 @@ icmp_mtudisc_start(struct mbuf *m, int hlen, int proto) { struct netmsg_ctlinput *msg; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; icmp_mtudisc(m, hlen); @@ -438,7 +438,7 @@ icmp_ctlinput_global_start(struct mbuf *m, int cmd, int hlen, int proto) { struct netmsg_ctlinput *msg; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KASSERT(ncpus > 1, ("there is only 1 cpu")); icmp_ctlinput(m, cmd, hlen); @@ -565,7 +565,7 @@ icmp_redirect_start(struct mbuf *m, int hlen, int proto) { struct netmsg_ctlinput *msg; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; icmp_redirect(m, hlen, TRUE); @@ -603,7 +603,7 @@ icmp_input(struct mbuf **mp, int *offp, int proto) int i, hlen; int code; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; *mp = NULL; hlen = *offp; diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index c7b7f4644e..fdd9765681 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -477,7 +477,7 @@ ip_input(struct mbuf *m) int error; #endif - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); M_ASSERTPKTHDR(m); /* @@ -1469,7 +1469,7 @@ ipfrag_drain(void) CPUMASK_ASSBMASK(mask, netisr_ncpus); CPUMASK_ANDMASK(mask, smp_active_mask); - if (mycpuid < netisr_ncpus && IS_NETISR(curthread, mycpuid)) { + if (IN_NETISR_NCPUS(mycpuid)) { ipfrag_drain_oncpu(&ipfrag_queue_pcpu[mycpuid]); CPUMASK_NANDBIT(mask, mycpuid); } diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 5e58df3a96..6068c010be 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -213,7 +213,7 @@ ip_output(struct mbuf *m0, struct mbuf *opt, struct route *ro, struct sockaddr_in *next_hop = NULL; int src_was_INADDR_ANY = 0; /* as the name says... */ - ASSERT_NETISR_NCPUS(curthread, mycpuid); + ASSERT_NETISR_NCPUS(mycpuid); m = m0; M_ASSERTPKTHDR(m); diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index db5f9901fc..3b4a463a26 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -157,7 +157,7 @@ rip_input(struct mbuf **mp, int *offp, int proto) struct inpcb *last = NULL; struct mbuf *opts = NULL; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; *mp = NULL; @@ -272,7 +272,7 @@ rip_output(struct mbuf *m, struct socket *so, ...) int flags = (so->so_options & SO_DONTROUTE) | IP_ALLOWBROADCAST; u_long dst; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; __va_start(ap, so); dst = __va_arg(ap, u_long); @@ -351,7 +351,7 @@ rip_ctloutput(netmsg_t msg) struct inpcb *inp = so->so_pcb; int error, optval; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; error = 0; @@ -511,7 +511,7 @@ rip_ctlinput(netmsg_t msg) int err; int flags; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; switch (cmd) { case PRC_IFDOWN: @@ -589,7 +589,7 @@ rip_attach(netmsg_t msg) struct inpcb *inp; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; inp = so->so_pcb; if (inp) @@ -618,7 +618,7 @@ rip_detach(netmsg_t msg) struct socket *so = msg->base.nm_so; struct inpcb *inp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; inp = so->so_pcb; if (inp == NULL) @@ -649,7 +649,7 @@ rip_disconnect(netmsg_t msg) struct socket *so = msg->base.nm_so; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (so->so_state & SS_ISCONNECTED) { soisdisconnected(so); @@ -669,7 +669,7 @@ rip_bind(netmsg_t msg) struct sockaddr_in *addr = (struct sockaddr_in *)nam; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (nam->sa_len == sizeof(*addr)) { if (ifnet_array_isempty() || @@ -697,7 +697,7 @@ rip_connect(netmsg_t msg) struct sockaddr_in *addr = (struct sockaddr_in *)nam; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (nam->sa_len != sizeof(*addr)) { error = EINVAL; @@ -719,7 +719,7 @@ rip_connect(netmsg_t msg) static void rip_shutdown(netmsg_t msg) { - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; socantsendmore(msg->base.nm_so); lwkt_replymsg(&msg->lmsg, 0); @@ -737,7 +737,7 @@ rip_send(netmsg_t msg) u_long dst; int error; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (so->so_state & SS_ISCONNECTED) { if (nam) { diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index da9ead0b2d..5f43758e35 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -877,7 +877,7 @@ tcp_close(struct tcpcb *tp) * Currently the inheritance could only happen on the * listen(2) sockets w/ SO_REUSEPORT set. */ - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; inp_inh = in_pcblocalgroup_last(&tcbinfo[0], inp); if (inp_inh != NULL) tp_inh = intotcpcb(inp_inh); @@ -905,7 +905,7 @@ tcp_close(struct tcpcb *tp) struct netmsg_listen_detach nmsg; KKASSERT(so->so_port == netisr_cpuport(0)); - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KKASSERT(inp->inp_pcbinfo == &tcbinfo[0]); netmsg_init(&nmsg.base, NULL, &curthread->td_msgport, @@ -1103,7 +1103,7 @@ tcp_drain_oncpu(struct inpcbinfo *pcbinfo) * we block during the inpcb list iteration, i.e. * we don't need to use inpcb marker here. */ - ASSERT_NETISR_NCPUS(curthread, pcbinfo->cpu); + ASSERT_NETISR_NCPUS(pcbinfo->cpu); LIST_FOREACH(inpb, head, inp_list) { struct tcpcb *tcpb; @@ -1166,7 +1166,7 @@ tcp_drain(void) CPUMASK_ANDMASK(mask, smp_active_mask); cpu = mycpuid; - if (cpu < netisr_ncpus && IS_NETISR(curthread, cpu)) { + if (IN_NETISR_NCPUS(cpu)) { tcp_drain_oncpu(&tcbinfo[mycpuid]); CPUMASK_NANDBIT(mask, cpu); } @@ -1533,7 +1533,7 @@ tcp_ctlinput(netmsg_t msg) } else { struct netmsg_tcp_notify *nm; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; nm = kmalloc(sizeof(*nm), M_LWKTMSG, M_INTWAIT); netmsg_init(&nm->base, NULL, &netisr_afree_rport, 0, tcp_notifyall_oncpu); diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index de9de07b80..c48a742a79 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -552,7 +552,7 @@ tcp6_usr_listen(netmsg_t msg) * Put this inpcb into wildcard hash on other cpus. */ KKASSERT(so->so_port == netisr_cpuport(0)); - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KKASSERT(inp->inp_pcbinfo == &tcbinfo[0]); ASSERT_INP_NOTINHASH(inp); diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 44401ddeb9..903123043c 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -316,7 +316,7 @@ check_multicast_membership(const struct ip *ip, const struct inpcb *inp, return (0); } - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; mopt = inp->inp_moptions; if (mopt == NULL) @@ -832,7 +832,7 @@ udp_ctlinput(netmsg_t msg) } else { struct netmsg_udp_notify *nm; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; nm = kmalloc(sizeof(*nm), M_LWKTMSG, M_INTWAIT); netmsg_init(&nm->base, NULL, &netisr_afree_rport, 0, udp_notifyall_oncpu); diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c index 4c5efa9cf2..f4376d0e86 100644 --- a/sys/netinet6/frag6.c +++ b/sys/netinet6/frag6.c @@ -620,7 +620,7 @@ frag6_slowtimo_dispatch(netmsg_t nmsg) { struct ip6q *q6; - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; /* Reply ASAP. */ crit_enter(); @@ -690,7 +690,7 @@ static void frag6_drain_oncpu(void) { - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; if (frag6_doing_reass) return; @@ -705,7 +705,7 @@ static void frag6_drain_dispatch(netmsg_t nmsg) { - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; crit_enter(); netisr_replymsg(&nmsg->base, 0); @@ -732,7 +732,7 @@ void frag6_drain(void) { - if (IS_NETISR(curthread, 0)) { + if (IN_NETISR(0)) { frag6_drain_oncpu(); return; } diff --git a/sys/netinet6/icmp6.c b/sys/netinet6/icmp6.c index b0e608441c..66688564ac 100644 --- a/sys/netinet6/icmp6.c +++ b/sys/netinet6/icmp6.c @@ -2140,7 +2140,7 @@ static void icmp6_fasttimo_dispatch(netmsg_t nmsg) { - ASSERT_NETISR_NCPUS(curthread, 0); + ASSERT_NETISR0; /* Reply ASAP. */ crit_enter(); diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index b67e309604..f1a5858a6b 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2388,13 +2388,12 @@ in6_ifawithifp(struct ifnet *ifp, struct in6_addr *dst) static void in6_if_up_dispatch(netmsg_t nmsg) { - struct lwkt_msg *lmsg = &nmsg->lmsg; - struct ifnet *ifp = lmsg->u.ms_resultp; + struct ifnet *ifp = nmsg->lmsg.u.ms_resultp; struct ifaddr_container *ifac; struct in6_ifaddr *ia; int dad_delay; /* delay ticks before DAD output */ - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* * special cases, like 6to4, are handled in in6_ifattach @@ -2412,20 +2411,17 @@ in6_if_up_dispatch(netmsg_t nmsg) nd6_dad_start(ifa, &dad_delay); } - lwkt_replymsg(lmsg, 0); + netisr_replymsg(&nmsg->base, 0); } void in6_if_up(struct ifnet *ifp) { struct netmsg_base nmsg; - struct lwkt_msg *lmsg = &nmsg.lmsg; - - ASSERT_CANDOMSG_NETISR0(curthread); netmsg_init(&nmsg, NULL, &curthread->td_msgport, 0, in6_if_up_dispatch); - lmsg->u.ms_resultp = ifp; - lwkt_domsg(netisr_cpuport(0), lmsg, 0); + nmsg.lmsg.u.ms_resultp = ifp; + netisr_domsg(&nmsg, 0); } int @@ -2475,7 +2471,7 @@ in6_setmaxmtu(void) const struct ifnet_array *arr; int i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; arr = ifnet_array_get(); for (i = 0; i < arr->ifnet_count; ++i) { diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 2e547be937..1a239c5e32 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -827,7 +827,7 @@ in6_ifdetach_dispatch(netmsg_t nmsg) struct sockaddr_in6 sin6; struct in6_multi *in6m, *in6m_next; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* remove neighbor management table */ nd6_purge(ifp); @@ -944,7 +944,7 @@ in6_tmpaddrtimer_dispatch(netmsg_t nmsg) u_int8_t nullbuf[8]; int i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index 05e1502060..3c2bac54cc 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -716,7 +716,7 @@ in6_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifnet *ifp) * In this case, the pcbinfo must be able to be shared, i.e. * pcbinfo->infotoken is not NULL. */ - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; KASSERT(pcbinfo->cpu == 0 || pcbinfo->infotoken != NULL, ("pcbinfo could not be shared")); diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 8da2b248af..f371e47cb1 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -409,7 +409,7 @@ ip6_mrouter_init(struct socket *so, struct mbuf *m, int cmd) { int *v; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; #ifdef MRT6DEBUG if (mrt6debug) @@ -469,7 +469,7 @@ ip6_mrouter_done(void) struct rtdetq *rte; struct lwkt_msg *lmsg = &expire_upcalls_nmsg.lmsg; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (ip6_mrouter == NULL) return EINVAL; @@ -1208,7 +1208,7 @@ expire_upcalls_dispatch(netmsg_t nmsg) struct mf6c *mfc, **nptr; int i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* Reply ASAP */ crit_enter(); diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 11b2220fc8..ffbc7667e1 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -410,7 +410,7 @@ nd6_timer_dispatch(netmsg_t nmsg) struct ifnet *ifp; struct in6_ifaddr *ia6, *nia6; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ @@ -1805,7 +1805,7 @@ nd6_slowtimo_dispatch(netmsg_t nmsg) struct nd_ifinfo *nd6if; int i; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; crit_enter(); lwkt_replymsg(&nmsg->lmsg, 0); /* reply ASAP */ diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index 73072d33af..0373aa70d5 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -1061,7 +1061,7 @@ nd6_dad_find(struct ifaddr *ifa) { struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; TAILQ_FOREACH(dp, &dadq, dad_list) { if (dp->dad_ifa == ifa) @@ -1073,14 +1073,14 @@ nd6_dad_find(struct ifaddr *ifa) static void nd6_dad_starttimer(struct dadq *dp, int ticks) { - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; callout_reset(&dp->dad_timer_ch, ticks, nd6_dad_timer, dp); } static void nd6_dad_stoptimer(struct dadq *dp) { - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; callout_stop(&dp->dad_timer_ch); } @@ -1094,7 +1094,7 @@ nd6_dad_start(struct ifaddr *ifa, struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa; struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* * If we don't need DAD, don't do it. @@ -1161,7 +1161,7 @@ nd6_dad_stop(struct ifaddr *ifa) { struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; dp = nd6_dad_find(ifa); if (!dp) { @@ -1177,7 +1177,7 @@ nd6_dad_create(struct ifaddr *ifa) struct netmsg_dad *dm; struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; dp = kmalloc(sizeof(*dp), M_IP6NDP, M_INTWAIT | M_ZERO); callout_init_mp(&dp->dad_timer_ch); @@ -1203,7 +1203,7 @@ nd6_dad_destroy(struct dadq *dp) { struct lwkt_msg *lmsg = &dp->dad_nmsg.base.lmsg; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; TAILQ_REMOVE(&dadq, dp, dad_list); @@ -1240,7 +1240,7 @@ nd6_dad_timer_handler(netmsg_t msg) struct ifaddr *ifa = dp->dad_ifa; struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; /* Reply ASAP */ crit_enter(); @@ -1352,7 +1352,7 @@ nd6_dad_duplicated(struct ifaddr *ifa) struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa; struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; dp = nd6_dad_find(ifa); if (dp == NULL) { @@ -1385,7 +1385,7 @@ nd6_dad_ns_output(struct dadq *dp) struct in6_ifaddr *ia = (struct in6_ifaddr *)dp->dad_ifa; struct ifnet *ifp = dp->dad_ifa->ifa_ifp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; dp->dad_ns_tcount++; if (!(ifp->if_flags & IFF_UP)) { @@ -1413,7 +1413,7 @@ nd6_dad_ns_input(struct ifaddr *ifa) struct dadq *dp; int duplicate; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (!ifa) panic("ifa == NULL in nd6_dad_ns_input"); @@ -1459,7 +1459,7 @@ nd6_dad_na_input(struct ifaddr *ifa) { struct dadq *dp; - ASSERT_IN_NETISR(0); + ASSERT_NETISR0; if (!ifa) panic("ifa == NULL in nd6_dad_na_input");