From owner-p4-projects@FreeBSD.ORG Mon Sep 11 17:16:30 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7D0B616A412; Mon, 11 Sep 2006 17:16:30 +0000 (UTC) X-Original-To: perforce@freebsd.org 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 3D59916A403 for ; Mon, 11 Sep 2006 17:16:30 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 90D9243D60 for ; Mon, 11 Sep 2006 17:16:29 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k8BHGTRv070193 for ; Mon, 11 Sep 2006 17:16:29 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k8BHGTZl070190 for perforce@freebsd.org; Mon, 11 Sep 2006 17:16:29 GMT (envelope-from imp@freebsd.org) Date: Mon, 11 Sep 2006 17:16:29 GMT Message-Id: <200609111716.k8BHGTZl070190@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 105966 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: Mon, 11 Sep 2006 17:16:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=105966 Change 105966 by imp@imp_paco-paco on 2006/09/11 17:16:17 IFC @105964 Affected files ... .. //depot/projects/arm/src/crypto/openssl/crypto/rsa/rsa_sign.c#3 integrate .. //depot/projects/arm/src/gnu/usr.bin/cc/cc_tools/Makefile#3 integrate .. //depot/projects/arm/src/lib/libc/rpc/clnt_bcast.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/clnt_vc.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/getnetconfig.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/getnetpath.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/rpcb_clnt.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/rpcb_prot.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/svc_simple.c#2 integrate .. //depot/projects/arm/src/lib/libc/rpc/svc_vc.c#2 integrate .. //depot/projects/arm/src/lib/libc/sys/recv.2#2 integrate .. //depot/projects/arm/src/release/Makefile#4 integrate .. //depot/projects/arm/src/release/scripts/package-split.py#2 integrate .. //depot/projects/arm/src/sbin/ipf/ipf/Makefile#2 integrate .. //depot/projects/arm/src/sbin/ipf/ipftest/Makefile#2 integrate .. //depot/projects/arm/src/sbin/ipf/ipmon/Makefile#2 integrate .. //depot/projects/arm/src/sbin/ipf/ipnat/Makefile#2 integrate .. //depot/projects/arm/src/sbin/ipf/ippool/Makefile#2 integrate .. //depot/projects/arm/src/share/man/man5/src.conf.5#3 integrate .. //depot/projects/arm/src/share/mk/bsd.lib.mk#3 integrate .. //depot/projects/arm/src/share/mk/bsd.own.mk#3 integrate .. //depot/projects/arm/src/share/mk/bsd.prog.mk#2 integrate .. //depot/projects/arm/src/sys/amd64/linux32/linux32_sysvec.c#10 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_emul.c#4 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_file.c#6 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_futex.c#4 integrate .. //depot/projects/arm/src/sys/dev/em/if_em.c#28 integrate .. //depot/projects/arm/src/sys/dev/em/if_em.h#11 integrate .. //depot/projects/arm/src/sys/dev/nfe/if_nfe.c#4 integrate .. //depot/projects/arm/src/sys/dev/nfe/if_nfereg.h#3 integrate .. //depot/projects/arm/src/sys/dev/sound/usb/uaudio.c#7 integrate .. //depot/projects/arm/src/sys/dev/usb/usb_subr.c#10 integrate .. //depot/projects/arm/src/sys/geom/geom_event.c#3 integrate .. //depot/projects/arm/src/sys/geom/mirror/g_mirror.c#17 integrate .. //depot/projects/arm/src/sys/geom/raid3/g_raid3.c#20 integrate .. //depot/projects/arm/src/sys/i386/i386/busdma_machdep.c#9 integrate .. //depot/projects/arm/src/sys/i386/i386/sys_machdep.c#4 integrate .. //depot/projects/arm/src/sys/i386/linux/linux_sysvec.c#10 integrate .. //depot/projects/arm/src/sys/kern/kern_ktr.c#5 integrate .. //depot/projects/arm/src/sys/kern/tty.c#7 integrate .. //depot/projects/arm/src/sys/kern/uipc_socket.c#22 integrate .. //depot/projects/arm/src/sys/modules/Makefile#31 integrate .. //depot/projects/arm/src/sys/netinet/ip_output.c#14 integrate .. //depot/projects/arm/src/sys/security/audit/audit.c#10 integrate .. //depot/projects/arm/src/sys/security/audit/audit_bsm.c#8 integrate .. //depot/projects/arm/src/sys/sys/mac_policy.h#6 integrate .. //depot/projects/arm/src/tools/build/options/WITHOUT_ASSERT_DEBUG#1 branch .. //depot/projects/arm/src/tools/build/options/makeman#3 integrate Differences ... ==== //depot/projects/arm/src/crypto/openssl/crypto/rsa/rsa_sign.c#3 (text+ko) ==== @@ -185,6 +185,23 @@ sig=d2i_X509_SIG(NULL,&p,(long)i); if (sig == NULL) goto err; + + /* Excess data can be used to create forgeries */ + if(p != s+i) + { + RSAerr(RSA_F_RSA_VERIFY,RSA_R_BAD_SIGNATURE); + goto err; + } + + /* Parameters to the signature algorithm can also be used to + create forgeries */ + if(sig->algor->parameter + && sig->algor->parameter->type != V_ASN1_NULL) + { + RSAerr(RSA_F_RSA_VERIFY,RSA_R_BAD_SIGNATURE); + goto err; + } + sigtype=OBJ_obj2nid(sig->algor->algorithm); ==== //depot/projects/arm/src/gnu/usr.bin/cc/cc_tools/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.82 2006/03/17 18:54:23 ru Exp $ +# $FreeBSD: src/gnu/usr.bin/cc/cc_tools/Makefile,v 1.83 2006/09/11 05:12:12 imp Exp $ .include @@ -49,7 +49,6 @@ .ORDER: options.h options.c options.h options.c: opts.sh ${OPTION_FILES} /bin/sh ${GCCDIR}/opts.sh mv options.c options.h ${OPTION_FILES} - GENSRCS+= options.c options.h CLEANFILES+= options.c options.h @@ -154,7 +153,7 @@ GENSRCS+= tm-preds.h #----------------------------------------------------------------------- -# Gengtype +# Gengtype gengtype-lex.c : gengtype-lex.l ${LEX} -t ${.ALLSRC} | \ @@ -533,7 +532,7 @@ gencodes.o: insn-modes.h genrtl.h genconfig.o: insn-modes.h genrtl.h print-rtl.o: insn-modes.h genrtl.h tm-preds.h tree-check.h -read-rtl.o: insn-modes.h genrtl.h +read-rtl.o: insn-modes.h genrtl.h genattr.o: insn-modes.h genrtl.h genemit.o: insn-modes.h genrtl.h genflags.o: insn-modes.h genrtl.h ==== //depot/projects/arm/src/lib/libc/rpc/clnt_bcast.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ static char sccsid[] = "@(#)clnt_bcast.c 1.15 89/04/21 Copyr 1988 Sun Micro"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/clnt_bcast.c,v 1.8 2004/10/16 06:11:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/clnt_bcast.c,v 1.9 2006/09/09 22:14:42 mbr Exp $"); /* @@ -141,8 +141,10 @@ hints.ai_protocol = proto; hints.ai_socktype = socktype; - if (getaddrinfo(NULL, "sunrpc", &hints, &res) != 0) + if (getaddrinfo(NULL, "sunrpc", &hints, &res) != 0) { + freeifaddrs(ifp); return 0; + } for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) { if (ifap->ifa_addr->sa_family != af || @@ -299,6 +301,7 @@ if (nettype == NULL) nettype = "datagram_n"; if ((handle = __rpc_setconf(nettype)) == NULL) { + AUTH_DESTROY(sys_auth); return (RPC_UNKNOWNPROTO); } while ((nconf = __rpc_getconf(handle)) != NULL) { ==== //depot/projects/arm/src/lib/libc/rpc/clnt_vc.c#2 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid3[] = "@(#)clnt_vc.c 1.19 89/03/16 Copyr 1988 Sun Micro"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/clnt_vc.c,v 1.19 2006/02/27 22:10:59 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/clnt_vc.c,v 1.20 2006/09/09 22:18:57 mbr Exp $"); /* * clnt_tcp.c, Implements a TCP/IP based, client side RPC. @@ -243,9 +243,9 @@ } } mutex_unlock(&clnt_fd_lock); + thr_sigsetmask(SIG_SETMASK, &(mask), NULL); if (!__rpc_fd2sockinfo(fd, &si)) goto err; - thr_sigsetmask(SIG_SETMASK, &(mask), NULL); ct->ct_closeit = FALSE; ==== //depot/projects/arm/src/lib/libc/rpc/getnetconfig.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)getnetconfig.c 1.12 91/12/19 SMI"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/getnetconfig.c,v 1.11 2004/10/16 06:11:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/getnetconfig.c,v 1.12 2006/09/09 22:21:15 mbr Exp $"); /* * Copyright (c) 1989 by Sun Microsystems, Inc. @@ -692,6 +692,7 @@ p->nc_lookups = (char **)malloc((size_t)(p->nc_nlookups+1) * sizeof(char *)); if (p->nc_lookups == NULL) { free(p->nc_netid); + free(p); return(NULL); } for (i=0; i < p->nc_nlookups; i++) { ==== //depot/projects/arm/src/lib/libc/rpc/getnetpath.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char sccsid[] = "@(#)getnetpath.c 1.11 91/12/19 SMI"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/getnetpath.c,v 1.5 2004/10/16 06:11:34 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/getnetpath.c,v 1.6 2006/09/09 22:22:39 mbr Exp $"); /* * Copyright (c) 1989 by Sun Microsystems, Inc. @@ -100,6 +100,7 @@ return (NULL); } if ((np_sessionp->nc_handlep = setnetconfig()) == NULL) { + free(np_sessionp); syslog (LOG_ERR, "rpc: failed to open " NETCONFIG); return (NULL); } ==== //depot/projects/arm/src/lib/libc/rpc/rpcb_clnt.c#2 (text+ko) ==== @@ -56,7 +56,7 @@ static char sccsid[] = "@(#)rpcb_clnt.c 1.30 89/06/21 Copyr 1988 Sun Micro"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/rpcb_clnt.c,v 1.15 2006/02/27 22:10:59 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/rpcb_clnt.c,v 1.16 2006/09/09 22:26:47 mbr Exp $"); /* * rpcb_clnt.c @@ -239,11 +239,21 @@ ad_cache->ac_taddr = (struct netbuf *)malloc(sizeof (struct netbuf)); if (!ad_cache->ac_host || !ad_cache->ac_netid || !ad_cache->ac_taddr || (uaddr && !ad_cache->ac_uaddr)) { - return; + goto out; } ad_cache->ac_taddr->len = ad_cache->ac_taddr->maxlen = taddr->len; ad_cache->ac_taddr->buf = (char *) malloc(taddr->len); if (ad_cache->ac_taddr->buf == NULL) { +out: + if (ad_cache->ac_host) + free(ad_cache->ac_host); + if (ad_cache->ac_netid) + free(ad_cache->ac_netid); + if (ad_cache->ac_uaddr) + free(ad_cache->ac_uaddr); + if (ad_cache->ac_taddr) + free(ad_cache->ac_taddr); + free(ad_cache); return; } memcpy(ad_cache->ac_taddr->buf, taddr->buf, taddr->len); @@ -1012,11 +1022,6 @@ } } - if ((address == NULL) || (address->len == 0)) { - rpc_createerr.cf_stat = RPC_PROGNOTREGISTERED; - clnt_geterr(client, &rpc_createerr.cf_error); - } - error: if (client) { CLNT_DESTROY(client); ==== //depot/projects/arm/src/lib/libc/rpc/rpcb_prot.c#2 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)rpcb_prot.c 1.9 89/04/21 Copyr 1984 Sun Micro"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/rpcb_prot.c,v 1.5 2004/10/16 06:11:35 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/rpcb_prot.c,v 1.6 2006/09/09 22:29:16 mbr Exp $"); /* * rpcb_prot.c @@ -129,7 +129,7 @@ * the case of freeing we must remember the next object * before we free the current object ... */ - if (freeing) + if (freeing && *rp) next = (*rp)->rpcb_next; if (! xdr_reference(xdrs, (caddr_t *)rp, (u_int)sizeof (rpcblist), (xdrproc_t)xdr_rpcb)) { @@ -143,7 +143,7 @@ * gets nulled out by the xdr_reference * but next itself survives. */ - } else { + } else if (*rp) { rp = &((*rp)->rpcb_next); } } @@ -225,7 +225,7 @@ (xdrproc_t)xdr_rpcb_entry)) { return (FALSE); } - if (freeing) { + if (freeing && *rp) { next_copy = next; rp = &next_copy; /* @@ -233,7 +233,7 @@ * gets nulled out by the xdr_reference * but next itself survives. */ - } else { + } else if (*rp) { rp = &((*rp)->rpcb_entry_next); } } ==== //depot/projects/arm/src/lib/libc/rpc/svc_simple.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ /* #pragma ident "@(#)svc_simple.c 1.18 94/04/24 SMI" */ #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_simple.c,v 1.15 2006/02/27 22:10:59 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_simple.c,v 1.16 2006/09/09 22:32:07 mbr Exp $"); /* * svc_simple.c @@ -165,6 +165,10 @@ if (((xdrbuf = malloc((unsigned)recvsz)) == NULL) || ((netid = strdup(nconf->nc_netid)) == NULL)) { warnx(rpc_reg_err, rpc_reg_msg, __no_mem_str); + if (xdrbuf != NULL) + free(xdrbuf); + if (netid != NULL) + free(netid); SVC_DESTROY(svcxprt); break; } ==== //depot/projects/arm/src/lib/libc/rpc/svc_vc.c#2 (text+ko) ==== @@ -34,7 +34,7 @@ static char *sccsid = "@(#)svc_tcp.c 2.2 88/08/01 4.0 RPCSRC"; #endif #include -__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.25 2006/02/27 22:10:59 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/rpc/svc_vc.c,v 1.26 2006/09/09 22:33:21 mbr Exp $"); /* * svc_vc.c, Server side for Connection Oriented based RPC. @@ -135,13 +135,14 @@ struct sockaddr_storage sslocal; socklen_t slen; + if (!__rpc_fd2sockinfo(fd, &si)) + return NULL; + r = mem_alloc(sizeof(*r)); if (r == NULL) { warnx("svc_vc_create: out of memory"); goto cleanup_svc_vc_create; } - if (!__rpc_fd2sockinfo(fd, &si)) - return NULL; r->sendsize = __rpc_get_t_size(si.si_af, si.si_proto, (int)sendsize); r->recvsize = __rpc_get_t_size(si.si_af, si.si_proto, (int)recvsize); r->maxrec = __svc_maxrec; @@ -177,6 +178,8 @@ xprt_register(xprt); return (xprt); cleanup_svc_vc_create: + if (xprt) + mem_free(xprt, sizeof(*xprt)); if (r != NULL) mem_free(r, sizeof(*r)); return (NULL); ==== //depot/projects/arm/src/lib/libc/sys/recv.2#2 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)recv.2 8.3 (Berkeley) 2/21/94 -.\" $FreeBSD: src/lib/libc/sys/recv.2,v 1.30 2006/03/05 10:32:15 brueffer Exp $ +.\" $FreeBSD: src/lib/libc/sys/recv.2,v 1.31 2006/09/10 20:41:33 brian Exp $ .\" -.Dd February 16, 2006 +.Dd September 10, 2006 .Dt RECV 2 .Os .Sh NAME @@ -117,7 +117,7 @@ .Pp The .Xr select 2 -system call may be used to determine when more data arrive. +system call may be used to determine when more data arrives. .Pp The .Fa flags ==== //depot/projects/arm/src/release/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.913 2006/09/08 19:54:36 ru Exp $ +# $FreeBSD: src/release/Makefile,v 1.914 2006/09/11 13:15:09 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -587,7 +587,7 @@ # Install the system into the various distributions. release.2: - cd ${.CURDIR}/../etc && make distrib-dirs DESTDIR=${RD}/trees/base + cd ${.CURDIR}/.. && ${CROSSMAKE} distrib-dirs DESTDIR=${RD}/trees/base cd ${.CURDIR}/.. && ${CROSSMAKE} ${WORLD_FLAGS} distributeworld \ DISTDIR=${RD}/trees touch ${.TARGET} @@ -611,7 +611,8 @@ .if exists(${.CURDIR}/${TARGET}/${j}_crunch.conf) rm -rf ${j}_crunch mkdir ${j}_crunch - cd ${j}_crunch; ${WMAKEENV} crunchgen -o \ + cd ${j}_crunch; ${WMAKEENV} MAKEFLAGS="-m ${.CURDIR}/../share/mk" \ + crunchgen -o \ ${.CURDIR}/${TARGET}/${j}_crunch.conf cd ${j}_crunch; ${WMAKE} -f ${j}_crunch.mk subclean cd ${.CURDIR}/..; ${BINMAKE} -f Makefile.inc1 _build-tools ==== //depot/projects/arm/src/release/scripts/package-split.py#2 (text+ko) ==== @@ -7,7 +7,7 @@ # # Usage: package-split.py # -# $FreeBSD: src/release/scripts/package-split.py,v 1.11 2006/03/17 02:05:46 kensmith Exp $ +# $FreeBSD: src/release/scripts/package-split.py,v 1.12 2006/09/09 07:25:40 kris Exp $ import os import sys @@ -60,7 +60,7 @@ 'emulators/mtools', 'graphics/png', 'graphics/xv', - 'irc/xchat2', + 'irc/xchat', 'mail/exim', 'mail/fetchmail', 'mail/mutt', @@ -70,7 +70,7 @@ 'mail/postfix', 'net/cvsup-without-gui', 'net/rsync', - 'net/samba', + 'net/samba3', 'news/slrn', 'news/tin', 'print/a2ps-letter', ==== //depot/projects/arm/src/sbin/ipf/ipf/Makefile#2 (text+ko) ==== @@ -1,15 +1,15 @@ -# $FreeBSD: src/sbin/ipf/ipf/Makefile,v 1.5 2006/05/07 00:40:00 obrien Exp $ +# $FreeBSD: src/sbin/ipf/ipf/Makefile,v 1.6 2006/09/10 08:58:46 obrien Exp $ PROG= ipf -SRCS= ipf.c ipfcomp.c ipf_y.c ipf_l.c bpf_filter.c +SRCS= ${GENHDRS} ipf.c ipfcomp.c ipf_y.c ipf_l.c bpf_filter.c MAN= ipf.8 ipf.4 ipf.5 ipl.4 MLINKS= ipl.4 ipfilter.4 ipf.5 ipf.conf.5 ipf.5 ipf6.conf.5 CFLAGS+= -I. -DIPFILTER_BPF -DPSRCS+= ipf_l.h ipf_y.h +GENHDRS= ipf_l.h ipf_y.h +DPSRCS+= ${GENHDRS} -CLEANFILES+= ipf_y.c ipf_y.h -CLEANFILES+= ipf_l.c ipf_l.h +CLEANFILES+= ${GENHDRS} ipf_y.c ipf_l.c ipf_y.c: ipf_y.y ${YACC} -d ${.ALLSRC} ==== //depot/projects/arm/src/sbin/ipf/ipftest/Makefile#2 (text+ko) ==== @@ -1,7 +1,7 @@ -# $FreeBSD: src/sbin/ipf/ipftest/Makefile,v 1.3 2005/04/28 16:26:34 darrenr Exp $ +# $FreeBSD: src/sbin/ipf/ipftest/Makefile,v 1.4 2006/09/10 08:58:46 obrien Exp $ PROG= ipftest -SRCS= ipftest.c fil.c ip_frag.c ip_state.c ip_nat.c \ +SRCS= ${GENHDRS} ipftest.c fil.c ip_frag.c ip_state.c ip_nat.c \ ip_proxy.c ip_auth.c ip_htable.c ip_lookup.c \ ip_pool.c ip_scan.c ip_sync.c ip_rules.c \ ip_fil.c ip_log.c ippool_y.c ippool_l.c ipf_y.c \ @@ -13,16 +13,15 @@ .PATH: ${.CURDIR}/../../../sys/contrib/ipfilter/netinet -DPSRCS+= ipnat_l.h ipnat_y.h ippool_l.h ippool_y.h ipf_l.h ipf_y.h +GENHDRS= ipnat_l.h ipnat_y.h ippool_l.h ippool_y.h ipf_l.h ipf_y.h +DPSRCS+= ${GENHDRS} -CLEANFILES+= ipf_y.c ipf_y.h -CLEANFILES+= ipf_l.c ipf_l.h +CLEANFILES+= ${GENHDRS} +CLEANFILES+= ipf_y.c ipf_l.c CLEANFILES+= ipf.tab.c ipf.tab.h -CLEANFILES+= ipnat_y.c ipnat_y.h -CLEANFILES+= ipnat_l.c ipnat_l.h +CLEANFILES+= ipnat_y.c ipnat_l.c CLEANFILES+= ipnat.tab.c ipnat.tab.h -CLEANFILES+= ippool_y.c ippool_y.h -CLEANFILES+= ippool_l.c ippool_l.h +CLEANFILES+= ippool_y.c ippool_l.c CLEANFILES+= ippool.tab.c ippool.tab.h ipnat_y.c: ipnat_y.y ==== //depot/projects/arm/src/sbin/ipf/ipmon/Makefile#2 (text+ko) ==== @@ -1,15 +1,15 @@ -# $FreeBSD: src/sbin/ipf/ipmon/Makefile,v 1.2 2005/04/28 16:26:34 darrenr Exp $ +# $FreeBSD: src/sbin/ipf/ipmon/Makefile,v 1.3 2006/09/10 08:58:47 obrien Exp $ PROG= ipmon -SRCS= ipmon.c ipmon_y.c ipmon_l.c +SRCS= ${GENHDRS} ipmon.c ipmon_y.c ipmon_l.c MAN= ipmon.8 CFLAGS+= -DLOGFAC=LOG_LOCAL0 -I. -DPSRCS+= ipmon_l.h ipmon_y.h +GENHDRS+= ipmon_l.h ipmon_y.h +DPSRCS+= ${GENHDRS} -CLEANFILES+= ipmon_y.c ipmon_y.h -CLEANFILES+= ipmon_l.c ipmon_l.h +CLEANFILES+= ${GENHDRS} ipmon_y.c ipmon_l.c ipmon_y.c: ipmon_y.y ${YACC} -d ${.ALLSRC} ==== //depot/projects/arm/src/sbin/ipf/ipnat/Makefile#2 (text+ko) ==== @@ -1,15 +1,15 @@ -# $FreeBSD: src/sbin/ipf/ipnat/Makefile,v 1.2 2005/04/28 16:26:34 darrenr Exp $ +# $FreeBSD: src/sbin/ipf/ipnat/Makefile,v 1.3 2006/09/10 08:58:47 obrien Exp $ PROG= ipnat -SRCS= ipnat.c ipnat_y.c ipnat_l.c +SRCS= ${GENHDRS} ipnat.c ipnat_y.c ipnat_l.c MAN= ipnat.8 ipnat.4 ipnat.5 MLINKS= ipnat.5 ipnat.conf.5 CFLAGS+= -I. -DPSRCS+= ipnat_l.h ipnat_y.h +GENHDRS= ipnat_l.h ipnat_y.h +DPSRCS+= ${GENHDRS} -CLEANFILES+= ipnat_y.c ipnat_y.h -CLEANFILES+= ipnat_l.c ipnat_l.h +CLEANFILES+= ${GENHDRS} ipnat_y.c ipnat_l.c ipnat_y.c: ipnat_y.y ${YACC} -d ${.ALLSRC} ==== //depot/projects/arm/src/sbin/ipf/ippool/Makefile#2 (text+ko) ==== @@ -1,14 +1,14 @@ -# $FreeBSD: src/sbin/ipf/ippool/Makefile,v 1.2 2005/04/28 16:26:34 darrenr Exp $ +# $FreeBSD: src/sbin/ipf/ippool/Makefile,v 1.3 2006/09/10 08:58:47 obrien Exp $ PROG= ippool -SRCS= ippool_y.c ippool_l.c kmem.c ippool.c +SRCS= ${GENHDRS} ippool_y.c ippool_l.c kmem.c ippool.c MAN= ippool.5 ippool.8 CFLAGS+= -I. -DPSRCS+= ippool_l.h ippool_y.h +GENHDRS= ippool_l.h ippool_y.h +DPSRCS+= ${GENHDRS} -CLEANFILES+= ippool_y.c ippool_y.h -CLEANFILES+= ippool_l.c ippool_l.h +CLEANFILES+= ${GENHDRS} ippool_y.c ippool_l.c ippool_y.c: ippool_y.y ${YACC} -d ${.ALLSRC} ==== //depot/projects/arm/src/share/man/man5/src.conf.5#3 (text) ==== @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. -.\" from FreeBSD: src/tools/build/options/makeman,v 1.5 2006/07/31 12:41:13 yar Exp -.\" $FreeBSD: src/share/man/man5/src.conf.5,v 1.6 2006/07/31 14:13:25 yar Exp $ -.Dd July 31, 2006 +.\" from FreeBSD: src/tools/build/options/makeman,v 1.6 2006/09/11 13:39:44 ru Exp +.\" $FreeBSD: src/share/man/man5/src.conf.5,v 1.7 2006/09/11 13:56:28 ru Exp $ +.Dd September 11, 2006 .Dt SRC.CONF 5 .Os .Sh NAME @@ -83,6 +83,11 @@ .Xr acpiconf 8 , .Xr acpidump 8 and related programs. +.It Va WITHOUT_ASSERT_DEBUG +.\" from FreeBSD: src/tools/build/options/WITHOUT_ASSERT_DEBUG,v 1.1 2006/09/11 13:55:27 ru Exp +Set to compile programs and libraries without the +.Xr assert 3 +checks. .It Va WITHOUT_ATM .\" from FreeBSD: src/tools/build/options/WITHOUT_ATM,v 1.1 2006/03/21 07:50:49 ru Exp Set to not build ==== //depot/projects/arm/src/share/mk/bsd.lib.mk#3 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 -# $FreeBSD: src/share/mk/bsd.lib.mk,v 1.176 2006/08/25 23:50:05 imp Exp $ +# $FreeBSD: src/share/mk/bsd.lib.mk,v 1.177 2006/09/11 05:35:56 imp Exp $ # .include @@ -28,6 +28,10 @@ CFLAGS+= ${CRUNCH_CFLAGS} .endif +.if ${MK_ASSERT_DEBUG} == "no" +CFLAGS+= -DNDEBUG +.endif + .if defined(DEBUG_FLAGS) CFLAGS+= ${DEBUG_FLAGS} .endif ==== //depot/projects/arm/src/share/mk/bsd.own.mk#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/mk/bsd.own.mk,v 1.55 2006/05/17 09:33:07 phk Exp $ +# $FreeBSD: src/share/mk/bsd.own.mk,v 1.56 2006/09/11 05:35:57 imp Exp $ # # The include file set common variables for owner, # group, mode, and directories. Defaults are in brackets. @@ -282,6 +282,7 @@ # .for var in \ ACPI \ + ASSERT_DEBUG \ ATM \ AUDIT \ AUTHPF \ ==== //depot/projects/arm/src/share/mk/bsd.prog.mk#2 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/share/mk/bsd.prog.mk,v 1.147 2006/03/17 18:54:34 ru Exp $ +# $FreeBSD: src/share/mk/bsd.prog.mk,v 1.148 2006/09/11 05:35:57 imp Exp $ .include @@ -10,6 +10,10 @@ CFLAGS+=${COPTS} .endif +.if ${MK_ASSERT_DEBUG} == "no" +CFLAGS+= -DNDEBUG +.endif + .if defined(DEBUG_FLAGS) CFLAGS+=${DEBUG_FLAGS} .endif ==== //depot/projects/arm/src/sys/amd64/linux32/linux32_sysvec.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.23 2006/08/17 21:06:48 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.24 2006/09/09 16:25:25 netchild Exp $"); #include "opt_compat.h" #ifndef COMPAT_IA32 @@ -124,7 +124,7 @@ static void linux32_fixlimits(struct proc *p); extern LIST_HEAD(futex_list, futex) futex_list; -extern struct mtx futex_mtx; +extern struct sx futex_sx; static eventhandler_tag linux_exit_tag; static eventhandler_tag linux_schedtail_tag; @@ -1080,7 +1080,7 @@ sx_init(&emul_lock, "emuldata lock"); sx_init(&emul_shared_lock, "emuldata->shared lock"); LIST_INIT(&futex_list); - mtx_init(&futex_mtx, "futex protection lock", NULL, MTX_DEF); + sx_init(&futex_sx, "futex protection lock"); linux_exit_tag = EVENTHANDLER_REGISTER(process_exit, linux_proc_exit, NULL, 1000); linux_schedtail_tag = EVENTHANDLER_REGISTER(schedtail, linux_schedtail, @@ -1110,7 +1110,7 @@ linux_device_unregister_handler(*ldhp); sx_destroy(&emul_lock); sx_destroy(&emul_shared_lock); - mtx_destroy(&futex_mtx); + sx_destroy(&futex_sx); EVENTHANDLER_DEREGISTER(process_exit, linux_exit_tag); EVENTHANDLER_DEREGISTER(schedtail, linux_schedtail_tag); EVENTHANDLER_DEREGISTER(process_exec, linux_exec_tag); ==== //depot/projects/arm/src/sys/compat/linux/linux_emul.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.5 2006/08/28 13:52:27 ssouhlal Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_emul.c,v 1.6 2006/09/09 16:55:55 netchild Exp $"); #include "opt_compat.h" @@ -101,6 +101,7 @@ panic("process not found in proc_init\n"); p->p_emuldata = em; PROC_UNLOCK(p); + EMUL_LOCK(&emul_lock); } else { /* lookup the old one */ em = em_find(td->td_proc, EMUL_UNLOCKED); @@ -129,14 +130,15 @@ if (child != 0) { + EMUL_UNLOCK(&emul_lock); EMUL_SHARED_WLOCK(&emul_shared_lock); LIST_INSERT_HEAD(&em->shared->threads, em, threads); EMUL_SHARED_WUNLOCK(&emul_shared_lock); p = pfind(child); - PROC_UNLOCK(p); /* we might have a sleeping linux_schedtail */ wakeup(&p->p_emuldata); + PROC_UNLOCK(p); } else EMUL_UNLOCK(&emul_lock); ==== //depot/projects/arm/src/sys/compat/linux/linux_file.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.96 2006/07/11 20:52:07 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_file.c,v 1.97 2006/09/10 13:47:56 netchild Exp $"); #include "opt_compat.h" #include "opt_mac.h" @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -495,6 +496,7 @@ { char *path; int error; + struct stat st; LCONVPATHEXIST(td, args->path, &path); @@ -504,6 +506,11 @@ #endif error = kern_unlink(td, path, UIO_SYSSPACE); + if (error == EPERM) + /* Introduce POSIX noncompliant behaviour of Linux */ + if (kern_stat(td, path, UIO_SYSSPACE, &st) == 0) + if (S_ISDIR(st.st_mode)) + error = EISDIR; LFREEPATH(path); return (error); } ==== //depot/projects/arm/src/sys/compat/linux/linux_futex.c#4 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_futex.c,v 1.4 2006/08/26 10:36:16 netchild Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_futex.c,v 1.6 2006/09/09 16:25:25 netchild Exp $"); #if 0 __KERNEL_RCSID(1, "$NetBSD: linux_futex.c,v 1.5 2005/11/23 16:14:57 manu Exp $"); #endif @@ -47,6 +47,7 @@ #include #include #include +#include #include #ifdef COMPAT_LINUX32 @@ -73,10 +74,10 @@ }; LIST_HEAD(futex_list, futex) futex_list; -struct mtx futex_mtx; /* this protects the LIST of futexes */ +struct sx futex_sx; /* this protects the LIST of futexes */ -#define FUTEX_LOCK mtx_lock(&futex_mtx) -#define FUTEX_UNLOCK mtx_unlock(&futex_mtx) +#define FUTEX_LOCK sx_xlock(&futex_sx) +#define FUTEX_UNLOCK sx_xunlock(&futex_sx) #define FUTEX_LOCKED 1 #define FUTEX_UNLOCKED 0 @@ -302,9 +303,6 @@ ret = futex_wake(f, args->val, NULL); futex_put(f); if (op_ret > 0) { -#ifdef DEBUG - printf("second wakeup\n"); -#endif op_ret = 0; /* * Linux uses the address of the timespec parameter @@ -346,16 +344,11 @@ return f; } } - if (locked == FUTEX_UNLOCKED) - FUTEX_UNLOCK; - /* Not found, create it */ f = malloc(sizeof(*f), M_LINUX, M_WAITOK); f->f_uaddr = uaddr; f->f_refcount = 1; TAILQ_INIT(&f->f_waiting_proc); - if (locked == FUTEX_UNLOCKED) - FUTEX_LOCK; LIST_INSERT_HEAD(&futex_list, f, f_list); if (locked == FUTEX_UNLOCKED) FUTEX_UNLOCK; @@ -421,13 +414,13 @@ FUTEX_LOCK; TAILQ_FOREACH(wp, &f->f_waiting_proc, wp_list) { if (count <= n) { - wakeup(wp); + wakeup_one(wp); count++; } else { if (newf != NULL) { /* futex_put called after tsleep */ wp->wp_new_futex = futex_get(newf->f_uaddr, FUTEX_LOCKED); - wakeup(wp); + wakeup_one(wp); } } } ==== //depot/projects/arm/src/sys/dev/em/if_em.c#28 (text+ko) ==== @@ -31,7 +31,7 @@ ***************************************************************************/ -/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.139 2006/09/03 00:27:41 jmg Exp $*/ +/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.143 2006/09/10 19:23:27 pdeuskar Exp $*/ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" @@ -72,6 +72,7 @@ #include #include +#include #include #include #include @@ -86,7 +87,7 @@ * Driver version *********************************************************************/ -char em_driver_version[] = "Version - 6.1.4"; +char em_driver_version[] = "Version - 6.1.4 - TSO"; /********************************************************************* @@ -231,6 +232,8 @@ struct mbuf *); static void em_transmit_checksum_setup(struct adapter *, struct mbuf *, uint32_t *, uint32_t *); +static boolean_t em_tso_setup(struct adapter *, struct mbuf *, + uint32_t *, uint32_t *); static void em_set_promisc(struct adapter *); static void em_disable_promisc(struct adapter *); static void em_set_multi(struct adapter *); @@ -304,6 +307,7 @@ #define E1000_TICKS_TO_USECS(ticks) ((1024 * (ticks) + 500) / 1000) #define E1000_USECS_TO_TICKS(usecs) ((1000 * (usecs) + 512) / 1024) +#define M_TSO_LEN 66 static int em_tx_int_delay_dflt = E1000_TICKS_TO_USECS(EM_TIDV); static int em_rx_int_delay_dflt = E1000_TICKS_TO_USECS(EM_RDTR); @@ -907,6 +911,10 @@ ifp->if_capenable ^= IFCAP_HWCSUM; reinit = 1; } + if (mask & IFCAP_TSO) { + ifp->if_capenable ^= IFCAP_TSO; + reinit = 1; + } if (mask & IFCAP_VLAN_HWTAGGING) { ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; reinit = 1; @@ -1075,11 +1083,12 @@ ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + ifp->if_hwassist = 0; if (adapter->hw.mac_type >= em_82543) { if (ifp->if_capenable & IFCAP_TXCSUM) ifp->if_hwassist = EM_CHECKSUM_FEATURES; - else - ifp->if_hwassist = 0; + if (ifp->if_capenable & IFCAP_TSO) + ifp->if_hwassist |= EM_TCPSEG_FEATURES; } callout_reset(&adapter->timer, hz, em_local_timer, adapter); @@ -1441,11 +1450,13 @@ struct m_tag *mtag; uint32_t txd_upper, txd_lower, txd_used, txd_saved; int nsegs, i, j; - int error; + int error, do_tso, tso_desc = 0; m_head = *m_headp; current_tx_desc = NULL; - txd_used = txd_saved = 0; + txd_upper = txd_lower = txd_used = txd_saved = 0; + + do_tso = ((m_head->m_pkthdr.csum_flags & CSUM_TSO) != 0); /* * Force a cleanup if number of TX descriptors @@ -1499,6 +1510,17 @@ } /* + * TSO workaround: + * If an mbuf is only header we need + * to pull 4 bytes of data into it. + */ + if (do_tso && (m_head->m_len <= M_TSO_LEN)) { + m_head = m_pullup(m_head, M_TSO_LEN + 4); + if (m_head == NULL) + return (ENOBUFS); + } + + /* * Map the packet for DMA. */ tx_buffer = &adapter->tx_buffer_area[adapter->next_avail_tx_desc]; @@ -1536,24 +1558,42 @@ return (EIO); } - if (nsegs > adapter->num_tx_desc_avail) { + /* + * TSO Hardware workaround, if this packet is not + * TSO, and is only a single descriptor long, and + * it follows a TSO burst, then we need to add a + * sentinel descriptor to prevent premature writeback. + */ + if ((do_tso == 0) && (adapter->tx_tso == TRUE)) { + if (nsegs == 1) + tso_desc = TRUE; + adapter->tx_tso = FALSE; + } + + if (nsegs > adapter->num_tx_desc_avail - 2) { adapter->no_tx_desc_avail2++; bus_dmamap_unload(adapter->txtag, map); return (ENOBUFS); } + /* Do hardware assists */ m_head = *m_headp; - if (ifp->if_hwassist > 0) - em_transmit_checksum_setup(adapter, m_head, &txd_upper, &txd_lower); - else - txd_upper = txd_lower = 0; + if ( ifp->if_hwassist > 0) { + if (em_tso_setup(adapter, m_head, &txd_upper, &txd_lower)) { + /* we need to make a final sentinel transmit desc */ + tso_desc = TRUE; + } else >>> TRUNCATED FOR MAIL (1000 lines) <<<