From owner-p4-projects@FreeBSD.ORG Tue Sep 16 15:33:02 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 27F5A16A4C0; Tue, 16 Sep 2003 15:33:02 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E980716A4B3 for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 71DD343FCB for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h8GMX10U048731 for ; Tue, 16 Sep 2003 15:33:01 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h8GMX0ZF048724 for perforce@freebsd.org; Tue, 16 Sep 2003 15:33:00 -0700 (PDT) Date: Tue, 16 Sep 2003 15:33:00 -0700 (PDT) Message-Id: <200309162233.h8GMX0ZF048724@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 38151 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Sep 2003 22:33:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=38151 Change 38151 by sam@sam_ebb on 2003/09/16 15:32:18 cleanup module unload: must hold lock to call bridge_off; remove bogus distinction between building as a module and a static kernel component Affected files ... .. //depot/projects/netperf/sys/net/bridge.c#7 edit Differences ... ==== //depot/projects/netperf/sys/net/bridge.c#7 (text+ko) ==== @@ -1213,7 +1213,6 @@ return 0 ; } -#ifdef KLD_MODULE static void bdgdestroy(void) { @@ -1222,17 +1221,15 @@ bdgtakeifaces_ptr = NULL; callout_stop(&bdg_callout); + BDG_LOCK(); bridge_off(); - if (clusters) - free(clusters, M_IFADDR); if (ifp2sc) { free(ifp2sc, M_IFADDR); ifp2sc = NULL; } BDG_LOCK_DESTROY(); } -#endif /* KLD_MODULE */ /* * initialization code, both for static and dynamic loading. @@ -1240,28 +1237,22 @@ static int bridge_modevent(module_t mod, int type, void *unused) { - int err = 0 ; + int err; switch (type) { case MOD_LOAD: - if (BDG_LOADED) { + if (BDG_LOADED) err = EEXIST; - break ; - } - err = bdginit(); + else + err = bdginit(); break; case MOD_UNLOAD: -#if !defined(KLD_MODULE) - printf("bridge statically compiled, cannot unload\n"); - err = EINVAL ; -#else - /* XXX lock */ do_bridge = 0; bdgdestroy(); -#endif + err = 0; break; default: - err = EINVAL ; + err = EINVAL; break; } return err;