inpcb: Simplify inpcb marker interface
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 3 Aug 2017 09:19:11 +0000 (17:19 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 3 Aug 2017 09:19:11 +0000 (17:19 +0800)
sys/netinet/in_pcb.c
sys/netinet/in_pcb.h
sys/netinet/udp_usrreq.c
sys/netinet6/in6_pcb.c
sys/netinet6/udp6_usrreq.c

index 3f8a81f..77939a3 100644 (file)
@@ -1232,7 +1232,7 @@ in_pcbnotifyall(struct inpcbinfo *pcbinfo, struct in_addr faddr, int err,
 
        KASSERT(&curthread->td_msgport == netisr_cpuport(pcbinfo->cpu),
            ("not in the correct netisr"));
-       marker = &in_pcbmarkers[mycpuid];
+       marker = in_pcbmarker();
 
        /*
         * NOTE:
@@ -1292,7 +1292,7 @@ in_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifnet *ifp)
         * even if the token was released due to the blocking multicast
         * address deletion.
         */
-       marker = &in_pcbmarkers[mycpuid];
+       marker = in_pcbmarker();
 
        GET_PCBINFO_TOKEN(pcbinfo);
 
@@ -2384,23 +2384,19 @@ in_pcbglobalinit(void)
 }
 
 struct inpcb *
-in_pcbmarker(int cpuid)
+in_pcbmarker(void)
 {
-       KASSERT(cpuid >= 0 && cpuid < netisr_ncpus,
-           ("invalid cpuid %d", cpuid));
-       KASSERT(curthread->td_type == TD_TYPE_NETISR, ("not in netisr"));
 
-       return &in_pcbmarkers[cpuid];
+       ASSERT_NETISR_NCPUS(curthread, mycpuid);
+       return &in_pcbmarkers[mycpuid];
 }
 
 struct inpcontainer *
-in_pcbcontainer_marker(int cpuid)
+in_pcbcontainer_marker(void)
 {
-       KASSERT(cpuid >= 0 && cpuid < netisr_ncpus,
-           ("invalid cpuid %d", cpuid));
-       KASSERT(curthread->td_type == TD_TYPE_NETISR, ("not in netisr"));
 
-       return &in_pcbcontainer_markers[cpuid];
+       ASSERT_NETISR_NCPUS(curthread, mycpuid);
+       return &in_pcbcontainer_markers[mycpuid];
 }
 
 void
index 8e5576b..67bdd6c 100644 (file)
@@ -548,9 +548,9 @@ int in_pcblist_range(SYSCTL_HANDLER_ARGS);
 int    in_pcblist_ncpus(SYSCTL_HANDLER_ARGS);
 
 struct inpcb *
-       in_pcbmarker(int cpuid);
+       in_pcbmarker(void);
 struct inpcontainer *
-       in_pcbcontainer_marker(int cpuid);
+       in_pcbcontainer_marker(void);
 
 #endif /* _KERNEL */
 
index fe0e700..44401dd 100644 (file)
@@ -552,7 +552,7 @@ udp_input(struct mbuf **mp, int *offp, int proto)
                ichead = &pcbinfo->wildcardhashbase[
                    INP_PCBWILDCARDHASH(uh->uh_dport,
                    pcbinfo->wildcardhashmask)];
-               ic_marker = in_pcbcontainer_marker(mycpuid);
+               ic_marker = in_pcbcontainer_marker();
 
                GET_PCBINFO_TOKEN(pcbinfo);
                LIST_INSERT_HEAD(ichead, ic_marker, ic_list);
index 76131df..05e1502 100644 (file)
@@ -571,7 +571,7 @@ in6_pcbnotify(struct inpcbinfo *pcbinfo, struct sockaddr *dst, in_port_t fport,
        if (cmd != PRC_MSGSIZE)
                arg = inet6ctlerrmap[cmd];
 
-       marker = in_pcbmarker(mycpuid);
+       marker = in_pcbmarker();
 
        GET_PCBINFO_TOKEN(pcbinfo);
 
@@ -732,7 +732,7 @@ in6_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifnet *ifp)
         * even if the token was released due to the blocking multicast
         * address deletion.
         */
-       marker = in_pcbmarker(mycpuid);
+       marker = in_pcbmarker();
 
        GET_PCBINFO_TOKEN(pcbinfo);
 
index 95d219e..2d495c7 100644 (file)
@@ -231,7 +231,7 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
                 */
                last = NULL;
 
-               marker = in_pcbmarker(mycpuid);
+               marker = in_pcbmarker();
 
                GET_PCBINFO_TOKEN(pcbinfo);