svn commit: r199477 - head/sys/netinet
Author: tuexen Date: Wed Nov 18 12:17:06 2009 New Revision: 199477 URL: http://svn.freebsd.org/changeset/base/199477 Log: Fix a bug where the system panics when a SHUTDOWN is received with an illegal TSN. Approved by: rrs (mentor) MFC after: ASAP Modified: head/sys/netinet/sctp_input.c Modified: head/sys/netinet/sctp_input.c == --- head/sys/netinet/sctp_input.c Wed Nov 18 09:20:04 2009 (r199476) +++ head/sys/netinet/sctp_input.c Wed Nov 18 12:17:06 2009 (r199477) @@ -834,6 +834,9 @@ sctp_handle_shutdown(struct sctp_shutdow return; } else { sctp_update_acked(stcb, cp, net, abort_flag); + if (*abort_flag) { + return; + } } if (asoc->control_pdapi) { /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r199465 - head/lib/librt
In message: <4b037c0a.5030...@freebsd.org> David Xu writes: : M. Warner Losh wrote: : > In message: <200911180135.nai1zaie051...@svn.freebsd.org> : > David Xu writes: : > : Author: davidxu : > : Date: Wed Nov 18 01:35:36 2009 : > : New Revision: 199465 : > : URL: http://svn.freebsd.org/changeset/base/199465 : > : : > : Log: : > : Fix compiler warnings. : > : : > : Modified: : > : head/lib/librt/sigev_thread.c : > : : > : Modified: head/lib/librt/sigev_thread.c : > : == : > : --- head/lib/librt/sigev_thread.c Wed Nov 18 01:13:15 2009 (r199464) : > : +++ head/lib/librt/sigev_thread.c Wed Nov 18 01:35:36 2009 (r199465) : > : @@ -439,9 +439,9 @@ worker_routine(void *arg) : > : { : > : struct sigev_node *sn = arg; : > : : > : - _pthread_cleanup_push(worker_cleanup, sn); : > : + pthread_cleanup_push(worker_cleanup, sn); : > : sn->sn_dispatch(sn); : > : - _pthread_cleanup_pop(1); : > : + pthread_cleanup_pop(1); : > : : > : return (0); : > : } : > : > This change causes libthr to be needed now for librt. Before this : > wasn't the case, so ntp break on mips now (I haven't looked at other : > arcs yet). _pthread_cleanup_pop is exported from libc, while : > pthread_cleanup_pop causes __pthread_cleanup_pop_imp to be referenced, : > which is defined in libthr. : > : > I guess that's a long way of saying "gee, this seems wrong to me, : > please explain what you are fixing better or revert this change, : > thanks" :) : > : > Warner : > : > : : librt needs libpthread to function correctly, otherwise SIGEV_THREAD : notification won't work, though the ntp code may not use it, but who : can guarantee librt never use threads? in old design, the timer : functions were really in libpthread and implemented as threads. : : Regards, : David Xu : : : Index: ntpdate/Makefile : === : --- ntpdate/Makefile (revision 199351) : +++ ntpdate/Makefile (working copy) : @@ -9,7 +9,7 @@ : CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../ : : DPADD= ${LIBNTP} ${LIBM} ${LIBMD} ${LIBRT} : -LDADD= ${LIBNTP} -lm -lmd -lrt : +LDADD= ${LIBNTP} -lm -lmd -lrt -lpthread : : CLEANFILES+= .version version.c : : Index: ntpd/Makefile : === : --- ntpd/Makefile (revision 199351) : +++ ntpd/Makefile (working copy) : @@ -33,7 +33,7 @@ : -I${.CURDIR}/../../../contrib/ntp/libopts -I${.CURDIR} : : DPADD= ${LIBPARSE} ${LIBNTP} ${LIBM} ${LIBMD} ${LIBRT} ${LIBOPTS} : -LDADD= ${LIBPARSE} ${LIBNTP} -lm -lmd -lrt ${LIBOPTS} : +LDADD= ${LIBPARSE} ${LIBNTP} -lm -lmd -lrt -lpthread ${LIBOPTS} : : .if ${MK_OPENSSL} != "no" && !defined(RELEASE_CRUNCH) : DPADD+= ${LIBCRYPTO} I'd like to look more deeply into this issue. Can you back out the original commit until I can track things down a little more completely? Warner ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r199469 - head/lib/librt
In message: <200911180509.nai593kq058...@svn.freebsd.org> David Xu writes: : Author: davidxu : Date: Wed Nov 18 05:09:03 2009 : New Revision: 199469 : URL: http://svn.freebsd.org/changeset/base/199469 : : Log: : link libpthread because the librt really needs it to fully function. If you are now requiring libpthread, why are you using the _pthread_* functions everywhere else? Warner : Modified: : head/lib/librt/Makefile : : Modified: head/lib/librt/Makefile : == : --- head/lib/librt/Makefile Wed Nov 18 04:34:43 2009(r199468) : +++ head/lib/librt/Makefile Wed Nov 18 05:09:03 2009(r199469) : @@ -4,6 +4,7 @@ LIB=rt : SHLIB_MAJOR= 1 : CFLAGS+=-I${.CURDIR}/../libc/include -I${.CURDIR} : CFLAGS+=-Winline -Wall -g : +LDADD+=-lpthread : : #MAN=libthr.3 : : ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199478 - stable/8/lib/libc/net
Author: ume Date: Wed Nov 18 14:40:00 2009 New Revision: 199478 URL: http://svn.freebsd.org/changeset/base/199478 Log: MFC r199188: ANSIfy. Modified: stable/8/lib/libc/net/ip6opt.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/net/ip6opt.c == --- stable/8/lib/libc/net/ip6opt.c Wed Nov 18 12:17:06 2009 (r199477) +++ stable/8/lib/libc/net/ip6opt.c Wed Nov 18 14:40:00 2009 (r199478) @@ -55,8 +55,7 @@ static void inet6_insert_padopt(u_char * * byte, the length byte, and the option data. */ int -inet6_option_space(nbytes) - int nbytes; +inet6_option_space(int nbytes) { nbytes += 2;/* we need space for nxt-hdr and length fields */ return(CMSG_SPACE((nbytes + 7) & ~7)); @@ -68,10 +67,7 @@ inet6_option_space(nbytes) * success or -1 on an error. */ int -inet6_option_init(bp, cmsgp, type) - void *bp; - struct cmsghdr **cmsgp; - int type; +inet6_option_init(void *bp, struct cmsghdr **cmsgp, int type) { struct cmsghdr *ch = (struct cmsghdr *)bp; @@ -98,11 +94,8 @@ inet6_option_init(bp, cmsgp, type) * earlier. It must have a value between 0 and 7, inclusive. */ int -inet6_option_append(cmsg, typep, multx, plusy) - struct cmsghdr *cmsg; - const u_int8_t *typep; - int multx; - int plusy; +inet6_option_append(struct cmsghdr *cmsg, const u_int8_t *typep, int multx, +int plusy) { int padlen, optlen, off; u_char *bp = (u_char *)cmsg + cmsg->cmsg_len; @@ -171,11 +164,7 @@ inet6_option_append(cmsg, typep, multx, * */ u_int8_t * -inet6_option_alloc(cmsg, datalen, multx, plusy) - struct cmsghdr *cmsg; - int datalen; - int multx; - int plusy; +inet6_option_alloc(struct cmsghdr *cmsg, int datalen, int multx, int plusy) { int padlen, off; u_int8_t *bp = (u_char *)cmsg + cmsg->cmsg_len; @@ -238,9 +227,7 @@ inet6_option_alloc(cmsg, datalen, multx, * (RFC 2292, 6.3.5) */ int -inet6_option_next(cmsg, tptrp) - const struct cmsghdr *cmsg; - u_int8_t **tptrp; +inet6_option_next(const struct cmsghdr *cmsg, u_int8_t **tptrp) { struct ip6_ext *ip6e; int hdrlen, optlen; @@ -296,10 +283,7 @@ inet6_option_next(cmsg, tptrp) * it's a typo. The variable should be type of u_int8_t **. */ int -inet6_option_find(cmsg, tptrp, type) - const struct cmsghdr *cmsg; - u_int8_t **tptrp; - int type; +inet6_option_find(const struct cmsghdr *cmsg, u_int8_t **tptrp, int type) { struct ip6_ext *ip6e; int hdrlen, optlen; @@ -352,8 +336,7 @@ inet6_option_find(cmsg, tptrp, type) * calculated length and the limitation of the buffer. */ static int -ip6optlen(opt, lim) - u_int8_t *opt, *lim; +ip6optlen(u_int8_t *opt, u_int8_t *lim) { int optlen; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199479 - head/share/misc
Author: mandree (ports committer) Date: Wed Nov 18 14:46:46 2009 New Revision: 199479 URL: http://svn.freebsd.org/changeset/base/199479 Log: Add mandree@ and mentorship relations with garga/miwi. Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot == --- head/share/misc/committers-ports.dotWed Nov 18 14:40:00 2009 (r199478) +++ head/share/misc/committers-ports.dotWed Nov 18 14:46:46 2009 (r199479) @@ -110,6 +110,7 @@ lwhsu [label="Li-Wen hsu\nlw...@freebsd. lx [label="David thiel\...@freebsd.org\n2006/11/29"] maho [label="Maho nakata\nm...@freebsd.org\n2002/10/17"] makc [label="Max brazhnikov\m...@freebsd.org\n2008/08/25"] +mandree [label="Matthias andree\nmand...@freebsd.org\n2009/11/18"] marcus [label="Joe Marcus clarke\nmar...@freebsd.org\n2002/04/05"] markus [label="Markus brueffer\nmar...@freebsd.org\n2004/02/21"] mat [label="Mathieu arnold\n...@freebsd.org\n2003/08/15"] @@ -225,6 +226,7 @@ gabor -> pgj garga -> acm garga -> alepulver +garga -> mandree garga -> mm garga -> rnoland garga -> vd @@ -280,6 +282,7 @@ miwi -> beat miwi -> farrokhi miwi -> gahr miwi -> makc +miwi -> mandree miwi -> mva miwi -> nox miwi -> tabthorpe ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199480 - head/share/misc
Author: mandree (ports committer) Date: Wed Nov 18 14:47:47 2009 New Revision: 199480 URL: http://svn.freebsd.org/changeset/base/199480 Log: Fix mistyped \n in makc's label. This and previous commit have been... Approved by:garga (mentor) Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot == --- head/share/misc/committers-ports.dotWed Nov 18 14:46:46 2009 (r199479) +++ head/share/misc/committers-ports.dotWed Nov 18 14:47:47 2009 (r199480) @@ -109,7 +109,7 @@ lth [label="Lars thegler\n...@freebsd.or lwhsu [label="Li-Wen hsu\nlw...@freebsd.org\n2007/04/03"] lx [label="David thiel\...@freebsd.org\n2006/11/29"] maho [label="Maho nakata\nm...@freebsd.org\n2002/10/17"] -makc [label="Max brazhnikov\m...@freebsd.org\n2008/08/25"] +makc [label="Max brazhnikov\nm...@freebsd.org\n2008/08/25"] mandree [label="Matthias andree\nmand...@freebsd.org\n2009/11/18"] marcus [label="Joe Marcus clarke\nmar...@freebsd.org\n2002/04/05"] markus [label="Markus brueffer\nmar...@freebsd.org\n2004/02/21"] ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r194783 - head/lib/libc/stdtime
On Tuesday 17 November 2009 1:25:01 pm Jilles Tjoelker wrote: > On Tue, Nov 17, 2009 at 01:50:32AM +0200, Dmitry Pryanishnikov wrote: > > > Author: edwin > > > Date: Tue Jun 23 22:28:44 2009 > > > New Revision: 194783 > > > URL: http://svn.freebsd.org/changeset/base/194783 > > > > Log: > > > Remove duplicate if-statement on gmt_is_set in gmtsub(). > > > > MFC after: 1 week > > > > Modified: > > > head/lib/libc/stdtime/localtime.c > > >This change looks like a (small?) pessimization to me: before it, > > _MUTEX_LOCK/_MUTEX_UNLOCK pair would be skipped for the case gmt_is_set > > == TRUE (all invocations except the first one), now it won't. I'm not > > sure whether this is critical here though... > > It is certainly less efficient, but the old code was (most likely) > wrong. It used an idiom known as "double checked locking", which is > incorrect in most memory models. The problem is that the store to > gmt_is_set may become visible without stores to other memory (gmtptr and > what it points to) becoming visible. That is easily fixed with a memory barrier. Just use atomic_store_rel() to set gmt_is_set at the end of the setup phase. -- John Baldwin ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199484 - stable/8/sys/netinet
Author: tuexen Date: Wed Nov 18 15:35:03 2009 New Revision: 199484 URL: http://svn.freebsd.org/changeset/base/199484 Log: MFC 199477 Fix a bug where the system panics when a SHUTDOWN is received with an illegal TSN. This bug was reported by Irene Ruengeler. Approved by: re, rrs (mentor) Modified: stable/8/sys/netinet/sctp_input.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/netinet/sctp_input.c == --- stable/8/sys/netinet/sctp_input.c Wed Nov 18 15:14:47 2009 (r199483) +++ stable/8/sys/netinet/sctp_input.c Wed Nov 18 15:35:03 2009 (r199484) @@ -834,6 +834,9 @@ sctp_handle_shutdown(struct sctp_shutdow return; } else { sctp_update_acked(stcb, cp, net, abort_flag); + if (*abort_flag) { + return; + } } if (asoc->control_pdapi) { /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199490 - head/sys/vm
Author: alc Date: Wed Nov 18 18:05:54 2009 New Revision: 199490 URL: http://svn.freebsd.org/changeset/base/199490 Log: Simplify both the invocation and the implementation of vm_fault() for wiring pages. (Note: Claims made in the comments about the handling of breakpoints in wired pages have been false for roughly a decade. This and another bug involving breakpoints will be fixed in coming changes.) Reviewed by: kib Modified: head/sys/vm/vm_extern.h head/sys/vm/vm_fault.c head/sys/vm/vm_map.c head/sys/vm/vm_map.h Modified: head/sys/vm/vm_extern.h == --- head/sys/vm/vm_extern.h Wed Nov 18 17:51:54 2009(r199489) +++ head/sys/vm/vm_extern.h Wed Nov 18 18:05:54 2009(r199490) @@ -58,7 +58,7 @@ int vm_fault(vm_map_t, vm_offset_t, vm_p void vm_fault_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t, vm_ooffset_t *); void vm_fault_unwire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t); -int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t); +int vm_fault_wire(vm_map_t, vm_offset_t, vm_offset_t, boolean_t); int vm_forkproc(struct thread *, struct proc *, struct thread *, struct vmspace *, int); void vm_waitproc(struct proc *); int vm_mmap(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, objtype_t, void *, vm_ooffset_t); Modified: head/sys/vm/vm_fault.c == --- head/sys/vm/vm_fault.c Wed Nov 18 17:51:54 2009(r199489) +++ head/sys/vm/vm_fault.c Wed Nov 18 18:05:54 2009(r199490) @@ -185,7 +185,7 @@ unlock_and_deallocate(struct faultstate * default objects are zero-fill, there is no real pager. */ #define TRYPAGER (fs.object->type != OBJT_DEFAULT && \ - (((fault_flags & VM_FAULT_WIRE_MASK) == 0) || wired)) + ((fault_flags & VM_FAULT_CHANGE_WIRING) == 0 || wired)) /* * vm_fault: @@ -238,31 +238,15 @@ RetryFault:; result = vm_map_lookup(&fs.map, vaddr, fault_type, &fs.entry, &fs.first_object, &fs.first_pindex, &prot, &wired); if (result != KERN_SUCCESS) { - if (result != KERN_PROTECTION_FAILURE || - (fault_flags & VM_FAULT_WIRE_MASK) != VM_FAULT_USER_WIRE) { - if (growstack && result == KERN_INVALID_ADDRESS && - map != kernel_map && curproc != NULL) { - result = vm_map_growstack(curproc, vaddr); - if (result != KERN_SUCCESS) - return (KERN_FAILURE); - growstack = FALSE; - goto RetryFault; - } - return (result); + if (growstack && result == KERN_INVALID_ADDRESS && + map != kernel_map) { + result = vm_map_growstack(curproc, vaddr); + if (result != KERN_SUCCESS) + return (KERN_FAILURE); + growstack = FALSE; + goto RetryFault; } - - /* -* If we are user-wiring a r/w segment, and it is COW, then -* we need to do the COW operation. Note that we don't COW -* currently RO sections now, because it is NOT desirable -* to COW .text. We simply keep .text from ever being COW'ed -* and take the heat that one cannot debug wired .text sections. -*/ - result = vm_map_lookup(&fs.map, vaddr, - VM_PROT_READ|VM_PROT_WRITE|VM_PROT_OVERRIDE_WRITE, - &fs.entry, &fs.first_object, &fs.first_pindex, &prot, &wired); - if (result != KERN_SUCCESS) - return (result); + return (result); } map_generation = fs.map->timestamp; @@ -919,9 +903,8 @@ vnode_locked: * won't find it (yet). */ pmap_enter(fs.map->pmap, vaddr, fault_type, fs.m, prot, wired); - if (((fault_flags & VM_FAULT_WIRE_MASK) == 0) && (wired == 0)) { + if ((fault_flags & VM_FAULT_CHANGE_WIRING) == 0 && wired == 0) vm_fault_prefault(fs.map->pmap, vaddr, fs.entry); - } VM_OBJECT_LOCK(fs.object); vm_page_lock_queues(); vm_page_flag_set(fs.m, PG_REFERENCED); @@ -930,7 +913,7 @@ vnode_locked: * If the page is not wired down, then put it where the pageout daemon * can find it. */ - if (fault_flags & VM_FAULT_WIRE_MASK) { + if (fault_flags & VM_FAULT_CHANGE_WIRING) { if (wired) vm_page_wire(fs.m); else @@ -1048,7 +1031,7 @@ vm_fault_quick(caddr_t v, int prot) *
svn commit: r199491 - head/sys/dev/ath/ath_hal
Author: rpaulo Date: Wed Nov 18 18:48:18 2009 New Revision: 199491 URL: http://svn.freebsd.org/changeset/base/199491 Log: Add WorldB SKU. Reviewed by: sam MFC after:1 week Modified: head/sys/dev/ath/ath_hal/ah_regdomain.c Modified: head/sys/dev/ath/ath_hal/ah_regdomain.c == --- head/sys/dev/ath/ath_hal/ah_regdomain.c Wed Nov 18 18:05:54 2009 (r199490) +++ head/sys/dev/ath/ath_hal/ah_regdomain.c Wed Nov 18 18:48:18 2009 (r199491) @@ -170,6 +170,7 @@ enum { WOR9_WORLD = 0x69, /* World9 (WO9 SKU) */ WORA_WORLD = 0x6A, /* WorldA (WOA SKU) */ + WORB_WORLD = 0x6B, /* WorldB (WOB SKU) */ MKK3_MKKB = 0x80, /* Japan UNI-1 even + MKKB */ MKK3_MKKA2 = 0x81, /* Japan UNI-1 even + MKKA2 */ @@ -432,6 +433,7 @@ static REG_DMN_PAIR_MAPPING regDomainPai {EU1_WORLD, EU1_WORLD, EU1_WORLD, NO_REQ, NO_REQ, PSCAN_DEFER, CTRY_DEFAULT }, {WOR9_WORLD,WOR9_WORLD, WOR9_WORLD, DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER, CTRY_DEFAULT }, {WORA_WORLD,WORA_WORLD, WORA_WORLD, DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER, CTRY_DEFAULT }, + {WORB_WORLD,WORB_WORLD, WORB_WORLD, DISALLOW_ADHOC_11A | DISALLOW_ADHOC_11A_TURB, NO_REQ, PSCAN_DEFER, CTRY_DEFAULT }, }; /* @@ -1681,6 +1683,31 @@ static REG_DOMAIN regDomains[] = { WG1_2467_2467), .chan11g_turbo = BM1(T3_2437_2437)}, + {.regDmnEnum= WORB_WORLD, +.conformanceTestLimit = NO_CTL, +.dfsMask = DFS_FCC3 | DFS_ETSI, +.pscan = PSCAN_WWR, +.flags = DISALLOW_ADHOC_11A, +.chan11a = BM4(W1_5260_5320, + W1_5180_5240, + W1_5745_5825, + W1_5500_5700), +.chan11b = BM7(W1_2412_2412, + W1_2437_2442, + W1_2462_2462, + W1_2472_2472, + W1_2417_2432, + W1_2447_2457, + W1_2467_2467), +.chan11g = BM7(WG1_2412_2412, + WG1_2437_2442, + WG1_2462_2462, + WG1_2472_2472, + WG1_2417_2432, + WG1_2447_2457, + WG1_2467_2467), +.chan11g_turbo = BM1(T3_2437_2437)}, + {.regDmnEnum= NULL1, .conformanceTestLimit = NO_CTL, } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199492 - in head/sys: amd64/amd64 i386/i386 net
Author: jkim Date: Wed Nov 18 19:26:17 2009 New Revision: 199492 URL: http://svn.freebsd.org/changeset/base/199492 Log: - Make BPF JIT compiler working again in userland. We are limiting size of generated native binary to page size for now. - Update copyright date and fix some style nits. Modified: head/sys/amd64/amd64/bpf_jit_machdep.c head/sys/amd64/amd64/bpf_jit_machdep.h head/sys/i386/i386/bpf_jit_machdep.c head/sys/i386/i386/bpf_jit_machdep.h head/sys/net/bpf_jitter.c head/sys/net/bpf_jitter.h Modified: head/sys/amd64/amd64/bpf_jit_machdep.c == --- head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 18:48:18 2009 (r199491) +++ head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$"); #include #else #include +#include +#include #endif #include @@ -97,9 +99,9 @@ emit_code(bpf_bin_stream *stream, u_int bpf_filter_func bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) { + bpf_bin_stream stream; struct bpf_insn *ins; u_int i, pass; - bpf_bin_stream stream; /* * NOTE: do not modify the name of this variable, as it's used by @@ -475,20 +477,31 @@ bpf_jit_compile(struct bpf_insn *prog, u } pass++; - if (pass == 2) + if (pass >= 2) { +#ifndef _KERNEL + if (mprotect(stream.ibuf, stream.cur_ip, + PROT_READ | PROT_EXEC) != 0) { + munmap(stream.ibuf, BPF_JIT_MAXSIZE); + stream.ibuf = NULL; + } +#endif break; + } #ifdef _KERNEL stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT); - if (stream.ibuf == NULL) { - free(stream.refs, M_BPFJIT); - return (NULL); - } + if (stream.ibuf == NULL) + break; #else - stream.ibuf = (char *)malloc(stream.cur_ip); - if (stream.ibuf == NULL) { - free(stream.refs); - return (NULL); + if (stream.cur_ip > BPF_JIT_MAXSIZE) { + stream.ibuf = NULL; + break; + } + stream.ibuf = (char *)mmap(NULL, BPF_JIT_MAXSIZE, + PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + if (stream.ibuf == MAP_FAILED) { + stream.ibuf = NULL; + break; } #endif Modified: head/sys/amd64/amd64/bpf_jit_machdep.h == --- head/sys/amd64/amd64/bpf_jit_machdep.h Wed Nov 18 18:48:18 2009 (r199491) +++ head/sys/amd64/amd64/bpf_jit_machdep.h Wed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: head/sys/i386/i386/bpf_jit_machdep.c == --- head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 18:48:18 2009 (r199491) +++ head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$"); #include #else #include +#include +#include #endif #include @@ -97,9 +99,9 @@ emit_code(bpf_bin_stream *stream, u_int bpf_filter_func bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) { + bpf_bin_stream stream; struct bpf_insn *ins; u_int i, pass; - bpf_bin_stream stream; /* * NOTE: do not modify the name of this variable, as it's used by @@ -498,20 +500,31 @@ bpf_jit_compile(struct bpf_insn *prog, u } pass++; - if (pass == 2) + if (pass >= 2) { +#ifndef _KERNEL + if (mprotect(stream.ibuf, stream.cur_ip, + PROT_READ | PROT_EXEC) != 0) { + munmap(strea
Re: svn commit: r199492 - in head/sys: amd64/amd64 i386/i386 net
On Wed, 18 Nov 2009, Jung-uk Kim wrote: Author: jkim Date: Wed Nov 18 19:26:17 2009 New Revision: 199492 URL: http://svn.freebsd.org/changeset/base/199492 Log: - Make BPF JIT compiler working again in userland. We are limiting size of generated native binary to page size for now. - Update copyright date and fix some style nits. I'm not sure if you have noticed, but there are a bunch of embedded target ports of the BPF JIT in the PR collection -- ARM, MIPS, etc. Any chance we might see those integrated into 9.x at some point? The less cache-rich CPUs are especially helped by JIT parts. Robert N M Watson Computer Laboratory University of Cambridge Modified: head/sys/amd64/amd64/bpf_jit_machdep.c head/sys/amd64/amd64/bpf_jit_machdep.h head/sys/i386/i386/bpf_jit_machdep.c head/sys/i386/i386/bpf_jit_machdep.h head/sys/net/bpf_jitter.c head/sys/net/bpf_jitter.h Modified: head/sys/amd64/amd64/bpf_jit_machdep.c == --- head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 18:48:18 2009 (r199491) +++ head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$"); #include #else #include +#include +#include #endif #include @@ -97,9 +99,9 @@ emit_code(bpf_bin_stream *stream, u_int bpf_filter_func bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) { + bpf_bin_stream stream; struct bpf_insn *ins; u_int i, pass; - bpf_bin_stream stream; /* * NOTE: do not modify the name of this variable, as it's used by @@ -475,20 +477,31 @@ bpf_jit_compile(struct bpf_insn *prog, u } pass++; - if (pass == 2) + if (pass >= 2) { +#ifndef _KERNEL + if (mprotect(stream.ibuf, stream.cur_ip, + PROT_READ | PROT_EXEC) != 0) { + munmap(stream.ibuf, BPF_JIT_MAXSIZE); + stream.ibuf = NULL; + } +#endif break; + } #ifdef _KERNEL stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT); - if (stream.ibuf == NULL) { - free(stream.refs, M_BPFJIT); - return (NULL); - } + if (stream.ibuf == NULL) + break; #else - stream.ibuf = (char *)malloc(stream.cur_ip); - if (stream.ibuf == NULL) { - free(stream.refs); - return (NULL); + if (stream.cur_ip > BPF_JIT_MAXSIZE) { + stream.ibuf = NULL; + break; + } + stream.ibuf = (char *)mmap(NULL, BPF_JIT_MAXSIZE, + PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); + if (stream.ibuf == MAP_FAILED) { + stream.ibuf = NULL; + break; } #endif Modified: head/sys/amd64/amd64/bpf_jit_machdep.h == --- head/sys/amd64/amd64/bpf_jit_machdep.h Wed Nov 18 18:48:18 2009 (r199491) +++ head/sys/amd64/amd64/bpf_jit_machdep.h Wed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: head/sys/i386/i386/bpf_jit_machdep.c == --- head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 18:48:18 2009 (r199491) +++ head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 19:26:17 2009 (r199492) @@ -1,6 +1,6 @@ /*- * Copyright (C) 2002-2003 NetGroup, Politecnico di Torino (Italy) - * Copyright (C) 2005-2008 Jung-uk Kim + * Copyright (C) 2005-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,6 +42,8 @@ __FBSDID("$FreeBSD$"); #include #else #include +#include +#include #endif #include @@ -97,9 +99,9 @@ emit_code(bpf_bin_stream *stream, u_int bpf_filter_func bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) { + bpf_bin_stream stream; struct bpf_insn *ins; u_int i, pass; - bpf_bin_stream stream; /* * NOTE: do not modify the name of this variable, as it's used by @@ -498,20 +500,31 @@ bpf_jit_
svn commit: r199498 - in head/sys: amd64/amd64 i386/i386 net
Author: jkim Date: Wed Nov 18 23:40:19 2009 New Revision: 199498 URL: http://svn.freebsd.org/changeset/base/199498 Log: - Change internal function bpf_jit_compile() to return allocated size of the generated binary and remove page size limitation for userland. - Use contigmalloc(9)/contigfree(9) instead of malloc(9)/free(9) to make sure the generated binary aligns properly and make it physically contiguous. Modified: head/sys/amd64/amd64/bpf_jit_machdep.c head/sys/i386/i386/bpf_jit_machdep.c head/sys/net/bpf_jitter.c head/sys/net/bpf_jitter.h Modified: head/sys/amd64/amd64/bpf_jit_machdep.c == --- head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 22:53:05 2009 (r199497) +++ head/sys/amd64/amd64/bpf_jit_machdep.c Wed Nov 18 23:40:19 2009 (r199498) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include -bpf_filter_funcbpf_jit_compile(struct bpf_insn *, u_int, int *); +bpf_filter_funcbpf_jit_compile(struct bpf_insn *, u_int, size_t *, int *); /* * emit routine to update the jump table @@ -97,7 +97,7 @@ emit_code(bpf_bin_stream *stream, u_int * Function that does the real stuff */ bpf_filter_func -bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) +bpf_jit_compile(struct bpf_insn *prog, u_int nins, size_t *size, int *mem) { bpf_bin_stream stream; struct bpf_insn *ins; @@ -481,23 +481,21 @@ bpf_jit_compile(struct bpf_insn *prog, u #ifndef _KERNEL if (mprotect(stream.ibuf, stream.cur_ip, PROT_READ | PROT_EXEC) != 0) { - munmap(stream.ibuf, BPF_JIT_MAXSIZE); + munmap(stream.ibuf, stream.cur_ip); stream.ibuf = NULL; } #endif + *size = stream.cur_ip; break; } #ifdef _KERNEL - stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT); + stream.ibuf = (char *)contigmalloc(stream.cur_ip, M_BPFJIT, + M_NOWAIT, 0, ~0ULL, 16, 0); if (stream.ibuf == NULL) break; #else - if (stream.cur_ip > BPF_JIT_MAXSIZE) { - stream.ibuf = NULL; - break; - } - stream.ibuf = (char *)mmap(NULL, BPF_JIT_MAXSIZE, + stream.ibuf = (char *)mmap(NULL, stream.cur_ip, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); if (stream.ibuf == MAP_FAILED) { stream.ibuf = NULL; Modified: head/sys/i386/i386/bpf_jit_machdep.c == --- head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 22:53:05 2009 (r199497) +++ head/sys/i386/i386/bpf_jit_machdep.cWed Nov 18 23:40:19 2009 (r199498) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include -bpf_filter_funcbpf_jit_compile(struct bpf_insn *, u_int, int *); +bpf_filter_funcbpf_jit_compile(struct bpf_insn *, u_int, size_t *, int *); /* * emit routine to update the jump table @@ -97,7 +97,7 @@ emit_code(bpf_bin_stream *stream, u_int * Function that does the real stuff */ bpf_filter_func -bpf_jit_compile(struct bpf_insn *prog, u_int nins, int *mem) +bpf_jit_compile(struct bpf_insn *prog, u_int nins, size_t *size, int *mem) { bpf_bin_stream stream; struct bpf_insn *ins; @@ -504,23 +504,21 @@ bpf_jit_compile(struct bpf_insn *prog, u #ifndef _KERNEL if (mprotect(stream.ibuf, stream.cur_ip, PROT_READ | PROT_EXEC) != 0) { - munmap(stream.ibuf, BPF_JIT_MAXSIZE); + munmap(stream.ibuf, stream.cur_ip); stream.ibuf = NULL; } #endif + *size = stream.cur_ip; break; } #ifdef _KERNEL - stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT); + stream.ibuf = (char *)contigmalloc(stream.cur_ip, M_BPFJIT, + M_NOWAIT, 0, ~0ULL, 16, 0); if (stream.ibuf == NULL) break; #else - if (stream.cur_ip > BPF_JIT_MAXSIZE) { - stream.ibuf = NULL; - break; - } - stream.ibuf = (char *)mmap(NULL, BPF_JIT_MAXSIZE, + stream.ibuf = (char *)mmap(NULL, stream.cur_ip, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); if (stream.ibuf == MAP_FAILED) { stream.ibuf = NULL; Modified: head/sys/net/bpf_jitter.c == --- head/sy
Re: svn commit: r199492 - in head/sys: amd64/amd64 i386/i386 net
On Wednesday 18 November 2009 05:39 pm, Robert Watson wrote: > I'm not sure if you have noticed, but there are a bunch of embedded > target ports of the BPF JIT in the PR collection -- ARM, MIPS, etc. > Any chance we might see those integrated into 9.x at some point? > The less cache-rich CPUs are especially helped by JIT parts. Yes, I am aware of such patches. However, I am not qualified to review/test them. :-( If someone has time/hardware/knowledge to verify their correctness, I'll be happy to commit them. Thanks, Jung-uk Kim ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199499 - in head/tools/regression/bpf/bpf_filter: . tests
Author: jkim Date: Thu Nov 19 00:00:31 2009 New Revision: 199499 URL: http://svn.freebsd.org/changeset/base/199499 Log: Add a test case for very long BPF program. Added: head/tools/regression/bpf/bpf_filter/tests/test0084.h (contents, props changed) Modified: head/tools/regression/bpf/bpf_filter/Makefile Modified: head/tools/regression/bpf/bpf_filter/Makefile == --- head/tools/regression/bpf/bpf_filter/Makefile Wed Nov 18 23:40:19 2009(r199498) +++ head/tools/regression/bpf/bpf_filter/Makefile Thu Nov 19 00:00:31 2009(r199499) @@ -20,7 +20,7 @@ TEST_CASES?= test0001 test0002 test0003 test0069 test0070 test0071 test0072 \ test0073 test0074 test0075 test0076 \ test0077 test0078 test0079 test0080 \ - test0081 test0082 test0083 + test0081 test0082 test0083 test0084 SYSDIR?= ${.CURDIR}/../../../../sys Added: head/tools/regression/bpf/bpf_filter/tests/test0084.h == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bpf/bpf_filter/tests/test0084.h Thu Nov 19 00:00:31 2009(r199499) @@ -0,0 +1,1030 @@ +/*- + * Test 0084: Check very long BPF program. + * + * $FreeBSD$ + */ + +/* BPF program */ +struct bpf_insn pc[] = { + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 1), + BPF_STMT(BPF_LD+BPF_W+BPF
Re: svn commit: r199469 - head/lib/librt
M. Warner Losh wrote: In message: <200911180509.nai593kq058...@svn.freebsd.org> David Xu writes: : Author: davidxu : Date: Wed Nov 18 05:09:03 2009 : New Revision: 199469 : URL: http://svn.freebsd.org/changeset/base/199469 : : Log: : link libpthread because the librt really needs it to fully function. If you are now requiring libpthread, why are you using the _pthread_* functions everywhere else? Warner now the pthread_cleanup_push is a macro, but originally it is a function. I don't know if we need an underline version of pthread_cleanup_push, it is trivial if one wants to add it. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r199502 - head/sys/ia64/ia64
Author: marcel Date: Thu Nov 19 01:27:22 2009 New Revision: 199502 URL: http://svn.freebsd.org/changeset/base/199502 Log: opt_* headers are included using the quoted form. Modified: head/sys/ia64/ia64/db_machdep.c head/sys/ia64/ia64/exception.S Modified: head/sys/ia64/ia64/db_machdep.c == --- head/sys/ia64/ia64/db_machdep.c Thu Nov 19 01:20:16 2009 (r199501) +++ head/sys/ia64/ia64/db_machdep.c Thu Nov 19 01:27:22 2009 (r199502) @@ -29,7 +29,7 @@ #include __FBSDID("$FreeBSD$"); -#include +#include "opt_xtrace.h" #include #include Modified: head/sys/ia64/ia64/exception.S == --- head/sys/ia64/ia64/exception.S Thu Nov 19 01:20:16 2009 (r199501) +++ head/sys/ia64/ia64/exception.S Thu Nov 19 01:27:22 2009 (r199502) @@ -28,7 +28,7 @@ #include __FBSDID("$FreeBSD$"); -#include +#include "opt_xtrace.h" #include #include ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r199469 - head/lib/librt
In message: <4b049b32.6090...@freebsd.org> David Xu writes: : M. Warner Losh wrote: : > In message: <200911180509.nai593kq058...@svn.freebsd.org> : > David Xu writes: : > : Author: davidxu : > : Date: Wed Nov 18 05:09:03 2009 : > : New Revision: 199469 : > : URL: http://svn.freebsd.org/changeset/base/199469 : > : : > : Log: : > : link libpthread because the librt really needs it to fully function. : > : > If you are now requiring libpthread, why are you using the _pthread_* : > functions everywhere else? : > : > Warner : : now the pthread_cleanup_push is a macro, but originally it is a : function. : : I don't know if we need an underline version of pthread_cleanup_push, : it is trivial if one wants to add it. That makes sense. won't we need some compat shim for old binaries? Warner ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"