Module Name:    src
Committed By:   ozaki-r
Date:           Fri Jul  8 04:33:30 UTC 2016

Modified Files:
        src/sys/net: if_stf.c
        src/sys/netinet: if_arp.c igmp.c in.c in_pcb.c in_var.h ip_icmp.c
            ip_output.c
        src/sys/netinet6: in6_var.h mld6.c

Log Message:
Replace macros to get an IP address with proper inline functions

The inline functions are more friendly for applying psz/psref;
they consist of only simple interations.


To generate a diff of this commit:
cvs rdiff -u -r1.95 -r1.96 src/sys/net/if_stf.c
cvs rdiff -u -r1.216 -r1.217 src/sys/netinet/if_arp.c
cvs rdiff -u -r1.60 -r1.61 src/sys/netinet/igmp.c
cvs rdiff -u -r1.172 -r1.173 src/sys/netinet/in.c
cvs rdiff -u -r1.165 -r1.166 src/sys/netinet/in_pcb.c
cvs rdiff -u -r1.77 -r1.78 src/sys/netinet/in_var.h
cvs rdiff -u -r1.149 -r1.150 src/sys/netinet/ip_icmp.c
cvs rdiff -u -r1.258 -r1.259 src/sys/netinet/ip_output.c
cvs rdiff -u -r1.82 -r1.83 src/sys/netinet6/in6_var.h
cvs rdiff -u -r1.71 -r1.72 src/sys/netinet6/mld6.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/net/if_stf.c
diff -u src/sys/net/if_stf.c:1.95 src/sys/net/if_stf.c:1.96
--- src/sys/net/if_stf.c:1.95	Thu Jul  7 09:32:02 2016
+++ src/sys/net/if_stf.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_stf.c,v 1.95 2016/07/07 09:32:02 ozaki-r Exp $	*/
+/*	$NetBSD: if_stf.c,v 1.96 2016/07/08 04:33:30 ozaki-r Exp $	*/
 /*	$KAME: if_stf.c,v 1.62 2001/06/07 22:32:16 itojun Exp $ */
 
 /*
@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_stf.c,v 1.95 2016/07/07 09:32:02 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_stf.c,v 1.96 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -322,7 +322,7 @@ stf_getsrcifa6(struct ifnet *ifp)
 			continue;
 
 		memcpy(&in, GET_V4(&sin6->sin6_addr), sizeof(in));
-		INADDR_TO_IA(in, ia4);
+		ia4 = in_get_ia(in);
 		if (ia4 == NULL)
 			continue;
 

Index: src/sys/netinet/if_arp.c
diff -u src/sys/netinet/if_arp.c:1.216 src/sys/netinet/if_arp.c:1.217
--- src/sys/netinet/if_arp.c:1.216	Wed Jul  6 06:30:08 2016
+++ src/sys/netinet/if_arp.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_arp.c,v 1.216 2016/07/06 06:30:08 ozaki-r Exp $	*/
+/*	$NetBSD: if_arp.c,v 1.217 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.216 2016/07/06 06:30:08 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.217 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -555,9 +555,8 @@ arp_rtrequest(int req, struct rtentry *r
 		}
 		/* Announce a new entry if requested. */
 		if (rt->rt_flags & RTF_ANNOUNCE) {
-			INADDR_TO_IA(satocsin(rt_getkey(rt))->sin_addr, ia);
-			while (ia && ia->ia_ifp != ifp)
-				NEXT_IA_WITH_SAME_ADDR(ia);
+			ia = in_get_ia_on_iface(
+			    satocsin(rt_getkey(rt))->sin_addr, ifp);
 			if (ia == NULL ||
 			    ia->ia4_flags & (IN_IFF_NOTREADY | IN_IFF_DETACHED))
 				;
@@ -603,10 +602,7 @@ arp_rtrequest(int req, struct rtentry *r
 			break;
 		}
 
-		INADDR_TO_IA(satocsin(rt_getkey(rt))->sin_addr, ia);
-		while (ia && ia->ia_ifp != ifp)
-			NEXT_IA_WITH_SAME_ADDR(ia);
-
+		ia = in_get_ia_on_iface(satocsin(rt_getkey(rt))->sin_addr, ifp);
 		if (ia == NULL)
 			break;
 
@@ -1028,9 +1024,9 @@ in_arpinput(struct mbuf *m)
 	 * or any address on the interface to use
 	 * as a dummy address in the rest of this function
 	 */
-	
-	INADDR_TO_IA(itaddr, ia);
-	while (ia != NULL) {
+	IN_ADDRHASH_READER_FOREACH(ia, itaddr.s_addr) {
+		if (!in_hosteq(ia->ia_addr.sin_addr, itaddr))
+			continue;
 #if NCARP > 0
 		if (ia->ia_ifp->if_type == IFT_CARP &&
 		    ((ia->ia_ifp->if_flags & (IFF_UP|IFF_RUNNING)) ==
@@ -1057,8 +1053,6 @@ in_arpinput(struct mbuf *m)
 		    rcvif->if_bridge == ia->ia_ifp->if_bridge)
 			bridge_ia = ia;
 #endif /* NBRIDGE > 0 */
-
-		NEXT_IA_WITH_SAME_ADDR(ia);
 	}
 
 #if NBRIDGE > 0
@@ -1072,12 +1066,9 @@ in_arpinput(struct mbuf *m)
 #endif
 
 	if (ia == NULL) {
-		INADDR_TO_IA(isaddr, ia);
-		while ((ia != NULL) && ia->ia_ifp != rcvif)
-			NEXT_IA_WITH_SAME_ADDR(ia);
-
+		ia = in_get_ia_on_iface(isaddr, rcvif);
 		if (ia == NULL) {
-			IFP_TO_IA(ifp, ia);
+			ia = in_get_ia_from_ifp(ifp);
 			if (ia == NULL) {
 				ARP_STATINC(ARP_STAT_RCVNOINT);
 				goto out;

Index: src/sys/netinet/igmp.c
diff -u src/sys/netinet/igmp.c:1.60 src/sys/netinet/igmp.c:1.61
--- src/sys/netinet/igmp.c:1.60	Tue Jun 28 02:02:56 2016
+++ src/sys/netinet/igmp.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: igmp.c,v 1.60 2016/06/28 02:02:56 ozaki-r Exp $	*/
+/*	$NetBSD: igmp.c,v 1.61 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.60 2016/06/28 02:02:56 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.61 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_mrouting.h"
@@ -361,7 +361,7 @@ igmp_input(struct mbuf *m, ...)
 		 * determine the arrival interface of an incoming packet.
 		 */
 		if ((ip->ip_src.s_addr & IN_CLASSA_NET) == 0) {
-			IFP_TO_IA(ifp, ia);		/* XXX */
+			ia = in_get_ia_from_ifp(ifp);		/* XXX */
 			if (ia)
 				ip->ip_src.s_addr = ia->ia_subnet;
 		}
@@ -401,7 +401,7 @@ igmp_input(struct mbuf *m, ...)
 		 * leave requires knowing that we are the only member of a
 		 * group.
 		 */
-		IFP_TO_IA(ifp, ia);			/* XXX */
+		ia = in_get_ia_from_ifp(ifp);			/* XXX */
 		if (ia && in_hosteq(ip->ip_src, ia->ia_addr.sin_addr))
 			break;
 #endif
@@ -428,7 +428,7 @@ igmp_input(struct mbuf *m, ...)
 		 */
 		if ((ip->ip_src.s_addr & IN_CLASSA_NET) == 0) {
 #ifndef MROUTING
-			IFP_TO_IA(ifp, ia);		/* XXX */
+			ia = in_get_ia_from_ifp(ifp);		/* XXX */
 #endif
 			if (ia)
 				ip->ip_src.s_addr = ia->ia_subnet;

Index: src/sys/netinet/in.c
diff -u src/sys/netinet/in.c:1.172 src/sys/netinet/in.c:1.173
--- src/sys/netinet/in.c:1.172	Thu Jul  7 09:32:02 2016
+++ src/sys/netinet/in.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in.c,v 1.172 2016/07/07 09:32:02 ozaki-r Exp $	*/
+/*	$NetBSD: in.c,v 1.173 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.172 2016/07/07 09:32:02 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in.c,v 1.173 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #include "arp.h"
 
@@ -390,7 +390,7 @@ in_control(struct socket *so, u_long cmd
 	 * Find address for this interface, if it exists.
 	 */
 	if (ifp != NULL)
-		IFP_TO_IA(ifp, ia);
+		ia = in_get_ia_from_ifp(ifp);
 
 	hostIsNew = 1;		/* moved here to appease gcc */
 	switch (cmd) {
@@ -1559,7 +1559,7 @@ in_selectsrc(struct sockaddr_in *sin, st
 
 			ifp = if_byindex(imo->imo_multicast_if_index);
 			if (ifp != NULL) {
-				IFP_TO_IA(ifp, ia);		/* XXX */
+				ia = in_get_ia_from_ifp(ifp);		/* XXX */
 			} else
 				ia = NULL;
 			if (ia == NULL || ia->ia4_flags & IN_IFF_NOTREADY) {

Index: src/sys/netinet/in_pcb.c
diff -u src/sys/netinet/in_pcb.c:1.165 src/sys/netinet/in_pcb.c:1.166
--- src/sys/netinet/in_pcb.c:1.165	Wed Jul  6 08:42:34 2016
+++ src/sys/netinet/in_pcb.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_pcb.c,v 1.165 2016/07/06 08:42:34 ozaki-r Exp $	*/
+/*	$NetBSD: in_pcb.c,v 1.166 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -93,7 +93,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.165 2016/07/06 08:42:34 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.166 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -283,7 +283,7 @@ in_pcbbind_addr(struct inpcb *inp, struc
 	} else if (!in_nullhost(sin->sin_addr)) {
 		struct in_ifaddr *ia = NULL;
 
-		INADDR_TO_IA(sin->sin_addr, ia);
+		ia = in_get_ia(sin->sin_addr);
 		/* check for broadcast addresses */
 		if (ia == NULL)
 			ia = ifatoia(ifa_ifwithaddr(sintosa(sin)));
@@ -514,7 +514,7 @@ in_pcbconnect(void *v, struct sockaddr_i
 				xerror = EADDRNOTAVAIL;
 			return xerror;
 		}
-		INADDR_TO_IA(ifaddr->sin_addr, ia);
+		ia = in_get_ia(ifaddr->sin_addr);
 		if (ia == NULL)
 			return (EADDRNOTAVAIL);
 	}

Index: src/sys/netinet/in_var.h
diff -u src/sys/netinet/in_var.h:1.77 src/sys/netinet/in_var.h:1.78
--- src/sys/netinet/in_var.h:1.77	Fri Jul  8 03:40:34 2016
+++ src/sys/netinet/in_var.h	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_var.h,v 1.77 2016/07/08 03:40:34 ozaki-r Exp $	*/
+/*	$NetBSD: in_var.h,v 1.78 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -222,64 +222,55 @@ extern struct pslist_head in_ifaddrhead_
 extern	const	int	inetctlerrmap[];
 
 /*
- * Macro for finding whether an internet address (in_addr) belongs to one
+ * Find whether an internet address (in_addr) belongs to one
  * of our interfaces (in_ifaddr).  NULL if the address isn't ours.
  */
-#define INADDR_TO_IA(addr, ia) \
-	/* struct in_addr addr; */ \
-	/* struct in_ifaddr *ia; */ \
-{ \
-	IN_ADDRHASH_READER_FOREACH(ia, addr.s_addr) { \
-		if (in_hosteq(ia->ia_addr.sin_addr, (addr))) \
-			break; \
-	} \
-}
+static inline struct in_ifaddr *
+in_get_ia(struct in_addr addr)
+{
+	struct in_ifaddr *ia;
 
-/*
- * Macro for finding the next in_ifaddr structure with the same internet
- * address as ia. Call only with a valid ia pointer.
- * Will set ia to NULL if none found.
- */
+	IN_ADDRHASH_READER_FOREACH(ia, addr.s_addr) {
+		if (in_hosteq(ia->ia_addr.sin_addr, addr))
+			break;
+	}
 
-#define NEXT_IA_WITH_SAME_ADDR(ia) \
-	/* struct in_ifaddr *ia; */ \
-{ \
-	struct in_addr addr; \
-	addr = ia->ia_addr.sin_addr; \
-	do { \
-		ia = IN_ADDRHASH_READER_NEXT(ia); \
-	} while ((ia != NULL) && !in_hosteq(ia->ia_addr.sin_addr, addr)); \
+	return ia;
 }
 
 /*
- * Macro for finding the interface (ifnet structure) corresponding to one
- * of our IP addresses.
+ * Find whether an internet address (in_addr) belongs to a specified
+ * interface.  NULL if the address isn't ours.
  */
-#define INADDR_TO_IFP(addr, ifp) \
-	/* struct in_addr addr; */ \
-	/* struct ifnet *ifp; */ \
-{ \
-	struct in_ifaddr *ia; \
-\
-	INADDR_TO_IA(addr, ia); \
-	(ifp) = (ia == NULL) ? NULL : ia->ia_ifp; \
+static inline struct in_ifaddr *
+in_get_ia_on_iface(struct in_addr addr, struct ifnet *ifp)
+{
+	struct in_ifaddr *ia;
+
+	IN_ADDRHASH_READER_FOREACH(ia, addr.s_addr) {
+		if (in_hosteq(ia->ia_addr.sin_addr, addr) &&
+		    ia->ia_ifp == ifp)
+			break;
+	}
+
+	return ia;
 }
 
 /*
- * Macro for finding an internet address structure (in_ifaddr) corresponding
+ * Find an internet address structure (in_ifaddr) corresponding
  * to a given interface (ifnet structure).
  */
-#define IFP_TO_IA(ifp, ia) \
-	/* struct ifnet *ifp; */ \
-	/* struct in_ifaddr *ia; */ \
-{ \
-	struct ifaddr *ifa; \
-\
-	IFADDR_READER_FOREACH(ifa, ifp) { \
-		if (ifa->ifa_addr->sa_family == AF_INET) \
-			break; \
-	} \
-	(ia) = ifatoia(ifa); \
+static inline struct in_ifaddr *
+in_get_ia_from_ifp(struct ifnet *ifp)
+{
+	struct ifaddr *ifa;
+
+	IFADDR_READER_FOREACH(ifa, ifp) {
+		if (ifa->ifa_addr->sa_family == AF_INET)
+			break;
+	}
+
+	return ifatoia(ifa);
 }
 
 #include <netinet/in_selsrc.h>

Index: src/sys/netinet/ip_icmp.c
diff -u src/sys/netinet/ip_icmp.c:1.149 src/sys/netinet/ip_icmp.c:1.150
--- src/sys/netinet/ip_icmp.c:1.149	Thu Jul  7 09:32:02 2016
+++ src/sys/netinet/ip_icmp.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_icmp.c,v 1.149 2016/07/07 09:32:02 ozaki-r Exp $	*/
+/*	$NetBSD: ip_icmp.c,v 1.150 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -94,7 +94,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_icmp.c,v 1.149 2016/07/07 09:32:02 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_icmp.c,v 1.150 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ipsec.h"
@@ -712,7 +712,7 @@ icmp_reflect(struct mbuf *m)
 	 */
 
 	/* Look for packet addressed to us */
-	INADDR_TO_IA(t, ia);
+	ia = in_get_ia(t);
 	if (ia && (ia->ia4_flags & IN_IFF_NOTREADY))
 		ia = NULL;
 
@@ -758,14 +758,9 @@ icmp_reflect(struct mbuf *m)
 		if (sin) {
 			t = sin->sin_addr;
 			sin = NULL;
-			INADDR_TO_IA(t, ia);
-			while (ia) {
-				if (ia->ia_ifp == rcvif) {
-					sin = &ia->ia_addr;
-					break;
-				}
-				NEXT_IA_WITH_SAME_ADDR(ia);
-			}
+			ia = in_get_ia_on_iface(t, rcvif);
+			if (ia != NULL)
+				sin = &ia->ia_addr;
 		}
 	}
 

Index: src/sys/netinet/ip_output.c
diff -u src/sys/netinet/ip_output.c:1.258 src/sys/netinet/ip_output.c:1.259
--- src/sys/netinet/ip_output.c:1.258	Tue Jun 21 03:28:27 2016
+++ src/sys/netinet/ip_output.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: ip_output.c,v 1.258 2016/06/21 03:28:27 ozaki-r Exp $	*/
+/*	$NetBSD: ip_output.c,v 1.259 2016/07/08 04:33:30 ozaki-r Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.258 2016/06/21 03:28:27 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_output.c,v 1.259 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -336,7 +336,7 @@ ip_output(struct mbuf *m0, struct mbuf *
 			goto bad;
 		}
 		mtu = ifp->if_mtu;
-		IFP_TO_IA(ifp, ia);
+		ia = in_get_ia_from_ifp(ifp);
 		isbroadcast = 0;
 	} else {
 		if (rt == NULL)
@@ -404,7 +404,7 @@ ip_output(struct mbuf *m0, struct mbuf *
 			struct in_ifaddr *xia;
 			struct ifaddr *xifa;
 
-			IFP_TO_IA(ifp, xia);
+			xia = in_get_ia_from_ifp(ifp);
 			if (!xia) {
 				error = EADDRNOTAVAIL;
 				goto bad;
@@ -583,7 +583,7 @@ sendit:
 	 * search for the source address structure to
 	 * maintain output statistics.
 	 */
-	INADDR_TO_IA(ip->ip_src, ia);
+	ia = in_get_ia(ip->ip_src);
 #endif
 
 	/* Maybe skip checksums on loopback interfaces. */
@@ -1734,7 +1734,7 @@ ip_getmoptions(struct ip_moptions *imo, 
 
 			ifp = if_byindex(imo->imo_multicast_if_index);
 			if (ifp != NULL) {
-				IFP_TO_IA(ifp, ia);
+				ia = in_get_ia_from_ifp(ifp);
 			}
 			addr = ia ? ia->ia_addr.sin_addr : zeroin_addr;
 			pserialize_read_exit(s);

Index: src/sys/netinet6/in6_var.h
diff -u src/sys/netinet6/in6_var.h:1.82 src/sys/netinet6/in6_var.h:1.83
--- src/sys/netinet6/in6_var.h:1.82	Fri Jul  8 03:40:34 2016
+++ src/sys/netinet6/in6_var.h	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: in6_var.h,v 1.82 2016/07/08 03:40:34 ozaki-r Exp $	*/
+/*	$NetBSD: in6_var.h,v 1.83 2016/07/08 04:33:30 ozaki-r Exp $	*/
 /*	$KAME: in6_var.h,v 1.81 2002/06/08 11:16:51 itojun Exp $	*/
 
 /*
@@ -562,7 +562,7 @@ extern callout_t in6_tmpaddrtimer_ch;
  * to a given interface (ifnet structure).
  */
 static inline struct in6_ifaddr *
-ifp_to_ia6(struct ifnet *ifp)
+in6_get_ia_from_ifp(struct ifnet *ifp)
 {
 	struct ifaddr *ifa;
 
@@ -573,12 +573,6 @@ ifp_to_ia6(struct ifnet *ifp)
 	return (struct in6_ifaddr *)ifa;
 }
 
-#define	IFP_TO_IA6(__ifp, __ia)				\
-do {							\
-	(__ia) = ifp_to_ia6((__ifp));				\
-} while (/*CONSTCOND*/0)
-
-
 #endif /* _KERNEL */
 
 /*
@@ -630,7 +624,7 @@ in6_lookup_multi(struct in6_addr *addr, 
 	struct in6_multi *in6m;
 	struct in6_ifaddr *ia;
 
-	if ((ia = ifp_to_ia6(ifp)) == NULL)
+	if ((ia = in6_get_ia_from_ifp(ifp)) == NULL)
 	  	return NULL;
 	LIST_FOREACH(in6m, &ia->ia6_multiaddrs, in6m_entry) {
 		if (IN6_ARE_ADDR_EQUAL(&in6m->in6m_addr, addr))

Index: src/sys/netinet6/mld6.c
diff -u src/sys/netinet6/mld6.c:1.71 src/sys/netinet6/mld6.c:1.72
--- src/sys/netinet6/mld6.c:1.71	Thu Jul  7 09:32:03 2016
+++ src/sys/netinet6/mld6.c	Fri Jul  8 04:33:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: mld6.c,v 1.71 2016/07/07 09:32:03 ozaki-r Exp $	*/
+/*	$NetBSD: mld6.c,v 1.72 2016/07/08 04:33:30 ozaki-r Exp $	*/
 /*	$KAME: mld6.c,v 1.25 2001/01/16 14:14:18 itojun Exp $	*/
 
 /*
@@ -102,7 +102,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mld6.c,v 1.71 2016/07/07 09:32:03 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mld6.c,v 1.72 2016/07/08 04:33:30 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -428,7 +428,7 @@ mld_input(struct mbuf *m, int off)
 		 */
 		timer = ntohs(mldh->mld_maxdelay);
 
-		IFP_TO_IA6(ifp, ia);
+		ia = in6_get_ia_from_ifp(ifp);
 		if (ia == NULL)
 			break;
 
@@ -664,7 +664,7 @@ in6_addmulti(struct in6_addr *maddr6, st
 		callout_init(&in6m->in6m_timer_ch, CALLOUT_MPSAFE);
 		callout_setfunc(&in6m->in6m_timer_ch, mld_timeo, in6m);
 
-		IFP_TO_IA6(ifp, ia);
+		ia = in6_get_ia_from_ifp(ifp);
 		if (ia == NULL) {
 			callout_destroy(&in6m->in6m_timer_ch);
 			free(in6m, M_IPMADDR);
@@ -813,7 +813,7 @@ in6_savemkludge(struct in6_ifaddr *oia)
 	struct in6_ifaddr *ia;
 	struct in6_multi *in6m;
 
-	IFP_TO_IA6(oia->ia_ifp, ia);
+	ia = in6_get_ia_from_ifp(oia->ia_ifp);
 	if (ia) {	/* there is another address */
 		KASSERT(ia != oia);
 		while ((in6m = LIST_FIRST(&oia->ia6_multiaddrs)) != NULL) {

Reply via email to