Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Oct 2003 13:27:11 -0800 (PST)
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 40865 for review
Message-ID:  <200310302127.h9ULRB04075317@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=40865

Change 40865 by sam@sam_ebb on 2003/10/30 13:27:08

	IFC @ 40864

Affected files ...

.. //depot/projects/netperf/sys/amd64/amd64/vm_machdep.c#6 integrate
.. //depot/projects/netperf/sys/dev/cm/smc90cx6.c#3 integrate
.. //depot/projects/netperf/sys/dev/cs/if_cs.c#3 integrate
.. //depot/projects/netperf/sys/dev/ed/if_ed.c#4 integrate
.. //depot/projects/netperf/sys/dev/sbni/if_sbni.c#3 integrate
.. //depot/projects/netperf/sys/dev/xe/if_xe.c#4 integrate
.. //depot/projects/netperf/sys/i386/isa/if_rdp.c#3 integrate
.. //depot/projects/netperf/sys/netinet6/in6_src.c#16 integrate

Differences ...

==== //depot/projects/netperf/sys/amd64/amd64/vm_machdep.c#6 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.217 2003/08/29 20:04:09 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.218 2003/10/30 19:04:58 peter Exp $");
 
 #include "opt_isa.h"
 #include "opt_kstack_pages.h"
@@ -205,7 +205,8 @@
 cpu_thread_exit(struct thread *td)
 {
 
-	npxexit(td);
+	if (td == PCPU_GET(fpcurthread))
+		npxdrop();
 }
 
 void
@@ -265,6 +266,7 @@
 	 * more analysis) (need a good safe default).
 	 */
 	bcopy(td0->td_pcb, pcb2, sizeof(*pcb2));
+	pcb2->pcb_flags &= ~(PCB_NPXTRAP|PCB_NPXINITDONE);
 
 	/*
 	 * Create a new fresh stack for the new thread.

==== //depot/projects/netperf/sys/dev/cm/smc90cx6.c#3 (text+ko) ====

@@ -1,7 +1,7 @@
 /*	$NetBSD: smc90cx6.c,v 1.38 2001/07/07 15:57:53 thorpej Exp $ */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cm/smc90cx6.c,v 1.10 2003/08/24 17:46:02 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cm/smc90cx6.c,v 1.11 2003/10/30 19:45:57 brooks Exp $");
 
 /*-
  * Copyright (c) 1994, 1995, 1998 The NetBSD Foundation, Inc.
@@ -312,34 +312,32 @@
 	 */
 	cm_stop(sc);
 
-	if (!ifp->if_name) {
-		ifp->if_softc = sc;
-		ifp->if_unit = unit;
-		ifp->if_name = "cm";
-		ifp->if_output = arc_output;
-		ifp->if_start = cm_start;
-		ifp->if_ioctl = cm_ioctl;
-		ifp->if_watchdog  = cm_watchdog;
-		ifp->if_init = cm_init;
-		/* XXX IFQ_SET_READY(&ifp->if_snd); */
-		ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
-		ifp->if_timer = 0;
-		ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
+	ifp->if_softc = sc;
+	ifp->if_unit = unit;
+	ifp->if_name = "cm";
+	ifp->if_output = arc_output;
+	ifp->if_start = cm_start;
+	ifp->if_ioctl = cm_ioctl;
+	ifp->if_watchdog  = cm_watchdog;
+	ifp->if_init = cm_init;
+	/* XXX IFQ_SET_READY(&ifp->if_snd); */
+	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+	ifp->if_timer = 0;
+	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
 
-		arc_ifattach(ifp, linkaddress);
+	arc_ifattach(ifp, linkaddress);
 
 #ifdef CMSOFTCOPY
-		sc->sc_rxcookie = softintr_establish(IPL_SOFTNET, cm_srint, sc);
-		sc->sc_txcookie = softintr_establish(IPL_SOFTNET,
-			(void (*)(void *))cm_start, ifp);
+	sc->sc_rxcookie = softintr_establish(IPL_SOFTNET, cm_srint, sc);
+	sc->sc_txcookie = softintr_establish(IPL_SOFTNET,
+		(void (*)(void *))cm_start, ifp);
 #endif
 
 #if __FreeBSD_version < 500000
-		callout_init(&sc->sc_recon_ch);
+	callout_init(&sc->sc_recon_ch);
 #else
-		callout_init(&sc->sc_recon_ch, 0);
+	callout_init(&sc->sc_recon_ch, 0);
 #endif
-	}
 
 	if_printf(ifp, "link addr 0x%02x (%d)\n", linkaddress, linkaddress);
 	return 0;

