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