Recommit previous "Remove useless struct in6_ifextra"
authorkn <kn@openbsd.org>
Wed, 23 Nov 2022 07:57:39 +0000 (07:57 +0000)
committerkn <kn@openbsd.org>
Wed, 23 Nov 2022 07:57:39 +0000 (07:57 +0000)
This was the right diff after all, I just confused myself between trees.

OK bluhm
---
  Remove useless struct in6_ifextra

  in6_var.h r1.75 removed all other struct members.

  Now It only contains a single struct nd_ifinfo pointer, so address family
  specific data might as well be just that.

  ND_IFINFO() is the only way nd6_nbr.c and nd6.c access this data, there is
  no other usage of if_afdata[].

  One allocation and unhelpful indirection less per interface.

  All under _KERNEL.

  OK claudio

sys/netinet6/in6.c
sys/netinet6/in6_var.h
sys/netinet6/nd6.h

index 3b811b7..0c45b30 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: in6.c,v 1.254 2022/11/22 19:28:29 kn Exp $    */
+/*     $OpenBSD: in6.c,v 1.255 2022/11/23 07:57:39 kn Exp $    */
 /*     $KAME: in6.c,v 1.372 2004/06/14 08:14:21 itojun Exp $   */
 
 /*
@@ -1601,19 +1601,11 @@ in6if_do_dad(struct ifnet *ifp)
 void *
 in6_domifattach(struct ifnet *ifp)
 {
-       struct in6_ifextra *ext;
-
-       ext = malloc(sizeof(*ext), M_IFADDR, M_WAITOK | M_ZERO);
-
-       ext->nd_ifinfo = nd6_ifattach(ifp);
-       return ext;
+       return nd6_ifattach(ifp);
 }
 
 void
 in6_domifdetach(struct ifnet *ifp, void *aux)
 {
-       struct in6_ifextra *ext = (struct in6_ifextra *)aux;
-
-       nd6_ifdetach(ext->nd_ifinfo);
-       free(ext, M_IFADDR, sizeof(*ext));
+       nd6_ifdetach(aux);
 }
index f076f7b..1323eee 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: in6_var.h,v 1.77 2022/11/22 19:28:29 kn Exp $ */
+/*     $OpenBSD: in6_var.h,v 1.78 2022/11/23 07:57:39 kn Exp $ */
 /*     $KAME: in6_var.h,v 1.55 2001/02/16 12:49:45 itojun Exp $        */
 
 /*
@@ -87,11 +87,6 @@ struct in6_addrlifetime {
 };
 
 #ifdef _KERNEL
-struct nd_ifinfo;
-struct in6_ifextra {
-       struct nd_ifinfo *nd_ifinfo;
-};
-
 struct in6_ifaddr {
        struct  ifaddr ia_ifa;          /* protocol-independent info */
 #define        ia_ifp          ia_ifa.ifa_ifp
index 85b5cef..e43e9b7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: nd6.h,v 1.82 2022/11/22 19:28:29 kn Exp $     */
+/*     $OpenBSD: nd6.h,v 1.83 2022/11/23 07:57:39 kn Exp $     */
 /*     $KAME: nd6.h,v 1.95 2002/06/08 11:31:06 itojun Exp $    */
 
 /*
@@ -94,7 +94,7 @@ struct        in6_ndifreq {
 #include <sys/queue.h>
 
 #define ND_IFINFO(ifp) \
-       (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->nd_ifinfo)
+       ((struct nd_ifinfo *)(ifp)->if_afdata[AF_INET6])
 
 struct llinfo_nd6 {
        TAILQ_ENTRY(llinfo_nd6) ln_list;