==== //depot/projects/netperf/sys/dev/cs/if_cs.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cs/if_cs.c,v 1.25 2003/08/24 17:46:03 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cs/if_cs.c,v 1.26 2003/10/30 19:45:57 brooks Exp $");
 
 /*
  *
@@ -582,85 +582,83 @@
 
 	cs_stop( sc );
 
-	if (!ifp->if_name) {
-		ifp->if_softc=sc;
-		ifp->if_unit=unit;
-		ifp->if_name="cs";
-		ifp->if_output=ether_output;
-		ifp->if_start=cs_start;
-		ifp->if_ioctl=cs_ioctl;
-		ifp->if_watchdog=cs_watchdog;
-		ifp->if_init=cs_init;
-		ifp->if_snd.ifq_maxlen= IFQ_MAXLEN;
-		/*
-                 *  MIB DATA
-                 */
-                /*
-		ifp->if_linkmib=&sc->mibdata;
-		ifp->if_linkmiblen=sizeof sc->mibdata;
-                */
+	ifp->if_softc=sc;
+	ifp->if_unit=unit;
+	ifp->if_name="cs";
+	ifp->if_output=ether_output;
+	ifp->if_start=cs_start;
+	ifp->if_ioctl=cs_ioctl;
+	ifp->if_watchdog=cs_watchdog;
+	ifp->if_init=cs_init;
+	ifp->if_snd.ifq_maxlen= IFQ_MAXLEN;
+	/*
+	 *  MIB DATA
+	 */
+	/*
+	ifp->if_linkmib=&sc->mibdata;
+	ifp->if_linkmiblen=sizeof sc->mibdata;
+	*/
 
-		ifp->if_flags=(IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST );
+	ifp->if_flags=(IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST );
 
-		/*
-		 * this code still in progress (DMA support)
-		 *
+	/*
+	 * this code still in progress (DMA support)
+	 *
 
-		sc->recv_ring=malloc(CS_DMA_BUFFER_SIZE<<1, M_DEVBUF, M_NOWAIT);
-		if (sc->recv_ring == NULL) {
-			log(LOG_ERR,CS_NAME
-			"%d: Couldn't allocate memory for NIC\n", unit);
-			return(0);
-		}
-		if ((sc->recv_ring-(sc->recv_ring & 0x1FFFF))
-		    < (128*1024-CS_DMA_BUFFER_SIZE))
-		    sc->recv_ring+=16*1024;
+	sc->recv_ring=malloc(CS_DMA_BUFFER_SIZE<<1, M_DEVBUF, M_NOWAIT);
+	if (sc->recv_ring == NULL) {
+		log(LOG_ERR,CS_NAME
+		"%d: Couldn't allocate memory for NIC\n", unit);
+		return(0);
+	}
+	if ((sc->recv_ring-(sc->recv_ring & 0x1FFFF))
+	    < (128*1024-CS_DMA_BUFFER_SIZE))
+	    sc->recv_ring+=16*1024;
 
-		*/
+	*/
 
