Module Name:    src
Committed By:   pgoyette
Date:           Mon Oct 15 04:33:34 UTC 2018

Modified Files:
        src/sys/compat/common [pgoyette-compat]: compat_40_mod.c if_43.c
            rtsock_70.c uipc_syscalls_40.c uipc_syscalls_50.c
        src/sys/compat/net [pgoyette-compat]: route.h route_70.h
        src/sys/kern [pgoyette-compat]: compat_stub.c
        src/sys/net [pgoyette-compat]: rtsock.c
        src/sys/sys [pgoyette-compat]: compat_stub.h rnd.h
Removed Files:
        src/sys/compat/common [pgoyette-compat]: if_40.h if_43.h
        src/sys/compat/sys [pgoyette-compat]: if.h

Log Message:
Convert a couple more hooks to the MP-safe mechanism.

While here, clean up some headers and remove any that are now empty.


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/compat/common/compat_40_mod.c
cvs rdiff -u -r1.1.2.3 -r0 src/sys/compat/common/if_40.h
cvs rdiff -u -r1.14.2.9 -r1.14.2.10 src/sys/compat/common/if_43.c
cvs rdiff -u -r1.1.20.2 -r0 src/sys/compat/common/if_43.h
cvs rdiff -u -r1.2.2.1 -r1.2.2.2 src/sys/compat/common/rtsock_70.c
cvs rdiff -u -r1.15.2.11 -r1.15.2.12 src/sys/compat/common/uipc_syscalls_40.c
cvs rdiff -u -r1.3.56.11 -r1.3.56.12 src/sys/compat/common/uipc_syscalls_50.c
cvs rdiff -u -r1.2 -r1.2.14.1 src/sys/compat/net/route.h
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/sys/compat/net/route_70.h
cvs rdiff -u -r1.1.2.1 -r0 src/sys/compat/sys/if.h
cvs rdiff -u -r1.1.2.27 -r1.1.2.28 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.238.2.11 -r1.238.2.12 src/sys/net/rtsock.c
cvs rdiff -u -r1.1.2.39 -r1.1.2.40 src/sys/sys/compat_stub.h
cvs rdiff -u -r1.49.16.1 -r1.49.16.2 src/sys/sys/rnd.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/common/compat_40_mod.c
diff -u src/sys/compat/common/compat_40_mod.c:1.1.2.6 src/sys/compat/common/compat_40_mod.c:1.1.2.7
--- src/sys/compat/common/compat_40_mod.c:1.1.2.6	Sat Sep 22 04:56:28 2018
+++ src/sys/compat/common/compat_40_mod.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: compat_40_mod.c,v 1.1.2.6 2018/09/22 04:56:28 pgoyette Exp $	*/
+/*	$NetBSD: compat_40_mod.c,v 1.1.2.7 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_40_mod.c,v 1.1.2.6 2018/09/22 04:56:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_40_mod.c,v 1.1.2.7 2018/10/15 04:33:34 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -50,8 +50,6 @@ __KERNEL_RCSID(0, "$NetBSD: compat_40_mo
 #include <compat/common/compat_util.h>
 #include <compat/common/compat_mod.h>
 
-#include <compat/common/if_40.h>
-
 int
 compat_40_init(void)
 {

Index: src/sys/compat/common/if_43.c
diff -u src/sys/compat/common/if_43.c:1.14.2.9 src/sys/compat/common/if_43.c:1.14.2.10
--- src/sys/compat/common/if_43.c:1.14.2.9	Wed Oct  3 21:52:02 2018
+++ src/sys/compat/common/if_43.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_43.c,v 1.14.2.9 2018/10/03 21:52:02 pgoyette Exp $	*/
+/*	$NetBSD: if_43.c,v 1.14.2.10 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1990, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.9 2018/10/03 21:52:02 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.14.2.10 2018/10/15 04:33:34 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -74,7 +74,6 @@ __KERNEL_RCSID(0, "$NetBSD: if_43.c,v 1.
 
 #include <compat/common/compat_util.h>
 #include <compat/common/compat_mod.h>
-#include <compat/common/if_43.h>
 #include <uvm/uvm_extern.h>
 
 #if defined(COMPAT_43)

Index: src/sys/compat/common/rtsock_70.c
diff -u src/sys/compat/common/rtsock_70.c:1.2.2.1 src/sys/compat/common/rtsock_70.c:1.2.2.2
--- src/sys/compat/common/rtsock_70.c:1.2.2.1	Thu Mar 15 05:10:05 2018
+++ src/sys/compat/common/rtsock_70.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtsock_70.c,v 1.2.2.1 2018/03/15 05:10:05 pgoyette Exp $	*/
+/*	$NetBSD: rtsock_70.c,v 1.2.2.2 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -30,13 +30,15 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.2.2.1 2018/03/15 05:10:05 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.2.2.2 2018/10/15 04:33:34 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
 #endif
 
 #include <sys/mbuf.h>
+#include <sys/compat_stub.h>
+
 #include <net/if.h>
 #include <net/route.h>
 
@@ -44,24 +46,7 @@ __KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,
 #include <compat/net/route.h>
 #include <compat/net/route_70.h>
 
-static void (*orig_70_rt_newaddrmsg1)(int, struct ifaddr *);
-
-void
-rtsock_70_init(void)
-{
-
-	orig_70_rt_newaddrmsg1 = vec_70_rt_newaddrmsg1;
-	vec_70_rt_newaddrmsg1 = compat_70_rt_newaddrmsg1;
-}
-
-void
-rtsock_70_fini(void)
-{
-
-	vec_70_rt_newaddrmsg1 = orig_70_rt_newaddrmsg1;
-}
-
-void
+int
 compat_70_rt_newaddrmsg1(int cmd, struct ifaddr *ifa)
 {
 	struct rt_addrinfo info;
@@ -102,10 +87,12 @@ compat_70_rt_newaddrmsg1(int cmd, struct
 
 	m = rt_msg1(ncmd, &info, &ifam, sizeof(ifam));
 	if (m == NULL)
-		return;
+		return 0;
 
 	mtod(m, struct ifa_msghdr70 *)->ifam_addrs = info.rti_addrs;
 	route_enqueue(m, sa ? sa->sa_family : 0);
+
+	return 0;
 }
 
 int
@@ -129,3 +116,21 @@ compat_70_iflist_addr(struct rt_walkarg 
 	}
 	return error;
 }
+
+MODULE_SET_HOOK2(rtsock_70_hook, "rts_70", compat_70_rt_newaddrmsg1,
+    compat_70_iflist_addr);
+MODULE_UNSET_HOOK2(rtsock_70_hook);
+
+void
+rtsock_70_init(void)
+{
+
+	rtsock_70_hook_set();
+}
+
+void
+rtsock_70_fini(void)
+{
+
+	rtsock_70_hook_unset();
+}

Index: src/sys/compat/common/uipc_syscalls_40.c
diff -u src/sys/compat/common/uipc_syscalls_40.c:1.15.2.11 src/sys/compat/common/uipc_syscalls_40.c:1.15.2.12
--- src/sys/compat/common/uipc_syscalls_40.c:1.15.2.11	Sat Sep 22 04:56:28 2018
+++ src/sys/compat/common/uipc_syscalls_40.c	Mon Oct 15 04:33:34 2018
@@ -1,9 +1,9 @@
-/*	$NetBSD: uipc_syscalls_40.c,v 1.15.2.11 2018/09/22 04:56:28 pgoyette Exp $	*/
+/*	$NetBSD: uipc_syscalls_40.c,v 1.15.2.12 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /* written by Pavel Cahyna, 2006. Public domain. */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_40.c,v 1.15.2.11 2018/09/22 04:56:28 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_syscalls_40.c,v 1.15.2.12 2018/10/15 04:33:34 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -23,11 +23,9 @@ __KERNEL_RCSID(0, "$NetBSD: uipc_syscall
 
 #include <net/if.h>
 
-#include <compat/sys/if.h>
 #include <compat/sys/socket.h>
 #include <compat/sys/sockio.h>
 
-#include <compat/common/if_40.h>
 #include <compat/common/compat_mod.h>
 
 /*

Index: src/sys/compat/common/uipc_syscalls_50.c
diff -u src/sys/compat/common/uipc_syscalls_50.c:1.3.56.11 src/sys/compat/common/uipc_syscalls_50.c:1.3.56.12
--- src/sys/compat/common/uipc_syscalls_50.c:1.3.56.11	Sun Sep 30 01:45:49 2018
+++ src/sys/compat/common/uipc_syscalls_50.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: uipc_syscalls_50.c,v 1.3.56.11 2018/09/30 01:45:49 pgoyette Exp $	*/
+/*	$NetBSD: uipc_syscalls_50.c,v 1.3.56.12 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,6 @@
 #include <compat/sys/time.h>
 #include <compat/sys/socket.h>
 #include <compat/sys/sockio.h>
-#include <compat/sys/if.h>
 
 #include <compat/common/compat_mod.h>
 

Index: src/sys/compat/net/route.h
diff -u src/sys/compat/net/route.h:1.2 src/sys/compat/net/route.h:1.2.14.1
--- src/sys/compat/net/route.h:1.2	Wed Sep 21 10:50:23 2016
+++ src/sys/compat/net/route.h	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: route.h,v 1.2 2016/09/21 10:50:23 roy Exp $	*/
+/*	$NetBSD: route.h,v 1.2.14.1 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*
  * Copyright (c) 1980, 1986, 1993
@@ -88,7 +88,7 @@ void	compat_50_rt_missmsg(int, const str
 struct mbuf *
 	compat_50_rt_msg1(int, struct rt_addrinfo *, void *, int);
 void	compat_50_rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *);
-void	compat_70_rt_newaddrmsg1(int, struct ifaddr *);
+int	compat_70_rt_newaddrmsg1(int, struct ifaddr *);
 #endif
 
 #define RTM_OVERSION	3	/* Up the ante and ignore older versions */

Index: src/sys/compat/net/route_70.h
diff -u src/sys/compat/net/route_70.h:1.1.2.2 src/sys/compat/net/route_70.h:1.1.2.3
--- src/sys/compat/net/route_70.h:1.1.2.2	Fri Mar 16 08:10:26 2018
+++ src/sys/compat/net/route_70.h	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: route_70.h,v 1.1.2.2 2018/03/16 08:10:26 pgoyette Exp $	*/
+/*	$NetBSD: route_70.h,v 1.1.2.3 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -39,10 +39,6 @@
 void rtsock_70_init(void);
 void rtsock_70_fini(void);
 
-extern void (*vec_70_rt_newaddrmsg1)(int, struct ifaddr *);
-extern int (*vec_70_iflist_addr)(struct rt_walkarg *, struct ifaddr *,
-                       struct rt_addrinfo *);
-
 extern bool vec_ocreds_valid;
 
 #endif /* !_COMPAT_NET_ROUTE_70_H_ */

Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.1.2.27 src/sys/kern/compat_stub.c:1.1.2.28
--- src/sys/kern/compat_stub.c:1.1.2.27	Fri Oct 12 22:30:54 2018
+++ src/sys/kern/compat_stub.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.1.2.27 2018/10/12 22:30:54 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.c,v 1.1.2.28 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -157,6 +157,11 @@ struct uipc_syscalls_50_hook_t uipc_sysc
 struct rtsock14_hook_t rtsock14_hook;
 
 /*
+ * rtsock 70 compatability
+ */
+struct rtsock_70_hook_t rtsock_70_hook;
+
+/*
  * modctl handler for old style OSTAT
  */
 struct compat_modstat_80_hook_t compat_modstat_80_hook;

Index: src/sys/net/rtsock.c
diff -u src/sys/net/rtsock.c:1.238.2.11 src/sys/net/rtsock.c:1.238.2.12
--- src/sys/net/rtsock.c:1.238.2.11	Sun Sep 30 01:45:56 2018
+++ src/sys/net/rtsock.c	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: rtsock.c,v 1.238.2.11 2018/09/30 01:45:56 pgoyette Exp $	*/
+/*	$NetBSD: rtsock.c,v 1.238.2.12 2018/10/15 04:33:34 pgoyette 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.238.2.11 2018/09/30 01:45:56 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.238.2.12 2018/10/15 04:33:34 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_inet.h"
@@ -103,7 +103,6 @@ extern void sctp_delete_ip_address(struc
 
 #include <compat/net/if.h>
 #include <compat/net/route.h>
-#include <compat/net/route_70.h>
 
 #ifdef COMPAT_RTSOCK
 #define	RTM_XVERSION	RTM_OVERSION
@@ -199,15 +198,11 @@ sysctl_iflist_addr(struct rt_walkarg *, 
 /*
  * Compat linkage
  */
-static void stub_70_rt_newaddrmsg1(int cmd, struct ifaddr*ifa)
+static int stub_70_rt_newaddrmsg1(int cmd, struct ifaddr *ifa)
 {
 
-	/* nothing */
+	return 0;
 }
-
-void (*vec_70_rt_newaddrmsg1)(int, struct ifaddr *) = stub_70_rt_newaddrmsg1;
-int (*vec_70_iflist_addr)(struct rt_walkarg *, struct ifaddr *,
-		       struct rt_addrinfo *)= sysctl_iflist_addr;
 #endif
 
 static void
@@ -1378,10 +1373,6 @@ COMPATNAME(rt_missmsg)(int type, const s
 
 /*
  * MODULE_HOOK glue for rtsock14_oifmsg and rtsock14_iflist
- *
- * Make them static since this same code is compiled for different
- * COMPAT_xx options and we would otherwise end up with duplicate
- * global symbols.
  */
 MODULE_CALL_HOOK_DECL(rtsock14_hook, f1, (struct ifnet *ifp));
 #ifndef COMPAT_RTSOCK
@@ -1400,6 +1391,24 @@ MODULE_CALL_HOOK(rtsock14_hook, f2,
 #endif
 
 /*
+ * MODULE_HOOK glue for rtsock70_ifaddr_list and rtsock70_newaddrmsg1
+ */
+MODULE_CALL_HOOK_DECL(rtsock_70_hook, f1, (int, struct ifaddr *));
+#ifndef COMPAT_RTSOCK
+MODULE_CALL_HOOK(rtsock_70_hook, f1, (int cmd, struct ifaddr *ifa),
+    (cmd, ifa), stub_70_rt_newaddrmsg1(cmd, ifa));
+#endif
+
+MODULE_CALL_HOOK_DECL(rtsock_70_hook, f2,
+    (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
+#ifndef COMPAT_RTSOCK
+MODULE_CALL_HOOK(rtsock_70_hook, f2,
+    (struct rt_walkarg *w, struct ifaddr *ifa, struct rt_addrinfo *info),
+    (w, ifa, info), 
+    sysctl_iflist_addr(w, ifa, info));
+#endif
+
+/*
  * This routine is called to generate a message from the routing
  * socket indicating that the status of a network interface has changed.
  */
@@ -1516,7 +1525,7 @@ COMPATNAME(rt_newaddrmsg)(int cmd, struc
 			default:
 				panic("%s: unknown command %d", __func__, cmd);
 			}
-			(*vec_70_rt_newaddrmsg1)(ncmd, ifa);
+			rtsock_70_hook_f1_call(ncmd, ifa);
 			info.rti_info[RTAX_IFA] = sa = ifa->ifa_addr;
 			KASSERT(ifp->if_dl != NULL);
 			info.rti_info[RTAX_IFP] = ifp->if_dl->ifa_addr;
@@ -1848,7 +1857,7 @@ sysctl_iflist(int af, struct rt_walkarg 
 			info.rti_info[RTAX_IFA] = ifa->ifa_addr;
 			info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
 			info.rti_info[RTAX_BRD] = ifa->ifa_dstaddr;
-			error = (*vec_70_iflist_addr)(w, ifa, &info);
+			error = rtsock_70_hook_f2_call(w, ifa, &info);
 
 			_s = pserialize_read_enter();
 			ifa_release(ifa, &_psref);

Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.1.2.39 src/sys/sys/compat_stub.h:1.1.2.40
--- src/sys/sys/compat_stub.h:1.1.2.39	Fri Oct 12 22:30:54 2018
+++ src/sys/sys/compat_stub.h	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.39 2018/10/12 22:30:54 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.h,v 1.1.2.40 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -201,6 +201,14 @@ MODULE_HOOK2(rtsock14_hook, (struct ifne
     (struct ifnet *, struct rt_walkarg *, struct rt_addrinfo *, size_t));
 
 /*
+ * Hooks for rtsock_70
+ */
+struct ifaddr;
+MODULE_HOOK2(rtsock_70_hook, (int, struct ifaddr *),
+    (struct rt_walkarg *, struct ifaddr *, struct rt_addrinfo *));
+
+
+/*
  * modctl handler for old style OSTAT
  */
 struct iovec;

Index: src/sys/sys/rnd.h
diff -u src/sys/sys/rnd.h:1.49.16.1 src/sys/sys/rnd.h:1.49.16.2
--- src/sys/sys/rnd.h:1.49.16.1	Wed Mar 21 02:01:34 2018
+++ src/sys/sys/rnd.h	Mon Oct 15 04:33:34 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: rnd.h,v 1.49.16.1 2018/03/21 02:01:34 pgoyette Exp $	*/
+/*	$NetBSD: rnd.h,v 1.49.16.2 2018/10/15 04:33:34 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -49,9 +49,6 @@ int		rnd_system_ioctl(struct file *, u_l
 
 extern int	rnd_initial_entropy;
 
-extern int (*vec_compat_50_rnd_ioctl)(struct file *, u_long, void *);
-extern int (*vec_compat32_50_rnd_ioctl)(struct file *, u_long, void *);
-
 #endif /* _KERNEL */
 
 #endif /* !_SYS_RND_H_ */

Reply via email to