From owner-p4-projects@FreeBSD.ORG Wed Jul 16 09:44:25 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 23C0D1065675; Wed, 16 Jul 2008 09:44:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DAA5A1065672 for ; Wed, 16 Jul 2008 09:44:24 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CD2268FC23 for ; Wed, 16 Jul 2008 09:44:24 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6G9iOH2026196 for ; Wed, 16 Jul 2008 09:44:24 GMT (envelope-from ed@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6G9iODh026194 for perforce@freebsd.org; Wed, 16 Jul 2008 09:44:24 GMT (envelope-from ed@FreeBSD.org) Date: Wed, 16 Jul 2008 09:44:24 GMT Message-Id: <200807160944.m6G9iODh026194@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ed@FreeBSD.org using -f From: Ed Schouten To: Perforce Change Reviews Cc: Subject: PERFORCE change 145311 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2008 09:44:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=145311 Change 145311 by ed@ed_dull on 2008/07/16 09:43:26 IFC. Affected files ... .. //depot/projects/mpsafetty/ObsoleteFiles.inc#2 integrate .. //depot/projects/mpsafetty/games/fortune/datfiles/fortunes#2 integrate .. //depot/projects/mpsafetty/lib/libc/posix1e/acl_support.c#2 integrate .. //depot/projects/mpsafetty/lib/libc/sys/ktrace.2#2 integrate .. //depot/projects/mpsafetty/lib/libc/sys/modstat.2#2 integrate .. //depot/projects/mpsafetty/share/man/man4/Makefile#2 integrate .. //depot/projects/mpsafetty/share/man/man4/ahc.4#2 integrate .. //depot/projects/mpsafetty/share/man/man4/et.4#1 branch .. //depot/projects/mpsafetty/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/mpsafetty/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/mpsafetty/sys/conf/newvers.sh#2 integrate .. //depot/projects/mpsafetty/sys/dev/sound/pci/hda/hdac.c#2 integrate .. //depot/projects/mpsafetty/sys/dev/vr/if_vr.c#2 integrate .. //depot/projects/mpsafetty/sys/dev/vr/if_vrreg.h#2 integrate .. //depot/projects/mpsafetty/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/mpsafetty/sys/ia64/ia64/busdma_machdep.c#2 integrate .. //depot/projects/mpsafetty/sys/kern/subr_stack.c#2 integrate .. //depot/projects/mpsafetty/sys/libkern/memset.c#2 integrate .. //depot/projects/mpsafetty/sys/net/bpf.c#2 integrate .. //depot/projects/mpsafetty/sys/net/if_vlan.c#2 integrate .. //depot/projects/mpsafetty/sys/netgraph/bluetooth/common/ng_bluetooth.c#3 integrate .. //depot/projects/mpsafetty/sys/netinet/in_pcb.h#4 integrate .. //depot/projects/mpsafetty/sys/netinet/ip_carp.c#2 integrate .. //depot/projects/mpsafetty/sys/netinet/tcp_output.c#2 integrate .. //depot/projects/mpsafetty/sys/netinet/udp_usrreq.c#4 integrate .. //depot/projects/mpsafetty/sys/sys/eventhandler.h#2 integrate .. //depot/projects/mpsafetty/sys/sys/libkern.h#2 integrate .. //depot/projects/mpsafetty/usr.sbin/cdcontrol/cdcontrol.1#2 integrate .. //depot/projects/mpsafetty/usr.sbin/cdcontrol/cdcontrol.c#2 integrate .. //depot/projects/mpsafetty/usr.sbin/extattr/rmextattr.c#2 integrate Differences ... ==== //depot/projects/mpsafetty/ObsoleteFiles.inc#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.151 2008/07/06 20:57:35 marcel Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.152 2008/07/13 17:17:35 antoine Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -57,6 +57,10 @@ # 20080701: wpa_supplicant.conf moved to share/examples/etc/ OLD_FILES+=usr/share/examples/wpa_supplicant/wpa_supplicant.conf OLD_DIRS+=usr/share/examples/wpa_supplicant +# 20080614: pecoff image activator removed +.if ${TARGET_ARCH} == "i386" +OLD_FILES+=usr/include/machine/pecoff_machdep.h +.endif # 20080614: sgtty removed OLD_FILES+=usr/include/sys/ttychars.h OLD_FILES+=usr/include/sys/ttydev.h ==== //depot/projects/mpsafetty/games/fortune/datfiles/fortunes#2 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.267 2008/07/07 10:04:16 phk Exp $ +$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.268 2008/07/14 18:45:06 phk Exp $ % ======================================================================= || || @@ -23572,9 +23572,6 @@ I have a very firm grasp on reality! I can reach out and strangle it any time! % -I have a very small mind and must live with it. - -- Edsger W. Dijkstra -% I have a very strange feeling about this... -- Luke Skywalker % @@ -34282,6 +34279,11 @@ My own business always bores me to death; I prefer other people's. -- Oscar Wilde % +My own feelings are perhaps best described by saying that I am +perfectly aware that there is no Royal Road to Mathematics, in other +words, that I have only a very small head and must live with it. + -- Edsger W. Dijkstra +% My own dear love, he is strong and bold And he cares not what comes after. His words ring sweet as a chime of gold, ==== //depot/projects/mpsafetty/lib/libc/posix1e/acl_support.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 1999, 2000, 2001 Robert N. M. Watson + * Copyright (c) 1999-2001, 2008 Robert N. M. Watson * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_support.c,v 1.14 2007/02/26 02:07:02 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_support.c,v 1.15 2008/07/13 16:37:51 rwatson Exp $"); #include #include "namespace.h" @@ -138,7 +138,7 @@ { struct acl *acl_int; struct acl_entry *entry; /* current entry */ - uid_t obj_uid=-1, obj_gid=-1, highest_uid=0, highest_gid=0; + uid_t highest_uid=0, highest_gid=0; int stage = ACL_USER_OBJ; int i = 0; int count_user_obj=0, count_user=0, count_group_obj=0, @@ -162,7 +162,6 @@ return (EINVAL); stage = ACL_USER; count_user_obj++; - obj_uid = entry->ae_id; break; case ACL_USER: @@ -170,8 +169,6 @@ if (stage > ACL_USER) return (EINVAL); stage = ACL_USER; - if (entry->ae_id == obj_uid) - return (EINVAL); if (count_user && (entry->ae_id <= highest_uid)) return (EINVAL); highest_uid = entry->ae_id; @@ -185,7 +182,6 @@ return (EINVAL); stage = ACL_GROUP; count_group_obj++; - obj_gid = entry->ae_id; break; case ACL_GROUP: @@ -193,8 +189,6 @@ if (stage > ACL_GROUP) return (EINVAL); stage = ACL_GROUP; - if (entry->ae_id == obj_gid) - return (EINVAL); if (count_group && (entry->ae_id <= highest_gid)) return (EINVAL); highest_gid = entry->ae_id; ==== //depot/projects/mpsafetty/lib/libc/sys/ktrace.2#2 (text+ko) ==== @@ -26,9 +26,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ktrace.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/sys/ktrace.2,v 1.25 2007/01/09 00:28:14 imp Exp $ +.\" $FreeBSD: src/lib/libc/sys/ktrace.2,v 1.26 2008/07/13 13:42:52 remko Exp $ .\" -.Dd June 4, 1993 +.Dd July 13, 2008 .Dt KTRACE 2 .Os .Sh NAME @@ -101,7 +101,7 @@ pid_t ktr_pid; /* process id */ char ktr_comm[MAXCOMLEN+1]; /* command name */ struct timeval ktr_time; /* timestamp */ - caddr_t ktr_buf; + intptr_t ktr_tid; /* was ktr_buffer */ }; .Ed .Pp @@ -120,8 +120,8 @@ field gives the time (with microsecond resolution) that the record was generated. The -.Va ktr_buf -is an internal kernel pointer and is not useful. +.Va ktr_tid +field holds a threadid. .Pp The generic header is followed by .Va ktr_len ==== //depot/projects/mpsafetty/lib/libc/sys/modstat.2#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/sys/modstat.2,v 1.11 2007/06/13 19:22:29 brueffer Exp $ +.\" $FreeBSD: src/lib/libc/sys/modstat.2,v 1.12 2008/07/15 10:06:37 danger Exp $ .\" -.Dd June 13, 2007 +.Dd July 15, 2008 .Dt MODSTAT 2 .Os .Sh NAME @@ -55,9 +55,9 @@ }; typedef union modspecific { int intval; - u_int u_intval; + u_int uintval; long longval; - u_long u_longval; + u_long ulongval; } modspecific_t; .Ed .Pp ==== //depot/projects/mpsafetty/share/man/man4/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: src/share/man/man4/Makefile,v 1.421 2008/07/04 21:24:35 jhb Exp $ +# $FreeBSD: src/share/man/man4/Makefile,v 1.422 2008/07/14 18:15:43 brueffer Exp $ MAN= aac.4 \ acpi.4 \ @@ -77,6 +77,7 @@ en.4 \ enc.4 \ esp.4 \ + et.4 \ exca.4 \ faith.4 \ fatm.4 \ @@ -451,6 +452,7 @@ MLINKS+=ef.4 if_ef.4 MLINKS+=em.4 if_em.4 MLINKS+=en.4 if_en.4 +MLINKS+=et.4 if_et.4 MLINKS+=faith.4 if_faith.4 MLINKS+=fatm.4 if_fatm.4 MLINKS+=fd.4 stderr.4 \ ==== //depot/projects/mpsafetty/share/man/man4/ahc.4#2 (text+ko) ==== @@ -24,9 +24,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ahc.4,v 1.39 2006/05/20 09:39:28 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/ahc.4,v 1.40 2008/07/13 13:56:21 remko Exp $ .\" -.Dd July 4, 2004 +.Dd July 13, 2008 .Dt AHC 4 .Os .Sh NAME @@ -264,7 +264,7 @@ .Tn 2915 .It Adaptec -.Tn 2920 +.Tn 2920C .It Adaptec .Tn 2930C ==== //depot/projects/mpsafetty/sys/amd64/amd64/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.85 2008/02/12 16:24:30 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.86 2008/07/15 03:34:49 alc Exp $"); #include #include @@ -480,8 +480,6 @@ mflags = M_NOWAIT; else mflags = M_WAITOK; - if (flags & BUS_DMA_ZERO) - mflags |= M_ZERO; /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; @@ -489,13 +487,15 @@ if (dmat->segments == NULL) { dmat->segments = (bus_dma_segment_t *)malloc( sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, - M_NOWAIT); + mflags); if (dmat->segments == NULL) { CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (ENOMEM); } } + if (flags & BUS_DMA_ZERO) + mflags |= M_ZERO; /* * XXX: @@ -531,7 +531,7 @@ pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", - __func__, dmat, dmat->flags, ENOMEM); + __func__, dmat, dmat->flags, 0); return (0); } ==== //depot/projects/mpsafetty/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.631 2008/07/12 21:24:42 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.632 2008/07/13 18:19:53 alc Exp $"); /* * Manages physical address maps. @@ -1041,17 +1041,25 @@ vm_paddr_t pmap_kextract(vm_offset_t va) { - pd_entry_t *pde; + pd_entry_t pde; vm_paddr_t pa; if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) { pa = DMAP_TO_PHYS(va); } else { - pde = vtopde(va); - if (*pde & PG_PS) { - pa = (*pde & PG_PS_FRAME) | (va & PDRMASK); + pde = *vtopde(va); + if (pde & PG_PS) { + pa = (pde & PG_PS_FRAME) | (va & PDRMASK); } else { - pa = *vtopte(va); + /* + * Beware of a concurrent promotion that changes the + * PDE at this point! For example, vtopte() must not + * be used to access the PTE because it would use the + * new PDE. It is, however, safe to use the old PDE + * because the page table page is preserved by the + * promotion. + */ + pa = *pmap_pde_to_pte(&pde, va); pa = (pa & PG_FRAME) | (va & PAGE_MASK); } } ==== //depot/projects/mpsafetty/sys/conf/newvers.sh#2 (text+ko) ==== @@ -28,7 +28,7 @@ # SUCH DAMAGE. # # @(#)newvers.sh 8.1 (Berkeley) 4/20/94 -# $FreeBSD: src/sys/conf/newvers.sh,v 1.75 2008/06/08 19:46:23 dougb Exp $ +# $FreeBSD: src/sys/conf/newvers.sh,v 1.76 2008/07/13 20:08:38 dougb Exp $ TYPE="FreeBSD" REVISION="8.0" @@ -97,7 +97,7 @@ done if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then - svn=" @`cd $SRCDIR && $svnversion`" + svn=" r`cd $SRCDIR && $svnversion`" else svn="" fi ==== //depot/projects/mpsafetty/sys/dev/sound/pci/hda/hdac.c#2 (text+ko) ==== @@ -84,7 +84,7 @@ #define HDA_DRV_TEST_REV "20080420_0052" #define HDA_WIDGET_PARSER_REV 1 -SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.54 2008/05/22 09:14:12 kevlo Exp $"); +SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.55 2008/07/15 02:34:44 delphij Exp $"); #define HDA_BOOTVERBOSE(stmt) do { \ if (bootverbose != 0 || snd_verbose > 3) { \ @@ -193,6 +193,7 @@ /* Dell */ #define DELL_VENDORID 0x1028 +#define DELL_D630_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01f9) #define DELL_D820_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01cc) #define DELL_V1500_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x0228) #define DELL_I1300_SUBVENDOR HDA_MODEL_CONSTRUCT(DELL, 0x01c9) @@ -688,6 +689,8 @@ 0, 0, -1, 13, { 14, -1 }, -1 }, { DELL_OPLX745_SUBVENDOR, HDA_CODEC_AD1983, HDAC_HP_SWITCH_CTL, 0, 0, -1, 6, { 5, 7, -1 }, -1 }, + { DELL_D630_SUBVENDOR, HDA_CODEC_STAC9205, HDAC_HP_SWITCH_CTRL, + 0, 0, -1, 10, { 13, -1 }, -1 }, { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205, HDAC_HP_SWITCH_CTRL, 0, 0, -1, 10, { 13, -1 }, -1 }, { APPLE_MB3_SUBVENDOR, HDA_CODEC_ALC885, HDAC_HP_SWITCH_CTL, @@ -4255,6 +4258,8 @@ HDA_QUIRK_GPIO0 | HDA_QUIRK_OVREF50, 0}, { APPLE_INTEL_MAC, HDA_CODEC_STAC9221, HDA_QUIRK_GPIO0 | HDA_QUIRK_GPIO1, 0 }, + { DELL_D630_SUBVENDOR, HDA_CODEC_STAC9205, + HDA_QUIRK_GPIO0, 0 }, { DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205, HDA_QUIRK_GPIO0, 0 }, { HDA_MATCH_ALL, HDA_CODEC_AD1988, @@ -4528,7 +4533,8 @@ } break; case HDA_CODEC_STAC9205: - if (subvendor == DELL_V1500_SUBVENDOR) { + if ((subvendor == DELL_V1500_SUBVENDOR) || + (subvendor == DELL_D630_SUBVENDOR)) { w = hdac_widget_get(devinfo, 29); if (w != NULL) w->selconn = 1; ==== //depot/projects/mpsafetty/sys/dev/vr/if_vr.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/vr/if_vr.c,v 1.130 2008/03/11 04:51:22 yongari Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/vr/if_vr.c,v 1.132 2008/07/16 08:35:29 yongari Exp $"); /* * VIA Rhine fast ethernet PCI NIC driver @@ -186,7 +186,8 @@ static void vr_miibus_statchg(device_t); static void vr_link_task(void *, int); -static int vr_setperf(struct vr_softc *, int, uint8_t *); +static void vr_cam_mask(struct vr_softc *, uint32_t, int); +static int vr_cam_data(struct vr_softc *, int, int, uint8_t *); static void vr_set_filter(struct vr_softc *); static void vr_reset(const struct vr_softc *); static int vr_tx_ring_init(struct vr_softc *); @@ -394,27 +395,44 @@ VR_UNLOCK(sc); } -/* - * Copy the address 'mac' into the perfect RX filter entry at - * offset 'idx.' The perfect filter only has 32 entries so do - * some sanity tests. - */ + +static void +vr_cam_mask(struct vr_softc *sc, uint32_t mask, int type) +{ + + if (type == VR_MCAST_CAM) + CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_MCAST); + else + CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_VLAN); + CSR_WRITE_4(sc, VR_CAMMASK, mask); + CSR_WRITE_1(sc, VR_CAMCTL, 0); +} + static int -vr_setperf(struct vr_softc *sc, int idx, uint8_t *mac) +vr_cam_data(struct vr_softc *sc, int type, int idx, uint8_t *mac) { int i; - if (idx < 0 || idx >= VR_CAM_MCAST_CNT || mac == NULL) - return (EINVAL); + if (type == VR_MCAST_CAM) { + if (idx < 0 || idx >= VR_CAM_MCAST_CNT || mac == NULL) + return (EINVAL); + CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_MCAST); + } else + CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_VLAN); /* Set CAM entry address. */ CSR_WRITE_1(sc, VR_CAMADDR, idx); /* Set CAM entry data. */ - for (i = 0; i < ETHER_ADDR_LEN; i++) - CSR_WRITE_1(sc, VR_MAR0 + i, mac[i]); + if (type == VR_MCAST_CAM) { + for (i = 0; i < ETHER_ADDR_LEN; i++) + CSR_WRITE_1(sc, VR_MCAM0 + i, mac[i]); + } else { + CSR_WRITE_1(sc, VR_VCAM0, mac[0]); + CSR_WRITE_1(sc, VR_VCAM1, mac[1]); + } + DELAY(10); /* Write CAM and wait for self-clear of VR_CAMCTL_WRITE bit. */ - CSR_WRITE_1(sc, VR_CAMCTL, - VR_CAMCTL_ENA | VR_CAMCTL_MCAST | VR_CAMCTL_WRITE); + CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_WRITE); for (i = 0; i < VR_TIMEOUT; i++) { DELAY(1); if ((CSR_READ_1(sc, VR_CAMCTL) & VR_CAMCTL_WRITE) == 0) @@ -424,6 +442,7 @@ if (i == VR_TIMEOUT) device_printf(sc->vr_dev, "%s: setting CAM filter timeout!\n", __func__); + CSR_WRITE_1(sc, VR_CAMCTL, 0); return (i == VR_TIMEOUT ? ETIMEDOUT : 0); } @@ -461,6 +480,7 @@ /* Now program new ones. */ error = 0; + mcnt = 0; IF_ADDR_LOCK(ifp); if ((sc->vr_quirks & VR_Q_CAM) != 0) { /* @@ -468,12 +488,10 @@ * 32 entries multicast perfect filter. */ cam_mask = 0; - mcnt = 0; - CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_MCAST); TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; - error = vr_setperf(sc, mcnt, + error = vr_cam_data(sc, VR_MCAST_CAM, mcnt, LLADDR((struct sockaddr_dl *)ifma->ifma_addr)); if (error != 0) { cam_mask = 0; @@ -482,19 +500,16 @@ cam_mask |= 1 << mcnt; mcnt++; } - /* Enable multicast CAM entries depending on mask. */ - CSR_WRITE_1(sc, VR_CAMMASK, cam_mask); - /* Accessing CAM done. */ - CSR_WRITE_1(sc, VR_CAMCTL, 0); + vr_cam_mask(sc, VR_MCAST_CAM, cam_mask); } - mcnt = 0; if ((sc->vr_quirks & VR_Q_CAM) == 0 || error != 0) { /* * If there are too many multicast addresses or * setting multicast CAM filter failed, use hash * table based filtering. */ + mcnt = 0; TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_addr->sa_family != AF_LINK) continue; @@ -1324,8 +1339,8 @@ * We don't support SG in Rx path yet, so discard * partial frame. */ - if ((rxstat & (VR_RXSTAT_RXERR | VR_RXSTAT_FIRSTFRAG | - VR_RXSTAT_LASTFRAG)) != + if ((rxstat & VR_RXSTAT_RX_OK) == 0 || + (rxstat & (VR_RXSTAT_FIRSTFRAG | VR_RXSTAT_LASTFRAG)) != (VR_RXSTAT_FIRSTFRAG | VR_RXSTAT_LASTFRAG)) { ifp->if_ierrors++; sc->vr_stat.rx_errors++; @@ -2031,11 +2046,19 @@ /* Init tx descriptors. */ vr_tx_ring_init(sc); - /* Disable all VLAN CAM entries. */ if ((sc->vr_quirks & VR_Q_CAM) != 0) { - CSR_WRITE_1(sc, VR_CAMCTL, VR_CAMCTL_ENA | VR_CAMCTL_VLAN); - CSR_WRITE_1(sc, VR_CAMMASK, 0); - CSR_WRITE_1(sc, VR_CAMCTL, 0); + uint8_t vcam[2] = { 0, 0 }; + + /* Disable VLAN hardware tag insertion/stripping. */ + VR_CLRBIT(sc, VR_TXCFG, VR_TXCFG_TXTAGEN | VR_TXCFG_RXTAGCTL); + /* Disable VLAN hardware filtering. */ + VR_CLRBIT(sc, VR_BCR1, VR_BCR1_VLANFILT_ENB); + /* Disable all CAM entries. */ + vr_cam_mask(sc, VR_MCAST_CAM, 0); + vr_cam_mask(sc, VR_VLAN_CAM, 0); + /* Enable the first VLAN CAM. */ + vr_cam_data(sc, VR_VLAN_CAM, 0, vcam); + vr_cam_mask(sc, VR_VLAN_CAM, 1); } /* ==== //depot/projects/mpsafetty/sys/dev/vr/if_vrreg.h#2 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/vr/if_vrreg.h,v 1.36 2008/03/11 04:51:22 yongari Exp $ + * $FreeBSD: src/sys/dev/vr/if_vrreg.h,v 1.38 2008/07/16 08:35:29 yongari Exp $ */ /* @@ -47,6 +47,14 @@ #define VR_IMR 0x0E /* interrupt mask register */ #define VR_MAR0 0x10 /* multicast hash 0 */ #define VR_MAR1 0x14 /* multicast hash 1 */ +#define VR_MCAM0 0x10 +#define VR_MCAM1 0x11 +#define VR_MCAM2 0x12 +#define VR_MCAM3 0x13 +#define VR_MCAM4 0x14 +#define VR_MCAM5 0x15 +#define VR_VCAM0 0x16 +#define VR_VCAM1 0x17 #define VR_RXADDR 0x18 /* rx descriptor list start addr */ #define VR_TXADDR 0x1C /* tx descriptor list start addr */ #define VR_CURRXDESC0 0x20 @@ -368,6 +376,7 @@ #define VR_BCR1_TXTHRESH512BYTES 0x20 #define VR_BCR1_TXTHRESH1024BYTES 0x28 #define VR_BCR1_TXTHRESHSTORENFWD 0x38 +#define VR_BCR1_VLANFILT_ENB 0x80 /* VT6105M */ /* * CAMCTL register bits. (VT6105M only) @@ -455,7 +464,8 @@ #define VR_RXSTAT_RX_PHYS 0x00000800 #define VR_RXSTAT_RX_BROAD 0x00001000 #define VR_RXSTAT_RX_MULTI 0x00002000 -#define VR_RXSTAT_RX_OK 0x00004000 +#define VR_RXSTAT_RX_VIDHIT 0x00004000 /* 6105M */ +#define VR_RXSTAT_RX_OK 0x00008000 #define VR_RXSTAT_RXLEN 0x07FF0000 #define VR_RXSTAT_RXLEN_EXT 0x78000000 #define VR_RXSTAT_OWN 0x80000000 @@ -750,3 +760,6 @@ #define VR_SETBIT16(sc, reg, x) CSR_WRITE_2(sc, reg, CSR_READ_2(sc, reg) | (x)) #define VR_CLRBIT16(sc, reg, x) CSR_WRITE_2(sc, reg, CSR_READ_2(sc, reg) & ~(x)) + +#define VR_MCAST_CAM 0 +#define VR_VLAN_CAM 1 ==== //depot/projects/mpsafetty/sys/i386/i386/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.92 2008/03/28 15:28:20 emaste Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/busdma_machdep.c,v 1.93 2008/07/15 03:34:49 alc Exp $"); #include #include @@ -488,8 +488,6 @@ mflags = M_NOWAIT; else mflags = M_WAITOK; - if (flags & BUS_DMA_ZERO) - mflags |= M_ZERO; /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; @@ -497,13 +495,15 @@ if (dmat->segments == NULL) { dmat->segments = (bus_dma_segment_t *)malloc( sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, - M_NOWAIT); + mflags); if (dmat->segments == NULL) { CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (ENOMEM); } } + if (flags & BUS_DMA_ZERO) + mflags |= M_ZERO; /* * XXX: ==== //depot/projects/mpsafetty/sys/ia64/ia64/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/busdma_machdep.c,v 1.46 2007/11/27 17:28:12 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/busdma_machdep.c,v 1.47 2008/07/15 03:34:49 alc Exp $"); #include #include @@ -416,8 +416,6 @@ mflags = M_NOWAIT; else mflags = M_WAITOK; - if (flags & BUS_DMA_ZERO) - mflags |= M_ZERO; /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; @@ -425,10 +423,12 @@ if (dmat->segments == NULL) { dmat->segments = (bus_dma_segment_t *)malloc( sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, - M_NOWAIT); + mflags); if (dmat->segments == NULL) return (ENOMEM); } + if (flags & BUS_DMA_ZERO) + mflags |= M_ZERO; /* * XXX: ==== //depot/projects/mpsafetty/sys/kern/subr_stack.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/kern/subr_stack.c,v 1.6 2007/12/03 14:44:35 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_stack.c,v 1.7 2008/07/13 17:15:19 svn Exp $"); #include #include @@ -40,7 +40,7 @@ #include #include -MALLOC_DEFINE(M_STACK, "stack", "Stack Traces"); +static MALLOC_DEFINE(M_STACK, "stack", "Stack Traces"); static void stack_symbol(vm_offset_t pc, char *namebuf, u_int buflen, long *offset); ==== //depot/projects/mpsafetty/sys/libkern/memset.c#2 (text+ko) ==== @@ -23,18 +23,22 @@ * SUCH DAMAGE. */ #include -#include -__FBSDID("$FreeBSD: src/sys/libkern/memset.c,v 1.2 2007/04/06 00:06:26 kan Exp $"); +__FBSDID("$FreeBSD: src/sys/libkern/memset.c,v 1.3 2008/07/14 21:36:02 obrien Exp $"); -void *memset(void *, int, size_t); +#define LIBKERN_INLINE +#include +#include void * memset(void *b, int c, size_t len) { char *bb; - for (bb = (char *)b; len--; ) - *bb++ = c; + if (c == 0) + bzero(b, len); + else + for (bb = (char *)b; len--; ) + *bb++ = c; return (b); } ==== //depot/projects/mpsafetty/sys/net/bpf.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.197 2008/07/07 09:25:49 dwmalone Exp $"); +__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.198 2008/07/14 22:41:48 jkim Exp $"); #include "opt_bpf.h" #include "opt_mac.h" @@ -443,13 +443,19 @@ if (len - hlen > ifp->if_mtu) return (EMSGSIZE); - if ((unsigned)len > MCLBYTES) + if ((unsigned)len > MJUM16BYTES) return (EIO); - if (len > MHLEN) + if (len <= MHLEN) + MGETHDR(m, M_WAIT, MT_DATA); + else if (len <= MCLBYTES) m = m_getcl(M_WAIT, MT_DATA, M_PKTHDR); else - MGETHDR(m, M_WAIT, MT_DATA); + m = m_getjcl(M_WAIT, MT_DATA, M_PKTHDR, +#if (MJUMPAGESIZE > MCLBYTES) + len <= MJUMPAGESIZE ? MJUMPAGESIZE : +#endif + (len <= MJUM9BYTES ? MJUM9BYTES : MJUM16BYTES)); m->m_pkthdr.len = m->m_len = len; m->m_pkthdr.rcvif = NULL; *mp = m; ==== //depot/projects/mpsafetty/sys/net/if_vlan.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/net/if_vlan.c,v 1.125 2007/10/18 21:22:15 thompsa Exp $ + * $FreeBSD: src/sys/net/if_vlan.c,v 1.126 2008/07/14 18:40:21 jfv Exp $ */ /* @@ -1062,6 +1062,8 @@ ifp->if_drv_flags |= IFF_DRV_RUNNING; done: TRUNK_UNLOCK(trunk); + if (error == 0) + EVENTHANDLER_INVOKE(vlan_config, p, ifv->ifv_tag); VLAN_UNLOCK(); return (error); @@ -1084,12 +1086,14 @@ struct ifvlantrunk *trunk; struct vlan_mc_entry *mc; struct ifvlan *ifv; + struct ifnet *parent; int error; VLAN_LOCK_ASSERT(); ifv = ifp->if_softc; trunk = ifv->ifv_trunk; + parent = PARENT(ifv); if (trunk) { struct sockaddr_dl sdl; @@ -1153,6 +1157,8 @@ ifp->if_link_state = LINK_STATE_UNKNOWN; ifp->if_drv_flags &= ~IFF_DRV_RUNNING; + EVENTHANDLER_INVOKE(vlan_unconfig, parent, ifv->ifv_tag); + return (0); } ==== //depot/projects/mpsafetty/sys/netgraph/bluetooth/common/ng_bluetooth.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $Id: ng_bluetooth.c,v 1.3 2003/04/26 22:37:31 max Exp $ - * $FreeBSD: src/sys/netgraph/bluetooth/common/ng_bluetooth.c,v 1.8 2008/07/10 00:15:29 emax Exp $ + * $FreeBSD: src/sys/netgraph/bluetooth/common/ng_bluetooth.c,v 1.9 2008/07/14 13:45:05 trhodes Exp $ */ #include @@ -57,7 +57,7 @@ SYSCTL_NODE(_net, OID_AUTO, bluetooth, CTLFLAG_RW, 0, "Bluetooth family"); SYSCTL_INT(_net_bluetooth, OID_AUTO, version, - CTLFLAG_RD, 0, NG_BLUETOOTH_VERSION, ""); + CTLFLAG_RD, 0, NG_BLUETOOTH_VERSION, "Version of the stack"); /* * HCI ==== //depot/projects/mpsafetty/sys/netinet/in_pcb.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)in_pcb.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/netinet/in_pcb.h,v 1.109 2008/07/10 13:31:11 bz Exp $ + * $FreeBSD: src/sys/netinet/in_pcb.h,v 1.110 2008/07/15 15:38:47 rwatson Exp $ */ #ifndef _NETINET_IN_PCB_H_ @@ -315,6 +315,8 @@ #define INP_LOCK_DESTROY(inp) rw_destroy(&(inp)->inp_lock) #define INP_RLOCK(inp) rw_rlock(&(inp)->inp_lock) #define INP_WLOCK(inp) rw_wlock(&(inp)->inp_lock) +#define INP_TRY_RLOCK(inp) rw_try_rlock(&(inp)->inp_lock) +#define INP_TRY_WLOCK(inp) rw_try_wlock(&(inp)->inp_lock) #define INP_RUNLOCK(inp) rw_runlock(&(inp)->inp_lock) #define INP_WUNLOCK(inp) rw_wunlock(&(inp)->inp_lock) #define INP_LOCK_ASSERT(inp) rw_assert(&(inp)->inp_lock, RA_LOCKED) @@ -356,6 +358,8 @@ #define INP_INFO_LOCK_DESTROY(ipi) rw_destroy(&(ipi)->ipi_lock) #define INP_INFO_RLOCK(ipi) rw_rlock(&(ipi)->ipi_lock) #define INP_INFO_WLOCK(ipi) rw_wlock(&(ipi)->ipi_lock) +#define INP_INFO_TRY_RLOCK(ipi) rw_try_rlock(&(ipi)->ipi_lock) +#define INP_INFO_TRY_WLOCK(ipi) rw_try_wlock(&(ipi)->ipi_lock) #define INP_INFO_RUNLOCK(ipi) rw_runlock(&(ipi)->ipi_lock) #define INP_INFO_WUNLOCK(ipi) rw_wunlock(&(ipi)->ipi_lock) #define INP_INFO_LOCK_ASSERT(ipi) rw_assert(&(ipi)->ipi_lock, RA_LOCKED) ==== //depot/projects/mpsafetty/sys/netinet/ip_carp.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/ip_carp.c,v 1.54 2008/06/02 18:58:07 mlaier Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/ip_carp.c,v 1.55 2008/07/14 20:11:51 eri Exp $"); #include "opt_carp.h" #include "opt_bpf.h" @@ -1464,7 +1464,11 @@ carp_set_state(sc, INIT); if (sc->sc_naddrs) SC2IFP(sc)->if_flags |= IFF_UP; + if (sc->sc_carpdev) + CARP_SCLOCK(sc); carp_setrun(sc, 0); + if (sc->sc_carpdev) + CARP_SCUNLOCK(sc); return (0); } @@ -1625,7 +1629,11 @@ carp_set_state(sc, INIT); if (sc->sc_naddrs6) SC2IFP(sc)->if_flags |= IFF_UP; + if (sc->sc_carpdev) + CARP_SCLOCK(sc); carp_setrun(sc, 0); + if (sc->sc_carpdev) + CARP_SCUNLOCK(sc); return (0); } ==== //depot/projects/mpsafetty/sys/netinet/tcp_output.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/tcp_output.c,v 1.150 2008/04/17 21:38:16 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/tcp_output.c,v 1.151 2008/07/15 10:32:35 rpaulo Exp $"); #include "opt_inet.h" #include "opt_inet6.h" @@ -934,7 +934,7 @@ * a 0 window. This may cause the remote transmitter to stall. This * flag tells soreceive() to disable delayed acknowledgements when * draining the buffer. This can occur if the receiver is attempting - * to read more data then can be buffered prior to transmitting on + * to read more data than can be buffered prior to transmitting on * the connection. */ if (recwin == 0) ==== //depot/projects/mpsafetty/sys/netinet/udp_usrreq.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.230 2008/07/10 16:20:18 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.231 2008/07/15 15:38:47 rwatson Exp $"); #include "opt_ipfw.h" #include "opt_inet6.h" @@ -846,14 +846,42 @@ return (error); } - if (src.sin_family == AF_INET || addr != NULL) { + /* + * Depending on whether or not the application has bound or connected + * the application, we may have to do varying levels of work. The + * optimal case is for a connected UDP socket, as a global lock isn't + * required. + * + * In order to decide which we need, we require stability of the + * inpcb binding, which we ensure by acquiring a read lock on the + * inpcb. This doesn't strictly follow the lock order, so we play + * the trylock and retry game; note that we may end up with more + * conservative locks than required the second time around, so later + * assertions have to accept that. Further analysis of the number of + * misses under contention is required. + */ + sin = (struct sockaddr_in *)addr; + INP_RLOCK(inp); + if (sin != NULL && + (inp->inp_laddr.s_addr == INADDR_ANY && inp->inp_lport == 0)) { + INP_RUNLOCK(inp); INP_INFO_WLOCK(&udbinfo); INP_WLOCK(inp); + unlock_udbinfo = 2; + } else if ((sin != NULL && ( + (sin->sin_addr.s_addr == INADDR_ANY) || + (sin->sin_addr.s_addr == INADDR_BROADCAST) || + (inp->inp_laddr.s_addr == INADDR_ANY) || + (inp->inp_lport == 0))) || + (src.sin_family == AF_INET)) { >>> TRUNCATED FOR MAIL (1000 lines) <<<