-		sc->buffer=malloc(ETHER_MAX_LEN-ETHER_CRC_LEN,M_DEVBUF,M_NOWAIT);
-		if (sc->buffer == NULL) {
-                        if_printf(ifp, "Couldn't allocate memory for NIC\n");
-                        return(0);
-		}
+	sc->buffer=malloc(ETHER_MAX_LEN-ETHER_CRC_LEN,M_DEVBUF,M_NOWAIT);
+	if (sc->buffer == NULL) {
+		if_printf(ifp, "Couldn't allocate memory for NIC\n");
+		return(0);
+	}
 
-		/*
-		 * Initialize the media structures.
-		 */
-		ifmedia_init(&sc->media, 0, cs_mediachange, cs_mediastatus);
+	/*
+	 * Initialize the media structures.
+	 */
+	ifmedia_init(&sc->media, 0, cs_mediachange, cs_mediastatus);
 
-		if (sc->adapter_cnf & A_CNF_10B_T) {
-			ifmedia_add(&sc->media, IFM_ETHER|IFM_10_T, 0, NULL);
-			if (sc->chip_type != CS8900) {
-				ifmedia_add(&sc->media,
-					IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL);
-				ifmedia_add(&sc->media,
-					IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL);
-			}
-		} 
+	if (sc->adapter_cnf & A_CNF_10B_T) {
+		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_T, 0, NULL);
+		if (sc->chip_type != CS8900) {
+			ifmedia_add(&sc->media,
+				IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL);
+			ifmedia_add(&sc->media,
+				IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL);
+		}
+	} 
 
-		if (sc->adapter_cnf & A_CNF_10B_2)
-			ifmedia_add(&sc->media, IFM_ETHER|IFM_10_2, 0, NULL);
+	if (sc->adapter_cnf & A_CNF_10B_2)
+		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_2, 0, NULL);
 
-		if (sc->adapter_cnf & A_CNF_AUI)
-			ifmedia_add(&sc->media, IFM_ETHER|IFM_10_5, 0, NULL);
+	if (sc->adapter_cnf & A_CNF_AUI)
+		ifmedia_add(&sc->media, IFM_ETHER|IFM_10_5, 0, NULL);
 
-                if (sc->adapter_cnf & A_CNF_MEDIA)
-                        ifmedia_add(&sc->media, IFM_ETHER|IFM_AUTO, 0, NULL);
+	if (sc->adapter_cnf & A_CNF_MEDIA)
+		ifmedia_add(&sc->media, IFM_ETHER|IFM_AUTO, 0, NULL);
 
-                /* Set default media from EEPROM */
-                switch (sc->adapter_cnf & A_CNF_MEDIA_TYPE) {
-                case A_CNF_MEDIA_AUTO:  media = IFM_ETHER|IFM_AUTO; break;
-                case A_CNF_MEDIA_10B_T: media = IFM_ETHER|IFM_10_T; break;
-                case A_CNF_MEDIA_10B_2: media = IFM_ETHER|IFM_10_2; break;
-                case A_CNF_MEDIA_AUI:   media = IFM_ETHER|IFM_10_5; break;
-                default: if_printf(ifp, "adapter has no media\n");
-                }
-                ifmedia_set(&sc->media, media);
-		cs_mediaset(sc, media);
+	/* Set default media from EEPROM */
+	switch (sc->adapter_cnf & A_CNF_MEDIA_TYPE) {
+	case A_CNF_MEDIA_AUTO:  media = IFM_ETHER|IFM_AUTO; break;
+	case A_CNF_MEDIA_10B_T: media = IFM_ETHER|IFM_10_T; break;
+	case A_CNF_MEDIA_10B_2: media = IFM_ETHER|IFM_10_2; break;
+	case A_CNF_MEDIA_AUI:   media = IFM_ETHER|IFM_10_5; break;
+	default: if_printf(ifp, "adapter has no media\n");
+	}
+	ifmedia_set(&sc->media, media);
+	cs_mediaset(sc, media);
 
