Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Split ip_ecn code into its own module, so it can be shared b...
details: https://anonhg.NetBSD.org/src/rev/06420c921973
branches: trunk
changeset: 358047:06420c921973
user: pgoyette <pgoyette%NetBSD.org@localhost>
date: Sat Dec 09 08:03:06 2017 +0000
description:
Split ip_ecn code into its own module, so it can be shared between
gif(4), stf(4), and ipsec(4). Without this, loading the if_gif
module can result in redefined global symbols if either ipsec(4) or
stf(4) but not gif(4) is built into the kernel.
Fixes PR kern/52795 (as reported by martin@ via irc).
XXX pullup to netbsd-8
diffstat:
distrib/sets/lists/modules/mi | 4 +++-
sys/modules/Makefile | 3 ++-
sys/modules/if_gif/Makefile | 4 ++--
sys/modules/ip_ecn/Makefile | 13 +++++++++++++
sys/net/if_gif.c | 6 +++---
sys/netinet/ip_ecn.c | 22 ++++++++++++++++++++--
6 files changed, 43 insertions(+), 9 deletions(-)
diffs (141 lines):
diff -r 3b9252fcec71 -r 06420c921973 distrib/sets/lists/modules/mi
--- a/distrib/sets/lists/modules/mi Sat Dec 09 05:18:45 2017 +0000
+++ b/distrib/sets/lists/modules/mi Sat Dec 09 08:03:06 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.111 2017/06/11 22:22:36 pgoyette Exp $
+# $NetBSD: mi,v 1.112 2017/12/09 08:03:06 pgoyette Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -182,6 +182,8 @@
./@MODULEDIR@/if_vlan/if_vlan.kmod base-kernel-modules kmod
./@MODULEDIR@/iic base-kernel-modules kmod
./@MODULEDIR@/iic/iic.kmod base-kernel-modules kmod
+./@MODULEDIR@/ip_ecn base-kernel-modules kmod
+./@MODULEDIR@/ip_ecn/ip_ecn.kmod base-kernel-modules kmod
./@MODULEDIR@/ipl base-kernel-modules kmod
./@MODULEDIR@/ipl/ipl.kmod base-kernel-modules kmod
./@MODULEDIR@/iscsi base-kernel-modules kmod,iscsi
diff -r 3b9252fcec71 -r 06420c921973 sys/modules/Makefile
--- a/sys/modules/Makefile Sat Dec 09 05:18:45 2017 +0000
+++ b/sys/modules/Makefile Sat Dec 09 08:03:06 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.195 2017/08/11 12:58:14 maxv Exp $
+# $NetBSD: Makefile,v 1.196 2017/12/09 08:03:07 pgoyette Exp $
.include <bsd.own.mk>
@@ -70,6 +70,7 @@
SUBDIR+= if_tun tun
SUBDIR+= if_vlan
SUBDIR+= iic
+SUBDIR+= ip_ecn
SUBDIR+= ipl
SUBDIR+= kernfs
SUBDIR+= layerfs
diff -r 3b9252fcec71 -r 06420c921973 sys/modules/if_gif/Makefile
--- a/sys/modules/if_gif/Makefile Sat Dec 09 05:18:45 2017 +0000
+++ b/sys/modules/if_gif/Makefile Sat Dec 09 08:03:06 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2016/08/18 11:41:58 knakahara Exp $
+# $NetBSD: Makefile,v 1.3 2017/12/09 08:03:07 pgoyette Exp $
.include "../Makefile.inc"
@@ -6,7 +6,7 @@
KMOD= if_gif
IOCONF= gif.ioconf
-SRCS= if_gif.c in_gif.c in6_gif.c ip_ecn.c
+SRCS= if_gif.c in_gif.c in6_gif.c
CPPFLAGS+= -DINET
CPPFLAGS+= -DINET6
diff -r 3b9252fcec71 -r 06420c921973 sys/modules/ip_ecn/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/modules/ip_ecn/Makefile Sat Dec 09 08:03:06 2017 +0000
@@ -0,0 +1,13 @@
+# $NetBSD: Makefile,v 1.1 2017/12/09 08:03:07 pgoyette Exp $
+
+.include "../Makefile.inc"
+
+.PATH: ${S}/netinet
+
+KMOD= ip_ecn
+SRCS= ip_ecn.c
+
+CPPFLAGS+= -DINET
+CPPFLAGS+= -DINET6
+
+.include <bsd.kmodule.mk>
diff -r 3b9252fcec71 -r 06420c921973 sys/net/if_gif.c
--- a/sys/net/if_gif.c Sat Dec 09 05:18:45 2017 +0000
+++ b/sys/net/if_gif.c Sat Dec 09 08:03:06 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_gif.c,v 1.135 2017/12/06 08:23:17 knakahara Exp $ */
+/* $NetBSD: if_gif.c,v 1.136 2017/12/09 08:03:06 pgoyette Exp $ */
/* $KAME: if_gif.c,v 1.76 2001/08/20 02:01:02 kjc Exp $ */
/*
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_gif.c,v 1.135 2017/12/06 08:23:17 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_gif.c,v 1.136 2017/12/09 08:03:06 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1187,4 +1187,4 @@
*/
#include "if_module.h"
-IF_MODULE(MODULE_CLASS_DRIVER, gif, "")
+IF_MODULE(MODULE_CLASS_DRIVER, gif, "ip_ecn")
diff -r 3b9252fcec71 -r 06420c921973 sys/netinet/ip_ecn.c
--- a/sys/netinet/ip_ecn.c Sat Dec 09 05:18:45 2017 +0000
+++ b/sys/netinet/ip_ecn.c Sat Dec 09 08:03:06 2017 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ip_ecn.c,v 1.16 2015/08/24 22:21:26 pooka Exp $ */
+/* $NetBSD: ip_ecn.c,v 1.17 2017/12/09 08:03:07 pgoyette Exp $ */
/* $KAME: ip_ecn.c,v 1.11 2001/05/03 16:09:29 itojun Exp $ */
/*
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_ecn.c,v 1.16 2015/08/24 22:21:26 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_ecn.c,v 1.17 2017/12/09 08:03:07 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -47,6 +47,7 @@
#include <sys/malloc.h>
#include <sys/mbuf.h>
#include <sys/errno.h>
+#include <sys/module.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
@@ -130,3 +131,20 @@
*inner |= htonl((u_int32_t)inner8 << 20);
}
#endif
+
+MODULE(MODULE_CLASS_MISC, ip_ecn, NULL);
+
+static int
+ip_ecn_modcmd(modcmd_t cmd, void *arg)
+{
+
+ switch (cmd) {
+ case MODULE_CMD_INIT:
+ case MODULE_CMD_FINI:
+ return 0;
+
+ default:
+ return ENOTTY;
+ }
+}
+
Home |
Main Index |
Thread Index |
Old Index