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>