-		ether_ifattach(ifp, sc->arpcom.ac_enaddr);
-	}
+	ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 
 	if (bootverbose)
 		if_printf(ifp, "ethernet address %6D\n",

==== //depot/projects/netperf/sys/dev/ed/if_ed.c#4 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.219 2003/10/15 17:22:15 shiba Exp $
+ * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.220 2003/10/30 19:45:57 brooks Exp $
  */
 
 /*
@@ -1713,51 +1713,49 @@
 	 */
 	ed_stop(sc);
 
-	if (!ifp->if_name) {
-		/*
-		 * Initialize ifnet structure
-		 */
-		ifp->if_softc = sc;
-		ifp->if_unit = unit;
-		ifp->if_name = "ed";
-		ifp->if_output = ether_output;
-		ifp->if_start = ed_start;
-		ifp->if_ioctl = ed_ioctl;
-		ifp->if_watchdog = ed_watchdog;
-		ifp->if_init = ed_init;
-		ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
-		ifp->if_linkmib = &sc->mibdata;
-		ifp->if_linkmiblen = sizeof sc->mibdata;
-		/*
-		 * XXX - should do a better job.
-		 */
-		if (sc->chip_type == ED_CHIP_TYPE_WD790)
-			sc->mibdata.dot3StatsEtherChipSet =
-				DOT3CHIPSET(dot3VendorWesternDigital,
-					    dot3ChipSetWesternDigital83C790);
-		else
-			sc->mibdata.dot3StatsEtherChipSet =
-				DOT3CHIPSET(dot3VendorNational, 
-					    dot3ChipSetNational8390);
-		sc->mibdata.dot3Compliance = DOT3COMPLIANCE_COLLS;
+	/*
+	 * Initialize ifnet structure
+	 */
+	ifp->if_softc = sc;
+	ifp->if_unit = unit;
+	ifp->if_name = "ed";
+	ifp->if_output = ether_output;
+	ifp->if_start = ed_start;
+	ifp->if_ioctl = ed_ioctl;
+	ifp->if_watchdog = ed_watchdog;
+	ifp->if_init = ed_init;
+	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+	ifp->if_linkmib = &sc->mibdata;
+	ifp->if_linkmiblen = sizeof sc->mibdata;
+	/*
+	 * XXX - should do a better job.
+	 */
+	if (sc->chip_type == ED_CHIP_TYPE_WD790)
+		sc->mibdata.dot3StatsEtherChipSet =
+			DOT3CHIPSET(dot3VendorWesternDigital,
+				    dot3ChipSetWesternDigital83C790);
+	else
+		sc->mibdata.dot3StatsEtherChipSet =
+			DOT3CHIPSET(dot3VendorNational, 
+				    dot3ChipSetNational8390);
+	sc->mibdata.dot3Compliance = DOT3COMPLIANCE_COLLS;
 
-		/*
-		 * Set default state for ALTPHYS flag (used to disable the 
-		 * tranceiver for AUI operation), based on compile-time 
-		 * config option.
-		 */
-		if (flags & ED_FLAGS_DISABLE_TRANCEIVER)
-			ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | 
-			    IFF_MULTICAST | IFF_ALTPHYS);
-		else
-			ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX |
-			    IFF_MULTICAST);
+	/*
+	 * Set default state for ALTPHYS flag (used to disable the 
+	 * tranceiver for AUI operation), based on compile-time 
+	 * config option.
+	 */
+	if (flags & ED_FLAGS_DISABLE_TRANCEIVER)
+		ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | 
+		    IFF_MULTICAST | IFF_ALTPHYS);
+	else
+		ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX |
+		    IFF_MULTICAST);
 
