Module Name: src Committed By: ozaki-r Date: Tue Mar 14 09:03:09 UTC 2017
Modified Files: src/sys/altq: altq_subr.c src/sys/compat/common: uipc_syscalls_40.c src/sys/compat/linux/common: linux_socket.c src/sys/compat/linux32/common: linux32_socket.c src/sys/dist/pf/net: pf_if.c src/sys/kern: uipc_mbuf.c src/sys/net: if.c if.h rtsock.c src/sys/netinet: ip_carp.c src/sys/rump/librump/rumpnet: net_stub.c Log Message: Use if_acquire and if_release instead of using psref API directly - Provide if_release for consistency to if_acquire - Use if_acquire and if_release for ifp iterations - Make ifnet_psref_class static To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/altq/altq_subr.c cvs rdiff -u -r1.12 -r1.13 src/sys/compat/common/uipc_syscalls_40.c cvs rdiff -u -r1.137 -r1.138 src/sys/compat/linux/common/linux_socket.c cvs rdiff -u -r1.26 -r1.27 src/sys/compat/linux32/common/linux32_socket.c cvs rdiff -u -r1.32 -r1.33 src/sys/dist/pf/net/pf_if.c cvs rdiff -u -r1.170 -r1.171 src/sys/kern/uipc_mbuf.c cvs rdiff -u -r1.384 -r1.385 src/sys/net/if.c cvs rdiff -u -r1.235 -r1.236 src/sys/net/if.h cvs rdiff -u -r1.206 -r1.207 src/sys/net/rtsock.c cvs rdiff -u -r1.85 -r1.86 src/sys/netinet/ip_carp.c cvs rdiff -u -r1.24 -r1.25 src/sys/rump/librump/rumpnet/net_stub.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/altq/altq_subr.c diff -u src/sys/altq/altq_subr.c:1.32 src/sys/altq/altq_subr.c:1.33 --- src/sys/altq/altq_subr.c:1.32 Mon Jun 20 08:30:58 2016 +++ src/sys/altq/altq_subr.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: altq_subr.c,v 1.32 2016/06/20 08:30:58 knakahara Exp $ */ +/* $NetBSD: altq_subr.c,v 1.33 2017/03/14 09:03:08 ozaki-r Exp $ */ /* $KAME: altq_subr.c,v 1.24 2005/04/13 03:44:25 suz Exp $ */ /* @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: altq_subr.c,v 1.32 2016/06/20 08:30:58 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: altq_subr.c,v 1.33 2017/03/14 09:03:08 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_altq.h" @@ -360,7 +360,7 @@ tbr_timeout(void *arg) struct psref psref; if (!TBR_IS_ENABLED(&ifp->if_snd)) continue; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); pserialize_read_exit(s); active++; @@ -371,7 +371,7 @@ tbr_timeout(void *arg) } s = pserialize_read_enter(); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); Index: src/sys/compat/common/uipc_syscalls_40.c diff -u src/sys/compat/common/uipc_syscalls_40.c:1.12 src/sys/compat/common/uipc_syscalls_40.c:1.13 --- src/sys/compat/common/uipc_syscalls_40.c:1.12 Mon Aug 1 03:15:30 2016 +++ src/sys/compat/common/uipc_syscalls_40.c Tue Mar 14 09:03:08 2017 @@ -1,9 +1,9 @@ -/* $NetBSD: uipc_syscalls_40.c,v 1.12 2016/08/01 03:15:30 ozaki-r Exp $ */ +/* $NetBSD: uipc_syscalls_40.c,v 1.13 2017/03/14 09:03:08 ozaki-r Exp $ */ /* written by Pavel Cahyna, 2006. Public domain. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_40.c,v 1.12 2016/08/01 03:15:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_40.c,v 1.13 2017/03/14 09:03:08 ozaki-r Exp $"); /* * System call interface to the socket abstraction. @@ -52,7 +52,7 @@ compat_ifconf(u_long cmd, void *data) IFNET_READER_FOREACH(ifp) { struct ifaddr *ifa; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); (void)strncpy(ifr.ifr_name, ifp->if_xname, sizeof(ifr.ifr_name)); @@ -126,7 +126,7 @@ compat_ifconf(u_long cmd, void *data) space -= sz; } - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); @@ -139,7 +139,7 @@ compat_ifconf(u_long cmd, void *data) release_exit: pserialize_read_exit(s); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); curlwp_bindx(bound); return error; } Index: src/sys/compat/linux/common/linux_socket.c diff -u src/sys/compat/linux/common/linux_socket.c:1.137 src/sys/compat/linux/common/linux_socket.c:1.138 --- src/sys/compat/linux/common/linux_socket.c:1.137 Fri Feb 3 16:57:39 2017 +++ src/sys/compat/linux/common/linux_socket.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_socket.c,v 1.137 2017/02/03 16:57:39 christos Exp $ */ +/* $NetBSD: linux_socket.c,v 1.138 2017/03/14 09:03:08 ozaki-r Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.137 2017/02/03 16:57:39 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_socket.c,v 1.138 2017/03/14 09:03:08 ozaki-r Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -1143,7 +1143,7 @@ linux_getifconf(struct lwp *l, register_ s = pserialize_read_enter(); IFNET_READER_FOREACH(ifp) { struct ifaddr *ifa; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); (void)strncpy(ifr.ifr_name, ifp->if_xname, sizeof(ifr.ifr_name)); @@ -1179,7 +1179,7 @@ linux_getifconf(struct lwp *l, register_ ifa_release(ifa, &psref_ifa); } - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); @@ -1193,7 +1193,7 @@ linux_getifconf(struct lwp *l, register_ release_exit: pserialize_read_exit(s); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); curlwp_bindx(bound); return error; } Index: src/sys/compat/linux32/common/linux32_socket.c diff -u src/sys/compat/linux32/common/linux32_socket.c:1.26 src/sys/compat/linux32/common/linux32_socket.c:1.27 --- src/sys/compat/linux32/common/linux32_socket.c:1.26 Mon Aug 1 03:15:30 2016 +++ src/sys/compat/linux32/common/linux32_socket.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_socket.c,v 1.26 2016/08/01 03:15:30 ozaki-r Exp $ */ +/* $NetBSD: linux32_socket.c,v 1.27 2017/03/14 09:03:08 ozaki-r Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_socket.c,v 1.26 2016/08/01 03:15:30 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_socket.c,v 1.27 2017/03/14 09:03:08 ozaki-r Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -441,7 +441,7 @@ linux32_getifconf(struct lwp *l, registe s = pserialize_read_enter(); IFNET_READER_FOREACH(ifp) { struct ifaddr *ifa; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); (void)strncpy(ifr.ifr_name, ifp->if_xname, sizeof(ifr.ifr_name)); @@ -477,7 +477,7 @@ linux32_getifconf(struct lwp *l, registe ifa_release(ifa, &psref_ifa); } - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); @@ -491,7 +491,7 @@ linux32_getifconf(struct lwp *l, registe release_exit: pserialize_read_exit(s); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); curlwp_bindx(bound); return error; } Index: src/sys/dist/pf/net/pf_if.c diff -u src/sys/dist/pf/net/pf_if.c:1.32 src/sys/dist/pf/net/pf_if.c:1.33 --- src/sys/dist/pf/net/pf_if.c:1.32 Mon Dec 26 23:21:49 2016 +++ src/sys/dist/pf/net/pf_if.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pf_if.c,v 1.32 2016/12/26 23:21:49 christos Exp $ */ +/* $NetBSD: pf_if.c,v 1.33 2017/03/14 09:03:08 ozaki-r Exp $ */ /* $OpenBSD: pf_if.c,v 1.47 2007/07/13 09:17:48 markus Exp $ */ /* @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pf_if.c,v 1.32 2016/12/26 23:21:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pf_if.c,v 1.33 2017/03/14 09:03:08 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -126,14 +126,14 @@ pfi_initialize(void) s = pserialize_read_enter(); IFNET_READER_FOREACH(ifp) { struct psref psref; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); pserialize_read_exit(s); pfi_init_groups(ifp); pfi_attach_ifnet(ifp); s = pserialize_read_enter(); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); @@ -159,14 +159,14 @@ pfi_destroy(void) s = pserialize_read_enter(); IFNET_READER_FOREACH(ifp) { struct psref psref; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); pserialize_read_exit(s); pfi_detach_ifnet(ifp); pfi_destroy_groups(ifp); s = pserialize_read_enter(); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); Index: src/sys/kern/uipc_mbuf.c diff -u src/sys/kern/uipc_mbuf.c:1.170 src/sys/kern/uipc_mbuf.c:1.171 --- src/sys/kern/uipc_mbuf.c:1.170 Mon Jan 9 14:25:52 2017 +++ src/sys/kern/uipc_mbuf.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_mbuf.c,v 1.170 2017/01/09 14:25:52 christos Exp $ */ +/* $NetBSD: uipc_mbuf.c,v 1.171 2017/03/14 09:03:08 ozaki-r Exp $ */ /*- * Copyright (c) 1999, 2001 The NetBSD Foundation, Inc. @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.170 2017/01/09 14:25:52 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.171 2017/03/14 09:03:08 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_mbuftrace.h" @@ -562,14 +562,12 @@ m_reclaim(void *arg, int flags) IFNET_READER_FOREACH(ifp) { struct psref psref; - psref_acquire(&psref, &ifp->if_psref, - ifnet_psref_class); + if_acquire(ifp, &psref); if (ifp->if_drain) (*ifp->if_drain)(ifp); - psref_release(&psref, &ifp->if_psref, - ifnet_psref_class); + if_release(ifp, &psref); } curlwp_bindx(bound); } Index: src/sys/net/if.c diff -u src/sys/net/if.c:1.384 src/sys/net/if.c:1.385 --- src/sys/net/if.c:1.384 Tue Mar 14 04:25:10 2017 +++ src/sys/net/if.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if.c,v 1.384 2017/03/14 04:25:10 ozaki-r Exp $ */ +/* $NetBSD: if.c,v 1.385 2017/03/14 09:03:08 ozaki-r Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc. @@ -90,7 +90,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.384 2017/03/14 04:25:10 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.385 2017/03/14 09:03:08 ozaki-r Exp $"); #if defined(_KERNEL_OPT) #include "opt_inet.h" @@ -176,7 +176,7 @@ static size_t if_indexlim = 0; static uint64_t index_gen; /* Mutex to protect the above objects. */ kmutex_t ifnet_mtx __cacheline_aligned; -struct psref_class *ifnet_psref_class __read_mostly; +static struct psref_class *ifnet_psref_class __read_mostly; static pserialize_t ifnet_psz; static kmutex_t if_clone_mtx; Index: src/sys/net/if.h diff -u src/sys/net/if.h:1.235 src/sys/net/if.h:1.236 --- src/sys/net/if.h:1.235 Thu Feb 23 07:57:10 2017 +++ src/sys/net/if.h Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: if.h,v 1.235 2017/02/23 07:57:10 ozaki-r Exp $ */ +/* $NetBSD: if.h,v 1.236 2017/03/14 09:03:08 ozaki-r Exp $ */ /*- * Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc. @@ -975,6 +975,7 @@ ifnet_t *if_byindex(u_int); ifnet_t *if_get_byindex(u_int, struct psref *); void if_put(const struct ifnet *, struct psref *); void if_acquire(struct ifnet *, struct psref *); +#define if_release if_put static inline if_index_t if_get_index(const struct ifnet *ifp) @@ -1170,7 +1171,6 @@ __END_DECLS } while (0) extern struct pslist_head ifnet_pslist; -extern struct psref_class *ifnet_psref_class; extern kmutex_t ifnet_mtx; extern struct ifnet *lo0ifp; Index: src/sys/net/rtsock.c diff -u src/sys/net/rtsock.c:1.206 src/sys/net/rtsock.c:1.207 --- src/sys/net/rtsock.c:1.206 Tue Mar 14 08:35:55 2017 +++ src/sys/net/rtsock.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rtsock.c,v 1.206 2017/03/14 08:35:55 ozaki-r Exp $ */ +/* $NetBSD: rtsock.c,v 1.207 2017/03/14 09:03:08 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.206 2017/03/14 08:35:55 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.207 2017/03/14 09:03:08 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1685,7 +1685,7 @@ sysctl_iflist(int af, struct rt_walkarg if (IFADDR_READER_EMPTY(ifp)) continue; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); pserialize_read_exit(s); info.rti_info[RTAX_IFP] = ifp->if_dl->ifa_addr; @@ -1719,7 +1719,7 @@ sysctl_iflist(int af, struct rt_walkarg info.rti_info[RTAX_BRD] = NULL; s = pserialize_read_enter(); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); @@ -1727,7 +1727,7 @@ sysctl_iflist(int af, struct rt_walkarg return 0; release_exit: - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); curlwp_bindx(bound); return error; } Index: src/sys/netinet/ip_carp.c diff -u src/sys/netinet/ip_carp.c:1.85 src/sys/netinet/ip_carp.c:1.86 --- src/sys/netinet/ip_carp.c:1.85 Mon Feb 27 08:26:53 2017 +++ src/sys/netinet/ip_carp.c Tue Mar 14 09:03:08 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_carp.c,v 1.85 2017/02/27 08:26:53 ozaki-r Exp $ */ +/* $NetBSD: ip_carp.c,v 1.86 2017/03/14 09:03:08 ozaki-r Exp $ */ /* $OpenBSD: ip_carp.c,v 1.113 2005/11/04 08:11:54 mcbride Exp $ */ /* @@ -33,7 +33,7 @@ #endif #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.85 2017/02/27 08:26:53 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.86 2017/03/14 09:03:08 ozaki-r Exp $"); /* * TODO: @@ -975,7 +975,7 @@ carp_send_ad_all(void) if (ifp->if_carp == NULL || ifp->if_type == IFT_CARP) continue; - psref_acquire(&psref, &ifp->if_psref, ifnet_psref_class); + if_acquire(ifp, &psref); pserialize_read_exit(s); cif = (struct carp_if *)ifp->if_carp; @@ -986,7 +986,7 @@ carp_send_ad_all(void) } s = pserialize_read_enter(); - psref_release(&psref, &ifp->if_psref, ifnet_psref_class); + if_release(ifp, &psref); } pserialize_read_exit(s); curlwp_bindx(bound); Index: src/sys/rump/librump/rumpnet/net_stub.c diff -u src/sys/rump/librump/rumpnet/net_stub.c:1.24 src/sys/rump/librump/rumpnet/net_stub.c:1.25 --- src/sys/rump/librump/rumpnet/net_stub.c:1.24 Sat Nov 26 03:17:58 2016 +++ src/sys/rump/librump/rumpnet/net_stub.c Tue Mar 14 09:03:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: net_stub.c,v 1.24 2016/11/26 03:17:58 ozaki-r Exp $ */ +/* $NetBSD: net_stub.c,v 1.25 2017/03/14 09:03:09 ozaki-r Exp $ */ /* * Copyright (c) 2008 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.24 2016/11/26 03:17:58 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: net_stub.c,v 1.25 2017/03/14 09:03:09 ozaki-r Exp $"); #include <sys/mutex.h> #include <sys/param.h> @@ -73,7 +73,6 @@ __weak_alias(vlan_ifdetach,rumpnet_stub) struct ifnet_head ifnet_list; struct pslist_head ifnet_pslist; -struct psref_class *ifnet_psref_class; kmutex_t ifnet_mtx; int