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, "")

Reply via email to