-		/*
-		 * Attach the interface
-		 */
-		ether_ifattach(ifp, sc->arpcom.ac_enaddr);
-	}
+	/*
+	 * Attach the interface
+	 */
+	ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 	/* device attach does transition from UNCONFIGURED to IDLE state */
 
 	/*

==== //depot/projects/netperf/sys/dev/sbni/if_sbni.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/sbni/if_sbni.c,v 1.12 2003/08/24 18:03:43 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/sbni/if_sbni.c,v 1.13 2003/10/30 19:45:57 brooks Exp $");
 
 /*
  * Device driver for Granch SBNI12 leased line adapters
@@ -226,26 +226,24 @@
 	set_initial_values(sc, flags);
 
 	callout_handle_init(&sc->wch);
-	if (!ifp->if_name) {
-		/* Initialize ifnet structure */
-		ifp->if_softc	= sc;
-		ifp->if_unit	= unit;
-		ifp->if_name	= "sbni";
-		ifp->if_init	= sbni_init;
-		ifp->if_start	= sbni_start;
-	        ifp->if_output	= ether_output;
-		ifp->if_ioctl	= sbni_ioctl;
-		ifp->if_watchdog	= sbni_watchdog;
-		ifp->if_snd.ifq_maxlen	= IFQ_MAXLEN;
+	/* Initialize ifnet structure */
+	ifp->if_softc	= sc;
+	ifp->if_unit	= unit;
+	ifp->if_name	= "sbni";
+	ifp->if_init	= sbni_init;
+	ifp->if_start	= sbni_start;
+	ifp->if_output	= ether_output;
+	ifp->if_ioctl	= sbni_ioctl;
+	ifp->if_watchdog	= sbni_watchdog;
+	ifp->if_snd.ifq_maxlen	= IFQ_MAXLEN;
 
-		/* report real baud rate */
-		csr0 = sbni_inb(sc, CSR0);
-		ifp->if_baudrate =
-			(csr0 & 0x01 ? 500000 : 2000000) / (1 << flags.rate);
+	/* report real baud rate */
+	csr0 = sbni_inb(sc, CSR0);
+	ifp->if_baudrate =
+		(csr0 & 0x01 ? 500000 : 2000000) / (1 << flags.rate);
 
