Module Name: src
Committed By: pgoyette
Date: Sat Mar 23 09:48:05 UTC 2019
Modified Files:
src/sys/modules/if_agr: Makefile
src/sys/net: if.c if.h if_vlan.c
src/sys/net/agr: if_agr.c
Log Message:
Replace compile-time checking for vlan code with a module hook.
Should resolve the errors reported on irc when booting a kernel which
has agr without vlan:
[ 1.0000000] WARNING: module error: built-in module if_agr can't find
builtin dependency `if_vlan'
[ 1.0000000] WARNING: module error: built-in module if_agr prerequisite
if_vlan failed, error 2
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/modules/if_agr/Makefile
cvs rdiff -u -r1.446 -r1.447 src/sys/net/if.c
cvs rdiff -u -r1.268 -r1.269 src/sys/net/if.h
cvs rdiff -u -r1.133 -r1.134 src/sys/net/if_vlan.c
cvs rdiff -u -r1.47 -r1.48 src/sys/net/agr/if_agr.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/modules/if_agr/Makefile
diff -u src/sys/modules/if_agr/Makefile:1.3 src/sys/modules/if_agr/Makefile:1.4
--- src/sys/modules/if_agr/Makefile:1.3 Sun Feb 17 04:05:51 2019
+++ src/sys/modules/if_agr/Makefile Sat Mar 23 09:48:04 2019
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2019/02/17 04:05:51 rin Exp $
+# $NetBSD: Makefile,v 1.4 2019/03/23 09:48:04 pgoyette Exp $
.include "../Makefile.inc"
@@ -25,7 +25,7 @@ if_agrsoftc.c \
if_agrsubr.c \
if_agrtimer.c
-CPPFLAGS+= -DINET -DNVLAN=1
+CPPFLAGS+= -DINET
WARNS= 3
Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.446 src/sys/net/if.c:1.447
--- src/sys/net/if.c:1.446 Fri Mar 1 11:06:57 2019
+++ src/sys/net/if.c Sat Mar 23 09:48:04 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if.c,v 1.446 2019/03/01 11:06:57 pgoyette Exp $ */
+/* $NetBSD: if.c,v 1.447 2019/03/23 09:48:04 pgoyette Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.446 2019/03/01 11:06:57 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.447 2019/03/23 09:48:04 pgoyette Exp $");
#if defined(_KERNEL_OPT)
#include "opt_inet.h"
@@ -119,6 +119,7 @@ __KERNEL_RCSID(0, "$NetBSD: if.c,v 1.446
#include <sys/xcall.h>
#include <sys/cpu.h>
#include <sys/intr.h>
+#include <sys/module_hook.h>
#include <sys/compat_stub.h>
#include <net/if.h>
@@ -244,6 +245,11 @@ static void if_deferred_start_destroy(st
static void sysctl_net_pktq_setup(struct sysctllog **, int);
#endif
+/*
+ * Hook for if_vlan - needed by if_agr
+ */
+struct if_vlan_vlan_input_hook_t if_vlan_vlan_input_hook;
+
static void if_sysctl_setup(struct sysctllog **);
static int
Index: src/sys/net/if.h
diff -u src/sys/net/if.h:1.268 src/sys/net/if.h:1.269
--- src/sys/net/if.h:1.268 Tue Feb 5 06:43:20 2019
+++ src/sys/net/if.h Sat Mar 23 09:48:04 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if.h,v 1.268 2019/02/05 06:43:20 msaitoh Exp $ */
+/* $NetBSD: if.h,v 1.269 2019/03/23 09:48:04 pgoyette Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -88,6 +88,7 @@
#include <sys/pslist.h>
#include <sys/pserialize.h>
#include <sys/psref.h>
+#include <sys/module_hook.h>
#endif
/*
@@ -1330,6 +1331,11 @@ int sysctl_ifq(int *name, u_int namelen,
#define IFQCTL_PEAK 3
#define IFQCTL_DROPS 4
+/*
+ * Hook for if_vlan - needed by if_agr
+ */
+MODULE_HOOK(if_vlan_vlan_input_hook, void, (struct ifnet *, struct mbuf *));
+
#endif /* _KERNEL */
#endif /* !_NET_IF_H_ */
Index: src/sys/net/if_vlan.c
diff -u src/sys/net/if_vlan.c:1.133 src/sys/net/if_vlan.c:1.134
--- src/sys/net/if_vlan.c:1.133 Fri Oct 19 00:12:56 2018
+++ src/sys/net/if_vlan.c Sat Mar 23 09:48:04 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if_vlan.c,v 1.133 2018/10/19 00:12:56 knakahara Exp $ */
+/* $NetBSD: if_vlan.c,v 1.134 2019/03/23 09:48:04 pgoyette Exp $ */
/*
* Copyright (c) 2000, 2001 The NetBSD Foundation, Inc.
@@ -78,7 +78,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_vlan.c,v 1.133 2018/10/19 00:12:56 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_vlan.c,v 1.134 2019/03/23 09:48:04 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -293,6 +293,7 @@ vlaninit(void)
if_clone_attach(&vlan_cloner);
vlan_hash_init();
+ MODULE_HOOK_SET(if_vlan_vlan_input_hook, "vlan_inp", vlan_input);
}
static int
@@ -318,6 +319,7 @@ vlandetach(void)
mutex_destroy(&ifv_hash.lock);
mutex_destroy(&ifv_list.lock);
+ MODULE_HOOK_UNSET(if_vlan_vlan_input_hook);
return 0;
}
Index: src/sys/net/agr/if_agr.c
diff -u src/sys/net/agr/if_agr.c:1.47 src/sys/net/agr/if_agr.c:1.48
--- src/sys/net/agr/if_agr.c:1.47 Tue Jun 26 06:48:02 2018
+++ src/sys/net/agr/if_agr.c Sat Mar 23 09:48:04 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: if_agr.c,v 1.47 2018/06/26 06:48:02 msaitoh Exp $ */
+/* $NetBSD: if_agr.c,v 1.48 2019/03/23 09:48:04 pgoyette Exp $ */
/*-
* Copyright (c)2005 YAMAMOTO Takashi,
@@ -27,11 +27,10 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_agr.c,v 1.47 2018/06/26 06:48:02 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_agr.c,v 1.48 2019/03/23 09:48:04 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
-#include "vlan.h"
#endif
#include <sys/param.h>
@@ -169,11 +168,8 @@ agr_input(struct ifnet *ifp_port, struct
* provided us with the tag.
*/
if (ec->ec_nvlans && vlan_has_tag(m)) {
-#if NVLAN > 0
- vlan_input(ifp, m);
-#else
- m_freem(m);
-#endif
+ MODULE_HOOK_CALL_VOID(if_vlan_vlan_input_hook, (ifp, m),
+ m_freem(m));
return;
}
@@ -1169,4 +1165,4 @@ agrport_config_promisc(struct agr_port *
*/
#include <net/if_module.h>
-IF_MODULE(MODULE_CLASS_DRIVER, agr, "if_vlan")
+IF_MODULE(MODULE_CLASS_DRIVER, agr, "")