Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Jun 2009 14:44:00 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r194962 - head/sys/netinet
Message-ID:  <200906251444.n5PEi0F5054380@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rwatson
Date: Thu Jun 25 14:44:00 2009
New Revision: 194962
URL: http://svn.freebsd.org/changeset/base/194962

Log:
  Initialize in_ifaddr_lock using RW_SYSINIT() instead of in ip_init(),
  so that it doesn't run multiple times if VIMAGE is being used.
  
  Discussed with:	bz
  MFC after:	6 weeks

Modified:
  head/sys/netinet/in_var.h
  head/sys/netinet/ip_input.c

Modified: head/sys/netinet/in_var.h
==============================================================================
--- head/sys/netinet/in_var.h	Thu Jun 25 14:41:42 2009	(r194961)
+++ head/sys/netinet/in_var.h	Thu Jun 25 14:44:00 2009	(r194962)
@@ -116,7 +116,6 @@ extern	u_long in_ifaddrhmask;			/* mask 
 
 extern	struct rwlock in_ifaddr_lock;
 
-#define	IN_IFADDR_LOCK_INIT()	rw_init(&in_ifaddr_lock, "in_ifaddr_lock")
 #define	IN_IFADDR_LOCK_ASSERT()	rw_assert(&in_ifaddr_lock, RA_LOCKED)
 #define	IN_IFADDR_RLOCK()	rw_rlock(&in_ifaddr_lock)
 #define	IN_IFADDR_RLOCK_ASSERT()	rw_assert(&in_ifaddr_lock, RA_RLOCKED)

Modified: head/sys/netinet/ip_input.c
==============================================================================
--- head/sys/netinet/ip_input.c	Thu Jun 25 14:41:42 2009	(r194961)
+++ head/sys/netinet/ip_input.c	Thu Jun 25 14:44:00 2009	(r194962)
@@ -117,7 +117,9 @@ static int	maxfragsperpacket;
 int	ipstealth;
 static int	nipq;	/* Total # of reass queues */
 #endif
+
 struct	rwlock in_ifaddr_lock;
+RW_SYSINIT(in_ifaddr_lock, &in_ifaddr_lock, "in_ifaddr_lock");
 
 SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_ip, IPCTL_FORWARDING,
     forwarding, CTLFLAG_RW, ipforwarding, 0,
@@ -326,7 +328,6 @@ ip_init(void)
 
 	TAILQ_INIT(&V_in_ifaddrhead);
 	V_in_ifaddrhashtbl = hashinit(INADDR_NHASH, M_IFADDR, &V_in_ifaddrhmask);
-	IN_IFADDR_LOCK_INIT();
 
 	/* Initialize IP reassembly queue. */
 	for (i = 0; i < IPREASS_NHASH; i++)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906251444.n5PEi0F5054380>