-	        ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-		ether_ifattach(ifp, sc->arpcom.ac_enaddr);
-	}
+	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+	ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 	/* device attach does transition from UNCONFIGURED to IDLE state */
 
 	if_printf(ifp, "speed %ld, address %6D, rxl ",

==== //depot/projects/netperf/sys/dev/xe/if_xe.c#4 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/xe/if_xe.c,v 1.39 2003/10/14 22:51:35 rsm Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/xe/if_xe.c,v 1.40 2003/10/30 19:45:57 brooks Exp $");
 
 /*
  * Portions of this software were derived from Werner Koch's xirc2ps driver
@@ -218,22 +218,20 @@
   scp->autoneg_status = XE_AUTONEG_NONE;
 
   /* Initialise the ifnet structure */
-  if (!scp->ifp->if_name) {
-    scp->ifp->if_softc = scp;
-    scp->ifp->if_name = "xe";
-    scp->ifp->if_unit = device_get_unit(dev);
-    scp->ifp->if_timer = 0;
-    scp->ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
-    scp->ifp->if_linkmib = &scp->mibdata;
-    scp->ifp->if_linkmiblen = sizeof scp->mibdata;
-    scp->ifp->if_output = ether_output;
-    scp->ifp->if_start = xe_start;
-    scp->ifp->if_ioctl = xe_ioctl;
-    scp->ifp->if_watchdog = xe_watchdog;
-    scp->ifp->if_init = xe_init;
-    scp->ifp->if_baudrate = 100000000;
-    scp->ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
-  }
+  scp->ifp->if_softc = scp;
+  scp->ifp->if_name = "xe";
+  scp->ifp->if_unit = device_get_unit(dev);
+  scp->ifp->if_timer = 0;
+  scp->ifp->if_flags = (IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+  scp->ifp->if_linkmib = &scp->mibdata;
+  scp->ifp->if_linkmiblen = sizeof scp->mibdata;
+  scp->ifp->if_output = ether_output;
+  scp->ifp->if_start = xe_start;
+  scp->ifp->if_ioctl = xe_ioctl;
+  scp->ifp->if_watchdog = xe_watchdog;
+  scp->ifp->if_init = xe_init;
+  scp->ifp->if_baudrate = 100000000;
+  scp->ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
 
   /* Initialise the ifmedia structure */
   ifmedia_init(scp->ifm, 0, xe_media_change, xe_media_status);

==== //depot/projects/netperf/sys/i386/isa/if_rdp.c#3 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/isa/if_rdp.c,v 1.21 2003/08/05 20:11:50 bde Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/isa/if_rdp.c,v 1.22 2003/10/30 19:45:58 brooks Exp $");
 
 /*
  * Device driver for RealTek RTL 8002 (`REDP') based pocket-ethernet
@@ -591,25 +591,23 @@
 	 */
 	rdp_stop(sc);
 
-	if (!ifp->if_name) {
-		/*
-		 * Initialize ifnet structure
-		 */
-		ifp->if_softc = sc;
-		ifp->if_unit = unit;
-		ifp->if_name = "rdp";
-		ifp->if_start = rdp_start;
-		ifp->if_ioctl = rdp_ioctl;
-		ifp->if_watchdog = rdp_watchdog;
-		ifp->if_init = rdp_init;
-		ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
-		ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
+	/*
+	 * Initialize ifnet structure
+	 */
+	ifp->if_softc = sc;
+	ifp->if_unit = unit;
+	ifp->if_name = "rdp";
+	ifp->if_start = rdp_start;
+	ifp->if_ioctl = rdp_ioctl;
+	ifp->if_watchdog = rdp_watchdog;
+	ifp->if_init = rdp_init;
+	ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX;
 
-		/*
-		 * Attach the interface
-		 */
-		ether_ifattach(ifp, sc->arpcom.ac_enaddr);
-	}
+	/*
+	 * Attach the interface
+	 */
+	ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 
 	/*
 	 * Print additional info when attached

==== //depot/projects/netperf/sys/netinet6/in6_src.c#16 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/in6_src.c,v 1.18 2003/10/30 15:29:17 ume Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/in6_src.c,v 1.19 2003/10/30 18:42:25 ume Exp $	*/
 /*	$KAME: in6_src.c,v 1.37 2001/03/29 05:34:31 itojun Exp $	*/
 
 /*
@@ -647,6 +647,8 @@
 {
 	struct addrsel_policyent *new, *pol;
 
+	MALLOC(new, struct addrsel_policyent *, sizeof(*new), M_IFADDR,
+	       M_WAITOK);
 	ADDRSEL_LOCK();
 
 	/* duplication check */
@@ -656,12 +658,12 @@
 				       &pol->ape_policy.addr) &&
 		    SA6_ARE_ADDR_EQUAL(&newpolicy->addrmask,
 				       &pol->ape_policy.addrmask)) {
+			ADDRSEL_UNLOCK();
+			FREE(new, M_IFADDR);
 			return (EEXIST);	/* or override it? */
 		}
 	}
 
-	MALLOC(new, struct addrsel_policyent *, sizeof(*new), M_IFADDR,
-	       M_WAITOK);
 	bzero(new, sizeof(*new));
 
 	/* XXX: should validate entry */
@@ -690,8 +692,10 @@
 			break;
 		}
 	}
-	if (pol == NULL)
+	if (pol == NULL) {
+		ADDRSEL_UNLOCK();
 		return (ESRCH);
+	}
 
 	TAILQ_REMOVE(&addrsel_policytab, pol, ape_entry);
 	ADDRSEL_UNLOCK();
@@ -710,8 +714,10 @@
 	ADDRSEL_LOCK();
 	for (pol = TAILQ_FIRST(&addrsel_policytab); pol;
 	     pol = TAILQ_NEXT(pol, ape_entry)) {
-		if ((error = (*callback)(&pol->ape_policy, w)) != 0)
+		if ((error = (*callback)(&pol->ape_policy, w)) != 0) {
+			ADDRSEL_UNLOCK();
 			return (error);
+		}
 	}
 	ADDRSEL_UNLOCK();
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200310302127.h9ULRB04075317>