From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 01:38:37 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7455A106566C; Sun, 15 Mar 2009 01:38:37 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6340D8FC12; Sun, 15 Mar 2009 01:38:37 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F1cbTe013508; Sun, 15 Mar 2009 01:38:37 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F1cbHF013507; Sun, 15 Mar 2009 01:38:37 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200903150138.n2F1cbHF013507@svn.freebsd.org> From: Sam Leffler Date: Sun, 15 Mar 2009 01:38:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189841 - head/contrib/wpa/hostapd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 01:38:37 -0000 Author: sam Date: Sun Mar 15 01:38:37 2009 New Revision: 189841 URL: http://svn.freebsd.org/changeset/base/189841 Log: remove gcc-ism; tsinfo isn't used anyway Modified: head/contrib/wpa/hostapd/wme.h Modified: head/contrib/wpa/hostapd/wme.h ============================================================================== --- head/contrib/wpa/hostapd/wme.h Sat Mar 14 23:59:53 2009 (r189840) +++ head/contrib/wpa/hostapd/wme.h Sun Mar 15 01:38:37 2009 (r189841) @@ -27,7 +27,7 @@ * defined(__DragonFly__) */ -extern inline u16 tsinfo(int tag1d, int contention_based, int direction) +static inline u16 tsinfo(int tag1d, int contention_based, int direction) { return (tag1d << 11) | (contention_based << 7) | (direction << 5) | (tag1d << 1); From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 01:39:16 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE5BA106566C; Sun, 15 Mar 2009 01:39:16 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B36C98FC16; Sun, 15 Mar 2009 01:39:16 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F1dGcm013557; Sun, 15 Mar 2009 01:39:16 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F1dGdw013556; Sun, 15 Mar 2009 01:39:16 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200903150139.n2F1dGdw013556@svn.freebsd.org> From: Sam Leffler Date: Sun, 15 Mar 2009 01:39:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189842 - head/usr.sbin/wpa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 01:39:17 -0000 Author: sam Date: Sun Mar 15 01:39:16 2009 New Revision: 189842 URL: http://svn.freebsd.org/changeset/base/189842 Log: no need to for gnu89 any more Modified: head/usr.sbin/wpa/Makefile.inc Modified: head/usr.sbin/wpa/Makefile.inc ============================================================================== --- head/usr.sbin/wpa/Makefile.inc Sun Mar 15 01:38:37 2009 (r189841) +++ head/usr.sbin/wpa/Makefile.inc Sun Mar 15 01:39:16 2009 (r189842) @@ -24,6 +24,4 @@ CFLAGS+=-I${WPA_DISTDIR}/src/utils CFLAGS+= -DCONFIG_CTRL_IFACE CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX -CSTD= gnu89 # XXX - .include From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 02:31:35 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11DD4106564A; Sun, 15 Mar 2009 02:31:35 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D9EF08FC12; Sun, 15 Mar 2009 02:31:34 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F2VY98014528; Sun, 15 Mar 2009 02:31:34 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F2VYTg014527; Sun, 15 Mar 2009 02:31:34 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200903150231.n2F2VYTg014527@svn.freebsd.org> From: Warner Losh Date: Sun, 15 Mar 2009 02:31:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189843 - head/sys/dev/fe X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 02:31:35 -0000 Author: imp Date: Sun Mar 15 02:31:34 2009 New Revision: 189843 URL: http://svn.freebsd.org/changeset/base/189843 Log: Generalize the workaround for the Hitachi HT-4840-11. The Contec C-NET(PC) has a cfe at location 1 that has both an odd irq mask (it matches pc98 machines, so maybe it was a flag for pc98 operation) as well as a memory map. Since this driver doesn't know how to cope, we start with cfe2, which is purely an I/O space mapped and that seems to make it work. I say 'seems' here, because the card I have doesn't seem to have the right dongle for full testing... Modified: head/sys/dev/fe/if_fe_pccard.c Modified: head/sys/dev/fe/if_fe_pccard.c ============================================================================== --- head/sys/dev/fe/if_fe_pccard.c Sun Mar 15 01:39:16 2009 (r189842) +++ head/sys/dev/fe/if_fe_pccard.c Sun Mar 15 02:31:34 2009 (r189843) @@ -62,9 +62,10 @@ static int fe_pccard_detach(device_t); static const struct fe_pccard_product { struct pccard_product mpp_product; int mpp_flags; + int mpp_cfe; #define MPP_MBH10302 1 #define MPP_ANYFUNC 2 -#define MPP_SKIP_TO_CFE_10 4 +#define MPP_SKIP_TO_CFE 4 } fe_pccard_products[] = { /* These need to be first */ { PCMCIA_CARD(FUJITSU2, FMV_J181), MPP_MBH10302 }, @@ -77,11 +78,11 @@ static const struct fe_pccard_product { #if 0 /* XXX 86960-based? */ { PCMCIA_CARD(TDK, LAK_DFL9610), 0 }, #endif - { PCMCIA_CARD(CONTEC, CNETPC), 0 }, + { PCMCIA_CARD(CONTEC, CNETPC), MPP_SKIP_TO_CFE, 2 }, { PCMCIA_CARD(FUJITSU, LA501), 0 }, { PCMCIA_CARD(FUJITSU, LA10S), 0 }, { PCMCIA_CARD(FUJITSU, NE200T), MPP_MBH10302 },/* Sold by Eagle */ - { PCMCIA_CARD(HITACHI, HT_4840), MPP_MBH10302 | MPP_SKIP_TO_CFE_10}, + { PCMCIA_CARD(HITACHI, HT_4840), MPP_MBH10302 | MPP_SKIP_TO_CFE, 10 }, { PCMCIA_CARD(RATOC, REX_R280), 0 }, { PCMCIA_CARD(XIRCOM, CE), MPP_ANYFUNC }, { { NULL } } @@ -108,13 +109,13 @@ fe_pccard_probe(device_t dev) return (error); if (fcn != PCCARD_FUNCTION_NETWORK) return (ENXIO); - if (pp->mpp_flags & MPP_SKIP_TO_CFE_10) { - for (i = 10; i < 27; i++) { + if (pp->mpp_flags & MPP_SKIP_TO_CFE) { + for (i = pp->mpp_cfe; i < 32; i++) { if (pccard_select_cfe(dev, i) == 0) goto good; } device_printf(dev, - "Hitachi HT-4840-11 workaround failed\n"); + "Failed to map CFE %d or higher\n", pp->mpp_cfe); return ENXIO; } good:; From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 06:40:58 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47F67106566C; Sun, 15 Mar 2009 06:40:58 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 36C2C8FC1D; Sun, 15 Mar 2009 06:40:58 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F6ew3q019350; Sun, 15 Mar 2009 06:40:58 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F6ewKh019349; Sun, 15 Mar 2009 06:40:58 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200903150640.n2F6ewKh019349@svn.freebsd.org> From: Warner Losh Date: Sun, 15 Mar 2009 06:40:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189844 - head/sys/dev/pci X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 06:40:58 -0000 Author: imp Date: Sun Mar 15 06:40:57 2009 New Revision: 189844 URL: http://svn.freebsd.org/changeset/base/189844 Log: Don't adjust ranges at all for subtractive bridges. The simple-minded stuff we're doing is too simple-minded, so back it out for now. Modified: head/sys/dev/pci/pci_pci.c Modified: head/sys/dev/pci/pci_pci.c ============================================================================== --- head/sys/dev/pci/pci_pci.c Sun Mar 15 02:31:34 2009 (r189843) +++ head/sys/dev/pci/pci_pci.c Sun Mar 15 06:40:57 2009 (r189844) @@ -413,12 +413,14 @@ pcib_alloc_resource(device_t dev, device } } else { ok = 1; +#if 0 /* * If we overlap with the subtractive range, then * pick the upper range to use. */ if (start < sc->iolimit && end > sc->iobase) start = sc->iolimit + 1; +#endif } if (end < start) { device_printf(dev, "ioport: end (%lx) < start (%lx)\n", @@ -478,6 +480,7 @@ pcib_alloc_resource(device_t dev, device } } else if (!ok) { ok = 1; /* subtractive bridge: always ok */ +#if 0 if (pcib_is_nonprefetch_open(sc)) { if (start < sc->memlimit && end > sc->membase) start = sc->memlimit + 1; @@ -486,6 +489,7 @@ pcib_alloc_resource(device_t dev, device if (start < sc->pmemlimit && end > sc->pmembase) start = sc->pmemlimit + 1; } +#endif } if (end < start) { device_printf(dev, "memory: end (%lx) < start (%lx)\n", From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 06:41:47 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5E621065673; Sun, 15 Mar 2009 06:41:47 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D37188FC17; Sun, 15 Mar 2009 06:41:47 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F6fl6m019402; Sun, 15 Mar 2009 06:41:47 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F6fluw019399; Sun, 15 Mar 2009 06:41:47 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <200903150641.n2F6fluw019399@svn.freebsd.org> From: Jeff Roberson Date: Sun, 15 Mar 2009 06:41:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189845 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 06:41:48 -0000 Author: jeff Date: Sun Mar 15 06:41:47 2009 New Revision: 189845 URL: http://svn.freebsd.org/changeset/base/189845 Log: - Implement a new mechanism for resetting lock profiling. We now guarantee that all cpus have acknowledged the cleared enable int by scheduling the resetting thread on each cpu in succession. Since all lock profiling happens within a critical section this guarantees that all cpus have left lock profiling before we clear the datastructures. - Assert that the per-thread queue of locks lock profiling is aware of is clear on thread exit. There were several cases where this was not true that slows lock profiling and leaks information. - Remove all objects from all lists before clearing any per-cpu information in reset. Lock profiling objects can migrate between per-cpu caches and previously these migrated objects could be zero'd before they'd been removed Discussed with: attilio Sponsored by: Nokia Modified: head/sys/kern/kern_thread.c head/sys/kern/subr_lock.c head/sys/sys/lock_profile.h Modified: head/sys/kern/kern_thread.c ============================================================================== --- head/sys/kern/kern_thread.c Sun Mar 15 06:40:57 2009 (r189844) +++ head/sys/kern/kern_thread.c Sun Mar 15 06:41:47 2009 (r189845) @@ -306,6 +306,8 @@ thread_alloc(void) void thread_free(struct thread *td) { + + lock_profile_thread_exit(td); if (td->td_cpuset) cpuset_rel(td->td_cpuset); td->td_cpuset = NULL; @@ -439,6 +441,7 @@ thread_wait(struct proc *p) /* Wait for any remaining threads to exit cpu_throw(). */ while (p->p_exitthreads) sched_relinquish(curthread); + lock_profile_thread_exit(td); cpuset_rel(td->td_cpuset); td->td_cpuset = NULL; cpu_thread_clean(td); Modified: head/sys/kern/subr_lock.c ============================================================================== --- head/sys/kern/subr_lock.c Sun Mar 15 06:40:57 2009 (r189844) +++ head/sys/kern/subr_lock.c Sun Mar 15 06:41:47 2009 (r189845) @@ -46,9 +46,11 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include +#include #include #include @@ -186,7 +188,8 @@ struct lock_prof_cpu { struct lock_prof_cpu *lp_cpu[MAXCPU]; -int lock_prof_enable = 0; +volatile int lock_prof_enable = 0; +static volatile int lock_prof_resetting; /* SWAG: sbuf size = avg stat. line size * number of locks */ #define LPROF_SBUF_SIZE 256 * 400 @@ -239,25 +242,77 @@ lock_prof_init(void *arg) } SYSINIT(lockprof, SI_SUB_SMP, SI_ORDER_ANY, lock_prof_init, NULL); +/* + * To be certain that lock profiling has idled on all cpus before we + * reset, we schedule the resetting thread on all active cpus. Since + * all operations happen within critical sections we can be sure that + * it is safe to zero the profiling structures. + */ +static void +lock_prof_idle(void) +{ + struct thread *td; + int cpu; + + td = curthread; + thread_lock(td); + for (cpu = 0; cpu <= mp_maxid; cpu++) { + if (CPU_ABSENT(cpu)) + continue; + sched_bind(td, cpu); + } + sched_unbind(td); + thread_unlock(td); +} + +static void +lock_prof_reset_wait(void) +{ + + /* + * Spin relinquishing our cpu so that lock_prof_idle may + * run on it. + */ + while (lock_prof_resetting) + sched_relinquish(curthread); +} + static void lock_prof_reset(void) { struct lock_prof_cpu *lpc; int enabled, i, cpu; + /* + * We not only race with acquiring and releasing locks but also + * thread exit. To be certain that threads exit without valid head + * pointers they must see resetting set before enabled is cleared. + * Otherwise a lock may not be removed from a per-thread list due + * to disabled being set but not wait for reset() to remove it below. + */ + atomic_store_rel_int(&lock_prof_resetting, 1); enabled = lock_prof_enable; lock_prof_enable = 0; - pause("lpreset", hz / 10); + lock_prof_idle(); + /* + * Some objects may have migrated between CPUs. Clear all links + * before we zero the structures. Some items may still be linked + * into per-thread lists as well. + */ for (cpu = 0; cpu <= mp_maxid; cpu++) { lpc = lp_cpu[cpu]; for (i = 0; i < LPROF_CACHE_SIZE; i++) { LIST_REMOVE(&lpc->lpc_types[0].lpt_objs[i], lpo_link); LIST_REMOVE(&lpc->lpc_types[1].lpt_objs[i], lpo_link); } + } + for (cpu = 0; cpu <= mp_maxid; cpu++) { + lpc = lp_cpu[cpu]; bzero(lpc, sizeof(*lpc)); lock_prof_init_type(&lpc->lpc_types[0]); lock_prof_init_type(&lpc->lpc_types[1]); } + atomic_store_rel_int(&lock_prof_resetting, 0); lock_prof_enable = enabled; } @@ -351,7 +406,7 @@ retry_sbufops: "max", "wait_max", "total", "wait_total", "count", "avg", "wait_avg", "cnt_hold", "cnt_lock", "name"); enabled = lock_prof_enable; lock_prof_enable = 0; - pause("lpreset", hz / 10); + lock_prof_idle(); t = ticks; for (cpu = 0; cpu <= mp_maxid; cpu++) { if (lp_cpu[cpu] == NULL) @@ -461,16 +516,13 @@ lock_profile_object_lookup(struct lock_o if (l->lpo_obj == lo && l->lpo_file == file && l->lpo_line == line) return (l); - critical_enter(); type = &lp_cpu[PCPU_GET(cpuid)]->lpc_types[spin]; l = LIST_FIRST(&type->lpt_lpoalloc); if (l == NULL) { lock_prof_rejected++; - critical_exit(); return (NULL); } LIST_REMOVE(l, lpo_link); - critical_exit(); l->lpo_obj = lo; l->lpo_file = file; l->lpo_line = line; @@ -497,18 +549,49 @@ lock_profile_obtain_lock_success(struct spin = (LOCK_CLASS(lo)->lc_flags & LC_SPINLOCK) ? 1 : 0; if (spin && lock_prof_skipspin == 1) return; + critical_enter(); + /* Recheck enabled now that we're in a critical section. */ + if (lock_prof_enable == 0) + goto out; l = lock_profile_object_lookup(lo, spin, file, line); if (l == NULL) - return; + goto out; l->lpo_cnt++; if (++l->lpo_ref > 1) - return; + goto out; l->lpo_contest_locking = contested; l->lpo_acqtime = nanoseconds(); if (waittime && (l->lpo_acqtime > waittime)) l->lpo_waittime = l->lpo_acqtime - waittime; else l->lpo_waittime = 0; +out: + critical_exit(); +} + +void +lock_profile_thread_exit(struct thread *td) +{ +#ifdef INVARIANTS + struct lock_profile_object *l; + + MPASS(curthread->td_critnest == 0); +#endif + /* + * If lock profiling was disabled we have to wait for reset to + * clear our pointers before we can exit safely. + */ + lock_prof_reset_wait(); +#ifdef INVARIANTS + LIST_FOREACH(l, &td->td_lprof[0], lpo_link) + printf("thread still holds lock acquired at %s:%d\n", + l->lpo_file, l->lpo_line); + LIST_FOREACH(l, &td->td_lprof[1], lpo_link) + printf("thread still holds lock acquired at %s:%d\n", + l->lpo_file, l->lpo_line); +#endif + MPASS(LIST_FIRST(&td->td_lprof[0]) == NULL); + MPASS(LIST_FIRST(&td->td_lprof[1]) == NULL); } void @@ -521,11 +604,20 @@ lock_profile_release_lock(struct lock_ob struct lpohead *head; int spin; - if (!lock_prof_enable || (lo->lo_flags & LO_NOPROFILE)) + if (lo->lo_flags & LO_NOPROFILE) return; spin = (LOCK_CLASS(lo)->lc_flags & LC_SPINLOCK) ? 1 : 0; head = &curthread->td_lprof[spin]; + if (LIST_FIRST(head) == NULL) + return; critical_enter(); + /* Recheck enabled now that we're in a critical section. */ + if (lock_prof_enable == 0 && lock_prof_resetting == 1) + goto out; + /* + * If lock profiling is not enabled we still want to remove the + * lpo from our queue. + */ LIST_FOREACH(l, head, lpo_link) if (l->lpo_obj == lo) break; Modified: head/sys/sys/lock_profile.h ============================================================================== --- head/sys/sys/lock_profile.h Sun Mar 15 06:40:57 2009 (r189844) +++ head/sys/sys/lock_profile.h Sun Mar 15 06:41:47 2009 (r189845) @@ -43,11 +43,13 @@ LIST_HEAD(lpohead, lock_profile_object); u_int64_t nanoseconds(void); #endif -extern int lock_prof_enable; +extern volatile int lock_prof_enable; void lock_profile_obtain_lock_success(struct lock_object *lo, int contested, uint64_t waittime, const char *file, int line); void lock_profile_release_lock(struct lock_object *lo); +void lock_profile_thread_exit(struct thread *td); + static inline void lock_profile_obtain_lock_failed(struct lock_object *lo, int *contested, @@ -61,21 +63,10 @@ lock_profile_obtain_lock_failed(struct l #else /* !LOCK_PROFILING */ -static inline void -lock_profile_release_lock(struct lock_object *lo) -{ -} - -static inline void -lock_profile_obtain_lock_failed(struct lock_object *lo, int *contested, uint64_t *waittime) -{ -} - -static inline void -lock_profile_obtain_lock_success(struct lock_object *lo, int contested, uint64_t waittime, - const char *file, int line) -{ -} +#define lock_profile_release_lock(lo) +#define lock_profile_obtain_lock_failed(lo, contested, waittime) +#define lock_profile_obtain_lock_success(lo, contested, waittime, file, line) +#define lock_profile_thread_exit(td) #endif /* !LOCK_PROFILING */ From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 08:03:55 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68DB6106564A; Sun, 15 Mar 2009 08:03:55 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 573938FC1C; Sun, 15 Mar 2009 08:03:55 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F83tlv020937; Sun, 15 Mar 2009 08:03:55 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F83tVk020933; Sun, 15 Mar 2009 08:03:55 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <200903150803.n2F83tVk020933@svn.freebsd.org> From: Jeff Roberson Date: Sun, 15 Mar 2009 08:03:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189846 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 08:03:56 -0000 Author: jeff Date: Sun Mar 15 08:03:54 2009 New Revision: 189846 URL: http://svn.freebsd.org/changeset/base/189846 Log: - Wrap lock profiling state variables in #ifdef LOCK_PROFILING blocks. Modified: head/sys/kern/kern_lock.c head/sys/kern/kern_mutex.c head/sys/kern/kern_rwlock.c head/sys/kern/kern_sx.c Modified: head/sys/kern/kern_lock.c ============================================================================== --- head/sys/kern/kern_lock.c Sun Mar 15 06:41:47 2009 (r189845) +++ head/sys/kern/kern_lock.c Sun Mar 15 08:03:54 2009 (r189846) @@ -333,16 +333,17 @@ __lockmgr_args(struct lock *lk, u_int fl const char *wmesg, int pri, int timo, const char *file, int line) { GIANT_DECLARE; - uint64_t waittime; struct lock_class *class; const char *iwmesg; uintptr_t tid, v, x; u_int op; - int contested, error, ipri, itimo, queue, wakeup_swapper; + int error, ipri, itimo, queue, wakeup_swapper; +#ifdef LOCK_PROFILING + uint64_t waittime = 0; + int contested = 0; +#endif - contested = 0; error = 0; - waittime = 0; tid = (uintptr_t)curthread; op = (flags & LK_TYPE_MASK); iwmesg = (wmesg == LK_WMESG_DEFAULT) ? lk->lock_object.lo_name : wmesg; Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sun Mar 15 06:41:47 2009 (r189845) +++ head/sys/kern/kern_mutex.c Sun Mar 15 08:03:54 2009 (r189846) @@ -254,8 +254,11 @@ _mtx_unlock_spin_flags(struct mtx *m, in int _mtx_trylock(struct mtx *m, int opts, const char *file, int line) { - int rval, contested = 0; +#ifdef LOCK_PROFILING uint64_t waittime = 0; + int contested = 0; +#endif + int rval; MPASS(curthread != NULL); KASSERT(m->mtx_lock != MTX_DESTROYED, @@ -296,15 +299,17 @@ _mtx_lock_sleep(struct mtx *m, uintptr_t int line) { struct turnstile *ts; + uintptr_t v; #ifdef ADAPTIVE_MUTEXES volatile struct thread *owner; #endif #ifdef KTR int cont_logged = 0; #endif +#ifdef LOCK_PROFILING int contested = 0; uint64_t waittime = 0; - uintptr_t v; +#endif if (mtx_owned(m)) { KASSERT((m->lock_object.lo_flags & LO_RECURSABLE) != 0, @@ -448,8 +453,11 @@ void _mtx_lock_spin(struct mtx *m, uintptr_t tid, int opts, const char *file, int line) { - int i = 0, contested = 0; + int i = 0; +#ifdef LOCK_PROFILING + int contested = 0; uint64_t waittime = 0; +#endif if (LOCK_LOG_TEST(&m->lock_object, opts)) CTR1(KTR_LOCK, "_mtx_lock_spin: %p spinning", m); @@ -486,11 +494,13 @@ _thread_lock_flags(struct thread *td, in { struct mtx *m; uintptr_t tid; - int i, contested; - uint64_t waittime; + int i; +#ifdef LOCK_PROFILING + int contested = 0; + uint64_t waittime = 0; +#endif - contested = i = 0; - waittime = 0; + i = 0; tid = (uintptr_t)curthread; for (;;) { retry: Modified: head/sys/kern/kern_rwlock.c ============================================================================== --- head/sys/kern/kern_rwlock.c Sun Mar 15 06:41:47 2009 (r189845) +++ head/sys/kern/kern_rwlock.c Sun Mar 15 08:03:54 2009 (r189846) @@ -282,8 +282,10 @@ _rw_rlock(struct rwlock *rw, const char int spintries = 0; int i; #endif +#ifdef LOCK_PROFILING uint64_t waittime = 0; int contested = 0; +#endif uintptr_t v; KASSERT(rw->rw_lock != RW_DESTROYED, @@ -584,9 +586,11 @@ _rw_wlock_hard(struct rwlock *rw, uintpt int spintries = 0; int i; #endif - uint64_t waittime = 0; uintptr_t v, x; +#ifdef LOCK_PROFILING + uint64_t waittime = 0; int contested = 0; +#endif if (rw_wlocked(rw)) { KASSERT(rw->lock_object.lo_flags & RW_RECURSE, Modified: head/sys/kern/kern_sx.c ============================================================================== --- head/sys/kern/kern_sx.c Sun Mar 15 06:41:47 2009 (r189845) +++ head/sys/kern/kern_sx.c Sun Mar 15 08:03:54 2009 (r189846) @@ -431,9 +431,12 @@ _sx_xlock_hard(struct sx *sx, uintptr_t #ifdef ADAPTIVE_SX volatile struct thread *owner; #endif - uint64_t waittime = 0; uintptr_t x; - int contested = 0, error = 0; +#ifdef LOCK_PROFILING + uint64_t waittime = 0; + int contested = 0; +#endif + int error = 0; /* If we already hold an exclusive lock, then recurse. */ if (sx_xlocked(sx)) { @@ -652,8 +655,10 @@ _sx_slock_hard(struct sx *sx, int opts, #ifdef ADAPTIVE_SX volatile struct thread *owner; #endif +#ifdef LOCK_PROFILING uint64_t waittime = 0; int contested = 0; +#endif uintptr_t x; int error = 0; From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 08:08:56 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4397D1065673; Sun, 15 Mar 2009 08:08:56 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190]) by mx1.freebsd.org (Postfix) with ESMTP id E95338FC1C; Sun, 15 Mar 2009 08:08:55 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id 0ABE59CB07F; Sun, 15 Mar 2009 09:08:38 +0100 (CET) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PTAwZ3Ag+vCX; Sun, 15 Mar 2009 09:08:35 +0100 (CET) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id A7AC59CB124; Sun, 15 Mar 2009 09:08:35 +0100 (CET) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id n2F88ZHK039816; Sun, 15 Mar 2009 09:08:35 +0100 (CET) (envelope-from rdivacky) Date: Sun, 15 Mar 2009 09:08:35 +0100 From: Roman Divacky To: Martin Voros Message-ID: <20090315080835.GA39715@freebsd.org> References: <200903141755.n2EHtGj1003232@svn.freebsd.org> <942531.27013.qm@web55506.mail.re4.yahoo.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="OgqxwSJOaUobr8KG" Content-Disposition: inline In-Reply-To: <942531.27013.qm@web55506.mail.re4.yahoo.com> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189801 - in head: cddl cddl/lib/libzpool cddl/usr.bin/ztest cddl/usr.sbin/zdb share/mk tools/regression/include/tgmath X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 08:08:56 -0000 --OgqxwSJOaUobr8KG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Mar 14, 2009 at 02:34:31PM -0700, Martin Voros wrote: >=20 > ----- Original Message ---- >=20 > > From: Roman Divacky > > To: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src-head@f= reebsd.org > > Sent: Sunday, March 15, 2009 4:55:16 AM > > Subject: svn commit: r189801 - in head: cddl cddl/lib/libzpool cddl/usr= .bin/ztest cddl/usr.sbin/zdb share/mk tools/regression/include/tgmath > >=20 > > Author: rdivacky > > Date: Sat Mar 14 17:55:16 2009 > > New Revision: 189801 > > URL: http://svn.freebsd.org/changeset/base/189801 > >=20 > > Log: > > Switch over to gnu99 compilation on default for userland. > > =20 > > Tested by: make universe > > Tested by: ports exp build (done by pav) > > Reviewed by: ru > > Reviewed by: silence on arch > > Approved by: ed (mentor) > >=20 > > Modified: > > head/cddl/Makefile.inc > > head/cddl/lib/libzpool/Makefile > > head/cddl/usr.bin/ztest/Makefile > > head/cddl/usr.sbin/zdb/Makefile > > head/share/mk/bsd.sys.mk > > head/tools/regression/include/tgmath/Makefile > >=20 > > Modified: head/cddl/Makefile.inc > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/cddl/Makefile.inc Sat Mar 14 17:54:58 2009 (r189800) > > +++ head/cddl/Makefile.inc Sat Mar 14 17:55:16 2009 (r189801) > > @@ -6,3 +6,5 @@ OPENSOLARIS_SYS_DISTDIR=3D ${.CURDIR}/../. > > IGNORE_PRAGMA=3D YES > >=20 > > CFLAGS+=3D -DNEED_SOLARIS_BOOLEAN > > + > > +CSTD?=3D gnu89 >=20 > Hi, >=20 > I assume that you should have gnu99 here. no... cddl/* stuff does not build with gnu99 so I use there gnu89 (it's contributed source with -Werror turned on so I wanted to play safe). the subsequent CSTD=3Dc99 are there because some parts needs c99 compilatio= n. --OgqxwSJOaUobr8KG Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (FreeBSD) iEYEARECAAYFAkm8t4IACgkQLVEj6D3CBEwdfQCfQMsozbvnhtrKMWY4/9O+KvHi 6/EAn0UfWilB5eGc1HxfWLTKUq+0p1rp =X1mI -----END PGP SIGNATURE----- --OgqxwSJOaUobr8KG-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 08:13:09 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0838E106564A; Sun, 15 Mar 2009 08:13:09 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190]) by mx1.freebsd.org (Postfix) with ESMTP id B2F1D8FC0C; Sun, 15 Mar 2009 08:13:08 +0000 (UTC) (envelope-from rdivacky@vlk.vlakno.cz) Received: from localhost (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id 91E2A9CB115; Sun, 15 Mar 2009 09:12:52 +0100 (CET) X-Virus-Scanned: amavisd-new at vlakno.cz Received: from vlakno.cz ([127.0.0.1]) by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B9uZej33Dfi6; Sun, 15 Mar 2009 09:12:40 +0100 (CET) Received: from vlk.vlakno.cz (localhost [127.0.0.1]) by vlakno.cz (Postfix) with ESMTP id C9AA29CB125; Sun, 15 Mar 2009 09:12:40 +0100 (CET) Received: (from rdivacky@localhost) by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id n2F8Ce1b040216; Sun, 15 Mar 2009 09:12:40 +0100 (CET) (envelope-from rdivacky) Date: Sun, 15 Mar 2009 09:12:40 +0100 From: Roman Divacky To: David Schultz Message-ID: <20090315081240.GB39715@freebsd.org> References: <200903141936.n2EJaDM5006130@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200903141936.n2EJaDM5006130@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r189824 - in head/contrib/gcc: . doc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 08:13:09 -0000 On Sat, Mar 14, 2009 at 07:36:13PM +0000, David Schultz wrote: > Author: das > Date: Sat Mar 14 19:36:13 2009 > New Revision: 189824 > URL: http://svn.freebsd.org/changeset/base/189824 > > Log: > Make gcc use C99 inline semantics in c99 and gnu99 mode. This was the > original intent, but the functionality wasn't implemented until after > gcc 4.2 was released. However, if you compiled a program that would > behave differently before and after this change, gcc 4.2 would have > warned you; hence, everything currently in the base system is > unaffected by this change. This patch also adds additional warnings > about certain inline function-related bogosity, e.g., using a > static non-const local variable in an inline function. > > These changes were merged from a snapshot of gcc mainline from March > 2007, prior to the GPLv3 switch. I then ran the regression test suite > from a more recent gcc snapshot and fixed the important bugs it found. > I also squelched the following warning unless -pedantic is specified: > > foo is static but used in inline function bar which is not static > > This is consistent with LLVM's behavior, but not consistent with gcc 4.3. thnx a lot for doing this! just a quick question - what is the fallback strategy for ports that will die on this? roman From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 08:25:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85BFA106564A for ; Sun, 15 Mar 2009 08:25:51 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.238]) by mx1.freebsd.org (Postfix) with ESMTP id 61DA98FC12 for ; Sun, 15 Mar 2009 08:25:51 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by rv-out-0506.google.com with SMTP id g9so1520482rvb.3 for ; Sun, 15 Mar 2009 01:25:51 -0700 (PDT) Received: by 10.141.87.13 with SMTP id p13mr1589575rvl.166.1237104312561; Sun, 15 Mar 2009 01:05:12 -0700 (PDT) Received: from ?10.0.1.198? (udp016664uds.hawaiiantel.net [72.235.41.117]) by mx.google.com with ESMTPS id k2sm12390362rvb.4.2009.03.15.01.05.09 (version=SSLv3 cipher=RC4-MD5); Sun, 15 Mar 2009 01:05:11 -0700 (PDT) Date: Sat, 14 Mar 2009 22:01:06 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Jeff Roberson In-Reply-To: <200903150803.n2F83tVk020933@svn.freebsd.org> Message-ID: References: <200903150803.n2F83tVk020933@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189846 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 08:25:51 -0000 Sorry for the temporary build breakage; I meant to commit these two patches together. Jeff On Sun, 15 Mar 2009, Jeff Roberson wrote: > Author: jeff > Date: Sun Mar 15 08:03:54 2009 > New Revision: 189846 > URL: http://svn.freebsd.org/changeset/base/189846 > > Log: > - Wrap lock profiling state variables in #ifdef LOCK_PROFILING blocks. > > Modified: > head/sys/kern/kern_lock.c > head/sys/kern/kern_mutex.c > head/sys/kern/kern_rwlock.c > head/sys/kern/kern_sx.c > > Modified: head/sys/kern/kern_lock.c > ============================================================================== > --- head/sys/kern/kern_lock.c Sun Mar 15 06:41:47 2009 (r189845) > +++ head/sys/kern/kern_lock.c Sun Mar 15 08:03:54 2009 (r189846) > @@ -333,16 +333,17 @@ __lockmgr_args(struct lock *lk, u_int fl > const char *wmesg, int pri, int timo, const char *file, int line) > { > GIANT_DECLARE; > - uint64_t waittime; > struct lock_class *class; > const char *iwmesg; > uintptr_t tid, v, x; > u_int op; > - int contested, error, ipri, itimo, queue, wakeup_swapper; > + int error, ipri, itimo, queue, wakeup_swapper; > +#ifdef LOCK_PROFILING > + uint64_t waittime = 0; > + int contested = 0; > +#endif > > - contested = 0; > error = 0; > - waittime = 0; > tid = (uintptr_t)curthread; > op = (flags & LK_TYPE_MASK); > iwmesg = (wmesg == LK_WMESG_DEFAULT) ? lk->lock_object.lo_name : wmesg; > > Modified: head/sys/kern/kern_mutex.c > ============================================================================== > --- head/sys/kern/kern_mutex.c Sun Mar 15 06:41:47 2009 (r189845) > +++ head/sys/kern/kern_mutex.c Sun Mar 15 08:03:54 2009 (r189846) > @@ -254,8 +254,11 @@ _mtx_unlock_spin_flags(struct mtx *m, in > int > _mtx_trylock(struct mtx *m, int opts, const char *file, int line) > { > - int rval, contested = 0; > +#ifdef LOCK_PROFILING > uint64_t waittime = 0; > + int contested = 0; > +#endif > + int rval; > > MPASS(curthread != NULL); > KASSERT(m->mtx_lock != MTX_DESTROYED, > @@ -296,15 +299,17 @@ _mtx_lock_sleep(struct mtx *m, uintptr_t > int line) > { > struct turnstile *ts; > + uintptr_t v; > #ifdef ADAPTIVE_MUTEXES > volatile struct thread *owner; > #endif > #ifdef KTR > int cont_logged = 0; > #endif > +#ifdef LOCK_PROFILING > int contested = 0; > uint64_t waittime = 0; > - uintptr_t v; > +#endif > > if (mtx_owned(m)) { > KASSERT((m->lock_object.lo_flags & LO_RECURSABLE) != 0, > @@ -448,8 +453,11 @@ void > _mtx_lock_spin(struct mtx *m, uintptr_t tid, int opts, const char *file, > int line) > { > - int i = 0, contested = 0; > + int i = 0; > +#ifdef LOCK_PROFILING > + int contested = 0; > uint64_t waittime = 0; > +#endif > > if (LOCK_LOG_TEST(&m->lock_object, opts)) > CTR1(KTR_LOCK, "_mtx_lock_spin: %p spinning", m); > @@ -486,11 +494,13 @@ _thread_lock_flags(struct thread *td, in > { > struct mtx *m; > uintptr_t tid; > - int i, contested; > - uint64_t waittime; > + int i; > +#ifdef LOCK_PROFILING > + int contested = 0; > + uint64_t waittime = 0; > +#endif > > - contested = i = 0; > - waittime = 0; > + i = 0; > tid = (uintptr_t)curthread; > for (;;) { > retry: > > Modified: head/sys/kern/kern_rwlock.c > ============================================================================== > --- head/sys/kern/kern_rwlock.c Sun Mar 15 06:41:47 2009 (r189845) > +++ head/sys/kern/kern_rwlock.c Sun Mar 15 08:03:54 2009 (r189846) > @@ -282,8 +282,10 @@ _rw_rlock(struct rwlock *rw, const char > int spintries = 0; > int i; > #endif > +#ifdef LOCK_PROFILING > uint64_t waittime = 0; > int contested = 0; > +#endif > uintptr_t v; > > KASSERT(rw->rw_lock != RW_DESTROYED, > @@ -584,9 +586,11 @@ _rw_wlock_hard(struct rwlock *rw, uintpt > int spintries = 0; > int i; > #endif > - uint64_t waittime = 0; > uintptr_t v, x; > +#ifdef LOCK_PROFILING > + uint64_t waittime = 0; > int contested = 0; > +#endif > > if (rw_wlocked(rw)) { > KASSERT(rw->lock_object.lo_flags & RW_RECURSE, > > Modified: head/sys/kern/kern_sx.c > ============================================================================== > --- head/sys/kern/kern_sx.c Sun Mar 15 06:41:47 2009 (r189845) > +++ head/sys/kern/kern_sx.c Sun Mar 15 08:03:54 2009 (r189846) > @@ -431,9 +431,12 @@ _sx_xlock_hard(struct sx *sx, uintptr_t > #ifdef ADAPTIVE_SX > volatile struct thread *owner; > #endif > - uint64_t waittime = 0; > uintptr_t x; > - int contested = 0, error = 0; > +#ifdef LOCK_PROFILING > + uint64_t waittime = 0; > + int contested = 0; > +#endif > + int error = 0; > > /* If we already hold an exclusive lock, then recurse. */ > if (sx_xlocked(sx)) { > @@ -652,8 +655,10 @@ _sx_slock_hard(struct sx *sx, int opts, > #ifdef ADAPTIVE_SX > volatile struct thread *owner; > #endif > +#ifdef LOCK_PROFILING > uint64_t waittime = 0; > int contested = 0; > +#endif > uintptr_t x; > int error = 0; > > From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 08:31:11 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F03A2106566C for ; Sun, 15 Mar 2009 08:31:11 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outC.internet-mail-service.net (outc.internet-mail-service.net [216.240.47.226]) by mx1.freebsd.org (Postfix) with ESMTP id D52748FC18 for ; Sun, 15 Mar 2009 08:31:11 +0000 (UTC) (envelope-from julian@elischer.org) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 91321C9DD; Sun, 15 Mar 2009 01:31:11 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 019D02D600E; Sun, 15 Mar 2009 01:31:10 -0700 (PDT) Message-ID: <49BCBCD3.1080102@elischer.org> Date: Sun, 15 Mar 2009 01:31:15 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209) MIME-Version: 1.0 To: Jeff Roberson References: <200903150803.n2F83tVk020933@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r189846 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 08:31:12 -0000 Jeff Roberson wrote: > Sorry for the temporary build breakage; I meant to commit these two > patches together. > > Jeff > > On Sun, 15 Mar 2009, Jeff Roberson wrote: > yeah had me going there for a while until I resynced from -current again. From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 09:12:45 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F4961065694 for ; Sun, 15 Mar 2009 09:12:45 +0000 (UTC) (envelope-from christoph.mallon@gmx.de) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by mx1.freebsd.org (Postfix) with SMTP id A04D48FC0A for ; Sun, 15 Mar 2009 09:12:43 +0000 (UTC) (envelope-from christoph.mallon@gmx.de) Received: (qmail invoked by alias); 15 Mar 2009 09:12:40 -0000 Received: from p54A3CD43.dip.t-dialin.net (EHLO tron.homeunix.org) [84.163.205.67] by mail.gmx.net (mp045) with SMTP; 15 Mar 2009 10:12:40 +0100 X-Authenticated: #1673122 X-Provags-ID: V01U2FsdGVkX1+wH+9wB2awW7oXJW5BbZ0O6u4Q4d31pKWkaRz+Eq t0B3MFZ+8VDctD Message-ID: <49BCC67D.70104@gmx.de> Date: Sun, 15 Mar 2009 10:12:29 +0100 From: Christoph Mallon User-Agent: Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: David Schultz References: <200903141855.n2EItpnp004551@svn.freebsd.org> In-Reply-To: <200903141855.n2EItpnp004551@svn.freebsd.org> Content-Type: multipart/mixed; boundary="------------000004040405050702070407" X-Y-GMX-Trusted: 0 X-FuHaFi: 0.5,0.52 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189804 - head/usr.bin/ncal X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 09:12:46 -0000 This is a multi-part message in MIME format. --------------000004040405050702070407 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi David! David Schultz schrieb: > Author: das > Date: Sat Mar 14 18:55:51 2009 > New Revision: 189804 > URL: http://svn.freebsd.org/changeset/base/189804 > > Log: > Multibyte character support for cal(1). > > PR: 131578 > > Modified: > head/usr.bin/ncal/ncal.1 > head/usr.bin/ncal/ncal.c > [...] > Modified: head/usr.bin/ncal/ncal.c > ============================================================================== > --- head/usr.bin/ncal/ncal.c Sat Mar 14 18:24:15 2009 (r189803) > +++ head/usr.bin/ncal/ncal.c Sat Mar 14 18:55:51 2009 (r189804) [...] > @@ -532,17 +537,17 @@ printyearb(int y, int jd_flag) > printf("%s\n\n", center(t, s, mw * mpl + mpl)); > > for (j = 0; j != 12; j += mpl) { > - printf("%-*s ", mw, center(s, year[j].name, mw)); > + printf("%-*ls ", mw, wcenter(ws, year[j].name, mw)); > if (mpl == 2) > - printf("%s\n", center(s, year[j + 1].name, mw)); > + printf("%ls\n", wcenter(ws, year[j + 1].name, mw)); > else > - printf("%-*s %s\n", mw, > - center(s, year[j + 1].name, mw), > - center(t, year[j + 2].name, mw)); > + printf("%-*ls %ls\n", mw, > + wcenter(ws, year[j + 1].name, mw), > + wcenter(wt, year[j + 2].name, mw)); > > if (mpl == 2) > - printf(" %s %s %s %s %s %s %s " > - " %s %s %s %s %s %s %.2s\n", > + wprintf(L" %ls %ls %ls %ls %ls %ls %ls " > + " %ls %ls %ls %ls %ls %ls %.2ls\n", > wds.names[6], wds.names[0], wds.names[1], > wds.names[2], wds.names[3], wds.names[4], > wds.names[5], [...] Your changes to ncal are invalid. You are mixing byte and wide output functions, which access the same stream (here printf() and wprintf()). This is not allowed according to C99 §17.9.2:5: "Byte input/output functions shall not be applied to a wide-oriented stream and wide character input/output functions shall not be applied to a byte-oriented stream. [...]" (The first access of a stream with a byte/wide oriented function makes it byte/wide oriented) With FreeBSD's current implementation of output functions this accidently works, but you should not rely on this. For example with glibc's implementation it fails. Attached is a patch, which changes all wprintf()s back to printf(). Christoph --------------000004040405050702070407 Content-Type: text/plain; name="ncal.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ncal.diff" SW5kZXg6IG5jYWwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBuY2FsLmMJKFJldmlzaW9uIDE4OTg0 NSkKKysrIG5jYWwuYwkoQXJiZWl0c2tvcGllKQpAQCAtNDQzLDE1ICs0NDMsMTUgQEAKIAlt dyA9IGpkX2ZsYWcgPyBNT05USF9XSURUSF9CX0ogOiBNT05USF9XSURUSF9COwogCiAJc3dw cmludGYocywgTUFYX1dJRFRILCBMIiVscyAlZCIsIG1vbnRoLm5hbWUsIHkpOwotCXdwcmlu dGYoTCIlbHNcbiIsIHdjZW50ZXIodCwgcywgbXcpKTsKKwlwcmludGYoIiVsc1xuIiwgd2Nl bnRlcih0LCBzLCBtdykpOwogCiAJaWYgKGpkX2ZsYWcpCi0JCXdwcmludGYoTCIgJWxzICVs cyAlbHMgJWxzICVscyAlbHMgJS4ybHNcbiIsCisJCXByaW50ZigiICVscyAlbHMgJWxzICVs cyAlbHMgJWxzICUuMmxzXG4iLAogCQkJd2RzLm5hbWVzWzZdLCB3ZHMubmFtZXNbMF0sCiAJ CQl3ZHMubmFtZXNbMV0sIHdkcy5uYW1lc1syXSwgd2RzLm5hbWVzWzNdLAogCQkJd2RzLm5h bWVzWzRdLCB3ZHMubmFtZXNbNV0pOwogCWVsc2UKLQkJd3ByaW50ZihMIiVscyVscyVscyVs cyVscyVscyUuMmxzXG4iLCB3ZHMubmFtZXNbNl0sCisJCXByaW50ZigiJWxzJWxzJWxzJWxz JWxzJWxzJS4ybHNcbiIsIHdkcy5uYW1lc1s2XSwKIAkJCXdkcy5uYW1lc1swXSwgd2RzLm5h bWVzWzFdLCB3ZHMubmFtZXNbMl0sIHdkcy5uYW1lc1szXSwKIAkJCXdkcy5uYW1lc1s0XSwg d2RzLm5hbWVzWzVdKTsKIApAQCAtNTQ2LDcgKzU0Niw3IEBACiAJCQkgICAgd2NlbnRlcih3 dCwgeWVhcltqICsgMl0ubmFtZSwgbXcpKTsKIAogCQlpZiAobXBsID09IDIpCi0JCQl3cHJp bnRmKEwiICVscyAlbHMgJWxzICVscyAlbHMgJWxzICVscyAiCisJCQlwcmludGYoIiAlbHMg JWxzICVscyAlbHMgJWxzICVscyAlbHMgIgogCQkJCSIgJWxzICVscyAlbHMgJWxzICVscyAl bHMgJS4ybHNcbiIsCiAJCQkJd2RzLm5hbWVzWzZdLCB3ZHMubmFtZXNbMF0sIHdkcy5uYW1l c1sxXSwKIAkJCQl3ZHMubmFtZXNbMl0sIHdkcy5uYW1lc1szXSwgd2RzLm5hbWVzWzRdLApA QCAtNTU1LDcgKzU1NSw3IEBACiAJCQkJd2RzLm5hbWVzWzJdLCB3ZHMubmFtZXNbM10sIHdk cy5uYW1lc1s0XSwKIAkJCQl3ZHMubmFtZXNbNV0pOwogCQllbHNlCi0JCQl3cHJpbnRmKEwi JWxzJWxzJWxzJWxzJWxzJWxzJWxzICIKKwkJCXByaW50ZigiJWxzJWxzJWxzJWxzJWxzJWxz JWxzICIKIAkJCQkiJWxzJWxzJWxzJWxzJWxzJWxzJWxzICIKIAkJCQkiJWxzJWxzJWxzJWxz JWxzJWxzJS4ybHNcbiIsCiAJCQkJd2RzLm5hbWVzWzZdLCB3ZHMubmFtZXNbMF0sIHdkcy5u YW1lc1sxXSwK --------------000004040405050702070407-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 09:58:32 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B7C41065670; Sun, 15 Mar 2009 09:58:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 883888FC16; Sun, 15 Mar 2009 09:58:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2F9wWqY023116; Sun, 15 Mar 2009 09:58:32 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2F9wVDt023106; Sun, 15 Mar 2009 09:58:31 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903150958.n2F9wVDt023106@svn.freebsd.org> From: Robert Watson Date: Sun, 15 Mar 2009 09:58:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189848 - in head: sys/netinet sys/netinet6 usr.bin/netstat usr.bin/systat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 09:58:32 -0000 Author: rwatson Date: Sun Mar 15 09:58:31 2009 New Revision: 189848 URL: http://svn.freebsd.org/changeset/base/189848 Log: Correct a number of evolved problems with inp_vflag and inp_flags: certain flags that should have been in inp_flags ended up in inp_vflag, meaning that they were inconsistently locked, and in one case, interpreted. Move the following flags from inp_vflag to gaps in the inp_flags space (and clean up the inp_flags constants to make gaps more obvious to future takers): INP_TIMEWAIT INP_SOCKREF INP_ONESBCAST INP_DROPPED Some aspects of this change have no effect on kernel ABI at all, as these are UDP/TCP/IP-internal uses; however, netstat and sockstat detect INP_TIMEWAIT when listing TCP sockets, so any MFC will need to take this into account. MFC after: 1 week (or after dependencies are MFC'd) Reviewed by: bz Modified: head/sys/netinet/in_pcb.c head/sys/netinet/in_pcb.h head/sys/netinet/tcp_input.c head/sys/netinet/tcp_subr.c head/sys/netinet/tcp_timer.c head/sys/netinet/tcp_timewait.c head/sys/netinet/tcp_usrreq.c head/sys/netinet6/in6_pcb.c head/usr.bin/netstat/inet.c head/usr.bin/systat/netstat.c Modified: head/sys/netinet/in_pcb.c ============================================================================== --- head/sys/netinet/in_pcb.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/in_pcb.c Sun Mar 15 09:58:31 2009 (r189848) @@ -384,7 +384,7 @@ in_pcbbind_setup(struct inpcb *inp, stru * This entire block sorely needs a rewrite. */ if (t && - ((t->inp_vflag & INP_TIMEWAIT) == 0) && + ((t->inp_flags & INP_TIMEWAIT) == 0) && (so->so_type != SOCK_STREAM || ntohl(t->inp_faddr.s_addr) == INADDR_ANY) && (ntohl(sin->sin_addr.s_addr) != INADDR_ANY || @@ -397,7 +397,7 @@ in_pcbbind_setup(struct inpcb *inp, stru } t = in_pcblookup_local(pcbinfo, sin->sin_addr, lport, wild, cred); - if (t && (t->inp_vflag & INP_TIMEWAIT)) { + if (t && (t->inp_flags & INP_TIMEWAIT)) { /* * XXXRW: If an incpb has had its timewait * state recycled, we treat the address as @@ -1031,7 +1031,7 @@ in_pcbdrop(struct inpcb *inp) INP_INFO_WLOCK_ASSERT(inp->inp_pcbinfo); INP_WLOCK_ASSERT(inp); - inp->inp_vflag |= INP_DROPPED; + inp->inp_flags |= INP_DROPPED; if (inp->inp_flags & INP_INHASHLIST) { struct inpcbport *phd = inp->inp_phd; @@ -1818,6 +1818,22 @@ db_print_inpflags(int inp_flags) db_printf("%sIN6P_AUTOFLOWLABEL", comma ? ", " : ""); comma = 1; } + if (inp_flags & INP_TIMEWAIT) { + db_printf("%sINP_TIMEWAIT", comma ? ", " : ""); + comma = 1; + } + if (inp_flags & INP_ONESBCAST) { + db_printf("%sINP_ONESBCAST", comma ? ", " : ""); + comma = 1; + } + if (inp_flags & INP_DROPPED) { + db_printf("%sINP_DROPPED", comma ? ", " : ""); + comma = 1; + } + if (inp_flags & INP_SOCKREF) { + db_printf("%sINP_SOCKREF", comma ? ", " : ""); + comma = 1; + } if (inp_flags & IN6P_RFC2292) { db_printf("%sIN6P_RFC2292", comma ? ", " : ""); comma = 1; @@ -1846,22 +1862,6 @@ db_print_inpvflag(u_char inp_vflag) db_printf("%sINP_IPV6PROTO", comma ? ", " : ""); comma = 1; } - if (inp_vflag & INP_TIMEWAIT) { - db_printf("%sINP_TIMEWAIT", comma ? ", " : ""); - comma = 1; - } - if (inp_vflag & INP_ONESBCAST) { - db_printf("%sINP_ONESBCAST", comma ? ", " : ""); - comma = 1; - } - if (inp_vflag & INP_DROPPED) { - db_printf("%sINP_DROPPED", comma ? ", " : ""); - comma = 1; - } - if (inp_vflag & INP_SOCKREF) { - db_printf("%sINP_SOCKREF", comma ? ", " : ""); - comma = 1; - } } void Modified: head/sys/netinet/in_pcb.h ============================================================================== --- head/sys/netinet/in_pcb.h Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/in_pcb.h Sun Mar 15 09:58:31 2009 (r189848) @@ -384,40 +384,38 @@ void inp_4tuple_get(struct inpcb *inp, #define INP_IPV4 0x1 #define INP_IPV6 0x2 #define INP_IPV6PROTO 0x4 /* opened under IPv6 protocol */ -#define INP_TIMEWAIT 0x8 /* inpcb in TIMEWAIT, ppcb is tcptw */ -#define INP_ONESBCAST 0x10 /* send all-ones broadcast */ -#define INP_DROPPED 0x20 /* protocol drop flag */ -#define INP_SOCKREF 0x40 /* strong socket reference */ /* * Flags for inp_flag. */ -#define INP_RECVOPTS 0x01 /* receive incoming IP options */ -#define INP_RECVRETOPTS 0x02 /* receive IP options for reply */ -#define INP_RECVDSTADDR 0x04 /* receive IP dst address */ -#define INP_HDRINCL 0x08 /* user supplies entire IP header */ -#define INP_HIGHPORT 0x10 /* user wants "high" port binding */ -#define INP_LOWPORT 0x20 /* user wants "low" port binding */ -#define INP_ANONPORT 0x40 /* port chosen for user */ -#define INP_RECVIF 0x80 /* receive incoming interface */ -#define INP_MTUDISC 0x100 /* user can do MTU discovery */ -#define INP_FAITH 0x200 /* accept FAITH'ed connections */ -#define INP_RECVTTL 0x400 /* receive incoming IP TTL */ -#define INP_DONTFRAG 0x800 /* don't fragment packet */ -#define INP_NONLOCALOK 0x1000 /* Allow bind to spoof any address */ +#define INP_RECVOPTS 0x00000001 /* receive incoming IP options */ +#define INP_RECVRETOPTS 0x00000002 /* receive IP options for reply */ +#define INP_RECVDSTADDR 0x00000004 /* receive IP dst address */ +#define INP_HDRINCL 0x00000008 /* user supplies entire IP header */ +#define INP_HIGHPORT 0x00000010 /* user wants "high" port binding */ +#define INP_LOWPORT 0x00000020 /* user wants "low" port binding */ +#define INP_ANONPORT 0x00000040 /* port chosen for user */ +#define INP_RECVIF 0x00000080 /* receive incoming interface */ +#define INP_MTUDISC 0x00000100 /* user can do MTU discovery */ +#define INP_FAITH 0x00000200 /* accept FAITH'ed connections */ +#define INP_RECVTTL 0x00000400 /* receive incoming IP TTL */ +#define INP_DONTFRAG 0x00000800 /* don't fragment packet */ +#define INP_NONLOCALOK 0x00001000 /* Allow bind to spoof any address */ /* - requires options IP_NONLOCALBIND */ -#define INP_INHASHLIST 0x2000 /* in_pcbinshash() has been called */ - -#define IN6P_IPV6_V6ONLY 0x008000 /* restrict AF_INET6 socket for v6 */ - -#define IN6P_PKTINFO 0x010000 /* receive IP6 dst and I/F */ -#define IN6P_HOPLIMIT 0x020000 /* receive hoplimit */ -#define IN6P_HOPOPTS 0x040000 /* receive hop-by-hop options */ -#define IN6P_DSTOPTS 0x080000 /* receive dst options after rthdr */ -#define IN6P_RTHDR 0x100000 /* receive routing header */ -#define IN6P_RTHDRDSTOPTS 0x200000 /* receive dstoptions before rthdr */ -#define IN6P_TCLASS 0x400000 /* receive traffic class value */ -#define IN6P_AUTOFLOWLABEL 0x800000 /* attach flowlabel automatically */ +#define INP_INHASHLIST 0x00002000 /* in_pcbinshash() has been called */ +#define IN6P_IPV6_V6ONLY 0x00008000 /* restrict AF_INET6 socket for v6 */ +#define IN6P_PKTINFO 0x00010000 /* receive IP6 dst and I/F */ +#define IN6P_HOPLIMIT 0x00020000 /* receive hoplimit */ +#define IN6P_HOPOPTS 0x00040000 /* receive hop-by-hop options */ +#define IN6P_DSTOPTS 0x00080000 /* receive dst options after rthdr */ +#define IN6P_RTHDR 0x00100000 /* receive routing header */ +#define IN6P_RTHDRDSTOPTS 0x00200000 /* receive dstoptions before rthdr */ +#define IN6P_TCLASS 0x00400000 /* receive traffic class value */ +#define IN6P_AUTOFLOWLABEL 0x00800000 /* attach flowlabel automatically */ +#define INP_TIMEWAIT 0x01000000 /* in TIMEWAIT, ppcb is tcptw */ +#define INP_ONESBCAST 0x02000000 /* send all-ones broadcast */ +#define INP_DROPPED 0x04000000 /* protocol drop flag */ +#define INP_SOCKREF 0x08000000 /* strong socket reference */ #define IN6P_RFC2292 0x40000000 /* used RFC2292 API on the socket */ #define IN6P_MTU 0x80000000 /* receive path MTU */ Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/tcp_input.c Sun Mar 15 09:58:31 2009 (r189848) @@ -635,7 +635,7 @@ findpcb: * tried to free the inpcb, in which case we need to loop back and * try to find a new inpcb to deliver to. */ - if (inp->inp_vflag & INP_TIMEWAIT) { + if (inp->inp_flags & INP_TIMEWAIT) { KASSERT(ti_locked == TI_RLOCKED || ti_locked == TI_WLOCKED, ("%s: INP_TIMEWAIT ti_locked %d", __func__, ti_locked)); Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/tcp_subr.c Sun Mar 15 09:58:31 2009 (r189848) @@ -881,10 +881,10 @@ tcp_close(struct tcpcb *tp) KASSERT(inp->inp_socket != NULL, ("tcp_close: inp_socket NULL")); so = inp->inp_socket; soisdisconnected(so); - if (inp->inp_vflag & INP_SOCKREF) { + if (inp->inp_flags & INP_SOCKREF) { KASSERT(so->so_state & SS_PROTOREF, ("tcp_close: !SS_PROTOREF")); - inp->inp_vflag &= ~INP_SOCKREF; + inp->inp_flags &= ~INP_SOCKREF; INP_WUNLOCK(inp); ACCEPT_LOCK(); SOCK_LOCK(so); @@ -921,7 +921,7 @@ tcp_drain(void) */ INP_INFO_RLOCK(&V_tcbinfo); LIST_FOREACH(inpb, V_tcbinfo.ipi_listhead, inp_list) { - if (inpb->inp_vflag & INP_TIMEWAIT) + if (inpb->inp_flags & INP_TIMEWAIT) continue; INP_WLOCK(inpb); if ((tcpb = intotcpcb(inpb)) != NULL) { @@ -962,8 +962,8 @@ tcp_notify(struct inpcb *inp, int error) INP_INFO_WLOCK_ASSERT(&V_tcbinfo); INP_WLOCK_ASSERT(inp); - if ((inp->inp_vflag & INP_TIMEWAIT) || - (inp->inp_vflag & INP_DROPPED)) + if ((inp->inp_flags & INP_TIMEWAIT) || + (inp->inp_flags & INP_DROPPED)) return (inp); tp = intotcpcb(inp); @@ -1063,7 +1063,7 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) * TCP state changes, is not quite right, but for * now, better than nothing. */ - if (inp->inp_vflag & INP_TIMEWAIT) { + if (inp->inp_flags & INP_TIMEWAIT) { if (intotw(inp) != NULL) error = cr_cansee(req->td->td_ucred, intotw(inp)->tw_cred); @@ -1094,7 +1094,7 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) inp_ppcb = inp->inp_ppcb; if (inp_ppcb == NULL) bzero((char *) &xt.xt_tp, sizeof xt.xt_tp); - else if (inp->inp_vflag & INP_TIMEWAIT) { + else if (inp->inp_flags & INP_TIMEWAIT) { bzero((char *) &xt.xt_tp, sizeof xt.xt_tp); xt.xt_tp.t_state = TCPS_TIME_WAIT; } else @@ -1293,8 +1293,8 @@ tcp_ctlinput(int cmd, struct sockaddr *s ip->ip_src, th->th_sport, 0, NULL); if (inp != NULL) { INP_WLOCK(inp); - if (!(inp->inp_vflag & INP_TIMEWAIT) && - !(inp->inp_vflag & INP_DROPPED) && + if (!(inp->inp_flags & INP_TIMEWAIT) && + !(inp->inp_flags & INP_DROPPED) && !(inp->inp_socket == NULL)) { icmp_tcp_seq = htonl(th->th_seq); tp = intotcpcb(inp); @@ -1581,8 +1581,8 @@ tcp_drop_syn_sent(struct inpcb *inp, int INP_INFO_WLOCK_ASSERT(&V_tcbinfo); INP_WLOCK_ASSERT(inp); - if ((inp->inp_vflag & INP_TIMEWAIT) || - (inp->inp_vflag & INP_DROPPED)) + if ((inp->inp_flags & INP_TIMEWAIT) || + (inp->inp_flags & INP_DROPPED)) return (inp); tp = intotcpcb(inp); @@ -1610,8 +1610,8 @@ tcp_mtudisc(struct inpcb *inp, int errno struct socket *so; INP_WLOCK_ASSERT(inp); - if ((inp->inp_vflag & INP_TIMEWAIT) || - (inp->inp_vflag & INP_DROPPED)) + if ((inp->inp_flags & INP_TIMEWAIT) || + (inp->inp_flags & INP_DROPPED)) return (inp); tp = intotcpcb(inp); @@ -2185,7 +2185,7 @@ sysctl_drop(SYSCTL_HANDLER_ARGS) } if (inp != NULL) { INP_WLOCK(inp); - if (inp->inp_vflag & INP_TIMEWAIT) { + if (inp->inp_flags & INP_TIMEWAIT) { /* * XXXRW: There currently exists a state where an * inpcb is present, but its timewait state has been @@ -2197,7 +2197,7 @@ sysctl_drop(SYSCTL_HANDLER_ARGS) tcp_twclose(tw, 0); else INP_WUNLOCK(inp); - } else if (!(inp->inp_vflag & INP_DROPPED) && + } else if (!(inp->inp_flags & INP_DROPPED) && !(inp->inp_socket->so_options & SO_ACCEPTCONN)) { tp = intotcpcb(inp); tp = tcp_drop(tp, ECONNABORTED); Modified: head/sys/netinet/tcp_timer.c ============================================================================== --- head/sys/netinet/tcp_timer.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/tcp_timer.c Sun Mar 15 09:58:31 2009 (r189848) @@ -182,7 +182,7 @@ tcp_timer_delack(void *xtp) } INP_WLOCK(inp); INP_INFO_RUNLOCK(&V_tcbinfo); - if ((inp->inp_vflag & INP_DROPPED) || callout_pending(&tp->t_timers->tt_delack) + if ((inp->inp_flags & INP_DROPPED) || callout_pending(&tp->t_timers->tt_delack) || !callout_active(&tp->t_timers->tt_delack)) { INP_WUNLOCK(inp); CURVNET_RESTORE(); @@ -229,7 +229,7 @@ tcp_timer_2msl(void *xtp) } INP_WLOCK(inp); tcp_free_sackholes(tp); - if ((inp->inp_vflag & INP_DROPPED) || callout_pending(&tp->t_timers->tt_2msl) || + if ((inp->inp_flags & INP_DROPPED) || callout_pending(&tp->t_timers->tt_2msl) || !callout_active(&tp->t_timers->tt_2msl)) { INP_WUNLOCK(tp->t_inpcb); INP_INFO_WUNLOCK(&V_tcbinfo); @@ -301,7 +301,7 @@ tcp_timer_keep(void *xtp) return; } INP_WLOCK(inp); - if ((inp->inp_vflag & INP_DROPPED) || callout_pending(&tp->t_timers->tt_keep) + if ((inp->inp_flags & INP_DROPPED) || callout_pending(&tp->t_timers->tt_keep) || !callout_active(&tp->t_timers->tt_keep)) { INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); @@ -397,7 +397,7 @@ tcp_timer_persist(void *xtp) return; } INP_WLOCK(inp); - if ((inp->inp_vflag & INP_DROPPED) || callout_pending(&tp->t_timers->tt_persist) + if ((inp->inp_flags & INP_DROPPED) || callout_pending(&tp->t_timers->tt_persist) || !callout_active(&tp->t_timers->tt_persist)) { INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); @@ -471,7 +471,7 @@ tcp_timer_rexmt(void * xtp) return; } INP_WLOCK(inp); - if ((inp->inp_vflag & INP_DROPPED) || callout_pending(&tp->t_timers->tt_rexmt) + if ((inp->inp_flags & INP_DROPPED) || callout_pending(&tp->t_timers->tt_rexmt) || !callout_active(&tp->t_timers->tt_rexmt)) { INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/tcp_timewait.c Sun Mar 15 09:58:31 2009 (r189848) @@ -265,17 +265,17 @@ tcp_twstart(struct tcpcb *tp) if (acknow) tcp_twrespond(tw, TH_ACK); inp->inp_ppcb = tw; - inp->inp_vflag |= INP_TIMEWAIT; + inp->inp_flags |= INP_TIMEWAIT; tcp_tw_2msl_reset(tw, 0); /* * If the inpcb owns the sole reference to the socket, then we can * detach and free the socket as it is not needed in time wait. */ - if (inp->inp_vflag & INP_SOCKREF) { + if (inp->inp_flags & INP_SOCKREF) { KASSERT(so->so_state & SS_PROTOREF, ("tcp_twstart: !SS_PROTOREF")); - inp->inp_vflag &= ~INP_SOCKREF; + inp->inp_flags &= ~INP_SOCKREF; INP_WUNLOCK(inp); ACCEPT_LOCK(); SOCK_LOCK(so); @@ -435,7 +435,7 @@ tcp_twclose(struct tcptw *tw, int reuse) * notify the socket layer. */ inp = tw->tw_inpcb; - KASSERT((inp->inp_vflag & INP_TIMEWAIT), ("tcp_twclose: !timewait")); + KASSERT((inp->inp_flags & INP_TIMEWAIT), ("tcp_twclose: !timewait")); KASSERT(intotw(inp) == tw, ("tcp_twclose: inp_ppcb != tw")); INP_INFO_WLOCK_ASSERT(&V_tcbinfo); /* tcp_tw_2msl_stop(). */ INP_WLOCK_ASSERT(inp); @@ -453,8 +453,8 @@ tcp_twclose(struct tcptw *tw, int reuse) * in which case another reference exists (XXXRW: think * about this more), and we don't need to take action. */ - if (inp->inp_vflag & INP_SOCKREF) { - inp->inp_vflag &= ~INP_SOCKREF; + if (inp->inp_flags & INP_SOCKREF) { + inp->inp_flags &= ~INP_SOCKREF; INP_WUNLOCK(inp); ACCEPT_LOCK(); SOCK_LOCK(so); Modified: head/sys/netinet/tcp_usrreq.c ============================================================================== --- head/sys/netinet/tcp_usrreq.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet/tcp_usrreq.c Sun Mar 15 09:58:31 2009 (r189848) @@ -169,7 +169,7 @@ tcp_detach(struct socket *so, struct inp tp = intotcpcb(inp); - if (inp->inp_vflag & INP_TIMEWAIT) { + if (inp->inp_flags & INP_TIMEWAIT) { /* * There are two cases to handle: one in which the time wait * state is being discarded (INP_DROPPED), and one in which @@ -182,7 +182,7 @@ tcp_detach(struct socket *so, struct inp * * XXXRW: Would it be cleaner to free the tcptw here? */ - if (inp->inp_vflag & INP_DROPPED) { + if (inp->inp_flags & INP_DROPPED) { KASSERT(tp == NULL, ("tcp_detach: INP_TIMEWAIT && " "INP_DROPPED && tp != NULL")); in_pcbdetach(inp); @@ -201,7 +201,7 @@ tcp_detach(struct socket *so, struct inp * * XXXRW: Does the second case still occur? */ - if (inp->inp_vflag & INP_DROPPED || + if (inp->inp_flags & INP_DROPPED || tp->t_state < TCPS_SYN_SENT) { tcp_discardcb(tp); in_pcbdetach(inp); @@ -262,7 +262,7 @@ tcp_usr_bind(struct socket *so, struct s inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_bind: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -303,7 +303,7 @@ tcp6_usr_bind(struct socket *so, struct inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp6_usr_bind: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -350,7 +350,7 @@ tcp_usr_listen(struct socket *so, int ba inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_listen: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -388,7 +388,7 @@ tcp6_usr_listen(struct socket *so, int b inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp6_usr_listen: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -449,7 +449,7 @@ tcp_usr_connect(struct socket *so, struc inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_connect: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -491,7 +491,7 @@ tcp6_usr_connect(struct socket *so, stru inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp6_usr_connect: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = EINVAL; goto out; } @@ -557,7 +557,7 @@ tcp_usr_disconnect(struct socket *so) inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_disconnect: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNRESET; goto out; } @@ -594,7 +594,7 @@ tcp_usr_accept(struct socket *so, struct KASSERT(inp != NULL, ("tcp_usr_accept: inp == NULL")); INP_INFO_RLOCK(&V_tcbinfo); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNABORTED; goto out; } @@ -637,7 +637,7 @@ tcp6_usr_accept(struct socket *so, struc inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp6_usr_accept: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNABORTED; goto out; } @@ -687,7 +687,7 @@ tcp_usr_shutdown(struct socket *so) inp = sotoinpcb(so); KASSERT(inp != NULL, ("inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNRESET; goto out; } @@ -695,7 +695,7 @@ tcp_usr_shutdown(struct socket *so) TCPDEBUG1(); socantsendmore(so); tcp_usrclosed(tp); - if (!(inp->inp_vflag & INP_DROPPED)) + if (!(inp->inp_flags & INP_DROPPED)) error = tcp_output_disconnect(tp); out: @@ -720,7 +720,7 @@ tcp_usr_rcvd(struct socket *so, int flag inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_rcvd: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNRESET; goto out; } @@ -771,7 +771,7 @@ tcp_usr_send(struct socket *so, int flag inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_send: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { if (control) m_freem(control); if (m) @@ -829,7 +829,7 @@ tcp_usr_send(struct socket *so, int flag INP_INFO_WUNLOCK(&V_tcbinfo); headlocked = 0; } - if (!(inp->inp_vflag & INP_DROPPED)) { + if (!(inp->inp_flags & INP_DROPPED)) { if (flags & PRUS_MORETOCOME) tp->t_flags |= TF_MORETOCOME; error = tcp_output_send(tp); @@ -917,18 +917,18 @@ tcp_usr_abort(struct socket *so) /* * If we still have full TCP state, and we're not dropped, drop. */ - if (!(inp->inp_vflag & INP_TIMEWAIT) && - !(inp->inp_vflag & INP_DROPPED)) { + if (!(inp->inp_flags & INP_TIMEWAIT) && + !(inp->inp_flags & INP_DROPPED)) { tp = intotcpcb(inp); TCPDEBUG1(); tcp_drop(tp, ECONNABORTED); TCPDEBUG2(PRU_ABORT); } - if (!(inp->inp_vflag & INP_DROPPED)) { + if (!(inp->inp_flags & INP_DROPPED)) { SOCK_LOCK(so); so->so_state |= SS_PROTOREF; SOCK_UNLOCK(so); - inp->inp_vflag |= INP_SOCKREF; + inp->inp_flags |= INP_SOCKREF; } INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); @@ -957,18 +957,18 @@ tcp_usr_close(struct socket *so) * If we still have full TCP state, and we're not dropped, initiate * a disconnect. */ - if (!(inp->inp_vflag & INP_TIMEWAIT) && - !(inp->inp_vflag & INP_DROPPED)) { + if (!(inp->inp_flags & INP_TIMEWAIT) && + !(inp->inp_flags & INP_DROPPED)) { tp = intotcpcb(inp); TCPDEBUG1(); tcp_disconnect(tp); TCPDEBUG2(PRU_CLOSE); } - if (!(inp->inp_vflag & INP_DROPPED)) { + if (!(inp->inp_flags & INP_DROPPED)) { SOCK_LOCK(so); so->so_state |= SS_PROTOREF; SOCK_UNLOCK(so); - inp->inp_vflag |= INP_SOCKREF; + inp->inp_flags |= INP_SOCKREF; } INP_WUNLOCK(inp); INP_INFO_WUNLOCK(&V_tcbinfo); @@ -988,7 +988,7 @@ tcp_usr_rcvoob(struct socket *so, struct inp = sotoinpcb(so); KASSERT(inp != NULL, ("tcp_usr_rcvoob: inp == NULL")); INP_WLOCK(inp); - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { error = ECONNRESET; goto out; } @@ -1241,7 +1241,7 @@ tcp_fill_info(struct tcpcb *tp, struct t */ #define INP_WLOCK_RECHECK(inp) do { \ INP_WLOCK(inp); \ - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { \ + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { \ INP_WUNLOCK(inp); \ return (ECONNRESET); \ } \ @@ -1275,7 +1275,7 @@ tcp_ctloutput(struct socket *so, struct #endif return (error); } - if (inp->inp_vflag & (INP_TIMEWAIT | INP_DROPPED)) { + if (inp->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { INP_WUNLOCK(inp); return (ECONNRESET); } @@ -1515,7 +1515,7 @@ tcp_disconnect(struct tcpcb *tp) soisdisconnecting(so); sbflush(&so->so_rcv); tcp_usrclosed(tp); - if (!(inp->inp_vflag & INP_DROPPED)) + if (!(inp->inp_flags & INP_DROPPED)) tcp_output_disconnect(tp); } } Modified: head/sys/netinet6/in6_pcb.c ============================================================================== --- head/sys/netinet6/in6_pcb.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/sys/netinet6/in6_pcb.c Sun Mar 15 09:58:31 2009 (r189848) @@ -197,7 +197,7 @@ in6_pcbbind(register struct inpcb *inp, &sin6->sin6_addr, lport, INPLOOKUP_WILDCARD, cred); if (t && - ((t->inp_vflag & INP_TIMEWAIT) == 0) && + ((t->inp_flags & INP_TIMEWAIT) == 0) && (so->so_type != SOCK_STREAM || IN6_IS_ADDR_UNSPECIFIED(&t->in6p_faddr)) && (!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) || @@ -215,7 +215,7 @@ in6_pcbbind(register struct inpcb *inp, sin.sin_addr, lport, INPLOOKUP_WILDCARD, cred); if (t && - ((t->inp_vflag & + ((t->inp_flags & INP_TIMEWAIT) == 0) && (so->so_type != SOCK_STREAM || ntohl(t->inp_faddr.s_addr) == @@ -227,7 +227,7 @@ in6_pcbbind(register struct inpcb *inp, } t = in6_pcblookup_local(pcbinfo, &sin6->sin6_addr, lport, wild, cred); - if (t && (reuseport & ((t->inp_vflag & INP_TIMEWAIT) ? + if (t && (reuseport & ((t->inp_flags & INP_TIMEWAIT) ? intotw(t)->tw_so_options : t->inp_socket->so_options)) == 0) return (EADDRINUSE); @@ -238,7 +238,7 @@ in6_pcbbind(register struct inpcb *inp, in6_sin6_2_sin(&sin, sin6); t = in_pcblookup_local(pcbinfo, sin.sin_addr, lport, wild, cred); - if (t && t->inp_vflag & INP_TIMEWAIT) { + if (t && t->inp_flags & INP_TIMEWAIT) { if ((reuseport & intotw(t)->tw_so_options) == 0 && (ntohl(t->inp_laddr.s_addr) != Modified: head/usr.bin/netstat/inet.c ============================================================================== --- head/usr.bin/netstat/inet.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/usr.bin/netstat/inet.c Sun Mar 15 09:58:31 2009 (r189848) @@ -257,7 +257,7 @@ pcblist_kvm(u_long off, char **bufp, int if (istcp) { if (inp->inp_ppcb == NULL) bzero(&xt.xt_tp, sizeof xt.xt_tp); - else if (inp->inp_vflag & INP_TIMEWAIT) { + else if (inp->inp_flags & INP_TIMEWAIT) { bzero(&xt.xt_tp, sizeof xt.xt_tp); xt.xt_tp.t_state = TCPS_TIME_WAIT; } else Modified: head/usr.bin/systat/netstat.c ============================================================================== --- head/usr.bin/systat/netstat.c Sun Mar 15 09:26:56 2009 (r189847) +++ head/usr.bin/systat/netstat.c Sun Mar 15 09:58:31 2009 (r189848) @@ -222,7 +222,7 @@ again: if (nports && !checkport(&inpcb)) continue; if (istcp) { - if (inpcb.inp_vflag & INP_TIMEWAIT) { + if (inpcb.inp_flags & INP_TIMEWAIT) { bzero(&sockb, sizeof(sockb)); enter_kvm(&inpcb, &sockb, TCPS_TIME_WAIT, "tcp"); From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 10:43:48 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CB6721065678; Sun, 15 Mar 2009 10:43:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B8FEC8FC1E; Sun, 15 Mar 2009 10:43:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FAhmBp024132; Sun, 15 Mar 2009 10:43:48 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FAhmR4024131; Sun, 15 Mar 2009 10:43:48 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200903151043.n2FAhmR4024131@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 15 Mar 2009 10:43:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189849 - stable/7/sbin/devd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 10:43:49 -0000 Author: kib Date: Sun Mar 15 10:43:48 2009 New Revision: 189849 URL: http://svn.freebsd.org/changeset/base/189849 Log: MFC r189534: Document several notifications. MFC r189538 (by maxim): Spell. Sort .Xrs. Modified: stable/7/sbin/devd/ (props changed) stable/7/sbin/devd/devd.conf.5 Modified: stable/7/sbin/devd/devd.conf.5 ============================================================================== --- stable/7/sbin/devd/devd.conf.5 Sun Mar 15 09:58:31 2009 (r189848) +++ stable/7/sbin/devd/devd.conf.5 Sun Mar 15 10:43:48 2009 (r189849) @@ -41,7 +41,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd October 25, 2006 +.Dd March 8, 2009 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -120,7 +120,7 @@ Specifies PID file. .It Ic set Ar regexp-name Qq Ar (some|regexp) ; Creates a regular expression and assigns it to the variable .Ar regexp-name . -The variable is avaiable throughout the rest of +The variable is available throughout the rest of the configuration file. All regular expressions have an implicit .Ql ^$ @@ -208,7 +208,7 @@ The following sub-statements are support statement. The .Dq Li notify -variable is avaiable inside this statement and contains, a value, depending +variable is available inside this statement and contains, a value, depending on which system and subsystem that delivered the event. .Bl -tag -width ".Ic directory" .It Ic action Qq Ar command ; @@ -223,7 +223,7 @@ statements can exist within a statement; .Ar value can be either a fixed string or a regular expression. -Below is a list of avaiable systems, subsystems, and types. +Below is a list of available systems, subsystems, and types. .It Ic media-type Qq Ar string ; See above. .El @@ -238,6 +238,10 @@ statement. .Ic Description .It Li bus Device name of parent bus. +.It Li cdev +Device node path if one is created by the +.Xr devfs 5 +filesystem. .It Li cisproduct CIS-product. .It Li cisvendor @@ -280,7 +284,7 @@ A partial list of systems, subsystems, a .Ic notify mechanism. .Pp -.Bl -tag -width ".Li IFNET" -compact +.Bl -tag -width ".Li coretemp" -compact .It Sy System .It Li ACPI Events related to the ACPI subsystem. @@ -313,6 +317,55 @@ took place. Carrier status changed to UP. .It Li LINK_DOWN Carrier status changed to DOWN. +.It Li ATTACH +The network interface is attached to the system. +.It Li DETACH +The network interface is detached from the system. +.El +.El +.It Li DEVFS +Events related to the +.Xr devfs 5 +filesystem. +.Bl -tag -width ".Sy Subsystem" -compact +.It Sy Subsystem +.It Li CDEV +.Bl -tag -width ".Li DESTROY" -compact +.It Sy Type +.It Li CREATE +The +.Xr devfs 5 +node is created. +.It Li DESTROY +The +.Xr devfs 5 +node is destroyed. +.El +.El +.It Li coretemp +Events related to the +.Xr coretemp 4 +device. +.Bl -tag -width ".Sy Subsystem" -compact +.It Sy Subsystem +.It Li Thermal +Notification that the CPU core has reached critical temperature. +.Bl -tag -width ".Ar temperature" -compact +.It Sy Type +.It Ar temperature +String containing the temperature of the core that has become too hot. +.El +.El +.It Li kern +Events related to the kernel. +.Bl -tag -width ".Sy Subsystem" -compact +.It Sy Subsystem +.It Li power +Information about the state of the system. +.Bl -tag -width ".li resume" -compact +.It Sy Type +.It Li resume +Notification that the system has woken from the suspended state. .El .El .El @@ -430,4 +483,6 @@ The installed .Pa /etc/devd.conf has many additional examples. .Sh SEE ALSO +.Xr coretemp 4 , +.Xr devfs 5 , .Xr devd 8 From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 13:14:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AFF5E106564A; Sun, 15 Mar 2009 13:14:06 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9340D8FC1D; Sun, 15 Mar 2009 13:14:06 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FDE6Zj029990; Sun, 15 Mar 2009 13:14:06 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FDE6Zx029988; Sun, 15 Mar 2009 13:14:06 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <200903151314.n2FDE6Zx029988@svn.freebsd.org> From: Gabor Kovesdan Date: Sun, 15 Mar 2009 13:14:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189850 - in head: . lib/libc/nls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 13:14:07 -0000 Author: gabor (doc,ports committer) Date: Sun Mar 15 13:14:06 2009 New Revision: 189850 URL: http://svn.freebsd.org/changeset/base/189850 Log: - Create the buildworld object directories with mtree instead of various mkdir calls - Remove the ugly workaroung from libc NLS, which was to create some of these directories Modified: head/Makefile.inc1 head/lib/libc/nls/Makefile.inc Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Mar 15 10:43:48 2009 (r189849) +++ head/Makefile.inc1 Sun Mar 15 13:14:06 2009 (r189850) @@ -344,30 +344,13 @@ _worldtmp: rm -f ${OBJTREE}${.CURDIR}/usr.bin/truss/ioctl.c .endif .for _dir in \ - usr/bin usr/games usr/include/sys usr/lib \ - usr/libexec usr/sbin usr/share/dict \ - usr/share/groff_font/devX100 \ - usr/share/groff_font/devX100-12 \ - usr/share/groff_font/devX75 \ - usr/share/groff_font/devX75-12 \ - usr/share/groff_font/devascii \ - usr/share/groff_font/devcp1047 \ - usr/share/groff_font/devdvi \ - usr/share/groff_font/devhtml \ - usr/share/groff_font/devkoi8-r \ - usr/share/groff_font/devlatin1 \ - usr/share/groff_font/devlbp \ - usr/share/groff_font/devlj4 \ - usr/share/groff_font/devps \ - usr/share/groff_font/devutf8 \ - usr/share/tmac/mdoc usr/share/tmac/mm - mkdir -p ${WORLDTMP}/legacy/${_dir} -.endfor -.for _dir in \ - lib usr/bin usr/include usr/lib/compat/aout usr/libdata/ldscripts \ - usr/libexec usr/sbin usr/share/misc + lib usr legacy/usr mkdir -p ${WORLDTMP}/${_dir} .endfor + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${WORLDTMP}/legacy/usr >/dev/null + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${WORLDTMP}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${WORLDTMP}/usr/include >/dev/null ln -sf ${.CURDIR}/sys ${WORLDTMP} @@ -448,10 +431,9 @@ build32: @echo "--------------------------------------------------------------" @echo ">>> stage 5.1: building 32 bit shim libraries" @echo "--------------------------------------------------------------" -.for _dir in \ - usr/include usr/lib32 usr/share/misc - mkdir -p ${LIB32TMP}/${_dir} -.endfor + mkdir -p ${LIB32TMP}/usr/lib32 + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${LIB32TMP}/usr >/dev/null mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \ -p ${LIB32TMP}/usr/include >/dev/null mkdir -p ${WORLDTMP} Modified: head/lib/libc/nls/Makefile.inc ============================================================================== --- head/lib/libc/nls/Makefile.inc Sun Mar 15 10:43:48 2009 (r189849) +++ head/lib/libc/nls/Makefile.inc Sun Mar 15 13:14:06 2009 (r189850) @@ -30,9 +30,3 @@ NLS+= pl_PL.ISO8859-2 NLS+= ru_RU.KOI8-R NLS+= sk_SK.ISO8859-2 NLS+= sv_SE.ISO8859-1 - -.BEGIN: -.for c in ${NLS} - mkdir -p ${CANONICALOBJDIR}/../../lib32/usr/share/nls/${c} - mkdir -p ${CANONICALOBJDIR}/../../tmp/usr/share/nls/${c} -.endfor From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 14:21:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62809106566C; Sun, 15 Mar 2009 14:21:06 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4DD388FC18; Sun, 15 Mar 2009 14:21:06 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FEL61B031308; Sun, 15 Mar 2009 14:21:06 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FEL5Ra031289; Sun, 15 Mar 2009 14:21:05 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903151421.n2FEL5Ra031289@svn.freebsd.org> From: Robert Watson Date: Sun, 15 Mar 2009 14:21:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189851 - in head/sys: conf i386/conf kern modules modules/netgraph net netinet netinet6 netnatm pc98/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 14:21:06 -0000 Author: rwatson Date: Sun Mar 15 14:21:05 2009 New Revision: 189851 URL: http://svn.freebsd.org/changeset/base/189851 Log: Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced in FreeBSD 5.x to allow network device drivers to run with Giant despite the network stack being Giant-free. This significantly simplifies calls into ioctl() on network interfaces, especially in the multicast code, as well as eliminates deferred invocation of interface if_start routines. Disable the build on device drivers still depending on IFF_NEEDSGIANT as they no longer compile. They will be removed in a few weeks if they haven't been made MPSAFE in that time. Disabled drivers: if_ar if_axe if_aue if_cdce if_cue if_kue if_ray if_rue if_rum if_sr if_udav if_ural if_zyd Drivers that were already disabled because of tty changes: if_ppp if_sl Discussed on: arch@ Modified: head/sys/conf/NOTES head/sys/conf/files head/sys/conf/files.i386 head/sys/conf/files.pc98 head/sys/conf/options head/sys/i386/conf/NOTES head/sys/kern/kern_poll.c head/sys/modules/Makefile head/sys/modules/netgraph/Makefile head/sys/net/if.c head/sys/net/if_bridge.c head/sys/net/if_var.h head/sys/netinet/in.c head/sys/netinet/in_mcast.c head/sys/netinet6/in6.c head/sys/netinet6/in6_ifattach.c head/sys/netinet6/mld6.c head/sys/netnatm/natm.c head/sys/pc98/conf/NOTES Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/conf/NOTES Sun Mar 15 14:21:05 2009 (r189851) @@ -765,10 +765,6 @@ device arcnet # of synchronous PPP links (like `cx', `ar'). device sppp -# The `sl' device implements the Serial Line IP (SLIP) service. -# The `ppp' device implements the Point-to-Point Protocol. - - # The `bpf' device enables the Berkeley Packet Filter. Be # aware of the legal and administrative consequences of enabling this # option. The number of devices determines the maximum number of @@ -837,15 +833,6 @@ device enc device lagg # -# The PPP_BSDCOMP option enables support for compress(1) style entire -# packet compression, the PPP_DEFLATE is for zlib/gzip style compression. -# PPP_FILTER enables code for filtering the ppp data stream and selecting -# events for resetting the demand dial activity timer - requires bpf. -# See pppd(8) for more details. -# - - -# # Internet family options: # # MROUTING enables the kernel multicast packet forwarder, which works @@ -2678,7 +2665,6 @@ options SC_DEBUG_LEVEL=5 # Syscons debu options SC_RENDER_DEBUG # syscons rendering debugging options SHOW_BUSYBUFS # List buffers that prevent root unmount -options SLIP_IFF_OPTS options VFS_BIO_DEBUG # VFS buffer I/O debugging options KSTACK_MAX_PAGES=32 # Maximum pages to give the kernel stack Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/conf/files Sun Mar 15 14:21:05 2009 (r189851) @@ -1306,7 +1306,6 @@ dev/random/probe.c optional random dev/random/randomdev.c optional random dev/random/randomdev_soft.c optional random dev/random/yarrow.c optional random -dev/ray/if_ray.c optional ray pccard dev/rc/rc.c optional rc dev/re/if_re.c optional re dev/rndtest/rndtest.c optional rndtest @@ -1424,8 +1423,6 @@ dev/sound/midi/synth_if.m optional sound dev/spibus/spibus.c optional spibus \ dependency "spibus_if.h" dev/spibus/spibus_if.m optional spibus -dev/sr/if_sr.c optional sr -dev/sr/if_sr_pci.c optional sr pci dev/ste/if_ste.c optional ste pci dev/stg/tmc18c30.c optional stg dev/stg/tmc18c30_isa.c optional stg isa @@ -1502,15 +1499,6 @@ legacy/dev/usb/ehci_ddb.c optional oehci legacy/dev/usb/ehci_pci.c optional oehci pci legacy/dev/usb/hid.c optional ousb legacy/dev/usb/if_aue.c optional oaue -legacy/dev/usb/if_axe.c optional oaxe -legacy/dev/usb/if_cdce.c optional ocdce -legacy/dev/usb/if_cue.c optional ocue -legacy/dev/usb/if_kue.c optional okue -legacy/dev/usb/if_ural.c optional oural -legacy/dev/usb/if_rue.c optional orue -legacy/dev/usb/if_rum.c optional orum -legacy/dev/usb/if_udav.c optional oudav -legacy/dev/usb/if_zyd.c optional ozyd legacy/dev/usb/ohci.c optional oohci legacy/dev/usb/ohci_pci.c optional oohci pci legacy/dev/usb/sl811hs.c optional oslhci @@ -2160,7 +2148,6 @@ net/bpf_jitter.c optional bpf_jitter net/bpf_filter.c optional bpf | netgraph_bpf net/bpf_zerocopy.c optional bpf net/bridgestp.c optional bridge | if_bridge -net/bsd_comp.c optional ppp_bsdcomp net/ieee8023ad_lacp.c optional lagg net/if.c standard net/if_arcsubr.c optional arcnet @@ -2184,8 +2171,6 @@ net/if_loop.c optional loop net/if_llatbl.c standard net/if_media.c standard net/if_mib.c standard -net/if_ppp.c optional ppp -net/if_sl.c optional sl net/if_spppfr.c optional sppp | netgraph_sppp net/if_spppsubr.c optional sppp | netgraph_sppp net/if_stf.c optional stf @@ -2195,8 +2180,6 @@ net/if_vlan.c optional vlan net/mppcc.c optional netgraph_mppc_compression net/mppcd.c optional netgraph_mppc_compression net/netisr.c standard -net/ppp_deflate.c optional ppp_deflate -net/ppp_tty.c optional ppp net/pfil.c optional ether | inet net/radix.c standard net/radix_mpath.c standard @@ -2204,10 +2187,10 @@ net/raw_cb.c standard net/raw_usrreq.c standard net/route.c standard net/rtsock.c standard -net/slcompress.c optional netgraph_vjc | ppp | sl | sppp | \ +net/slcompress.c optional netgraph_vjc | sppp | \ netgraph_sppp net/zlib.c optional crypto | geom_uzip | ipsec | \ - mxge | ppp_deflate | netgraph_deflate | \ + mxge | netgraph_deflate | \ ddb_ctf net80211/ieee80211.c optional wlan net80211/ieee80211_acl.c optional wlan_acl Modified: head/sys/conf/files.i386 ============================================================================== --- head/sys/conf/files.i386 Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/conf/files.i386 Sun Mar 15 14:21:05 2009 (r189851) @@ -130,9 +130,6 @@ dev/agp/agp_via.c optional agp dev/aic/aic_isa.c optional aic isa dev/amdtemp/amdtemp.c optional amdtemp dev/arcmsr/arcmsr.c optional arcmsr pci -dev/ar/if_ar.c optional ar -dev/ar/if_ar_isa.c optional ar isa -dev/ar/if_ar_pci.c optional ar pci dev/asmc/asmc.c optional asmc isa dev/atkbdc/atkbd.c optional atkbd atkbdc dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc @@ -218,7 +215,6 @@ dev/sio/sio_pccard.c optional sio pccar dev/sio/sio_pci.c optional sio pci dev/sio/sio_puc.c optional sio puc dev/speaker/spkr.c optional speaker -dev/sr/if_sr_isa.c optional sr isa dev/syscons/apm/apm_saver.c optional apm_saver apm dev/syscons/scterm-teken.c optional sc dev/syscons/scvesactl.c optional sc vga vesa Modified: head/sys/conf/files.pc98 ============================================================================== --- head/sys/conf/files.pc98 Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/conf/files.pc98 Sun Mar 15 14:21:05 2009 (r189851) @@ -85,8 +85,6 @@ dev/agp/agp_nvidia.c optional agp dev/agp/agp_sis.c optional agp dev/agp/agp_via.c optional agp dev/aic/aic_cbus.c optional aic isa -dev/ar/if_ar.c optional ar -dev/ar/if_ar_pci.c optional ar pci dev/ce/ceddk.c optional ce dev/ce/if_ce.c optional ce dev/ce/tau32-ddk.c optional ce Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/conf/options Sun Mar 15 14:21:05 2009 (r189851) @@ -407,9 +407,6 @@ MROUTING opt_mrouting.h NCP NETATALK opt_atalk.h NFSLOCKD -PPP_BSDCOMP opt_ppp.h -PPP_DEFLATE opt_ppp.h -PPP_FILTER opt_ppp.h RADIX_MPATH opt_mpath.h ROUTETABLES opt_route.h COMPAT_ROUTE_FLAGS opt_route.h Modified: head/sys/i386/conf/NOTES ============================================================================== --- head/sys/i386/conf/NOTES Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/i386/conf/NOTES Sun Mar 15 14:21:05 2009 (r189851) @@ -528,8 +528,6 @@ hint.mse.0.irq="5" # Network interfaces: # -# ar: Arnet SYNC/570i hdlc sync 2/4 port V.35/X.21 serial driver -# (requires sppp) # ath: Atheros a/b/g WiFi adapters (requires ath_hal and wlan) # ce: Cronyx Tau-PCI/32 sync single/dual port G.703/E1 serial adaptor # with 32 HDLC subchannels (requires sppp (default), or NETGRAPH if @@ -554,17 +552,11 @@ hint.mse.0.irq="5" # nve: nVidia nForce MCP on-board Ethernet Networking # ral: Ralink Technology IEEE 802.11 wireless adapter # sbni: Granch SBNI12-xx ISA and PCI adapters -# sr: RISCom/N2 hdlc sync 1/2 port V.35/X.21 serial driver (requires sppp) # wl: Lucent Wavelan (ISA card only). # wpi: Intel 3945ABG Wireless LAN controller # Order for ISA/EISA devices is important here -device ar -hint.ar.0.at="isa" -hint.ar.0.port="0x300" -hint.ar.0.irq="10" -hint.ar.0.maddr="0xd0000" device ath # Atheros pci/cardbus NIC's device ath_hal # pci/cardbus chip support #device ath_ar5210 # AR5210 chips @@ -619,11 +611,6 @@ hint.sbni.0.at="isa" hint.sbni.0.port="0x210" hint.sbni.0.irq="0xefdead" hint.sbni.0.flags="0" -device sr -hint.sr.0.at="isa" -hint.sr.0.port="0x300" -hint.sr.0.irq="5" -hint.sr.0.maddr="0xd0000" device wl hint.wl.0.at="isa" hint.wl.0.port="0x300" Modified: head/sys/kern/kern_poll.c ============================================================================== --- head/sys/kern/kern_poll.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/kern/kern_poll.c Sun Mar 15 14:21:05 2009 (r189851) @@ -551,9 +551,7 @@ poll_switch(SYSCTL_HANDLER_ARGS) else ifr.ifr_reqcap = ifp->if_capenable & ~IFCAP_POLLING; - IFF_LOCKGIANT(ifp); /* LOR here */ (void) (*ifp->if_ioctl)(ifp, SIOCSIFCAP, (caddr_t)&ifr); - IFF_UNLOCKGIANT(ifp); } } IFNET_RUNLOCK(); Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/modules/Makefile Sun Mar 15 14:21:05 2009 (r189851) @@ -24,7 +24,6 @@ SUBDIR= ${_3dfx} \ ${_an} \ ${_aout} \ ${_apm} \ - ${_ar} \ ${_arcmsr} \ ${_arcnet} \ ${_asmc} \ @@ -219,7 +218,6 @@ SUBDIR= ${_3dfx} \ puc \ ral \ ${_random} \ - ${_ray} \ rc4 \ ${_rdma} \ re \ @@ -244,7 +242,6 @@ SUBDIR= ${_3dfx} \ ${_speaker} \ ${_splash} \ ${_sppp} \ - ${_sr} \ ste \ ${_stg} \ stge \ @@ -332,7 +329,6 @@ _amd= amd _an= an _aout= aout _apm= apm -_ar= ar _arcnet= arcnet _bktr= bktr _cardbus= cardbus @@ -385,7 +381,6 @@ _opensolaris= opensolaris _pccard= pccard _pcfclock= pcfclock _pst= pst -_ray= ray _rdma= rdma _safe= safe _sbni= sbni @@ -395,7 +390,6 @@ _sound= sound _speaker= speaker _splash= splash _sppp= sppp -_sr= sr _stg= stg _streams= streams _svr4= svr4 Modified: head/sys/modules/netgraph/Makefile ============================================================================== --- head/sys/modules/netgraph/Makefile Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/modules/netgraph/Makefile Sun Mar 15 14:21:05 2009 (r189851) @@ -44,8 +44,6 @@ SUBDIR= async \ source \ split \ sppp \ - ${_sync_ar} \ - ${_sync_sr} \ tag \ tcpmss \ tee \ @@ -54,11 +52,6 @@ SUBDIR= async \ vjc \ vlan -.if ${MACHINE_ARCH} == "i386" -_sync_ar= sync_ar -_sync_sr= sync_sr -.endif - .if ${MK_BLUETOOTH} != "no" || defined(ALL_MODULES) _bluetooth= bluetooth .endif Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/net/if.c Sun Mar 15 14:21:05 2009 (r189851) @@ -138,7 +138,6 @@ static void link_rtrequest(int, struct r static int if_rtdel(struct radix_node *, void *); static int ifhwioctl(u_long, struct ifnet *, caddr_t, struct thread *); static int if_delmulti_locked(struct ifnet *, struct ifmultiaddr *, int); -static void if_start_deferred(void *context, int pending); static void do_link_state_change(void *, int); static int if_getgroup(struct ifgroupreq *, struct ifnet *); static int if_getgroupmembers(struct ifgroupreq *); @@ -582,7 +581,6 @@ if_attach(struct ifnet *ifp) panic ("%s: BUG: if_attach called without if_alloc'd input()\n", ifp->if_xname); - TASK_INIT(&ifp->if_starttask, 0, if_start_deferred, ifp); TASK_INIT(&ifp->if_linktask, 0, do_link_state_change, ifp); IF_AFDATA_LOCK_INIT(ifp); ifp->if_afdata_initialized = 0; @@ -674,9 +672,6 @@ if_attach(struct ifnet *ifp) if (atomic_cmpset_int(&slowtimo_started, 0, 1) && !cold) if_slowtimo(0); } - if (ifp->if_flags & IFF_NEEDSGIANT) - if_printf(ifp, - "WARNING: using obsoleted IFF_NEEDSGIANT flag\n"); } static void @@ -1607,8 +1602,7 @@ if_qflush(struct ifnet *ifp) * call the appropriate interface routine on expiration. * * XXXRW: Note that because timeouts run with Giant, if_watchdog() is called - * holding Giant. If we switch to an MPSAFE callout, we likely need to grab - * Giant before entering if_watchdog() on an IFF_NEEDSGIANT interface. + * holding Giant. */ static void if_slowtimo(void *arg) @@ -1741,9 +1735,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, ifp->if_flags = (ifp->if_flags & IFF_CANTCHANGE) | (new_flags &~ IFF_CANTCHANGE); if (ifp->if_ioctl) { - IFF_LOCKGIANT(ifp); (void) (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); } getmicrotime(&ifp->if_lastchange); break; @@ -1756,9 +1748,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, return (EOPNOTSUPP); if (ifr->ifr_reqcap & ~ifp->if_capabilities) return (EINVAL); - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); if (error == 0) getmicrotime(&ifp->if_lastchange); break; @@ -1830,9 +1820,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, return (error); if (ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); if (error == 0) getmicrotime(&ifp->if_lastchange); break; @@ -1848,9 +1836,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, return (EINVAL); if (ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); if (error == 0) { getmicrotime(&ifp->if_lastchange); rt_ifmsg(ifp); @@ -1920,9 +1906,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, return (error); if (ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); if (error == 0) getmicrotime(&ifp->if_lastchange); break; @@ -1938,9 +1922,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, case SIOCGIFGENERIC: if (ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); break; case SIOCSIFLLADDR: @@ -2168,9 +2150,7 @@ if_setflag(struct ifnet *ifp, int flag, } ifr.ifr_flags = ifp->if_flags & 0xffff; ifr.ifr_flagshigh = ifp->if_flags >> 16; - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); - IFF_UNLOCKGIANT(ifp); if (error) goto recover; /* Notify userland that interface flags have changed */ @@ -2540,9 +2520,7 @@ if_addmulti(struct ifnet *ifp, struct so * interface to let them know about it. */ if (ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); (void) (*ifp->if_ioctl)(ifp, SIOCADDMULTI, 0); - IFF_UNLOCKGIANT(ifp); } if (llsa != NULL) @@ -2601,9 +2579,7 @@ if_delmulti(struct ifnet *ifp, struct so return (ENOENT); if (lastref && ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); (void)(*ifp->if_ioctl)(ifp, SIOCDELMULTI, 0); - IFF_UNLOCKGIANT(ifp); } return (0); @@ -2613,9 +2589,7 @@ if_delmulti(struct ifnet *ifp, struct so * Delete a multicast group membership by group membership pointer. * Network-layer protocol domains must use this routine. * - * It is safe to call this routine if the ifp disappeared. Callers should - * hold IFF_LOCKGIANT() to avoid a LOR in case the hardware needs to be - * reconfigured. + * It is safe to call this routine if the ifp disappeared. */ void if_delmulti_ifma(struct ifmultiaddr *ifma) @@ -2660,9 +2634,7 @@ if_delmulti_ifma(struct ifmultiaddr *ifm */ IF_ADDR_UNLOCK(ifp); if (lastref && ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); (void)(*ifp->if_ioctl)(ifp, SIOCDELMULTI, 0); - IFF_UNLOCKGIANT(ifp); } } } @@ -2784,7 +2756,6 @@ if_setlladdr(struct ifnet *ifp, const u_ */ if ((ifp->if_flags & IFF_UP) != 0) { if (ifp->if_ioctl) { - IFF_LOCKGIANT(ifp); ifp->if_flags &= ~IFF_UP; ifr.ifr_flags = ifp->if_flags & 0xffff; ifr.ifr_flagshigh = ifp->if_flags >> 16; @@ -2793,7 +2764,6 @@ if_setlladdr(struct ifnet *ifp, const u_ ifr.ifr_flags = ifp->if_flags & 0xffff; ifr.ifr_flagshigh = ifp->if_flags >> 16; (*ifp->if_ioctl)(ifp, SIOCSIFFLAGS, (caddr_t)&ifr); - IFF_UNLOCKGIANT(ifp); } #ifdef INET /* @@ -2839,39 +2809,11 @@ if_printf(struct ifnet *ifp, const char return (retval); } -/* - * When an interface is marked IFF_NEEDSGIANT, its if_start() routine cannot - * be called without Giant. However, we often can't acquire the Giant lock - * at those points; instead, we run it via a task queue that holds Giant via - * if_start_deferred. - * - * XXXRW: We need to make sure that the ifnet isn't fully detached until any - * outstanding if_start_deferred() tasks that will run after the free. This - * probably means waiting in if_detach(). - */ void if_start(struct ifnet *ifp) { - if (ifp->if_flags & IFF_NEEDSGIANT) { - if (mtx_owned(&Giant)) - (*(ifp)->if_start)(ifp); - else - taskqueue_enqueue(taskqueue_swi_giant, - &ifp->if_starttask); - } else - (*(ifp)->if_start)(ifp); -} - -static void -if_start_deferred(void *context, int pending) -{ - struct ifnet *ifp; - - GIANT_REQUIRED; - - ifp = context; - (ifp->if_start)(ifp); + (*(ifp)->if_start)(ifp); } /* @@ -2908,7 +2850,7 @@ if_handoff(struct ifqueue *ifq, struct m _IF_ENQUEUE(ifq, m); IF_UNLOCK(ifq); if (ifp != NULL && !active) - if_start(ifp); + (*(ifp)->if_start)(ifp); return (1); } Modified: head/sys/net/if_bridge.c ============================================================================== --- head/sys/net/if_bridge.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/net/if_bridge.c Sun Mar 15 14:21:05 2009 (r189851) @@ -829,9 +829,7 @@ bridge_set_ifcap(struct bridge_softc *sc ifr.ifr_reqcap = set; if (ifp->if_capenable != set) { - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, SIOCSIFCAP, (caddr_t)&ifr); - IFF_UNLOCKGIANT(ifp); if (error) if_printf(sc->sc_ifp, "error setting interface capabilities on %s\n", Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/net/if_var.h Sun Mar 15 14:21:05 2009 (r189851) @@ -181,7 +181,6 @@ struct ifnet { void *if_afdata[AF_MAX]; int if_afdata_initialized; struct rwlock if_afdata_lock; - struct task if_starttask; /* task for IFF_NEEDSGIANT */ struct task if_linktask; /* task for link change events */ struct mtx if_addr_mtx; /* mutex to protect address lists */ @@ -379,16 +378,6 @@ EVENTHANDLER_DECLARE(group_change_event, #define IF_AFDATA_LOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_LOCKED) #define IF_AFDATA_UNLOCK_ASSERT(ifp) rw_assert(&(ifp)->if_afdata_lock, RA_UNLOCKED) -#define IFF_LOCKGIANT(ifp) do { \ - if ((ifp)->if_flags & IFF_NEEDSGIANT) \ - mtx_lock(&Giant); \ -} while (0) - -#define IFF_UNLOCKGIANT(ifp) do { \ - if ((ifp)->if_flags & IFF_NEEDSGIANT) \ - mtx_unlock(&Giant); \ -} while (0) - int if_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust); #define IF_HANDOFF(ifq, m, ifp) \ Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netinet/in.c Sun Mar 15 14:21:05 2009 (r189851) @@ -397,10 +397,8 @@ in_control(struct socket *so, u_long cmd oldaddr = ia->ia_dstaddr; ia->ia_dstaddr = *(struct sockaddr_in *)&ifr->ifr_dstaddr; if (ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, SIOCSIFDSTADDR, (caddr_t)ia); - IFF_UNLOCKGIANT(ifp); if (error) { ia->ia_dstaddr = oldaddr; return (error); @@ -507,10 +505,7 @@ in_control(struct socket *so, u_long cmd default: if (ifp == NULL || ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); - error = (*ifp->if_ioctl)(ifp, cmd, data); - IFF_UNLOCKGIANT(ifp); - return (error); + return ((*ifp->if_ioctl)(ifp, cmd, data)); } /* @@ -531,7 +526,6 @@ in_control(struct socket *so, u_long cmd IFP_TO_IA(ifp, oia); if (oia == NULL) { ii = ((struct in_ifinfo *)ifp->if_afdata[AF_INET]); - IFF_LOCKGIANT(ifp); IN_MULTI_LOCK(); if (ii->ii_allhosts) { (void)in_leavegroup_locked(ii->ii_allhosts, @@ -539,7 +533,6 @@ in_control(struct socket *so, u_long cmd ii->ii_allhosts = NULL; } IN_MULTI_UNLOCK(); - IFF_UNLOCKGIANT(ifp); } } IFAFREE(&ia->ia_ifa); @@ -753,9 +746,7 @@ in_ifinit(struct ifnet *ifp, struct in_i * and to validate the address if necessary. */ if (ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia); - IFF_UNLOCKGIANT(ifp); if (error) { splx(s); /* LIST_REMOVE(ia, ia_hash) is done in in_control */ Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netinet/in_mcast.c Sun Mar 15 14:21:05 2009 (r189851) @@ -1100,11 +1100,9 @@ in_joingroup(struct ifnet *ifp, const st { int error; - IFF_LOCKGIANT(ifp); IN_MULTI_LOCK(); error = in_joingroup_locked(ifp, gina, imf, pinm); IN_MULTI_UNLOCK(); - IFF_UNLOCKGIANT(ifp); return (error); } @@ -1181,20 +1179,14 @@ int in_leavegroup(struct in_multi *inm, /*const*/ struct in_mfilter *imf) { struct ifnet *ifp; - int detached, error; + int error; - detached = inm_is_ifp_detached(inm); ifp = inm->inm_ifp; - if (!detached) - IFF_LOCKGIANT(ifp); IN_MULTI_LOCK(); error = in_leavegroup_locked(inm, imf); IN_MULTI_UNLOCK(); - if (!detached) - IFF_UNLOCKGIANT(ifp); - return (error); } @@ -1396,8 +1388,6 @@ inp_block_unblock_source(struct inpcb *i if (!IN_MULTICAST(ntohl(gsa->sin.sin_addr.s_addr))) return (EINVAL); - IFF_LOCKGIANT(ifp); - /* * Check if we are actually a member of this group. */ @@ -1486,7 +1476,6 @@ out_imf_rollback: out_inp_locked: INP_WUNLOCK(inp); - IFF_UNLOCKGIANT(ifp); return (error); } @@ -1978,8 +1967,6 @@ inp_join_group(struct inpcb *inp, struct if (ifp == NULL || (ifp->if_flags & IFF_MULTICAST) == 0) return (EADDRNOTAVAIL); - IFF_LOCKGIANT(ifp); - /* * MCAST_JOIN_SOURCE on an exclusive membership is an error. * On an existing inclusive membership, it just adds the @@ -2102,7 +2089,6 @@ out_imo_free: out_inp_locked: INP_WUNLOCK(inp); - IFF_UNLOCKGIANT(ifp); return (error); } @@ -2215,9 +2201,6 @@ inp_leave_group(struct inpcb *inp, struc if (!IN_MULTICAST(ntohl(gsa->sin.sin_addr.s_addr))) return (EINVAL); - if (ifp) - IFF_LOCKGIANT(ifp); - /* * Find the membership in the membership array. */ @@ -2312,8 +2295,6 @@ out_imf_rollback: out_inp_locked: INP_WUNLOCK(inp); - if (ifp) - IFF_UNLOCKGIANT(ifp); return (error); } @@ -2432,8 +2413,6 @@ inp_set_source_filters(struct inpcb *inp if (ifp == NULL) return (EADDRNOTAVAIL); - IFF_LOCKGIANT(ifp); - /* * Take the INP write lock. * Check if this socket is a member of this group. @@ -2551,7 +2530,6 @@ out_imf_rollback: out_inp_locked: INP_WUNLOCK(inp); - IFF_UNLOCKGIANT(ifp); return (error); } Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netinet6/in6.c Sun Mar 15 14:21:05 2009 (r189851) @@ -1516,9 +1516,7 @@ in6_ifinit(struct ifnet *ifp, struct in6 ia->ia_addr = *sin6; if (ifacount <= 1 && ifp->if_ioctl) { - IFF_LOCKGIANT(ifp); error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia); - IFF_UNLOCKGIANT(ifp); if (error) { splx(s); return (error); Modified: head/sys/netinet6/in6_ifattach.c ============================================================================== --- head/sys/netinet6/in6_ifattach.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netinet6/in6_ifattach.c Sun Mar 15 14:21:05 2009 (r189851) @@ -906,10 +906,8 @@ in6_purgemaddrs(struct ifnet *ifp) struct in6_multi *in6m; struct in6_multi *oin6m; - IFF_LOCKGIANT(ifp); LIST_FOREACH_SAFE(in6m, &in6_multihead, in6m_entry, oin6m) { if (in6m->in6m_ifp == ifp) in6_delmulti(in6m); } - IFF_UNLOCKGIANT(ifp); } Modified: head/sys/netinet6/mld6.c ============================================================================== --- head/sys/netinet6/mld6.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netinet6/mld6.c Sun Mar 15 14:21:05 2009 (r189851) @@ -550,7 +550,6 @@ in6_addmulti(struct in6_addr *maddr6, st *errorp = 0; in6m = NULL; - IFF_LOCKGIANT(ifp); /*IN6_MULTI_LOCK();*/ IN6_LOOKUP_MULTI(*maddr6, ifp, in6m); @@ -622,7 +621,6 @@ in6_addmulti(struct in6_addr *maddr6, st } while (0); /*IN6_MULTI_UNLOCK();*/ - IFF_UNLOCKGIANT(ifp); return (in6m); } Modified: head/sys/netnatm/natm.c ============================================================================== --- head/sys/netnatm/natm.c Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/netnatm/natm.c Sun Mar 15 14:21:05 2009 (r189851) @@ -221,13 +221,9 @@ natm_usr_connect(struct socket *so, stru op.param.traffic = ATMIO_TRAFFIC_UBR; NATM_UNLOCK(); - IFF_LOCKGIANT(ifp); if (ifp->if_ioctl == NULL || - ifp->if_ioctl(ifp, SIOCATMOPENVCC, (caddr_t)&op) != 0) { - IFF_UNLOCKGIANT(ifp); + ifp->if_ioctl(ifp, SIOCATMOPENVCC, (caddr_t)&op) != 0) return (EIO); - } - IFF_UNLOCKGIANT(ifp); soisconnected(so); return (error); } @@ -259,11 +255,8 @@ natm_usr_disconnect(struct socket *so) cl.vpi = npcb->npcb_vpi; cl.vci = npcb->npcb_vci; NATM_UNLOCK(); - if (ifp->if_ioctl != NULL) { - IFF_LOCKGIANT(ifp); + if (ifp->if_ioctl != NULL) ifp->if_ioctl(ifp, SIOCATMCLOSEVCC, (caddr_t)&cl); - IFF_UNLOCKGIANT(ifp); - } soisdisconnected(so); return (error); } @@ -342,17 +335,13 @@ natm_usr_control(struct socket *so, u_lo struct ifnet *ifp, d_thread_t *p) { struct natmpcb *npcb; - int error; npcb = (struct natmpcb *)so->so_pcb; KASSERT(npcb != NULL, ("natm_usr_control: npcb == NULL")); if (ifp == NULL || ifp->if_ioctl == NULL) return (EOPNOTSUPP); - IFF_LOCKGIANT(ifp); - error = ((*ifp->if_ioctl)(ifp, cmd, arg)); - IFF_UNLOCKGIANT(ifp); - return (error); + return ((*ifp->if_ioctl)(ifp, cmd, arg)); } static void Modified: head/sys/pc98/conf/NOTES ============================================================================== --- head/sys/pc98/conf/NOTES Sun Mar 15 13:14:06 2009 (r189850) +++ head/sys/pc98/conf/NOTES Sun Mar 15 14:21:05 2009 (r189851) @@ -372,8 +372,6 @@ hint.mse.0.irq="13" # Network interfaces: # -# ar: Arnet SYNC/570i hdlc sync 2/4 port V.35/X.21 serial driver -# (requires sppp) # ce: Cronyx Tau-PCI/32 sync single/dual port G.703/E1 serial adaptor # with 32 HDLC subchannels (requires sppp (default), or NETGRAPH if # NETGRAPH_CRONYX is configured) @@ -391,13 +389,11 @@ hint.mse.0.irq="13" # ral: Ralink Technology IEEE 802.11 wireless adapter # sbni: Granch SBNI12-xx ISA and PCI adapters # snc: National Semiconductor DP8393X SONIC Ethernet adapter driver -# sr: RISCom/N2 hdlc sync 1/2 port V.35/X.21 serial driver (requires sppp) # ural: Ralink Technology RT2500USB IEEE 802.11 wireless adapter # ath: Atheros a/b/g WiFi adapters (requires ath_hal and wlan) # Order for ISA/EISA devices is important here -device ar device ce device cp device cs @@ -427,7 +423,6 @@ hint.snc.0.at="isa" hint.snc.0.port="0x888" hint.snc.0.irq="6" hint.snc.0.maddr="0xc0000" -device sr device ural device ath # Atheros pci/cardbus NIC's From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 15:03:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C141B106564A; Sun, 15 Mar 2009 15:03:22 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id 6DF168FC16; Sun, 15 Mar 2009 15:03:22 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 5BF546E52E; Sun, 15 Mar 2009 18:03:20 +0300 (MSK) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.static.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1680073419; Sun, 15 Mar 2009 18:03:20 +0300 Received: from dchagin.static.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.static.corbina.ru (8.14.3/8.14.3) with ESMTP id n2FF3JBs044084; Sun, 15 Mar 2009 18:03:19 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.ru) Received: (from dchagin@localhost) by dchagin.static.corbina.ru (8.14.3/8.14.3/Submit) id n2FF3ENT044083; Sun, 15 Mar 2009 18:03:14 +0300 (MSK) (envelope-from dchagin) Date: Sun, 15 Mar 2009 18:03:14 +0300 From: Chagin Dmitry To: Rui Paulo Message-ID: <20090315150314.GA44065@dchagin.static.corbina.ru> References: <200903131630.n2DGUXGx067777@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="x+6KMIRAuhnl3hBn" Content-Disposition: inline In-Reply-To: <200903131630.n2DGUXGx067777@svn.freebsd.org> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189770 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 15:03:23 -0000 --x+6KMIRAuhnl3hBn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Mar 13, 2009 at 04:30:33PM +0000, Rui Paulo wrote: > Author: rpaulo > Date: Fri Mar 13 16:30:33 2009 > New Revision: 189770 > URL: http://svn.freebsd.org/changeset/base/189770 >=20 > Log: > Mention k8temp -> amdtemp rename. > =20 > MFC after: 2 weeks >=20 > Modified: > head/UPDATING >=20 hi Rui, please, unbreak LINT also :) patch bellow: Index: sys/boot/forth/loader.conf =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/boot/forth/loader.conf (revision 189852) +++ sys/boot/forth/loader.conf (working copy) @@ -402,7 +402,7 @@ accf_http_load=3D"NO" # Wait for full HTTP request random_load=3D"NO" # Random device speaker_load=3D"NO" # AT speaker module coretemp_load=3D"NO" # Intel Core CPU temperature monitor -k8temp_load=3D"NO" # AMD K8 temperature monitor +amdtemp_load=3D"NO" # AMD K8 temperature monitor =20 ############################################################## ### ACPI settings ########################################## Index: sys/amd64/conf/NOTES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- sys/amd64/conf/NOTES (revision 189852) +++ sys/amd64/conf/NOTES (working copy) @@ -400,10 +400,10 @@ device ichwd # Temperature sensors: # # coretemp: on-die sensor on Intel Core and newer CPUs -# k8temp: on-die sensor on AMD K8 CPUs +# amdtemp: on-die sensor on AMD K8 CPUs # device coretemp -device k8temp +device amdtemp =20 # # CPU control pseudo-device. Provides access to MSRs, CPUID info and --=20 Have fun! chd --x+6KMIRAuhnl3hBn Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEARECAAYFAkm9GLEACgkQ0t2Tb3OO/O3WygCfRRx+ceFKmGhYCygyHAIoQUpb 5RwAnjD/UjkTLQGXd4UzrAHvRO/nnGEb =yXe6 -----END PGP SIGNATURE----- --x+6KMIRAuhnl3hBn-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 15:07:42 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B23F106564A; Sun, 15 Mar 2009 15:07:42 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:7b8:613:100::211]) by mx1.freebsd.org (Postfix) with ESMTP id 061DF8FC15; Sun, 15 Mar 2009 15:07:41 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id C3ABD1CE0B; Sun, 15 Mar 2009 16:07:40 +0100 (CET) Date: Sun, 15 Mar 2009 16:07:40 +0100 From: Ed Schouten To: Gabor Kovesdan Message-ID: <20090315150740.GZ31961@hoeg.nl> References: <200903151314.n2FDE6Zx029988@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TcuvTDpCAASXpu1W" Content-Disposition: inline In-Reply-To: <200903151314.n2FDE6Zx029988@svn.freebsd.org> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189850 - in head: . lib/libc/nls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 15:07:42 -0000 --TcuvTDpCAASXpu1W Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Gabor Kovesdan wrote: > - Create the buildworld object directories with mtree instead of various > mkdir calls > - Remove the ugly workaroung from libc NLS, which was to create some of > these directories Thank you! I actually needed something similar for my FreeBSD+Clang patchset. ;-) --=20 Ed Schouten WWW: http://80386.nl/ --TcuvTDpCAASXpu1W Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAkm9GbwACgkQ52SDGA2eCwWb+wCdHTElEdq0MupdAXpaIkgpGfSS LZgAn1J4RFGxGTU/1+v3S2JUyrqDGqBZ =yMtk -----END PGP SIGNATURE----- --TcuvTDpCAASXpu1W-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 15:18:11 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 695D1106566C; Sun, 15 Mar 2009 15:18:11 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from redbull.bpaserver.net (redbullneu.bpaserver.net [213.198.78.217]) by mx1.freebsd.org (Postfix) with ESMTP id 1EB2F8FC0A; Sun, 15 Mar 2009 15:18:10 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from outgoing.leidinger.net (pD9E2C9D9.dip.t-dialin.net [217.226.201.217]) by redbull.bpaserver.net (Postfix) with ESMTP id 01BD62E0AA; Sun, 15 Mar 2009 16:18:06 +0100 (CET) Received: from unknown (IO.Leidinger.net [192.168.2.103]) by outgoing.leidinger.net (Postfix) with ESMTP id AA823C29AC; Sun, 15 Mar 2009 16:18:02 +0100 (CET) Date: Sun, 15 Mar 2009 16:18:02 +0100 From: Alexander Leidinger To: Dmitry Chagin Message-ID: <20090315161802.000034d2@unknown> In-Reply-To: <200903131640.n2DGep8f068001@svn.freebsd.org> References: <200903131640.n2DGep8f068001@svn.freebsd.org> X-Mailer: Claws Mail 3.7.1 (GTK+ 2.10.13; i586-pc-mingw32msvc) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BPAnet-MailScanner-Information: Please contact the ISP for more information X-MailScanner-ID: 01BD62E0AA.069E4 X-BPAnet-MailScanner: Found to be clean X-BPAnet-MailScanner-SpamCheck: not spam, ORDB-RBL, SpamAssassin (not cached, score=-14.823, required 6, BAYES_00 -15.00, RDNS_DYNAMIC 0.10, TW_SV 0.08) X-BPAnet-MailScanner-From: alexander@leidinger.net X-Spam-Status: No Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189771 - in head/sys: amd64/amd64 amd64/linux32 arm/arm compat/ia32 compat/svr4 i386/i386 i386/linux ia64/ia64 kern mips/mips powerpc/powerpc sparc64/sparc64 sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 15:18:11 -0000 On Fri, 13 Mar 2009 16:40:51 +0000 (UTC) Dmitry Chagin wrote: > New Revision: 189771 > Log: > Implement new way of branding ELF binaries by looking to a > ".note.ABI-tag" section. Does this mean we do not need brandelf for the linuxulator anymore (do static linux programs contain this field with a correct value)? If yes: - Please document it least in the doc repository in "en_US.ISO8859-1/books/porters-handbook/book.sgml" (version 800071 should be close enough, so just adding a little note there is enough). This way we can take this into account for the linux stuff in the ports collection. - I don't know if this should be mentioned in the brandelf man-page too in this case. At least the evaluation order should be mentioned there, I think. Bye, Alexander. From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 15:51:11 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB4A1106566C; Sun, 15 Mar 2009 15:51:11 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id C5DD18FC0A; Sun, 15 Mar 2009 15:51:11 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 6E52146B0D; Sun, 15 Mar 2009 11:51:11 -0400 (EDT) Date: Sun, 15 Mar 2009 15:51:11 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org In-Reply-To: <200903151421.n2FEL5Ra031289@svn.freebsd.org> Message-ID: References: <200903151421.n2FEL5Ra031289@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: Re: svn commit: r189851 - in head/sys: conf i386/conf kern modules modules/netgraph net netinet netinet6 netnatm pc98/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 15:51:12 -0000 On Sun, 15 Mar 2009, Robert Watson wrote: > Remove IFF_NEEDSGIANT, a compatibility infrastructure introduced > in FreeBSD 5.x to allow network device drivers to run with Giant > despite the network stack being Giant-free. This significantly > simplifies calls into ioctl() on network interfaces, especially > in the multicast code, as well as eliminates deferred invocation > of interface if_start routines. > > Disable the build on device drivers still depending on > IFF_NEEDSGIANT as they no longer compile. They will be removed > in a few weeks if they haven't been made MPSAFE in that time. > Disabled drivers: > > if_ar > if_axe > if_aue > if_cdce > if_cue > if_kue > if_ray > if_rue > if_rum > if_sr > if_udav > if_ural > if_zyd > > Drivers that were already disabled because of tty changes: > > if_ppp > if_sl On or around 1 April, I will remove these drivers from the repository if they haven't been updated. Most of the above drivers have already been replaced by the usb2 drivers of similar names. The only real exceptions are if_ar and if_sr, which currently don't have MPSAFE variants but were still being compiled. Robert N M Watson Computer Laboratory University of Cambridge From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 15:57:42 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D4A88106571D; Sun, 15 Mar 2009 15:57:42 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (ZIM.MIT.EDU [18.95.3.101]) by mx1.freebsd.org (Postfix) with ESMTP id 8FB978FC15; Sun, 15 Mar 2009 15:57:42 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (localhost [127.0.0.1]) by zim.MIT.EDU (8.14.3/8.14.2) with ESMTP id n2FFwFfZ056834; Sun, 15 Mar 2009 11:58:15 -0400 (EDT) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by zim.MIT.EDU (8.14.3/8.14.2/Submit) id n2FFwF7B056833; Sun, 15 Mar 2009 11:58:15 -0400 (EDT) (envelope-from das@FreeBSD.ORG) Date: Sun, 15 Mar 2009 11:58:14 -0400 From: David Schultz To: Roman Divacky Message-ID: <20090315155814.GA56735@zim.MIT.EDU> Mail-Followup-To: Roman Divacky , src-committers@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, svn-src-head@FreeBSD.ORG References: <200903141936.n2EJaDM5006130@svn.freebsd.org> <20090315081240.GB39715@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090315081240.GB39715@freebsd.org> Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG Subject: Re: svn commit: r189824 - in head/contrib/gcc: . doc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 15:57:43 -0000 On Sun, Mar 15, 2009, Roman Divacky wrote: > On Sat, Mar 14, 2009 at 07:36:13PM +0000, David Schultz wrote: > > Author: das > > Date: Sat Mar 14 19:36:13 2009 > > New Revision: 189824 > > URL: http://svn.freebsd.org/changeset/base/189824 > > > > Log: > > Make gcc use C99 inline semantics in c99 and gnu99 mode. This was the > > original intent, but the functionality wasn't implemented until after > > gcc 4.2 was released. However, if you compiled a program that would > > behave differently before and after this change, gcc 4.2 would have > > warned you; hence, everything currently in the base system is > > unaffected by this change. This patch also adds additional warnings > > about certain inline function-related bogosity, e.g., using a > > static non-const local variable in an inline function. > > > > These changes were merged from a snapshot of gcc mainline from March > > 2007, prior to the GPLv3 switch. I then ran the regression test suite > > from a more recent gcc snapshot and fixed the important bugs it found. > > I also squelched the following warning unless -pedantic is specified: > > > > foo is static but used in inline function bar which is not static > > > > This is consistent with LLVM's behavior, but not consistent with gcc 4.3. > > thnx a lot for doing this! just a quick question - what is the fallback > strategy for ports that will die on this? It depends, but the compiler option -fgnu89-inline (supported in gcc 4.2+) should do the trick. From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 16:10:25 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD32D1065670; Sun, 15 Mar 2009 16:10:25 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BB6728FC0A; Sun, 15 Mar 2009 16:10:25 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FGAP9Z033489; Sun, 15 Mar 2009 16:10:25 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FGAPvL033488; Sun, 15 Mar 2009 16:10:25 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903151610.n2FGAPvL033488@svn.freebsd.org> From: Robert Watson Date: Sun, 15 Mar 2009 16:10:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189853 - head/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 16:10:26 -0000 Author: rwatson Date: Sun Mar 15 16:10:25 2009 New Revision: 189853 URL: http://svn.freebsd.org/changeset/base/189853 Log: Bump __FreeBSD_version for the removal of IFF_NEEDSGIANT; network device drivers that require Giant to be held over calls to the ifnet interface are no longer supported in the FreeBSD 8.x kernel. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Sun Mar 15 14:25:03 2009 (r189852) +++ head/sys/sys/param.h Sun Mar 15 16:10:25 2009 (r189853) @@ -57,7 +57,7 @@ * is created, otherwise 1. */ #undef __FreeBSD_version -#define __FreeBSD_version 800071 /* Master, propagated to newvers */ +#define __FreeBSD_version 800072 /* Master, propagated to newvers */ #ifndef LOCORE #include From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 16:12:50 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DBAB106566B; Sun, 15 Mar 2009 16:12:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4C4798FC0A; Sun, 15 Mar 2009 16:12:50 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FGCo0D033579; Sun, 15 Mar 2009 16:12:50 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FGConX033578; Sun, 15 Mar 2009 16:12:50 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903151612.n2FGConX033578@svn.freebsd.org> From: Robert Watson Date: Sun, 15 Mar 2009 16:12:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189854 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 16:12:50 -0000 Author: rwatson Date: Sun Mar 15 16:12:50 2009 New Revision: 189854 URL: http://svn.freebsd.org/changeset/base/189854 Log: Mention specifically in UPDATING that non-MPSAFE device drivers are no longer supported. Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Sun Mar 15 16:10:25 2009 (r189853) +++ head/UPDATING Sun Mar 15 16:12:50 2009 (r189854) @@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090315: + Support for the IFF_NEEDSGIANT network interface flag has been + removed, which means that non-MPSAFE network device drivers are no + longer supported. In particular, if_ar, if_sr, and network device + drivers from the old (legacy) USB stack can no longer be built or + used. + 20090313: POSIX.1 Native Language Support (NLS) has been enabled in libc and a bunch of new language catalog files have also been added. From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:02:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C57CB106564A; Sun, 15 Mar 2009 17:02:51 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id 6FA2C8FC08; Sun, 15 Mar 2009 17:02:51 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 609F26ED7F; Sun, 15 Mar 2009 20:02:44 +0300 (MSK) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.static.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1680208058; Sun, 15 Mar 2009 20:02:44 +0300 Received: from dchagin.static.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.static.corbina.ru (8.14.3/8.14.3) with ESMTP id n2FH2h4c002861; Sun, 15 Mar 2009 20:02:43 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.ru) Received: (from dchagin@localhost) by dchagin.static.corbina.ru (8.14.3/8.14.3/Submit) id n2FH2ccV002860; Sun, 15 Mar 2009 20:02:38 +0300 (MSK) (envelope-from dchagin) Date: Sun, 15 Mar 2009 20:02:38 +0300 From: Chagin Dmitry To: Alexander Leidinger Message-ID: <20090315170238.GA2593@dchagin.static.corbina.ru> References: <200903131640.n2DGep8f068001@svn.freebsd.org> <20090315161802.000034d2@unknown> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="gBBFr7Ir9EOA20Yy" Content-Disposition: inline In-Reply-To: <20090315161802.000034d2@unknown> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189771 - in head/sys: amd64/amd64 amd64/linux32 arm/arm compat/ia32 compat/svr4 i386/i386 i386/linux ia64/ia64 kern mips/mips powerpc/powerpc sparc64/sparc64 sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:02:52 -0000 --gBBFr7Ir9EOA20Yy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Mar 15, 2009 at 04:18:02PM +0100, Alexander Leidinger wrote: > On Fri, 13 Mar 2009 16:40:51 +0000 (UTC) Dmitry Chagin > wrote: >=20 > > New Revision: 189771 >=20 > > Log: > > Implement new way of branding ELF binaries by looking to a > > ".note.ABI-tag" section. >=20 > Does this mean we do not need brandelf for the linuxulator anymore > (do static linux programs contain this field with a correct value)? If > yes: > - Please document it least in the doc repository in > "en_US.ISO8859-1/books/porters-handbook/book.sgml" (version 800071 > should be close enough, so just adding a little note there is enough). > This way we can take this into account for the linux stuff in the ports > collection. > - I don't know if this should be mentioned in the brandelf man-page too > in this case. At least the evaluation order should be mentioned there, > I think. >=20 hi, dchagin# file /compat/linux/sbin/ldconfig /compat/linux/sbin/ldconfig: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.9, stripped dchagin# brandelf -f 0 /compat/linux/sbin/ldconfig dchagin# /compat/linux/sbin/ldconfig -V ldconfig (GNU libc) 2.7 Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Andreas Jaeger. dchagin# readelf -h /compat/linux/sbin/ldconfig | grep ABI OS/ABI: UNIX - System V ABI Version: 0 dchagin# so it works for statically linked binaries also. Unfortunately, I not the best person for a documentation writing... Therefore I will make it a bit later :) --=20 Have fun! chd --gBBFr7Ir9EOA20Yy Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEARECAAYFAkm9NKgACgkQ0t2Tb3OO/O3DfQCbBsP7li6SvK2lYyv82j2aj4ix MCMAoI+4cexrvNZDtiUf/6+tvNLdgX8x =YDqN -----END PGP SIGNATURE----- --gBBFr7Ir9EOA20Yy-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:20:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE33A10656CC; Sun, 15 Mar 2009 17:20:28 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D5BC38FC19; Sun, 15 Mar 2009 17:20:28 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHKSob034889; Sun, 15 Mar 2009 17:20:28 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHKS1C034884; Sun, 15 Mar 2009 17:20:28 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151720.n2FHKS1C034884@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:20:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189855 - in stable/7/sys: . conf contrib/pf dev/ath/ath_hal dev/cxgb dev/drm modules/drm/radeon X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:20:30 -0000 Author: rnoland Date: Sun Mar 15 17:20:28 2009 New Revision: 189855 URL: http://svn.freebsd.org/changeset/base/189855 Log: Merge 189499,189557,189558 This is the radeon r600+ code with fixes. A few days early, but it seems to fix some other vblank related issues as well. 189499: Import support for ATI Radeon R600 and R700 series chips. Tested on an HD3850 (RV670) on loan from Warren Block. Currently, you need one of the following for this to be useful: x11-drivers/xf86-video-radeonhd-devel (not tested) xf86-video-ati from git (EXA works, xv is too fast) xf86-video-radeonhd from git (EXA works, xv works) There is no 3d support available from dri just yet. 189557: Call the right function for the right chipset. 189558: -Make the PCI(E)/AGP calculations consistent -Calculate the scratch address correctly Added: stable/7/sys/dev/drm/r600_cp.c - copied, changed from r189499, head/sys/dev/drm/r600_cp.c stable/7/sys/dev/drm/r600_microcode.h - copied unchanged from r189499, head/sys/dev/drm/r600_microcode.h Modified: stable/7/sys/ (props changed) stable/7/sys/conf/files stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drm_pciids.h stable/7/sys/dev/drm/radeon_cp.c stable/7/sys/dev/drm/radeon_drm.h stable/7/sys/dev/drm/radeon_drv.h stable/7/sys/dev/drm/radeon_irq.c stable/7/sys/dev/drm/radeon_state.c stable/7/sys/modules/drm/radeon/Makefile Modified: stable/7/sys/conf/files ============================================================================== --- stable/7/sys/conf/files Sun Mar 15 16:12:50 2009 (r189854) +++ stable/7/sys/conf/files Sun Mar 15 17:20:28 2009 (r189855) @@ -755,6 +755,7 @@ dev/drm/r128_irq.c optional r128drm dev/drm/r128_state.c optional r128drm \ compile-with "${NORMAL_C} -finline-limit=13500" dev/drm/r300_cmdbuf.c optional radeondrm +dev/drm/r600_cp.c optional radeondrm dev/drm/radeon_cp.c optional radeondrm dev/drm/radeon_drv.c optional radeondrm dev/drm/radeon_irq.c optional radeondrm Modified: stable/7/sys/dev/drm/drm_pciids.h ============================================================================== --- stable/7/sys/dev/drm/drm_pciids.h Sun Mar 15 16:12:50 2009 (r189854) +++ stable/7/sys/dev/drm/drm_pciids.h Sun Mar 15 17:20:28 2009 (r189855) @@ -240,12 +240,123 @@ {0x1002, 0x7297, CHIP_RV560|RADEON_NEW_MEMMAP, "ATI RV560"}, \ {0x1002, 0x7834, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP, "ATI Radeon RS350 9000/9100 IGP"}, \ {0x1002, 0x7835, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Radeon RS350 Mobility IGP"}, \ + {0x1002, 0x793f, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP, "ATI Radeon X1200"}, \ + {0x1002, 0x7941, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP, "ATI Radeon X1200"}, \ + {0x1002, 0x7942, CHIP_RS600|RADEON_IS_IGP|RADEON_NEW_MEMMAP, "ATI Radeon X1200"}, \ {0x1002, 0x791e, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS690 X1250 IGP"}, \ {0x1002, 0x791f, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS690 X1270 IGP"}, \ {0x1002, 0x796c, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS740 HD2100 IGP"}, \ {0x1002, 0x796d, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS740 HD2100 IGP"}, \ {0x1002, 0x796e, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS740 HD2100 IGP"}, \ {0x1002, 0x796f, CHIP_RS740|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART, "ATI Radeon RS740 HD2100 IGP"}, \ + {0x1002, 0x9400, CHIP_R600|RADEON_NEW_MEMMAP, "ATI Radeon HD 2900 XT"}, \ + {0x1002, 0x9401, CHIP_R600|RADEON_NEW_MEMMAP, "ATI Radeon HD 2900 XT"}, \ + {0x1002, 0x9402, CHIP_R600|RADEON_NEW_MEMMAP, "ATI Radeon HD 2900 XT"}, \ + {0x1002, 0x9403, CHIP_R600|RADEON_NEW_MEMMAP, "ATI Radeon HD 2900 Pro"}, \ + {0x1002, 0x9405, CHIP_R600|RADEON_NEW_MEMMAP, "ATI Radeon HD 2900 GT"}, \ + {0x1002, 0x940A, CHIP_R600|RADEON_NEW_MEMMAP, "ATI FireGL V8650"}, \ + {0x1002, 0x940B, CHIP_R600|RADEON_NEW_MEMMAP, "ATI FireGL V8600"}, \ + {0x1002, 0x940F, CHIP_R600|RADEON_NEW_MEMMAP, "ATI FireGL V7600"}, \ + {0x1002, 0x94C0, CHIP_RV610|RADEON_NEW_MEMMAP, "RV610"}, \ + {0x1002, 0x94C1, CHIP_RV610|RADEON_NEW_MEMMAP, "Radeon HD 2400 XT"}, \ + {0x1002, 0x94C3, CHIP_RV610|RADEON_NEW_MEMMAP, "Radeon HD 2400 Pro"}, \ + {0x1002, 0x94C4, CHIP_RV610|RADEON_NEW_MEMMAP, "Radeon HD 2400 PRO AGP"}, \ + {0x1002, 0x94C5, CHIP_RV610|RADEON_NEW_MEMMAP, "FireGL V4000"}, \ + {0x1002, 0x94C6, CHIP_RV610|RADEON_NEW_MEMMAP, "RV610"}, \ + {0x1002, 0x94C7, CHIP_RV610|RADEON_NEW_MEMMAP, "ATI Radeon HD 2350"}, \ + {0x1002, 0x94C8, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 2400 XT"}, \ + {0x1002, 0x94C9, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 2400"}, \ + {0x1002, 0x94CB, CHIP_RV610|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI RADEON E2400"}, \ + {0x1002, 0x94CC, CHIP_RV610|RADEON_NEW_MEMMAP, "ATI RV610"}, \ + {0x1002, 0x94CD, CHIP_RV610|RADEON_NEW_MEMMAP, "ATI FireMV 2260"}, \ + {0x1002, 0x9500, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI RV670"}, \ + {0x1002, 0x9501, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI Radeon HD3870"}, \ + {0x1002, 0x9504, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3850"}, \ + {0x1002, 0x9505, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI Radeon HD3850"}, \ + {0x1002, 0x9506, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3850 X2"}, \ + {0x1002, 0x9507, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI RV670"}, \ + {0x1002, 0x9508, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3870"}, \ + {0x1002, 0x9509, CHIP_RV670|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3870 X2"}, \ + {0x1002, 0x950F, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI Radeon HD3870 X2"}, \ + {0x1002, 0x9511, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI FireGL V7700"}, \ + {0x1002, 0x9515, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI Radeon HD3850"}, \ + {0x1002, 0x9517, CHIP_RV670|RADEON_NEW_MEMMAP, "ATI Radeon HD3690"}, \ + {0x1002, 0x9519, CHIP_RV670|RADEON_NEW_MEMMAP, "AMD Firestream 9170"}, \ + {0x1002, 0x9580, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI RV630"}, \ + {0x1002, 0x9581, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 2600"}, \ + {0x1002, 0x9583, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 2600 XT"}, \ + {0x1002, 0x9586, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Radeon HD 2600 XT AGP"}, \ + {0x1002, 0x9587, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Radeon HD 2600 Pro AGP"}, \ + {0x1002, 0x9588, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Radeon HD 2600 XT"}, \ + {0x1002, 0x9589, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Radeon HD 2600 Pro"}, \ + {0x1002, 0x958A, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Gemini RV630"}, \ + {0x1002, 0x958B, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Gemini Mobility Radeon HD 2600 XT"}, \ + {0x1002, 0x958C, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI FireGL V5600"}, \ + {0x1002, 0x958D, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI FireGL V3600"}, \ + {0x1002, 0x958E, CHIP_RV630|RADEON_NEW_MEMMAP, "ATI Radeon HD 2600 LE"}, \ + {0x1002, 0x958F, CHIP_RV630|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility FireGL Graphics Processor"}, \ + {0x1002, 0x95C0, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI Radeon HD 3470"}, \ + {0x1002, 0x95C5, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI Radeon HD 3450"}, \ + {0x1002, 0x95C6, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI Radeon HD 3450"}, \ + {0x1002, 0x95C7, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI Radeon HD 3430"}, \ + {0x1002, 0x95C9, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI Radeon HD 3450"}, \ + {0x1002, 0x95C2, CHIP_RV620|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3430"}, \ + {0x1002, 0x95C4, CHIP_RV620|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3400 Series"}, \ + {0x1002, 0x95CC, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI FirePro V3700"}, \ + {0x1002, 0x95CD, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI FireMV 2450"}, \ + {0x1002, 0x95CE, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI FireMV 2260"}, \ + {0x1002, 0x95CF, CHIP_RV620|RADEON_NEW_MEMMAP, "ATI FireMV 2260"}, \ + {0x1002, 0x9590, CHIP_RV635|RADEON_NEW_MEMMAP, "ATI ATI Radeon HD 3600 Series"}, \ + {0x1002, 0x9596, CHIP_RV635|RADEON_NEW_MEMMAP, "ATI ATI Radeon HD 3650 AGP"}, \ + {0x1002, 0x9597, CHIP_RV635|RADEON_NEW_MEMMAP, "ATI ATI Radeon HD 3600 PRO"}, \ + {0x1002, 0x9598, CHIP_RV635|RADEON_NEW_MEMMAP, "ATI ATI Radeon HD 3600 XT"}, \ + {0x1002, 0x9599, CHIP_RV635|RADEON_NEW_MEMMAP, "ATI ATI Radeon HD 3600 PRO"}, \ + {0x1002, 0x9591, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3650"}, \ + {0x1002, 0x9593, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 3670"}, \ + {0x1002, 0x9595, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility FireGL V5700"}, \ + {0x1002, 0x959B, CHIP_RV635|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility FireGL V5725"}, \ + {0x1002, 0x9610, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon HD 3200 Graphics"}, \ + {0x1002, 0x9611, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3100 Graphics"}, \ + {0x1002, 0x9612, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon HD 3200 Graphics"}, \ + {0x1002, 0x9613, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3100 Graphics"}, \ + {0x1002, 0x9614, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3300 Graphics"}, \ + {0x1002, 0x9440, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4800 Series"}, \ + {0x1002, 0x9441, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4870 X2"}, \ + {0x1002, 0x9442, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4800 Series"}, \ + {0x1002, 0x944C, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4800 Series"}, \ + {0x1002, 0x9450, CHIP_RV770|RADEON_NEW_MEMMAP, "AMD FireStream 9270"}, \ + {0x1002, 0x9452, CHIP_RV770|RADEON_NEW_MEMMAP, "AMD FireStream 9250"}, \ + {0x1002, 0x9444, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI FirePro V8750 (FireGL)"}, \ + {0x1002, 0x9446, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI FirePro V7760 (FireGL)"}, \ + {0x1002, 0x9456, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI FirePro V8700 (FireGL)"}, \ + {0x1002, 0x944E, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI FirePro RV770"}, \ + {0x1002, 0x944A, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 4850"}, \ + {0x1002, 0x944B, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 4850 X2"}, \ + {0x1002, 0x945A, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 4870"}, \ + {0x1002, 0x945B, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon M98"}, \ + {0x1002, 0x946A, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI FirePro M7750"}, \ + {0x1002, 0x946B, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI M98"}, \ + {0x1002, 0x947A, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI M98"}, \ + {0x1002, 0x947B, CHIP_RV770|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI M98"}, \ + {0x1002, 0x9487, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI Radeon RV730 (AGP)"}, \ + {0x1002, 0x948F, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI Radeon RV730 (AGP)"}, \ + {0x1002, 0x9490, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI Radeon HD 4670"}, \ + {0x1002, 0x9498, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI Radeon HD 4650"}, \ + {0x1002, 0x9480, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 4650"}, \ + {0x1002, 0x9488, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon HD 4670"}, \ + {0x1002, 0x9489, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI FirePro M5750"}, \ + {0x1002, 0x9491, CHIP_RV730|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI RADEON E4600"}, \ + {0x1002, 0x949C, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI FirePro V7750 (FireGL)"}, \ + {0x1002, 0x949E, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI FirePro V5700 (FireGL)"}, \ + {0x1002, 0x949F, CHIP_RV730|RADEON_NEW_MEMMAP, "ATI FirePro V3750 (FireGL)"}, \ + {0x1002, 0x9540, CHIP_RV710|RADEON_NEW_MEMMAP, "ATI Radeon HD 4550"}, \ + {0x1002, 0x9541, CHIP_RV710|RADEON_NEW_MEMMAP, "ATI Radeon RV710"}, \ + {0x1002, 0x9542, CHIP_RV710|RADEON_NEW_MEMMAP, "ATI Radeon RV710"}, \ + {0x1002, 0x954E, CHIP_RV710|RADEON_NEW_MEMMAP, "ATI Radeon RV710"}, \ + {0x1002, 0x954F, CHIP_RV710|RADEON_NEW_MEMMAP, "ATI Radeon HD 4350"}, \ + {0x1002, 0x9552, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon 4300 Series"}, \ + {0x1002, 0x9553, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon 4500 Series"}, \ + {0x1002, 0x9555, CHIP_RV710|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP, "ATI Mobility Radeon 4500 Series"}, \ {0, 0, 0, NULL} #define r128_PCI_IDS \ Copied and modified: stable/7/sys/dev/drm/r600_cp.c (from r189499, head/sys/dev/drm/r600_cp.c) ============================================================================== --- head/sys/dev/drm/r600_cp.c Sat Mar 7 21:36:57 2009 (r189499, copy source) +++ stable/7/sys/dev/drm/r600_cp.c Sun Mar 15 17:20:28 2009 (r189855) @@ -1633,6 +1633,7 @@ static void r600_cp_init_ring_buffer(str struct drm_file *file_priv) { u32 ring_start; + u64 rptr_addr; if (((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV770)) r700_gfx_init(dev, dev_priv); @@ -1687,27 +1688,20 @@ static void r600_cp_init_ring_buffer(str #if __OS_HAS_AGP if (dev_priv->flags & RADEON_IS_AGP) { - /* XXX */ - RADEON_WRITE(R600_CP_RB_RPTR_ADDR, - (dev_priv->ring_rptr->offset - - dev->agp->base + dev_priv->gart_vm_start) >> 8); - RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI, 0); + rptr_addr = dev_priv->ring_rptr->offset + - dev->agp->base + + dev_priv->gart_vm_start; } else #endif { - struct drm_sg_mem *entry = dev->sg; - unsigned long tmp_ofs, page_ofs; - - tmp_ofs = dev_priv->ring_rptr->offset - - (unsigned long)dev->sg->virtual; - page_ofs = tmp_ofs >> PAGE_SHIFT; - - RADEON_WRITE(R600_CP_RB_RPTR_ADDR, entry->busaddr[page_ofs] >> 8); - RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI, 0); - DRM_DEBUG("ring rptr: offset=0x%08lx handle=0x%08lx\n", - (unsigned long)entry->busaddr[page_ofs], - entry->handle + tmp_ofs); - } + rptr_addr = dev_priv->ring_rptr->offset + - ((unsigned long) dev->sg->virtual) + + dev_priv->gart_vm_start; + } + RADEON_WRITE(R600_CP_RB_RPTR_ADDR, + rptr_addr & 0xffffffff); + RADEON_WRITE(R600_CP_RB_RPTR_ADDR_HI, + upper_32_bits(rptr_addr)); #ifdef __BIG_ENDIAN RADEON_WRITE(R600_CP_RB_CNTL, @@ -1756,8 +1750,17 @@ static void r600_cp_init_ring_buffer(str * We simply put this behind the ring read pointer, this works * with PCI GART as well as (whatever kind of) AGP GART */ - RADEON_WRITE(R600_SCRATCH_ADDR, ((RADEON_READ(R600_CP_RB_RPTR_ADDR) << 8) - + R600_SCRATCH_REG_OFFSET) >> 8); + { + u64 scratch_addr; + + scratch_addr = RADEON_READ(R600_CP_RB_RPTR_ADDR); + scratch_addr |= ((u64)RADEON_READ(R600_CP_RB_RPTR_ADDR_HI)) << 32; + scratch_addr += R600_SCRATCH_REG_OFFSET; + scratch_addr >>= 8; + scratch_addr &= 0xffffffff; + + RADEON_WRITE(R600_SCRATCH_ADDR, (uint32_t)scratch_addr); + } RADEON_WRITE(R600_SCRATCH_UMSK, 0x7); Copied: stable/7/sys/dev/drm/r600_microcode.h (from r189499, head/sys/dev/drm/r600_microcode.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/sys/dev/drm/r600_microcode.h Sun Mar 15 17:20:28 2009 (r189855, copy of r189499, head/sys/dev/drm/r600_microcode.h) @@ -0,0 +1,23295 @@ +/*- + * Copyright 2007 Advanced Micro Devices, Inc. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +static const int ME_JUMP_TABLE_START = 1764; +static const int ME_JUMP_TABLE_END = 1792; + +#define PFP_UCODE_SIZE 576 +#define PM4_UCODE_SIZE 1792 +#define R700_PFP_UCODE_SIZE 848 +#define R700_PM4_UCODE_SIZE 1360 + +static const u32 R600_cp_microcode[][3]={ + { 0x00000000, 0xc0200400, 0x000 }, + { 0x00000000, 0x00a0000a, 0x000 }, + { 0x0000ffff, 0x00284621, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0xc0200400, 0x000 }, + { 0x00000000, 0x00a0000a, 0x000 }, + { 0x00000000, 0x00e00000, 0x000 }, + { 0x00010000, 0xc0294620, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0xc0200400, 0x000 }, + { 0x00000000, 0x00a0000a, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00042004, 0x00604411, 0x614 }, + { 0x00000000, 0x00600000, 0x5b2 }, + { 0x00000000, 0x00600000, 0x5c5 }, + { 0x00000000, 0xc0200800, 0x000 }, + { 0x00000f00, 0x00281622, 0x000 }, + { 0x00000008, 0x00211625, 0x000 }, + { 0x00000020, 0x00203625, 0x000 }, + { 0x8d000000, 0x00204411, 0x000 }, + { 0x00000004, 0x002f0225, 0x000 }, + { 0x00000000, 0x0ce00000, 0x018 }, + { 0x00412000, 0x00404811, 0x019 }, + { 0x00422000, 0x00204811, 0x000 }, + { 0x8e000000, 0x00204411, 0x000 }, + { 0x00000031, 0x00204a2d, 0x000 }, + { 0x90000000, 0x00204411, 0x000 }, + { 0x00000000, 0x00204805, 0x000 }, + { 0x0000000c, 0x00211622, 0x000 }, + { 0x00000003, 0x00281625, 0x000 }, + { 0x00000019, 0x00211a22, 0x000 }, + { 0x00000004, 0x00281a26, 0x000 }, + { 0x00000000, 0x002914c5, 0x000 }, + { 0x00000021, 0x00203625, 0x000 }, + { 0x00000000, 0x003a1402, 0x000 }, + { 0x00000016, 0x00211625, 0x000 }, + { 0x00000003, 0x00281625, 0x000 }, + { 0x0000001d, 0x00200e2d, 0x000 }, + { 0xfffffffc, 0x00280e23, 0x000 }, + { 0x00000000, 0x002914a3, 0x000 }, + { 0x0000001d, 0x00203625, 0x000 }, + { 0x00008000, 0x00280e22, 0x000 }, + { 0x00000007, 0x00220e23, 0x000 }, + { 0x00000000, 0x0029386e, 0x000 }, + { 0x20000000, 0x00280e22, 0x000 }, + { 0x00000006, 0x00210e23, 0x000 }, + { 0x00000000, 0x0029386e, 0x000 }, + { 0x00000000, 0x00220222, 0x000 }, + { 0x00000000, 0x14e00000, 0x038 }, + { 0x00000000, 0x2ee00000, 0x035 }, + { 0x00000000, 0x2ce00000, 0x037 }, + { 0x00000000, 0x00400e2d, 0x039 }, + { 0x00000008, 0x00200e2d, 0x000 }, + { 0x00000009, 0x0040122d, 0x046 }, + { 0x00000001, 0x00400e2d, 0x039 }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x003ffffc, 0x00281223, 0x000 }, + { 0x00000002, 0x00221224, 0x000 }, + { 0x0000001f, 0x00211e23, 0x000 }, + { 0x00000000, 0x14e00000, 0x03e }, + { 0x00000008, 0x00401c11, 0x041 }, + { 0x0000000d, 0x00201e2d, 0x000 }, + { 0x0000000f, 0x00281e27, 0x000 }, + { 0x00000003, 0x00221e27, 0x000 }, + { 0x7fc00000, 0x00281a23, 0x000 }, + { 0x00000014, 0x00211a26, 0x000 }, + { 0x00000001, 0x00331a26, 0x000 }, + { 0x00000008, 0x00221a26, 0x000 }, + { 0x00000000, 0x00290cc7, 0x000 }, + { 0x00000030, 0x00203624, 0x000 }, + { 0x00007f00, 0x00281221, 0x000 }, + { 0x00001400, 0x002f0224, 0x000 }, + { 0x00000000, 0x0ce00000, 0x04b }, + { 0x00000001, 0x00290e23, 0x000 }, + { 0x00000010, 0x00203623, 0x000 }, + { 0x0000e000, 0x00204411, 0x000 }, + { 0xfff80000, 0x00294a23, 0x000 }, + { 0x00000000, 0x003a2c02, 0x000 }, + { 0x00000002, 0x00220e2b, 0x000 }, + { 0xfc000000, 0x00280e23, 0x000 }, + { 0x00000011, 0x00203623, 0x000 }, + { 0x00001fff, 0x00294a23, 0x000 }, + { 0x00000030, 0x00204a2d, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000032, 0x00200e2d, 0x000 }, + { 0x060a0200, 0x00294a23, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000001, 0x00210222, 0x000 }, + { 0x00000000, 0x14e00000, 0x061 }, + { 0x00000000, 0x2ee00000, 0x05f }, + { 0x00000000, 0x2ce00000, 0x05e }, + { 0x00000000, 0x00400e2d, 0x062 }, + { 0x00000001, 0x00400e2d, 0x062 }, + { 0x0000000a, 0x00200e2d, 0x000 }, + { 0x0000000b, 0x0040122d, 0x06a }, + { 0x00000000, 0xc0200c00, 0x000 }, + { 0x003ffffc, 0x00281223, 0x000 }, + { 0x00000002, 0x00221224, 0x000 }, + { 0x7fc00000, 0x00281623, 0x000 }, + { 0x00000014, 0x00211625, 0x000 }, + { 0x00000001, 0x00331625, 0x000 }, + { 0x80000000, 0x00280e23, 0x000 }, + { 0x00000000, 0x00290ca3, 0x000 }, + { 0x3ffffc00, 0x00290e23, 0x000 }, + { 0x0000001f, 0x00211e23, 0x000 }, + { 0x00000000, 0x14e00000, 0x06d }, + { 0x00000100, 0x00401c11, 0x070 }, + { 0x0000000d, 0x00201e2d, 0x000 }, + { 0x000000f0, 0x00281e27, 0x000 }, + { 0x00000004, 0x00221e27, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x0000000d, 0x00204811, 0x000 }, + { 0xfffff0ff, 0x00281a30, 0x000 }, + { 0x0000a028, 0x00204411, 0x000 }, + { 0x00000000, 0x002948e6, 0x000 }, + { 0x0000a018, 0x00204411, 0x000 }, + { 0x3fffffff, 0x00284a23, 0x000 }, + { 0x0000a010, 0x00204411, 0x000 }, + { 0x00000000, 0x00204804, 0x000 }, + { 0x0000002d, 0x0020162d, 0x000 }, + { 0x00000000, 0x002f00a3, 0x000 }, + { 0x00000000, 0x0cc00000, 0x080 }, + { 0x0000002e, 0x0020162d, 0x000 }, + { 0x00000000, 0x002f00a4, 0x000 }, + { 0x00000000, 0x0cc00000, 0x081 }, + { 0x00000000, 0x00400000, 0x087 }, + { 0x0000002d, 0x00203623, 0x000 }, + { 0x0000002e, 0x00203624, 0x000 }, + { 0x0000001d, 0x00201e2d, 0x000 }, + { 0x00000002, 0x00210227, 0x000 }, + { 0x00000000, 0x14e00000, 0x087 }, + { 0x00000000, 0x00600000, 0x5ed }, + { 0x00000000, 0x00600000, 0x5e1 }, + { 0x00000002, 0x00210e22, 0x000 }, + { 0x00000000, 0x14c00000, 0x08a }, + { 0x00000018, 0xc0403620, 0x090 }, + { 0x00000000, 0x2ee00000, 0x08e }, + { 0x00000000, 0x2ce00000, 0x08d }, + { 0x00000002, 0x00400e2d, 0x08f }, + { 0x00000003, 0x00400e2d, 0x08f }, + { 0x0000000c, 0x00200e2d, 0x000 }, + { 0x00000018, 0x00203623, 0x000 }, + { 0x00000003, 0x00210e22, 0x000 }, + { 0x00000000, 0x14c00000, 0x095 }, + { 0x0000a00c, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0xc0404800, 0x09d }, + { 0x0000a00c, 0x00204411, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x2ee00000, 0x09b }, + { 0x00000000, 0x2ce00000, 0x09a }, + { 0x00000002, 0x00400e2d, 0x09c }, + { 0x00000003, 0x00400e2d, 0x09c }, + { 0x0000000c, 0x00200e2d, 0x000 }, + { 0x00000000, 0x00204803, 0x000 }, + { 0x00000000, 0x003a0c02, 0x000 }, + { 0x003f0000, 0x00280e23, 0x000 }, + { 0x00000010, 0x00210e23, 0x000 }, + { 0x00000013, 0x00203623, 0x000 }, + { 0x0000001e, 0x0021022b, 0x000 }, + { 0x00000000, 0x14c00000, 0x0a4 }, + { 0x0000001c, 0xc0203620, 0x000 }, + { 0x0000001f, 0x0021022b, 0x000 }, + { 0x00000000, 0x14c00000, 0x0a7 }, + { 0x0000001b, 0xc0203620, 0x000 }, + { 0x00000008, 0x00210e2b, 0x000 }, + { 0x0000007f, 0x00280e23, 0x000 }, + { 0x00000000, 0x002f0223, 0x000 }, + { 0x00000000, 0x0ce00000, 0x0db }, + { 0x00000000, 0x27000000, 0x000 }, + { 0x00000000, 0x00600000, 0x28c }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x00000006, 0x00204811, 0x000 }, + { 0x0000000c, 0x00221e30, 0x000 }, + { 0x99800000, 0x00204411, 0x000 }, + { 0x00000004, 0x0020122d, 0x000 }, + { 0x00000008, 0x00221224, 0x000 }, + { 0x00000010, 0x00201811, 0x000 }, + { 0x00000000, 0x00291ce4, 0x000 }, + { 0x00000000, 0x00604807, 0x128 }, + { 0x9b000000, 0x00204411, 0x000 }, + { 0x00000000, 0x00204802, 0x000 }, + { 0x9c000000, 0x00204411, 0x000 }, + { 0x00000000, 0x0033146f, 0x000 }, + { 0x00000001, 0x00333e23, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x00000000, 0x00203c05, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x0000000e, 0x00204811, 0x000 }, + { 0x00000000, 0x00201010, 0x000 }, + { 0x0000e007, 0x00204411, 0x000 }, + { 0x0000000f, 0x0021022b, 0x000 }, + { 0x00000000, 0x14c00000, 0x0c5 }, + { 0x00f8ff08, 0x00204811, 0x000 }, + { 0x98000000, 0x00404811, 0x0d6 }, + { 0x000000f0, 0x00280e22, 0x000 }, + { 0x000000a0, 0x002f0223, 0x000 }, + { 0x00000000, 0x0cc00000, 0x0d4 }, + { 0x00000013, 0x00200e2d, 0x000 }, + { 0x00000001, 0x002f0223, 0x000 }, + { 0x00000000, 0x0ce00000, 0x0cf }, + { 0x00000002, 0x002f0223, 0x000 }, + { 0x00000000, 0x0ce00000, 0x0ce }, + { 0x00003f00, 0x00400c11, 0x0d0 }, + { 0x00001f00, 0x00400c11, 0x0d0 }, + { 0x00000f00, 0x00200c11, 0x000 }, + { 0x00380009, 0x00294a23, 0x000 }, + { 0x3f000000, 0x00280e2b, 0x000 }, + { 0x00000002, 0x00220e23, 0x000 }, + { 0x00000007, 0x00494a23, 0x0d6 }, + { 0x00380f09, 0x00204811, 0x000 }, + { 0x68000007, 0x00204811, 0x000 }, + { 0x00000008, 0x00214a27, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x060a0200, 0x00294a24, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x0000a202, 0x00204411, 0x000 }, + { 0x00ff0000, 0x00284a22, 0x000 }, + { 0x00000030, 0x00200e2d, 0x000 }, + { 0x0000002e, 0x0020122d, 0x000 }, + { 0x00000000, 0x002f0083, 0x000 }, + { 0x00000000, 0x0ce00000, 0x0e3 }, + { 0x00000000, 0x00600000, 0x5e7 }, + { 0x00000000, 0x00400000, 0x0e4 }, + { 0x00000000, 0x00600000, 0x5ea }, + { 0x00000007, 0x0020222d, 0x000 }, + { 0x00000005, 0x00220e22, 0x000 }, + { 0x00100000, 0x00280e23, 0x000 }, + { 0x00000000, 0x00292068, 0x000 }, + { 0x00000000, 0x003a0c02, 0x000 }, + { 0x000000ef, 0x00280e23, 0x000 }, + { 0x00000000, 0x00292068, 0x000 }, + { 0x0000001d, 0x00200e2d, 0x000 }, + { 0x00000003, 0x00210223, 0x000 }, + { 0x00000000, 0x14e00000, 0x0f1 }, + { 0x0000000b, 0x00210228, 0x000 }, + { 0x00000000, 0x14c00000, 0x0f1 }, + { 0x00000400, 0x00292228, 0x000 }, + { 0x0000001a, 0x00203628, 0x000 }, + { 0x0000001c, 0x00210e22, 0x000 }, + { 0x00000000, 0x14c00000, 0x0f6 }, + { 0x0000a30c, 0x00204411, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x0000001e, 0x00210e22, 0x000 }, + { 0x00000000, 0x14c00000, 0x104 }, + { 0x0000a30f, 0x00204411, 0x000 }, + { 0x00000013, 0x00200e2d, 0x000 }, + { 0x00000001, 0x002f0223, 0x000 }, + { 0x00000000, 0x0cc00000, 0x0fd }, + { 0xffffffff, 0x00404811, 0x104 }, + { 0x00000002, 0x002f0223, 0x000 }, + { 0x00000000, 0x0cc00000, 0x100 }, + { 0x0000ffff, 0x00404811, 0x104 }, + { 0x00000004, 0x002f0223, 0x000 }, + { 0x00000000, 0x0cc00000, 0x103 }, + { 0x000000ff, 0x00404811, 0x104 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x0002c400, 0x00204411, 0x000 }, + { 0x0000001f, 0x00210e22, 0x000 }, + { 0x00000000, 0x14c00000, 0x10b }, + { 0x00000010, 0x40210e20, 0x000 }, + { 0x00000019, 0x00203623, 0x000 }, + { 0x00000018, 0x40224a20, 0x000 }, + { 0x00000010, 0xc0424a20, 0x10d }, + { 0x00000000, 0x00200c11, 0x000 }, + { 0x00000019, 0x00203623, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x0000000a, 0x00201011, 0x000 }, + { 0x00000000, 0x002f0224, 0x000 }, + { 0x00000000, 0x0ce00000, 0x114 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000001, 0x00531224, 0x110 }, + { 0xffbfffff, 0x00283a2e, 0x000 }, + { 0x0000001b, 0x00210222, 0x000 }, + { 0x00000000, 0x14c00000, 0x127 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x0000000d, 0x00204811, 0x000 }, + { 0x00000018, 0x00220e30, 0x000 }, + { 0xfc000000, 0x00280e23, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x0000000e, 0x00204811, 0x000 }, + { 0x00000000, 0x00201010, 0x000 }, + { 0x0000e00e, 0x00204411, 0x000 }, + { 0x07f8ff08, 0x00204811, 0x000 }, + { 0x00000000, 0x00294a23, 0x000 }, + { 0x00000024, 0x00201e2d, 0x000 }, + { 0x00000008, 0x00214a27, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x060a0200, 0x00294a24, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00800000, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x0000217c, 0x00204411, 0x000 }, + { 0x00800000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204806, 0x000 }, + { 0x00000008, 0x00214a27, 0x000 }, + { 0x00000000, 0x17000000, 0x000 }, + { 0x0004217f, 0x00604411, 0x614 }, + { 0x0000001f, 0x00210230, 0x000 }, + { 0x00000000, 0x14c00000, 0x613 }, + { 0x00000004, 0x00404c11, 0x12e }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000000, 0x00600411, 0x2fe }, + { 0x00000000, 0x00200411, 0x000 }, + { 0x00000000, 0x00600811, 0x19f }, + { 0x00000000, 0x00600000, 0x151 }, + { 0x0000ffff, 0x40280e20, 0x000 }, + { 0x00000010, 0xc0211220, 0x000 }, + { 0x0000ffff, 0x40280620, 0x000 }, + { 0x00000010, 0xc0210a20, 0x000 }, + { 0x00000000, 0x00341461, 0x000 }, + { 0x00000000, 0x00741882, 0x2a4 }, + { 0x0001a1fd, 0x00604411, 0x2c9 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x138 }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000000, 0x00600411, 0x2fe }, + { 0x00000000, 0x00200411, 0x000 }, + { 0x00000000, 0x00600811, 0x19f }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, + { 0x00000000, 0x00600000, 0x151 }, + { 0x00000010, 0x40210e20, 0x000 }, + { 0x0000ffff, 0xc0281220, 0x000 }, + { 0x00000010, 0x40211620, 0x000 }, + { 0x0000ffff, 0xc0681a20, 0x2a4 }, + { 0x0001a1fd, 0x00604411, 0x2c9 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x149 }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000001, 0x00300a2f, 0x000 }, + { 0x00000001, 0x00210a22, 0x000 }, + { 0x00000003, 0x00384a22, 0x000 }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x0000001a, 0x00204811, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00804811, 0x000 }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000000, 0x00600000, 0x17c }, + { 0x00000000, 0x00600000, 0x18d }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, + { 0x00000000, 0x00202c08, 0x000 }, + { 0x00000000, 0x00202411, 0x000 }, + { 0x00000000, 0x00202811, 0x000 }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x00000016, 0x00204811, 0x000 }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000003, 0x00204811, 0x000 }, + { 0x93800000, 0x00204411, 0x000 }, + { 0x00000002, 0x00221e29, 0x000 }, + { 0x00000000, 0x007048eb, 0x189 }, + { 0x00000000, 0x00600000, 0x2a4 }, + { 0x00000001, 0x40330620, 0x000 }, + { 0x00000000, 0xc0302409, 0x000 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, + { 0x00000000, 0x00600000, 0x28c }, + { 0x95000000, 0x00204411, 0x000 }, + { 0x00000000, 0x002f0221, 0x000 }, + { 0x00000000, 0x0ce00000, 0x173 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000001, 0x00530621, 0x16f }, + { 0x92000000, 0x00204411, 0x000 }, + { 0x00000000, 0xc0604800, 0x184 }, + { 0x0001a1fd, 0x00204411, 0x000 }, + { 0x00000013, 0x0020062d, 0x000 }, + { 0x00000000, 0x0078042a, 0x2e4 }, + { 0x00000000, 0x00202809, 0x000 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x165 }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x00000210, 0x00600411, 0x2fe }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x181 }, + { 0x0000001b, 0xc0203620, 0x000 }, + { 0x0000001c, 0xc0203620, 0x000 }, + { 0x3f800000, 0x00200411, 0x000 }, + { 0x46000000, 0x00600811, 0x19f }, + { 0x00000000, 0x00800000, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x188 }, + { 0x00000001, 0x00804811, 0x000 }, + { 0x00000021, 0x00804811, 0x000 }, + { 0x0000ffff, 0x40280e20, 0x000 }, + { 0x00000010, 0xc0211220, 0x000 }, + { 0x0000ffff, 0x40281620, 0x000 }, + { 0x00000010, 0xc0811a20, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x00000006, 0x00204811, 0x000 }, + { 0x00000008, 0x00221e30, 0x000 }, + { 0x00000032, 0x00201a2d, 0x000 }, + { 0x0000e000, 0x00204411, 0x000 }, + { 0xfffbff09, 0x00204811, 0x000 }, + { 0x00000011, 0x0020222d, 0x000 }, + { 0x00001fff, 0x00294a28, 0x000 }, + { 0x00000006, 0x0020222d, 0x000 }, + { 0x00000000, 0x002920e8, 0x000 }, + { 0x00000000, 0x00204808, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x060a0200, 0x00294a26, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000100, 0x00201811, 0x000 }, + { 0x00000008, 0x00621e28, 0x128 }, + { 0x00000008, 0x00822228, 0x000 }, + { 0x0002c000, 0x00204411, 0x000 }, + { 0x0000001b, 0x00600e2d, 0x1aa }, + { 0x0000001c, 0x00600e2d, 0x1aa }, + { 0x0000c008, 0x00204411, 0x000 }, + { 0x0000001d, 0x00200e2d, 0x000 }, + { 0x00000000, 0x14c00000, 0x1a6 }, + { 0x00000000, 0x00200411, 0x000 }, + { 0x00000000, 0x00204801, 0x000 }, + { 0x39000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00204811, 0x000 }, + { 0x00000000, 0x00804802, 0x000 }, + { 0x00000020, 0x00202e2d, 0x000 }, + { 0x00000000, 0x003b0d63, 0x000 }, + { 0x00000008, 0x00224a23, 0x000 }, + { 0x00000010, 0x00224a23, 0x000 }, + { 0x00000018, 0x00224a23, 0x000 }, + { 0x00000000, 0x00804803, 0x000 }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00001000, 0x00600411, 0x2fe }, + { 0x00000000, 0x00200411, 0x000 }, + { 0x00000000, 0x00600811, 0x19f }, + { 0x00000007, 0x0021062f, 0x000 }, + { 0x00000019, 0x00200a2d, 0x000 }, + { 0x00000001, 0x00202c11, 0x000 }, + { 0x0000ffff, 0x40282220, 0x000 }, + { 0x0000000f, 0x00262228, 0x000 }, + { 0x00000010, 0x40212620, 0x000 }, + { 0x0000000f, 0x00262629, 0x000 }, + { 0x00000000, 0x00202802, 0x000 }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x0000001b, 0x00204811, 0x000 }, + { 0x00000000, 0x002f0221, 0x000 }, + { 0x00000000, 0x0ce00000, 0x1cd }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000081, 0x00204811, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00000080, 0x00201c11, 0x000 }, + { 0x00000000, 0x002f0227, 0x000 }, + { 0x00000000, 0x0ce00000, 0x1c9 }, + { 0x00000000, 0x00600000, 0x1d6 }, + { 0x00000001, 0x00531e27, 0x1c5 }, + { 0x00000001, 0x00202c11, 0x000 }, + { 0x0000001f, 0x00280a22, 0x000 }, + { 0x0000001f, 0x00282a2a, 0x000 }, + { 0x00000001, 0x00530621, 0x1be }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000002, 0x00304a2f, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00000001, 0x00301e2f, 0x000 }, + { 0x00000000, 0x002f0227, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, + { 0x00000000, 0x00600000, 0x1d6 }, + { 0x00000001, 0x00531e27, 0x1d2 }, + { 0x0000ffff, 0x40280e20, 0x000 }, + { 0x0000000f, 0x00260e23, 0x000 }, + { 0x00000010, 0xc0211220, 0x000 }, + { 0x0000000f, 0x00261224, 0x000 }, + { 0x00000000, 0x00201411, 0x000 }, + { 0x00000000, 0x00601811, 0x2a4 }, + { 0x0001a1fd, 0x00204411, 0x000 }, + { 0x00000000, 0x002f022b, 0x000 }, + { 0x00000000, 0x0ce00000, 0x1e5 }, + { 0x00000010, 0x00221628, 0x000 }, + { 0xffff0000, 0x00281625, 0x000 }, + { 0x0000ffff, 0x00281a29, 0x000 }, + { 0x00000000, 0x002948c5, 0x000 }, + { 0x00000000, 0x0020480a, 0x000 }, + { 0x00000000, 0x00202c11, 0x000 }, + { 0x00000010, 0x00221623, 0x000 }, + { 0xffff0000, 0x00281625, 0x000 }, + { 0x0000ffff, 0x00281a24, 0x000 }, + { 0x00000000, 0x002948c5, 0x000 }, + { 0x00000000, 0x00731503, 0x1f2 }, + { 0x00000000, 0x00201805, 0x000 }, + { 0x00000000, 0x00731524, 0x1f2 }, + { 0x00000000, 0x002d14c5, 0x000 }, + { 0x00000000, 0x003008a2, 0x000 }, + { 0x00000000, 0x00204802, 0x000 }, + { 0x00000000, 0x00202802, 0x000 }, + { 0x00000000, 0x00202003, 0x000 }, + { 0x00000000, 0x00802404, 0x000 }, + { 0x0000000f, 0x00210225, 0x000 }, + { 0x00000000, 0x14c00000, 0x613 }, + { 0x00000000, 0x002b1405, 0x000 }, + { 0x00000001, 0x00901625, 0x000 }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000000, 0x00600411, 0x2fe }, + { 0x00000000, 0x00200411, 0x000 }, + { 0x00000000, 0x00600811, 0x19f }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x0000001a, 0x00294a22, 0x000 }, + { 0x00000000, 0xc0200000, 0x000 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x000 }, + { 0x00000000, 0xc0200400, 0x000 }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000003, 0x00384a21, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x0000ffff, 0x40281220, 0x000 }, + { 0x00000010, 0xc0211a20, 0x000 }, + { 0x0000ffff, 0x40280e20, 0x000 }, + { 0x00000010, 0xc0211620, 0x000 }, + { 0x00000000, 0x00741465, 0x2a4 }, + { 0x0001a1fd, 0x00604411, 0x2c9 }, + { 0x00000001, 0x00330621, 0x000 }, + { 0x00000000, 0x002f0221, 0x000 }, + { 0x00000000, 0x0cc00000, 0x206 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x1ff }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x00000000, 0x00600000, 0x5c5 }, + { 0x00000000, 0x0040040f, 0x200 }, + { 0x00000000, 0x00600000, 0x5b2 }, + { 0x00000000, 0x00600000, 0x5c5 }, + { 0x00000210, 0x00600411, 0x2fe }, + { 0x00000000, 0x00600000, 0x18d }, + { 0x00000000, 0x00600000, 0x189 }, + { 0x00000000, 0x00600000, 0x2a4 }, + { 0x00000000, 0x00600000, 0x28c }, + { 0x93800000, 0x00204411, 0x000 }, + { 0x00000000, 0x00204808, 0x000 }, + { 0x95000000, 0x00204411, 0x000 }, + { 0x00000000, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x21f }, + { 0x00000000, 0xc0404800, 0x21c }, + { 0x92000000, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x00000016, 0x00204811, 0x000 }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000003, 0x00204811, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x0001a1fd, 0x00204411, 0x000 }, + { 0x00000000, 0x00600411, 0x2e4 }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x00000000, 0x00600000, 0x5b2 }, + { 0x0000a00c, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0xc0404800, 0x000 }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000018, 0x40210a20, 0x000 }, + { 0x00000003, 0x002f0222, 0x000 }, + { 0x00000000, 0x0ae00000, 0x235 }, + { 0x0000001a, 0x0020222d, 0x000 }, + { 0x00080101, 0x00292228, 0x000 }, + { 0x0000001a, 0x00203628, 0x000 }, + { 0x0000a30c, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000000, 0xc0404800, 0x23a }, + { 0x00000000, 0x00600000, 0x00b }, + { 0x00000010, 0x00600411, 0x2fe }, + { 0x3f800000, 0x00200411, 0x000 }, + { 0x00000000, 0x00600811, 0x19f }, + { 0x0000225c, 0x00204411, 0x000 }, + { 0x00000003, 0x00204811, 0x000 }, + { 0x00000000, 0x00600000, 0x265 }, + { 0x0000001d, 0x00201e2d, 0x000 }, + { 0x00000001, 0x00211e27, 0x000 }, + { 0x00000000, 0x14e00000, 0x253 }, + { 0x00000018, 0x00201e2d, 0x000 }, + { 0x0000ffff, 0x00281e27, 0x000 }, + { 0x00000000, 0x00341c27, 0x000 }, + { 0x00000000, 0x12c00000, 0x248 }, + { 0x00000000, 0x00201c11, 0x000 }, + { 0x00000000, 0x002f00e5, 0x000 }, + { 0x00000000, 0x08c00000, 0x24b }, + { 0x00000000, 0x00201407, 0x000 }, + { 0x00000018, 0x00201e2d, 0x000 }, + { 0x00000010, 0x00211e27, 0x000 }, + { 0x00000000, 0x00341c47, 0x000 }, + { 0x00000000, 0x12c00000, 0x250 }, + { 0x00000000, 0x00201c11, 0x000 }, + { 0x00000000, 0x002f00e6, 0x000 }, + { 0x00000000, 0x08c00000, 0x253 }, + { 0x00000000, 0x00201807, 0x000 }, + { 0x00000000, 0x00600000, 0x2aa }, + { 0x00002256, 0x00204411, 0x000 }, + { 0x00000000, 0x00342023, 0x000 }, + { 0x00000000, 0x12c00000, 0x25b }, + { 0x00000000, 0x00342044, 0x000 }, + { 0x00000000, 0x12c00000, 0x25a }, + { 0x00000016, 0x00404811, 0x25f }, + { 0x00000018, 0x00404811, 0x25f }, + { 0x00000000, 0x00342044, 0x000 }, + { 0x00000000, 0x12c00000, 0x25e }, + { 0x00000017, 0x00404811, 0x25f }, + { 0x00000019, 0x00204811, 0x000 }, + { 0x0000a1fc, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x0001a1fd, 0x00604411, 0x2d2 }, + { 0x00003fff, 0x002f022f, 0x000 }, + { 0x00000000, 0x0cc00000, 0x23f }, + { 0x00000000, 0xc0400400, 0x001 }, + { 0x00000010, 0x40210620, 0x000 }, + { 0x0000ffff, 0xc0280a20, 0x000 }, + { 0x00000010, 0x40210e20, 0x000 }, + { 0x0000ffff, 0xc0281220, 0x000 }, + { 0x00000010, 0x40211620, 0x000 }, + { 0x0000ffff, 0xc0881a20, 0x000 }, + { 0x81000000, 0x00204411, 0x000 }, + { 0x00000001, 0x00204811, 0x000 }, + { 0x00042004, 0x00604411, 0x614 }, + { 0x00000000, 0x00600000, 0x5b2 }, + { 0x00000000, 0xc0600000, 0x28c }, + { 0x00000005, 0x00200a2d, 0x000 }, + { 0x00000008, 0x00220a22, 0x000 }, + { 0x00000034, 0x00201a2d, 0x000 }, + { 0x00000024, 0x00201e2d, 0x000 }, + { 0x00007000, 0x00281e27, 0x000 }, + { 0x00000000, 0x00311ce6, 0x000 }, + { 0x00000033, 0x00201a2d, 0x000 }, + { 0x0000000c, 0x00221a26, 0x000 }, + { 0x00000000, 0x002f00e6, 0x000 }, + { 0x00000000, 0x06e00000, 0x27b }, + { 0x00000000, 0x00201c11, 0x000 }, + { 0x00000000, 0x00200c11, 0x000 }, + { 0x00000034, 0x00203623, 0x000 }, + { 0x00000010, 0x00201811, 0x000 }, + { 0x00000000, 0x00691ce2, 0x128 }, + { 0x93800000, 0x00204411, 0x000 }, + { 0x00000000, 0x00204807, 0x000 }, + { 0x95000000, 0x00204411, 0x000 }, + { 0x00000000, 0x002f022f, 0x000 }, + { 0x00000000, 0x0ce00000, 0x286 }, + { 0x00000001, 0x00333e2f, 0x000 }, + { 0x00000000, 0xd9004800, 0x000 }, + { 0x92000000, 0x00204411, 0x000 }, + { 0x00000000, 0xc0204800, 0x000 }, + { 0x00000024, 0x00403627, 0x000 }, + { 0x0000000c, 0xc0220a20, 0x000 }, + { 0x00000032, 0x00203622, 0x000 }, + { 0x00000031, 0xc0403620, 0x000 }, + { 0x0000a2a4, 0x00204411, 0x000 }, + { 0x00000009, 0x00204811, 0x000 }, + { 0xa1000000, 0x00204411, 0x000 }, + { 0x00000001, 0x00804811, 0x000 }, + { 0x00000029, 0x00201e2d, 0x000 }, + { 0x00000000, 0x002c1ce3, 0x000 }, + { 0x00000029, 0x00203627, 0x000 }, + { 0x0000002a, 0x00201e2d, 0x000 }, + { 0x00000000, 0x002c1ce4, 0x000 }, + { 0x0000002a, 0x00203627, 0x000 }, + { 0x0000002b, 0x00201e2d, 0x000 }, + { 0x00000000, 0x003120a3, 0x000 }, + { 0x00000000, 0x002d1d07, 0x000 }, + { 0x0000002b, 0x00203627, 0x000 }, + { 0x0000002c, 0x00201e2d, 0x000 }, + { 0x00000000, 0x003120c4, 0x000 }, + { 0x00000000, 0x002d1d07, 0x000 }, + { 0x0000002c, 0x00803627, 0x000 }, + { 0x00000029, 0x00203623, 0x000 }, + { 0x0000002a, 0x00203624, 0x000 }, + { 0x00000000, 0x00311ca3, 0x000 }, + { 0x0000002b, 0x00203627, 0x000 }, + { 0x00000000, 0x00311cc4, 0x000 }, + { 0x0000002c, 0x00803627, 0x000 }, + { 0x00000022, 0x00203627, 0x000 }, + { 0x00000023, 0x00203628, 0x000 }, + { 0x0000001d, 0x00201e2d, 0x000 }, + { 0x00000002, 0x00210227, 0x000 }, + { 0x00000000, 0x14c00000, 0x2c5 }, + { 0x00000000, 0x00400000, 0x2c2 }, + { 0x00000022, 0x00203627, 0x000 }, + { 0x00000023, 0x00203628, 0x000 }, + { 0x0000001d, 0x00201e2d, 0x000 }, + { 0x00000002, 0x00210227, 0x000 }, + { 0x00000000, 0x14e00000, 0x2c2 }, + { 0x00000003, 0x00210227, 0x000 }, + { 0x00000000, 0x14e00000, 0x2c5 }, + { 0x0000002b, 0x00201e2d, 0x000 }, + { 0x00000000, 0x002e00e1, 0x000 }, + { 0x00000000, 0x02c00000, 0x2c5 }, + { 0x00000029, 0x00201e2d, 0x000 }, + { 0x00000000, 0x003120a1, 0x000 }, + { 0x00000000, 0x002e00e8, 0x000 }, + { 0x00000000, 0x06c00000, 0x2c5 }, + { 0x0000002c, 0x00201e2d, 0x000 }, + { 0x00000000, 0x002e00e2, 0x000 }, + { 0x00000000, 0x02c00000, 0x2c5 }, + { 0x0000002a, 0x00201e2d, 0x000 }, + { 0x00000000, 0x003120c2, 0x000 }, + { 0x00000000, 0x002e00e8, 0x000 }, + { 0x00000000, 0x06c00000, 0x2c5 }, + { 0x00000000, 0x00600000, 0x5ed }, + { 0x00000000, 0x00600000, 0x29e }, + { 0x00000000, 0x00400000, 0x2c7 }, + { 0x00000000, 0x00600000, 0x29e }, + { 0x00000000, 0x00600000, 0x5e4 }, + { 0x00000000, 0x00400000, 0x2c7 }, + { 0x00000000, 0x00600000, 0x290 }, + { 0x00000000, 0x00400000, 0x2c7 }, + { 0x00000022, 0x00201e2d, 0x000 }, + { 0x00000023, 0x0080222d, 0x000 }, + { 0x00000010, 0x00221e23, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000000, 0x00311ca3, 0x000 }, + { 0x00000010, 0x00221e27, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000010, 0x00221e23, 0x000 }, + { 0x00000000, 0x003120c4, 0x000 }, + { 0x0000ffff, 0x00282228, 0x000 }, + { 0x00000000, 0x00894907, 0x000 }, + { 0x00000010, 0x00221e23, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000010, 0x00221e21, 0x000 }, + { 0x00000000, 0x00294847, 0x000 }, + { 0x00000000, 0x00311ca3, 0x000 }, + { 0x00000010, 0x00221e27, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000000, 0x00311ca1, 0x000 }, + { 0x00000010, 0x00221e27, 0x000 }, + { 0x00000000, 0x00294847, 0x000 }, + { 0x00000010, 0x00221e23, 0x000 }, + { 0x00000000, 0x003120c4, 0x000 }, + { 0x0000ffff, 0x00282228, 0x000 }, + { 0x00000000, 0x00294907, 0x000 }, + { 0x00000010, 0x00221e21, 0x000 }, + { 0x00000000, 0x003120c2, 0x000 }, + { 0x0000ffff, 0x00282228, 0x000 }, + { 0x00000000, 0x00894907, 0x000 }, + { 0x00000010, 0x00221e23, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000001, 0x00220a21, 0x000 }, + { 0x00000000, 0x003308a2, 0x000 }, + { 0x00000010, 0x00221e22, 0x000 }, + { 0x00000010, 0x00212222, 0x000 }, + { 0x00000000, 0x00294907, 0x000 }, + { 0x00000000, 0x00311ca3, 0x000 }, + { 0x00000010, 0x00221e27, 0x000 }, + { 0x00000000, 0x00294887, 0x000 }, + { 0x00000001, 0x00220a21, 0x000 }, + { 0x00000000, 0x003008a2, 0x000 }, + { 0x00000010, 0x00221e22, 0x000 }, + { 0x00000010, 0x00212222, 0x000 }, + { 0x00000000, 0x00294907, 0x000 }, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:22:53 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B3291065674; Sun, 15 Mar 2009 17:22:53 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 57C2C8FC19; Sun, 15 Mar 2009 17:22:53 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHMrZB034997; Sun, 15 Mar 2009 17:22:53 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHMrHO034996; Sun, 15 Mar 2009 17:22:53 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151722.n2FHMrHO034996@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:22:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189856 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:22:54 -0000 Author: rnoland Date: Sun Mar 15 17:22:53 2009 New Revision: 189856 URL: http://svn.freebsd.org/changeset/base/189856 Log: Merge 189559 Fix the flags to bus_dmamem_* to allow the allocation to sleep while waiting for resources. It is really the load that we can't defer. BUS_DMA_NOCACHE belongs on bus_dmamap_load() as well. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drm_scatter.c Modified: stable/7/sys/dev/drm/drm_scatter.c ============================================================================== --- stable/7/sys/dev/drm/drm_scatter.c Sun Mar 15 17:20:28 2009 (r189855) +++ stable/7/sys/dev/drm/drm_scatter.c Sun Mar 15 17:22:53 2009 (r189856) @@ -92,7 +92,7 @@ drm_sg_alloc(struct drm_device *dev, str } ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, - BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_NOCACHE, &dmah->map); + BUS_DMA_WAITOK | BUS_DMA_ZERO, &dmah->map); if (ret != 0) { bus_dma_tag_destroy(dmah->tag); free(dmah, DRM_MEM_DMA); @@ -102,7 +102,8 @@ drm_sg_alloc(struct drm_device *dev, str } ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr, - request->size, drm_sg_alloc_cb, entry, 0); + request->size, drm_sg_alloc_cb, entry, + BUS_DMA_NOWAIT | BUS_DMA_NOCACHE); if (ret != 0) { bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map); bus_dma_tag_destroy(dmah->tag); From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:23:46 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EABFA10656CA; Sun, 15 Mar 2009 17:23:46 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D4A3F8FC0A; Sun, 15 Mar 2009 17:23:46 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHNk2G035062; Sun, 15 Mar 2009 17:23:46 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHNktE035061; Sun, 15 Mar 2009 17:23:46 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151723.n2FHNktE035061@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:23:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189857 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:23:49 -0000 Author: rnoland Date: Sun Mar 15 17:23:46 2009 New Revision: 189857 URL: http://svn.freebsd.org/changeset/base/189857 Log: Merge r189560 Change the flags to bus_dmamem around to allow it to sleep waiting for resources during allocation, but not during map load. Also, zero the buffers here. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drm_pci.c Modified: stable/7/sys/dev/drm/drm_pci.c ============================================================================== --- stable/7/sys/dev/drm/drm_pci.c Sun Mar 15 17:22:53 2009 (r189856) +++ stable/7/sys/dev/drm/drm_pci.c Sun Mar 15 17:23:46 2009 (r189857) @@ -83,15 +83,15 @@ drm_pci_alloc(struct drm_device *dev, si maxaddr, BUS_SPACE_MAXADDR, /* lowaddr, highaddr */ NULL, NULL, /* filtfunc, filtfuncargs */ size, 1, size, /* maxsize, nsegs, maxsegsize */ - BUS_DMA_ALLOCNOW, NULL, NULL, /* flags, lockfunc, lockfuncargs */ + 0, NULL, NULL, /* flags, lockfunc, lockfuncargs */ &dmah->tag); if (ret != 0) { free(dmah, DRM_MEM_DMA); return NULL; } - ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, BUS_DMA_NOWAIT, - &dmah->map); + ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, + BUS_DMA_WAITOK | BUS_DMA_ZERO, &dmah->map); if (ret != 0) { bus_dma_tag_destroy(dmah->tag); free(dmah, DRM_MEM_DMA); @@ -99,7 +99,7 @@ drm_pci_alloc(struct drm_device *dev, si } ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr, size, - drm_pci_busdma_callback, dmah, 0); + drm_pci_busdma_callback, dmah, BUS_DMA_NOWAIT); if (ret != 0) { bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map); bus_dma_tag_destroy(dmah->tag); From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:24:48 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6BA8110656F8; Sun, 15 Mar 2009 17:24:48 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5809E8FC1A; Sun, 15 Mar 2009 17:24:48 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHOmnU035135; Sun, 15 Mar 2009 17:24:48 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHOmDf035134; Sun, 15 Mar 2009 17:24:48 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151724.n2FHOmDf035134@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:24:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189858 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:24:50 -0000 Author: rnoland Date: Sun Mar 15 17:24:48 2009 New Revision: 189858 URL: http://svn.freebsd.org/changeset/base/189858 Log: Merge r189561 There is no need to sync these buffers to swap. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drm_bufs.c Modified: stable/7/sys/dev/drm/drm_bufs.c ============================================================================== --- stable/7/sys/dev/drm/drm_bufs.c Sun Mar 15 17:23:46 2009 (r189857) +++ stable/7/sys/dev/drm/drm_bufs.c Sun Mar 15 17:24:48 2009 (r189858) @@ -1052,11 +1052,12 @@ int drm_mapbufs(struct drm_device *dev, vaddr = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ); #if __FreeBSD_version >= 600023 retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, - VM_PROT_ALL, MAP_SHARED, OBJT_DEVICE, dev->devnode, foff); + VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, OBJT_DEVICE, + dev->devnode, foff); #else retcode = vm_mmap(&vms->vm_map, &vaddr, size, PROT_READ | PROT_WRITE, - VM_PROT_ALL, MAP_SHARED, SLIST_FIRST(&dev->devnode->si_hlist), - foff); + VM_PROT_ALL, MAP_SHARED | MAP_NOSYNC, + SLIST_FIRST(&dev->devnode->si_hlist), foff); #endif if (retcode) goto done; From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:25:44 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E993010656BB; Sun, 15 Mar 2009 17:25:44 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D5E418FC22; Sun, 15 Mar 2009 17:25:44 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHPi4q035209; Sun, 15 Mar 2009 17:25:44 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHPiYn035208; Sun, 15 Mar 2009 17:25:44 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151725.n2FHPiYn035208@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:25:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189859 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:25:46 -0000 Author: rnoland Date: Sun Mar 15 17:25:44 2009 New Revision: 189859 URL: http://svn.freebsd.org/changeset/base/189859 Log: Merge r189562 Clean up the printing on amd64. Should also be consistent on i386. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drm_sysctl.c Modified: stable/7/sys/dev/drm/drm_sysctl.c ============================================================================== --- stable/7/sys/dev/drm/drm_sysctl.c Sun Mar 15 17:24:48 2009 (r189858) +++ stable/7/sys/dev/drm/drm_sysctl.c Sun Mar 15 17:25:44 2009 (r189859) @@ -185,8 +185,8 @@ static int drm_vm_info DRM_SYSCTL_HANDLE DRM_UNLOCK(); - DRM_SYSCTL_PRINT("\nslot offset size type flags " - "address mtrr\n"); + DRM_SYSCTL_PRINT("\nslot offset size " + "type flags address mtrr\n"); for (i = 0; i < mapcount; i++) { map = &tempmaps[i]; @@ -202,7 +202,7 @@ static int drm_vm_info DRM_SYSCTL_HANDLE yesno = "yes"; DRM_SYSCTL_PRINT( - "%4d 0x%08lx 0x%08lx %4.4s 0x%02x 0x%08lx %s\n", i, + "%4d 0x%016lx 0x%08lx %4.4s 0x%02x 0x%016lx %s\n", i, map->offset, map->size, type, map->flags, (unsigned long)map->handle, yesno); } From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:27:07 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1814A10657D6; Sun, 15 Mar 2009 17:27:07 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1B418FC13; Sun, 15 Mar 2009 17:27:06 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FHR67e035293; Sun, 15 Mar 2009 17:27:06 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FHR6aQ035283; Sun, 15 Mar 2009 17:27:06 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903151727.n2FHR6aQ035283@svn.freebsd.org> From: Robert Noland Date: Sun, 15 Mar 2009 17:27:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189860 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:27:10 -0000 Author: rnoland Date: Sun Mar 15 17:27:06 2009 New Revision: 189860 URL: http://svn.freebsd.org/changeset/base/189860 Log: Merge r189563 Consistently use kdev for the kernel device. Submitted by: vehemens Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/drm/drmP.h stable/7/sys/dev/drm/drm_drv.c stable/7/sys/dev/drm/i915_drv.c stable/7/sys/dev/drm/mach64_drv.c stable/7/sys/dev/drm/mga_drv.c stable/7/sys/dev/drm/r128_drv.c stable/7/sys/dev/drm/radeon_drv.c stable/7/sys/dev/drm/savage_drv.c stable/7/sys/dev/drm/sis_drv.c stable/7/sys/dev/drm/tdfx_drv.c Modified: stable/7/sys/dev/drm/drmP.h ============================================================================== --- stable/7/sys/dev/drm/drmP.h Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/drmP.h Sun Mar 15 17:27:06 2009 (r189860) @@ -720,10 +720,10 @@ static inline int drm_core_has_AGP(struc extern int drm_debug_flag; /* Device setup support (drm_drv.c) */ -int drm_probe(device_t nbdev, drm_pci_id_list_t *idlist); -int drm_attach(device_t nbdev, drm_pci_id_list_t *idlist); +int drm_probe(device_t kdev, drm_pci_id_list_t *idlist); +int drm_attach(device_t kdev, drm_pci_id_list_t *idlist); void drm_close(void *data); -int drm_detach(device_t nbdev); +int drm_detach(device_t kdev); d_ioctl_t drm_ioctl; d_open_t drm_open; d_read_t drm_read; Modified: stable/7/sys/dev/drm/drm_drv.c ============================================================================== --- stable/7/sys/dev/drm/drm_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/drm_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -158,53 +158,53 @@ static int drm_msi_is_blacklisted(int ve return 0; } -int drm_probe(device_t dev, drm_pci_id_list_t *idlist) +int drm_probe(device_t kdev, drm_pci_id_list_t *idlist) { drm_pci_id_list_t *id_entry; int vendor, device; #if __FreeBSD_version < 700010 device_t realdev; - if (!strcmp(device_get_name(dev), "drmsub")) - realdev = device_get_parent(dev); + if (!strcmp(device_get_name(kdev), "drmsub")) + realdev = device_get_parent(kdev); else - realdev = dev; + realdev = kdev; vendor = pci_get_vendor(realdev); device = pci_get_device(realdev); #else - vendor = pci_get_vendor(dev); - device = pci_get_device(dev); + vendor = pci_get_vendor(kdev); + device = pci_get_device(kdev); #endif - if (pci_get_class(dev) != PCIC_DISPLAY - || pci_get_subclass(dev) != PCIS_DISPLAY_VGA) + if (pci_get_class(kdev) != PCIC_DISPLAY + || pci_get_subclass(kdev) != PCIS_DISPLAY_VGA) return ENXIO; id_entry = drm_find_description(vendor, device, idlist); if (id_entry != NULL) { - device_set_desc(dev, id_entry->name); + device_set_desc(kdev, id_entry->name); return 0; } return ENXIO; } -int drm_attach(device_t nbdev, drm_pci_id_list_t *idlist) +int drm_attach(device_t kdev, drm_pci_id_list_t *idlist) { struct drm_device *dev; drm_pci_id_list_t *id_entry; int unit, msicount; - unit = device_get_unit(nbdev); - dev = device_get_softc(nbdev); + unit = device_get_unit(kdev); + dev = device_get_softc(kdev); #if __FreeBSD_version < 700010 - if (!strcmp(device_get_name(nbdev), "drmsub")) - dev->device = device_get_parent(nbdev); + if (!strcmp(device_get_name(kdev), "drmsub")) + dev->device = device_get_parent(kdev); else - dev->device = nbdev; + dev->device = kdev; #else - dev->device = nbdev; + dev->device = kdev; #endif dev->devnode = make_dev(&drm_cdevsw, unit, @@ -259,11 +259,11 @@ int drm_attach(device_t nbdev, drm_pci_i return drm_load(dev); } -int drm_detach(device_t nbdev) +int drm_detach(device_t kdev) { struct drm_device *dev; - dev = device_get_softc(nbdev); + dev = device_get_softc(kdev); drm_unload(dev); Modified: stable/7/sys/dev/drm/i915_drv.c ============================================================================== --- stable/7/sys/dev/drm/i915_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/i915_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -43,9 +43,9 @@ static drm_pci_id_list_t i915_pciidlist[ i915_PCI_IDS }; -static int i915_suspend(device_t nbdev) +static int i915_suspend(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); struct drm_i915_private *dev_priv = dev->dev_private; if (!dev || !dev_priv) { @@ -57,16 +57,16 @@ static int i915_suspend(device_t nbdev) i915_save_state(dev); - return (bus_generic_suspend(nbdev)); + return (bus_generic_suspend(kdev)); } -static int i915_resume(device_t nbdev) +static int i915_resume(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); i915_restore_state(dev); - return (bus_generic_resume(nbdev)); + return (bus_generic_resume(kdev)); } static void i915_configure(struct drm_device *dev) @@ -100,31 +100,31 @@ static void i915_configure(struct drm_de } static int -i915_probe(device_t dev) +i915_probe(device_t kdev) { - return drm_probe(dev, i915_pciidlist); + return drm_probe(kdev, i915_pciidlist); } static int -i915_attach(device_t nbdev) +i915_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); i915_configure(dev); - return drm_attach(nbdev, i915_pciidlist); + return drm_attach(kdev, i915_pciidlist); } static int -i915_detach(device_t nbdev) +i915_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/mach64_drv.c ============================================================================== --- stable/7/sys/dev/drm/mach64_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/mach64_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -77,22 +77,22 @@ static void mach64_configure(struct drm_ } static int -mach64_probe(device_t dev) +mach64_probe(device_t kdev) { - return drm_probe(dev, mach64_pciidlist); + return drm_probe(kdev, mach64_pciidlist); } static int -mach64_attach(device_t nbdev) +mach64_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); mach64_configure(dev); - return drm_attach(nbdev, mach64_pciidlist); + return drm_attach(kdev, mach64_pciidlist); } int @@ -102,12 +102,12 @@ mach64_driver_load(struct drm_device * d } static int -mach64_detach(device_t nbdev) +mach64_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/mga_drv.c ============================================================================== --- stable/7/sys/dev/drm/mga_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/mga_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -120,31 +120,31 @@ static void mga_configure(struct drm_dev } static int -mga_probe(device_t dev) +mga_probe(device_t kdev) { - return drm_probe(dev, mga_pciidlist); + return drm_probe(kdev, mga_pciidlist); } static int -mga_attach(device_t nbdev) +mga_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); mga_configure(dev); - return drm_attach(nbdev, mga_pciidlist); + return drm_attach(kdev, mga_pciidlist); } static int -mga_detach(device_t nbdev) +mga_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/r128_drv.c ============================================================================== --- stable/7/sys/dev/drm/r128_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/r128_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -76,22 +76,22 @@ static void r128_configure(struct drm_de } static int -r128_probe(device_t dev) +r128_probe(device_t kdev) { - return drm_probe(dev, r128_pciidlist); + return drm_probe(kdev, r128_pciidlist); } static int -r128_attach(device_t nbdev) +r128_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); r128_configure(dev); - return drm_attach(nbdev, r128_pciidlist); + return drm_attach(kdev, r128_pciidlist); } int r128_driver_load(struct drm_device * dev, unsigned long flags) @@ -100,12 +100,12 @@ int r128_driver_load(struct drm_device * } static int -r128_detach(device_t nbdev) +r128_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/radeon_drv.c ============================================================================== --- stable/7/sys/dev/drm/radeon_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/radeon_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -80,31 +80,31 @@ static void radeon_configure(struct drm_ } static int -radeon_probe(device_t dev) +radeon_probe(device_t kdev) { - return drm_probe(dev, radeon_pciidlist); + return drm_probe(kdev, radeon_pciidlist); } static int -radeon_attach(device_t nbdev) +radeon_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); radeon_configure(dev); - return drm_attach(nbdev, radeon_pciidlist); + return drm_attach(kdev, radeon_pciidlist); } static int -radeon_detach(device_t nbdev) +radeon_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/savage_drv.c ============================================================================== --- stable/7/sys/dev/drm/savage_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/savage_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -66,31 +66,31 @@ static void savage_configure(struct drm_ } static int -savage_probe(device_t dev) +savage_probe(device_t kdev) { - return drm_probe(dev, savage_pciidlist); + return drm_probe(kdev, savage_pciidlist); } static int -savage_attach(device_t nbdev) +savage_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); savage_configure(dev); - return drm_attach(nbdev, savage_pciidlist); + return drm_attach(kdev, savage_pciidlist); } static int -savage_detach(device_t nbdev) +savage_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/sis_drv.c ============================================================================== --- stable/7/sys/dev/drm/sis_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/sis_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -60,31 +60,31 @@ static void sis_configure(struct drm_dev } static int -sis_probe(device_t dev) +sis_probe(device_t kdev) { - return drm_probe(dev, sis_pciidlist); + return drm_probe(kdev, sis_pciidlist); } static int -sis_attach(device_t nbdev) +sis_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); sis_configure(dev); - return drm_attach(nbdev, sis_pciidlist); + return drm_attach(kdev, sis_pciidlist); } static int -sis_detach(device_t nbdev) +sis_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); Modified: stable/7/sys/dev/drm/tdfx_drv.c ============================================================================== --- stable/7/sys/dev/drm/tdfx_drv.c Sun Mar 15 17:25:44 2009 (r189859) +++ stable/7/sys/dev/drm/tdfx_drv.c Sun Mar 15 17:27:06 2009 (r189860) @@ -62,31 +62,31 @@ static void tdfx_configure(struct drm_de } static int -tdfx_probe(device_t dev) +tdfx_probe(device_t kdev) { - return drm_probe(dev, tdfx_pciidlist); + return drm_probe(kdev, tdfx_pciidlist); } static int -tdfx_attach(device_t nbdev) +tdfx_attach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER, M_WAITOK | M_ZERO); tdfx_configure(dev); - return drm_attach(nbdev, tdfx_pciidlist); + return drm_attach(kdev, tdfx_pciidlist); } static int -tdfx_detach(device_t nbdev) +tdfx_detach(device_t kdev) { - struct drm_device *dev = device_get_softc(nbdev); + struct drm_device *dev = device_get_softc(kdev); int ret; - ret = drm_detach(nbdev); + ret = drm_detach(kdev); free(dev->driver, DRM_MEM_DRIVER); From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:31:53 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC78A1065688; Sun, 15 Mar 2009 17:31:53 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id 583CE8FC14; Sun, 15 Mar 2009 17:31:53 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 928DF6DA8A; Sun, 15 Mar 2009 20:31:52 +0300 (MSK) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.static.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1680243484; Sun, 15 Mar 2009 20:31:52 +0300 Received: from dchagin.static.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.static.corbina.ru (8.14.3/8.14.3) with ESMTP id n2FHVpFY003309; Sun, 15 Mar 2009 20:31:52 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.ru) Received: (from dchagin@localhost) by dchagin.static.corbina.ru (8.14.3/8.14.3/Submit) id n2FHVk2x003308; Sun, 15 Mar 2009 20:31:46 +0300 (MSK) (envelope-from dchagin) Date: Sun, 15 Mar 2009 20:31:46 +0300 From: Chagin Dmitry To: "David E. O'Brien" Message-ID: <20090315173146.GA3192@dchagin.static.corbina.ru> References: <200901312046.n0VKk1LV033660@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="WIyZ46R2i8wDzkSu" Content-Disposition: inline In-Reply-To: <200901312046.n0VKk1LV033660@svn.freebsd.org> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r187964 - head/sys/amd64/linux32 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:31:54 -0000 --WIyZ46R2i8wDzkSu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jan 31, 2009 at 08:46:01PM +0000, David E. O'Brien wrote: > Author: obrien > Date: Sat Jan 31 20:46:01 2009 > New Revision: 187964 > URL: http://svn.freebsd.org/changeset/base/187964 >=20 > Log: > Fix the inconsistent tabbing. > =20 > Noticed by: bde >=20 > Modified: > head/sys/amd64/linux32/linux32_sysvec.c >=20 [skip] hi David, please, merge it. --=20 Have fun! chd --WIyZ46R2i8wDzkSu Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEARECAAYFAkm9O4EACgkQ0t2Tb3OO/O1N6gCfeT1zvM0ySwamhCBrAfLoRzUp BSEAn02mPc4RA//U7+h88zYT0KlAzKpJ =PPov -----END PGP SIGNATURE----- --WIyZ46R2i8wDzkSu-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 17:38:44 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DED361065672; Sun, 15 Mar 2009 17:38:44 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id 8B54A8FC14; Sun, 15 Mar 2009 17:38:44 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id C772D6F294; Sun, 15 Mar 2009 20:38:43 +0300 (MSK) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.static.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1680250176; Sun, 15 Mar 2009 20:38:43 +0300 Received: from dchagin.static.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.static.corbina.ru (8.14.3/8.14.3) with ESMTP id n2FHchnf003456; Sun, 15 Mar 2009 20:38:43 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.ru) Received: (from dchagin@localhost) by dchagin.static.corbina.ru (8.14.3/8.14.3/Submit) id n2FHcgHO003455; Sun, 15 Mar 2009 20:38:42 +0300 (MSK) (envelope-from dchagin) Date: Sun, 15 Mar 2009 20:38:42 +0300 From: Chagin Dmitry To: Warner Losh Message-ID: <20090315173842.GA3422@dchagin.static.corbina.ru> References: <200812170611.mBH6Bhep059636@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="8t9RHnE3ZwKMSgU+" Content-Disposition: inline In-Reply-To: <200812170611.mBH6Bhep059636@svn.freebsd.org> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r186211 - in head/sys: amd64/linux32 i386/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 17:38:45 -0000 --8t9RHnE3ZwKMSgU+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Dec 17, 2008 at 06:11:43AM +0000, Warner Losh wrote: > Author: imp > Date: Wed Dec 17 06:11:42 2008 > New Revision: 186211 > URL: http://svn.freebsd.org/changeset/base/186211 >=20 > Log: > Remove obsolete AT_DEBUG stuff. It never should have been committed > in the first place, let alone migrated to linux emulation. > =20 > Reviewed by: peter, rdivacky >=20 > Modified: > head/sys/amd64/linux32/linux32_sysvec.c > head/sys/i386/linux/linux_sysvec.c >=20 hi Warner, please, merge it. --=20 Have fun! chd --8t9RHnE3ZwKMSgU+ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEARECAAYFAkm9PSIACgkQ0t2Tb3OO/O3S2wCghGp6DHJ5B08MCBKxYyQ/ldY7 Vg4AoMOGDFUFav+TgRld/8FGeyh/OYjJ =tplq -----END PGP SIGNATURE----- --8t9RHnE3ZwKMSgU+-- From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 19:16:13 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2569C1065672; Sun, 15 Mar 2009 19:16:13 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 13DF18FC1D; Sun, 15 Mar 2009 19:16:13 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FJGCW3037369; Sun, 15 Mar 2009 19:16:12 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FJGCAW037367; Sun, 15 Mar 2009 19:16:12 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200903151916.n2FJGCAW037367@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 15 Mar 2009 19:16:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189861 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 19:16:13 -0000 Author: dchagin Date: Sun Mar 15 19:16:12 2009 New Revision: 189861 URL: http://svn.freebsd.org/changeset/base/189861 Log: Include linux_futex.h before linux_emul.h Approved by: kib (mentor) MFC after: 6 days Modified: head/sys/compat/linux/linux_emul.h head/sys/compat/linux/linux_futex.c Modified: head/sys/compat/linux/linux_emul.h ============================================================================== --- head/sys/compat/linux/linux_emul.h Sun Mar 15 17:27:06 2009 (r189860) +++ head/sys/compat/linux/linux_emul.h Sun Mar 15 19:16:12 2009 (r189861) @@ -31,8 +31,6 @@ #ifndef _LINUX_EMUL_H_ #define _LINUX_EMUL_H_ -#include - struct linux_emuldata_shared { int refs; pid_t group_pid; Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Sun Mar 15 17:27:06 2009 (r189860) +++ head/sys/compat/linux/linux_futex.c Sun Mar 15 19:16:12 2009 (r189861) @@ -60,8 +60,8 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex. #include #include #endif -#include #include +#include struct futex; From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 19:38:34 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 693361065675; Sun, 15 Mar 2009 19:38:34 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 577098FC1A; Sun, 15 Mar 2009 19:38:34 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FJcY2I037831; Sun, 15 Mar 2009 19:38:34 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FJcYAV037828; Sun, 15 Mar 2009 19:38:34 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200903151938.n2FJcYAV037828@svn.freebsd.org> From: Dmitry Chagin Date: Sun, 15 Mar 2009 19:38:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189862 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 19:38:35 -0000 Author: dchagin Date: Sun Mar 15 19:38:34 2009 New Revision: 189862 URL: http://svn.freebsd.org/changeset/base/189862 Log: Ignore FUTEX_FD op, as it is done by linux. Approved by: kib (mentor) MFC after: 2 weeks Modified: head/sys/compat/linux/linux_futex.c head/sys/compat/linux/linux_futex.h Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Sun Mar 15 19:16:12 2009 (r189861) +++ head/sys/compat/linux/linux_futex.c Sun Mar 15 19:38:34 2009 (r189862) @@ -276,13 +276,6 @@ linux_sys_futex(struct thread *td, struc FUTEX_SYSTEM_UNLOCK; break; - case LINUX_FUTEX_FD: -#ifdef DEBUG - printf("linux_sys_futex: unimplemented op %d\n", - args->op); -#endif - return (ENOSYS); - case LINUX_FUTEX_WAKE_OP: FUTEX_SYSTEM_LOCK; #ifdef DEBUG Modified: head/sys/compat/linux/linux_futex.h ============================================================================== --- head/sys/compat/linux/linux_futex.h Sun Mar 15 19:16:12 2009 (r189861) +++ head/sys/compat/linux/linux_futex.h Sun Mar 15 19:38:34 2009 (r189862) @@ -38,7 +38,7 @@ #define LINUX_FUTEX_WAIT 0 #define LINUX_FUTEX_WAKE 1 -#define LINUX_FUTEX_FD 2 +#define LINUX_FUTEX_FD 2 /* unused */ #define LINUX_FUTEX_REQUEUE 3 #define LINUX_FUTEX_CMP_REQUEUE 4 #define LINUX_FUTEX_WAKE_OP 5 From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 19:40:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C964910656EF; Sun, 15 Mar 2009 19:40:24 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.freebsd.org (Postfix) with ESMTP id 1B0308FC21; Sun, 15 Mar 2009 19:40:23 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from trouble.errno.com (trouble.errno.com [10.0.0.248]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id n2FJeNUY066200 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 15 Mar 2009 12:40:23 -0700 (PDT) (envelope-from sam@freebsd.org) Message-ID: <49BD59A7.8020902@freebsd.org> Date: Sun, 15 Mar 2009 12:40:23 -0700 From: Sam Leffler Organization: FreeBSD Project User-Agent: Thunderbird 2.0.0.18 (X11/20081209) MIME-Version: 1.0 To: Dmitry Chagin References: <200903151916.n2FJGCAW037367@svn.freebsd.org> In-Reply-To: <200903151916.n2FJGCAW037367@svn.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-DCC-Misty-Metrics: ebb.errno.com; whitelist Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189861 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 19:40:38 -0000 Dmitry Chagin wrote: > Author: dchagin > Date: Sun Mar 15 19:16:12 2009 > New Revision: 189861 > URL: http://svn.freebsd.org/changeset/base/189861 > > Log: > Include linux_futex.h before linux_emul.h > > Please explain the "why" in your commit msg; the "what" is usually clear... Sam From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 20:17:45 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06B561065673; Sun, 15 Mar 2009 20:17:45 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E86928FC13; Sun, 15 Mar 2009 20:17:44 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FKHiQ1038589; Sun, 15 Mar 2009 20:17:44 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FKHijd038587; Sun, 15 Mar 2009 20:17:44 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903152017.n2FKHijd038587@svn.freebsd.org> From: Robert Watson Date: Sun, 15 Mar 2009 20:17:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189863 - in head: share/man/man4 sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 20:17:45 -0000 Author: rwatson Date: Sun Mar 15 20:17:44 2009 New Revision: 189863 URL: http://svn.freebsd.org/changeset/base/189863 Log: Teach the loopback interface about checksum generation and validation avoidance: - Enable setting the RXCSUM and TXCSUM flags for loopback interfaces; set both by default. - When RXCSUM is set, flag packets sent over the loopback interface as having checked and valid IP, UDP, TCP checksums so that higher protocol layers won't check them. - Always clear CSUM_{IP,UDP_TCP} checksum required flags on transmit, as they will have gotten there as a result of TXCSUM being set. This is done only for packets explicitly sent over the loopback, not simulated loopback via if_simloop() due to !SIMPLEX interfaces, etc. Note that enabling TXCSUM but not RXCSUM will lead to unhappiness, as checksums won't be generated but will be validated. Kris reports that this leads to significant performance improvements in loopback benchmarking with TCP and UDP for throughput: RXCSUM RXCSUM+TXCSUM TCP 15% 37% UDP 10% 74% Update man page. Reviewed by: sam Tested by: kris MFC after: 1 week Modified: head/share/man/man4/lo.4 head/sys/net/if_loop.c Modified: head/share/man/man4/lo.4 ============================================================================== --- head/share/man/man4/lo.4 Sun Mar 15 19:38:34 2009 (r189862) +++ head/share/man/man4/lo.4 Sun Mar 15 20:17:44 2009 (r189863) @@ -1,5 +1,7 @@ .\" Copyright (c) 1983, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. +.\" The Regents of the University of California. +.\" Copyright (c) 2009 Robert N. M. Watson +.\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -9,10 +11,6 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. @@ -32,7 +30,7 @@ .\" @(#)lo.4 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd June 5, 1993 +.Dd March 15, 2009 .Dt LO 4 .Os .Sh NAME @@ -58,6 +56,20 @@ The loopback should .Em never be configured first unless no hardware interfaces exist. +.Pp +If the transmit checksum offload capability flag is enabled on a loopback +interface, checksums will not be generated by IP, UDP, or TCP for packets +sent on the interface. +.Pp +If the receive checksum offload capability flag is enabled on a loopback +interface, checksums will not be validated by IP, UDP, or TCP for packets +received on the interface. +.Pp +By default, both receive and transmit checksum flags will be enabled, in +order to avoid the overhead of checksumming for local communication where +data corruption is unlikely. +If transmit checksum generation is disabled, then validation should also be +disabled in order to avoid packets being dropped due to invalid checksums. .Sh DIAGNOSTICS .Bl -diag .It lo%d: can't handle af%d. @@ -74,8 +86,5 @@ The .Nm device appeared in .Bx 4.2 . -.Sh BUGS -Previous versions of the system enabled the loopback interface -automatically, using a nonstandard Internet address (127.1). -Use of that address is now discouraged; a reserved host address -for the local network should be used instead. +The current checksum generation and validation avoidance policy appeared in +.Fx 8.0 . Modified: head/sys/net/if_loop.c ============================================================================== --- head/sys/net/if_loop.c Sun Mar 15 19:38:34 2009 (r189862) +++ head/sys/net/if_loop.c Sun Mar 15 20:17:44 2009 (r189863) @@ -138,6 +138,8 @@ lo_clone_create(struct if_clone *ifc, in ifp->if_ioctl = loioctl; ifp->if_output = looutput; ifp->if_snd.ifq_maxlen = ifqmaxlen; + ifp->if_hwassist = ifp->if_capabilities = ifp->if_capenable = + IFCAP_HWCSUM; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); if (V_loif == NULL) @@ -212,6 +214,13 @@ looutput(struct ifnet *ifp, struct mbuf #if 1 /* XXX */ switch (dst->sa_family) { case AF_INET: + if (ifp->if_capenable & IFCAP_RXCSUM) { + m->m_pkthdr.csum_data = 0xffff; + m->m_pkthdr.csum_flags = CSUM_DATA_VALID | + CSUM_PSEUDO_HDR | CSUM_IP_CHECKED | + CSUM_IP_VALID | CSUM_SCTP_VALID; + } + m->m_pkthdr.csum_flags &= ~(CSUM_IP | CSUM_TCP | CSUM_UDP); case AF_INET6: case AF_IPX: case AF_APPLETALK: @@ -348,7 +357,7 @@ loioctl(struct ifnet *ifp, u_long cmd, c { struct ifaddr *ifa; struct ifreq *ifr = (struct ifreq *)data; - int error = 0; + int error = 0, mask; switch (cmd) { case SIOCSIFADDR: @@ -391,6 +400,18 @@ loioctl(struct ifnet *ifp, u_long cmd, c case SIOCSIFFLAGS: break; + case SIOCSIFCAP: + mask = ifp->if_capenable ^ ifr->ifr_reqcap; + if ((mask & IFCAP_RXCSUM) != 0) + ifp->if_capenable ^= IFCAP_RXCSUM; + if ((mask & IFCAP_TXCSUM) != 0) + ifp->if_capenable ^= IFCAP_TXCSUM; + if (ifp->if_capenable & IFCAP_TXCSUM) + ifp->if_hwassist = CSUM_IP | CSUM_TCP | CSUM_UDP; + else + ifp->if_hwassist = 0; + break; + default: error = EINVAL; } From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 20:23:08 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A00DA106564A; Sun, 15 Mar 2009 20:23:08 +0000 (UTC) (envelope-from kris@FreeBSD.org) Received: from kennaway-macbookpro.config (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id A4BA38FC0A; Sun, 15 Mar 2009 20:23:07 +0000 (UTC) (envelope-from kris@FreeBSD.org) Message-ID: <49BD63AB.6090702@FreeBSD.org> Date: Sun, 15 Mar 2009 20:23:07 +0000 From: Kris Kennaway User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209) MIME-Version: 1.0 To: Robert Watson References: <200903152017.n2FKHijd038587@svn.freebsd.org> In-Reply-To: <200903152017.n2FKHijd038587@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189863 - in head: share/man/man4 sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 20:23:09 -0000 Robert Watson wrote: > Author: rwatson > Date: Sun Mar 15 20:17:44 2009 > New Revision: 189863 > URL: http://svn.freebsd.org/changeset/base/189863 > > Log: > Teach the loopback interface about checksum generation and validation > avoidance: > > - Enable setting the RXCSUM and TXCSUM flags for loopback interfaces; > set both by default. > - When RXCSUM is set, flag packets sent over the loopback interface as > having checked and valid IP, UDP, TCP checksums so that higher > protocol layers won't check them. > - Always clear CSUM_{IP,UDP_TCP} checksum required flags on transmit, > as they will have gotten there as a result of TXCSUM being set. > > This is done only for packets explicitly sent over the loopback, not > simulated loopback via if_simloop() due to !SIMPLEX interfaces, etc. > > Note that enabling TXCSUM but not RXCSUM will lead to unhappiness, as > checksums won't be generated but will be validated. > > Kris reports that this leads to significant performance improvements > in loopback benchmarking with TCP and UDP for throughput: > > RXCSUM RXCSUM+TXCSUM > TCP 15% 37% > UDP 10% 74% More like 24% instead of 74% actually, the sender and receiver had become unbalanced in that test. Kris From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 20:54:00 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21B561065674; Sun, 15 Mar 2009 20:54:00 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id F05538FC1F; Sun, 15 Mar 2009 20:53:59 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id 7F8FC46B55; Sun, 15 Mar 2009 16:53:59 -0400 (EDT) Date: Sun, 15 Mar 2009 20:53:59 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Kris Kennaway In-Reply-To: <49BD63AB.6090702@FreeBSD.org> Message-ID: References: <200903152017.n2FKHijd038587@svn.freebsd.org> <49BD63AB.6090702@FreeBSD.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189863 - in head: share/man/man4 sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 20:54:01 -0000 On Sun, 15 Mar 2009, Kris Kennaway wrote: >> Kris reports that this leads to significant performance improvements >> in loopback benchmarking with TCP and UDP for throughput: >> RXCSUM RXCSUM+TXCSUM >> TCP 15% 37% >> UDP 10% 74% > > More like 24% instead of 74% actually, the sender and receiver had become > unbalanced in that test. That makes more sense -- I was surprised to see such a large win on UDP. Thanks for the update. Robert N M Watson Computer Laboratory University of Cambridge From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 22:33:19 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3832E106566C; Sun, 15 Mar 2009 22:33:19 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 268D08FC23; Sun, 15 Mar 2009 22:33:19 +0000 (UTC) (envelope-from jamie@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FMXJG4041383; Sun, 15 Mar 2009 22:33:19 GMT (envelope-from jamie@svn.freebsd.org) Received: (from jamie@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FMXI2v041380; Sun, 15 Mar 2009 22:33:18 GMT (envelope-from jamie@svn.freebsd.org) Message-Id: <200903152233.n2FMXI2v041380@svn.freebsd.org> From: Jamie Gritton Date: Sun, 15 Mar 2009 22:33:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189864 - head/sbin/ifconfig X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 22:33:19 -0000 Author: jamie Date: Sun Mar 15 22:33:18 2009 New Revision: 189864 URL: http://svn.freebsd.org/changeset/base/189864 Log: Default to AF_LOCAL instead of AF_INET sockets for non-family-specific operations. This allows the query operations to work in non-IPv4 jails, and will be necessary in a future of possible non-INET networking. Approved by: bz (mentor) Modified: head/sbin/ifconfig/ifclone.c head/sbin/ifconfig/ifconfig.c head/sbin/ifconfig/ifgroup.c Modified: head/sbin/ifconfig/ifclone.c ============================================================================== --- head/sbin/ifconfig/ifclone.c Sun Mar 15 20:17:44 2009 (r189863) +++ head/sbin/ifconfig/ifclone.c Sun Mar 15 22:33:18 2009 (r189864) @@ -54,9 +54,9 @@ list_cloners(void) int idx; int s; - s = socket(AF_INET, SOCK_DGRAM, 0); + s = socket(AF_LOCAL, SOCK_DGRAM, 0); if (s == -1) - err(1, "socket(AF_INET,SOCK_DGRAM)"); + err(1, "socket(AF_LOCAL,SOCK_DGRAM)"); memset(&ifcr, 0, sizeof(ifcr)); Modified: head/sbin/ifconfig/ifconfig.c ============================================================================== --- head/sbin/ifconfig/ifconfig.c Sun Mar 15 20:17:44 2009 (r189863) +++ head/sbin/ifconfig/ifconfig.c Sun Mar 15 22:33:18 2009 (r189864) @@ -441,22 +441,23 @@ static const struct cmd setifdstaddr_cmd DEF_CMD("ifdstaddr", 0, setifdstaddr); static int -ifconfig(int argc, char *const *argv, int iscreate, const struct afswtch *afp) +ifconfig(int argc, char *const *argv, int iscreate, const struct afswtch *uafp) { - const struct afswtch *nafp; + const struct afswtch *afp, *nafp; const struct cmd *p; struct callback *cb; int s; strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name); + afp = uafp != NULL ? uafp : af_getbyname("inet"); top: - if (afp == NULL) - afp = af_getbyname("inet"); ifr.ifr_addr.sa_family = afp->af_af == AF_LINK || afp->af_af == AF_UNSPEC ? - AF_INET : afp->af_af; + AF_LOCAL : afp->af_af; - if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0) + if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0 && + (uafp != NULL || errno != EPROTONOSUPPORT || + (s = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0)) err(1, "socket(family %u,SOCK_DGRAM", ifr.ifr_addr.sa_family); while (argc > 0) { @@ -803,11 +804,12 @@ status(const struct afswtch *afp, const if (afp == NULL) { allfamilies = 1; - afp = af_getbyname("inet"); - } else + ifr.ifr_addr.sa_family = AF_LOCAL; + } else { allfamilies = 0; - - ifr.ifr_addr.sa_family = afp->af_af == AF_LINK ? AF_INET : afp->af_af; + ifr.ifr_addr.sa_family = + afp->af_af == AF_LINK ? AF_LOCAL : afp->af_af; + } strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0); Modified: head/sbin/ifconfig/ifgroup.c ============================================================================== --- head/sbin/ifconfig/ifgroup.c Sun Mar 15 20:17:44 2009 (r189863) +++ head/sbin/ifconfig/ifgroup.c Sun Mar 15 22:33:18 2009 (r189864) @@ -131,9 +131,9 @@ printgroup(const char *groupname) int len, cnt = 0; int s; - s = socket(AF_INET, SOCK_DGRAM, 0); + s = socket(AF_LOCAL, SOCK_DGRAM, 0); if (s == -1) - err(1, "socket(AF_INET,SOCK_DGRAM)"); + err(1, "socket(AF_LOCAL,SOCK_DGRAM)"); bzero(&ifgr, sizeof(ifgr)); strlcpy(ifgr.ifgr_name, groupname, sizeof(ifgr.ifgr_name)); if (ioctl(s, SIOCGIFGMEMB, (caddr_t)&ifgr) == -1) { From owner-svn-src-all@FreeBSD.ORG Sun Mar 15 23:52:13 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A69A106567D; Sun, 15 Mar 2009 23:52:13 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 79B3B8FC37; Sun, 15 Mar 2009 23:52:13 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2FNqDno043020; Sun, 15 Mar 2009 23:52:13 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2FNqDHk043019; Sun, 15 Mar 2009 23:52:13 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <200903152352.n2FNqDHk043019@svn.freebsd.org> From: Warner Losh Date: Sun, 15 Mar 2009 23:52:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189865 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Mar 2009 23:52:14 -0000 Author: imp Date: Sun Mar 15 23:52:13 2009 New Revision: 189865 URL: http://svn.freebsd.org/changeset/base/189865 Log: Restore missing OSREL definition that accidetnally dropped from an earlier version of this patch. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Mar 15 22:33:18 2009 (r189864) +++ head/Makefile.inc1 Sun Mar 15 23:52:13 2009 (r189865) @@ -1338,6 +1338,9 @@ CDTMP= ${MAKEOBJDIRPREFIX}/${XDEV}/${.CU CDMAKE=${CDENV} ${MAKE} ${NOFUN} CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDTP}/usr/bin:${PATH} ${MAKE} ${NOFUN} XDDESTDIR=${DESTDIR}${XDTP} +.if !defined(OSREL) +OSREL!= uname -r | sed -e 's/[-(].*//' +.endif .ORDER: xdev-build xdev-install xdev: xdev-build xdev-install From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 03:11:03 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03548106566B; Mon, 16 Mar 2009 03:11:03 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B13808FC0A; Mon, 16 Mar 2009 03:11:02 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G3B2g9047003; Mon, 16 Mar 2009 03:11:02 GMT (envelope-from scf@svn.freebsd.org) Received: (from scf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G3B2wn047002; Mon, 16 Mar 2009 03:11:02 GMT (envelope-from scf@svn.freebsd.org) Message-Id: <200903160311.n2G3B2wn047002@svn.freebsd.org> From: Sean Farley Date: Mon, 16 Mar 2009 03:11:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189866 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 03:11:03 -0000 Author: scf Date: Mon Mar 16 03:11:02 2009 New Revision: 189866 URL: http://svn.freebsd.org/changeset/base/189866 Log: Add the SIOCSIFMTU ioctl handling directly to tap(4) permitting it to have its MTU set higher than 1500 (ETHERMTU). Its new limit is now 65535 as enforced by ifhwioctl() in if.c This allows a tap(4) device to be added to a bridge, which requires all interface members to have the same MTU, with an interface configured for jumbo frames. QEMU may now connect to a network via tap(4) without requiring the real interface to have its MTU set to 1500 or lower. Reviewed by: rpaulo, bms MFC after: 1 week Modified: head/sys/net/if_tap.c Modified: head/sys/net/if_tap.c ============================================================================== --- head/sys/net/if_tap.c Sun Mar 15 23:52:13 2009 (r189865) +++ head/sys/net/if_tap.c Mon Mar 16 03:11:02 2009 (r189866) @@ -600,6 +600,7 @@ static int tapifioctl(struct ifnet *ifp, u_long cmd, caddr_t data) { struct tap_softc *tp = ifp->if_softc; + struct ifreq *ifr = (struct ifreq *)data; struct ifstat *ifs = NULL; int s, dummy; @@ -609,6 +610,12 @@ tapifioctl(struct ifnet *ifp, u_long cmd case SIOCDELMULTI: break; + case SIOCSIFMTU: + s = splimp(); + ifp->if_mtu = ifr->ifr_mtu; + splx(s); + break; + case SIOCGIFSTATUS: s = splimp(); ifs = (struct ifstat *)data; From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 05:39:37 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC1B2106570C; Mon, 16 Mar 2009 05:39:37 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9F448FC2B; Mon, 16 Mar 2009 05:39:37 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G5dbLv049688; Mon, 16 Mar 2009 05:39:37 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G5dbiS049687; Mon, 16 Mar 2009 05:39:37 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200903160539.n2G5dbiS049687@svn.freebsd.org> From: Dmitry Chagin Date: Mon, 16 Mar 2009 05:39:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189867 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 05:39:38 -0000 Author: dchagin Date: Mon Mar 16 05:39:37 2009 New Revision: 189867 URL: http://svn.freebsd.org/changeset/base/189867 Log: Sort include files in the alphabetical order. Approved by: kib (mentor) MFC after: 2 weeks Modified: head/sys/compat/linux/linux_futex.c Modified: head/sys/compat/linux/linux_futex.c ============================================================================== --- head/sys/compat/linux/linux_futex.c Mon Mar 16 03:11:02 2009 (r189866) +++ head/sys/compat/linux/linux_futex.c Mon Mar 16 05:39:37 2009 (r189867) @@ -40,18 +40,17 @@ __KERNEL_RCSID(1, "$NetBSD: linux_futex. #include "opt_compat.h" #include -#include -#include #include -#include -#include #include +#include #include +#include #include #include +#include +#include #include #include -#include #ifdef COMPAT_LINUX32 #include From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 08:15:35 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F2D91065686; Mon, 16 Mar 2009 08:15:35 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5DDA48FC1E; Mon, 16 Mar 2009 08:15:35 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G8FZwm052542; Mon, 16 Mar 2009 08:15:35 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G8FZ9v052541; Mon, 16 Mar 2009 08:15:35 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903160815.n2G8FZ9v052541@svn.freebsd.org> From: Robert Noland Date: Mon, 16 Mar 2009 08:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189868 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 08:15:36 -0000 Author: rnoland Date: Mon Mar 16 08:15:35 2009 New Revision: 189868 URL: http://svn.freebsd.org/changeset/base/189868 Log: Fix R600 writeback across suspend/resume. This is likely a NOOP for us, since I haven't ported the suspend/resume code yet. MFC after: 3 days Modified: head/sys/dev/drm/r600_cp.c Modified: head/sys/dev/drm/r600_cp.c ============================================================================== --- head/sys/dev/drm/r600_cp.c Mon Mar 16 05:39:37 2009 (r189867) +++ head/sys/dev/drm/r600_cp.c Mon Mar 16 08:15:35 2009 (r189868) @@ -1740,9 +1740,6 @@ static void r600_cp_init_ring_buffer(str RADEON_WRITE(R600_CP_DEBUG, (1 << 27) | (1 << 28)); - /* Start with assuming that writeback doesn't work */ - dev_priv->writeback_works = 0; - /* Initialize the scratch register pointer. This will cause * the scratch register values to be written out to memory * whenever they are updated. From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 08:19:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27EEF106566C; Mon, 16 Mar 2009 08:19:12 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F045D8FC12; Mon, 16 Mar 2009 08:19:11 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G8JBpI052633; Mon, 16 Mar 2009 08:19:11 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G8JBqR052630; Mon, 16 Mar 2009 08:19:11 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903160819.n2G8JBqR052630@svn.freebsd.org> From: Robert Noland Date: Mon, 16 Mar 2009 08:19:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189869 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 08:19:12 -0000 Author: rnoland Date: Mon Mar 16 08:19:11 2009 New Revision: 189869 URL: http://svn.freebsd.org/changeset/base/189869 Log: Get rid of any remaining PZERO flags in mtx_sleep() Also, clean up some ifdef mess while I'm here. MFC after: 3 days Modified: head/sys/dev/drm/drm_drv.c head/sys/dev/drm/drm_lock.c head/sys/dev/drm/radeon_cp.c Modified: head/sys/dev/drm/drm_drv.c ============================================================================== --- head/sys/dev/drm/drm_drv.c Mon Mar 16 08:15:35 2009 (r189868) +++ head/sys/dev/drm/drm_drv.c Mon Mar 16 08:19:11 2009 (r189869) @@ -666,7 +666,7 @@ void drm_close(void *data) } /* Contention */ retcode = mtx_sleep((void *)&dev->lock.lock_queue, - &dev->dev_lock, PZERO | PCATCH, "drmlk2", 0); + &dev->dev_lock, PCATCH, "drmlk2", 0); if (retcode) break; } Modified: head/sys/dev/drm/drm_lock.c ============================================================================== --- head/sys/dev/drm/drm_lock.c Mon Mar 16 08:15:35 2009 (r189868) +++ head/sys/dev/drm/drm_lock.c Mon Mar 16 08:19:11 2009 (r189869) @@ -82,7 +82,7 @@ int drm_lock(struct drm_device *dev, voi /* Contention */ ret = mtx_sleep((void *)&dev->lock.lock_queue, &dev->dev_lock, - PZERO | PCATCH, "drmlk2", 0); + PCATCH, "drmlk2", 0); if (ret != 0) break; } Modified: head/sys/dev/drm/radeon_cp.c ============================================================================== --- head/sys/dev/drm/radeon_cp.c Mon Mar 16 08:15:35 2009 (r189868) +++ head/sys/dev/drm/radeon_cp.c Mon Mar 16 08:19:11 2009 (r189869) @@ -1708,26 +1708,14 @@ void radeon_do_release(struct drm_device if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) { while ((ret = r600_do_cp_idle(dev_priv)) != 0) { DRM_DEBUG("radeon_do_cp_idle %d\n", ret); -#ifdef __linux__ - schedule(); -#elsif defined(__FreeBSD__) mtx_sleep(&ret, &dev->dev_lock, 0, "rdnrel", 1); -#else - tsleep(&ret, PZERO, "rdnrel", 1); -#endif } } else { while ((ret = radeon_do_cp_idle(dev_priv)) != 0) { DRM_DEBUG("radeon_do_cp_idle %d\n", ret); -#ifdef __linux__ - schedule(); -#elsif defined(__FreeBSD__) mtx_sleep(&ret, &dev->dev_lock, 0, "rdnrel", 1); -#else - tsleep(&ret, PZERO, "rdnrel", 1); -#endif } } if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) { From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 08:21:52 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48725106564A; Mon, 16 Mar 2009 08:21:52 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3728A8FC14; Mon, 16 Mar 2009 08:21:52 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G8Lq89052720; Mon, 16 Mar 2009 08:21:52 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G8Lq7m052719; Mon, 16 Mar 2009 08:21:52 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903160821.n2G8Lq7m052719@svn.freebsd.org> From: Robert Noland Date: Mon, 16 Mar 2009 08:21:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189870 - head/sys/dev/atkbdc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 08:21:52 -0000 Author: rnoland Date: Mon Mar 16 08:21:51 2009 New Revision: 189870 URL: http://svn.freebsd.org/changeset/base/189870 Log: Teach psm about O_ASYNC This makes Xorg happy if you aren't using moused. MFC after: 3 days Modified: head/sys/dev/atkbdc/psm.c Modified: head/sys/dev/atkbdc/psm.c ============================================================================== --- head/sys/dev/atkbdc/psm.c Mon Mar 16 08:19:11 2009 (r189869) +++ head/sys/dev/atkbdc/psm.c Mon Mar 16 08:21:51 2009 (r189870) @@ -70,7 +70,10 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include +#include #include #include #include @@ -299,6 +302,7 @@ struct psm_softc { /* Driver status inf struct cdev *bdev; int lasterr; int cmdcount; + struct sigio *async; /* Processes waiting for SIGIO */ }; static devclass_t psm_devclass; #define PSM_SOFTC(unit) \ @@ -1490,6 +1494,7 @@ psmopen(struct cdev *dev, int flag, int sc->mode.level = sc->dflt_mode.level; sc->mode.protocol = sc->dflt_mode.protocol; sc->watchdog = FALSE; + sc->async = NULL; /* flush the event queue */ sc->queue.count = 0; @@ -1629,6 +1634,12 @@ psmclose(struct cdev *dev, int flag, int /* remove anything left in the output buffer */ empty_aux_buffer(sc->kbdc, 10); + /* clean up and sigio requests */ + if (sc->async != NULL) { + funsetown(&sc->async); + sc->async = NULL; + } + /* close is almost always successful */ sc->state &= ~PSM_OPEN; kbdc_lock(sc->kbdc, FALSE); @@ -2190,6 +2201,15 @@ psmioctl(struct cdev *dev, u_long cmd, c break; #endif /* MOUSE_GETHWID */ + case FIONBIO: + case FIOASYNC: + break; + case FIOSETOWN: + error = fsetown(*(int *)addr, &sc->async); + break; + case FIOGETOWN: + *(int *) addr = fgetown(&sc->async); + break; default: return (ENOTTY); } @@ -3454,6 +3474,9 @@ next: wakeup(sc); } selwakeuppri(&sc->rsel, PZERO); + if (sc->async != NULL) { + pgsigio(&sc->async, SIGIO, 0); + } sc->state &= ~PSM_SOFTARMED; splx(s); } From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 08:40:06 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 346B6106566C; Mon, 16 Mar 2009 08:40:06 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from redbull.bpaserver.net (redbullneu.bpaserver.net [213.198.78.217]) by mx1.freebsd.org (Postfix) with ESMTP id D16258FC13; Mon, 16 Mar 2009 08:40:05 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from outgoing.leidinger.net (pD9E2EC7B.dip.t-dialin.net [217.226.236.123]) by redbull.bpaserver.net (Postfix) with ESMTP id 8D1FB2E1E0; Mon, 16 Mar 2009 09:39:57 +0100 (CET) Received: from webmail.leidinger.net (webmail.leidinger.net [192.168.1.102]) by outgoing.leidinger.net (Postfix) with ESMTP id F375EC3EC9; Mon, 16 Mar 2009 09:39:53 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=Leidinger.net; s=outgoing-alex; t=1237192794; bh=IGsz3O1eZdATtzJM3eD8NRcu01q4nu+Td nt90mkmQhw=; h=Message-ID:Date:From:To:Cc:Subject:References: In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=3mTV/s2a9d5JoRBr+75MtQE9+ZiooDueui1AyEA2uoxQvmeZq9yRobWc2M2oZ07vF UqXxON4eFwSiI0sNGS9RJjkD6D0t2Bv4fBqWV7gKp3vlFZafPx94KgvTUy+00bwZPKk vxl+mbk374+g7A7UjD0G5+oQwMG9TAdlFSH7u53+k1PUCbd7lGOZPKGbVtMOi3yOjJI 8u8rG6c0ldNB8Zgghzj5mFjGsdA0OrN3TxoaVHgIUJf3upT4+nAHvJwAcFASKWIhfV6 e5Sx1dADTMEiX1b9UmR+WdTrJ+YMjiOPkZzkNcExDOv4Hs0h92lcma0Gyoo4JPaIVkl JBjTeFpQw== Received: (from www@localhost) by webmail.leidinger.net (8.14.3/8.13.8/Submit) id n2G8dr0w098616; Mon, 16 Mar 2009 09:39:53 +0100 (CET) (envelope-from Alexander@Leidinger.net) Received: from pslux.cec.eu.int (pslux.cec.eu.int [158.169.9.14]) by webmail.leidinger.net (Horde Framework) with HTTP; Mon, 16 Mar 2009 09:39:53 +0100 Message-ID: <20090316093953.15672m44k7hxieuc@webmail.leidinger.net> X-Priority: 3 (Normal) Date: Mon, 16 Mar 2009 09:39:53 +0100 From: Alexander Leidinger To: Dmitry Chagin References: <200903151938.n2FJcYAV037828@svn.freebsd.org> In-Reply-To: <200903151938.n2FJcYAV037828@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Internet Messaging Program (IMP) H3 (4.3) / FreeBSD-8.0 X-BPAnet-MailScanner-Information: Please contact the ISP for more information X-MailScanner-ID: 8D1FB2E1E0.6F4FC X-BPAnet-MailScanner: Found to be clean X-BPAnet-MailScanner-SpamCheck: not spam, ORDB-RBL, SpamAssassin (not cached, score=-14.823, required 6, BAYES_00 -15.00, DKIM_SIGNED 0.00, DKIM_VERIFIED -0.00, RDNS_DYNAMIC 0.10, TW_SV 0.08) X-BPAnet-MailScanner-From: alexander@leidinger.net X-Spam-Status: No Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r189862 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 08:40:06 -0000 Quoting Dmitry Chagin (from Sun, 15 Mar 2009 19:38:34 +0000 (UTC)): > Author: dchagin > Date: Sun Mar 15 19:38:34 2009 > New Revision: 189862 > URL: http://svn.freebsd.org/changeset/base/189862 > > Log: > Ignore FUTEX_FD op, as it is done by linux. It would be good if there would be a comment for this case, telling that this is done by Linux too, else someone may think it's a missing feature in FreeBSD. Bye, Alexander. -- Philosophy will clip an angel's wings. -- John Keats http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 09:00:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E12D1065672; Mon, 16 Mar 2009 09:00:30 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by mx1.freebsd.org (Postfix) with ESMTP id 0AFE18FC1E; Mon, 16 Mar 2009 09:00:29 +0000 (UTC) (envelope-from dchagin@dchagin.static.corbina.ru) Received: from corbina.ru (mail.post.ru [195.14.50.16]) by contrabass.post.ru (Postfix) with ESMTP id 24C6D7033C; Mon, 16 Mar 2009 12:00:29 +0300 (MSK) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 Received: from [10.208.17.3] (HELO dchagin.static.corbina.ru) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1681510985; Mon, 16 Mar 2009 12:00:29 +0300 Received: from dchagin.static.corbina.ru (localhost.chd.net [127.0.0.1]) by dchagin.static.corbina.ru (8.14.3/8.14.3) with ESMTP id n2G90SWS085328; Mon, 16 Mar 2009 12:00:28 +0300 (MSK) (envelope-from dchagin@dchagin.static.corbina.ru) Received: (from dchagin@localhost) by dchagin.static.corbina.ru (8.14.3/8.14.3/Submit) id n2G90NYR085327; Mon, 16 Mar 2009 12:00:23 +0300 (MSK) (envelope-from dchagin) Date: Mon, 16 Mar 2009 12:00:23 +0300 From: Chagin Dmitry To: Alexander Leidinger Message-ID: <20090316090023.GA85280@dchagin.static.corbina.ru> References: <200903151938.n2FJcYAV037828@svn.freebsd.org> <20090316093953.15672m44k7hxieuc@webmail.leidinger.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Q68bSM7Ycu6FN28Q" Content-Disposition: inline In-Reply-To: <20090316093953.15672m44k7hxieuc@webmail.leidinger.net> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r189862 - head/sys/compat/linux X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 09:00:30 -0000 --Q68bSM7Ycu6FN28Q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Mar 16, 2009 at 09:39:53AM +0100, Alexander Leidinger wrote: > Quoting Dmitry Chagin (from Sun, 15 Mar 2009 =20 > 19:38:34 +0000 (UTC)): >=20 > > Author: dchagin > > Date: Sun Mar 15 19:38:34 2009 > > New Revision: 189862 > > URL: http://svn.freebsd.org/changeset/base/189862 > > > > Log: > > Ignore FUTEX_FD op, as it is done by linux. >=20 > It would be good if there would be a comment for this case, telling =20 > that this is done by Linux too, else someone may think it's a missing =20 > feature in FreeBSD. >=20 ok, thnx. bellow a commit msg about it. commit 82af7aca56c67061420d618cc5a30f0fd4106b80 Author: Eric Sesterhenn Date: Fri Jan 25 10:40:46 2008 +0100 Removal of FUTEX_FD =20 Since FUTEX_FD was scheduled for removal in June 2007 lets remove it. =20 Google Code search found no users for it and NGPT was abandoned in 2003 according to IBM. futex.h is left untouched to make sure the id does not get reassigned. Since queue_me() has no users left it is commented out to avoid a warning, i didnt remove it completely since it is part of the internal api (matching unqueue_me()) =20 --=20 Have fun! chd --Q68bSM7Ycu6FN28Q Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (FreeBSD) iEYEARECAAYFAkm+FSYACgkQ0t2Tb3OO/O1aTACfbmnnrnvmKhog5Fe5gbA2iaRr lrgAnRYLJt7nrBz2A/GfhBZmC34Z5GuH =FZTx -----END PGP SIGNATURE----- --Q68bSM7Ycu6FN28Q-- From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 09:22:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3241E1065672; Mon, 16 Mar 2009 09:22:35 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2120A8FC0A; Mon, 16 Mar 2009 09:22:35 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2G9MZMq053943; Mon, 16 Mar 2009 09:22:35 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2G9MZim053942; Mon, 16 Mar 2009 09:22:35 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903160922.n2G9MZim053942@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 09:22:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189871 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 09:22:37 -0000 Author: rwatson Date: Mon Mar 16 09:22:34 2009 New Revision: 189871 URL: http://svn.freebsd.org/changeset/base/189871 Log: if_hwassist should be initialized with CSUM, rather than IFCAP, flags. Submitted by: yongari MFC after: 1 week Modified: head/sys/net/if_loop.c Modified: head/sys/net/if_loop.c ============================================================================== --- head/sys/net/if_loop.c Mon Mar 16 08:21:51 2009 (r189870) +++ head/sys/net/if_loop.c Mon Mar 16 09:22:34 2009 (r189871) @@ -138,8 +138,8 @@ lo_clone_create(struct if_clone *ifc, in ifp->if_ioctl = loioctl; ifp->if_output = looutput; ifp->if_snd.ifq_maxlen = ifqmaxlen; - ifp->if_hwassist = ifp->if_capabilities = ifp->if_capenable = - IFCAP_HWCSUM; + ifp->if_capabilities = ifp->if_capenable = IFCAP_HWCSUM; + ifp->if_hwassist = CSUM_IP | CSUM_TCP | CSUM_UDP; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); if (V_loif == NULL) From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 10:36:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C1E71065673; Mon, 16 Mar 2009 10:36:24 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5ADB88FC08; Mon, 16 Mar 2009 10:36:24 +0000 (UTC) (envelope-from dchagin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GAaO0n058122; Mon, 16 Mar 2009 10:36:24 GMT (envelope-from dchagin@svn.freebsd.org) Received: (from dchagin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GAaOj7058120; Mon, 16 Mar 2009 10:36:24 GMT (envelope-from dchagin@svn.freebsd.org) Message-Id: <200903161036.n2GAaOj7058120@svn.freebsd.org> From: Dmitry Chagin Date: Mon, 16 Mar 2009 10:36:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189872 - in head/sys: amd64/conf boot/forth X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 10:36:24 -0000 Author: dchagin Date: Mon Mar 16 10:36:24 2009 New Revision: 189872 URL: http://svn.freebsd.org/changeset/base/189872 Log: Chase the k8temp->amdtemp rename in NOTES and loader.conf. Approved by: kib (mentor) Modified: head/sys/amd64/conf/NOTES head/sys/boot/forth/loader.conf Modified: head/sys/amd64/conf/NOTES ============================================================================== --- head/sys/amd64/conf/NOTES Mon Mar 16 09:22:34 2009 (r189871) +++ head/sys/amd64/conf/NOTES Mon Mar 16 10:36:24 2009 (r189872) @@ -400,10 +400,10 @@ device ichwd # Temperature sensors: # # coretemp: on-die sensor on Intel Core and newer CPUs -# k8temp: on-die sensor on AMD K8 CPUs +# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs # device coretemp -device k8temp +device amdtemp # # CPU control pseudo-device. Provides access to MSRs, CPUID info and Modified: head/sys/boot/forth/loader.conf ============================================================================== --- head/sys/boot/forth/loader.conf Mon Mar 16 09:22:34 2009 (r189871) +++ head/sys/boot/forth/loader.conf Mon Mar 16 10:36:24 2009 (r189872) @@ -402,7 +402,7 @@ accf_http_load="NO" # Wait for full HTT random_load="NO" # Random device speaker_load="NO" # AT speaker module coretemp_load="NO" # Intel Core CPU temperature monitor -k8temp_load="NO" # AMD K8 temperature monitor +amdtemp_load="NO" # AMD K8/K10/K11 temperature monitor ############################################################## ### ACPI settings ########################################## From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 10:56:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D46F1065678; Mon, 16 Mar 2009 10:56:51 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01D3A8FC2D; Mon, 16 Mar 2009 10:56:51 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GAuoAn058533; Mon, 16 Mar 2009 10:56:50 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GAuoQM058532; Mon, 16 Mar 2009 10:56:50 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161056.n2GAuoQM058532@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 10:56:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189873 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 10:56:51 -0000 Author: rwatson Date: Mon Mar 16 10:56:50 2009 New Revision: 189873 URL: http://svn.freebsd.org/changeset/base/189873 Log: Define and use two macros for loopback checksum offload: LO_CSUM_FEATURES - a bitmask of supported transmit offload features, which will be stored in if_hwassist if IFCAP_TXCSUM is enabled, and be cleared from mbuf packet header csum flags on transmit. (1) LO_CSUM_SET - a bitmask of supported receive offload features, which will be set on the mbuf packet header csum flags on transmit if IFCAP_RXCSUM is enabled. While here, fix SCTP offload for loopback: offer generation on the transmit side, don't just skip validation on the receive side. Obtained from: DragonflyBSD (1) MFC after: 1 week Modified: head/sys/net/if_loop.c Modified: head/sys/net/if_loop.c ============================================================================== --- head/sys/net/if_loop.c Mon Mar 16 10:36:24 2009 (r189872) +++ head/sys/net/if_loop.c Mon Mar 16 10:56:50 2009 (r189873) @@ -94,6 +94,11 @@ #define LOMTU 16384 #endif +#define LO_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP | CSUM_SCTP) +#define LO_CSUM_SET (CSUM_DATA_VALID | CSUM_PSEUDO_HDR | \ + CSUM_IP_CHECKED | CSUM_IP_VALID | \ + CSUM_SCTP_VALID) + int loioctl(struct ifnet *, u_long, caddr_t); static void lortrequest(int, struct rtentry *, struct rt_addrinfo *); int looutput(struct ifnet *ifp, struct mbuf *m, @@ -139,7 +144,7 @@ lo_clone_create(struct if_clone *ifc, in ifp->if_output = looutput; ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_capabilities = ifp->if_capenable = IFCAP_HWCSUM; - ifp->if_hwassist = CSUM_IP | CSUM_TCP | CSUM_UDP; + ifp->if_hwassist = LO_CSUM_FEATURES; if_attach(ifp); bpfattach(ifp, DLT_NULL, sizeof(u_int32_t)); if (V_loif == NULL) @@ -216,11 +221,9 @@ looutput(struct ifnet *ifp, struct mbuf case AF_INET: if (ifp->if_capenable & IFCAP_RXCSUM) { m->m_pkthdr.csum_data = 0xffff; - m->m_pkthdr.csum_flags = CSUM_DATA_VALID | - CSUM_PSEUDO_HDR | CSUM_IP_CHECKED | - CSUM_IP_VALID | CSUM_SCTP_VALID; + m->m_pkthdr.csum_flags = LO_CSUM_SET; } - m->m_pkthdr.csum_flags &= ~(CSUM_IP | CSUM_TCP | CSUM_UDP); + m->m_pkthdr.csum_flags &= ~LO_CSUM_FEATURES; case AF_INET6: case AF_IPX: case AF_APPLETALK: @@ -407,7 +410,7 @@ loioctl(struct ifnet *ifp, u_long cmd, c if ((mask & IFCAP_TXCSUM) != 0) ifp->if_capenable ^= IFCAP_TXCSUM; if (ifp->if_capenable & IFCAP_TXCSUM) - ifp->if_hwassist = CSUM_IP | CSUM_TCP | CSUM_UDP; + ifp->if_hwassist = LO_CSUM_FEATURES; else ifp->if_hwassist = 0; break; From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 11:19:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 670FD10657E9; Mon, 16 Mar 2009 11:19:26 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 101858FC4E; Mon, 16 Mar 2009 11:19:08 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GBJ71h058967; Mon, 16 Mar 2009 11:19:07 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GBJ77p058966; Mon, 16 Mar 2009 11:19:07 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <200903161119.n2GBJ77p058966@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 16 Mar 2009 11:19:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189874 - head/sys/compat/ndis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 11:20:00 -0000 Author: weongyo Date: Mon Mar 16 11:19:07 2009 New Revision: 189874 URL: http://svn.freebsd.org/changeset/base/189874 Log: use usb2_desc_foreach() to iterate the USB config descriptor instread of accessing structures directly to check some invalid descriptors. Pointed by: hps Modified: head/sys/compat/ndis/subr_usbd.c Modified: head/sys/compat/ndis/subr_usbd.c ============================================================================== --- head/sys/compat/ndis/subr_usbd.c Mon Mar 16 10:56:50 2009 (r189873) +++ head/sys/compat/ndis/subr_usbd.c Mon Mar 16 11:19:07 2009 (r189874) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -1206,12 +1207,11 @@ USBD_ParseConfigurationDescriptorEx(conf int32_t intfsubclass; int32_t intfproto; { - char *pos; + struct usb2_descriptor *next = NULL; usb_interface_descriptor_t *desc; - for (pos = start; pos < ((char *)conf + UGETW(conf->wTotalLength)); - pos += desc->bLength) { - desc = (usb_interface_descriptor_t *)pos; + while ((next = usb2_desc_foreach(conf, next)) != NULL) { + desc = (usb_interface_descriptor_t *)next; if (desc->bDescriptorType != UDESC_INTERFACE) continue; if (!(intfnum == -1 || desc->bInterfaceNumber == intfnum)) From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 12:16:17 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9299910656DA; Mon, 16 Mar 2009 12:16:17 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 65FE68FC08; Mon, 16 Mar 2009 12:16:17 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GCGHrN060315; Mon, 16 Mar 2009 12:16:17 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GCGHjI060314; Mon, 16 Mar 2009 12:16:17 GMT (envelope-from des@svn.freebsd.org) Message-Id: <200903161216.n2GCGHjI060314@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Mon, 16 Mar 2009 12:16:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189875 - head/bin/cat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 12:16:19 -0000 Author: des Date: Mon Mar 16 12:16:17 2009 New Revision: 189875 URL: http://svn.freebsd.org/changeset/base/189875 Log: cat(1) compiles fine at WARNS level 6. Modified: head/bin/cat/Makefile Modified: head/bin/cat/Makefile ============================================================================== --- head/bin/cat/Makefile Mon Mar 16 11:19:07 2009 (r189874) +++ head/bin/cat/Makefile Mon Mar 16 12:16:17 2009 (r189875) @@ -2,5 +2,6 @@ # $FreeBSD$ PROG= cat +WARNS?= 6 .include From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 12:42:23 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7136B106566B; Mon, 16 Mar 2009 12:42:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5F8568FC13; Mon, 16 Mar 2009 12:42:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GCgNMf060831; Mon, 16 Mar 2009 12:42:23 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GCgNMG060830; Mon, 16 Mar 2009 12:42:23 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200903161242.n2GCgNMG060830@svn.freebsd.org> From: Alexander Motin Date: Mon, 16 Mar 2009 12:42:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189876 - head/sys/dev/sound/pci/hda X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 12:42:24 -0000 Author: mav Date: Mon Mar 16 12:42:23 2009 New Revision: 189876 URL: http://svn.freebsd.org/changeset/base/189876 Log: Fix spelling in message. Modified: head/sys/dev/sound/pci/hda/hdac.c Modified: head/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.c Mon Mar 16 12:16:17 2009 (r189875) +++ head/sys/dev/sound/pci/hda/hdac.c Mon Mar 16 12:42:23 2009 (r189876) @@ -7923,9 +7923,9 @@ hdac_pcm_attach(device_t dev) device_printf(dev, "+--------------------------------------+\n"); hdac_dump_pcmchannels(pdevinfo); device_printf(dev, "\n"); - device_printf(dev, "+--------------------------------+\n"); - device_printf(dev, "| DUMPING Playback/Record Pathes |\n"); - device_printf(dev, "+--------------------------------+\n"); + device_printf(dev, "+-------------------------------+\n"); + device_printf(dev, "| DUMPING Playback/Record Paths |\n"); + device_printf(dev, "+-------------------------------+\n"); hdac_dump_dac(pdevinfo); hdac_dump_adc(pdevinfo); hdac_dump_mix(pdevinfo); From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 15:09:48 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CB7E106568A; Mon, 16 Mar 2009 15:09:48 +0000 (UTC) (envelope-from vanhu@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 897208FC18; Mon, 16 Mar 2009 15:09:48 +0000 (UTC) (envelope-from vanhu@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GF9lxd063774; Mon, 16 Mar 2009 15:09:47 GMT (envelope-from vanhu@svn.freebsd.org) Received: (from vanhu@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GF9lT6063773; Mon, 16 Mar 2009 15:09:47 GMT (envelope-from vanhu@svn.freebsd.org) Message-Id: <200903161509.n2GF9lT6063773@svn.freebsd.org> From: VANHULLEBUS Yvan Date: Mon, 16 Mar 2009 15:09:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189877 - head/contrib/libpcap X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 15:09:50 -0000 Author: vanhu Date: Mon Mar 16 15:09:47 2009 New Revision: 189877 URL: http://svn.freebsd.org/changeset/base/189877 Log: Added DLT_ENC to map list, so it is now possible to save dumps on enc0 Reviewed by: gnn(mentor) Obtained from: NETASQ MFC after: 1 week Modified: head/contrib/libpcap/savefile.c Modified: head/contrib/libpcap/savefile.c ============================================================================== --- head/contrib/libpcap/savefile.c Mon Mar 16 12:42:23 2009 (r189876) +++ head/contrib/libpcap/savefile.c Mon Mar 16 15:09:47 2009 (r189877) @@ -811,6 +811,9 @@ static struct linktype_map { /* IPMB */ { DLT_IPMB, LINKTYPE_IPMB }, + /* enc0 device */ + { DLT_ENC, LINKTYPE_ENC }, + { -1, -1 } }; From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 15:39:47 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DF561065678; Mon, 16 Mar 2009 15:39:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 40EDB8FC14; Mon, 16 Mar 2009 15:39:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GFdlF0064400; Mon, 16 Mar 2009 15:39:47 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GFdliL064395; Mon, 16 Mar 2009 15:39:47 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200903161539.n2GFdliL064395@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 16 Mar 2009 15:39:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189878 - in head/sys: gnu/fs/xfs/FreeBSD kern sys ufs/ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 15:39:48 -0000 Author: kib Date: Mon Mar 16 15:39:46 2009 New Revision: 189878 URL: http://svn.freebsd.org/changeset/base/189878 Log: Fix two issues with bufdaemon, often causing the processes to hang in the "nbufkv" sleep. First, ffs background cg group block write requests a new buffer for the shadow copy. When ffs_bufwrite() is called from the bufdaemon due to buffers shortage, requesting the buffer deadlock bufdaemon. Introduce a new flag for getnewbuf(), GB_NOWAIT_BD, to request getblk to not block while allocating the buffer, and return failure instead. Add a flag argument to the geteblk to allow to pass the flags to getblk(). Do not repeat the getnewbuf() call from geteblk if buffer allocation failed and either GB_NOWAIT_BD is specified, or geteblk() is called from bufdaemon (or its helper, see below). In ffs_bufwrite(), fall back to synchronous cg block write if shadow block allocation failed. Since r107847, buffer write assumes that vnode owning the buffer is locked. The second problem is that buffer cache may accumulate many buffers belonging to limited number of vnodes. With such workload, quite often threads that own the mentioned vnodes locks are trying to read another block from the vnodes, and, due to buffer cache exhaustion, are asking bufdaemon for help. Bufdaemon is unable to make any substantial progress because the vnodes are locked. Allow the threads owning vnode locks to help the bufdaemon by doing the flush pass over the buffer cache before getnewbuf() is going to uninterruptible sleep. Move the flushing code from buf_daemon() to new helper function buf_do_flush(), that is called from getnewbuf(). The number of buffers flushed by single call to buf_do_flush() from getnewbuf() is limited by new sysctl vfs.flushbufqtarget. Prevent recursive calls to buf_do_flush() by marking the bufdaemon and threads that temporarily help bufdaemon by TDP_BUFNEED flag. In collaboration with: pho Reviewed by: tegge (previous version) Tested by: glebius, yandex ... MFC after: 3 weeks Modified: head/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c head/sys/kern/vfs_bio.c head/sys/sys/buf.h head/sys/sys/proc.h head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c ============================================================================== --- head/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c Mon Mar 16 15:09:47 2009 (r189877) +++ head/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c Mon Mar 16 15:39:46 2009 (r189878) @@ -81,7 +81,7 @@ xfs_buf_get_empty(size_t size, xfs_buft { struct buf *bp; - bp = geteblk(0); + bp = geteblk(0, 0); if (bp != NULL) { bp->b_bufsize = size; bp->b_bcount = size; @@ -100,7 +100,7 @@ xfs_buf_get_noaddr(size_t len, xfs_bufta if (len >= MAXPHYS) return (NULL); - bp = geteblk(len); + bp = geteblk(len, 0); if (bp != NULL) { BUF_ASSERT_HELD(bp); Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Mon Mar 16 15:09:47 2009 (r189877) +++ head/sys/kern/vfs_bio.c Mon Mar 16 15:39:46 2009 (r189878) @@ -106,7 +106,8 @@ static void vfs_setdirty_locked_object(s static void vfs_vmio_release(struct buf *bp); static int vfs_bio_clcheck(struct vnode *vp, int size, daddr_t lblkno, daddr_t blkno); -static int flushbufqueues(int, int); +static int buf_do_flush(struct vnode *vp); +static int flushbufqueues(struct vnode *, int, int); static void buf_daemon(void); static void bremfreel(struct buf *bp); #if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \ @@ -198,6 +199,9 @@ SYSCTL_INT(_vfs, OID_AUTO, getnewbufcall static int getnewbufrestarts; SYSCTL_INT(_vfs, OID_AUTO, getnewbufrestarts, CTLFLAG_RW, &getnewbufrestarts, 0, "Number of times getnewbuf has had to restart a buffer aquisition"); +static int flushbufqtarget = 100; +SYSCTL_INT(_vfs, OID_AUTO, flushbufqtarget, CTLFLAG_RW, &flushbufqtarget, 0, + "Amount of work to do in flushbufqueues when helping bufdaemon"); /* * Wakeup point for bufdaemon, as well as indicator of whether it is already @@ -258,6 +262,7 @@ static struct mtx nblock; #define QUEUE_DIRTY_GIANT 3 /* B_DELWRI buffers that need giant */ #define QUEUE_EMPTYKVA 4 /* empty buffer headers w/KVA assignment */ #define QUEUE_EMPTY 5 /* empty buffer headers */ +#define QUEUE_SENTINEL 1024 /* not an queue index, but mark for sentinel */ /* Queues for free buffers with various properties */ static TAILQ_HEAD(bqueues, buf) bufqueues[BUFFER_QUEUES] = { { 0 } }; @@ -1710,21 +1715,23 @@ vfs_bio_awrite(struct buf *bp) */ static struct buf * -getnewbuf(int slpflag, int slptimeo, int size, int maxsize) +getnewbuf(struct vnode *vp, int slpflag, int slptimeo, int size, int maxsize, + int gbflags) { + struct thread *td; struct buf *bp; struct buf *nbp; int defrag = 0; int nqindex; static int flushingbufs; + td = curthread; /* * We can't afford to block since we might be holding a vnode lock, * which may prevent system daemons from running. We deal with * low-memory situations by proactively returning memory and running * async I/O rather then sync I/O. */ - atomic_add_int(&getnewbufcalls, 1); atomic_subtract_int(&getnewbufrestarts, 1); restart: @@ -1956,8 +1963,9 @@ restart: */ if (bp == NULL) { - int flags; + int flags, norunbuf; char *waitmsg; + int fl; if (defrag) { flags = VFS_BIO_NEED_BUFSPACE; @@ -1975,9 +1983,35 @@ restart: mtx_unlock(&bqlock); bd_speedup(); /* heeeelp */ + if (gbflags & GB_NOWAIT_BD) + return (NULL); mtx_lock(&nblock); while (needsbuffer & flags) { + if (vp != NULL && (td->td_pflags & TDP_BUFNEED) == 0) { + mtx_unlock(&nblock); + /* + * getblk() is called with a vnode + * locked, and some majority of the + * dirty buffers may as well belong to + * the vnode. Flushing the buffers + * there would make a progress that + * cannot be achieved by the + * buf_daemon, that cannot lock the + * vnode. + */ + norunbuf = ~(TDP_BUFNEED | TDP_NORUNNINGBUF) | + (td->td_pflags & TDP_NORUNNINGBUF); + /* play bufdaemon */ + td->td_pflags |= TDP_BUFNEED | TDP_NORUNNINGBUF; + fl = buf_do_flush(vp); + td->td_pflags &= norunbuf; + mtx_lock(&nblock); + if (fl != 0) + continue; + if ((needsbuffer & flags) == 0) + break; + } if (msleep(&needsbuffer, &nblock, (PRIBIO + 4) | slpflag, waitmsg, slptimeo)) { mtx_unlock(&nblock); @@ -2046,6 +2080,35 @@ static struct kproc_desc buf_kp = { }; SYSINIT(bufdaemon, SI_SUB_KTHREAD_BUF, SI_ORDER_FIRST, kproc_start, &buf_kp); +static int +buf_do_flush(struct vnode *vp) +{ + int flushed; + + flushed = flushbufqueues(vp, QUEUE_DIRTY, 0); + /* The list empty check here is slightly racy */ + if (!TAILQ_EMPTY(&bufqueues[QUEUE_DIRTY_GIANT])) { + mtx_lock(&Giant); + flushed += flushbufqueues(vp, QUEUE_DIRTY_GIANT, 0); + mtx_unlock(&Giant); + } + if (flushed == 0) { + /* + * Could not find any buffers without rollback + * dependencies, so just write the first one + * in the hopes of eventually making progress. + */ + flushbufqueues(vp, QUEUE_DIRTY, 1); + if (!TAILQ_EMPTY( + &bufqueues[QUEUE_DIRTY_GIANT])) { + mtx_lock(&Giant); + flushbufqueues(vp, QUEUE_DIRTY_GIANT, 1); + mtx_unlock(&Giant); + } + } + return (flushed); +} + static void buf_daemon() { @@ -2059,7 +2122,7 @@ buf_daemon() /* * This process is allowed to take the buffer cache to the limit */ - curthread->td_pflags |= TDP_NORUNNINGBUF; + curthread->td_pflags |= TDP_NORUNNINGBUF | TDP_BUFNEED; mtx_lock(&bdlock); for (;;) { bd_request = 0; @@ -2074,30 +2137,8 @@ buf_daemon() * normally would so they can run in parallel with our drain. */ while (numdirtybuffers > lodirtybuffers) { - int flushed; - - flushed = flushbufqueues(QUEUE_DIRTY, 0); - /* The list empty check here is slightly racy */ - if (!TAILQ_EMPTY(&bufqueues[QUEUE_DIRTY_GIANT])) { - mtx_lock(&Giant); - flushed += flushbufqueues(QUEUE_DIRTY_GIANT, 0); - mtx_unlock(&Giant); - } - if (flushed == 0) { - /* - * Could not find any buffers without rollback - * dependencies, so just write the first one - * in the hopes of eventually making progress. - */ - flushbufqueues(QUEUE_DIRTY, 1); - if (!TAILQ_EMPTY( - &bufqueues[QUEUE_DIRTY_GIANT])) { - mtx_lock(&Giant); - flushbufqueues(QUEUE_DIRTY_GIANT, 1); - mtx_unlock(&Giant); - } + if (buf_do_flush(NULL) == 0) break; - } uio_yield(); } @@ -2143,7 +2184,7 @@ SYSCTL_INT(_vfs, OID_AUTO, flushwithdeps 0, "Number of buffers flushed with dependecies that require rollbacks"); static int -flushbufqueues(int queue, int flushdeps) +flushbufqueues(struct vnode *lvp, int queue, int flushdeps) { struct buf sentinel; struct vnode *vp; @@ -2153,20 +2194,37 @@ flushbufqueues(int queue, int flushdeps) int flushed; int target; - target = numdirtybuffers - lodirtybuffers; - if (flushdeps && target > 2) - target /= 2; + if (lvp == NULL) { + target = numdirtybuffers - lodirtybuffers; + if (flushdeps && target > 2) + target /= 2; + } else + target = flushbufqtarget; flushed = 0; bp = NULL; + sentinel.b_qindex = QUEUE_SENTINEL; mtx_lock(&bqlock); - TAILQ_INSERT_TAIL(&bufqueues[queue], &sentinel, b_freelist); + TAILQ_INSERT_HEAD(&bufqueues[queue], &sentinel, b_freelist); while (flushed != target) { - bp = TAILQ_FIRST(&bufqueues[queue]); - if (bp == &sentinel) + bp = TAILQ_NEXT(&sentinel, b_freelist); + if (bp != NULL) { + TAILQ_REMOVE(&bufqueues[queue], &sentinel, b_freelist); + TAILQ_INSERT_AFTER(&bufqueues[queue], bp, &sentinel, + b_freelist); + } else break; - TAILQ_REMOVE(&bufqueues[queue], bp, b_freelist); - TAILQ_INSERT_TAIL(&bufqueues[queue], bp, b_freelist); - + /* + * Skip sentinels inserted by other invocations of the + * flushbufqueues(), taking care to not reorder them. + */ + if (bp->b_qindex == QUEUE_SENTINEL) + continue; + /* + * Only flush the buffers that belong to the + * vnode locked by the curthread. + */ + if (lvp != NULL && bp->b_vp != lvp) + continue; if (BUF_LOCK(bp, LK_EXCLUSIVE | LK_NOWAIT, NULL) != 0) continue; if (bp->b_pin_count > 0) { @@ -2214,16 +2272,27 @@ flushbufqueues(int queue, int flushdeps) BUF_UNLOCK(bp); continue; } - if (vn_lock(vp, LK_EXCLUSIVE | LK_NOWAIT) == 0) { + if (vn_lock(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_CANRECURSE) == 0) { mtx_unlock(&bqlock); CTR3(KTR_BUF, "flushbufqueue(%p) vp %p flags %X", bp, bp->b_vp, bp->b_flags); - vfs_bio_awrite(bp); + if (curproc == bufdaemonproc) + vfs_bio_awrite(bp); + else { + bremfree(bp); + bwrite(bp); + } vn_finished_write(mp); VOP_UNLOCK(vp, 0); flushwithdeps += hasdeps; flushed++; - waitrunningbufspace(); + + /* + * Sleeping on runningbufspace while holding + * vnode lock leads to deadlock. + */ + if (curproc == bufdaemonproc) + waitrunningbufspace(); numdirtywakeup((lodirtybuffers + hidirtybuffers) / 2); mtx_lock(&bqlock); continue; @@ -2605,7 +2674,7 @@ loop: maxsize = vmio ? size + (offset & PAGE_MASK) : size; maxsize = imax(maxsize, bsize); - bp = getnewbuf(slpflag, slptimeo, size, maxsize); + bp = getnewbuf(vp, slpflag, slptimeo, size, maxsize, flags); if (bp == NULL) { if (slpflag || slptimeo) return NULL; @@ -2680,14 +2749,17 @@ loop: * set to B_INVAL. */ struct buf * -geteblk(int size) +geteblk(int size, int flags) { struct buf *bp; int maxsize; maxsize = (size + BKVAMASK) & ~BKVAMASK; - while ((bp = getnewbuf(0, 0, size, maxsize)) == 0) - continue; + while ((bp = getnewbuf(NULL, 0, 0, size, maxsize, flags)) == NULL) { + if ((flags & GB_NOWAIT_BD) && + (curthread->td_pflags & TDP_BUFNEED) != 0) + return (NULL); + } allocbuf(bp, size); bp->b_flags |= B_INVAL; /* b_dep cleared by getnewbuf() */ BUF_ASSERT_HELD(bp); Modified: head/sys/sys/buf.h ============================================================================== --- head/sys/sys/buf.h Mon Mar 16 15:09:47 2009 (r189877) +++ head/sys/sys/buf.h Mon Mar 16 15:39:46 2009 (r189878) @@ -443,6 +443,7 @@ buf_countdeps(struct buf *bp, int i) */ #define GB_LOCK_NOWAIT 0x0001 /* Fail if we block on a buf lock. */ #define GB_NOCREAT 0x0002 /* Don't create a buf if not found. */ +#define GB_NOWAIT_BD 0x0004 /* Do not wait for bufdaemon */ #ifdef _KERNEL extern int nbuf; /* The number of buffer headers */ @@ -487,7 +488,7 @@ struct buf * getpbuf(int *); struct buf *incore(struct bufobj *, daddr_t); struct buf *gbincore(struct bufobj *, daddr_t); struct buf *getblk(struct vnode *, daddr_t, int, int, int, int); -struct buf *geteblk(int); +struct buf *geteblk(int, int); int bufwait(struct buf *); int bufwrite(struct buf *); void bufdone(struct buf *); Modified: head/sys/sys/proc.h ============================================================================== --- head/sys/sys/proc.h Mon Mar 16 15:09:47 2009 (r189877) +++ head/sys/sys/proc.h Mon Mar 16 15:39:46 2009 (r189878) @@ -345,7 +345,7 @@ do { \ #define TDP_OLDMASK 0x00000001 /* Need to restore mask after suspend. */ #define TDP_INKTR 0x00000002 /* Thread is currently in KTR code. */ #define TDP_INKTRACE 0x00000004 /* Thread is currently in KTRACE code. */ -#define TDP_UNUSED8 0x00000008 /* available */ +#define TDP_BUFNEED 0x00000008 /* Do not recurse into the buf flush */ #define TDP_COWINPROGRESS 0x00000010 /* Snapshot copy-on-write in progress. */ #define TDP_ALTSTACK 0x00000020 /* Have alternate signal stack. */ #define TDP_DEADLKTREAT 0x00000040 /* Lock aquisition - deadlock treatment. */ Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Mon Mar 16 15:09:47 2009 (r189877) +++ head/sys/ufs/ffs/ffs_vfsops.c Mon Mar 16 15:39:46 2009 (r189878) @@ -1845,7 +1845,9 @@ ffs_bufwrite(struct buf *bp) ("bufwrite: needs chained iodone (%p)", bp->b_iodone)); /* get a new block */ - newbp = geteblk(bp->b_bufsize); + newbp = geteblk(bp->b_bufsize, GB_NOWAIT_BD); + if (newbp == NULL) + goto normal_write; /* * set it to be identical to the old block. We have to @@ -1885,6 +1887,7 @@ ffs_bufwrite(struct buf *bp) } /* Let the normal bufwrite do the rest for us */ +normal_write: return (bufwrite(bp)); } From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 15:50:30 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 570CE10656FD; Mon, 16 Mar 2009 15:50:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 44DDA8FC0A; Mon, 16 Mar 2009 15:50:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GFoU9i064651; Mon, 16 Mar 2009 15:50:30 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GFoUZI064650; Mon, 16 Mar 2009 15:50:30 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <200903161550.n2GFoUZI064650@svn.freebsd.org> From: Alexander Motin Date: Mon, 16 Mar 2009 15:50:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189879 - head/sys/dev/sound/pci/hda X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 15:50:31 -0000 Author: mav Date: Mon Mar 16 15:50:29 2009 New Revision: 189879 URL: http://svn.freebsd.org/changeset/base/189879 Log: Remove CD input hack for ALC268 based Acer systems. Latest systems does not implement CD input in hardware, while unconditional showing it confuse users. Also it was made in the way that sometimes improper with present driver. Add patch for ALC268 based Acer TM5320 to make headphones jack sensing work. Default configuration defines two separate playback associations, which current driver unable to trace properly due to order they are defined and limited codec uniformity. Submitted by: G. Mirov Modified: head/sys/dev/sound/pci/hda/hdac.c Modified: head/sys/dev/sound/pci/hda/hdac.c ============================================================================== --- head/sys/dev/sound/pci/hda/hdac.c Mon Mar 16 15:39:46 2009 (r189878) +++ head/sys/dev/sound/pci/hda/hdac.c Mon Mar 16 15:50:29 2009 (r189879) @@ -83,7 +83,7 @@ #include "mixer_if.h" -#define HDA_DRV_TEST_REV "20090226_0129" +#define HDA_DRV_TEST_REV "20090316_0130" SND_DECLARE_FILE("$FreeBSD$"); @@ -247,6 +247,7 @@ SND_DECLARE_FILE("$FreeBSD$"); #define ACER_A4715_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x0133) #define ACER_3681WXM_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x0110) #define ACER_T6292_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x011b) +#define ACER_T5320_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x011f) #define ACER_ALL_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0xffff) /* Asus */ @@ -2452,13 +2453,14 @@ hdac_widget_pin_getconfig(struct hdac_wi patch = "seq=15 device=Headphones"; break; } - } else if (id == HDA_CODEC_ALC268 && - HDA_DEV_MATCH(ACER_ALL_SUBVENDOR, sc->pci_subvendor)) { + } else if (id == HDA_CODEC_ALC268) { + if (sc->pci_subvendor == ACER_T5320_SUBVENDOR) { switch (nid) { - case 28: - patch = "device=CD conn=fixed"; + case 20: /* Headphones Jack */ + patch = "as=1 seq=15"; break; } + } } if (patch != NULL) From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 15:54:22 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 34F1F1065673; Mon, 16 Mar 2009 15:54:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 234908FC23; Mon, 16 Mar 2009 15:54:22 +0000 (UTC) (envelope-from sam@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GFsM6e064762; Mon, 16 Mar 2009 15:54:22 GMT (envelope-from sam@svn.freebsd.org) Received: (from sam@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GFsMm6064761; Mon, 16 Mar 2009 15:54:22 GMT (envelope-from sam@svn.freebsd.org) Message-Id: <200903161554.n2GFsMm6064761@svn.freebsd.org> From: Sam Leffler Date: Mon, 16 Mar 2009 15:54:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189880 - head/share/man/man8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 15:54:22 -0000 Author: sam Date: Mon Mar 16 15:54:21 2009 New Revision: 189880 URL: http://svn.freebsd.org/changeset/base/189880 Log: (finally) document -n Modified: head/share/man/man8/nanobsd.8 Modified: head/share/man/man8/nanobsd.8 ============================================================================== --- head/share/man/man8/nanobsd.8 Mon Mar 16 15:50:29 2009 (r189879) +++ head/share/man/man8/nanobsd.8 Mon Mar 16 15:54:21 2009 (r189880) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 28, 2006 +.Dd March 16, 2009 .Dt NANOBSD 8 .Os .Sh NAME @@ -33,7 +33,7 @@ applications .Sh SYNOPSIS .Nm -.Op Fl bhkw +.Op Fl bhknw .Op Fl c Ar config-file .Sh DESCRIPTION The @@ -59,6 +59,12 @@ Display usage information. Skip the .Cm buildkernel stage of the build. +.It Fl n +Do not cleanup before each build stage. +This suppresses the normal cleanup work done before the +.Cm buildworld +stage and adds -DNO_CLEAN to the make command line +used for each build stage (world and kernel). .It Fl w Skip the .Cm buildworld From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 16:14:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D42C1065711; Mon, 16 Mar 2009 16:14:29 +0000 (UTC) (envelope-from jkoshy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 615868FC2D; Mon, 16 Mar 2009 16:14:27 +0000 (UTC) (envelope-from jkoshy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GGERAS065199; Mon, 16 Mar 2009 16:14:27 GMT (envelope-from jkoshy@svn.freebsd.org) Received: (from jkoshy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GGERJu065197; Mon, 16 Mar 2009 16:14:27 GMT (envelope-from jkoshy@svn.freebsd.org) Message-Id: <200903161614.n2GGERJu065197@svn.freebsd.org> From: Joseph Koshy Date: Mon, 16 Mar 2009 16:14:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189881 - svnadmin/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 16:14:30 -0000 Author: jkoshy Date: Mon Mar 16 16:14:26 2009 New Revision: 189881 URL: http://svn.freebsd.org/changeset/base/189881 Log: Please welcome Fabien Thomas (fabient) to the ranks of FreeBSD's "src" committers. Fabien will be working on PMC related things. I will be his mentor. Approved by: core Modified: svnadmin/conf/access svnadmin/conf/mentors Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Mon Mar 16 15:54:21 2009 (r189880) +++ svnadmin/conf/access Mon Mar 16 16:14:26 2009 (r189881) @@ -72,6 +72,7 @@ emaste emax eri erik +fabient fanf fjoe flz Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Mon Mar 16 15:54:21 2009 (r189880) +++ svnadmin/conf/mentors Mon Mar 16 16:14:26 2009 (r189881) @@ -14,6 +14,7 @@ avg rpaulo Co-mentor: jhb cbzimmer sam dchagin kib eri mlaier Co-mentor: thompsa +fabient jkoshy jamie bz Co-mentor: brooks rdivacky ed remko imp From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 16:15:14 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C31921065697; Mon, 16 Mar 2009 16:15:14 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 96FBF8FC15; Mon, 16 Mar 2009 16:15:14 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GGFEtn065282; Mon, 16 Mar 2009 16:15:14 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GGFERX065281; Mon, 16 Mar 2009 16:15:14 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <200903161615.n2GGFERX065281@svn.freebsd.org> From: Andriy Gapon Date: Mon, 16 Mar 2009 16:15:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189882 - head/sys/pci X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 16:15:16 -0000 Author: avg Date: Mon Mar 16 16:15:14 2009 New Revision: 189882 URL: http://svn.freebsd.org/changeset/base/189882 Log: intpm: minor enhancements 1. fix nointr check in intsmb_start, matters only if ENABLE_ALART is defined (by default, it is not); 2. drop unnecessary inspection/reporting of power-management io registers base address; 3. in verbose mode report errors from SMBus host controller and their mapping to smbus(4) errors; Approved by: jhb (mentor) Modified: head/sys/pci/intpm.c Modified: head/sys/pci/intpm.c ============================================================================== --- head/sys/pci/intpm.c Mon Mar 16 16:14:26 2009 (r189881) +++ head/sys/pci/intpm.c Mon Mar 16 16:15:14 2009 (r189882) @@ -167,10 +167,6 @@ intsmb_attach(device_t dev) goto fail; } - value = pci_read_config(dev, PCI_BASE_ADDR_PM, 4); - device_printf(dev, "PM %s %x\n", (value & 1) ? "I/O mapped" : "Memory", - value & 0xfffe); - sc->isbusy = 0; sc->smbus = device_add_child(dev, "smbus", -1); if (sc->smbus == NULL) { @@ -365,13 +361,13 @@ intsmb_start(struct intsmb_softc *sc, un tmp |= PIIX4_SMBHSTCNT_START; /* While not in autoconfiguration enable interrupts. */ - if (!cold || !nointr) + if (!cold && !nointr) tmp |= PIIX4_SMBHSTCNT_INTREN; bus_write_1(sc->io_res, PIIX4_SMBHSTCNT, tmp); } static int -intsmb_error(int status) +intsmb_error(device_t dev, int status) { int error = 0; @@ -381,6 +377,10 @@ intsmb_error(int status) error |= SMB_ECOLLI; if (status & PIIX4_SMBHSTSTAT_FAIL) error |= SMB_ENOACK; + + if (error != 0 && bootverbose) + device_printf(dev, "error = %d, status = %#x\n", error, status); + return (error); } @@ -410,7 +410,7 @@ intsmb_stop_poll(struct intsmb_softc *sc status = bus_read_1(sc->io_res, PIIX4_SMBHSTSTS); if (!(status & PIIX4_SMBHSTSTAT_BUSY)) { sc->isbusy = 0; - error = intsmb_error(status); + error = intsmb_error(sc->dev, status); if (error == 0 && !(status & PIIX4_SMBHSTSTAT_INTR)) device_printf(sc->dev, "unknown cause why?\n"); return (error); @@ -442,7 +442,7 @@ intsmb_stop(struct intsmb_softc *sc) if (error == 0) { status = bus_read_1(sc->io_res, PIIX4_SMBHSTSTS); if (!(status & PIIX4_SMBHSTSTAT_BUSY)) { - error = intsmb_error(status); + error = intsmb_error(sc->dev, status); if (error == 0 && !(status & PIIX4_SMBHSTSTAT_INTR)) device_printf(sc->dev, "unknown cause why?\n"); #ifdef ENABLE_ALART From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 16:33:09 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D96010656E3; Mon, 16 Mar 2009 16:33:09 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3AEB88FC12; Mon, 16 Mar 2009 16:33:09 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GGX9h9065828; Mon, 16 Mar 2009 16:33:09 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GGX966065825; Mon, 16 Mar 2009 16:33:09 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <200903161633.n2GGX966065825@svn.freebsd.org> From: Gabor Kovesdan Date: Mon, 16 Mar 2009 16:33:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189883 - head/lib/libc/nls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 16:33:10 -0000 Author: gabor (doc,ports committer) Date: Mon Mar 16 16:33:08 2009 New Revision: 189883 URL: http://svn.freebsd.org/changeset/base/189883 Log: - Add Brazilian Portuguese catalog [1] - Fixes for German catalog [2] PR: kern/132694 [1], conf/80504 [2] Submitted by: Murilo Opsfelder [1], brueffer [2] Added: head/lib/libc/nls/pt_BR.ISO8859-1.msg (contents, props changed) Modified: head/lib/libc/nls/Makefile.inc head/lib/libc/nls/de_DE.ISO8859-1.msg Modified: head/lib/libc/nls/Makefile.inc ============================================================================== --- head/lib/libc/nls/Makefile.inc Mon Mar 16 16:15:14 2009 (r189882) +++ head/lib/libc/nls/Makefile.inc Mon Mar 16 16:33:08 2009 (r189883) @@ -27,6 +27,7 @@ NLS+= mn_MN.UTF-8 NLS+= nl_NL.ISO8859-1 NLS+= no_NO.ISO8859-1 NLS+= pl_PL.ISO8859-2 +NLS+= pt_BR.ISO8859-1 NLS+= ru_RU.KOI8-R NLS+= sk_SK.ISO8859-2 NLS+= sv_SE.ISO8859-1 Modified: head/lib/libc/nls/de_DE.ISO8859-1.msg ============================================================================== --- head/lib/libc/nls/de_DE.ISO8859-1.msg Mon Mar 16 16:15:14 2009 (r189882) +++ head/lib/libc/nls/de_DE.ISO8859-1.msg Mon Mar 16 16:33:08 2009 (r189883) @@ -24,13 +24,13 @@ $ ENOEXEC $ EBADF 9 Ungültiger Dateideskriptor $ ECHILD -10 Kein Kindprozess +10 Keine Kindprozesse $ EDEADLK 11 Ein Deadlock wurde vermieden $ ENOMEM 12 Kann nicht genug Speicher belegen $ EACCES -13 Zugriff verboten +13 Zugriff verweigert $ EFAULT 14 Ungültige Adresse $ ENOTBLK @@ -50,13 +50,13 @@ $ EISDIR $ EINVAL 22 Ungültiges Argument $ ENFILE -23 Zu viele offene Dateien im gesamten System +23 Zu viele offene Dateien im System $ EMFILE 24 Zu viele offene Dateien $ ENOTTY -25 Ungültiger Ioctl für dieses Gerät +25 Ungültiger IOCTL für dieses Gerät $ ETXTBSY -26 Ausführbare Datei wird benutzt +26 Text-Datei ist belegt $ EFBIG 27 Datei zu groß $ ENOSPC @@ -70,13 +70,13 @@ $ EMLINK $ EPIPE 32 Unterbrochene Pipe $ EDOM -33 Numerisches Argument ausserhalb des Wertebereichs +33 Numerisches Argument außerhalb des Wertebereichs $ ERANGE -34 Ergebnis zu groß oder zu klein +34 Ergebnis zu groß $ EAGAIN, EWOULDBLOCK 35 Ressource vorübergehend nicht verfügbar $ EINPROGRESS -36 Operation wird jetzt fortgesetzt +36 Operation wird jetzt ausgeführt $ EALREADY 37 Operation wird bereits ausgeführt $ ENOTSOCK @@ -98,7 +98,7 @@ $ EOPNOTSUPP $ EPFNOSUPPORT 46 Protokollfamilie nicht unterstützt $ EAFNOSUPPORT -47 Addressart wird von der Protokollfamilie nicht unterstützt +47 Adressfamilie wird von der Protokollfamilie nicht unterstützt $ EADDRINUSE 48 Adresse wird bereits benutzt $ EADDRNOTAVAIL @@ -142,7 +142,7 @@ $ EPROCLIM $ EUSERS 68 Zu viele Benutzer $ EDQUOT -69 Plattenplatzlimit erschöpft +69 Platzlimit überschritten $ ESTALE 70 Verwaister NFS-Dateideskriptor $ EREMOTE @@ -150,7 +150,7 @@ $ EREMOTE $ EBADRPC 72 RPC-Struktur ist ungültig $ ERPCMISMATCH -73 RPC-Version stimmt nicht +73 RPC-Version ist falsch $ EPROGUNAVAIL 74 RPC-Programm nicht verfügbar $ EPROGMISMATCH @@ -164,7 +164,7 @@ $ ENOSYS $ EFTYPE 79 Ungültiger Dateityp oder Dateiformat $ EAUTH -80 Authentikationsfehler +80 Authentifikationsfehler $ ENEEDAUTH 81 Authentikator benötigt $ EIDRM @@ -173,30 +173,14 @@ $ ENOMSG 83 Keine Nachricht vom gewünschten Typ $ EOVERFLOW 84 Wert zu groß, um in Datentyp zu speichern -$ EILSEQ -85 Illegale Byte-Sequenz -$ ENOTSUP -86 Operation nicht unterstützt $ ECANCELED -87 Operation abgebrochen -$ EBADMSG -88 Ungültige Nachricht -$ ENODATA -89 Keine Nachricht verfügbar -$ ENOSR -90 Keine STREAM-Ressourcen verfügbar -$ ENOSTR -91 Kein STREAM -$ ETIME -92 Zeitüberschreitung bei STREAM Ioctl +85 Operation abgebrochen +$ EILSEQ +86 Ungültige Byte-Sequenz $ ENOATTR -93 Attribut nicht gefunden -$ EMULTIHOP -94 Multihopversuch -$ ENOLINK -95 Verbindung wurde getrennt -$ EPROTO -96 Protokollfehler +87 Attribut nicht gefunden +$ EDOOFUS +88 Programmierfehler $ $ strsignal() support catalog $ @@ -224,7 +208,7 @@ $ SIGBUS $ SIGSEGV 11 Illegaler Speicherzugriff $ SIGSYS -12 Ungültiger Systemaufruf +12 Ungültiger Speicherzugriff $ SIGPIPE 13 Unterbrochene Pipe $ SIGALRM @@ -246,22 +230,20 @@ $ SIGTTIN $ SIGTTOU 22 Gestoppt (Ausgabe) $ SIGIO -23 Ein/Ausgabe ist möglich +23 Ein/Ausgabe möglich $ SIGXCPU -24 CPU-Zeitlimit erschöpft +24 CPU-Zeitlimit überschritten $ SIGXFSZ -25 Dateigröße hat das Limit erreicht +25 Dateigrößenlimit überschritten $ SIGVTALRM 26 Virtueller Wecker abgelaufen $ SIGPROF 27 Profil-Wecker abgelaufen $ SIGWINCH -28 Fenstergröße hat sich geändert +28 Fenstergröße hat sich verändert $ SIGINFO 29 Informationsanforderung $ SIGUSR1 30 Benutzerdefiniertes Signal 1 $ SIGUSR2 31 Benutzerdefiniertes Signal 2 -$ SIGPWR -32 Statusänderung der Energieversorgung Added: head/lib/libc/nls/pt_BR.ISO8859-1.msg ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/nls/pt_BR.ISO8859-1.msg Mon Mar 16 16:33:08 2009 (r189883) @@ -0,0 +1,249 @@ +$ $FreeBSD$ +$ +$ Message catalog for pt_BR.ISO8859-1 locale +$ +$ strerror() support catalog +$ +$set 1 +$ EPERM +1 Operação não permitida +$ ENOENT +2 Nenhum arquivo ou diretório encontrado +$ ESRCH +3 Nenhum processo encontrado +$ EINTR +4 Chamada de sistema interrompida +$ EIO +5 Erro de entrada/saída +$ ENXIO +6 Dispositivo não configurado +$ E2BIG +7 Lista de argumentos muito grande +$ ENOEXEC +8 Erro no formato de execução +$ EBADF +9 Erro no descritor de arquivo +$ ECHILD +10 Nenhum processo filho +$ EDEADLK +11 Bloqueio de recurso evitado +$ ENOMEM +12 Impossível alocar memória +$ EACCES +13 Permissão negada +$ EFAULT +14 Endereço errado +$ ENOTBLK +15 Dispositivo de bloco requerido +$ EBUSY +16 Dispositivo ocupado +$ EEXIST +17 Arquivo existe +$ EXDEV +18 Ligação entre dispositivos +$ ENODEV +19 Operação não suportada pelo dispositivo +$ ENOTDIR +20 Não é um diretório +$ EISDIR +21 É um diretório +$ EINVAL +22 Argumento inválido +$ ENFILE +23 Muitos arquivos abertos no sistema +$ EMFILE +24 Muitos arquivos abertos no sistema +$ ENOTTY +25 ioctl inapropriado para o dispositivo +$ ETXTBSY +26 Arquivo texto sendo utilizado +$ EFBIG +27 Arquivo muito grande +$ ENOSPC +28 Sem espaço no dispositivo +$ ESPIPE +29 seek ilegal +$ EROFS +30 Sistema de arquivos apenas para leitura +$ EMLINK +31 Muitos links +$ EPIPE +32 pipe quebrado +$ EDOM +33 Arqumento numérico fora do domínio +$ ERANGE +34 Resultado muito grande +$ EAGAIN, EWOULDBLOCK +35 Recurso temporariamente indisponível +$ EINPROGRESS +36 Operação em progresso agora +$ EALREADY +37 Operação em progresso pronta +$ ENOTSOCK +38 Operação de socket em um não-socket +$ EDESTADDRREQ +39 Endereço de destino requerido +$ EMSGSIZE +40 Mensagem muito grande +$ EPROTOTYPE +41 Tipo de protocolo errado para socket +$ ENOPROTOOPT +42 Protocolo não disponível +$ EPROTONOSUPPORT +43 Protocolo não suportado +$ ESOCKTNOSUPPORT +44 Tipo de socket não suportado +$ EOPNOTSUPP +45 Operação não permitida +$ EPFNOSUPPORT +46 Família de protocolo não suportada +$ EAFNOSUPPORT +47 Família de endereços não suportada pela família de protocolos +$ EADDRINUSE +48 Endereço já está em uso +$ EADDRNOTAVAIL +49 Impossível obter endereço solicitado +$ ENETDOWN +50 Rede está parada +$ ENETUNREACH +51 Rede está inalcançável +$ ENETRESET +52 Conexão de rede perdida durante reset +$ ECONNABORTED +53 Conexão abortada por software +$ ECONNRESET +54 Conexão reiniciada pelo outro ponto +$ ENOBUFS +55 Sem espaço de buffer disponível +$ EISCONN +56 Socket já está conectado +$ ENOTCONN +57 Socket não está conectado +$ ESHUTDOWN +58 Impossível enviar depois que o socket foi finalizado +$ ETOOMANYREFS +59 Muitas referências: impossível ligar +$ ETIMEDOUT +60 Tempo de operação expirou +$ ECONNREFUSED +61 Conexão recusada +$ ELOOP +62 Muitos níveis de links simbólicos +$ ENAMETOOLONG +63 Nome de arquivo muito grande +$ EHOSTDOWN +64 Host está desligado +$ EHOSTUNREACH +65 Sem rota para o host +$ ENOTEMPTY +66 Diretório não está vazio +$ EPROCLIM +67 Muitos processos +$ EUSERS +68 Muitos usuários +$ EDQUOT +69 Quota de disco excedida +$ ESTALE +70 Manipulador de arquivo NFS velho +$ EREMOTE +71 Muitos níveis no caminho remoto +$ EBADRPC +72 Estrutura RPC incorreta +$ ERPCMISMATCH +73 Versão RPC incorreta +$ EPROGUNAVAIL +74 Programa RPC indisponível +$ EPROGMISMATCH +75 Versão do programa incorreta +$ EPROCUNAVAIL +76 Procedimento incorreto para o programa +$ ENOLCK +77 Nenhum lock disponível +$ ENOSYS +78 Função não implementada +$ EFTYPE +79 Tipo de arquivo ou formato inapropriados +$ EAUTH +80 Erro de autenticação +$ ENEEDAUTH +81 Necessidade de autenticador +$ EIDRM +82 Identificador removido +$ ENOMSG +83 Nenhuma mensagem do tipo desejado +$ EOVERFLOW +84 Valor muito grande para ser armazenado neste tipo de dado +$ ECANCELED +85 Operação cancelada +$ EILSEQ +86 Sequência de bytes ilegal +$ ENOATTR +87 Atributo não encontrado +$ EDOOFUS +88 Erro de programação +$ +$ strsignal() support catalog +$ +$set 2 +$ SIGHUP +1 Fim da linha (Hangup) +$ SIGINT +2 Interrupção +$ SIGQUIT +3 Saída +$ SIGILL +4 Instrução ilegal +$ SIGTRAP +5 Trap de Trace/BPT +$ SIGABRT +6 Abortar trap +$ SIGEMT +7 EMT trap +$ SIGFPE +8 Exceção de ponto flutuante +$ SIGKILL +9 Morreu +$ SIGBUS +10 Erro de barramento +$ SIGSEGV +11 Falha de segmentação +$ SIGSYS +12 Chamada de sistema incorreta +$ SIGPIPE +13 Pipe incorreto +$ SIGALRM +14 Alarme do relógio +$ SIGTERM +15 Terminado +$ SIGURG +16 Condição urgente de E/S +$ SIGSTOP +17 Suspendido (sinal) +$ SIGTSTP +18 Suspendido +$ SIGCONT +19 Continuado +$ SIGCHLD +20 Filho saiu +$ SIGTTIN +21 Parado (entrada de tty) +$ SIGTTOU +22 Parado (saída de tty) +$ SIGIO +23 E/S possível +$ SIGXCPU +24 Limite de tempo de CPU excedido +$ SIGXFSZ +25 Tamanho de arquivo excedido +$ SIGVTALRM +26 Temporizador virtual expirou +$ SIGPROF +27 Temporizador de profiling expirou +$ SIGWINCH +28 Mudança no tamanho de janela +$ SIGINFO +29 Requisição de informação +$ SIGUSR1 +30 Sinal 1 definido pelo usuário +$ SIGUSR2 +31 Sinal 2 definido pelo usuário From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 16:40:09 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 164BE106566C; Mon, 16 Mar 2009 16:40:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.cksoft.de (mail.cksoft.de [195.88.108.3]) by mx1.freebsd.org (Postfix) with ESMTP id BF9B98FC13; Mon, 16 Mar 2009 16:40:08 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 4108041C6BB; Mon, 16 Mar 2009 17:40:07 +0100 (CET) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([195.88.108.3]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id GaIk2d-l9kIm; Mon, 16 Mar 2009 17:40:05 +0100 (CET) Received: by mail.cksoft.de (Postfix, from userid 66) id D3A6441C6A1; Mon, 16 Mar 2009 17:40:05 +0100 (CET) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 15E644448E6; Mon, 16 Mar 2009 16:38:56 +0000 (UTC) Date: Mon, 16 Mar 2009 16:38:56 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: VANHULLEBUS Yvan In-Reply-To: <200903161509.n2GF9lT6063773@svn.freebsd.org> Message-ID: <20090316163648.Q96785@maildrop.int.zabbadoz.net> References: <200903161509.n2GF9lT6063773@svn.freebsd.org> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, "George V. Neville-Neil" , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r189877 - head/contrib/libpcap X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 16:40:09 -0000 On Mon, 16 Mar 2009, VANHULLEBUS Yvan wrote: > Author: vanhu > Date: Mon Mar 16 15:09:47 2009 > New Revision: 189877 > URL: http://svn.freebsd.org/changeset/base/189877 > > Log: > Added DLT_ENC to map list, so it is now possible > to save dumps on enc0 > > Reviewed by: gnn(mentor) > Obtained from: NETASQ > MFC after: 1 week If you haven't you should also submit this upstream as OpenBSD can make use of that as well. (www.tcpdump.org) All entries (that aren't overlong) are tab separated in in the linktype_map map[]. It would be nice, to keep the style of the vendor. > Modified: > head/contrib/libpcap/savefile.c > > Modified: head/contrib/libpcap/savefile.c > ============================================================================== > --- head/contrib/libpcap/savefile.c Mon Mar 16 12:42:23 2009 (r189876) > +++ head/contrib/libpcap/savefile.c Mon Mar 16 15:09:47 2009 (r189877) > @@ -811,6 +811,9 @@ static struct linktype_map { > /* IPMB */ > { DLT_IPMB, LINKTYPE_IPMB }, > > + /* enc0 device */ > + { DLT_ENC, LINKTYPE_ENC }, > + > { -1, -1 } > }; > > -- Bjoern A. Zeeb The greatest risk is not taking one. From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 16:57:04 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D217106568B; Mon, 16 Mar 2009 16:57:04 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 594408FC13; Mon, 16 Mar 2009 16:57:04 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GGv4Wd066392; Mon, 16 Mar 2009 16:57:04 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GGv4wg066390; Mon, 16 Mar 2009 16:57:04 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161657.n2GGv4wg066390@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 16:57:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189886 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb security/audit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 16:57:06 -0000 Author: rwatson Date: Mon Mar 16 16:57:04 2009 New Revision: 189886 URL: http://svn.freebsd.org/changeset/base/189886 Log: Merge r174894 from head to stable/7: Change "audit_pipe_preselect" to "audit_pipe_presel" to make it print with proper alignment in ddb(4) and vmstat(8). Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/security/audit/audit_pipe.c Modified: stable/7/sys/security/audit/audit_pipe.c ============================================================================== --- stable/7/sys/security/audit/audit_pipe.c Mon Mar 16 16:55:05 2009 (r189885) +++ stable/7/sys/security/audit/audit_pipe.c Mon Mar 16 16:57:04 2009 (r189886) @@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$"); static MALLOC_DEFINE(M_AUDIT_PIPE, "audit_pipe", "Audit pipes"); static MALLOC_DEFINE(M_AUDIT_PIPE_ENTRY, "audit_pipeent", "Audit pipe entries and buffers"); -static MALLOC_DEFINE(M_AUDIT_PIPE_PRESELECT, "audit_pipe_preselect", +static MALLOC_DEFINE(M_AUDIT_PIPE_PRESELECT, "audit_pipe_presel", "Audit pipe preselection structure"); /* From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:03:33 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 882F41065675; Mon, 16 Mar 2009 17:03:33 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 58D078FC08; Mon, 16 Mar 2009 17:03:33 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GH3XaN066620; Mon, 16 Mar 2009 17:03:33 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GH3X8i066618; Mon, 16 Mar 2009 17:03:33 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161703.n2GH3X8i066618@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:03:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189887 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb kern security/audit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:03:35 -0000 Author: rwatson Date: Mon Mar 16 17:03:33 2009 New Revision: 189887 URL: http://svn.freebsd.org/changeset/base/189887 Log: Merge r182750, r182754 from head to stable/7: If the process id specified is invalid, the system call returns ESRCH Unbreak the build. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/kern/kern_proc.c stable/7/sys/security/audit/audit_syscalls.c Modified: stable/7/sys/kern/kern_proc.c ============================================================================== --- stable/7/sys/kern/kern_proc.c Mon Mar 16 16:57:04 2009 (r189886) +++ stable/7/sys/kern/kern_proc.c Mon Mar 16 17:03:33 2009 (r189887) @@ -994,10 +994,10 @@ sysctl_out_proc(struct proc *p, struct s np = pfind(pid); } if (np == NULL) - return EAGAIN; + return (ESRCH); if (np != p) { PROC_UNLOCK(np); - return EAGAIN; + return (ESRCH); } PROC_UNLOCK(np); return (0); Modified: stable/7/sys/security/audit/audit_syscalls.c ============================================================================== --- stable/7/sys/security/audit/audit_syscalls.c Mon Mar 16 16:57:04 2009 (r189886) +++ stable/7/sys/security/audit/audit_syscalls.c Mon Mar 16 17:03:33 2009 (r189887) @@ -314,12 +314,12 @@ auditon(struct thread *td, struct audito case A_GETPINFO: if (udata.au_aupinfo.ap_pid < 1) - return (EINVAL); + return (ESRCH); if ((tp = pfind(udata.au_aupinfo.ap_pid)) == NULL) - return (EINVAL); - if (p_cansee(td, tp) != 0) { + return (ESRCH); + if ((error = p_cansee(td, tp)) != 0) { PROC_UNLOCK(tp); - return (EINVAL); + return (error); } cred = tp->p_ucred; if (cred->cr_audit.ai_termid.at_type == AU_IPv6) { @@ -341,16 +341,16 @@ auditon(struct thread *td, struct audito case A_SETPMASK: if (udata.au_aupinfo.ap_pid < 1) - return (EINVAL); + return (ESRCH); newcred = crget(); if ((tp = pfind(udata.au_aupinfo.ap_pid)) == NULL) { crfree(newcred); - return (EINVAL); + return (ESRCH); } - if (p_cansee(td, tp) != 0) { + if ((error = p_cansee(td, tp)) != 0) { PROC_UNLOCK(tp); crfree(newcred); - return (EINVAL); + return (error); } oldcred = tp->p_ucred; crcopy(newcred, oldcred); @@ -377,9 +377,9 @@ auditon(struct thread *td, struct audito case A_GETPINFO_ADDR: if (udata.au_aupinfo_addr.ap_pid < 1) - return (EINVAL); + return (ESRCH); if ((tp = pfind(udata.au_aupinfo_addr.ap_pid)) == NULL) - return (EINVAL); + return (ESRCH); cred = tp->p_ucred; udata.au_aupinfo_addr.ap_auid = cred->cr_audit.ai_auid; udata.au_aupinfo_addr.ap_mask.am_success = From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:08:11 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06DBA1065676; Mon, 16 Mar 2009 17:08:11 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E7B1A8FC25; Mon, 16 Mar 2009 17:08:10 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GH8A5j066787; Mon, 16 Mar 2009 17:08:10 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GH8AFo066786; Mon, 16 Mar 2009 17:08:10 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161708.n2GH8AFo066786@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:08:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189888 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb security/audit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:08:11 -0000 Author: rwatson Date: Mon Mar 16 17:08:10 2009 New Revision: 189888 URL: http://svn.freebsd.org/changeset/base/189888 Log: Merge r186662 from head to stable/7: Fix white space botch: use carriage returns rather than tabs. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/security/audit/audit_pipe.c Modified: stable/7/sys/security/audit/audit_pipe.c ============================================================================== --- stable/7/sys/security/audit/audit_pipe.c Mon Mar 16 17:03:33 2009 (r189887) +++ stable/7/sys/security/audit/audit_pipe.c Mon Mar 16 17:08:10 2009 (r189888) @@ -169,7 +169,8 @@ struct audit_pipe { /* * Current pending record list. Protected by a combination of ap_mtx * and ap_sx. Note particularly that *both* locks are required to - * remove a record from the head of the queue, as an in-progress read * may sleep while copying and therefore cannot hold ap_mtx. + * remove a record from the head of the queue, as an in-progress read + * may sleep while copying and therefore cannot hold ap_mtx. */ TAILQ_HEAD(, audit_pipe_entry) ap_queue; From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:15:02 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A67F61065673; Mon, 16 Mar 2009 17:15:02 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 92A318FC12; Mon, 16 Mar 2009 17:15:02 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHF24g067024; Mon, 16 Mar 2009 17:15:02 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHF2ek067023; Mon, 16 Mar 2009 17:15:02 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161715.n2GHF2ek067023@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:15:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189889 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb security/audit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:15:03 -0000 Author: rwatson Date: Mon Mar 16 17:15:02 2009 New Revision: 189889 URL: http://svn.freebsd.org/changeset/base/189889 Log: Merge r186822 from head to stable/7: In AUDIT_SYSCALL_EXIT(), invoke audit_syscall_exit() only if an audit record is active on the current thread--historically we may always have wanted to enter the audit code if auditing was enabled, but now we just commit the audit record so don't need to enter if there isn't one. Obtained from: TrustedBSD Project Sponsored by: Apple, Inc. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/security/audit/audit.h Modified: stable/7/sys/security/audit/audit.h ============================================================================== --- stable/7/sys/security/audit/audit.h Mon Mar 16 17:08:10 2009 (r189888) +++ stable/7/sys/security/audit/audit.h Mon Mar 16 17:15:02 2009 (r189889) @@ -198,11 +198,11 @@ void audit_thread_free(struct thread *t /* * Wrap the audit_syscall_exit() function so that it is called only when - * auditing is enabled, or we have a audit record on the thread. It is - * possible that an audit record was begun before auditing was turned off. + * we have a audit record on the thread. Audit records can persist after + * auditing is disabled, so we don't just check audit_enabled here. */ #define AUDIT_SYSCALL_EXIT(error, td) do { \ - if (audit_enabled || (td->td_ar != NULL)) \ + if (td->td_ar != NULL) \ audit_syscall_exit(error, td); \ } while (0) From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:25:09 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A94A0106566C; Mon, 16 Mar 2009 17:25:09 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 950D38FC0A; Mon, 16 Mar 2009 17:25:09 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHP9cf067293; Mon, 16 Mar 2009 17:25:09 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHP94b067289; Mon, 16 Mar 2009 17:25:09 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161725.n2GHP94b067289@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:25:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189890 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb security/audit sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:25:10 -0000 Author: rwatson Date: Mon Mar 16 17:25:09 2009 New Revision: 189890 URL: http://svn.freebsd.org/changeset/base/189890 Log: Merge r189570 from head to stable/7: Add a new thread-private flag, TDP_AUDITREC, to indicate whether or not there is an audit record hung off of td_ar on the current thread. Test this flag instead of td_ar when auditing syscall arguments or checking for an audit record to commit on syscall return. Under these circumstances, td_pflags is much more likely to be in the cache (especially if there is no auditing of the current system call), so this should help reduce cache misses in the system call return path. Reported by: kris Obtained from: TrustedBSD Project Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/security/audit/audit.c stable/7/sys/security/audit/audit.h stable/7/sys/security/audit/audit_syscalls.c stable/7/sys/sys/proc.h Modified: stable/7/sys/security/audit/audit.c ============================================================================== --- stable/7/sys/security/audit/audit.c Mon Mar 16 17:15:02 2009 (r189889) +++ stable/7/sys/security/audit/audit.c Mon Mar 16 17:25:09 2009 (r189890) @@ -446,6 +446,8 @@ audit_syscall_enter(unsigned short code, au_id_t auid; KASSERT(td->td_ar == NULL, ("audit_syscall_enter: td->td_ar != NULL")); + KASSERT((td->td_pflags & TDP_AUDITREC) == 0, + ("audit_syscall_enter: TDP_AUDITREC set")); /* * In FreeBSD, each ABI has its own system call table, and hence @@ -496,9 +498,13 @@ audit_syscall_enter(unsigned short code, panic("audit_failing_stop: thread continued"); } td->td_ar = audit_new(event, td); - } else if (audit_pipe_preselect(auid, event, class, AU_PRS_BOTH, 0)) + if (td->td_ar != NULL) + td->td_pflags |= TDP_AUDITREC; + } else if (audit_pipe_preselect(auid, event, class, AU_PRS_BOTH, 0)) { td->td_ar = audit_new(event, td); - else + if (td->td_ar != NULL) + td->td_pflags |= TDP_AUDITREC; + } else td->td_ar = NULL; } @@ -526,6 +532,7 @@ audit_syscall_exit(int error, struct thr audit_commit(td->td_ar, error, retval); td->td_ar = NULL; + td->td_pflags &= ~TDP_AUDITREC; } void @@ -580,6 +587,8 @@ audit_thread_free(struct thread *td) { KASSERT(td->td_ar == NULL, ("audit_thread_free: td_ar != NULL")); + KASSERT((td->td_pflags & TDP_AUDITREC) == 0, + ("audit_thread_free: TDP_AUDITREC set")); } void Modified: stable/7/sys/security/audit/audit.h ============================================================================== --- stable/7/sys/security/audit/audit.h Mon Mar 16 17:15:02 2009 (r189889) +++ stable/7/sys/security/audit/audit.h Mon Mar 16 17:25:09 2009 (r189890) @@ -186,7 +186,7 @@ void audit_thread_free(struct thread *t * audit_enabled flag before performing the actual call. */ #define AUDIT_ARG(op, args...) do { \ - if (td->td_ar != NULL) \ + if (td->td_pflags & TDP_AUDITREC) \ audit_arg_ ## op (args); \ } while (0) @@ -202,7 +202,7 @@ void audit_thread_free(struct thread *t * auditing is disabled, so we don't just check audit_enabled here. */ #define AUDIT_SYSCALL_EXIT(error, td) do { \ - if (td->td_ar != NULL) \ + if (td->td_pflags & TDP_AUDITREC) \ audit_syscall_exit(error, td); \ } while (0) @@ -210,7 +210,7 @@ void audit_thread_free(struct thread *t * A Macro to wrap the audit_sysclose() function. */ #define AUDIT_SYSCLOSE(td, fd) do { \ - if (audit_enabled) \ + if (td->td_pflags & TDP_AUDITREC) \ audit_sysclose(td, fd); \ } while (0) Modified: stable/7/sys/security/audit/audit_syscalls.c ============================================================================== --- stable/7/sys/security/audit/audit_syscalls.c Mon Mar 16 17:15:02 2009 (r189889) +++ stable/7/sys/security/audit/audit_syscalls.c Mon Mar 16 17:25:09 2009 (r189890) @@ -96,6 +96,7 @@ audit(struct thread *td, struct audit_ar td->td_ar = audit_new(AUE_NULL, td); if (td->td_ar == NULL) return (ENOTSUP); + td->td_pflags |= TDP_AUDITREC; ar = td->td_ar; } Modified: stable/7/sys/sys/proc.h ============================================================================== --- stable/7/sys/sys/proc.h Mon Mar 16 17:15:02 2009 (r189889) +++ stable/7/sys/sys/proc.h Mon Mar 16 17:25:09 2009 (r189890) @@ -379,6 +379,7 @@ do { \ #define TDP_WAKEUP 0x00080000 /* Don't sleep in umtx cond_wait */ #define TDP_INBDFLUSH 0x00100000 /* Already in BO_BDFLUSH, do not recurse */ #define TDP_IGNSUSP 0x00800000 /* Permission to ignore the MNTK_SUSPEND* */ +#define TDP_AUDITREC 0x01000000 /* Audit record pending on thread */ /* * Reasons that the current thread can not be run yet. From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:30:38 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C46D1065670; Mon, 16 Mar 2009 17:30:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 68BD98FC26; Mon, 16 Mar 2009 17:30:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHUcHc067489; Mon, 16 Mar 2009 17:30:38 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHUc7L067488; Mon, 16 Mar 2009 17:30:38 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161730.n2GHUc7L067488@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:30:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189891 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:30:39 -0000 Author: rwatson Date: Mon Mar 16 17:30:38 2009 New Revision: 189891 URL: http://svn.freebsd.org/changeset/base/189891 Log: Merge r189545 from head to stable/7: By default, don't compile in counters of calls to various time query functions in the kernel, as these effectively serialize parallel calls to the gettimeofday(2) system call, as well as other kernel services that use timestamps. Use the NetBSD version of the fix (kern_tc.c:1.32 by ad@) as they have picked up our timecounter code and also ran into the same problem. Reported by: kris Obtained from: NetBSD Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/kern/kern_tc.c Modified: stable/7/sys/kern/kern_tc.c ============================================================================== --- stable/7/sys/kern/kern_tc.c Mon Mar 16 17:25:09 2009 (r189890) +++ stable/7/sys/kern/kern_tc.c Mon Mar 16 17:30:38 2009 (r189891) @@ -103,6 +103,7 @@ static int timestepwarnings; SYSCTL_INT(_kern_timecounter, OID_AUTO, stepwarnings, CTLFLAG_RW, ×tepwarnings, 0, ""); +#ifdef TC_COUNTERS #define TC_STATS(foo) \ static u_int foo; \ SYSCTL_UINT(_kern_timecounter, OID_AUTO, foo, CTLFLAG_RD, &foo, 0, "");\ @@ -114,7 +115,11 @@ TC_STATS(ngetbinuptime); TC_STATS(ngetna TC_STATS(ngetbintime); TC_STATS(ngetnanotime); TC_STATS(ngetmicrotime); TC_STATS(nsetclock); +#define TC_COUNT(var) var++ #undef TC_STATS +#else +#define TC_COUNT(var) /* nothing */ +#endif /* TC_COUNTERS */ static void tc_windup(void); static void cpu_tick_calibrate(int); @@ -180,7 +185,7 @@ binuptime(struct bintime *bt) struct timehands *th; u_int gen; - nbinuptime++; + TC_COUNT(nbinuptime); do { th = timehands; gen = th->th_generation; @@ -194,7 +199,7 @@ nanouptime(struct timespec *tsp) { struct bintime bt; - nnanouptime++; + TC_COUNT(nnanouptime); binuptime(&bt); bintime2timespec(&bt, tsp); } @@ -204,7 +209,7 @@ microuptime(struct timeval *tvp) { struct bintime bt; - nmicrouptime++; + TC_COUNT(nmicrouptime); binuptime(&bt); bintime2timeval(&bt, tvp); } @@ -213,7 +218,7 @@ void bintime(struct bintime *bt) { - nbintime++; + TC_COUNT(nbintime); binuptime(bt); bintime_add(bt, &boottimebin); } @@ -223,7 +228,7 @@ nanotime(struct timespec *tsp) { struct bintime bt; - nnanotime++; + TC_COUNT(nnanotime); bintime(&bt); bintime2timespec(&bt, tsp); } @@ -233,7 +238,7 @@ microtime(struct timeval *tvp) { struct bintime bt; - nmicrotime++; + TC_COUNT(nmicrotime); bintime(&bt); bintime2timeval(&bt, tvp); } @@ -244,7 +249,7 @@ getbinuptime(struct bintime *bt) struct timehands *th; u_int gen; - ngetbinuptime++; + TC_COUNT(ngetbinuptime); do { th = timehands; gen = th->th_generation; @@ -258,7 +263,7 @@ getnanouptime(struct timespec *tsp) struct timehands *th; u_int gen; - ngetnanouptime++; + TC_COUNT(ngetnanouptime); do { th = timehands; gen = th->th_generation; @@ -272,7 +277,7 @@ getmicrouptime(struct timeval *tvp) struct timehands *th; u_int gen; - ngetmicrouptime++; + TC_COUNT(ngetmicrouptime); do { th = timehands; gen = th->th_generation; @@ -286,7 +291,7 @@ getbintime(struct bintime *bt) struct timehands *th; u_int gen; - ngetbintime++; + TC_COUNT(ngetbintime); do { th = timehands; gen = th->th_generation; @@ -301,7 +306,7 @@ getnanotime(struct timespec *tsp) struct timehands *th; u_int gen; - ngetnanotime++; + TC_COUNT(ngetnanotime); do { th = timehands; gen = th->th_generation; @@ -315,7 +320,7 @@ getmicrotime(struct timeval *tvp) struct timehands *th; u_int gen; - ngetmicrotime++; + TC_COUNT(ngetmicrotime); do { th = timehands; gen = th->th_generation; @@ -406,7 +411,7 @@ tc_setclock(struct timespec *ts) struct bintime bt, bt2; cpu_tick_calibrate(1); - nsetclock++; + TC_COUNT(nsetclock); nanotime(&tbef); timespec2bintime(ts, &bt); binuptime(&bt2); From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:46:56 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9846A106564A; Mon, 16 Mar 2009 17:46:56 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4D3158FC1D; Mon, 16 Mar 2009 17:46:56 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHktKk067880; Mon, 16 Mar 2009 17:46:55 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHktkE067879; Mon, 16 Mar 2009 17:46:55 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161746.n2GHktkE067879@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:46:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189892 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:46:57 -0000 Author: rwatson Date: Mon Mar 16 17:46:55 2009 New Revision: 189892 URL: http://svn.freebsd.org/changeset/base/189892 Log: Merge r189655 from head to stable/7: Prefer ENETDOWN to ENXIO when returning queuing errors due to a link down, interface down, etc, with if_cxgb's if_transmit routine. Reviewed by: kmacy Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/dev/cxgb/cxgb_multiq.c Modified: stable/7/sys/dev/cxgb/cxgb_multiq.c ============================================================================== --- stable/7/sys/dev/cxgb/cxgb_multiq.c Mon Mar 16 17:30:38 2009 (r189891) +++ stable/7/sys/dev/cxgb/cxgb_multiq.c Mon Mar 16 17:46:55 2009 (r189892) @@ -131,7 +131,7 @@ cxgb_pcpu_enqueue_packet_(struct sge_qse KASSERT(m->m_type == MT_DATA, ("bad mbuf type %d", m->m_type)); if (qs->qs_flags & QS_EXITING) { m_freem(m); - return (ENXIO); + return (ENETDOWN); } txq = &qs->txq[TXQ_ETH]; err = buf_ring_enqueue(&txq->txq_mr, m); @@ -425,13 +425,13 @@ cxgb_pcpu_start_(struct sge_qset *qs, st retry: if (!pi->link_config.link_ok) - initerr = ENXIO; + initerr = ENETDOWN; else if (qs->qs_flags & QS_EXITING) - initerr = ENXIO; + initerr = ENETDOWN; else if ((pi->ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) - initerr = ENXIO; + initerr = ENETDOWN; else if ((pi->ifp->if_flags & IFF_UP) == 0) - initerr = ENXIO; + initerr = ENETDOWN; else if (immpkt) { if (!buf_ring_empty(&txq->txq_mr)) From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:55:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D17CD106566C; Mon, 16 Mar 2009 17:55:24 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BD8108FC13; Mon, 16 Mar 2009 17:55:24 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHtOEN068110; Mon, 16 Mar 2009 17:55:24 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHtOma068109; Mon, 16 Mar 2009 17:55:24 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161755.n2GHtOma068109@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:55:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189893 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cm dev/cxgb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:55:25 -0000 Author: rwatson Date: Mon Mar 16 17:55:24 2009 New Revision: 189893 URL: http://svn.freebsd.org/changeset/base/189893 Log: Merge r188545 from head to stable/7: Remove unused ifaddr and ifreq local variables. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cm/smc90cx6.c stable/7/sys/dev/cxgb/ (props changed) Modified: stable/7/sys/dev/cm/smc90cx6.c ============================================================================== --- stable/7/sys/dev/cm/smc90cx6.c Mon Mar 16 17:46:55 2009 (r189892) +++ stable/7/sys/dev/cm/smc90cx6.c Mon Mar 16 17:55:24 2009 (r189893) @@ -861,14 +861,10 @@ cm_ioctl(ifp, command, data) caddr_t data; { struct cm_softc *sc; - struct ifaddr *ifa; - struct ifreq *ifr; int error; error = 0; sc = ifp->if_softc; - ifa = (struct ifaddr *)data; - ifr = (struct ifreq *)data; #if defined(CM_DEBUG) && (CM_DEBUG > 2) if_printf(ifp, "ioctl() called, cmd = 0x%lx\n", command); From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 17:57:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7638D106566C; Mon, 16 Mar 2009 17:57:29 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4ABD98FC15; Mon, 16 Mar 2009 17:57:29 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GHvT9t068209; Mon, 16 Mar 2009 17:57:29 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GHvTnP068208; Mon, 16 Mar 2009 17:57:29 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161757.n2GHvTnP068208@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 17:57:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189894 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 17:57:31 -0000 Author: rwatson Date: Mon Mar 16 17:57:29 2009 New Revision: 189894 URL: http://svn.freebsd.org/changeset/base/189894 Log: Merge r188546 from head to stable/7: Remove unused ifaddr local variable in ioctl routine. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/net/if_vlan.c Modified: stable/7/sys/net/if_vlan.c ============================================================================== --- stable/7/sys/net/if_vlan.c Mon Mar 16 17:55:24 2009 (r189893) +++ stable/7/sys/net/if_vlan.c Mon Mar 16 17:57:29 2009 (r189894) @@ -1296,7 +1296,6 @@ vlan_trunk_capabilities(struct ifnet *if static int vlan_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) { - struct ifaddr *ifa; struct ifnet *p; struct ifreq *ifr; struct ifvlan *ifv; @@ -1304,7 +1303,6 @@ vlan_ioctl(struct ifnet *ifp, u_long cmd int error = 0; ifr = (struct ifreq *)data; - ifa = (struct ifaddr *)data; ifv = ifp->if_softc; switch (cmd) { From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 18:02:01 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BD331065680; Mon, 16 Mar 2009 18:02:01 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 279188FC16; Mon, 16 Mar 2009 18:02:01 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GI21ek068385; Mon, 16 Mar 2009 18:02:01 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GI2179068384; Mon, 16 Mar 2009 18:02:01 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161802.n2GI2179068384@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 18:02:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189895 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 18:02:02 -0000 Author: rwatson Date: Mon Mar 16 18:02:00 2009 New Revision: 189895 URL: http://svn.freebsd.org/changeset/base/189895 Log: Merge r188962 from head to stable/7: In in_rtqkill(), assert the radix head lock, and pass RTF_RNH_LOCKED to in_rtrequest(); the radix head lock is already acquired before rnh_walktree is called in in_rtqtimo_one(). This avoids a recursive acquisition that is no longer permitted in 8.x due to use of an rwlock for the radix head lock. Reported by: dikshie While not strictly required in 7.x, I am merging this to keep locking as consistent as possible in the routing code between 7.x and 8.x. Note that because the rwlock change has not been merged, this becomes LOCK_ASSERT rather than WLOCK_ASSERT. Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/netinet/in_rmx.c Modified: stable/7/sys/netinet/in_rmx.c ============================================================================== --- stable/7/sys/netinet/in_rmx.c Mon Mar 16 17:57:29 2009 (r189894) +++ stable/7/sys/netinet/in_rmx.c Mon Mar 16 18:02:00 2009 (r189895) @@ -219,6 +219,8 @@ in_rtqkill(struct radix_node *rn, void * struct rtentry *rt = (struct rtentry *)rn; int err; + RADIX_NODE_HEAD_LOCK_ASSERT(ap->rnh); + if (rt->rt_flags & RTPRF_OURS) { ap->found++; @@ -229,7 +231,8 @@ in_rtqkill(struct radix_node *rn, void * err = in_rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), rt->rt_gateway, rt_mask(rt), - rt->rt_flags, 0, rt->rt_fibnum); + rt->rt_flags | RTF_RNH_LOCKED, 0, + rt->rt_fibnum); if (err) { log(LOG_WARNING, "in_rtqkill: error %d\n", err); } else { From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 18:05:32 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 354791065677; Mon, 16 Mar 2009 18:05:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20CB68FC21; Mon, 16 Mar 2009 18:05:32 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GI5WuX068523; Mon, 16 Mar 2009 18:05:32 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GI5WQv068522; Mon, 16 Mar 2009 18:05:32 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161805.n2GI5WQv068522@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 18:05:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189896 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 18:05:34 -0000 Author: rwatson Date: Mon Mar 16 18:05:31 2009 New Revision: 189896 URL: http://svn.freebsd.org/changeset/base/189896 Log: Merge r188963 from head to stable/7: Assert the radix head lock in in6_rtqkill(). Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/netinet6/in6_rmx.c Modified: stable/7/sys/netinet6/in6_rmx.c ============================================================================== --- stable/7/sys/netinet6/in6_rmx.c Mon Mar 16 18:02:00 2009 (r189895) +++ stable/7/sys/netinet6/in6_rmx.c Mon Mar 16 18:05:31 2009 (r189896) @@ -289,6 +289,8 @@ in6_rtqkill(struct radix_node *rn, void struct rtentry *rt = (struct rtentry *)rn; int err; + RADIX_NODE_HEAD_LOCK_ASSERT(ap->rnh); + if (rt->rt_flags & RTPRF_OURS) { ap->found++; From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 18:07:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 234261065677; Mon, 16 Mar 2009 18:07:24 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0E03C8FC1C; Mon, 16 Mar 2009 18:07:24 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GI7NHi068607; Mon, 16 Mar 2009 18:07:23 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GI7Nbi068606; Mon, 16 Mar 2009 18:07:23 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161807.n2GI7Nbi068606@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 18:07:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189897 - stable/7/share/man/man8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 18:07:27 -0000 Author: rwatson Date: Mon Mar 16 18:07:23 2009 New Revision: 189897 URL: http://svn.freebsd.org/changeset/base/189897 Log: Merge r189778 from head to stable/7: Don't suggest mounting procfs in diskless configurations. Modified: stable/7/share/man/man8/ (props changed) stable/7/share/man/man8/diskless.8 Modified: stable/7/share/man/man8/diskless.8 ============================================================================== --- stable/7/share/man/man8/diskless.8 Mon Mar 16 18:05:31 2009 (r189896) +++ stable/7/share/man/man8/diskless.8 Mon Mar 16 18:07:23 2009 (r189897) @@ -376,7 +376,6 @@ As a minimum, you normally need to have .Bd -literal -offset indent : / nfs ro 0 0 :/usr /usr nfs ro 0 0 -proc /proc procfs rw 0 0 .Ed .Pp You also need to create a customized version of From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 18:15:53 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16A461065670; Mon, 16 Mar 2009 18:15:53 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 03C648FC22; Mon, 16 Mar 2009 18:15:53 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GIFqPQ068871; Mon, 16 Mar 2009 18:15:52 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GIFq3p068870; Mon, 16 Mar 2009 18:15:52 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903161815.n2GIFq3p068870@svn.freebsd.org> From: Robert Watson Date: Mon, 16 Mar 2009 18:15:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189898 - stable/7/sys/netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 18:15:53 -0000 Author: rwatson Date: Mon Mar 16 18:15:52 2009 New Revision: 189898 URL: http://svn.freebsd.org/changeset/base/189898 Log: Merge adding RTF_RNH_LOCKED to the flags argument of rtrequest() in in6_rtqkill(), making it match in_rtqkill(). This change appeared in 8.x as part of the arpv2 merge (r186119) but that isn't appropriate to merge. Modified: stable/7/sys/netinet6/in6_rmx.c Modified: stable/7/sys/netinet6/in6_rmx.c ============================================================================== --- stable/7/sys/netinet6/in6_rmx.c Mon Mar 16 18:07:23 2009 (r189897) +++ stable/7/sys/netinet6/in6_rmx.c Mon Mar 16 18:15:52 2009 (r189898) @@ -301,7 +301,7 @@ in6_rtqkill(struct radix_node *rn, void err = rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), rt->rt_gateway, rt_mask(rt), - rt->rt_flags, 0); + rt->rt_flags|RTF_RNH_LOCKED, 0); if (err) { log(LOG_WARNING, "in6_rtqkill: error %d", err); } else { From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 18:51:15 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74AE01065678; Mon, 16 Mar 2009 18:51:15 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from acme.spoerlein.net (cl-43.dus-01.de.sixxs.net [IPv6:2a01:198:200:2a::2]) by mx1.freebsd.org (Postfix) with ESMTP id D66168FC22; Mon, 16 Mar 2009 18:51:14 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (e180146202.adsl.alicedsl.de [85.180.146.202]) by acme.spoerlein.net (8.14.3/8.14.3) with ESMTP id n2GIpDAr060203 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 16 Mar 2009 19:51:13 +0100 (CET) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (localhost [127.0.0.1]) by roadrunner.spoerlein.net (8.14.3/8.14.3) with ESMTP id n2GIZYsu017758 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 16 Mar 2009 19:35:34 +0100 (CET) (envelope-from uspoerlein@gmail.com) Received: (from uqs@localhost) by roadrunner.spoerlein.net (8.14.3/8.14.3/Submit) id n2GIZY0M017757; Mon, 16 Mar 2009 19:35:34 +0100 (CET) (envelope-from uspoerlein@gmail.com) Date: Mon, 16 Mar 2009 19:35:34 +0100 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: "Sean C. Farley" , Gabor Kovesdan , svn-src-all@FreeBSD.ORG Message-ID: <20090316183534.GI1455@roadrunner.spoerlein.net> Mail-Followup-To: Ulrich =?utf-8?B?U3DDtnJsZWlu?= , "Sean C. Farley" , Gabor Kovesdan , svn-src-all@FreeBSD.ORG References: <200903131040.n2DAecSO061131@svn.freebsd.org> <20090313182216.GA8844@zim.MIT.EDU> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20090313182216.GA8844@zim.MIT.EDU> User-Agent: Mutt/1.5.19 (2009-01-05) Cc: Subject: Re: svn commit: r189765 - in head: . lib/libc lib/libc/nls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 18:51:15 -0000 On Fri, 13.03.2009 at 14:22:16 -0400, David Schultz wrote: > On Fri, Mar 13, 2009, Sean C. Farley wrote: > > Now, you only need to revive the BSD-licensed libiconv[1]. :) > [...] > > 1. http://people.freebsd.org/~bland/iconv-2.1.tar.gz > > I asked a few weeks ago on standards@ why we weren't using Citrus > iconv, which is what NetBSD uses, and seems to be in a somewhat > better state than this. It also provides various wide character > conversion routines that overlap with what tjr@ has already done > in FreeBSD, so we'd have to sort that out. And we'd have to sort > out a gazillion ports that want -liconv. I, for one, would love to see some iconv overlo^Wsupport in base. That way, I could teach calendar(1) to translate stuff to LC_CTYPE, right now the German calendar file is saved in Latin1 whereas I'm using UTF-8 terminals :/ Cheers, Ulrich Spörlein -- None are more hopelessly enslaved than those who falsely believe they are free -- Johann Wolfgang von Goethe From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 19:09:59 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 865C9106564A; Mon, 16 Mar 2009 19:09:59 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 740628FC1B; Mon, 16 Mar 2009 19:09:59 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GJ9xXh070024; Mon, 16 Mar 2009 19:09:59 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GJ9x1I070023; Mon, 16 Mar 2009 19:09:59 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903161909.n2GJ9x1I070023@svn.freebsd.org> From: Robert Noland Date: Mon, 16 Mar 2009 19:09:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189899 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 19:10:00 -0000 Author: rnoland Date: Mon Mar 16 19:09:59 2009 New Revision: 189899 URL: http://svn.freebsd.org/changeset/base/189899 Log: Use the right MSI_REARM for RS600. MFC after: 3 days Modified: head/sys/dev/drm/radeon_irq.c Modified: head/sys/dev/drm/radeon_irq.c ============================================================================== --- head/sys/dev/drm/radeon_irq.c Mon Mar 16 18:15:52 2009 (r189898) +++ head/sys/dev/drm/radeon_irq.c Mon Mar 16 19:09:59 2009 (r189899) @@ -229,6 +229,7 @@ irqreturn_t radeon_driver_irq_handler(DR RADEON_WRITE(RADEON_AIC_CNTL, tmp | RS400_MSI_REARM); break; + case CHIP_RS600: case CHIP_RS690: case CHIP_RS740: tmp = RADEON_READ(RADEON_BUS_CNTL) & From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 19:31:09 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DAD6106566C; Mon, 16 Mar 2009 19:31:09 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01B558FC0A; Mon, 16 Mar 2009 19:31:09 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GJV8Pr070481; Mon, 16 Mar 2009 19:31:08 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GJV8EF070480; Mon, 16 Mar 2009 19:31:08 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <200903161931.n2GJV8EF070480@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Mon, 16 Mar 2009 19:31:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189900 - head/sys/geom/eli X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 19:31:09 -0000 Author: pjd Date: Mon Mar 16 19:31:08 2009 New Revision: 189900 URL: http://svn.freebsd.org/changeset/base/189900 Log: Detach GELI providers on shutdown/reboot, which will allow providers underneath to close properly. Reported, reviewed and tested by: guido MFC after: 1 week Modified: head/sys/geom/eli/g_eli.c Modified: head/sys/geom/eli/g_eli.c ============================================================================== --- head/sys/geom/eli/g_eli.c Mon Mar 16 19:09:59 2009 (r189899) +++ head/sys/geom/eli/g_eli.c Mon Mar 16 19:31:08 2009 (r189900) @@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -81,8 +82,12 @@ TUNABLE_INT("kern.geom.eli.batch", &g_el SYSCTL_UINT(_kern_geom_eli, OID_AUTO, batch, CTLFLAG_RW, &g_eli_batch, 0, "Use crypto operations batching"); +static eventhandler_tag g_eli_pre_sync = NULL; + static int g_eli_destroy_geom(struct gctl_req *req, struct g_class *mp, struct g_geom *gp); +static void g_eli_init(struct g_class *mp); +static void g_eli_fini(struct g_class *mp); static g_taste_t g_eli_taste; static g_dumpconf_t g_eli_dumpconf; @@ -92,7 +97,9 @@ struct g_class g_eli_class = { .version = G_VERSION, .ctlreq = g_eli_config, .taste = g_eli_taste, - .destroy_geom = g_eli_destroy_geom + .destroy_geom = g_eli_destroy_geom, + .init = g_eli_init, + .fini = g_eli_fini }; @@ -1075,5 +1082,52 @@ g_eli_dumpconf(struct sbuf *sb, const ch g_eli_algo2str(sc->sc_ealgo)); } +static void +g_eli_shutdown_pre_sync(void *arg, int howto) +{ + struct g_class *mp; + struct g_geom *gp, *gp2; + struct g_provider *pp; + struct g_eli_softc *sc; + int error; + + mp = arg; + DROP_GIANT(); + g_topology_lock(); + LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) { + sc = gp->softc; + if (sc == NULL) + continue; + pp = LIST_FIRST(&gp->provider); + KASSERT(pp != NULL, ("No provider? gp=%p (%s)", gp, gp->name)); + if (pp->acr + pp->acw + pp->ace == 0) + error = g_eli_destroy(sc, 1); + else { + sc->sc_flags |= G_ELI_FLAG_RW_DETACH; + gp->access = g_eli_access; + } + } + g_topology_unlock(); + PICKUP_GIANT(); +} + +static void +g_eli_init(struct g_class *mp) +{ + + g_eli_pre_sync = EVENTHANDLER_REGISTER(shutdown_pre_sync, + g_eli_shutdown_pre_sync, mp, SHUTDOWN_PRI_FIRST); + if (g_eli_pre_sync == NULL) + G_ELI_DEBUG(0, "Warning! Cannot register shutdown event."); +} + +static void +g_eli_fini(struct g_class *mp) +{ + + if (g_eli_pre_sync != NULL) + EVENTHANDLER_DEREGISTER(shutdown_pre_sync, g_eli_pre_sync); +} + DECLARE_GEOM_CLASS(g_eli_class, g_eli); MODULE_DEPEND(g_eli, crypto, 1, 1, 1); From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 20:14:39 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 544F01065760; Mon, 16 Mar 2009 20:14:39 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id ED79A8FC13; Mon, 16 Mar 2009 20:14:38 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id n2GKAUai042257; Mon, 16 Mar 2009 14:10:31 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Tue, 17 Mar 2009 05:10:58 +0900 (JST) Message-Id: <20090317.051058.-2068218148.imp@bsdimp.com> To: ed@80386.nl From: "M. Warner Losh" In-Reply-To: <20090315150740.GZ31961@hoeg.nl> References: <200903151314.n2FDE6Zx029988@svn.freebsd.org> <20090315150740.GZ31961@hoeg.nl> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, gabor@freebsd.org Subject: Re: svn commit: r189850 - in head: . lib/libc/nls X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 20:14:40 -0000 In message: <20090315150740.GZ31961@hoeg.nl> Ed Schouten writes: : * Gabor Kovesdan wrote: : > - Create the buildworld object directories with mtree instead of various : > mkdir calls : > - Remove the ugly workaroung from libc NLS, which was to create some of : > these directories : : Thank you! I actually needed something similar for my FreeBSD+Clang : patchset. ;-) Thanks Gabor for following through with this! Warner From owner-svn-src-all@FreeBSD.ORG Mon Mar 16 23:56:29 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 357F21065673; Mon, 16 Mar 2009 23:56:29 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 22FE28FC14; Mon, 16 Mar 2009 23:56:29 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2GNuT0b075558; Mon, 16 Mar 2009 23:56:29 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2GNuT7K075557; Mon, 16 Mar 2009 23:56:29 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <200903162356.n2GNuT7K075557@svn.freebsd.org> From: Doug Barton Date: Mon, 16 Mar 2009 23:56:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189902 - head/contrib/wpa/wpa_supplicant X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Mar 2009 23:56:29 -0000 Author: dougb Date: Mon Mar 16 23:56:28 2009 New Revision: 189902 URL: http://svn.freebsd.org/changeset/base/189902 Log: Add some notes and clarify a few sections: 1. Add a note to double-check the man page 2. Remove windows-specific items in the ctrl_interface section 3. Add a note that ap_scan must be set to 1 for use with wlan 4. Clarify the wording for scan_ssid related to APs that hide ssid 5. Clarify the wording for the priority option Modified: head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf Modified: head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf ============================================================================== --- head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf Mon Mar 16 23:08:38 2009 (r189901) +++ head/contrib/wpa/wpa_supplicant/wpa_supplicant.conf Mon Mar 16 23:56:28 2009 (r189902) @@ -1,5 +1,7 @@ ##### Example wpa_supplicant configuration file ############################### # +# ***** Please check wpa_supplicant.conf(5) for details on these options ***** +# # This file describes configuration file format and lists all available option. # Please also take a look at simpler configuration examples in 'examples' # subdirectory. @@ -59,19 +61,6 @@ # DIR=/var/run/wpa_supplicant GROUP=0 # (group can be either group name or gid) # -# For UDP connections (default on Windows): The value will be ignored. This -# variable is just used to select that the control interface is to be created. -# The value can be set to, e.g., udp (ctrl_interface=udp) -# -# For Windows Named Pipe: This value can be used to set the security descriptor -# for controlling access to the control interface. Security descriptor can be -# set using Security Descriptor String Format (see http://msdn.microsoft.com/ -# library/default.asp?url=/library/en-us/secauthz/security/ -# security_descriptor_string_format.asp). The descriptor string needs to be -# prefixed with SDDL=. For example, ctrl_interface=SDDL=D: would set an empty -# DACL (which will reject all connections). See README-Windows.txt for more -# information about SDDL string format. -# ctrl_interface=/var/run/wpa_supplicant # IEEE 802.1X/EAPOL version @@ -102,6 +91,8 @@ eapol_version=1 # the driver reports successful association; each network block should have # explicit security policy (i.e., only one option in the lists) for # key_mgmt, pairwise, group, proto variables +# +# For use in FreeBSD with the wlan module ap_scan must be set to 1. ap_scan=1 # EAP fast re-authentication @@ -221,7 +212,7 @@ fast_reauth=1 # scan_ssid: # 0 = do not scan this SSID with specific Probe Request frames (default) # 1 = scan with SSID-specific Probe Request frames (this can be used to -# find APs that do not accept broadcast SSID or use multiple SSIDs; +# find APs that hide (do not broadcast) SSID or use multiple SSIDs; # this will add latency to scanning, so enable this only when needed) # # bssid: BSSID (optional); if set, this network block is used only when @@ -237,7 +228,7 @@ fast_reauth=1 # policy, signal strength, etc. # Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not # using this priority to select the order for scanning. Instead, they try the -# networks in the order that used in the configuration file. +# networks in the order that they are listed in the configuration file. # # mode: IEEE 802.11 operation mode # 0 = infrastructure (Managed) mode, i.e., associate with an AP (default) From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 00:48:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA900106566C; Tue, 17 Mar 2009 00:48:12 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A511C8FC0C; Tue, 17 Mar 2009 00:48:12 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H0mCQg076597; Tue, 17 Mar 2009 00:48:12 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H0mCw4076588; Tue, 17 Mar 2009 00:48:12 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <200903170048.n2H0mCw4076588@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 17 Mar 2009 00:48:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189903 - in head/sys: amd64/acpica amd64/amd64 amd64/include conf dev/acpica i386/i386 kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 00:48:13 -0000 Author: jkim Date: Tue Mar 17 00:48:11 2009 New Revision: 189903 URL: http://svn.freebsd.org/changeset/base/189903 Log: Initial suspend/resume support for amd64. This code is heavily inspired by Takanori Watanabe's experimental SMP patch for i386 and large portion was shamelessly cut and pasted from Peter Wemm's AP boot code. Added: head/sys/amd64/acpica/Makefile (contents, props changed) head/sys/amd64/acpica/acpi_switch.S (contents, props changed) head/sys/amd64/acpica/acpi_wakecode.S (contents, props changed) head/sys/amd64/acpica/genwakecode.sh (contents, props changed) head/sys/amd64/acpica/genwakedata.sh (contents, props changed) Modified: head/sys/amd64/acpica/acpi_machdep.c head/sys/amd64/acpica/acpi_wakeup.c head/sys/amd64/amd64/amd64_mem.c head/sys/amd64/amd64/apic_vector.S head/sys/amd64/amd64/cpu_switch.S head/sys/amd64/amd64/db_trace.c head/sys/amd64/amd64/genassym.c head/sys/amd64/amd64/mp_machdep.c head/sys/amd64/include/apicvar.h head/sys/amd64/include/pcb.h head/sys/amd64/include/smp.h head/sys/conf/files.amd64 head/sys/dev/acpica/acpi.c head/sys/dev/acpica/acpi_ec.c head/sys/i386/i386/i686_mem.c head/sys/i386/i386/k6_mem.c head/sys/kern/subr_smp.c head/sys/sys/memrange.h head/sys/sys/smp.h Added: head/sys/amd64/acpica/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/acpica/Makefile Tue Mar 17 00:48:11 2009 (r189903) @@ -0,0 +1,33 @@ +# $FreeBSD$ + +# Correct path for kernel builds +# Don't rely on the kernel's .depend file +.ifdef MAKESRCPATH +.PATH: ${MAKESRCPATH} +DEPENDFILE= +.else +MAKESRCPATH= ${.CURDIR} +CLEANFILES= acpi_wakecode.h acpi_wakedata.h acpi_wakecode.bin acpi_wakecode.o +.endif +.if ${CC} == "icc" +CFLAGS+= -restrict +NOSTDINC= -X +.else +NOSTDINC= -nostdinc +.endif +CFLAGS+= ${NOSTDINC} -include opt_global.h -I. -I${MAKESRCPATH}/../.. + +all: acpi_wakecode.h acpi_wakedata.h + +acpi_wakecode.o: acpi_wakecode.S assym.s + +acpi_wakecode.bin: acpi_wakecode.o + objcopy -S -O binary acpi_wakecode.o acpi_wakecode.bin + +acpi_wakecode.h: acpi_wakecode.bin + sh ${MAKESRCPATH}/genwakecode.sh > acpi_wakecode.h + +acpi_wakedata.h: acpi_wakecode.bin + sh ${MAKESRCPATH}/genwakedata.sh > acpi_wakedata.h + +.include Modified: head/sys/amd64/acpica/acpi_machdep.c ============================================================================== --- head/sys/amd64/acpica/acpi_machdep.c Mon Mar 16 23:56:28 2009 (r189902) +++ head/sys/amd64/acpica/acpi_machdep.c Tue Mar 17 00:48:11 2009 (r189903) @@ -31,25 +31,50 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include +SYSCTL_DECL(_debug_acpi); + +uint32_t acpi_resume_beep; +TUNABLE_INT("debug.acpi.resume_beep", &acpi_resume_beep); +SYSCTL_UINT(_debug_acpi, OID_AUTO, resume_beep, CTLFLAG_RW, &acpi_resume_beep, + 0, "Beep the PC speaker when resuming"); +uint32_t acpi_reset_video; +TUNABLE_INT("hw.acpi.reset_video", &acpi_reset_video); + static int intr_model = ACPI_INTR_PIC; +static struct apm_clone_data acpi_clone; int acpi_machdep_init(device_t dev) { - struct acpi_softc *sc; + struct acpi_softc *sc; sc = devclass_get_softc(devclass_find("acpi"), 0); + + /* Create a fake clone for /dev/acpi. */ + STAILQ_INIT(&sc->apm_cdevs); + acpi_clone.cdev = sc->acpi_dev_t; + acpi_clone.acpi_sc = sc; + ACPI_LOCK(acpi); + STAILQ_INSERT_TAIL(&sc->apm_cdevs, &acpi_clone, entries); + ACPI_UNLOCK(acpi); + sc->acpi_clone = &acpi_clone; acpi_install_wakeup_handler(sc); if (intr_model != ACPI_INTR_PIC) acpi_SetIntrModel(intr_model); + SYSCTL_ADD_UINT(&sc->acpi_sysctl_ctx, + SYSCTL_CHILDREN(sc->acpi_sysctl_tree), OID_AUTO, + "reset_video", CTLFLAG_RW, &acpi_reset_video, 0, + "Call the VESA reset BIOS vector on the resume path"); + return (0); } Added: head/sys/amd64/acpica/acpi_switch.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/acpica/acpi_switch.S Tue Mar 17 00:48:11 2009 (r189903) @@ -0,0 +1,177 @@ +/*- + * Copyright (c) 2001 Takanori Watanabe + * Copyright (c) 2001 Mitsuru IWASAKI + * Copyright (c) 2008-2009 Jung-uk Kim + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (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$ + */ + +#include +#include + +#include "acpi_wakedata.h" +#include "assym.s" + +#define WAKEUP_DECL(member) \ + .set WAKEUP_ ## member, wakeup_ ## member - wakeup_ctx + + WAKEUP_DECL(xpcb) + WAKEUP_DECL(gdt) + WAKEUP_DECL(efer) + WAKEUP_DECL(pat) + WAKEUP_DECL(star) + WAKEUP_DECL(lstar) + WAKEUP_DECL(cstar) + WAKEUP_DECL(sfmask) + WAKEUP_DECL(cpu) + +#define WAKEUP_CTX(member) WAKEUP_ ## member (%rdi) +#define WAKEUP_PCB(member) PCB_ ## member(%r11) +#define WAKEUP_XPCB(member) XPCB_ ## member(%r11) + +ENTRY(acpi_restorecpu) + /* Switch to KPML4phys. */ + movq %rsi, %rax + movq %rax, %cr3 + + /* Restore GDT. */ + lgdt WAKEUP_CTX(gdt) + jmp 1f +1: + + /* Fetch PCB. */ + movq WAKEUP_CTX(xpcb), %r11 + + /* Restore segment registers. */ + mov WAKEUP_PCB(DS), %ds + mov WAKEUP_PCB(ES), %es + mov WAKEUP_XPCB(SS), %ss + mov WAKEUP_PCB(FS), %fs + mov WAKEUP_PCB(GS), %gs + + movl $MSR_FSBASE, %ecx + movl WAKEUP_PCB(FSBASE), %eax + movl 4 + WAKEUP_PCB(FSBASE), %edx + wrmsr + movl $MSR_GSBASE, %ecx + movl WAKEUP_PCB(GSBASE), %eax + movl 4 + WAKEUP_PCB(GSBASE), %edx + wrmsr + movl $MSR_KGSBASE, %ecx + movl WAKEUP_XPCB(KGSBASE), %eax + movl 4 + WAKEUP_XPCB(KGSBASE), %edx + wrmsr + + /* Restore EFER. */ + movl $MSR_EFER, %ecx + movl WAKEUP_CTX(efer), %eax + wrmsr + + /* Restore PAT. */ + movl $MSR_PAT, %ecx + movl WAKEUP_CTX(pat), %eax + movl 4 + WAKEUP_CTX(pat), %edx + wrmsr + + /* Restore fast syscall stuff. */ + movl $MSR_STAR, %ecx + movl WAKEUP_CTX(star), %eax + movl 4 + WAKEUP_CTX(star), %edx + wrmsr + movl $MSR_LSTAR, %ecx + movl WAKEUP_CTX(lstar), %eax + movl 4 + WAKEUP_CTX(lstar), %edx + wrmsr + movl $MSR_CSTAR, %ecx + movl WAKEUP_CTX(cstar), %eax + movl 4 + WAKEUP_CTX(cstar), %edx + wrmsr + movl $MSR_SF_MASK, %ecx + movl WAKEUP_CTX(sfmask), %eax + wrmsr + + /* Restore CR0, CR2 and CR4. */ + movq WAKEUP_XPCB(CR0), %rax + movq %rax, %cr0 + movq WAKEUP_XPCB(CR2), %rax + movq %rax, %cr2 + movq WAKEUP_XPCB(CR4), %rax + movq %rax, %cr4 + + /* Restore descriptor tables. */ + lidt WAKEUP_XPCB(IDT) + lldt WAKEUP_XPCB(LDT) + movw WAKEUP_XPCB(TR), %ax + ltr %ax + + /* Restore other callee saved registers. */ + movq WAKEUP_PCB(R15), %r15 + movq WAKEUP_PCB(R14), %r14 + movq WAKEUP_PCB(R13), %r13 + movq WAKEUP_PCB(R12), %r12 + movq WAKEUP_PCB(RBP), %rbp + movq WAKEUP_PCB(RSP), %rsp + movq WAKEUP_PCB(RBX), %rbx + + /* Restore debug registers. */ + movq WAKEUP_PCB(DR0), %rax + movq %rax, %dr0 + movq WAKEUP_PCB(DR1), %rax + movq %rax, %dr1 + movq WAKEUP_PCB(DR2), %rax + movq %rax, %dr2 + movq WAKEUP_PCB(DR3), %rax + movq %rax, %dr3 + movq WAKEUP_PCB(DR6), %rax + movq %rax, %dr6 + movq WAKEUP_PCB(DR7), %rax + movq %rax, %dr7 + + /* Restore return address. */ + movq WAKEUP_PCB(RIP), %rax + movq %rax, (%rsp) + + /* Indicate the CPU is resumed. */ + xorl %eax, %eax + movl %eax, WAKEUP_CTX(cpu) + + ret +END(acpi_restorecpu) + +ENTRY(acpi_savecpu) + /* Fetch XPCB and save CPU context. */ + movq %rdi, %r10 + call savectx2 + movq %r10, %r11 + + /* Patch caller's return address and stack pointer. */ + movq (%rsp), %rax + movq %rax, WAKEUP_PCB(RIP) + movq %rsp, %rax + movq %rax, WAKEUP_PCB(RSP) + + movl $1, %eax + ret +END(acpi_savecpu) Added: head/sys/amd64/acpica/acpi_wakecode.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/acpica/acpi_wakecode.S Tue Mar 17 00:48:11 2009 (r189903) @@ -0,0 +1,278 @@ +/*- + * Copyright (c) 2001 Takanori Watanabe + * Copyright (c) 2001 Mitsuru IWASAKI + * Copyright (c) 2003 Peter Wemm + * Copyright (c) 2008 Jung-uk Kim + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (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$ + */ + +#define LOCORE + +#include +#include + +#include "assym.s" + +/* + * Resume entry point for real mode. + * + * If XFirmwareWakingVector is zero and FirmwareWakingVector is non-zero + * in FACS, the BIOS enters here in real mode after POST with CS set to + * (FirmwareWakingVector >> 4) and IP set to (FirmwareWakingVector & 0xf). + * Depending on the previous sleep state, we may need to initialize more + * of the system (i.e., S3 suspend-to-RAM vs. S4 suspend-to-disk). + * + * Note: If XFirmwareWakingVector is non-zero, it should disable address + * translation/paging and interrupts, load all segment registers with + * a flat 4 GB address space, and set EFLAGS.IF to zero. Currently + * this mode is not supported by this code. + */ + + .data /* So we can modify it */ + + ALIGN_TEXT +wakeup_start: + .code16 + /* + * Set up segment registers for real mode, a small stack for + * any calls we make, and clear any flags. + */ + cli /* make sure no interrupts */ + cld + mov %cs, %ax /* copy %cs to %ds. Remember these */ + mov %ax, %ds /* are offsets rather than selectors */ + mov %ax, %ss + movw $PAGE_SIZE - 8, %sp + pushw $0 + popfw + + /* To debug resume hangs, beep the speaker if the user requested. */ + cmpw $0, resume_beep - wakeup_start + je 1f + movb $0xc0, %al + outb %al, $0x42 + movb $0x04, %al + outb %al, $0x42 + inb $0x61, %al + orb $0x3, %al + outb %al, $0x61 + movw $0, resume_beep - wakeup_start +1: + + /* Re-initialize video BIOS if the reset_video tunable is set. */ + cmpw $0, reset_video - wakeup_start + je 1f + lcall $0xc000, $3 + movw $0, reset_video - wakeup_start + + /* + * Set up segment registers for real mode again in case the + * previous BIOS call clobbers them. + */ + mov %cs, %ax + mov %ax, %ds + mov %ax, %ss +1: + + /* + * Find relocation base and patch the gdt descript and ljmp targets + */ + xorl %ebx, %ebx + mov %cs, %bx + sall $4, %ebx /* %ebx is now our relocation base */ + + /* + * Load the descriptor table pointer. We'll need it when running + * in 16-bit protected mode. + */ + lgdtl bootgdtdesc - wakeup_start + + /* Enable protected mode */ + movl $CR0_PE, %eax + mov %eax, %cr0 + + /* + * Now execute a far jump to turn on protected mode. This + * causes the segment registers to turn into selectors and causes + * %cs to be loaded from the gdt. + * + * The following instruction is: + * ljmpl $bootcode32 - bootgdt, $wakeup_32 - wakeup_start + * but gas cannot assemble that. And besides, we patch the targets + * in early startup and its a little clearer what we are patching. + */ +wakeup_sw32: + .byte 0x66 /* size override to 32 bits */ + .byte 0xea /* opcode for far jump */ + .long wakeup_32 - wakeup_start /* offset in segment */ + .word bootcode32 - bootgdt /* index in gdt for 32 bit code */ + + /* + * At this point, we are running in 32 bit legacy protected mode. + */ + .code32 +wakeup_32: + + mov $bootdata32 - bootgdt, %eax + mov %ax, %ds + + /* Turn on the PAE and PSE bits for when paging is enabled */ + mov %cr4, %eax + orl $(CR4_PAE | CR4_PSE), %eax + mov %eax, %cr4 + + /* + * Enable EFER.LME so that we get long mode when all the prereqs are + * in place. In this case, it turns on when CR0_PG is finally enabled. + * Pick up a few other EFER bits that we'll use need we're here. + */ + movl $MSR_EFER, %ecx + rdmsr + orl $EFER_LME | EFER_SCE, %eax + wrmsr + + /* + * Point to the embedded page tables for startup. Note that this + * only gets accessed after we're actually in 64 bit mode, however + * we can only set the bottom 32 bits of %cr3 in this state. This + * means we are required to use a temporary page table that is below + * the 4GB limit. %ebx is still our relocation base. We could just + * subtract 3 * PAGE_SIZE, but that would be too easy. + */ + leal wakeup_pagetables - wakeup_start(%ebx), %eax + movl (%eax), %eax + mov %eax, %cr3 + + /* + * Finally, switch to long bit mode by enabling paging. We have + * to be very careful here because all the segmentation disappears + * out from underneath us. The spec says we can depend on the + * subsequent pipelined branch to execute, but *only if* everthing + * is still identity mapped. If any mappings change, the pipeline + * will flush. + */ + mov %cr0, %eax + orl $CR0_PG, %eax + mov %eax, %cr0 + + /* + * At this point paging is enabled, and we are in "compatability" mode. + * We do another far jump to reload %cs with the 64 bit selector. + * %cr3 points to a 4-level page table page. + * We cannot yet jump all the way to the kernel because we can only + * specify a 32 bit linear address. So, yet another trampoline. + * + * The following instruction is: + * ljmp $bootcode64 - bootgdt, $wakeup_64 - wakeup_start + * but gas cannot assemble that. And besides, we patch the targets + * in early startup and its a little clearer what we are patching. + */ +wakeup_sw64: + .byte 0xea /* opcode for far jump */ + .long wakeup_64 - wakeup_start /* offset in segment */ + .word bootcode64 - bootgdt /* index in gdt for 64 bit code */ + + /* + * Yeehar! We're running in 64-bit mode! We can mostly ignore our + * segment registers, and get on with it. + * Note that we are running at the correct virtual address, but with + * a 1:1 1GB mirrored mapping over entire address space. We had better + * switch to a real %cr3 promptly so that we can get to the direct map + * space. Remember that jmp is relative and that we've been relocated, + * so use an indirect jump. + */ + .code64 +wakeup_64: + mov $bootdata64 - bootgdt, %eax + mov %ax, %ds + + /* Restore arguments and return. */ + movq wakeup_ctx - wakeup_start(%rbx), %rdi + movq wakeup_kpml4 - wakeup_start(%rbx), %rsi + movq wakeup_retaddr - wakeup_start(%rbx), %rax + jmp *%rax + + ALIGN_DATA +bootgdt: + .long 0x00000000 + .long 0x00000000 + +bootcode64: + .long 0x0000ffff + .long 0x00af9b00 + +bootdata64: + .long 0x0000ffff + .long 0x00af9300 + +bootcode32: + .long 0x0000ffff + .long 0x00cf9b00 + +bootdata32: + .long 0x0000ffff + .long 0x00cf9300 +bootgdtend: + +wakeup_pagetables: + .long 0 + +bootgdtdesc: + .word bootgdtend - bootgdt /* Length */ + .long bootgdt - wakeup_start /* Offset plus %ds << 4 */ + + ALIGN_DATA +resume_beep: + .long 0 +reset_video: + .long 0 +wakeup_retaddr: + .quad 0 +wakeup_kpml4: + .quad 0 + +wakeup_ctx: + .quad 0 +wakeup_xpcb: + .quad 0 +wakeup_gdt: + .word 0 + .quad 0 +wakeup_efer: + .quad 0 +wakeup_pat: + .quad 0 +wakeup_star: + .quad 0 +wakeup_lstar: + .quad 0 +wakeup_cstar: + .quad 0 +wakeup_sfmask: + .quad 0 +wakeup_cpu: + .long 0 +dummy: Modified: head/sys/amd64/acpica/acpi_wakeup.c ============================================================================== --- head/sys/amd64/acpica/acpi_wakeup.c Mon Mar 16 23:56:28 2009 (r189902) +++ head/sys/amd64/acpica/acpi_wakeup.c Tue Mar 17 00:48:11 2009 (r189903) @@ -1,6 +1,8 @@ /*- * Copyright (c) 2001 Takanori Watanabe * Copyright (c) 2001 Mitsuru IWASAKI + * Copyright (c) 2003 Peter Wemm + * Copyright (c) 2008-2009 Jung-uk Kim * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,18 +31,411 @@ __FBSDID("$FreeBSD$"); #include +#include #include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +#ifdef SMP +#include +#include +#endif #include #include +#include "acpi_wakecode.h" +#include "acpi_wakedata.h" + +/* Make sure the code is less than a page and leave room for the stack. */ +CTASSERT(sizeof(wakecode) < PAGE_SIZE - 1024); + +#ifndef _SYS_CDEFS_H_ +#error this file needs sys/cdefs.h as a prerequisite +#endif + +extern uint32_t acpi_resume_beep; +extern uint32_t acpi_reset_video; + +#ifdef SMP +extern struct xpcb *stopxpcbs; +#else +static struct xpcb *stopxpcbs; +#endif + +int acpi_restorecpu(struct xpcb *, vm_offset_t); +int acpi_savecpu(struct xpcb *); + +static void acpi_reset_tss(int cpu); +static void acpi_alloc_wakeup_handler(void); +static void acpi_stop_beep(void *); + +#ifdef SMP +static int acpi_wakeup_ap(struct acpi_softc *, int); +static void acpi_wakeup_cpus(struct acpi_softc *, cpumask_t); +#endif + +#define WAKECODE_VADDR(sc) ((sc)->acpi_wakeaddr + (3 * PAGE_SIZE)) +#define WAKECODE_PADDR(sc) ((sc)->acpi_wakephys + (3 * PAGE_SIZE)) +#define WAKECODE_FIXUP(offset, type, val) do { \ + type *addr; \ + addr = (type *)(WAKECODE_VADDR(sc) + offset); \ + *addr = val; \ +} while (0) + +/* Turn off bits 1&2 of the PIT, stopping the beep. */ +static void +acpi_stop_beep(void *arg) +{ + outb(0x61, inb(0x61) & ~0x3); +} + +#ifdef SMP +static int +acpi_wakeup_ap(struct acpi_softc *sc, int cpu) +{ + int vector = (WAKECODE_PADDR(sc) >> 12) & 0xff; + int apic_id = cpu_apic_ids[cpu]; + int ms; + + WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[cpu]); + WAKECODE_FIXUP(wakeup_gdt, uint16_t, stopxpcbs[cpu].xpcb_gdt.rd_limit); + WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, + stopxpcbs[cpu].xpcb_gdt.rd_base); + WAKECODE_FIXUP(wakeup_cpu, int, cpu); + + acpi_reset_tss(cpu); + + /* do an INIT IPI: assert RESET */ + lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | + APIC_LEVEL_ASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, apic_id); + + /* wait for pending status end */ + lapic_ipi_wait(-1); + + /* do an INIT IPI: deassert RESET */ + lapic_ipi_raw(APIC_DEST_ALLESELF | APIC_TRIGMOD_LEVEL | + APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_INIT, 0); + + /* wait for pending status end */ + DELAY(10000); /* wait ~10mS */ + lapic_ipi_wait(-1); + + /* + * next we do a STARTUP IPI: the previous INIT IPI might still be + * latched, (P5 bug) this 1st STARTUP would then terminate + * immediately, and the previously started INIT IPI would continue. OR + * the previous INIT IPI has already run. and this STARTUP IPI will + * run. OR the previous INIT IPI was ignored. and this STARTUP IPI + * will run. + */ + + /* do a STARTUP IPI */ + lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | + APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | + vector, apic_id); + lapic_ipi_wait(-1); + DELAY(200); /* wait ~200uS */ + + /* + * finally we do a 2nd STARTUP IPI: this 2nd STARTUP IPI should run IF + * the previous STARTUP IPI was cancelled by a latched INIT IPI. OR + * this STARTUP IPI will be ignored, as only ONE STARTUP IPI is + * recognized after hardware RESET or INIT IPI. + */ + + lapic_ipi_raw(APIC_DEST_DESTFLD | APIC_TRIGMOD_EDGE | + APIC_LEVEL_DEASSERT | APIC_DESTMODE_PHY | APIC_DELMODE_STARTUP | + vector, apic_id); + lapic_ipi_wait(-1); + DELAY(200); /* wait ~200uS */ + + /* Wait up to 5 seconds for it to start. */ + for (ms = 0; ms < 5000; ms++) { + if (*(int *)(WAKECODE_VADDR(sc) + wakeup_cpu) == 0) + return (1); /* return SUCCESS */ + DELAY(1000); + } + return (0); /* return FAILURE */ +} + +#define WARMBOOT_TARGET 0 +#define WARMBOOT_OFF (KERNBASE + 0x0467) +#define WARMBOOT_SEG (KERNBASE + 0x0469) + +#define CMOS_REG (0x70) +#define CMOS_DATA (0x71) +#define BIOS_RESET (0x0f) +#define BIOS_WARM (0x0a) + +static void +acpi_wakeup_cpus(struct acpi_softc *sc, cpumask_t wakeup_cpus) +{ + uint32_t mpbioswarmvec; + cpumask_t map; + int cpu; + u_char mpbiosreason; + + /* save the current value of the warm-start vector */ + mpbioswarmvec = *((uint32_t *)WARMBOOT_OFF); + outb(CMOS_REG, BIOS_RESET); + mpbiosreason = inb(CMOS_DATA); + + /* setup a vector to our boot code */ + *((volatile u_short *)WARMBOOT_OFF) = WARMBOOT_TARGET; + *((volatile u_short *)WARMBOOT_SEG) = WAKECODE_PADDR(sc) >> 4; + outb(CMOS_REG, BIOS_RESET); + outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ + + /* Wake up each AP. */ + for (cpu = 1; cpu < mp_ncpus; cpu++) { + map = 1ul << cpu; + if ((wakeup_cpus & map) != map) + continue; + if (acpi_wakeup_ap(sc, cpu) == 0) { + /* restore the warmstart vector */ + *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; + panic("acpi_wakeup: failed to resume AP #%d (PHY #%d)", + cpu, cpu_apic_ids[cpu]); + } + } + + /* restore the warmstart vector */ + *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; + + outb(CMOS_REG, BIOS_RESET); + outb(CMOS_DATA, mpbiosreason); +} +#endif + +static void +acpi_reset_tss(int cpu) +{ + uint32_t *tss; + + /* + * We have to clear "task busy" bit in TSS to restore + * task register later. Otherwise, ltr causes GPF. + */ + tss = (uint32_t *)&gdt[NGDT * cpu + GPROC0_SEL] + 1; + *tss &= ~((SDT_SYSBSY ^ SDT_SYSTSS) << 8); +} + int acpi_sleep_machdep(struct acpi_softc *sc, int state) { - return (0); + struct savefpu *stopfpu; +#ifdef SMP + cpumask_t wakeup_cpus; +#endif + register_t cr3, rf; + ACPI_STATUS status; + int ret; + + ret = -1; + + if (sc->acpi_wakeaddr == 0ul) + return (ret); + +#ifdef SMP + wakeup_cpus = PCPU_GET(other_cpus); +#endif + + AcpiSetFirmwareWakingVector(WAKECODE_PADDR(sc)); + + rf = intr_disable(); + intr_suspend(); + + /* + * Temporarily switch to the kernel pmap because it provides + * an identity mapping (setup at boot) for the low physical + * memory region containing the wakeup code. + */ + cr3 = rcr3(); + load_cr3(KPML4phys); + + stopfpu = &stopxpcbs[0].xpcb_pcb.pcb_save; + if (acpi_savecpu(&stopxpcbs[0])) { + fpugetregs(curthread, stopfpu); + +#ifdef SMP + if (wakeup_cpus != 0 && suspend_cpus(wakeup_cpus) == 0) { + device_printf(sc->acpi_dev, + "Failed to suspend APs: CPU mask = 0x%jx\n", + (uintmax_t)(wakeup_cpus & ~stopped_cpus)); + goto out; + } +#endif + + WAKECODE_FIXUP(resume_beep, uint32_t, acpi_resume_beep); + WAKECODE_FIXUP(reset_video, uint32_t, acpi_reset_video); + + WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[0]); + WAKECODE_FIXUP(wakeup_gdt, uint16_t, + stopxpcbs[0].xpcb_gdt.rd_limit); + WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, + stopxpcbs[0].xpcb_gdt.rd_base); + WAKECODE_FIXUP(wakeup_cpu, int, 0); + + acpi_reset_tss(0); + + /* Call ACPICA to enter the desired sleep state */ + if (state == ACPI_STATE_S4 && sc->acpi_s4bios) + status = AcpiEnterSleepStateS4bios(); + else + status = AcpiEnterSleepState(state); + + if (status != AE_OK) { + device_printf(sc->acpi_dev, + "AcpiEnterSleepState failed - %s\n", + AcpiFormatException(status)); + goto out; + } + + for (;;) + ia32_pause(); + } else { + fpusetregs(curthread, stopfpu); + + WAKECODE_FIXUP(resume_beep, uint32_t, 0); + WAKECODE_FIXUP(reset_video, uint32_t, 0); +#ifdef SMP + if (wakeup_cpus != 0) + acpi_wakeup_cpus(sc, wakeup_cpus); +#endif + ret = 0; + } + +out: +#ifdef SMP + if (wakeup_cpus != 0) + restart_cpus(wakeup_cpus); +#endif + + load_cr3(cr3); + intr_resume(); + intr_restore(rf); + + AcpiSetFirmwareWakingVector(0); + + if (ret == 0 && mem_range_softc.mr_op != NULL && + mem_range_softc.mr_op->reinit != NULL) + mem_range_softc.mr_op->reinit(&mem_range_softc); + + /* If we beeped, turn it off after a delay. */ + if (acpi_resume_beep) + timeout(acpi_stop_beep, NULL, 3 * hz); + + return (ret); +} + +static vm_offset_t acpi_wakeaddr; + +static void +acpi_alloc_wakeup_handler(void) +{ + void *wakeaddr; + + if (!cold) + return; + + /* + * Specify the region for our wakeup code. We want it in the low 1 MB + * region, excluding video memory and above (0xa0000). We ask for + * it to be page-aligned, just to be safe. + */ + wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_NOWAIT, 0, 0x9ffff, + PAGE_SIZE, 0ul); + if (wakeaddr == NULL) { + printf("%s: can't alloc wake memory\n", __func__); + return; + } + stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_NOWAIT); + if (stopxpcbs == NULL) { + contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF); + printf("%s: can't alloc CPU state memory\n", __func__); + return; + } + acpi_wakeaddr = (vm_offset_t)wakeaddr; } +SYSINIT(acpiwakeup, SI_SUB_KMEM, SI_ORDER_ANY, acpi_alloc_wakeup_handler, 0); + void acpi_install_wakeup_handler(struct acpi_softc *sc) { + uint64_t *pt4, *pt3, *pt2; + int i; + + if (acpi_wakeaddr == 0ul) + return; + + sc->acpi_wakeaddr = acpi_wakeaddr; + sc->acpi_wakephys = vtophys(acpi_wakeaddr); + + bcopy(wakecode, (void *)WAKECODE_VADDR(sc), sizeof(wakecode)); + + /* Patch GDT base address, ljmp targets and page table base address. */ + WAKECODE_FIXUP((bootgdtdesc + 2), uint32_t, + WAKECODE_PADDR(sc) + bootgdt); + WAKECODE_FIXUP((wakeup_sw32 + 2), uint32_t, + WAKECODE_PADDR(sc) + wakeup_32); + WAKECODE_FIXUP((wakeup_sw64 + 1), uint32_t, + WAKECODE_PADDR(sc) + wakeup_64); + WAKECODE_FIXUP(wakeup_pagetables, uint32_t, sc->acpi_wakephys); + + /* Save pointers to some global data. */ + WAKECODE_FIXUP(wakeup_retaddr, void *, acpi_restorecpu); + WAKECODE_FIXUP(wakeup_kpml4, uint64_t, KPML4phys); + WAKECODE_FIXUP(wakeup_ctx, vm_offset_t, + WAKECODE_VADDR(sc) + wakeup_ctx); + WAKECODE_FIXUP(wakeup_efer, uint64_t, rdmsr(MSR_EFER)); + WAKECODE_FIXUP(wakeup_pat, uint64_t, rdmsr(MSR_PAT)); + WAKECODE_FIXUP(wakeup_star, uint64_t, rdmsr(MSR_STAR)); + WAKECODE_FIXUP(wakeup_lstar, uint64_t, rdmsr(MSR_LSTAR)); + WAKECODE_FIXUP(wakeup_cstar, uint64_t, rdmsr(MSR_CSTAR)); + WAKECODE_FIXUP(wakeup_sfmask, uint64_t, rdmsr(MSR_SF_MASK)); + + /* Build temporary page tables below realmode code. */ + pt4 = (uint64_t *)acpi_wakeaddr; + pt3 = pt4 + (PAGE_SIZE) / sizeof(uint64_t); + pt2 = pt3 + (PAGE_SIZE) / sizeof(uint64_t); + + /* Create the initial 1GB replicated page tables */ + for (i = 0; i < 512; i++) { + /* + * Each slot of the level 4 pages points + * to the same level 3 page + */ + pt4[i] = (uint64_t)(sc->acpi_wakephys + PAGE_SIZE); + pt4[i] |= PG_V | PG_RW | PG_U; + + /* + * Each slot of the level 3 pages points + * to the same level 2 page + */ + pt3[i] = (uint64_t)(sc->acpi_wakephys + (2 * PAGE_SIZE)); + pt3[i] |= PG_V | PG_RW | PG_U; + + /* The level 2 page slots are mapped with 2MB pages for 1GB. */ + pt2[i] = i * (2 * 1024 * 1024); + pt2[i] |= PG_V | PG_RW | PG_PS | PG_U; + } + + if (bootverbose) + device_printf(sc->acpi_dev, "wakeup code va %p pa %p\n", + (void *)sc->acpi_wakeaddr, (void *)sc->acpi_wakephys); } Added: head/sys/amd64/acpica/genwakecode.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/amd64/acpica/genwakecode.sh Tue Mar 17 00:48:11 2009 (r189903) @@ -0,0 +1,6 @@ +#!/bin/sh +# $FreeBSD$ +# +file2c 'static char wakecode[] = {' '};' Delivered-To: svn-src-all@FreeBSD.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 81780106564A; Tue, 17 Mar 2009 01:03:59 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: src-committers@FreeBSD.org Date: Mon, 16 Mar 2009 21:03:46 -0400 User-Agent: KMail/1.6.2 References: <200903170048.n2H0mCw4076588@svn.freebsd.org> In-Reply-To: <200903170048.n2H0mCw4076588@svn.freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200903162103.52835.jkim@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org Subject: Re: svn commit: r189903 - in head/sys: amd64/acpica amd64/amd64 amd64/include conf dev/acpica i386/i386 kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 01:04:00 -0000 On Monday 16 March 2009 08:48 pm, Jung-uk Kim wrote: > Author: jkim > Date: Tue Mar 17 00:48:11 2009 > New Revision: 189903 > URL: http://svn.freebsd.org/changeset/base/189903 > > Log: > Initial suspend/resume support for amd64. > > This code is heavily inspired by Takanori Watanabe's experimental > SMP patch for i386 and large portion was shamelessly cut and pasted > from Peter Wemm's AP boot code. Older revision was: Reviewed by: jhb, mav Tested by: mav Jung-uk Kim From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 01:38:51 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80610106566C; Tue, 17 Mar 2009 01:38:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6DD058FC19; Tue, 17 Mar 2009 01:38:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H1cpj0077510; Tue, 17 Mar 2009 01:38:51 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H1cp0r077509; Tue, 17 Mar 2009 01:38:51 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200903170138.n2H1cp0r077509@svn.freebsd.org> From: Andrew Thompson Date: Tue, 17 Mar 2009 01:38:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189904 - head/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 01:38:52 -0000 Author: thompsa Date: Tue Mar 17 01:38:51 2009 New Revision: 189904 URL: http://svn.freebsd.org/changeset/base/189904 Log: Add Supertop IDE adapter and Quickcam entries. Modified: head/sys/dev/usb/usbdevs Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Tue Mar 17 00:48:11 2009 (r189903) +++ head/sys/dev/usb/usbdevs Tue Mar 17 01:38:51 2009 (r189904) @@ -593,6 +593,7 @@ vendor SILICOM 0x1485 Silicom vendor RALINK 0x148f Ralink Technology vendor IMAGINATION 0x149a Imagination Technologies vendor CONCEPTRONIC2 0x14b2 Conceptronic +vendor SUPERTOP 0x14cd Super Top vendor PLANEX3 0x14ea Planex Communications vendor SILICONPORTALS 0x1527 Silicon Portals vendor UBIQUAM 0x1529 UBIQUAM Co., Ltd. @@ -1632,6 +1633,7 @@ product LOGITECH QUICKCAMWEB 0x0801 Quic product LOGITECH QUICKCAMPRO 0x0810 QuickCam Pro product LOGITECH QUICKCAMEXP 0x0840 QuickCam Express product LOGITECH QUICKCAM 0x0850 QuickCam +product LOGITECH QUICKCAMPRO3 0x0990 QuickCam Pro 9000 product LOGITECH N43 0xc000 N43 product LOGITECH N48 0xc001 N48 mouse product LOGITECH MBA47 0xc002 M-BA47 mouse @@ -2312,6 +2314,9 @@ product SUN KEYBOARD 0x0005 Type 6 USB /* XXX The above is a North American PC style keyboard possibly */ product SUN MOUSE 0x0100 Type 6 USB mouse +/* Super Top products */ +product SUPERTOP IDE 0x6600 USB-IDE + /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K modem product DIAMOND2 SUPRA2890 0x0b4a SupraMax 2890 56K Modem From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 01:42:49 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 404F1106566B; Tue, 17 Mar 2009 01:42:47 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2E3898FC08; Tue, 17 Mar 2009 01:42:47 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H1gl2K077614; Tue, 17 Mar 2009 01:42:47 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H1glBO077613; Tue, 17 Mar 2009 01:42:47 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200903170142.n2H1glBO077613@svn.freebsd.org> From: Andrew Thompson Date: Tue, 17 Mar 2009 01:42:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189905 - head/sys/dev/usb/storage X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 01:42:49 -0000 Author: thompsa Date: Tue Mar 17 01:42:46 2009 New Revision: 189905 URL: http://svn.freebsd.org/changeset/base/189905 Log: MFp4 //depot/projects/usb 159238,159275 Add umass quirks. Submitted by: Michael Gmelin Modified: head/sys/dev/usb/storage/umass.c Modified: head/sys/dev/usb/storage/umass.c ============================================================================== --- head/sys/dev/usb/storage/umass.c Tue Mar 17 01:38:51 2009 (r189904) +++ head/sys/dev/usb/storage/umass.c Tue Mar 17 01:42:46 2009 (r189905) @@ -609,7 +609,7 @@ static const struct umass_devdescr umass }, {USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, - NO_INQUIRY | IGNORE_RESIDUE + NO_INQUIRY | IGNORE_RESIDUE | NO_SYNCHRONIZE_CACHE }, {USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, @@ -847,6 +847,10 @@ static const struct umass_devdescr umass UMASS_PROTO_SCSI | UMASS_PROTO_BBB, NO_QUIRKS }, + {USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE, RID_WILDCARD, + UMASS_PROTO_SCSI | UMASS_PROTO_BBB, + IGNORE_RESIDUE | NO_SYNCHRONIZE_CACHE + }, {USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE, RID_WILDCARD, UMASS_PROTO_SCSI, NO_QUIRKS @@ -2022,7 +2026,7 @@ umass_t_bbb_status_callback(struct usb2_ residue = UGETDW(sc->csw.dCSWDataResidue); - if (!residue) { + if ((!residue) || (sc->sc_quirks & IGNORE_RESIDUE)) { residue = (sc->sc_transfer.data_len - sc->sc_transfer.actlen); } From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 01:46:40 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DDA2A1065670; Tue, 17 Mar 2009 01:46:40 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CAD2C8FC21; Tue, 17 Mar 2009 01:46:40 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H1ke5v077739; Tue, 17 Mar 2009 01:46:40 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H1ketd077734; Tue, 17 Mar 2009 01:46:40 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200903170146.n2H1ketd077734@svn.freebsd.org> From: Andrew Thompson Date: Tue, 17 Mar 2009 01:46:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189906 - in head/sys/dev/usb: . image serial X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 01:46:41 -0000 Author: thompsa Date: Tue Mar 17 01:46:40 2009 New Revision: 189906 URL: http://svn.freebsd.org/changeset/base/189906 Log: MFp4 //depot/projects/usb 159225,159241,159292 Fix regression issue in the USB file system interface. - Use cdev_privdata pointer as indicator of correct file handle. - Remove redundant FIFO opened flags. Don't send ZLP at close for ulpt and uscanner devices as this causes some models to stop working. This reverts back to the USB1 behaviour. Submitted by: Hans Petter Selasky Modified: head/sys/dev/usb/image/uscanner.c head/sys/dev/usb/serial/ulpt.c head/sys/dev/usb/usb_dev.c head/sys/dev/usb/usb_dev.h head/sys/dev/usb/usb_device.h Modified: head/sys/dev/usb/image/uscanner.c ============================================================================== --- head/sys/dev/usb/image/uscanner.c Tue Mar 17 01:42:46 2009 (r189905) +++ head/sys/dev/usb/image/uscanner.c Tue Mar 17 01:46:40 2009 (r189906) @@ -149,7 +149,7 @@ static const struct usb2_config uscanner .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .mh.bufsize = USCANNER_BSIZE, - .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,.proxy_buffer = 1,.force_short_xfer = 1,}, + .mh.flags = {.pipe_bof = 1,.proxy_buffer = 1,}, .mh.callback = &uscanner_write_callback, }, Modified: head/sys/dev/usb/serial/ulpt.c ============================================================================== --- head/sys/dev/usb/serial/ulpt.c Tue Mar 17 01:42:46 2009 (r189905) +++ head/sys/dev/usb/serial/ulpt.c Tue Mar 17 01:46:40 2009 (r189906) @@ -200,7 +200,8 @@ ulpt_write_callback(struct usb2_xfer *xf DPRINTF("no FIFO\n"); return; } - DPRINTF("state=0x%x\n", USB_GET_STATE(xfer)); + DPRINTF("state=0x%x actlen=%u\n", + USB_GET_STATE(xfer), xfer->actlen); switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: @@ -208,7 +209,6 @@ ulpt_write_callback(struct usb2_xfer *xf tr_setup: if (usb2_fifo_get_data(f, xfer->frbuffers, 0, xfer->max_data_length, &actlen, 0)) { - xfer->frlengths[0] = actlen; usb2_start_hardware(xfer); } @@ -339,7 +339,7 @@ static const struct usb2_config ulpt_con .endpoint = UE_ADDR_ANY, .direction = UE_DIR_OUT, .mh.bufsize = ULPT_BSIZE, - .mh.flags = {.pipe_bof = 1,.force_short_xfer = 1,.proxy_buffer = 1}, + .mh.flags = {.pipe_bof = 1,.proxy_buffer = 1}, .mh.callback = &ulpt_write_callback, }, Modified: head/sys/dev/usb/usb_dev.c ============================================================================== --- head/sys/dev/usb/usb_dev.c Tue Mar 17 01:42:46 2009 (r189905) +++ head/sys/dev/usb/usb_dev.c Tue Mar 17 01:46:40 2009 (r189906) @@ -72,7 +72,8 @@ SYSCTL_INT(_hw_usb2_dev, OID_AUTO, debug /* prototypes */ -static int usb2_fifo_open(struct usb2_fifo *, int); +static int usb2_fifo_open(struct usb2_cdev_privdata *, + struct usb2_fifo *, int); static void usb2_fifo_close(struct usb2_fifo *, int); static void usb2_dev_init(void *); static void usb2_dev_init_post(void *); @@ -160,7 +161,6 @@ usb2_ref_device(struct usb2_cdev_privdat { struct usb2_fifo **ppf; struct usb2_fifo *f; - int dev_ep_index; DPRINTFN(2, "usb2_ref_device, cpd=%p need uref=%d\n", cpd, need_uref); @@ -180,7 +180,6 @@ usb2_ref_device(struct usb2_cdev_privdat goto error; } /* check if we are doing an open */ - dev_ep_index = cpd->ep_addr; if (cpd->fflags == 0) { /* set defaults */ cpd->txfifo = NULL; @@ -200,15 +199,12 @@ usb2_ref_device(struct usb2_cdev_privdat cpd->is_write = 1; /* ref */ if (f == NULL || f->refcount == USB_FIFO_REF_MAX) goto error; + if (f->curr_cpd != cpd) + goto error; /* check if USB-FS is active */ if (f->fs_ep_max != 0) { cpd->is_usbfs = 1; } - /* - * Get real endpoint index associated with - * this FIFO: - */ - dev_ep_index = f->dev_ep_index; } else { cpd->txfifo = NULL; cpd->is_write = 0; /* no ref */ @@ -222,15 +218,12 @@ usb2_ref_device(struct usb2_cdev_privdat cpd->is_read = 1; /* ref */ if (f == NULL || f->refcount == USB_FIFO_REF_MAX) goto error; + if (f->curr_cpd != cpd) + goto error; /* check if USB-FS is active */ if (f->fs_ep_max != 0) { cpd->is_usbfs = 1; } - /* - * Get real endpoint index associated with - * this FIFO: - */ - dev_ep_index = f->dev_ep_index; } else { cpd->rxfifo = NULL; cpd->is_read = 0; /* no ref */ @@ -434,7 +427,7 @@ usb2_fifo_create(struct usb2_cdev_privda /* wrong endpoint index */ continue; } - if (f->opened) { + if (f->curr_cpd != NULL) { /* FIFO is opened */ is_busy = 1; continue; @@ -451,7 +444,7 @@ usb2_fifo_create(struct usb2_cdev_privda /* wrong endpoint index */ continue; } - if (f->opened) { + if (f->curr_cpd != NULL) { /* FIFO is opened */ is_busy = 1; continue; @@ -466,10 +459,20 @@ usb2_fifo_create(struct usb2_cdev_privda if (no_null == 0) { if (ep >= (USB_EP_MAX / 2)) { /* we don't create any endpoints in this range */ - DPRINTFN(5, "dev_ep_index out of range\n"); + DPRINTFN(5, "ep out of range\n"); return (is_busy ? EBUSY : EINVAL); } } + + if ((ep != 0) && is_busy) { + /* + * Only the default control endpoint is allowed to be + * opened multiple times! + */ + DPRINTFN(5, "busy\n"); + return (EBUSY); + } + /* Check TX FIFO */ if (is_tx && (udev->fifo[n + USB_FIFO_TX] == NULL)) { @@ -639,7 +642,8 @@ usb2_dev_get_pipe(struct usb2_device *ud * Else: Failure *------------------------------------------------------------------------*/ static int -usb2_fifo_open(struct usb2_fifo *f, int fflags) +usb2_fifo_open(struct usb2_cdev_privdata *cpd, + struct usb2_fifo *f, int fflags) { int err; @@ -660,11 +664,14 @@ usb2_fifo_open(struct usb2_fifo *f, int /* check if we are already opened */ /* we don't need any locks when checking this variable */ - if (f->opened) { + if (f->curr_cpd != NULL) { err = EBUSY; goto done; } + /* reset short flag before open */ + f->flag_short = 0; + /* call open method */ err = (f->methods->f_open) (f, fflags); if (err) { @@ -690,9 +697,9 @@ usb2_fifo_open(struct usb2_fifo *f, int /* reset ASYNC proc flag */ f->async_p = NULL; - /* flag the fifo as opened to prevent others */ mtx_lock(&usb2_ref_lock); - f->opened = 1; + /* flag the fifo as opened to prevent others */ + f->curr_cpd = cpd; mtx_unlock(&usb2_ref_lock); /* reset queue */ @@ -733,14 +740,14 @@ usb2_fifo_close(struct usb2_fifo *f, int int err; /* check if we are not opened */ - if (!f->opened) { + if (f->curr_cpd == NULL) { /* nothing to do - already closed */ return; } mtx_lock(f->priv_mtx); - /* clear current file flag */ - f->opened = 0; + /* clear current cdev private data pointer */ + f->curr_cpd = NULL; /* check if we are selected */ if (f->flag_isselect) { @@ -834,21 +841,6 @@ usb2_open(struct cdev *dev, int fflags, } cpd->fflags = fflags; /* access mode for open lifetime */ - /* Check if the endpoint is already open, we always allow EP0 */ - if (ep > 0) { - if ((fflags & FREAD && cpd->udev->ep_rd_opened & (1 << ep)) || - (fflags & FWRITE && cpd->udev->ep_wr_opened & (1 << ep))) { - DPRINTFN(2, "endpoint already open\n"); - usb2_unref_device(cpd); - free(cpd, M_USBDEV); - return (EBUSY); - } - if (fflags & FREAD) - cpd->udev->ep_rd_opened |= (1 << ep); - if (fflags & FWRITE) - cpd->udev->ep_wr_opened |= (1 << ep); - } - /* create FIFOs, if any */ err = usb2_fifo_create(cpd); /* check for error */ @@ -859,7 +851,7 @@ usb2_open(struct cdev *dev, int fflags, return (err); } if (fflags & FREAD) { - err = usb2_fifo_open(cpd->rxfifo, fflags); + err = usb2_fifo_open(cpd, cpd->rxfifo, fflags); if (err) { DPRINTFN(2, "read open failed\n"); usb2_unref_device(cpd); @@ -868,7 +860,7 @@ usb2_open(struct cdev *dev, int fflags, } } if (fflags & FWRITE) { - err = usb2_fifo_open(cpd->txfifo, fflags); + err = usb2_fifo_open(cpd, cpd->txfifo, fflags); if (err) { DPRINTFN(2, "write open failed\n"); if (fflags & FREAD) { @@ -892,27 +884,20 @@ static void usb2_close(void *arg) { struct usb2_cdev_privdata *cpd = arg; - struct usb2_device *udev; int err; - DPRINTFN(2, "usb2_close, cpd=%p\n", cpd); + DPRINTFN(2, "cpd=%p\n", cpd); err = usb2_ref_device(cpd, 1); if (err) { free(cpd, M_USBDEV); return; } - - udev = cpd->udev; if (cpd->fflags & FREAD) { usb2_fifo_close(cpd->rxfifo, cpd->fflags); - /* clear read bitmask */ - udev->ep_rd_opened &= ~(1 << cpd->ep_addr); } if (cpd->fflags & FWRITE) { usb2_fifo_close(cpd->txfifo, cpd->fflags); - /* clear write bitmask */ - udev->ep_wr_opened &= ~(1 << cpd->ep_addr); } usb2_unref_device(cpd); @@ -1621,7 +1606,6 @@ usb2_fifo_attach(struct usb2_device *ude /* initialise FIFO structures */ f_tx->fifo_index = n + USB_FIFO_TX; - f_tx->dev_ep_index = (n / 2) + (USB_EP_MAX / 2); f_tx->priv_mtx = priv_mtx; f_tx->priv_sc0 = priv_sc; f_tx->methods = pm; @@ -1629,7 +1613,6 @@ usb2_fifo_attach(struct usb2_device *ude f_tx->udev = udev; f_rx->fifo_index = n + USB_FIFO_RX; - f_rx->dev_ep_index = (n / 2) + (USB_EP_MAX / 2); f_rx->priv_mtx = priv_mtx; f_rx->priv_sc0 = priv_sc; f_rx->methods = pm; @@ -1684,12 +1667,13 @@ usb2_fifo_attach(struct usb2_device *ude pd->bus_index = device_get_unit(udev->bus->bdev); pd->dev_index = udev->device_index; pd->ep_addr = -1; /* not an endpoint */ - pd->fifo_index = f_tx->fifo_index; + pd->fifo_index = f_tx->fifo_index & f_rx->fifo_index; pd->mode = FREAD|FWRITE; /* Now, create the device itself */ f_sc->dev = make_dev(&usb2_devsw, 0, uid, gid, mode, devname); + /* XXX setting si_drv1 and creating the device is not atomic! */ f_sc->dev->si_drv1 = pd; } @@ -1762,7 +1746,9 @@ usb2_fifo_detach(struct usb2_fifo_sc *f_ f_sc->fp[USB_FIFO_RX] = NULL; if (f_sc->dev != NULL) { - destroy_dev_sched_cb(f_sc->dev, usb2_fifo_cleanup, f_sc->dev->si_drv1); + destroy_dev_sched_cb(f_sc->dev, + usb2_fifo_cleanup, f_sc->dev->si_drv1); + f_sc->dev = NULL; } DPRINTFN(2, "detached %p\n", f_sc); @@ -1949,6 +1935,13 @@ usb2_fifo_get_data(struct usb2_fifo *f, break; } if (f->flag_flushing) { + /* check if we should send a short packet */ + if (f->flag_short != 0) { + f->flag_short = 0; + tr_data = 1; + break; + } + /* flushing complete */ f->flag_flushing = 0; usb2_fifo_wakeup(f); } @@ -2007,6 +2000,13 @@ usb2_fifo_get_data_linear(struct usb2_fi break; } if (f->flag_flushing) { + /* check if we should send a short packet */ + if (f->flag_short != 0) { + f->flag_short = 0; + tr_data = 1; + break; + } + /* flushing complete */ f->flag_flushing = 0; usb2_fifo_wakeup(f); } @@ -2186,3 +2186,13 @@ usb2_read_symlink(uint8_t *user_ptr, uin sx_unlock(&usb2_sym_lock); return (error); } + +void +usb2_fifo_set_close_zlp(struct usb2_fifo *f, uint8_t onoff) +{ + if (f == NULL) + return; + + /* send a Zero Length Packet, ZLP, before close */ + f->flag_short = onoff; +} Modified: head/sys/dev/usb/usb_dev.h ============================================================================== --- head/sys/dev/usb/usb_dev.h Tue Mar 17 01:42:46 2009 (r189905) +++ head/sys/dev/usb/usb_dev.h Tue Mar 17 01:46:40 2009 (r189906) @@ -93,12 +93,12 @@ struct usb2_cdev_privdata { int bus_index; /* bus index */ int dev_index; /* device index */ int ep_addr; /* endpoint address */ + int fflags; uint8_t fifo_index; /* FIFO index */ uint8_t is_read; /* location has read access */ uint8_t is_write; /* location has write access */ uint8_t is_uref; /* USB refcount decr. needed */ uint8_t is_usbfs; /* USB-FS is active */ - int fflags; }; struct usb2_fs_privdata { @@ -130,7 +130,8 @@ struct usb2_fifo { struct usb2_xfer *xfer[2]; struct usb2_xfer **fs_xfer; struct mtx *priv_mtx; /* client data */ - int opened; /* set if FIFO is opened by a FILE */ + /* set if FIFO is opened by a FILE: */ + struct usb2_cdev_privdata *curr_cpd; void *priv_sc0; /* client data */ void *priv_sc1; /* client data */ void *queue_data; @@ -194,5 +195,6 @@ struct usb2_symlink *usb2_alloc_symlink( void usb2_free_symlink(struct usb2_symlink *ps); int usb2_read_symlink(uint8_t *user_ptr, uint32_t startentry, uint32_t user_len); +void usb2_fifo_set_close_zlp(struct usb2_fifo *, uint8_t); #endif /* _USB2_DEV_H_ */ Modified: head/sys/dev/usb/usb_device.h ============================================================================== --- head/sys/dev/usb/usb_device.h Tue Mar 17 01:42:46 2009 (r189905) +++ head/sys/dev/usb/usb_device.h Tue Mar 17 01:46:40 2009 (r189906) @@ -127,8 +127,6 @@ struct usb2_device { uint32_t plugtime; /* copy of "ticks" */ - uint16_t ep_rd_opened; /* bitmask of endpoints opened */ - uint16_t ep_wr_opened; /* from the device nodes. */ uint16_t refcount; #define USB_DEV_REF_MAX 0xffff From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 02:32:37 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7CFA5106564A; Tue, 17 Mar 2009 02:32:37 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C02E8FC12; Tue, 17 Mar 2009 02:32:37 +0000 (UTC) (envelope-from scf@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H2Wb7f078614; Tue, 17 Mar 2009 02:32:37 GMT (envelope-from scf@svn.freebsd.org) Received: (from scf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H2Wboh078613; Tue, 17 Mar 2009 02:32:37 GMT (envelope-from scf@svn.freebsd.org) Message-Id: <200903170232.n2H2Wboh078613@svn.freebsd.org> From: Sean Farley Date: Tue, 17 Mar 2009 02:32:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189907 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 02:32:37 -0000 Author: scf Date: Tue Mar 17 02:32:36 2009 New Revision: 189907 URL: http://svn.freebsd.org/changeset/base/189907 Log: Remove the splimp()/splx() calls around the setting of the MTU. They are no-op's that I inadvertently added. Even if locking is needed in general for the ioctl's, setting a single long will not need it due to the operation being atomic. Reported by: rwatson Modified: head/sys/net/if_tap.c Modified: head/sys/net/if_tap.c ============================================================================== --- head/sys/net/if_tap.c Tue Mar 17 01:46:40 2009 (r189906) +++ head/sys/net/if_tap.c Tue Mar 17 02:32:36 2009 (r189907) @@ -611,9 +611,7 @@ tapifioctl(struct ifnet *ifp, u_long cmd break; case SIOCSIFMTU: - s = splimp(); ifp->if_mtu = ifr->ifr_mtu; - splx(s); break; case SIOCGIFSTATUS: From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:32:13 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25F37106566B; Tue, 17 Mar 2009 03:32:13 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 14BDB8FC08; Tue, 17 Mar 2009 03:32:13 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3WC3H080025; Tue, 17 Mar 2009 03:32:12 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3WCVq080024; Tue, 17 Mar 2009 03:32:12 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170332.n2H3WCVq080024@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:32:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189908 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:32:13 -0000 Author: rnoland Date: Tue Mar 17 03:32:12 2009 New Revision: 189908 URL: http://svn.freebsd.org/changeset/base/189908 Log: Use flsl() here rather than ffsl() I discovered that we were computing page_order differently than linux. MFC after: 3 days Modified: head/sys/dev/drm/drm_bufs.c Modified: head/sys/dev/drm/drm_bufs.c ============================================================================== --- head/sys/dev/drm/drm_bufs.c Tue Mar 17 02:32:36 2009 (r189907) +++ head/sys/dev/drm/drm_bufs.c Tue Mar 17 03:32:12 2009 (r189908) @@ -1106,7 +1106,7 @@ int drm_order(unsigned long size) if (size == 0) return 0; - order = ffsl(size) - 1; + order = flsl(size) - 1; if (size & ~(1ul << order)) ++order; From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:36:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8AA9A106566C; Tue, 17 Mar 2009 03:36:24 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7916F8FC12; Tue, 17 Mar 2009 03:36:24 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3aOsV080143; Tue, 17 Mar 2009 03:36:24 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3aOpL080142; Tue, 17 Mar 2009 03:36:24 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170336.n2H3aOpL080142@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:36:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189909 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:36:25 -0000 Author: rnoland Date: Tue Mar 17 03:36:24 2009 New Revision: 189909 URL: http://svn.freebsd.org/changeset/base/189909 Log: Change the logic around to match ati_pcigart. MFC after: 3 days Modified: head/sys/dev/drm/r600_cp.c Modified: head/sys/dev/drm/r600_cp.c ============================================================================== --- head/sys/dev/drm/r600_cp.c Tue Mar 17 03:32:12 2009 (r189908) +++ head/sys/dev/drm/r600_cp.c Tue Mar 17 03:36:24 2009 (r189909) @@ -174,7 +174,6 @@ int r600_page_table_init(struct drm_devi if (entry->busaddr[i] == 0) { DRM_ERROR("unable to map PCIGART pages!\n"); r600_page_table_cleanup(dev, gart_info); - ret = -EINVAL; goto done; } #endif @@ -193,6 +192,7 @@ int r600_page_table_init(struct drm_devi entry_addr += ATI_PCIGART_PAGE_SIZE; } } + ret = 1; #ifdef __linux__ done: #endif @@ -2100,7 +2100,7 @@ int r600_do_init_cp(struct drm_device *d dev_priv->gart_info.addr, dev_priv->pcigart_offset); - if (r600_page_table_init(dev)) { + if (!r600_page_table_init(dev)) { DRM_ERROR("Failed to init GART table\n"); r600_do_cleanup_cp(dev); return -EINVAL; From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:39:10 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18C31106564A; Tue, 17 Mar 2009 03:39:10 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 071C48FC19; Tue, 17 Mar 2009 03:39:10 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3d9VQ080221; Tue, 17 Mar 2009 03:39:09 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3d9Km080220; Tue, 17 Mar 2009 03:39:09 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170339.n2H3d9Km080220@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:39:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189910 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:39:10 -0000 Author: rnoland Date: Tue Mar 17 03:39:09 2009 New Revision: 189910 URL: http://svn.freebsd.org/changeset/base/189910 Log: Cast register maps and offsets to vm_offset_t MFC after: 3 days Modified: head/sys/dev/drm/drmP.h Modified: head/sys/dev/drm/drmP.h ============================================================================== --- head/sys/dev/drm/drmP.h Tue Mar 17 03:36:24 2009 (r189909) +++ head/sys/dev/drm/drmP.h Tue Mar 17 03:39:09 2009 (r189910) @@ -240,17 +240,23 @@ typedef u_int8_t u8; #endif #define DRM_READ8(map, offset) \ - *(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset)) + *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) #define DRM_READ16(map, offset) \ - *(volatile u_int16_t *) (((unsigned long)(map)->handle) + (offset)) + *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) #define DRM_READ32(map, offset) \ - *(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset)) + *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) #define DRM_WRITE8(map, offset, val) \ - *(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset)) = val + *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) = val #define DRM_WRITE16(map, offset, val) \ - *(volatile u_int16_t *) (((unsigned long)(map)->handle) + (offset)) = val + *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) = val #define DRM_WRITE32(map, offset, val) \ - *(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset)) = val + *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \ + (vm_offset_t)(offset)) = val #define DRM_VERIFYAREA_READ( uaddr, size ) \ (!useracc(__DECONST(caddr_t, uaddr), size, VM_PROT_READ)) From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:44:37 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C0F3106566B; Tue, 17 Mar 2009 03:44:37 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 061828FC15; Tue, 17 Mar 2009 03:44:37 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3iax6080368; Tue, 17 Mar 2009 03:44:36 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3iaLo080367; Tue, 17 Mar 2009 03:44:36 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170344.n2H3iaLo080367@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:44:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189911 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:44:37 -0000 Author: rnoland Date: Tue Mar 17 03:44:36 2009 New Revision: 189911 URL: http://svn.freebsd.org/changeset/base/189911 Log: We can have more than 3 pci resources MFC after: 3 days Modified: head/sys/dev/drm/drmP.h Modified: head/sys/dev/drm/drmP.h ============================================================================== --- head/sys/dev/drm/drmP.h Tue Mar 17 03:39:09 2009 (r189910) +++ head/sys/dev/drm/drmP.h Tue Mar 17 03:44:36 2009 (r189911) @@ -613,7 +613,7 @@ struct drm_driver_info { }; /* Length for the array of resource pointers for drm_get_resource_*. */ -#define DRM_MAX_PCI_RESOURCE 3 +#define DRM_MAX_PCI_RESOURCE 6 /** * DRM device functions structure From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:46:37 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62AD01065676; Tue, 17 Mar 2009 03:46:37 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FC4A8FC14; Tue, 17 Mar 2009 03:46:37 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3kbbf080446; Tue, 17 Mar 2009 03:46:37 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3kbm0080445; Tue, 17 Mar 2009 03:46:37 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170346.n2H3kbm0080445@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:46:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189912 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:46:39 -0000 Author: rnoland Date: Tue Mar 17 03:46:37 2009 New Revision: 189912 URL: http://svn.freebsd.org/changeset/base/189912 Log: Minor code cleanup MFC after: 3 days Modified: head/sys/dev/drm/drm_bufs.c Modified: head/sys/dev/drm/drm_bufs.c ============================================================================== --- head/sys/dev/drm/drm_bufs.c Tue Mar 17 03:44:36 2009 (r189911) +++ head/sys/dev/drm/drm_bufs.c Tue Mar 17 03:46:37 2009 (r189912) @@ -216,7 +216,7 @@ int drm_addmap(struct drm_device * dev, DRM_LOCK(); return EINVAL; } - map->offset = map->offset + dev->sg->handle; + map->offset += dev->sg->handle; break; case _DRM_CONSISTENT: /* Unfortunately, we don't get any alignment specification from From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:49:24 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CFB64106566C; Tue, 17 Mar 2009 03:49:24 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE53A8FC16; Tue, 17 Mar 2009 03:49:24 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3nO2v080525; Tue, 17 Mar 2009 03:49:24 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3nOY1080524; Tue, 17 Mar 2009 03:49:24 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170349.n2H3nOY1080524@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:49:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189913 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:49:25 -0000 Author: rnoland Date: Tue Mar 17 03:49:24 2009 New Revision: 189913 URL: http://svn.freebsd.org/changeset/base/189913 Log: Add list_for_each_prev to our linux compatibility. We need this for nouveau MFC after: 3 days Modified: head/sys/dev/drm/drm_linux_list.h Modified: head/sys/dev/drm/drm_linux_list.h ============================================================================== --- head/sys/dev/drm/drm_linux_list.h Tue Mar 17 03:46:37 2009 (r189912) +++ head/sys/dev/drm/drm_linux_list.h Tue Mar 17 03:49:24 2009 (r189913) @@ -67,6 +67,10 @@ list_del(struct list_head *entry) { #define list_for_each(entry, head) \ for (entry = (head)->next; entry != head; entry = (entry)->next) +#define list_for_each_prev(entry, head) \ + for (entry = (head)->prev; entry != (head); \ + entry = entry->prev) + #define list_for_each_safe(entry, temp, head) \ for (entry = (head)->next, temp = (entry)->next; \ entry != head; \ From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:50:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35685106564A; Tue, 17 Mar 2009 03:50:36 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2459D8FC1A; Tue, 17 Mar 2009 03:50:36 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3oah3080591; Tue, 17 Mar 2009 03:50:36 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3oah2080590; Tue, 17 Mar 2009 03:50:36 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170350.n2H3oah2080590@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:50:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189914 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:50:36 -0000 Author: rnoland Date: Tue Mar 17 03:50:35 2009 New Revision: 189914 URL: http://svn.freebsd.org/changeset/base/189914 Log: Improve the debugging output of drm_mmap MFC after: 3 days Modified: head/sys/dev/drm/drm_vm.c Modified: head/sys/dev/drm/drm_vm.c ============================================================================== --- head/sys/dev/drm/drm_vm.c Tue Mar 17 03:49:24 2009 (r189913) +++ head/sys/dev/drm/drm_vm.c Tue Mar 17 03:50:35 2009 (r189914) @@ -86,8 +86,13 @@ int drm_mmap(struct cdev *kdev, vm_offse } if (map == NULL) { + DRM_DEBUG("Can't find map, requested offset = %016lx\n", + offset); + TAILQ_FOREACH(map, &dev->maplist, link) { + DRM_DEBUG("map offset = %016lx, handle = %016lx\n", + map->offset, (unsigned long)map->handle); + } DRM_UNLOCK(); - DRM_DEBUG("can't find map\n"); return -1; } if (((map->flags&_DRM_RESTRICTED) && !DRM_SUSER(DRM_CURPROC))) { From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 03:53:45 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F00C106566B; Tue, 17 Mar 2009 03:53:45 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3DB4E8FC08; Tue, 17 Mar 2009 03:53:45 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H3riuC080677; Tue, 17 Mar 2009 03:53:44 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H3ri51080676; Tue, 17 Mar 2009 03:53:44 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170353.n2H3ri51080676@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 03:53:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189915 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 03:53:45 -0000 Author: rnoland Date: Tue Mar 17 03:53:44 2009 New Revision: 189915 URL: http://svn.freebsd.org/changeset/base/189915 Log: Add support for matching solely on vendor id. We will use this method with nouveau MFC after: 3 days Modified: head/sys/dev/drm/drm_drv.c Modified: head/sys/dev/drm/drm_drv.c ============================================================================== --- head/sys/dev/drm/drm_drv.c Tue Mar 17 03:50:35 2009 (r189914) +++ head/sys/dev/drm/drm_drv.c Tue Mar 17 03:53:44 2009 (r189915) @@ -182,7 +182,10 @@ int drm_probe(device_t kdev, drm_pci_id_ id_entry = drm_find_description(vendor, device, idlist); if (id_entry != NULL) { - device_set_desc(kdev, id_entry->name); + if (!device_get_desc(kdev)) { + DRM_DEBUG("desc : %s\n", device_get_desc(kdev)); + device_set_desc(kdev, id_entry->name); + } return 0; } @@ -290,7 +293,8 @@ drm_pci_id_list_t *drm_find_description( for (i = 0; idlist[i].vendor != 0; i++) { if ((idlist[i].vendor == vendor) && - (idlist[i].device == device)) { + ((idlist[i].device == device) || + (idlist[i].device == 0))) { return &idlist[i]; } } From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 05:10:12 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6EF3106566B; Tue, 17 Mar 2009 05:10:12 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA3FF8FC13; Tue, 17 Mar 2009 05:10:12 +0000 (UTC) (envelope-from rnoland@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H5ACdK082224; Tue, 17 Mar 2009 05:10:12 GMT (envelope-from rnoland@svn.freebsd.org) Received: (from rnoland@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H5AC1k082223; Tue, 17 Mar 2009 05:10:12 GMT (envelope-from rnoland@svn.freebsd.org) Message-Id: <200903170510.n2H5AC1k082223@svn.freebsd.org> From: Robert Noland Date: Tue, 17 Mar 2009 05:10:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189916 - head/sys/dev/drm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 05:10:13 -0000 Author: rnoland Date: Tue Mar 17 05:10:12 2009 New Revision: 189916 URL: http://svn.freebsd.org/changeset/base/189916 Log: Cast to (unsigned long) to make printf happy on i386 MFC after: 3 days Modified: head/sys/dev/drm/drm_vm.c Modified: head/sys/dev/drm/drm_vm.c ============================================================================== --- head/sys/dev/drm/drm_vm.c Tue Mar 17 03:53:44 2009 (r189915) +++ head/sys/dev/drm/drm_vm.c Tue Mar 17 05:10:12 2009 (r189916) @@ -87,10 +87,11 @@ int drm_mmap(struct cdev *kdev, vm_offse if (map == NULL) { DRM_DEBUG("Can't find map, requested offset = %016lx\n", - offset); + (unsigned long)offset); TAILQ_FOREACH(map, &dev->maplist, link) { DRM_DEBUG("map offset = %016lx, handle = %016lx\n", - map->offset, (unsigned long)map->handle); + (unsigned long)map->offset, + (unsigned long)map->handle); } DRM_UNLOCK(); return -1; From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 05:57:44 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 208EE106564A; Tue, 17 Mar 2009 05:57:44 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0F3608FC18; Tue, 17 Mar 2009 05:57:44 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H5vhYe084295; Tue, 17 Mar 2009 05:57:43 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H5vhQf084294; Tue, 17 Mar 2009 05:57:43 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <200903170557.n2H5vhQf084294@svn.freebsd.org> From: Weongyo Jeong Date: Tue, 17 Mar 2009 05:57:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189917 - head/sys/compat/ndis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 05:57:44 -0000 Author: weongyo Date: Tue Mar 17 05:57:43 2009 New Revision: 189917 URL: http://svn.freebsd.org/changeset/base/189917 Log: grab NDIS USB lock instead of HAL preemption. This change should be happened in the previous. Modified: head/sys/compat/ndis/subr_usbd.c Modified: head/sys/compat/ndis/subr_usbd.c ============================================================================== --- head/sys/compat/ndis/subr_usbd.c Tue Mar 17 05:10:12 2009 (r189916) +++ head/sys/compat/ndis/subr_usbd.c Tue Mar 17 05:57:43 2009 (r189917) @@ -707,8 +707,9 @@ usbd_irpcancel(dobj, ip) device_object *dobj; irp *ip; { + device_t dev = IRP_NDIS_DEV(ip); + struct ndis_softc *sc = device_get_softc(dev); struct ndisusb_ep *ne = IRP_NDISUSB_EP(ip); - uint8_t irql; if (ne == NULL) { ip->irp_cancel = TRUE; @@ -720,10 +721,10 @@ usbd_irpcancel(dobj, ip) * Make sure that the current USB transfer proxy is * cancelled and then restarted. */ - KeRaiseIrql(DISPATCH_LEVEL, &irql); + NDISUSB_LOCK(sc); usb2_transfer_stop(ne->ne_xfer[0]); usb2_transfer_start(ne->ne_xfer[0]); - KeLowerIrql(irql); + NDISUSB_UNLOCK(sc); ip->irp_cancel = TRUE; IoReleaseCancelSpinLock(ip->irp_cancelirql); From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 06:54:42 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B04C5106564A; Tue, 17 Mar 2009 06:54:42 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BE798FC0A; Tue, 17 Mar 2009 06:54:42 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H6sg0t085516; Tue, 17 Mar 2009 06:54:42 GMT (envelope-from lulf@svn.freebsd.org) Received: (from lulf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H6sgpu085502; Tue, 17 Mar 2009 06:54:42 GMT (envelope-from lulf@svn.freebsd.org) Message-Id: <200903170654.n2H6sgpu085502@svn.freebsd.org> From: Ulf Lilleengen Date: Tue, 17 Mar 2009 06:54:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189918 - in stable/7: contrib/csup usr.bin/csup X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 06:54:43 -0000 Author: lulf Date: Tue Mar 17 06:54:41 2009 New Revision: 189918 URL: http://svn.freebsd.org/changeset/base/189918 Log: MFH: r186781 Merge support for CVSMode (aka. mirror mode) into csup. This means csup can now fetch a complete CVS repository. Support for rsync update of regular files are also included, but are not yet enabled. The change should not have an impact on existing csup usage, as little of the existing code has changed. r186871 - Update manpage now that cvs mode is supported. r188405 - Fix an issue where file attributes were not installed correctly during a Touch and SetAttrs operation. - SetAttrs and Touch were incorrectly switched. r188644 - Do not free the pattern lists immediately after use, as they might be needed again in case the connection is interrupted and csup have to reconnect. The lists will be freed after the collection has been completely processed. r189455 - Try to handle rcsfile write failures in the same way as cvsup, as they are not necessarily fatal. If the file was incorrectly written, the checksum will detect it and the file will be retransferred. Added: stable/7/contrib/csup/lex.rcs.c - copied unchanged from r186781, head/contrib/csup/lex.rcs.c stable/7/contrib/csup/rcsfile.c - copied unchanged from r186781, head/contrib/csup/rcsfile.c stable/7/contrib/csup/rcsfile.h - copied unchanged from r186781, head/contrib/csup/rcsfile.h stable/7/contrib/csup/rcsparse.c - copied unchanged from r186781, head/contrib/csup/rcsparse.c stable/7/contrib/csup/rcsparse.h - copied unchanged from r186781, head/contrib/csup/rcsparse.h stable/7/contrib/csup/rcstokenizer.h - copied unchanged from r186781, head/contrib/csup/rcstokenizer.h stable/7/contrib/csup/rcstokenizer.l - copied unchanged from r186781, head/contrib/csup/rcstokenizer.l stable/7/contrib/csup/rsyncfile.c - copied unchanged from r186781, head/contrib/csup/rsyncfile.c stable/7/contrib/csup/rsyncfile.h - copied unchanged from r186781, head/contrib/csup/rsyncfile.h Modified: stable/7/contrib/csup/ (props changed) stable/7/contrib/csup/GNUmakefile stable/7/contrib/csup/Makefile stable/7/contrib/csup/TODO stable/7/contrib/csup/config.c stable/7/contrib/csup/csup.1 stable/7/contrib/csup/detailer.c stable/7/contrib/csup/diff.c stable/7/contrib/csup/diff.h stable/7/contrib/csup/fattr.c stable/7/contrib/csup/fattr.h stable/7/contrib/csup/keyword.c stable/7/contrib/csup/keyword.h stable/7/contrib/csup/lister.c stable/7/contrib/csup/misc.c stable/7/contrib/csup/misc.h stable/7/contrib/csup/mux.c stable/7/contrib/csup/proto.c stable/7/contrib/csup/proto.h stable/7/contrib/csup/status.c stable/7/contrib/csup/stream.c stable/7/contrib/csup/stream.h stable/7/contrib/csup/updater.c stable/7/usr.bin/csup/ (props changed) stable/7/usr.bin/csup/Makefile Modified: stable/7/contrib/csup/GNUmakefile ============================================================================== --- stable/7/contrib/csup/GNUmakefile Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/GNUmakefile Tue Mar 17 06:54:41 2009 (r189918) @@ -12,8 +12,9 @@ GROUP?= 0 UNAME= $(shell uname -s) SRCS= attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \ - globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c pathcomp.c \ - parse.c proto.c status.c stream.c threads.c token.c updater.c + globtree.c idcache.c keyword.c lex.rcs.c lister.c main.c misc.c mux.c \ + pathcomp.c parse.c proto.c rcsfile.c rcsparse.c rsyncfile.c status.c \ + stream.c threads.c token.c updater.c OBJS= $(SRCS:.c=.o) WARNS= -Wall -W -Wno-unused-parameter -Wmissing-prototypes -Wpointer-arith \ Modified: stable/7/contrib/csup/Makefile ============================================================================== --- stable/7/contrib/csup/Makefile Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/Makefile Tue Mar 17 06:54:41 2009 (r189918) @@ -9,10 +9,11 @@ UNAME!= /usr/bin/uname -s PROG= csup SRCS= attrstack.c config.c detailer.c diff.c fattr.c fixups.c fnmatch.c \ globtree.c idcache.c keyword.c lister.c main.c misc.c mux.c parse.y \ - pathcomp.c proto.c status.c stream.c threads.c token.l updater.c + pathcomp.c proto.c status.c stream.c threads.c token.l updater.c \ + rcsfile.c rcsparse.c lex.rcs.c rsyncfile.c CFLAGS+= -I. -I${.CURDIR} -g -pthread -DHAVE_FFLAGS -DNDEBUG -WARNS?= 6 +WARNS?= 1 # A bit of tweaking is needed to get this Makefile working # with the bsd.prog.mk of all the *BSD OSes... Modified: stable/7/contrib/csup/TODO ============================================================================== --- stable/7/contrib/csup/TODO Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/TODO Tue Mar 17 06:54:41 2009 (r189918) @@ -28,4 +28,3 @@ MISSING FEATURES: checkout files (files in CVS/ subdirectores), a command line override to only update a specific collection and a third verbosity level to display commit log messages. -- Add support for CVS mode (maybe?). Modified: stable/7/contrib/csup/config.c ============================================================================== --- stable/7/contrib/csup/config.c Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/config.c Tue Mar 17 06:54:41 2009 (r189918) @@ -133,7 +133,6 @@ config_init(const char *file, struct col coll->co_options &= ~CO_CHECKRCS; /* In recent versions, we always try to set the file modes. */ coll->co_options |= CO_SETMODE; - /* XXX We don't support the rsync updating algorithm yet. */ coll->co_options |= CO_NORSYNC; error = config_parse_refusefiles(coll); if (error) @@ -444,10 +443,6 @@ coll_add(char *name) "\"%s\"\n", cur_coll->co_name); exit(1); } - if (!(cur_coll->co_options & CO_CHECKOUTMODE)) { - lprintf(-1, "Client only supports checkout mode\n"); - exit(1); - } if (!STAILQ_EMPTY(&colls)) { coll = STAILQ_LAST(&colls, coll, co_next); if (strcmp(coll->co_host, cur_coll->co_host) != 0) { Modified: stable/7/contrib/csup/csup.1 ============================================================================== --- stable/7/contrib/csup/csup.1 Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/csup.1 Tue Mar 17 06:54:41 2009 (r189918) @@ -442,8 +442,6 @@ They are called mode and .Em checkout mode. -.Nm -only supports the checkout mode for now. .Pp In CVS mode, the client receives copies of the actual RCS files making up the master CVS repository. CVS mode is the default mode of operation. Modified: stable/7/contrib/csup/detailer.c ============================================================================== --- stable/7/contrib/csup/detailer.c Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/detailer.c Tue Mar 17 06:54:41 2009 (r189918) @@ -30,13 +30,21 @@ #include #include #include +#include + +#include +#include +#include #include "config.h" #include "detailer.h" #include "fixups.h" +#include "globtree.h" #include "misc.h" #include "mux.h" #include "proto.h" +#include "rcsfile.h" +#include "rsyncfile.h" #include "status.h" #include "stream.h" @@ -56,8 +64,16 @@ struct detailer { static int detailer_batch(struct detailer *); static int detailer_coll(struct detailer *, struct coll *, struct status *); -static int detailer_dofile(struct detailer *, struct coll *, +static int detailer_dofile_co(struct detailer *, struct coll *, struct status *, char *); +static int detailer_dofile_rcs(struct detailer *, struct coll *, + char *, char *); +static int detailer_dofile_regular(struct detailer *, char *, char *); +static int detailer_dofile_rsync(struct detailer *, char *, char *); +static int detailer_checkrcsattr(struct detailer *, struct coll *, char *, + struct fattr *, int); +int detailer_send_details(struct detailer *, struct coll *, char *, + char *, struct fattr *); void * detailer(void *arg) @@ -186,8 +202,13 @@ detailer_batch(struct detailer *d) } if (fixup->f_coll != coll) break; - error = proto_printf(wr, "Y %s %s %s\n", fixup->f_name, - coll->co_tag, coll->co_date); + if (coll->co_options & CO_CHECKOUTMODE) + error = proto_printf(wr, "Y %s %s %s\n", + fixup->f_name, coll->co_tag, coll->co_date); + else { + error = proto_printf(wr, "A %s\n", + fixup->f_name); + } if (error) return (DETAILER_ERR_WRITE); fixup = NULL; @@ -208,12 +229,14 @@ detailer_batch(struct detailer *d) static int detailer_coll(struct detailer *d, struct coll *coll, struct status *st) { + struct fattr *rcsattr; struct stream *rd, *wr; - char *cmd, *file, *line, *msg; - int error; + char *attr, *cmd, *file, *line, *msg, *path, *target; + int error, attic; rd = d->rd; wr = d->wr; + attic = 0; line = stream_getln(rd, NULL); if (line == NULL) return (DETAILER_ERR_READ); @@ -226,17 +249,84 @@ detailer_coll(struct detailer *d, struct /* Delete file. */ file = proto_get_ascii(&line); if (file == NULL || line != NULL) - return (DETAILER_ERR_PROTO); + return (DETAILER_ERR_PROTO); error = proto_printf(wr, "D %s\n", file); if (error) return (DETAILER_ERR_WRITE); break; + case 'I': + case 'i': + case 'j': + /* Directory operations. */ + file = proto_get_ascii(&line); + if (file == NULL || line != NULL) + return (DETAILER_ERR_PROTO); + error = proto_printf(wr, "%s %s\n", cmd, file); + if (error) + return (DETAILER_ERR_WRITE); + break; + case 'J': + /* Set directory attributes. */ + file = proto_get_ascii(&line); + attr = proto_get_ascii(&line); + if (file == NULL || line != NULL || attr == NULL) + return (DETAILER_ERR_PROTO); + error = proto_printf(wr, "%s %s %s\n", cmd, file, attr); + if (error) + return (DETAILER_ERR_WRITE); + break; + case 'H': + case 'h': + /* Create a hard link. */ + file = proto_get_ascii(&line); + target = proto_get_ascii(&line); + if (file == NULL || target == NULL) + return (DETAILER_ERR_PROTO); + error = proto_printf(wr, "%s %s %s\n", cmd, file, + target); + break; + case 't': + file = proto_get_ascii(&line); + attr = proto_get_ascii(&line); + if (file == NULL || attr == NULL || line != NULL) { + return (DETAILER_ERR_PROTO); + } + rcsattr = fattr_decode(attr); + if (rcsattr == NULL) { + return (DETAILER_ERR_PROTO); + } + error = detailer_checkrcsattr(d, coll, file, rcsattr, + 1); + break; + + case 'T': + file = proto_get_ascii(&line); + attr = proto_get_ascii(&line); + if (file == NULL || attr == NULL || line != NULL) + return (DETAILER_ERR_PROTO); + rcsattr = fattr_decode(attr); + if (rcsattr == NULL) + return (DETAILER_ERR_PROTO); + error = detailer_checkrcsattr(d, coll, file, rcsattr, + 0); + break; + case 'U': /* Add or update file. */ file = proto_get_ascii(&line); if (file == NULL || line != NULL) return (DETAILER_ERR_PROTO); - error = detailer_dofile(d, coll, st, file); + if (coll->co_options & CO_CHECKOUTMODE) { + error = detailer_dofile_co(d, coll, st, file); + } else { + path = cvspath(coll->co_prefix, file, 0); + rcsattr = fattr_frompath(path, FATTR_NOFOLLOW); + error = detailer_send_details(d, coll, file, + path, rcsattr); + if (rcsattr != NULL) + fattr_free(rcsattr); + free(path); + } if (error) return (error); break; @@ -261,14 +351,110 @@ detailer_coll(struct detailer *d, struct return (0); } +/* + * Tell the server to update a regular file. + */ static int -detailer_dofile(struct detailer *d, struct coll *coll, struct status *st, - char *file) +detailer_dofile_regular(struct detailer *d, char *name, char *path) { + struct stream *wr; + struct stat st; char md5[MD5_DIGEST_SIZE]; + int error; + + wr = d->wr; + error = stat(path, &st); + /* If we don't have it or it's unaccessible, we want it again. */ + if (error) { + proto_printf(wr, "A %s\n", name); + return (0); + } + + /* If not, we want the file to be updated. */ + error = MD5_File(path, md5); + if (error) { + lprintf(-1, "Error reading \"%s\"\n", name); + return (error); + } + error = proto_printf(wr, "R %s %O %s\n", name, st.st_size, md5); + if (error) + return (DETAILER_ERR_WRITE); + return (0); +} + +/* + * Tell the server to update a file with the rsync algorithm. + */ +static int +detailer_dofile_rsync(struct detailer *d, char *name, char *path) +{ + struct stream *wr; + struct rsyncfile *rf; + + wr = d->wr; + rf = rsync_open(path, 0, 1); + if (rf == NULL) { + /* Fallback if we fail in opening it. */ + proto_printf(wr, "A %s\n", name); + return (0); + } + proto_printf(wr, "r %s %z %z\n", name, rsync_filesize(rf), + rsync_blocksize(rf)); + /* Detail the blocks. */ + while (rsync_nextblock(rf) != 0) + proto_printf(wr, "%s %s\n", rsync_rsum(rf), rsync_blockmd5(rf)); + proto_printf(wr, ".\n"); + rsync_close(rf); + return (0); +} + +/* + * Tell the server to update an RCS file that we have, or send it if we don't. + */ +static int +detailer_dofile_rcs(struct detailer *d, struct coll *coll, char *name, + char *path) +{ + struct stream *wr; + struct fattr *fa; + struct rcsfile *rf; + int error; + + wr = d->wr; + path = atticpath(coll->co_prefix, name); + fa = fattr_frompath(path, FATTR_NOFOLLOW); + if (fa == NULL) { + /* We don't have it, so send request to get it. */ + error = proto_printf(wr, "A %s\n", name); + if (error) + return (DETAILER_ERR_WRITE); + free(path); + return (0); + } + + rf = rcsfile_frompath(path, name, coll->co_cvsroot, coll->co_tag, 1); + free(path); + if (rf == NULL) { + error = proto_printf(wr, "A %s\n", name); + if (error) + return (DETAILER_ERR_WRITE); + return (0); + } + /* Tell to update the RCS file. The client version details follow. */ + rcsfile_send_details(rf, wr); + rcsfile_free(rf); + fattr_free(fa); + return (0); +} + +static int +detailer_dofile_co(struct detailer *d, struct coll *coll, struct status *st, + char *file) +{ struct stream *wr; struct fattr *fa; struct statusrec *sr; + char md5[MD5_DIGEST_SIZE]; char *path; int error, ret; @@ -337,3 +523,81 @@ detailer_dofile(struct detailer *d, stru return (DETAILER_ERR_WRITE); return (0); } + +int +detailer_checkrcsattr(struct detailer *d, struct coll *coll, char *name, + struct fattr *server_attr, int attic) +{ + struct fattr *client_attr; + char *attr, *path; + int error; + + /* + * I don't think we can use the status file, since it only records file + * attributes in cvsmode. + */ + client_attr = NULL; + path = cvspath(coll->co_prefix, name, attic); + if (path == NULL) { + return (DETAILER_ERR_PROTO); + } + + if (access(path, F_OK) == 0 && + ((client_attr = fattr_frompath(path, FATTR_NOFOLLOW)) != NULL) && + fattr_equal(client_attr, server_attr)) { + attr = fattr_encode(client_attr, NULL, 0); + if (attic) { + error = proto_printf(d->wr, "l %s %s\n", name, attr); + } else { + error = proto_printf(d->wr, "L %s %s\n", name, attr); + } + free(attr); + free(path); + fattr_free(client_attr); + if (error) + return (DETAILER_ERR_WRITE); + return (0); + } + /* We don't have it, so tell the server to send it. */ + error = detailer_send_details(d, coll, name, path, client_attr); + fattr_free(client_attr); + free(path); + return (error); +} + +int +detailer_send_details(struct detailer *d, struct coll *coll, char *name, + char *path, struct fattr *fa) +{ + int error; + size_t len; + + /* + * Try to check if the file exists either live or dead to see if we can + * edit it and put it live or dead, rather than receiving the entire + * file. + */ + if (fa == NULL) { + path = atticpath(coll->co_prefix, name); + fa = fattr_frompath(path, FATTR_NOFOLLOW); + } + if (fa == NULL) { + error = proto_printf(d->wr, "A %s\n", name); + if (error) + return (DETAILER_ERR_WRITE); + } else if (fattr_type(fa) == FT_FILE) { + if (isrcs(name, &len) && !(coll->co_options & CO_NORCS)) { + detailer_dofile_rcs(d, coll, name, path); + } else if (!(coll->co_options & CO_NORSYNC) && + !globtree_test(coll->co_norsync, name)) { + detailer_dofile_rsync(d, name, path); + } else { + detailer_dofile_regular(d, name, path); + } + } else { + error = proto_printf(d->wr, "N %s\n", name); + if (error) + return (DETAILER_ERR_WRITE); + } + return (0); +} Modified: stable/7/contrib/csup/diff.c ============================================================================== --- stable/7/contrib/csup/diff.c Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/diff.c Tue Mar 17 06:54:41 2009 (r189918) @@ -26,9 +26,12 @@ * $FreeBSD$ */ +#include + #include #include #include +#include #include #include @@ -36,15 +39,20 @@ #include "keyword.h" #include "misc.h" #include "stream.h" +#include "queue.h" typedef long lineno_t; #define EC_ADD 0 #define EC_DEL 1 +#define MAXKEY LONG_MAX /* Editing command and state. */ struct editcmd { int cmd; + long key; + int havetext; + int offset; lineno_t where; lineno_t count; lineno_t lasta; @@ -55,20 +63,28 @@ struct editcmd { struct diffinfo *di; struct stream *orig; struct stream *dest; + LIST_ENTRY(editcmd) next; +}; + +struct diffstart { + LIST_HEAD(, editcmd) dhead; }; static int diff_geteditcmd(struct editcmd *, char *); static int diff_copyln(struct editcmd *, lineno_t); +static int diff_ignoreln(struct editcmd *, lineno_t); static void diff_write(struct editcmd *, void *, size_t); +static int diff_insert_edit(struct diffstart *, struct editcmd *); +static void diff_free(struct diffstart *); int diff_apply(struct stream *rd, struct stream *orig, struct stream *dest, - struct keyword *keyword, struct diffinfo *di) + struct keyword *keyword, struct diffinfo *di, int comode) { struct editcmd ec; lineno_t i; - char *line; size_t size; + char *line; int empty, error, noeol; memset(&ec, 0, sizeof(ec)); @@ -104,7 +120,7 @@ diff_apply(struct stream *rd, struct str line = stream_getln(rd, &size); if (line == NULL) return (-1); - if (line[0] == '.') { + if (comode && line[0] == '.') { line++; size--; } @@ -124,10 +140,10 @@ diff_apply(struct stream *rd, struct str } line = stream_getln(rd, NULL); } - if (line == NULL) + if (comode && line == NULL) return (-1); /* If we got ".+", there's no ending newline. */ - if (strcmp(line, ".+") == 0 && !empty) + if (comode && strcmp(line, ".+") == 0 && !empty) noeol = 1; ec.where = 0; while ((line = stream_getln(orig, &size)) != NULL) @@ -143,6 +159,198 @@ diff_apply(struct stream *rd, struct str return (0); } +/* + * Reverse a diff using the same algorithm as in cvsup. + */ +static int +diff_write_reverse(struct stream *dest, struct diffstart *ds) +{ + struct editcmd *ec, *nextec; + long editline, endline, firstoutputlinedeleted; + long num_added, num_deleted, startline; + int num; + + nextec = LIST_FIRST(&ds->dhead); + editline = 0; + num = 0; + while (nextec != NULL) { + ec = nextec; + nextec = LIST_NEXT(nextec, next); + if (nextec == NULL) + break; + num++; + num_deleted = 0; + if (ec->havetext) + num_deleted = ec->count; + num_added = num_deleted + nextec->offset - ec->offset; + if (num_deleted > 0) { + firstoutputlinedeleted = ec->key - num_deleted + 1; + stream_printf(dest, "d%ld %ld\n", firstoutputlinedeleted, + num_deleted); + if (num_added <= 0) + continue; + } + if (num_added > 0) { + stream_printf(dest, "a%ld %ld\n", ec->key, num_added); + startline = ec->key - num_deleted + 1 + ec->offset; + endline = startline + num_added - 1; + + /* Copy lines from original file. First ignore some. */ + ec->editline = editline; + diff_ignoreln(ec, startline - 1); + diff_copyln(ec, endline); + editline = ec->editline; + } + } + return (0); +} + +/* + * Insert a diff into the list sorted on key. Should perhaps use quicker + * algorithms than insertion sort, but do this for now. + */ +static int +diff_insert_edit(struct diffstart *ds, struct editcmd *ec) +{ + struct editcmd *curec; + + if (ec == NULL) + return (0); + + if (LIST_EMPTY(&ds->dhead)) { + LIST_INSERT_HEAD(&ds->dhead, ec, next); + return (0); + } + + /* Insertion sort based on key. */ + LIST_FOREACH(curec, &ds->dhead, next) { + if (ec->key < curec->key) { + LIST_INSERT_BEFORE(curec, ec, next); + return (0); + } + if (LIST_NEXT(curec, next) == NULL) + break; + } + /* Just insert it after. */ + LIST_INSERT_AFTER(curec, ec, next); + return (0); +} + +static void +diff_free(struct diffstart *ds) +{ + struct editcmd *ec; + + while(!LIST_EMPTY(&ds->dhead)) { + ec = LIST_FIRST(&ds->dhead); + LIST_REMOVE(ec, next); + free(ec); + } +} + +/* + * Write the reverse diff from the diff in rd, and original file into + * destination. This algorithm is the same as used in cvsup. + */ +int +diff_reverse(struct stream *rd, struct stream *orig, struct stream *dest, + struct keyword *keyword, struct diffinfo *di) +{ + struct diffstart ds; + struct editcmd ec, *addec, *delec; + lineno_t i; + char *line; + int error, offset; + + memset(&ec, 0, sizeof(ec)); + ec.orig = orig; + ec.dest = dest; + ec.keyword = keyword; + ec.di = di; + addec = NULL; + delec = NULL; + ec.havetext = 0; + offset = 0; + LIST_INIT(&ds.dhead); + + /* Start with next since we need it. */ + line = stream_getln(rd, NULL); + /* First we build up the list of diffs from input. */ + while (line != NULL) { + error = diff_geteditcmd(&ec, line); + if (error) + break; + if (ec.cmd == EC_ADD) { + addec = xmalloc(sizeof(struct editcmd)); + *addec = ec; + addec->havetext = 1; + /* Ignore the lines we was supposed to add. */ + for (i = 0; i < ec.count; i++) { + line = stream_getln(rd, NULL); + if (line == NULL) + return (-1); + } + + /* Get the next diff command if we have one. */ + addec->key = addec->where + addec->count - offset; + if (delec != NULL && + delec->key == addec->key - addec->count) { + delec->key = addec->key; + delec->havetext = addec->havetext; + delec->count = addec->count; + diff_insert_edit(&ds, delec); + free(addec); + delec = NULL; + addec = NULL; + } else { + if (delec != NULL) { + diff_insert_edit(&ds, delec); + } + delec = NULL; + addec->offset = offset; + diff_insert_edit(&ds, addec); + addec = NULL; + } + offset -= ec.count; + } else if (ec.cmd == EC_DEL) { + if (delec != NULL) { + /* Update offset to our next. */ + diff_insert_edit(&ds, delec); + delec = NULL; + } + delec = xmalloc(sizeof(struct editcmd)); + *delec = ec; + delec->key = delec->where - 1 - offset; + delec->offset = offset; + delec->count = 0; + delec->havetext = 0; + /* Important to use the count we had before reset.*/ + offset += ec.count; + } + line = stream_getln(rd, NULL); + } + + while (line != NULL) + line = stream_getln(rd, NULL); + if (delec != NULL) { + diff_insert_edit(&ds, delec); + delec = NULL; + } + + addec = xmalloc(sizeof(struct editcmd)); + /* Should be filesize, but we set it to max value. */ + addec->key = MAXKEY; + addec->offset = offset; + addec->havetext = 0; + addec->count = 0; + diff_insert_edit(&ds, addec); + addec = NULL; + diff_write_reverse(dest, &ds); + diff_free(&ds); + stream_flush(dest); + return (0); +} + /* Get an editing command from the diff. */ static int diff_geteditcmd(struct editcmd *ec, char *line) @@ -181,8 +389,8 @@ diff_geteditcmd(struct editcmd *ec, char static int diff_copyln(struct editcmd *ec, lineno_t to) { - char *line; size_t size; + char *line; while (ec->editline < to) { line = stream_getln(ec->orig, &size); @@ -194,12 +402,28 @@ diff_copyln(struct editcmd *ec, lineno_t return (0); } +/* Ignore lines from the original version of the file up to line "to". */ +static int +diff_ignoreln(struct editcmd *ec, lineno_t to) +{ + size_t size; + char *line; + + while (ec->editline < to) { + line = stream_getln(ec->orig, &size); + if (line == NULL) + return (-1); + ec->editline++; + } + return (0); +} + /* Write a new line to the file, expanding RCS keywords appropriately. */ static void diff_write(struct editcmd *ec, void *buf, size_t size) { - char *line, *newline; size_t newsize; + char *line, *newline; int ret; line = buf; Modified: stable/7/contrib/csup/diff.h ============================================================================== --- stable/7/contrib/csup/diff.h Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/diff.h Tue Mar 17 06:54:41 2009 (r189918) @@ -45,6 +45,8 @@ struct diffinfo { }; int diff_apply(struct stream *, struct stream *, struct stream *, - struct keyword *, struct diffinfo *); + struct keyword *, struct diffinfo *, int); +int diff_reverse(struct stream *, struct stream *, + struct stream *, struct keyword *, struct diffinfo *); #endif /* !_DIFF_H_ */ Modified: stable/7/contrib/csup/fattr.c ============================================================================== --- stable/7/contrib/csup/fattr.c Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/fattr.c Tue Mar 17 06:54:41 2009 (r189918) @@ -44,7 +44,7 @@ /* * Include the appropriate definition for the file attributes we support. * There are two different files: fattr_bsd.h for BSD-like systems that - * support the extended file flags à la chflags() and fattr_posix.h for + * support the extended file flags a la chflags() and fattr_posix.h for * bare POSIX systems that don't. */ #ifdef HAVE_FFLAGS @@ -449,7 +449,7 @@ fattr_encode(const struct fattr *fa, fat piece++; } if (mask & FA_DEV) { - vallen = snprintf(piece->val, sizeof(piece->val), "%lld", + vallen = snprintf(piece->val, sizeof(piece->val), "%llx", (long long)fa->dev); len += snprintf(piece->len, sizeof(piece->len), "%lld", (long long)vallen) + vallen + 1; @@ -534,6 +534,13 @@ fattr_getlinkcount(const struct fattr *f return (fa->linkcount); } +char * +fattr_getlinktarget(const struct fattr *fa) +{ + + return (fa->linktarget); +} + /* * Eat the specified attribute and put it in the file attribute * structure. Returns NULL on error, or a pointer to the next @@ -732,18 +739,28 @@ fattr_makenode(const struct fattr *fa, c mode_t modemask, mode; int error; + error = 0; + if (fa->mask & FA_OWNER && fa->mask & FA_GROUP) modemask = FA_SETIDMASK | FA_PERMMASK; else modemask = FA_PERMMASK; /* We only implement fattr_makenode() for dirs for now. */ - assert(fa->type == FT_DIRECTORY); if (fa->mask & FA_MODE) mode = fa->mode & modemask; else mode = 0700; - error = mkdir(path, mode); + + if (fa->type == FT_DIRECTORY) + error = mkdir(path, mode); + else if (fa->type == FT_SYMLINK) { + error = symlink(fa->linktarget, path); + } else if (fa->type == FT_CDEV) { + lprintf(-1, "Character devices not supported!\n"); + } else if (fa->type == FT_BDEV) { + lprintf(-1, "Block devices not supported!\n"); + } return (error); } @@ -823,6 +840,19 @@ fattr_install(struct fattr *fa, const ch } #endif + /* + * If it is changed from a file to a symlink, remove the file + * and create the symlink. + */ + if (inplace && (fa->type == FT_SYMLINK) && + (old->type == FT_FILE)) { + error = unlink(topath); + if (error) + goto bad; + error = symlink(fa->linktarget, topath); + if (error) + goto bad; + } /* Determine whether we need to remove the target first. */ if (!inplace && (fa->type == FT_DIRECTORY) != (old->type == FT_DIRECTORY)) { @@ -853,8 +883,9 @@ fattr_install(struct fattr *fa, const ch if (mask & FA_GROUP) gid = fa->gid; error = chown(frompath, uid, gid); - if (error) + if (error) { goto bad; + } } if (mask & FA_MODE) { newmode = fa->mode & modemask; @@ -901,6 +932,9 @@ fattr_equal(const struct fattr *fa1, con mask = fa1->mask & fa2->mask; if (fa1->type == FT_UNKNOWN || fa2->type == FT_UNKNOWN) return (0); + if (mask & FA_FILETYPE) + if (fa1->type != fa2->type) + return (0); if (mask & FA_MODTIME) if (fa1->modtime != fa2->modtime) return (0); @@ -936,3 +970,12 @@ fattr_equal(const struct fattr *fa1, con return (0); return (1); } + +/* + * Must have to get the correct filesize sendt by the server. + */ +off_t +fattr_filesize(const struct fattr *fa) +{ + return (fa->size); +} Modified: stable/7/contrib/csup/fattr.h ============================================================================== --- stable/7/contrib/csup/fattr.h Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/fattr.h Tue Mar 17 06:54:41 2009 (r189918) @@ -101,6 +101,7 @@ int fattr_type(const struct fattr *); void fattr_maskout(struct fattr *, int); int fattr_getmask(const struct fattr *); nlink_t fattr_getlinkcount(const struct fattr *); +char *fattr_getlinktarget(const struct fattr *); void fattr_umask(struct fattr *, mode_t); void fattr_merge(struct fattr *, const struct fattr *); void fattr_mergedefault(struct fattr *); @@ -111,5 +112,7 @@ int fattr_install(struct fattr *, cons int fattr_equal(const struct fattr *, const struct fattr *); void fattr_free(struct fattr *); int fattr_supported(int); +off_t fattr_filesize(const struct fattr *); + #endif /* !_FATTR_H_ */ Modified: stable/7/contrib/csup/keyword.c ============================================================================== --- stable/7/contrib/csup/keyword.c Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/keyword.c Tue Mar 17 06:54:41 2009 (r189918) @@ -152,6 +152,29 @@ keyword_decode_expand(const char *expand return (-1); } +const char * +keyword_encode_expand(int expand) +{ + + switch (expand) { + case EXPAND_DEFAULT: + return ("."); + case EXPAND_KEYVALUE: + return ("kv"); + case EXPAND_KEYVALUELOCKER: + return ("kvl"); + case EXPAND_KEY: + return ("k"); + case EXPAND_OLD: + return ("o"); + case EXPAND_BINARY: + return ("b"); + case EXPAND_VALUE: + return ("v"); + } + return (NULL); +} + void keyword_free(struct keyword *keyword) { Modified: stable/7/contrib/csup/keyword.h ============================================================================== --- stable/7/contrib/csup/keyword.h Tue Mar 17 05:57:43 2009 (r189917) +++ stable/7/contrib/csup/keyword.h Tue Mar 17 06:54:41 2009 (r189918) @@ -42,6 +42,7 @@ struct keyword; struct keyword *keyword_new(void); int keyword_decode_expand(const char *); +const char *keyword_encode_expand(int); int keyword_alias(struct keyword *, const char *, const char *); int keyword_enable(struct keyword *, const char *); int keyword_disable(struct keyword *, const char *); Copied: stable/7/contrib/csup/lex.rcs.c (from r186781, head/contrib/csup/lex.rcs.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/contrib/csup/lex.rcs.c Tue Mar 17 06:54:41 2009 (r189918, copy of r186781, head/contrib/csup/lex.rcs.c) @@ -0,0 +1,2094 @@ + +#line 3 "lex.rcs.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 35 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 09:50:40 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E9CA1065675; Tue, 17 Mar 2009 09:50:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8D5D38FC21; Tue, 17 Mar 2009 09:50:40 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2H9oe3r088798; Tue, 17 Mar 2009 09:50:40 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2H9oeda088797; Tue, 17 Mar 2009 09:50:40 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200903170950.n2H9oeda088797@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 17 Mar 2009 09:50:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189919 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 09:50:41 -0000 Author: kib Date: Tue Mar 17 09:50:40 2009 New Revision: 189919 URL: http://svn.freebsd.org/changeset/base/189919 Log: Use the properly sized types for ELF object header and program headers. This fixes osrel fetching from the FreeBSD branding note for the 64bit platforms. Reported by: swell.k gmail com Reviewed by: dchagin Tested by: dchagin, swell.k gmail com Modified: head/sys/kern/imgact_elf.c Modified: head/sys/kern/imgact_elf.c ============================================================================== --- head/sys/kern/imgact_elf.c Tue Mar 17 06:54:41 2009 (r189918) +++ head/sys/kern/imgact_elf.c Tue Mar 17 09:50:40 2009 (r189919) @@ -1330,14 +1330,14 @@ __elfN(check_note)(struct image_params * int32_t *osrel) { const Elf_Note *note, *note_end; - const Elf32_Phdr *phdr, *pnote; - const Elf32_Ehdr *hdr; + const Elf_Phdr *phdr, *pnote; + const Elf_Ehdr *hdr; const char *note_name; int i; pnote = NULL; - hdr = (const Elf32_Ehdr *)imgp->image_header; - phdr = (const Elf32_Phdr *)(imgp->image_header + hdr->e_phoff); + hdr = (const Elf_Ehdr *)imgp->image_header; + phdr = (const Elf_Phdr *)(imgp->image_header + hdr->e_phoff); for (i = 0; i < hdr->e_phnum; i++) { if (phdr[i].p_type == PT_NOTE) { From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 10:15:49 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9528C106566C; Tue, 17 Mar 2009 10:15:49 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 81FDE8FC13; Tue, 17 Mar 2009 10:15:49 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HAFnLf092045; Tue, 17 Mar 2009 10:15:49 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HAFnDa092044; Tue, 17 Mar 2009 10:15:49 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200903171015.n2HAFnDa092044@svn.freebsd.org> From: Robert Watson Date: Tue, 17 Mar 2009 10:15:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189920 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 10:15:50 -0000 Author: rwatson Date: Tue Mar 17 10:15:49 2009 New Revision: 189920 URL: http://svn.freebsd.org/changeset/base/189920 Log: Merge r188992 from head to stable/7: In tcp_usr_shutdown() and tcp_usr_send(), I missed converting NULL checks for the tcpcb, previously used to detect complete disconnection, with INP_DROPPED checks. Correct that, preventing shutdown() from improperly generating a TCP segment with destination IP and port of 0.0.0.0:0. PR: kern/132050 Reported by: david gueluy Modified: stable/7/sys/ (props changed) stable/7/sys/contrib/pf/ (props changed) stable/7/sys/dev/ath/ath_hal/ (props changed) stable/7/sys/dev/cxgb/ (props changed) stable/7/sys/netinet/tcp_usrreq.c Modified: stable/7/sys/netinet/tcp_usrreq.c ============================================================================== --- stable/7/sys/netinet/tcp_usrreq.c Tue Mar 17 09:50:40 2009 (r189919) +++ stable/7/sys/netinet/tcp_usrreq.c Tue Mar 17 10:15:49 2009 (r189920) @@ -712,7 +712,8 @@ tcp_usr_shutdown(struct socket *so) TCPDEBUG1(); socantsendmore(so); tcp_usrclosed(tp); - error = tcp_output_disconnect(tp); + if (!(inp->inp_vflag & INP_DROPPED)) + error = tcp_output_disconnect(tp); out: TCPDEBUG2(PRU_SHUTDOWN); @@ -844,7 +845,7 @@ tcp_usr_send(struct socket *so, int flag INP_INFO_WUNLOCK(&tcbinfo); headlocked = 0; } - if (tp != NULL) { + if (!(inp->inp_vflag & INP_DROPPED)) { if (flags & PRUS_MORETOCOME) tp->t_flags |= TF_MORETOCOME; error = tcp_output_send(tp); From owner-svn-src-all@FreeBSD.ORG Tue Mar 17 10:47:26 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7173A106567B; Tue, 17 Mar 2009 10:47:26 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 451A48FC23; Tue, 17 Mar 2009 10:47:26 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HAlQIH092737; Tue, 17 Mar 2009 10:47:26 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HAlQXD092736; Tue, 17 Mar 2009 10:47:26 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200903171047.n2HAlQXD092736@svn.freebsd.org> From: Edwin Groothuis Date: Tue, 17 Mar 2009 10:47:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189921 - vendor/tzdata/dist X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Mar 2009 10:47:27 -0000 Author: edwin Date: Tue Mar 17 10:47:26 2009 New Revision: 189921 URL: http://svn.freebsd.org/changeset/base/189921 Log: Vendor import of tzdata2009c - Cuba has DST again. Modified: vendor/tzdata/dist/northamerica Modified: vendor/tzdata/dist/northamerica ============================================================================== --- vendor/tzdata/dist/northamerica Tue Mar 17 10:15:49 2009 (r189920) +++ vendor/tzdata/dist/northamerica Tue Mar 17 10:47:26 2009 (r189921) @@ -1,4 +1,4 @@ -# @(#)northamerica 8.26 +# @(#)northamerica 8.27 #
 
 # also includes Central America and the Caribbean
@@ -2258,6 +2258,25 @@ Zone America/Costa_Rica	-5:36:20 -	LMT	1
 # From Arthur David Olson (2008-03-12):
 # Assume Sun>=15 (third Sunday) going forward.
 
+# From Alexander Krivenyshev (2009-03-04)
+# According to the Radio Reloj - Cuba will start Daylight Saving Time on
+# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
+# not on midnight March 14 / March 15 as previously thought.
+#
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
+# (in Spanish)
+# 
+
+# From Arthur David Olson (2009-03-09)
+# I listened over the Internet to
+# 
+# http://media.enet.cu/readioreloj
+# 
+# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
+# the time was announced as "diez cinco"--the same time as here, indicating
+# that has indeed switched to DST. Assume second Sunday from 2009 forward.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
 Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
@@ -2290,7 +2309,8 @@ Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	
 Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
 Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
 Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
-Rule	Cuba	2008	max	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2009	max	-	Mar	Sun>=8	0:00s	1:00	D
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 10:48:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F1076106566B;
	Tue, 17 Mar 2009 10:48:13 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C590D8FC08;
	Tue, 17 Mar 2009 10:48:13 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HAmD2D092792;
	Tue, 17 Mar 2009 10:48:13 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HAmD25092791;
	Tue, 17 Mar 2009 10:48:13 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200903171048.n2HAmD25092791@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 17 Mar 2009 10:48:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-vendor@freebsd.org
X-SVN-Group: vendor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189922 - vendor/tzdata/tzdata2009c
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 10:48:14 -0000

Author: edwin
Date: Tue Mar 17 10:48:13 2009
New Revision: 189922
URL: http://svn.freebsd.org/changeset/base/189922

Log:
  Tag of tzdata2009c

Added:
  vendor/tzdata/tzdata2009c/
     - copied from r189921, vendor/tzdata/dist/

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 10:51:32 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6BECA1065819;
	Tue, 17 Mar 2009 10:51:32 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3F17A8FC16;
	Tue, 17 Mar 2009 10:51:32 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HApWmK092938;
	Tue, 17 Mar 2009 10:51:32 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HApWMr092937;
	Tue, 17 Mar 2009 10:51:32 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200903171051.n2HApWMr092937@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 17 Mar 2009 10:51:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189923 - head/share/zoneinfo
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 10:51:33 -0000

Author: edwin
Date: Tue Mar 17 10:51:31 2009
New Revision: 189923
URL: http://svn.freebsd.org/changeset/base/189923

Log:
  MFV of tzdata2009c
  
  - Cuba has DST again.
  
  MFC after:	1 week

Modified:
  head/share/zoneinfo/   (props changed)
  head/share/zoneinfo/northamerica

Modified: head/share/zoneinfo/northamerica
==============================================================================
--- head/share/zoneinfo/northamerica	Tue Mar 17 10:48:13 2009	(r189922)
+++ head/share/zoneinfo/northamerica	Tue Mar 17 10:51:31 2009	(r189923)
@@ -1,4 +1,4 @@
-# @(#)northamerica	8.26
+# @(#)northamerica	8.27
 # 
 
 # also includes Central America and the Caribbean
@@ -2258,6 +2258,25 @@ Zone America/Costa_Rica	-5:36:20 -	LMT	1
 # From Arthur David Olson (2008-03-12):
 # Assume Sun>=15 (third Sunday) going forward.
 
+# From Alexander Krivenyshev (2009-03-04)
+# According to the Radio Reloj - Cuba will start Daylight Saving Time on
+# midnight between Saturday, March 07, 2009 and Sunday, March 08, 2009-
+# not on midnight March 14 / March 15 as previously thought.
+#
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_cuba05.html
+# (in Spanish)
+# 
+
+# From Arthur David Olson (2009-03-09)
+# I listened over the Internet to
+# 
+# http://media.enet.cu/readioreloj
+# 
+# this morning; when it was 10:05 a. m. here in Bethesda, Maryland the
+# the time was announced as "diez cinco"--the same time as here, indicating
+# that has indeed switched to DST. Assume second Sunday from 2009 forward.
+
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Cuba	1928	only	-	Jun	10	0:00	1:00	D
 Rule	Cuba	1928	only	-	Oct	10	0:00	0	S
@@ -2290,7 +2309,8 @@ Rule	Cuba	1998	2003	-	Oct	lastSun	0:00s	
 Rule	Cuba	2000	2004	-	Apr	Sun>=1	0:00s	1:00	D
 Rule	Cuba	2006	max	-	Oct	lastSun	0:00s	0	S
 Rule	Cuba	2007	only	-	Mar	Sun>=8	0:00s	1:00	D
-Rule	Cuba	2008	max	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2008	only	-	Mar	Sun>=15	0:00s	1:00	D
+Rule	Cuba	2009	max	-	Mar	Sun>=8	0:00s	1:00	D
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	America/Havana	-5:29:28 -	LMT	1890

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 12:23:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D4896106566B;
	Tue, 17 Mar 2009 12:23:39 +0000 (UTC)
	(envelope-from alexander@leidinger.net)
Received: from redbull.bpaserver.net (redbullneu.bpaserver.net
	[213.198.78.217])
	by mx1.freebsd.org (Postfix) with ESMTP id 5D8138FC15;
	Tue, 17 Mar 2009 12:23:39 +0000 (UTC)
	(envelope-from alexander@leidinger.net)
Received: from outgoing.leidinger.net (pD9E2EEE2.dip.t-dialin.net
	[217.226.238.226])
	by redbull.bpaserver.net (Postfix) with ESMTP id 23DF82E168;
	Tue, 17 Mar 2009 13:23:18 +0100 (CET)
Received: from webmail.leidinger.net (webmail.leidinger.net [192.168.1.102])
	by outgoing.leidinger.net (Postfix) with ESMTP id B12471B3B7F;
	Tue, 17 Mar 2009 13:23:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=Leidinger.net;
	s=outgoing-alex; t=1237292594; bh=ZYukfR1lnucg/Puf2DV8+vm1xFlRWexiT
	vSMrrWaqn0=; h=Message-ID:Date:From:To:Cc:Subject:References:
	In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding;
	b=UYfemk9tK5D4huUwAjt1qO5utrWxlNDovoGLKnY2LO3cG0PMt6uZHJ9jTYsPFAAW1
	BK7R8byzywvoMJTpxAXe8MkyvHVEzQ6zvrJnQhQKtZ7VFpfJZ4NbjGR2uHwHZjl5ar1
	msyNjhtuQxmVlVazJDzv38kAUJmdYbfFW0EtSudEHNqdZ1CRn0jw/dBmJOFebHte8Fy
	wBCtsoTQE4N6eh6IMp0UYSaKaobFP7RAzmKdGmrvIxMNyY510XjFeIfguqyGcQbeVVL
	Undz+jeYxfpmtiTVchWs6htpzg4whR3C9v13I6hrwjTHXCuM+dT7CjiOy2tFQHxFeuy
	U7gkissmA==
Received: (from www@localhost)
	by webmail.leidinger.net (8.14.3/8.13.8/Submit) id n2HCNDAI003132;
	Tue, 17 Mar 2009 13:23:13 +0100 (CET)
	(envelope-from Alexander@Leidinger.net)
Received: from pslux.cec.eu.int (pslux.cec.eu.int [158.169.9.14]) by
	webmail.leidinger.net (Horde Framework) with HTTP; Tue, 17 Mar 2009
	13:23:13 +0100
Message-ID: <20090317132313.16835qaktvcvhf8c@webmail.leidinger.net>
X-Priority: 3 (Normal)
Date: Tue, 17 Mar 2009 13:23:13 +0100
From: Alexander Leidinger 
To: Ulrich =?utf-8?b?U3DDg8K2cmxlaW4=?= 
References: <200903131040.n2DAecSO061131@svn.freebsd.org>
	
	<20090313182216.GA8844@zim.MIT.EDU>
	<20090316183534.GI1455@roadrunner.spoerlein.net>
In-Reply-To: <20090316183534.GI1455@roadrunner.spoerlein.net>
MIME-Version: 1.0
Content-Type: text/plain;
	charset=UTF-8;
	DelSp="Yes";
	format="flowed"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
User-Agent: Internet Messaging Program (IMP) H3 (4.3) / FreeBSD-8.0
X-BPAnet-MailScanner-Information: Please contact the ISP for more information
X-MailScanner-ID: 23DF82E168.2B379
X-BPAnet-MailScanner: Found to be clean
X-BPAnet-MailScanner-SpamCheck: not spam, ORDB-RBL, SpamAssassin (not cached, 
	score=-13.627, required 6, BAYES_00 -15.00,
	DKIM_SIGNED 0.00, 
	DKIM_VERIFIED -0.00, MIME_8BIT_HEADER 0.30, MIME_QP_LONG_LINE 1.40,
	RDNS_DYNAMIC 0.10, SMILEY -0.50, TW_SV 0.08)
X-BPAnet-MailScanner-From: alexander@leidinger.net
X-Spam-Status: No
Cc: svn-src-all@FreeBSD.ORG, Gabor Kovesdan ,
	"Sean C. Farley" 
Subject: Re: svn commit: r189765 - in head: . lib/libc lib/libc/nls
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 12:23:40 -0000

Quoting Ulrich Sp=C3=83=C2=B6rlein  (from Mon, 16 Mar =
2009 =20
19:35:34 +0100):

> On Fri, 13.03.2009 at 14:22:16 -0400, David Schultz wrote:
>> On Fri, Mar 13, 2009, Sean C. Farley wrote:
>> > Now, you only need to revive the BSD-licensed libiconv[1].  :)
>> [...]
>> >   1. http://people.freebsd.org/~bland/iconv-2.1.tar.gz
>>
>> I asked a few weeks ago on standards@ why we weren't using Citrus
>> iconv, which is what NetBSD uses, and seems to be in a somewhat
>> better state than this. It also provides various wide character
>> conversion routines that overlap with what tjr@ has already done
>> in FreeBSD, so we'd have to sort that out. And we'd have to sort
>> out a gazillion ports that want -liconv.
>
> I, for one, would love to see some iconv overlo^Wsupport in base. That
> way, I could teach calendar(1) to translate stuff to LC_CTYPE, right now
> the German calendar file is saved in Latin1 whereas I'm using UTF-8
> terminals :/

Anorther approach would be to make calendar DTRT with UTF-8... one =20
step into this direction (german UTF-8 catalogs) is at =20
http://svnweb.freebsd.org/viewvc/base/user/netchild/calendar-utf8/

Bye,
Alexander.

--=20
Law of Probable Dispersal:
=09Whatever it is that hits the fan will not be evenly distributed.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID =3D B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID =3D 72077137

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 12:47:40 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B1081106564A;
	Tue, 17 Mar 2009 12:47:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9F63B8FC19;
	Tue, 17 Mar 2009 12:47:40 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HCle5n095182;
	Tue, 17 Mar 2009 12:47:40 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HCle8o095181;
	Tue, 17 Mar 2009 12:47:40 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903171247.n2HCle8o095181@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 17 Mar 2009 12:47:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189925 - head/sys/sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 12:47:41 -0000

Author: kib
Date: Tue Mar 17 12:47:40 2009
New Revision: 189925
URL: http://svn.freebsd.org/changeset/base/189925

Log:
  Add some definitions for the DT_FLAGS_1 tag flags.
  
  Reviewed by:	     kan

Modified:
  head/sys/sys/elf_common.h

Modified: head/sys/sys/elf_common.h
==============================================================================
--- head/sys/sys/elf_common.h	Tue Mar 17 11:28:56 2009	(r189924)
+++ head/sys/sys/elf_common.h	Tue Mar 17 12:47:40 2009	(r189925)
@@ -466,6 +466,11 @@ typedef struct {
 				   executable contains code using a static
 				   thread-local storage scheme. */
 
+/* Values for DT_FLAGS_1 */
+#define	DF_1_BIND_NOW	0x00000001	/* Same as DF_BIND_NOW */
+#define	DF_1_GLOBAL	0x00000002	/* Set the RTLD_GLOBAL for object */
+#define	DF_1_ORIGIN	0x00000080	/* Process $ORIGIN */
+
 /* Values for n_type.  Used in core files. */
 #define	NT_PRSTATUS	1	/* Process status. */
 #define	NT_FPREGSET	2	/* Floating point registers. */

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 12:50:17 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 18D70106568A;
	Tue, 17 Mar 2009 12:50:17 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 03DA08FC1E;
	Tue, 17 Mar 2009 12:50:17 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HCoGxc095288;
	Tue, 17 Mar 2009 12:50:16 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HCoG0i095280;
	Tue, 17 Mar 2009 12:50:16 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903171250.n2HCoG0i095280@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 17 Mar 2009 12:50:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189926 - in head/sys: amd64/include arm/include
	i386/include ia64/include mips/include powerpc/include
	sparc64/include sun4v/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 12:50:18 -0000

Author: kib
Date: Tue Mar 17 12:50:16 2009
New Revision: 189926
URL: http://svn.freebsd.org/changeset/base/189926

Log:
  Add AT_EXECPATH ELF auxinfo entry type. The value's a_ptr is a pointer
  to the full path of the image that is being executed.
  Increase AT_COUNT.
  
  Remove no longer true comment about types used in Linux ELF binaries,
  listed types contain FreeBSD-specific entries.
  
  Reviewed by:	kan

Modified:
  head/sys/amd64/include/elf.h
  head/sys/arm/include/elf.h
  head/sys/i386/include/elf.h
  head/sys/ia64/include/elf.h
  head/sys/mips/include/elf.h
  head/sys/powerpc/include/elf.h
  head/sys/sparc64/include/elf.h
  head/sys/sun4v/include/elf.h

Modified: head/sys/amd64/include/elf.h
==============================================================================
--- head/sys/amd64/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/amd64/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -81,16 +81,14 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused for i386). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 /*
  * Relocation types.

Modified: head/sys/arm/include/elf.h
==============================================================================
--- head/sys/arm/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/arm/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -75,8 +75,9 @@ __ElfType(Auxinfo);
 #define AT_EUID         12      /* Effective uid. */
 #define AT_GID          13      /* Real gid. */
 #define AT_EGID         14      /* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define AT_COUNT        15      /* Count of defined aux entry types. */
+#define AT_COUNT        16      /* Count of defined aux entry types. */
 
 #define	R_ARM_COUNT		33	/* Count of defined relocation types. */
 

Modified: head/sys/i386/include/elf.h
==============================================================================
--- head/sys/i386/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/i386/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -84,16 +84,14 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused for i386). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 /*
  * Relocation types.

Modified: head/sys/ia64/include/elf.h
==============================================================================
--- head/sys/ia64/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/ia64/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -82,16 +82,14 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused for i386). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 /*
  * Values for e_flags.

Modified: head/sys/mips/include/elf.h
==============================================================================
--- head/sys/mips/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/mips/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -241,15 +241,13 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused for i386). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 #endif /* !_MACHINE_ELF_H_ */

Modified: head/sys/powerpc/include/elf.h
==============================================================================
--- head/sys/powerpc/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/powerpc/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -77,8 +77,9 @@ __ElfType(Auxinfo);
 #define	AT_DCACHEBSIZE	10	/* Data cache block size for the processor. */
 #define	AT_ICACHEBSIZE	11	/* Instruction cache block size for the uP. */
 #define	AT_UCACHEBSIZE	12	/* Cache block size, or `0' if cache not unified. */
+#define	AT_EXECPATH	13	/* Path to the executable. */
 
-#define	AT_COUNT	13	/* Count of defined aux entry types. */
+#define	AT_COUNT	14	/* Count of defined aux entry types. */
 
 /*
  * Relocation types.

Modified: head/sys/sparc64/include/elf.h
==============================================================================
--- head/sys/sparc64/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/sparc64/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -78,16 +78,14 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 /* Define "machine" characteristics */
 #if __ELF_WORD_SIZE == 32

Modified: head/sys/sun4v/include/elf.h
==============================================================================
--- head/sys/sun4v/include/elf.h	Tue Mar 17 12:47:40 2009	(r189925)
+++ head/sys/sun4v/include/elf.h	Tue Mar 17 12:50:16 2009	(r189926)
@@ -78,16 +78,14 @@ __ElfType(Auxinfo);
 #define	AT_BASE		7	/* Interpreter's base address. */
 #define	AT_FLAGS	8	/* Flags (unused). */
 #define	AT_ENTRY	9	/* Where interpreter should transfer control. */
-/*
- * The following non-standard values are used in Linux ELF binaries.
- */
 #define	AT_NOTELF	10	/* Program is not ELF ?? */
 #define	AT_UID		11	/* Real uid. */
 #define	AT_EUID		12	/* Effective uid. */
 #define	AT_GID		13	/* Real gid. */
 #define	AT_EGID		14	/* Effective gid. */
+#define	AT_EXECPATH	15	/* Path to the executable. */
 
-#define	AT_COUNT	15	/* Count of defined aux entry types. */
+#define	AT_COUNT	16	/* Count of defined aux entry types. */
 
 /* Define "machine" characteristics */
 #if __ELF_WORD_SIZE == 32

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 12:53:29 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4AF07106564A;
	Tue, 17 Mar 2009 12:53:29 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 37E8A8FC23;
	Tue, 17 Mar 2009 12:53:29 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HCrTKH095391;
	Tue, 17 Mar 2009 12:53:29 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HCrSsR095387;
	Tue, 17 Mar 2009 12:53:28 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903171253.n2HCrSsR095387@svn.freebsd.org>
From: Konstantin Belousov 
Date: Tue, 17 Mar 2009 12:53:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189927 - in head/sys: compat/ia32 kern sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 12:53:30 -0000

Author: kib
Date: Tue Mar 17 12:53:28 2009
New Revision: 189927
URL: http://svn.freebsd.org/changeset/base/189927

Log:
  Supply AT_EXECPATH auxinfo entry to the interpreter, both for native and
  compat32 binaries.
  
  Tested by:	pho
  Reviewed by:	kan

Modified:
  head/sys/compat/ia32/ia32_sysvec.c
  head/sys/kern/imgact_elf.c
  head/sys/kern/kern_exec.c
  head/sys/sys/imgact.h

Modified: head/sys/compat/ia32/ia32_sysvec.c
==============================================================================
--- head/sys/compat/ia32/ia32_sysvec.c	Tue Mar 17 12:50:16 2009	(r189926)
+++ head/sys/compat/ia32/ia32_sysvec.c	Tue Mar 17 12:53:28 2009	(r189927)
@@ -189,15 +189,21 @@ ia32_copyout_strings(struct image_params
 	char *stringp, *destp;
 	u_int32_t *stack_base;
 	struct freebsd32_ps_strings *arginfo;
+	size_t execpath_len;
 	int szsigcode;
 
 	/*
 	 * Calculate string base and vector table pointers.
 	 * Also deal with signal trampoline code for this exec type.
 	 */
+	if (imgp->execpath != NULL && imgp->auxargs != NULL)
+		execpath_len = strlen(imgp->execpath) + 1;
+	else
+		execpath_len = 0;
 	arginfo = (struct freebsd32_ps_strings *)FREEBSD32_PS_STRINGS;
 	szsigcode = *(imgp->proc->p_sysent->sv_szsigcode);
 	destp =	(caddr_t)arginfo - szsigcode - SPARE_USRSPACE -
+		roundup(execpath_len, sizeof(char *)) -
 		roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *));
 
 	/*
@@ -208,6 +214,15 @@ ia32_copyout_strings(struct image_params
 			((caddr_t)arginfo - szsigcode), szsigcode);
 
 	/*
+	 * Copy the image path for the rtld.
+	 */
+	if (execpath_len != 0) {
+		imgp->execpathp = (uintptr_t)arginfo - szsigcode - execpath_len;
+		copyout(imgp->execpath, (void *)imgp->execpathp,
+		    execpath_len);
+	}
+
+	/*
 	 * If we have a valid auxargs ptr, prepare some room
 	 * on the stack.
 	 */
@@ -223,9 +238,9 @@ ia32_copyout_strings(struct image_params
 		 * the arg and env vector sets,and imgp->auxarg_size is room
 		 * for argument of Runtime loader.
 		 */
-		vectp = (u_int32_t *) (destp - (imgp->args->argc + imgp->args->envc + 2 +
-				       imgp->auxarg_size) * sizeof(u_int32_t));
-
+		vectp = (u_int32_t *) (destp - (imgp->args->argc +
+		    imgp->args->envc + 2 + imgp->auxarg_size + execpath_len) *
+		    sizeof(u_int32_t));
 	} else
 		/*
 		 * The '+ 2' is for the null pointers at the end of each of

Modified: head/sys/kern/imgact_elf.c
==============================================================================
--- head/sys/kern/imgact_elf.c	Tue Mar 17 12:50:16 2009	(r189926)
+++ head/sys/kern/imgact_elf.c	Tue Mar 17 12:53:28 2009	(r189927)
@@ -885,6 +885,8 @@ __elfN(freebsd_fixup)(register_t **stack
 	AUXARGS_ENTRY(pos, AT_FLAGS, args->flags);
 	AUXARGS_ENTRY(pos, AT_ENTRY, args->entry);
 	AUXARGS_ENTRY(pos, AT_BASE, args->base);
+	if (imgp->execpathp != 0)
+		AUXARGS_ENTRY(pos, AT_EXECPATH, imgp->execpathp);
 	AUXARGS_ENTRY(pos, AT_NULL, 0);
 
 	free(imgp->auxargs, M_TEMP);

Modified: head/sys/kern/kern_exec.c
==============================================================================
--- head/sys/kern/kern_exec.c	Tue Mar 17 12:50:16 2009	(r189926)
+++ head/sys/kern/kern_exec.c	Tue Mar 17 12:53:28 2009	(r189927)
@@ -379,6 +379,8 @@ do_execve(td, args, mac_p)
 	imgp->ps_strings = 0;
 	imgp->auxarg_size = 0;
 	imgp->args = args;
+	imgp->execpath = imgp->freepath = NULL;
+	imgp->execpathp = 0;
 
 #ifdef MAC
 	error = mac_execve_enter(imgp, mac_p);
@@ -519,6 +521,15 @@ interpret:
 	 * of the sv_copyout_strings/sv_fixup operations require the vnode.
 	 */
 	VOP_UNLOCK(imgp->vp, 0);
+
+	/*
+	 * Do the best to calculate the full path to the image file.
+	 */
+	if (imgp->auxargs != NULL &&
+	    ((args->fname != NULL && args->fname[0] == '/') ||
+	     vn_fullpath(td, imgp->vp, &imgp->execpath, &imgp->freepath) != 0))
+		imgp->execpath = args->fname;
+
 	/*
 	 * Copy out strings (args and env) and initialize stack base
 	 */
@@ -859,6 +870,8 @@ exec_fail_dealloc:
 	if (imgp->object != NULL)
 		vm_object_deallocate(imgp->object);
 
+	free(imgp->freepath, M_TEMP);
+
 	if (error == 0) {
 		/*
 		 * Stop the process here if its stop event mask has
@@ -1164,18 +1177,24 @@ exec_copyout_strings(imgp)
 	register_t *stack_base;
 	struct ps_strings *arginfo;
 	struct proc *p;
+	size_t execpath_len;
 	int szsigcode;
 
 	/*
 	 * Calculate string base and vector table pointers.
 	 * Also deal with signal trampoline code for this exec type.
 	 */
+	if (imgp->execpath != NULL && imgp->auxargs != NULL)
+		execpath_len = strlen(imgp->execpath) + 1;
+	else
+		execpath_len = 0;
 	p = imgp->proc;
 	szsigcode = 0;
 	arginfo = (struct ps_strings *)p->p_sysent->sv_psstrings;
 	if (p->p_sysent->sv_szsigcode != NULL)
 		szsigcode = *(p->p_sysent->sv_szsigcode);
 	destp =	(caddr_t)arginfo - szsigcode - SPARE_USRSPACE -
+	    roundup(execpath_len, sizeof(char *)) -
 	    roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *));
 
 	/*
@@ -1186,6 +1205,15 @@ exec_copyout_strings(imgp)
 		    szsigcode), szsigcode);
 
 	/*
+	 * Copy the image path for the rtld.
+	 */
+	if (execpath_len != 0) {
+		imgp->execpathp = (uintptr_t)arginfo - szsigcode - execpath_len;
+		copyout(imgp->execpath, (void *)imgp->execpathp,
+		    execpath_len);
+	}
+
+	/*
 	 * If we have a valid auxargs ptr, prepare some room
 	 * on the stack.
 	 */
@@ -1202,9 +1230,8 @@ exec_copyout_strings(imgp)
 		 * for argument of Runtime loader.
 		 */
 		vectp = (char **)(destp - (imgp->args->argc +
-		    imgp->args->envc + 2 + imgp->auxarg_size) *
+		    imgp->args->envc + 2 + imgp->auxarg_size + execpath_len) *
 		    sizeof(char *));
-
 	} else {
 		/*
 		 * The '+ 2' is for the null pointers at the end of each of

Modified: head/sys/sys/imgact.h
==============================================================================
--- head/sys/sys/imgact.h	Tue Mar 17 12:50:16 2009	(r189926)
+++ head/sys/sys/imgact.h	Tue Mar 17 12:53:28 2009	(r189927)
@@ -66,6 +66,9 @@ struct image_params {
 	size_t auxarg_size;
 	struct image_args *args;	/* system call arguments */
 	struct sysentvec *sysent;	/* system entry vector */
+	char *execpath;
+	unsigned long execpathp;
+	char *freepath;
 };
 
 #ifdef _KERNEL

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 13:07:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1C20D1065741;
	Tue, 17 Mar 2009 13:07:12 +0000 (UTC)
	(envelope-from sbruno@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 09E028FC0C;
	Tue, 17 Mar 2009 13:07:12 +0000 (UTC)
	(envelope-from sbruno@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HD7BVh095717;
	Tue, 17 Mar 2009 13:07:11 GMT (envelope-from sbruno@svn.freebsd.org)
Received: (from sbruno@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HD7BKS095716;
	Tue, 17 Mar 2009 13:07:11 GMT (envelope-from sbruno@svn.freebsd.org)
Message-Id: <200903171307.n2HD7BKS095716@svn.freebsd.org>
From: Sean Bruno 
Date: Tue, 17 Mar 2009 13:07:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189928 - head/sys/dev/firewire
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 13:07:12 -0000

Author: sbruno
Date: Tue Mar 17 13:07:11 2009
New Revision: 189928
URL: http://svn.freebsd.org/changeset/base/189928

Log:
  Reviewed by:	scott (scottl@freebsd.org)
  Obtained from:	Hideotshi Shimokawa
  
  This update is based on comments from Hidetoshi.
  
  Changeset 183550 removed the call to crom_load() in fw_busreset().  Restore
  that call such that the Configuration ROM is valid.
  
  Stash and update fwdev settings in fw_explore_node() so that negotiation
  works again.

Modified:
  head/sys/dev/firewire/firewire.c

Modified: head/sys/dev/firewire/firewire.c
==============================================================================
--- head/sys/dev/firewire/firewire.c	Tue Mar 17 12:53:28 2009	(r189927)
+++ head/sys/dev/firewire/firewire.c	Tue Mar 17 13:07:11 2009	(r189928)
@@ -685,7 +685,8 @@ fw_init_crom(struct firewire_comm *fc)
 	src->businfo.cyc_clk_acc = 100;
 	src->businfo.max_rec = fc->maxrec;
 	src->businfo.max_rom = MAXROM_4;
-	src->businfo.generation = 0;
+#define FW_GENERATION_CHANGEABLE 2
+	src->businfo.generation = FW_GENERATION_CHANGEABLE;
 	src->businfo.link_spd = fc->speed;
 
 	src->businfo.eui64.hi = fc->eui.hi;
@@ -734,6 +735,7 @@ fw_busreset(struct firewire_comm *fc, ui
 	struct firewire_dev_comm *fdc;
 	struct crom_src *src;
 	device_t *devlistp;
+	uint32_t *newrom;
 	int i, devcnt;
 
 	FW_GLOCK_ASSERT(fc);
@@ -759,18 +761,31 @@ fw_busreset(struct firewire_comm *fc, ui
 	}
 
 	src = &fc->crom_src_buf->src;
-	/*
-	 * If the old config rom needs to be overwritten,
-	 * bump the businfo.generation indicator to 
-	 * indicate that we need to be reprobed
-	 */
-	if (bcmp(src, fc->config_rom, CROMSIZE) != 0) {
-		/* generation is a 2 bit field */
-		/* valid values are only from 0 - 3 */
-		src->businfo.generation = 1;
-		bcopy(src, (void *)fc->config_rom, CROMSIZE);
-	} else
-		src->businfo.generation = 0;
+        /*
+         * If the old config rom needs to be overwritten,
+         * bump the businfo.generation indicator to 
+         * indicate that we need to be reprobed
+         * See 1394a-2000 8.3.2.5.4 for more details.
+         * generation starts at 2 and rolls over at 0xF
+         * back to 2.
+         * 
+         * A generation of 0 indicates a device
+         * that is not 1394a-2000 compliant.
+         * A generation of 1 indicates a device that
+         * does not change it's Bus Info Block or 
+         * Configuration ROM.
+         */
+#define FW_MAX_GENERATION 0xF
+	newrom = malloc(CROMSIZE, M_FW, M_NOWAIT | M_ZERO);
+	src = &fc->crom_src_buf->src;
+	crom_load(src, newrom, CROMSIZE);
+	if (bcmp(newrom, fc->config_rom, CROMSIZE) != 0) {
+		if ( src->businfo.generation++ > FW_MAX_GENERATION )
+			src->businfo.generation = FW_GENERATION_CHANGEABLE;
+		bcopy(newrom, (void *)fc->config_rom, CROMSIZE);
+	}
+	free(newrom, M_FW);
+
 }
 
 /* Call once after reboot */
@@ -1590,6 +1605,10 @@ fw_explore_node(struct fw_device *dfwdev
 		}
 		fwdev->fc = fc;
 		fwdev->eui = binfo->eui64;
+		fwdev->dst = dfwdev->dst;
+		fwdev->maxrec = dfwdev->maxrec;
+		fwdev->status = dfwdev->status;
+
 		/*
 		 * Pre-1394a-2000 didn't have link_spd in
 		 * the Bus Info block, so try and use the 
@@ -1599,7 +1618,7 @@ fw_explore_node(struct fw_device *dfwdev
 		 * ignore the speed map alltogether. SWB
 		 */
 		if ( binfo->link_spd == FWSPD_S100 /* 0 */) {
-			device_printf(fc->bdev, "%s"
+			device_printf(fc->bdev, "%s: "
 				"Pre 1394a-2000 detected\n",
 				__func__);
 			fwdev->speed = fc->speed_map->speed[fc->nodeid][node];
@@ -1609,21 +1628,19 @@ fw_explore_node(struct fw_device *dfwdev
 		 * Test this speed with a read to the CSRROM.
 		 * If it fails, slow down the speed and retry.
 		 */
-		while (fwdev->speed > 0) {
+		while (fwdev->speed > FWSPD_S100 /* 0 */) {
 			err = fw_explore_read_quads(fwdev, CSRROMOFF,
             				&speed_test, 1);
-			if (err)
+			if (err) {
+				device_printf(fc->bdev, "%s: fwdev->speed(%s)"
+						" decremented due to negotiation\n",
+						__func__,
+						linkspeed[fwdev->speed]);
 				fwdev->speed--;
-			else
+			} else
 				break;
 				
 		}
-		if (fwdev->speed != binfo->link_spd)
-			device_printf(fc->bdev, "%s: fwdev->speed(%s)"
-						" set lower than binfo->link_spd(%s)\n",
-						__func__,
-						linkspeed[fwdev->speed],
-						linkspeed[binfo->link_spd]);
 		/* inesrt into sorted fwdev list */
 		pfwdev = NULL;
 		STAILQ_FOREACH(tfwdev, &fc->devices, link) {
@@ -1641,15 +1658,15 @@ fw_explore_node(struct fw_device *dfwdev
 		device_printf(fc->bdev, "New %s device ID:%08x%08x\n",
 		    linkspeed[fwdev->speed],
 		    fwdev->eui.hi, fwdev->eui.lo);
-	}
-	fwdev->dst = node;
-	fwdev->status = FWDEVINIT;
-
-	/* unchanged ? */
-	if (bcmp(&csr[0], &fwdev->csrrom[0], sizeof(uint32_t) * 5) == 0) {
-		if (firewire_debug)
-			device_printf(fc->dev, "node%d: crom unchanged\n", node);
-		return (0);
+	} else {
+		fwdev->dst = node;
+		fwdev->status = FWDEVINIT;
+		/* unchanged ? */
+		if (bcmp(&csr[0], &fwdev->csrrom[0], sizeof(uint32_t) * 5) == 0) {
+			if (firewire_debug)
+				device_printf(fc->dev, "node%d: crom unchanged\n", node);
+			return (0);
+		}
 	}
 
 	bzero(&fwdev->csrrom[0], CROMSIZE);
@@ -1661,6 +1678,9 @@ fw_explore_node(struct fw_device *dfwdev
 	err = fw_explore_csrblock(fwdev, 0x14, 1); /* root directory */
 
 	if (err) {
+		if (firewire_debug)
+			device_printf(fc->dev, "%s: explore csrblock failed err(%d)\n",
+					__func__, err);
 		fwdev->status = FWDEVINVAL;
 		fwdev->csrrom[0] = 0;
 	}

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 14:18:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F1E721065670;
	Tue, 17 Mar 2009 14:17:59 +0000 (UTC)
	(envelope-from kensmith@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DED9D8FC13;
	Tue, 17 Mar 2009 14:17:59 +0000 (UTC)
	(envelope-from kensmith@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HEHxlv097105;
	Tue, 17 Mar 2009 14:17:59 GMT
	(envelope-from kensmith@svn.freebsd.org)
Received: (from kensmith@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HEHxNa097104;
	Tue, 17 Mar 2009 14:17:59 GMT
	(envelope-from kensmith@svn.freebsd.org)
Message-Id: <200903171417.n2HEHxNa097104@svn.freebsd.org>
From: Ken Smith 
Date: Tue, 17 Mar 2009 14:17:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189929 - stable/7/sys/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 14:18:01 -0000

Author: kensmith
Date: Tue Mar 17 14:17:59 2009
New Revision: 189929
URL: http://svn.freebsd.org/changeset/base/189929

Log:
  We're a little less than a week from code freeze for the 7.2-REL release
  cycle.  Give people a heads-up that there might be higher than usual
  developer activity during this period by starting to call it 7.2-PRERELEASE
  now.

Modified:
  stable/7/sys/conf/newvers.sh

Modified: stable/7/sys/conf/newvers.sh
==============================================================================
--- stable/7/sys/conf/newvers.sh	Tue Mar 17 13:07:11 2009	(r189928)
+++ stable/7/sys/conf/newvers.sh	Tue Mar 17 14:17:59 2009	(r189929)
@@ -31,8 +31,8 @@
 # $FreeBSD$
 
 TYPE="FreeBSD"
-REVISION="7.1"
-BRANCH="STABLE"
+REVISION="7.2"
+BRANCH="PRERELEASE"
 if [ "X${BRANCH_OVERRIDE}" != "X" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 14:29:26 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2A0C91065677;
	Tue, 17 Mar 2009 14:29:26 +0000 (UTC)
	(envelope-from rafan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 170348FC1E;
	Tue, 17 Mar 2009 14:29:26 +0000 (UTC)
	(envelope-from rafan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HETP6k097507;
	Tue, 17 Mar 2009 14:29:25 GMT (envelope-from rafan@svn.freebsd.org)
Received: (from rafan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HETPY4097506;
	Tue, 17 Mar 2009 14:29:25 GMT (envelope-from rafan@svn.freebsd.org)
Message-Id: <200903171429.n2HETPY4097506@svn.freebsd.org>
From: Rong-En Fan 
Date: Tue, 17 Mar 2009 14:29:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189930 - stable/7/share/termcap
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 14:29:27 -0000

Author: rafan
Date: Tue Mar 17 14:29:25 2009
New Revision: 189930
URL: http://svn.freebsd.org/changeset/base/189930

Log:
  MFC r189216 (ahead original schedule due to the upcoming 7.2-RELEASE)
  
   - Remove kH (kp_kll) from screen. It has the identical key sequence as
     @7 (kp_end). As ncurses has the limitation that it returns the first
     matched key symbol, you can not use END in ncurses based program under
     screen (like ports/misc/mc).
  
   We did similar changes to xterm entry last year for exactly the same reason.
  
   PR:           132199
   Submitted by: Timur I. Bakeyev 

Modified:
  stable/7/share/termcap/   (props changed)
  stable/7/share/termcap/termcap.src

Modified: stable/7/share/termcap/termcap.src
==============================================================================
--- stable/7/share/termcap/termcap.src	Tue Mar 17 14:17:59 2009	(r189929)
+++ stable/7/share/termcap/termcap.src	Tue Mar 17 14:29:25 2009	(r189930)
@@ -2771,7 +2771,7 @@ SC|screen|VT 100/ANSI X3.64 virtual term
 	:ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=^H:\
 	:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
 	:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:F1=\E[23~:F2=\E[24~:\
-	:kh=\E[1~:kI=\E[2~:kD=\E[3~:kH=\E[4~:@7=\E[4~:kP=\E[5~:\
+	:kh=\E[1~:kI=\E[2~:kD=\E[3~:@7=\E[4~:kP=\E[5~:\
 	:kN=\E[6~:eA=\E(B\E)0:as=^N:ae=^O:ti=\E[?1049h:te=\E[?1049l:\
 	:vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l:\
 	:Co#8:pa#64:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:AX:\

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 14:41:54 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 81EEF10656D9;
	Tue, 17 Mar 2009 14:41:54 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 627878FC0C;
	Tue, 17 Mar 2009 14:41:54 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HEfswP097765;
	Tue, 17 Mar 2009 14:41:54 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HEfsam097762;
	Tue, 17 Mar 2009 14:41:54 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903171441.n2HEfsam097762@svn.freebsd.org>
From: Bruce M Simpson 
Date: Tue, 17 Mar 2009 14:41:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189931 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 14:41:56 -0000

Author: bms
Date: Tue Mar 17 14:41:54 2009
New Revision: 189931
URL: http://svn.freebsd.org/changeset/base/189931

Log:
  Deal with the case where ifma_protospec may be NULL, during
  any IPv4 multicast operations which reference it.
  
  There is a potential race because ifma_protospec is set to NULL
  when we discover the underlying ifnet has gone away. This write
  is not covered by the IF_ADDR_LOCK, and it's difficult to widen
  its scope without making it a recursive lock. It isn't clear why
  this manifests more quickly with 802.11 interfaces, but does not
  seem to manifest at all with wired interfaces.
  
  With this change, the 802.11 related panics reported by sam@
  and cokane@ should go away. It is not the right fix, that requires
  more thought before 8.0.
  
  Idea from:	sam
  Tested by:	cokane

Modified:
  head/sys/netinet/igmp.c
  head/sys/netinet/in.c
  head/sys/netinet/in_mcast.c

Modified: head/sys/netinet/igmp.c
==============================================================================
--- head/sys/netinet/igmp.c	Tue Mar 17 14:29:25 2009	(r189930)
+++ head/sys/netinet/igmp.c	Tue Mar 17 14:41:54 2009	(r189931)
@@ -183,6 +183,11 @@ static int	vnet_igmp_idetach(const void 
  * VIMAGE: Each in_multi corresponds to an ifp, and each ifp corresponds
  * to a vnet in ifp->if_vnet.
  *
+ * SMPng: XXX We may potentially race operations on ifma_protospec.
+ * The problem is that we currently lack a clean way of taking the
+ * IF_ADDR_LOCK() between the ifnet and in layers w/o recursing,
+ * as anything which modifies ifma needs to be covered by that lock.
+ * So check for ifma_protospec being NULL before proceeding.
  */
 struct mtx		 igmp_mtx;
 int			 mpsafe_igmp = 0;
@@ -601,6 +606,7 @@ out:
  * is detached, but also before the link layer does its cleanup.
  *
  * SMPNG: igmp_ifdetach() needs to take IF_ADDR_LOCK().
+ * XXX This is also bitten by unlocked ifma_protospec access.
  *
  * VIMAGE: curvnet should have been set by caller, but let's not assume
  * that for now.
@@ -623,8 +629,13 @@ igmp_ifdetach(struct ifnet *ifp)
 	if (igi->igi_version == IGMP_VERSION_3) {
 		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-			if (ifma->ifma_addr->sa_family != AF_INET)
+			if (ifma->ifma_addr->sa_family != AF_INET ||
+			    ifma->ifma_protospec == NULL)
 				continue;
+#if 0
+			KASSERT(ifma->ifma_protospec != NULL,
+			    ("%s: ifma_protospec is NULL", __func__));
+#endif
 			inm = (struct in_multi *)ifma->ifma_protospec;
 			if (inm->inm_state == IGMP_LEAVING_MEMBER) {
 				SLIST_INSERT_HEAD(&igi->igi_relinmhead,
@@ -783,7 +794,8 @@ igmp_input_v1_query(struct ifnet *ifp, c
 	 */
 	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-		if (ifma->ifma_addr->sa_family != AF_INET)
+		if (ifma->ifma_addr->sa_family != AF_INET ||
+		    ifma->ifma_protospec == NULL)
 			continue;
 		inm = (struct in_multi *)ifma->ifma_protospec;
 		if (inm->inm_timer != 0)
@@ -880,7 +892,8 @@ igmp_input_v2_query(struct ifnet *ifp, c
 
 			IF_ADDR_LOCK(ifp);
 			TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-				if (ifma->ifma_addr->sa_family != AF_INET)
+				if (ifma->ifma_addr->sa_family != AF_INET ||
+				    ifma->ifma_protospec == NULL)
 					continue;
 				inm = (struct in_multi *)ifma->ifma_protospec;
 				igmp_v2_update_group(inm, timer);
@@ -1701,7 +1714,8 @@ igmp_fasttimo_vnet(void)
 		IF_ADDR_LOCK(ifp);
 		TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link,
 		    tifma) {
-			if (ifma->ifma_addr->sa_family != AF_INET)
+			if (ifma->ifma_addr->sa_family != AF_INET ||
+			    ifma->ifma_protospec == NULL)
 				continue;
 			inm = (struct in_multi *)ifma->ifma_protospec;
 			switch (igi->igi_version) {
@@ -3311,7 +3325,8 @@ igmp_v3_dispatch_general_query(struct ig
 
 	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH_SAFE(ifma, &ifp->if_multiaddrs, ifma_link, tifma) {
-		if (ifma->ifma_addr->sa_family != AF_INET)
+		if (ifma->ifma_addr->sa_family != AF_INET ||
+		    ifma->ifma_protospec == NULL)
 			continue;
 
 		inm = (struct in_multi *)ifma->ifma_protospec;

Modified: head/sys/netinet/in.c
==============================================================================
--- head/sys/netinet/in.c	Tue Mar 17 14:29:25 2009	(r189930)
+++ head/sys/netinet/in.c	Tue Mar 17 14:41:54 2009	(r189931)
@@ -1011,6 +1011,8 @@ in_ifdetach(struct ifnet *ifp)
  * Delete all IPv4 multicast address records, and associated link-layer
  * multicast address records, associated with ifp.
  * XXX It looks like domifdetach runs AFTER the link layer cleanup.
+ * XXX This should not race with ifma_protospec being set during
+ * a new allocation, if it does, we have bigger problems.
  */
 static void
 in_purgemaddrs(struct ifnet *ifp)
@@ -1031,8 +1033,13 @@ in_purgemaddrs(struct ifnet *ifp)
 	 */
 	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
-		if (ifma->ifma_addr->sa_family != AF_INET)
+		if (ifma->ifma_addr->sa_family != AF_INET ||
+		    ifma->ifma_protospec == NULL)
 			continue;
+#if 0
+		KASSERT(ifma->ifma_protospec != NULL,
+		    ("%s: ifma_protospec is NULL", __func__));
+#endif
 		inm = (struct in_multi *)ifma->ifma_protospec;
 		LIST_INSERT_HEAD(&purgeinms, inm, inm_link);
 	}

Modified: head/sys/netinet/in_mcast.c
==============================================================================
--- head/sys/netinet/in_mcast.c	Tue Mar 17 14:29:25 2009	(r189930)
+++ head/sys/netinet/in_mcast.c	Tue Mar 17 14:41:54 2009	(r189931)
@@ -432,6 +432,9 @@ in_getmulti(struct ifnet *ifp, const str
 	if (error != 0)
 		return (error);
 
+	/* XXX ifma_protospec must be covered by IF_ADDR_LOCK */
+	IF_ADDR_LOCK(ifp);
+
 	/*
 	 * If something other than netinet is occupying the link-layer
 	 * group, print a meaningful error message and back out of
@@ -454,9 +457,12 @@ in_getmulti(struct ifnet *ifp, const str
 #endif
 		++inm->inm_refcount;
 		*pinm = inm;
+		IF_ADDR_UNLOCK(ifp);
 		return (0);
 	}
 
+	IF_ADDR_LOCK_ASSERT(ifp);
+
 	/*
 	 * A new in_multi record is needed; allocate and initialize it.
 	 * We DO NOT perform an IGMP join as the in_ layer may need to
@@ -467,6 +473,7 @@ in_getmulti(struct ifnet *ifp, const str
 	inm = malloc(sizeof(*inm), M_IPMADDR, M_NOWAIT | M_ZERO);
 	if (inm == NULL) {
 		if_delmulti_ifma(ifma);
+		IF_ADDR_UNLOCK(ifp);
 		return (ENOMEM);
 	}
 	inm->inm_addr = *group;
@@ -489,6 +496,7 @@ in_getmulti(struct ifnet *ifp, const str
 
 	*pinm = inm;
 
+	IF_ADDR_UNLOCK(ifp);
 	return (0);
 }
 
@@ -522,6 +530,7 @@ inm_release_locked(struct in_multi *inm)
 
 	ifma = inm->inm_ifma;
 
+	/* XXX this access is not covered by IF_ADDR_LOCK */
 	CTR2(KTR_IGMPV3, "%s: purging ifma %p", __func__, ifma);
 	KASSERT(ifma->ifma_protospec == inm,
 	    ("%s: ifma_protospec != inm", __func__));

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 14:53:43 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4D1031065784;
	Tue, 17 Mar 2009 14:53:43 +0000 (UTC)
	(envelope-from fabient@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1E5038FC20;
	Tue, 17 Mar 2009 14:53:43 +0000 (UTC)
	(envelope-from fabient@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HErhIn098028;
	Tue, 17 Mar 2009 14:53:43 GMT (envelope-from fabient@svn.freebsd.org)
Received: (from fabient@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HErgLO098026;
	Tue, 17 Mar 2009 14:53:42 GMT (envelope-from fabient@svn.freebsd.org)
Message-Id: <200903171453.n2HErgLO098026@svn.freebsd.org>
From: Fabien Thomas 
Date: Tue, 17 Mar 2009 14:53:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189932 - in head: share/misc usr.bin/calendar/calendars
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 14:53:47 -0000

Author: fabient
Date: Tue Mar 17 14:53:42 2009
New Revision: 189932
URL: http://svn.freebsd.org/changeset/base/189932

Log:
  Add information about me as a new committer to the src tree
  
  Approved by:	jkoshy (mentor)

Modified:
  head/share/misc/committers-src.dot
  head/usr.bin/calendar/calendars/calendar.freebsd

Modified: head/share/misc/committers-src.dot
==============================================================================
--- head/share/misc/committers-src.dot	Tue Mar 17 14:41:54 2009	(r189931)
+++ head/share/misc/committers-src.dot	Tue Mar 17 14:53:42 2009	(r189932)
@@ -88,6 +88,7 @@ eik [label="Oliver Eikemeier\neik@FreeBS
 emaste [label="Ed Maste\nemaste@FreeBSD.org\n2005/10/04"]
 emax [label="Maksim Yevmenkin\nemax@FreeBSD.org\n2003/10/12"]
 eri [label="Ermal Luci\neri@FreeBSD.org\n2008/06/11"]
+fabient [label="Fabien Thomas\nfabient@FreeBSD.org\n2009/03/16"]
 fanf [label="Tony Finch\nfanf@FreeBSD.org\n2002/05/05"]
 fjoe [label="Max Khon\nfjoe@FreeBSD.org\n2001/08/06"]
 flz [label="Florent Thoumie\nflz@FreeBSD.org\n2006/03/30"]
@@ -314,6 +315,7 @@ jkh -> wes
 jkh -> yar
 
 jkoshy -> kaiw
+jkoshy -> fabient
 
 jlemon -> bmilekic
 jlemon -> brooks

Modified: head/usr.bin/calendar/calendars/calendar.freebsd
==============================================================================
--- head/usr.bin/calendar/calendars/calendar.freebsd	Tue Mar 17 14:41:54 2009	(r189931)
+++ head/usr.bin/calendar/calendars/calendar.freebsd	Tue Mar 17 14:53:42 2009	(r189932)
@@ -28,6 +28,7 @@
 01/22	Johann Visagie  born in Cape Town, South Africa, 1970
 01/23	Hideyuki KURASHINA  born in Niigata, Japan, 1982
 01/24	Matteo Riondato  born in Padova, Italy, 1986
+01/24	Fabien Thomas  born in Avignon, France, 1971
 01/25	Bernd Walter  born in Moers, Nordrhein-Westfalen, Germany, 1974
 01/26	Andrew Gallatin  born in Buffalo, New York, United States, 1970
 01/27	Nick Sayer  born in San Diego, California, United States, 1968

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 16:30:49 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E60951065676;
	Tue, 17 Mar 2009 16:30:49 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D344F8FC12;
	Tue, 17 Mar 2009 16:30:49 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HGUnsw099800;
	Tue, 17 Mar 2009 16:30:49 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HGUnPP099799;
	Tue, 17 Mar 2009 16:30:49 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <200903171630.n2HGUnPP099799@svn.freebsd.org>
From: Attilio Rao 
Date: Tue, 17 Mar 2009 16:30:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189933 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 16:30:50 -0000

Author: attilio
Date: Tue Mar 17 16:30:49 2009
New Revision: 189933
URL: http://svn.freebsd.org/changeset/base/189933

Log:
  Fix an old-standing bug that crept in along the several revisions:
  B_DELWRI cleanup and vnode disassociation should happen just before to
  assign the buffer to a queue.
  
  Reported by:	miwi, Volker ,
  		Ben Kaduk ,
  		Christopher Mallon 
  Tested by:	lulf, miwi

Modified:
  head/sys/kern/vfs_bio.c

Modified: head/sys/kern/vfs_bio.c
==============================================================================
--- head/sys/kern/vfs_bio.c	Tue Mar 17 14:53:42 2009	(r189932)
+++ head/sys/kern/vfs_bio.c	Tue Mar 17 16:30:49 2009	(r189933)
@@ -1369,9 +1369,23 @@ brelse(struct buf *bp)
 	if (bp->b_qindex != QUEUE_NONE)
 		panic("brelse: free buffer onto another queue???");
 
+	/*
+	 * If the buffer has junk contents signal it and eventually
+	 * clean up B_DELWRI and diassociate the vnode so that gbincore()
+	 * doesn't find it.
+	 */
+	if (bp->b_bufsize == 0 || (bp->b_ioflags & BIO_ERROR) != 0 ||
+	    (bp->b_flags & (B_INVAL | B_NOCACHE | B_RELBUF)) != 0)
+		bp->b_flags |= B_INVAL;
+	if (bp->b_flags & B_INVAL) {
+		if (bp->b_flags & B_DELWRI)
+			bundirty(bp);
+		if (bp->b_vp)
+			brelvp(bp);
+	}
+
 	/* buffers with no memory */
 	if (bp->b_bufsize == 0) {
-		bp->b_flags |= B_INVAL;
 		bp->b_xflags &= ~(BX_BKGRDWRITE | BX_ALTDATA);
 		if (bp->b_vflags & BV_BKGRDINPROG)
 			panic("losing buffer 1");
@@ -1384,7 +1398,6 @@ brelse(struct buf *bp)
 	/* buffers with junk contents */
 	} else if (bp->b_flags & (B_INVAL | B_NOCACHE | B_RELBUF) ||
 	    (bp->b_ioflags & BIO_ERROR)) {
-		bp->b_flags |= B_INVAL;
 		bp->b_xflags &= ~(BX_BKGRDWRITE | BX_ALTDATA);
 		if (bp->b_vflags & BV_BKGRDINPROG)
 			panic("losing buffer 2");
@@ -1407,19 +1420,6 @@ brelse(struct buf *bp)
 	mtx_unlock(&bqlock);
 
 	/*
-	 * If B_INVAL and B_DELWRI is set, clear B_DELWRI.  We have already
-	 * placed the buffer on the correct queue.  We must also disassociate
-	 * the device and vnode for a B_INVAL buffer so gbincore() doesn't
-	 * find it.
-	 */
-	if (bp->b_flags & B_INVAL) {
-		if (bp->b_flags & B_DELWRI)
-			bundirty(bp);
-		if (bp->b_vp)
-			brelvp(bp);
-	}
-
-	/*
 	 * Fixup numfreebuffers count.  The bp is on an appropriate queue
 	 * unless locked.  We then bump numfreebuffers if it is not B_DELWRI.
 	 * We've already handled the B_INVAL case ( B_DELWRI will be clear

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 19:37:48 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 06DCD1065705;
	Tue, 17 Mar 2009 19:37:48 +0000 (UTC)
	(envelope-from dwmalone@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E7D348FC12;
	Tue, 17 Mar 2009 19:37:47 +0000 (UTC)
	(envelope-from dwmalone@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HJbl4N004445;
	Tue, 17 Mar 2009 19:37:47 GMT
	(envelope-from dwmalone@svn.freebsd.org)
Received: (from dwmalone@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HJblWL004444;
	Tue, 17 Mar 2009 19:37:47 GMT
	(envelope-from dwmalone@svn.freebsd.org)
Message-Id: <200903171937.n2HJblWL004444@svn.freebsd.org>
From: David Malone 
Date: Tue, 17 Mar 2009 19:37:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189934 - head/usr.bin/ministat
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 19:37:50 -0000

Author: dwmalone
Date: Tue Mar 17 19:37:47 2009
New Revision: 189934
URL: http://svn.freebsd.org/changeset/base/189934

Log:
  Fix some warns - mainly signedness and unused variables.

Modified:
  head/usr.bin/ministat/ministat.c

Modified: head/usr.bin/ministat/ministat.c
==============================================================================
--- head/usr.bin/ministat/ministat.c	Tue Mar 17 16:30:49 2009	(r189933)
+++ head/usr.bin/ministat/ministat.c	Tue Mar 17 19:37:47 2009	(r189934)
@@ -136,7 +136,7 @@ struct dataset {
 	double	*points;
 	unsigned lpoints;
 	double sy, syy;
-	int n;
+	unsigned n;
 };
 
 static struct dataset *
@@ -191,8 +191,6 @@ Avg(struct dataset *ds)
 static double
 Median(struct dataset *ds)
 {
-	int even, i;
-	struct point *p1, *p2;
 
 	return (ds->points[ds->n / 2]);
 }
@@ -317,8 +315,8 @@ static void
 PlotSet(struct dataset *ds, int val)
 {
 	struct plot *pl;
-	struct point *pp;
-	int i, j, m, x, n;
+	int i, j, m, x;
+	unsigned n;
 	int bar;
 
 	pl = &plot;

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 19:38:41 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E82B41065723;
	Tue, 17 Mar 2009 19:38:40 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CE1178FC18;
	Tue, 17 Mar 2009 19:38:40 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HJceCM004513;
	Tue, 17 Mar 2009 19:38:40 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HJceUA004503;
	Tue, 17 Mar 2009 19:38:40 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200903171938.n2HJceUA004503@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Tue, 17 Mar 2009 19:38:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189935 - in stable/7/sys: . contrib/pf dev/ata
	dev/ath/ath_hal dev/cxgb geom geom/part
	modules/geom/geom_part modules/geom/geom_part/geom_part_ebr sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 19:38:44 -0000

Author: marcel
Date: Tue Mar 17 19:38:40 2009
New Revision: 189935
URL: http://svn.freebsd.org/changeset/base/189935

Log:
  Sync gpart with the trunk. This includes:
  o  APM scheme supports Tivo Series 1 partitions  (read only).
  o  Bootcode support added to BSD scheme.
  o  New EBR scheme to support Extended Boot Records (logical partitions).
  o  PC98 scheme fixes (credits to nyan@)
  o  VTOC8 scheme fixes (credits to marius@)

Added:
  stable/7/sys/geom/part/g_part_ebr.c
     - copied, changed from r188354, head/sys/geom/part/g_part_ebr.c
  stable/7/sys/modules/geom/geom_part/geom_part_ebr/
     - copied from r188354, head/sys/modules/geom/geom_part/geom_part_ebr/
Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ata/atapi-cd.c
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/geom/geom.h
  stable/7/sys/geom/geom_dev.c
  stable/7/sys/geom/geom_subr.c
  stable/7/sys/geom/part/g_part.c
  stable/7/sys/geom/part/g_part.h
  stable/7/sys/geom/part/g_part_apm.c
  stable/7/sys/geom/part/g_part_bsd.c
  stable/7/sys/geom/part/g_part_gpt.c
  stable/7/sys/geom/part/g_part_if.m
  stable/7/sys/geom/part/g_part_mbr.c
  stable/7/sys/geom/part/g_part_pc98.c
  stable/7/sys/geom/part/g_part_vtoc8.c
  stable/7/sys/modules/geom/geom_part/Makefile
  stable/7/sys/sys/disk.h
  stable/7/sys/sys/diskpc98.h

Modified: stable/7/sys/dev/ata/atapi-cd.c
==============================================================================
--- stable/7/sys/dev/ata/atapi-cd.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/dev/ata/atapi-cd.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -218,7 +218,10 @@ acd_geom_ioctl(struct g_provider *pp, u_
 	case CDIOCRESET:
 	    acd_test_ready(dev);
 	    break;
-	   
+
+	case DIOCGPROVIDERALIAS:
+	    break;
+
 	default:
 	    acd_read_toc(dev);
 	    acd_prevent_allow(dev, 1);

Modified: stable/7/sys/geom/geom.h
==============================================================================
--- stable/7/sys/geom/geom.h	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/geom.h	Tue Mar 17 19:38:40 2009	(r189935)
@@ -227,10 +227,11 @@ void g_error_provider(struct g_provider 
 struct g_provider *g_provider_by_name(char const *arg);
 int g_getattr__(const char *attr, struct g_consumer *cp, void *var, int len);
 #define g_getattr(a, c, v) g_getattr__((a), (c), (v), sizeof *(v))
-int g_handleattr(struct bio *bp, const char *attribute, void *val, int len);
+int g_handleattr(struct bio *bp, const char *attribute, const void *val,
+    int len);
 int g_handleattr_int(struct bio *bp, const char *attribute, int val);
 int g_handleattr_off_t(struct bio *bp, const char *attribute, off_t val);
-int g_handleattr_str(struct bio *bp, const char *attribute, char *str);
+int g_handleattr_str(struct bio *bp, const char *attribute, const char *str);
 struct g_consumer * g_new_consumer(struct g_geom *gp);
 struct g_geom * g_new_geomf(struct g_class *mp, const char *fmt, ...);
 struct g_provider * g_new_providerf(struct g_geom *gp, const char *fmt, ...);

Modified: stable/7/sys/geom/geom_dev.c
==============================================================================
--- stable/7/sys/geom/geom_dev.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/geom_dev.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -124,6 +124,7 @@ g_dev_taste(struct g_class *mp, struct g
 {
 	struct g_geom *gp;
 	struct g_consumer *cp;
+	char *alias;
 	int error;
 	struct cdev *dev;
 	u_int unit;
@@ -147,6 +148,17 @@ g_dev_taste(struct g_class *mp, struct g
 	gp->softc = dev;
 	dev->si_drv1 = gp;
 	dev->si_drv2 = cp;
+
+	g_topology_unlock();
+
+	alias = g_malloc(MAXPATHLEN, M_WAITOK | M_ZERO);
+	error = (pp->geom->ioctl == NULL) ? ENODEV :
+	    pp->geom->ioctl(pp, DIOCGPROVIDERALIAS, alias, 0, curthread);
+	if (!error && alias[0] != '\0')
+		make_dev_alias(dev, "%s", alias);
+	g_free(alias);
+
+	g_topology_lock();
 	return (gp);
 }
 

Modified: stable/7/sys/geom/geom_subr.c
==============================================================================
--- stable/7/sys/geom/geom_subr.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/geom_subr.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -856,14 +856,14 @@ g_handleattr_off_t(struct bio *bp, const
 }
 
 int
-g_handleattr_str(struct bio *bp, const char *attribute, char *str)
+g_handleattr_str(struct bio *bp, const char *attribute, const char *str)
 {
 
 	return (g_handleattr(bp, attribute, str, 0));
 }
 
 int
-g_handleattr(struct bio *bp, const char *attribute, void *val, int len)
+g_handleattr(struct bio *bp, const char *attribute, const void *val, int len)
 {
 	int error = 0;
 
@@ -880,12 +880,13 @@ g_handleattr(struct bio *bp, const char 
 		}
 	} else if (bp->bio_length == len) {
 		bcopy(val, bp->bio_data, len);
-		bp->bio_completed = len;
 	} else {
 		printf("%s: %s bio_length %jd len %d -> EFAULT\n", __func__,
 		    bp->bio_to->name, (intmax_t)bp->bio_length, len);
 		error = EFAULT;
 	}
+	if (error == 0)
+		bp->bio_completed = bp->bio_length;
 	g_io_deliver(bp, error);
 	return (1);
 }

Modified: stable/7/sys/geom/part/g_part.c
==============================================================================
--- stable/7/sys/geom/part/g_part.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/part/g_part.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002, 2005-2008 Marcel Moolenaar
+ * Copyright (c) 2002, 2005-2009 Marcel Moolenaar
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -29,6 +29,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -86,6 +87,7 @@ static g_taste_t g_part_taste;
 
 static g_access_t g_part_access;
 static g_dumpconf_t g_part_dumpconf;
+static g_ioctl_t g_part_ioctl;
 static g_orphan_t g_part_orphan;
 static g_spoiled_t g_part_spoiled;
 static g_start_t g_part_start;
@@ -102,6 +104,7 @@ static struct g_class g_part_class = {
 	/* Geom methods. */
 	.access = g_part_access,
 	.dumpconf = g_part_dumpconf,
+	.ioctl = g_part_ioctl,
 	.orphan = g_part_orphan,
 	.spoiled = g_part_spoiled,
 	.start = g_part_start,
@@ -109,23 +112,6 @@ static struct g_class g_part_class = {
 
 DECLARE_GEOM_CLASS(g_part_class, g_part);
 
-enum g_part_ctl {
-	G_PART_CTL_NONE,
-	G_PART_CTL_ADD,
-	G_PART_CTL_BOOTCODE,
-	G_PART_CTL_COMMIT,
-	G_PART_CTL_CREATE,
-	G_PART_CTL_DELETE,
-	G_PART_CTL_DESTROY,
-	G_PART_CTL_MODIFY,
-	G_PART_CTL_MOVE,
-	G_PART_CTL_RECOVER,
-	G_PART_CTL_RESIZE,
-	G_PART_CTL_SET,
-	G_PART_CTL_UNDO,
-	G_PART_CTL_UNSET
-};
-
 /*
  * Support functions.
  */
@@ -181,10 +167,8 @@ g_part_geometry(struct g_part_table *tab
 	u_int heads, sectors;
 	int idx;
 
-	if (g_getattr("GEOM::fwsectors", cp, §ors) != 0 ||
-	    sectors < 1 || sectors > 63 ||
-	    g_getattr("GEOM::fwheads", cp, &heads) != 0 ||
-	    heads < 1 || heads > 255) {
+	if (g_getattr("GEOM::fwsectors", cp, §ors) != 0 || sectors == 0 ||
+	    g_getattr("GEOM::fwheads", cp, &heads) != 0 || heads == 0) {
 		table->gpt_fixgeom = 0;
 		table->gpt_heads = 0;
 		table->gpt_sectors = 0;
@@ -245,7 +229,8 @@ g_part_new_entry(struct g_part_table *ta
 			LIST_INSERT_HEAD(&table->gpt_entry, entry, gpe_entry);
 		else
 			LIST_INSERT_AFTER(last, entry, gpe_entry);
-	}
+	} else
+		entry->gpe_offset = 0;
 	entry->gpe_start = start;
 	entry->gpe_end = end;
 	return (entry);
@@ -258,11 +243,14 @@ g_part_new_provider(struct g_geom *gp, s
 	char buf[32];
 	struct g_consumer *cp;
 	struct g_provider *pp;
+	off_t offset;
 
 	cp = LIST_FIRST(&gp->consumer);
 	pp = cp->provider;
 
-	entry->gpe_offset = entry->gpe_start * pp->sectorsize;
+	offset = entry->gpe_start * pp->sectorsize;
+	if (entry->gpe_offset < offset)
+		entry->gpe_offset = offset;
 
 	if (entry->gpe_pp == NULL) {
 		entry->gpe_pp = g_new_providerf(gp, "%s%s", gp->name,
@@ -272,6 +260,7 @@ g_part_new_provider(struct g_geom *gp, s
 	entry->gpe_pp->index = entry->gpe_index - 1;	/* index is 1-based. */
 	entry->gpe_pp->mediasize = (entry->gpe_end - entry->gpe_start + 1) *
 	    pp->sectorsize;
+	entry->gpe_pp->mediasize -= entry->gpe_offset - offset;
 	entry->gpe_pp->sectorsize = pp->sectorsize;
 	entry->gpe_pp->flags = pp->flags & G_PF_CANDELETE;
 	if (pp->stripesize > 0) {
@@ -534,8 +523,8 @@ g_part_ctl_bootcode(struct gctl_req *req
 		error = ENODEV;
 		goto fail;
 	}
-	if (gpp->gpp_codesize != sz) {
-		error = EINVAL;
+	if (gpp->gpp_codesize > sz) {
+		error = EFBIG;
 		goto fail;
 	}
 
@@ -579,6 +568,8 @@ g_part_ctl_commit(struct gctl_req *req, 
 		return (EPERM);
 	}
 
+	g_topology_unlock();
+
 	cp = LIST_FIRST(&gp->consumer);
 	if ((table->gpt_smhead | table->gpt_smtail) != 0) {
 		pp = cp->provider;
@@ -607,6 +598,7 @@ g_part_ctl_commit(struct gctl_req *req, 
 	}
 
 	if (table->gpt_scheme == &g_part_null_scheme) {
+		g_topology_lock();
 		g_access(cp, -1, -1, -1);
 		g_part_wither(gp, ENXIO);
 		return (0);
@@ -627,10 +619,13 @@ g_part_ctl_commit(struct gctl_req *req, 
 	}
 	table->gpt_created = 0;
 	table->gpt_opened = 0;
+
+	g_topology_lock();
 	g_access(cp, -1, -1, -1);
 	return (0);
 
 fail:
+	g_topology_lock();
 	gctl_error(req, "%d", error);
 	return (error);
 }
@@ -714,14 +709,6 @@ g_part_ctl_create(struct gctl_req *req, 
 	error = g_getattr("PART::depth", cp, &attr);
 	table->gpt_depth = (!error) ? attr + 1 : 0;
 
-	/* If we're nested, get the absolute sector offset on disk. */
-	if (table->gpt_depth) {
-		error = g_getattr("PART::offset", cp, &attr);
-		if (error)
-			goto fail;
-		table->gpt_offset = attr;
-	}
-
 	/*
 	 * Synthesize a disk geometry. Some partitioning schemes
 	 * depend on it and since some file systems need it even
@@ -1345,7 +1332,7 @@ g_part_ctlreq(struct gctl_req *req, stru
 
 	/* Obtain permissions if possible/necessary. */
 	close_on_error = 0;
-	table = NULL;	/* Suppress uninit. warning. */
+	table = NULL;
 	if (modifies && (gpp.gpp_parms & G_PART_PARM_GEOM)) {
 		table = gpp.gpp_geom->softc;
 		if (table != NULL && !table->gpt_opened) {
@@ -1361,7 +1348,16 @@ g_part_ctlreq(struct gctl_req *req, stru
 		}
 	}
 
-	error = EDOOFUS;	/* Prevent bogus  uninit. warning. */
+	/* Allow the scheme to check or modify the parameters. */
+	if (table != NULL) {
+		error = G_PART_PRECHECK(table, ctlreq, &gpp);
+		if (error) {
+			gctl_error(req, "%d pre-check failed", error);
+			goto out;
+		}
+	} else
+		error = EDOOFUS;	/* Prevent bogus uninit. warning. */
+
 	switch (ctlreq) {
 	case G_PART_CTL_NONE:
 		panic("%s", __func__);
@@ -1417,6 +1413,7 @@ g_part_ctlreq(struct gctl_req *req, stru
 		}
 	}
 
+ out:
 	if (error && close_on_error) {
 		g_access(LIST_FIRST(&gpp.gpp_geom->consumer), -1, -1, -1);
 		table->gpt_opened = 0;
@@ -1442,6 +1439,7 @@ g_part_taste(struct g_class *mp, struct 
 	struct g_geom *gp;
 	struct g_part_entry *entry;
 	struct g_part_table *table;
+	struct root_hold_token *rht;
 	int attr, depth;
 	int error;
 
@@ -1463,6 +1461,7 @@ g_part_taste(struct g_class *mp, struct 
 		return (NULL);
 	}
 
+	rht = root_mount_hold(mp->name);
 	g_topology_unlock();
 
 	/*
@@ -1489,14 +1488,6 @@ g_part_taste(struct g_class *mp, struct 
 
 	table = gp->softc;
 
-	/* If we're nested, get the absolute sector offset on disk. */
-	if (table->gpt_depth) {
-		error = g_getattr("PART::offset", cp, &attr);
-		if (error)
-			goto fail;
-		table->gpt_offset = attr;
-	}
-
 	/*
 	 * Synthesize a disk geometry. Some partitioning schemes
 	 * depend on it and since some file systems need it even
@@ -1515,11 +1506,13 @@ g_part_taste(struct g_class *mp, struct 
 			g_part_new_provider(gp, table, entry);
 	}
 
+	root_mount_rel(rht);
 	g_access(cp, -1, 0, 0);
 	return (gp);
 
  fail:
 	g_topology_lock();
+	root_mount_rel(rht);
 	g_access(cp, -1, 0, 0);
 	g_part_wither(gp, error);
 	return (NULL);
@@ -1576,6 +1569,10 @@ g_part_dumpconf(struct sbuf *sb, const c
 		entry = pp->private;
 		if (entry == NULL)
 			return;
+		sbuf_printf(sb, "%s%ju\n", indent,
+		    (uintmax_t)entry->gpe_start);
+		sbuf_printf(sb, "%s%ju\n", indent,
+		    (uintmax_t)entry->gpe_end);
 		sbuf_printf(sb, "%s%u\n", indent,
 		    entry->gpe_index);
 		sbuf_printf(sb, "%s%s\n", indent,
@@ -1602,6 +1599,31 @@ g_part_dumpconf(struct sbuf *sb, const c
 	}
 }
 
+static int
+g_part_ioctl(struct g_provider *pp, u_long cmd, void *data, int fflag,
+    struct thread *td)
+{
+	struct g_geom *gp;
+	struct g_part_table *table;
+	struct g_part_entry *entry;
+	int error;
+
+	gp = pp->geom;
+	table = gp->softc;
+	entry = pp->private;
+
+	switch (cmd) {
+	case DIOCGPROVIDERALIAS:
+		error = G_PART_DEVALIAS(table, entry, data, MAXPATHLEN);
+		break;
+	default:
+		error = ENOTTY;
+		break;
+	}
+
+	return (error);
+}
+
 static void
 g_part_orphan(struct g_consumer *cp)
 {
@@ -1681,8 +1703,8 @@ g_part_start(struct bio *bp)
 			return;
 		if (g_handleattr_int(bp, "PART::depth", table->gpt_depth))
 			return;
-		if (g_handleattr_int(bp, "PART::offset",
-		    table->gpt_offset + entry->gpe_start))
+		if (g_handleattr_str(bp, "PART::scheme",
+		    table->gpt_scheme->name))
 			return;
 		if (!strcmp("GEOM::kerneldump", bp->bio_attribute)) {
 			/*
@@ -1722,7 +1744,7 @@ static void
 g_part_init(struct g_class *mp)
 {
 
-	TAILQ_INSERT_TAIL(&g_part_schemes, &g_part_null_scheme, scheme_list);
+	TAILQ_INSERT_HEAD(&g_part_schemes, &g_part_null_scheme, scheme_list);
 }
 
 static void

Modified: stable/7/sys/geom/part/g_part.h
==============================================================================
--- stable/7/sys/geom/part/g_part.h	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/part/g_part.h	Tue Mar 17 19:38:40 2009	(r189935)
@@ -103,13 +103,6 @@ struct g_part_table {
 	 */
 	uint32_t	gpt_sectors;
 	uint32_t	gpt_heads;
-	/*
-	 * gpt_offset holds the absolute block address of the scheme
-	 * on disk. Some partitioning schemes (historically) use
-	 * absolute addressing. Relative addresses are obtained by
-	 * subtracting gpt_offset from the absolute addresses.
-	 */
-	uint64_t	gpt_offset;
 
 	int		gpt_depth;	/* Sub-partitioning level. */
 	int		gpt_isleaf:1;	/* Cannot be sub-partitioned. */
@@ -122,6 +115,23 @@ struct g_part_table {
 struct g_part_entry *g_part_new_entry(struct g_part_table *, int, quad_t,
     quad_t);
 
+enum g_part_ctl {
+	G_PART_CTL_NONE,
+	G_PART_CTL_ADD,
+	G_PART_CTL_BOOTCODE,
+	G_PART_CTL_COMMIT,
+	G_PART_CTL_CREATE,
+	G_PART_CTL_DELETE,
+	G_PART_CTL_DESTROY,
+	G_PART_CTL_MODIFY,
+	G_PART_CTL_MOVE,
+	G_PART_CTL_RECOVER,
+	G_PART_CTL_RESIZE,
+	G_PART_CTL_SET,
+	G_PART_CTL_UNDO,
+	G_PART_CTL_UNSET
+};
+
 /* G_PART ctlreq parameters. */
 #define	G_PART_PARM_ENTRIES	0x0001
 #define	G_PART_PARM_FLAGS	0x0002

Modified: stable/7/sys/geom/part/g_part_apm.c
==============================================================================
--- stable/7/sys/geom/part/g_part_apm.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/part/g_part_apm.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -50,6 +50,7 @@ struct g_part_apm_table {
 	struct g_part_table	base;
 	struct apm_ddr		ddr;
 	struct apm_ent		self;
+	int			tivo_series1;
 };
 
 struct g_part_apm_entry {
@@ -61,12 +62,12 @@ static int g_part_apm_add(struct g_part_
     struct g_part_parms *);
 static int g_part_apm_create(struct g_part_table *, struct g_part_parms *);
 static int g_part_apm_destroy(struct g_part_table *, struct g_part_parms *);
-static int g_part_apm_dumpconf(struct g_part_table *, struct g_part_entry *,
+static void g_part_apm_dumpconf(struct g_part_table *, struct g_part_entry *,
     struct sbuf *, const char *);
 static int g_part_apm_dumpto(struct g_part_table *, struct g_part_entry *);
 static int g_part_apm_modify(struct g_part_table *, struct g_part_entry *,
     struct g_part_parms *);
-static char *g_part_apm_name(struct g_part_table *, struct g_part_entry *,
+static const char *g_part_apm_name(struct g_part_table *, struct g_part_entry *,
     char *, size_t);
 static int g_part_apm_probe(struct g_part_table *, struct g_consumer *);
 static int g_part_apm_read(struct g_part_table *, struct g_consumer *);
@@ -99,6 +100,19 @@ static struct g_part_scheme g_part_apm_s
 };
 G_PART_SCHEME_DECLARE(g_part_apm);
 
+static void
+swab(char *buf, size_t bufsz)
+{
+	int i;
+	char ch;
+
+	for (i = 0; i < bufsz; i += 2) {
+		ch = buf[i];
+		buf[i] = buf[i + 1];
+		buf[i + 1] = ch;
+	}
+}
+
 static int
 apm_parse_type(const char *type, char *buf, size_t bufsz)
 {
@@ -143,7 +157,8 @@ apm_parse_type(const char *type, char *b
 }
 
 static int
-apm_read_ent(struct g_consumer *cp, uint32_t blk, struct apm_ent *ent)
+apm_read_ent(struct g_consumer *cp, uint32_t blk, struct apm_ent *ent,
+    int tivo_series1)
 {
 	struct g_provider *pp;
 	char *buf;
@@ -153,6 +168,8 @@ apm_read_ent(struct g_consumer *cp, uint
 	buf = g_read_data(cp, pp->sectorsize * blk, pp->sectorsize, &error);
 	if (buf == NULL)
 		return (error);
+	if (tivo_series1)
+		swab(buf, pp->sectorsize);
 	ent->ent_sig = be16dec(buf);
 	ent->ent_pmblkcnt = be32dec(buf + 4);
 	ent->ent_start = be32dec(buf + 8);
@@ -231,7 +248,7 @@ g_part_apm_destroy(struct g_part_table *
 	return (0);
 }
 
-static int
+static void
 g_part_apm_dumpconf(struct g_part_table *table, struct g_part_entry *baseentry,
     struct sbuf *sb, const char *indent)
 {
@@ -256,7 +273,6 @@ g_part_apm_dumpconf(struct g_part_table 
 	} else {
 		/* confxml: scheme information */
 	}
-	return (0);
 }
 
 static int
@@ -294,7 +310,7 @@ g_part_apm_modify(struct g_part_table *b
 	return (0);
 }
 
-static char *
+static const char *
 g_part_apm_name(struct g_part_table *table, struct g_part_entry *baseentry,
     char *buf, size_t bufsz)
 {
@@ -316,6 +332,7 @@ g_part_apm_probe(struct g_part_table *ba
 		return (ENXIO);
 
 	table = (struct g_part_apm_table *)basetable;
+	table->tivo_series1 = 0;
 	pp = cp->provider;
 
 	/* Sanity-check the provider. */
@@ -326,17 +343,35 @@ g_part_apm_probe(struct g_part_table *ba
 	buf = g_read_data(cp, 0L, pp->sectorsize, &error);
 	if (buf == NULL)
 		return (error);
-	table->ddr.ddr_sig = be16dec(buf);
-	table->ddr.ddr_blksize = be16dec(buf + 2);
-	table->ddr.ddr_blkcount = be32dec(buf + 4);
-	g_free(buf);
-	if (table->ddr.ddr_sig != APM_DDR_SIG)
-		return (ENXIO);
-	if (table->ddr.ddr_blksize != pp->sectorsize)
-		return (ENXIO);
+	if (be16dec(buf) == be16toh(APM_DDR_SIG)) {
+		/* Normal Apple DDR */
+		table->ddr.ddr_sig = be16dec(buf);
+		table->ddr.ddr_blksize = be16dec(buf + 2);
+		table->ddr.ddr_blkcount = be32dec(buf + 4);
+		g_free(buf);
+		if (table->ddr.ddr_blksize != pp->sectorsize)
+			return (ENXIO);
+	} else {
+		/*
+		 * Check for Tivo drives, which have no DDR and a different
+		 * signature.  Those whose first two bytes are 14 92 are
+		 * Series 2 drives, and aren't supported.  Those that start
+		 * with 92 14 are series 1 drives and are supported.
+		 */
+		if (be16dec(buf) != 0x9214) {
+			/* If this is 0x1492 it could be a series 2 drive */
+			g_free(buf);
+			return (ENXIO);
+		}
+		table->ddr.ddr_sig = APM_DDR_SIG;		/* XXX */
+		table->ddr.ddr_blksize = pp->sectorsize;	/* XXX */
+		table->ddr.ddr_blkcount = pp->mediasize / pp->sectorsize;/* XXX */
+		table->tivo_series1 = 1;
+		g_free(buf);
+	}
 
 	/* Check that there's a Partition Map. */
-	error = apm_read_ent(cp, 1, &table->self);
+	error = apm_read_ent(cp, 1, &table->self, table->tivo_series1);
 	if (error)
 		return (error);
 	if (table->self.ent_sig != APM_ENT_SIG)
@@ -363,7 +398,7 @@ g_part_apm_read(struct g_part_table *bas
 	basetable->gpt_entries = table->self.ent_pmblkcnt - 1;
 
 	for (index = table->self.ent_pmblkcnt - 1; index > 0; index--) {
-		error = apm_read_ent(cp, index + 1, &ent);
+		error = apm_read_ent(cp, index + 1, &ent, table->tivo_series1);
 		if (error)
 			continue;
 		if (!strcmp(ent.ent_type, APM_ENT_TYPE_UNUSED))
@@ -413,6 +448,11 @@ g_part_apm_write(struct g_part_table *ba
 	int error, index;
 
 	table = (struct g_part_apm_table *)basetable;
+	/*
+	 * Tivo Series 1 disk partitions are currently read-only.
+	 */
+	if (table->tivo_series1)
+		return (EOPNOTSUPP);
 	bzero(buf, sizeof(buf));
 
 	/* Write the DDR and 'self' entry only when we're newly created. */

Modified: stable/7/sys/geom/part/g_part_bsd.c
==============================================================================
--- stable/7/sys/geom/part/g_part_bsd.c	Tue Mar 17 19:37:47 2009	(r189934)
+++ stable/7/sys/geom/part/g_part_bsd.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -47,7 +47,7 @@ __FBSDID("$FreeBSD$");
 
 struct g_part_bsd_table {
 	struct g_part_table	base;
-	u_char			*label;
+	u_char			*bbarea;
 	uint32_t		offset;
 };
 
@@ -58,14 +58,15 @@ struct g_part_bsd_entry {
 
 static int g_part_bsd_add(struct g_part_table *, struct g_part_entry *,
     struct g_part_parms *);
+static int g_part_bsd_bootcode(struct g_part_table *, struct g_part_parms *);
 static int g_part_bsd_create(struct g_part_table *, struct g_part_parms *);
 static int g_part_bsd_destroy(struct g_part_table *, struct g_part_parms *);
-static int g_part_bsd_dumpconf(struct g_part_table *, struct g_part_entry *,
+static void g_part_bsd_dumpconf(struct g_part_table *, struct g_part_entry *,
     struct sbuf *, const char *);
 static int g_part_bsd_dumpto(struct g_part_table *, struct g_part_entry *);
 static int g_part_bsd_modify(struct g_part_table *, struct g_part_entry *,  
     struct g_part_parms *);
-static char *g_part_bsd_name(struct g_part_table *, struct g_part_entry *,
+static const char *g_part_bsd_name(struct g_part_table *, struct g_part_entry *,
     char *, size_t);
 static int g_part_bsd_probe(struct g_part_table *, struct g_consumer *);
 static int g_part_bsd_read(struct g_part_table *, struct g_consumer *);
@@ -75,6 +76,7 @@ static int g_part_bsd_write(struct g_par
 
 static kobj_method_t g_part_bsd_methods[] = {
 	KOBJMETHOD(g_part_add,		g_part_bsd_add),
+	KOBJMETHOD(g_part_bootcode,	g_part_bsd_bootcode),
 	KOBJMETHOD(g_part_create,	g_part_bsd_create),
 	KOBJMETHOD(g_part_destroy,	g_part_bsd_destroy),
 	KOBJMETHOD(g_part_dumpconf,	g_part_bsd_dumpconf),
@@ -95,6 +97,7 @@ static struct g_part_scheme g_part_bsd_s
 	.gps_entrysz = sizeof(struct g_part_bsd_entry),
 	.gps_minent = 8,
 	.gps_maxent = 20,
+	.gps_bootcodesz = BBSIZE,
 };
 G_PART_SCHEME_DECLARE(g_part_bsd);
 
@@ -157,6 +160,30 @@ g_part_bsd_add(struct g_part_table *base
 }
 
 static int
+g_part_bsd_bootcode(struct g_part_table *basetable, struct g_part_parms *gpp)
+{
+	struct g_part_bsd_table *table;
+	const u_char *codeptr;
+	size_t hdsz, tlsz;
+	size_t codesz, tlofs;
+
+	hdsz = 512;
+	tlofs = hdsz + 148 + basetable->gpt_entries * 16;
+	tlsz = BBSIZE - tlofs;
+	table = (struct g_part_bsd_table *)basetable;
+	bzero(table->bbarea, hdsz);
+	bzero(table->bbarea + tlofs, tlsz);
+	codeptr = gpp->gpp_codeptr;
+	codesz = MIN(hdsz, gpp->gpp_codesize);
+	if (codesz > 0)
+		bcopy(codeptr, table->bbarea, codesz);
+	codesz = MIN(tlsz, gpp->gpp_codesize - tlofs);
+	if (codesz > 0)
+		bcopy(codeptr + tlofs, table->bbarea + tlofs, codesz);
+	return (0);
+}
+
+static int
 g_part_bsd_create(struct g_part_table *basetable, struct g_part_parms *gpp)
 {
 	struct g_consumer *cp;
@@ -173,13 +200,16 @@ g_part_bsd_create(struct g_part_table *b
 
 	if (pp->sectorsize < sizeof(struct disklabel))
 		return (ENOSPC);
+	if (BBSIZE % pp->sectorsize)
+		return (ENOTBLK);
 
 	msize = pp->mediasize / pp->sectorsize;
 	secpercyl = basetable->gpt_sectors * basetable->gpt_heads;
 	ncyls = msize / secpercyl;
 
 	table = (struct g_part_bsd_table *)basetable;
-	ptr = table->label = g_malloc(pp->sectorsize, M_WAITOK | M_ZERO);
+	table->bbarea = g_malloc(BBSIZE, M_WAITOK | M_ZERO);
+	ptr = table->bbarea + pp->sectorsize;
 
 	le32enc(ptr + 0, DISKMAGIC);			/* d_magic */
 	le32enc(ptr + 40, pp->sectorsize);		/* d_secsize */
@@ -216,7 +246,7 @@ g_part_bsd_destroy(struct g_part_table *
 	return (0);
 }
 
-static int
+static void
 g_part_bsd_dumpconf(struct g_part_table *table, struct g_part_entry *baseentry, 
     struct sbuf *sb, const char *indent)
 {
@@ -233,7 +263,6 @@ g_part_bsd_dumpconf(struct g_part_table 
 	} else {
 		/* confxml: scheme information */
 	}
-	return (0);
 }
 
 static int
@@ -241,9 +270,10 @@ g_part_bsd_dumpto(struct g_part_table *t
 {
 	struct g_part_bsd_entry *entry;
 
-	/* Allow dumping to a swap partition only. */
+	/* Allow dumping to a swap partition or an unused partition. */
 	entry = (struct g_part_bsd_entry *)baseentry;
-	return ((entry->part.p_fstype == FS_SWAP) ? 1 : 0);
+	return ((entry->part.p_fstype == FS_UNUSED ||
+	    entry->part.p_fstype == FS_SWAP) ? 1 : 0);
 }
 
 static int
@@ -261,7 +291,7 @@ g_part_bsd_modify(struct g_part_table *b
 	return (0);
 }
 
-static char *
+static const char *
 g_part_bsd_name(struct g_part_table *table, struct g_part_entry *baseentry,
     char *buf, size_t bufsz)
 {
@@ -284,6 +314,8 @@ g_part_bsd_probe(struct g_part_table *ta
 	if (pp->sectorsize < sizeof(struct disklabel) ||
 	    pp->mediasize < BBSIZE)
 		return (ENOSPC);
+	if (BBSIZE % pp->sectorsize)
+		return (ENOTBLK);
 
 	/* Check that there's a disklabel. */
 	buf = g_read_data(cp, pp->sectorsize, pp->sectorsize, &error);
@@ -313,16 +345,16 @@ g_part_bsd_read(struct g_part_table *bas
 	table = (struct g_part_bsd_table *)basetable;
 	msize = pp->mediasize / pp->sectorsize;
 
-	buf = g_read_data(cp, pp->sectorsize, pp->sectorsize, &error);
-	if (buf == NULL)
+	table->bbarea = g_read_data(cp, 0, BBSIZE, &error);
+	if (table->bbarea == NULL)
 		return (error);
 
-	table->label = buf;
+	buf = table->bbarea + pp->sectorsize;
 
 	if (le32dec(buf + 40) != pp->sectorsize)
 		goto invalid_label;
 	sectors = le32dec(buf + 44);
-	if (sectors < 1 || sectors > 63)
+	if (sectors < 1 || sectors > 255)
 		goto invalid_label;
 	if (sectors != basetable->gpt_sectors && !basetable->gpt_fixgeom) {
 		g_part_geometry_heads(msize, sectors, &chs, &heads);
@@ -341,8 +373,13 @@ g_part_bsd_read(struct g_part_table *bas
 		printf("GEOM: %s: geometry does not match label.\n", pp->name);
 
 	chs = le32dec(buf + 60);
-	if (chs < 1 || chs > msize)
+	if (chs < 1)
 		goto invalid_label;
+	/* Fix-up a sysinstall bug. */
+	if (chs > msize) {
+		chs = msize;
+		le32enc(buf + 60, msize);
+	}
 	if (chs != msize)
 		printf("GEOM: %s: media size does not match label.\n",
 		    pp->name);
@@ -367,8 +404,6 @@ g_part_bsd_read(struct g_part_table *bas
 		part.p_cpg = le16dec(p + 14);
 		if (part.p_size == 0)
 			continue;
-		if (part.p_fstype == FS_UNUSED && index != RAW_PART)
-			continue;
 		if (part.p_offset < table->offset)
 			continue;
 		baseentry = g_part_new_entry(basetable, index + 1,
@@ -376,7 +411,7 @@ g_part_bsd_read(struct g_part_table *bas
 		    part.p_offset - table->offset + part.p_size - 1);
 		entry = (struct g_part_bsd_entry *)baseentry;
 		entry->part = part;
-		if (part.p_fstype == FS_UNUSED)
+		if (index == RAW_PART)
 			baseentry->gpe_internal = 1;
 	}
 
@@ -384,7 +419,7 @@ g_part_bsd_read(struct g_part_table *bas
 
  invalid_label:
 	printf("GEOM: %s: invalid disklabel.\n", pp->name);
-	g_free(table->label);
+	g_free(table->bbarea);
 	return (EINVAL);
 }
 
@@ -417,14 +452,15 @@ g_part_bsd_write(struct g_part_table *ba
 	struct g_part_bsd_entry *entry;
 	struct g_part_bsd_table *table;
 	uint16_t sum;
-	u_char *p, *pe;
+	u_char *label, *p, *pe;
 	int error, index;
 
 	pp = cp->provider;
 	table = (struct g_part_bsd_table *)basetable;
 	baseentry = LIST_FIRST(&basetable->gpt_entry);
+	label = table->bbarea + pp->sectorsize;
 	for (index = 1; index <= basetable->gpt_entries; index++) {
-		p = table->label + 148 + (index - 1) * 16;
+		p = label + 148 + (index - 1) * 16;
 		entry = (baseentry != NULL && index == baseentry->gpe_index)
 		    ? (struct g_part_bsd_entry *)baseentry : NULL;
 		if (entry != NULL && !baseentry->gpe_deleted) {
@@ -442,13 +478,13 @@ g_part_bsd_write(struct g_part_table *ba
 	}
 
 	/* Calculate checksum. */
-	le16enc(table->label + 136, 0);
-	pe = table->label + 148 + basetable->gpt_entries * 16;
+	le16enc(label + 136, 0);
+	pe = label + 148 + basetable->gpt_entries * 16;
 	sum = 0;
-	for (p = table->label; p < pe; p += 2)
+	for (p = label; p < pe; p += 2)
 		sum ^= le16dec(p);
-	le16enc(table->label + 136, sum);
+	le16enc(label + 136, sum);
 
-	error = g_write_data(cp, pp->sectorsize, table->label, pp->sectorsize);
+	error = g_write_data(cp, 0, table->bbarea, BBSIZE);
 	return (error);
 }

Copied and modified: stable/7/sys/geom/part/g_part_ebr.c (from r188354, head/sys/geom/part/g_part_ebr.c)
==============================================================================
--- head/sys/geom/part/g_part_ebr.c	Sun Feb  8 23:51:44 2009	(r188354, copy source)
+++ stable/7/sys/geom/part/g_part_ebr.c	Tue Mar 17 19:38:40 2009	(r189935)
@@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -55,12 +54,15 @@ struct g_part_ebr_table {
 struct g_part_ebr_entry {
 	struct g_part_entry	base;
 	struct dos_partition	ent;
+	int	alias;
 };
 
 static int g_part_ebr_add(struct g_part_table *, struct g_part_entry *,
     struct g_part_parms *);
 static int g_part_ebr_create(struct g_part_table *, struct g_part_parms *);
 static int g_part_ebr_destroy(struct g_part_table *, struct g_part_parms *);
+static int g_part_ebr_devalias(struct g_part_table *, struct g_part_entry *,
+    char *, size_t);
 static void g_part_ebr_dumpconf(struct g_part_table *, struct g_part_entry *,
     struct sbuf *, const char *);
 static int g_part_ebr_dumpto(struct g_part_table *, struct g_part_entry *);
@@ -68,6 +70,8 @@ static int g_part_ebr_modify(struct g_pa
     struct g_part_parms *);
 static const char *g_part_ebr_name(struct g_part_table *, struct g_part_entry *,
     char *, size_t);
+static int g_part_ebr_precheck(struct g_part_table *, enum g_part_ctl,
+    struct g_part_parms *);
 static int g_part_ebr_probe(struct g_part_table *, struct g_consumer *);
 static int g_part_ebr_read(struct g_part_table *, struct g_consumer *);
 static int g_part_ebr_setunset(struct g_part_table *, struct g_part_entry *,
@@ -80,10 +84,12 @@ static kobj_method_t g_part_ebr_methods[
 	KOBJMETHOD(g_part_add,		g_part_ebr_add),
 	KOBJMETHOD(g_part_create,	g_part_ebr_create),
 	KOBJMETHOD(g_part_destroy,	g_part_ebr_destroy),
+	KOBJMETHOD(g_part_devalias,	g_part_ebr_devalias),
 	KOBJMETHOD(g_part_dumpconf,	g_part_ebr_dumpconf),
 	KOBJMETHOD(g_part_dumpto,	g_part_ebr_dumpto),
 	KOBJMETHOD(g_part_modify,	g_part_ebr_modify),
 	KOBJMETHOD(g_part_name,		g_part_ebr_name),
+	KOBJMETHOD(g_part_precheck,	g_part_ebr_precheck),
 	KOBJMETHOD(g_part_probe,	g_part_ebr_probe),
 	KOBJMETHOD(g_part_read,		g_part_ebr_read),
 	KOBJMETHOD(g_part_setunset,	g_part_ebr_setunset),
@@ -102,6 +108,9 @@ static struct g_part_scheme g_part_ebr_s
 };
 G_PART_SCHEME_DECLARE(g_part_ebr);
 
+static void ebr_set_chs(struct g_part_table *, uint32_t, u_char *, u_char *,
+    u_char *);
+
 static void
 ebr_entry_decode(const char *p, struct dos_partition *ent)
 {
@@ -117,19 +126,142 @@ ebr_entry_decode(const char *p, struct d
 	ent->dp_size = le32dec(p + 12);
 }
 
+static void
+ebr_entry_link(struct g_part_table *table, uint32_t start, uint32_t end,
+   u_char *buf)
+{
+
+	buf[0] = 0 /* dp_flag */;
+	ebr_set_chs(table, start, &buf[3] /* dp_scyl */, &buf[1] /* dp_shd */,
+	    &buf[2] /* dp_ssect */);
+	buf[4] = 5 /* dp_typ */;
+	ebr_set_chs(table, end, &buf[7] /* dp_ecyl */, &buf[5] /* dp_ehd */,
+	    &buf[6] /* dp_esect */);
+	le32enc(buf + 8, start);
+	le32enc(buf + 12, end - start + 1);
+}
+
+static int
+ebr_parse_type(const char *type, u_char *dp_typ)
+{
+	const char *alias;
+	char *endp;
+	long lt;
+
+	if (type[0] == '!') {
+		lt = strtol(type + 1, &endp, 0);
+		if (type[1] == '\0' || *endp != '\0' || lt <= 0 || lt >= 256)
+			return (EINVAL);
+		*dp_typ = (u_char)lt;
+		return (0);
+	}
+	alias = g_part_alias_name(G_PART_ALIAS_FREEBSD);
+	if (!strcasecmp(type, alias)) {
+		*dp_typ = DOSPTYP_386BSD;
+		return (0);
+	}
+	return (EINVAL);
+}
+
+static void
+ebr_set_chs(struct g_part_table *table, uint32_t lba, u_char *cylp, u_char *hdp,
+    u_char *secp)
+{
+	uint32_t cyl, hd, sec;
+
+	sec = lba % table->gpt_sectors + 1;
+	lba /= table->gpt_sectors;
+	hd = lba % table->gpt_heads;
+	lba /= table->gpt_heads;
+	cyl = lba;
+	if (cyl > 1023)
+		sec = hd = cyl = ~0;
+
+	*cylp = cyl & 0xff;
+	*hdp = hd & 0xff;
+	*secp = (sec & 0x3f) | ((cyl >> 2) & 0xc0);
+}
+
 static int
 g_part_ebr_add(struct g_part_table *basetable, struct g_part_entry *baseentry,
     struct g_part_parms *gpp)
 {
+	struct g_geom *gp;
+	struct g_provider *pp;
+	struct g_part_ebr_entry *entry;
+	uint32_t start, size, sectors;
 
-	return (ENOSYS);
+	if (gpp->gpp_parms & G_PART_PARM_LABEL)
+		return (EINVAL);
+
+	gp = basetable->gpt_gp;
+	pp = LIST_FIRST(&gp->consumer)->provider;
+	sectors = basetable->gpt_sectors;
+
+	entry = (struct g_part_ebr_entry *)baseentry;
+
+	start = gpp->gpp_start;
+	size = gpp->gpp_size;
+	if (size < 2 * sectors)
+		return (EINVAL);
+	if (start % sectors) {
+		size = size - sectors + (start % sectors);
+		start = start - (start % sectors) + sectors;
+	}
+	if (size % sectors)
+		size = size - (size % sectors);
+	if (size < 2 * sectors)
+		return (EINVAL);
+
+	if (baseentry->gpe_deleted)
+		bzero(&entry->ent, sizeof(entry->ent));
+
+	KASSERT(baseentry->gpe_start <= start, (__func__));
+	KASSERT(baseentry->gpe_end >= start + size - 1, (__func__));
+	baseentry->gpe_index = (start / sectors) + 1;
+	baseentry->gpe_offset = (off_t)(start + sectors) * pp->sectorsize;
+	baseentry->gpe_start = start;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 19:51:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9BE941065670;
	Tue, 17 Mar 2009 19:51:04 +0000 (UTC)
	(envelope-from dwmalone@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6F51C8FC15;
	Tue, 17 Mar 2009 19:51:04 +0000 (UTC)
	(envelope-from dwmalone@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HJp4gn004810;
	Tue, 17 Mar 2009 19:51:04 GMT
	(envelope-from dwmalone@svn.freebsd.org)
Received: (from dwmalone@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HJp4ER004808;
	Tue, 17 Mar 2009 19:51:04 GMT
	(envelope-from dwmalone@svn.freebsd.org)
Message-Id: <200903171951.n2HJp4ER004808@svn.freebsd.org>
From: David Malone 
Date: Tue, 17 Mar 2009 19:51:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189936 - head/release/picobsd/tinyware/simple_httpd
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 19:51:05 -0000

Author: dwmalone
Date: Tue Mar 17 19:51:04 2009
New Revision: 189936
URL: http://svn.freebsd.org/changeset/base/189936

Log:
  Warns fixes: use putenv rather than setenv to avoid constness problems,
  when we want to print an off_t cast to intmax_t and use %jd.
  
  Up WARNS to 6.

Modified:
  head/release/picobsd/tinyware/simple_httpd/Makefile
  head/release/picobsd/tinyware/simple_httpd/simple_httpd.c

Modified: head/release/picobsd/tinyware/simple_httpd/Makefile
==============================================================================
--- head/release/picobsd/tinyware/simple_httpd/Makefile	Tue Mar 17 19:38:40 2009	(r189935)
+++ head/release/picobsd/tinyware/simple_httpd/Makefile	Tue Mar 17 19:51:04 2009	(r189936)
@@ -3,5 +3,6 @@
 PROG=simple_httpd
 SRCS= 	simple_httpd.c
 NO_MAN=
+WARNS?=6
 
 .include 

Modified: head/release/picobsd/tinyware/simple_httpd/simple_httpd.c
==============================================================================
--- head/release/picobsd/tinyware/simple_httpd/simple_httpd.c	Tue Mar 17 19:38:40 2009	(r189935)
+++ head/release/picobsd/tinyware/simple_httpd/simple_httpd.c	Tue Mar 17 19:51:04 2009	(r189936)
@@ -42,6 +42,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -278,7 +279,7 @@ http_request(void)
                /*printf("HTTP/1.0 200 OK\nContent-type: text/html\n\n\n");*/
 	       printf("HTTP/1.0 200 OK\r\n");
                /* Plug in environment variable, others in log_line */
-	       putenv("SERVER_SOFTWARE=FreeBSD/PicoBSD");
+	       setenv("SERVER_SOFTWARE", "FreeBSD/PicoBSD", 1);
 
 	       execlp (filename,filename,par,(char *)0);
               } 
@@ -331,7 +332,7 @@ http_request(void)
 	http_output(httpd_server_ident);
 	http_date();
 
-	sprintf(buff, "Content-length: %lld\r\n", file_status.st_size);
+	sprintf(buff, "Content-length: %jd\r\n", (intmax_t)file_status.st_size);
 	write(con_sock, buff, strlen(buff));
 
 	strcpy(buff, "Content-type: ");

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 20:59:46 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 296A5106568B;
	Tue, 17 Mar 2009 20:59:46 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 15C008FC19;
	Tue, 17 Mar 2009 20:59:46 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HKxjFd006197;
	Tue, 17 Mar 2009 20:59:45 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HKxjMf006194;
	Tue, 17 Mar 2009 20:59:45 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903172059.n2HKxjMf006194@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Tue, 17 Mar 2009 20:59:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189938 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 20:59:47 -0000

Author: bz
Date: Tue Mar 17 20:59:45 2009
New Revision: 189938
URL: http://svn.freebsd.org/changeset/base/189938

Log:
  MFC r183001:
    Implement IPv6 support for TCP MD5 Signature Option (RFC 2385)
    the same way it has been implemented for IPv4.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/netinet/tcp_output.c
  stable/7/sys/netinet/tcp_subr.c
  stable/7/sys/netinet/tcp_syncache.c

Modified: stable/7/sys/netinet/tcp_output.c
==============================================================================
--- stable/7/sys/netinet/tcp_output.c	Tue Mar 17 19:57:11 2009	(r189937)
+++ stable/7/sys/netinet/tcp_output.c	Tue Mar 17 20:59:45 2009	(r189938)
@@ -681,11 +681,7 @@ send:
 		}
 #ifdef TCP_SIGNATURE
 		/* TCP-MD5 (RFC2385). */
-#ifdef INET6
-		if (!isipv6 && (tp->t_flags & TF_SIGNATURE))
-#else
 		if (tp->t_flags & TF_SIGNATURE)
-#endif /* INET6 */
 			to.to_flags |= TOF_SIGNATURE;
 #endif /* TCP_SIGNATURE */
 
@@ -954,12 +950,9 @@ send:
 		tp->snd_up = tp->snd_una;		/* drag it along */
 
 #ifdef TCP_SIGNATURE
-#ifdef INET6
-	if (!isipv6)
-#endif
 	if (tp->t_flags & TF_SIGNATURE) {
 		int sigoff = to.to_signature - opt;
-		tcp_signature_compute(m, sizeof(struct ip), len, optlen,
+		tcp_signature_compute(m, 0, len, optlen,
 		    (u_char *)(th + 1) + sigoff, IPSEC_DIR_OUTBOUND);
 	}
 #endif

Modified: stable/7/sys/netinet/tcp_subr.c
==============================================================================
--- stable/7/sys/netinet/tcp_subr.c	Tue Mar 17 19:57:11 2009	(r189937)
+++ stable/7/sys/netinet/tcp_subr.c	Tue Mar 17 20:59:45 2009	(r189938)
@@ -102,6 +102,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #endif
 #include 
+#include 
 #endif /*IPSEC*/
 
 #include 
@@ -1852,11 +1853,11 @@ tcp_signature_apply(void *fstate, void *
 }
 
 /*
- * Compute TCP-MD5 hash of a TCPv4 segment. (RFC2385)
+ * Compute TCP-MD5 hash of a TCP segment. (RFC2385)
  *
  * Parameters:
  * m		pointer to head of mbuf chain
- * off0		offset to TCP header within the mbuf chain
+ * _unused	
  * len		length of TCP segment data, excluding options
  * optlen	length of TCP segment options
  * buf		pointer to storage for computed MD5 digest
@@ -1866,9 +1867,6 @@ tcp_signature_apply(void *fstate, void *
  * When called from tcp_input(), we can be sure that th_sum has been
  * zeroed out and verified already.
  *
- * This function is for IPv4 use only. Calling this function with an
- * IPv6 packet in the mbuf chain will yield undefined results.
- *
  * Return 0 if successful, otherwise return -1.
  *
  * XXX The key is retrieved from the system's PF_KEY SADB, by keying a
@@ -1878,7 +1876,7 @@ tcp_signature_apply(void *fstate, void *
  * specify per-application flows but it is unstable.
  */
 int
-tcp_signature_compute(struct mbuf *m, int off0, int len, int optlen,
+tcp_signature_compute(struct mbuf *m, int _unused, int len, int optlen,
     u_char *buf, u_int direction)
 {
 	union sockaddr_union dst;
@@ -1889,34 +1887,62 @@ tcp_signature_compute(struct mbuf *m, in
 	struct ipovly *ipovly;
 	struct secasvar *sav;
 	struct tcphdr *th;
+#ifdef INET6
+	struct ip6_hdr *ip6;
+	struct in6_addr in6;
+	char ip6buf[INET6_ADDRSTRLEN];
+	uint32_t plen;
+	uint16_t nhdr;
+#endif
 	u_short savecsum;
 
 	KASSERT(m != NULL, ("NULL mbuf chain"));
 	KASSERT(buf != NULL, ("NULL signature pointer"));
 
 	/* Extract the destination from the IP header in the mbuf. */
-	ip = mtod(m, struct ip *);
 	bzero(&dst, sizeof(union sockaddr_union));
-	dst.sa.sa_len = sizeof(struct sockaddr_in);
-	dst.sa.sa_family = AF_INET;
-	dst.sin.sin_addr = (direction == IPSEC_DIR_INBOUND) ?
-	    ip->ip_src : ip->ip_dst;
+	ip = mtod(m, struct ip *);
+#ifdef INET6
+	ip6 = NULL;	/* Make the compiler happy. */
+#endif
+	switch (ip->ip_v) {
+	case IPVERSION:
+		dst.sa.sa_len = sizeof(struct sockaddr_in);
+		dst.sa.sa_family = AF_INET;
+		dst.sin.sin_addr = (direction == IPSEC_DIR_INBOUND) ?
+		    ip->ip_src : ip->ip_dst;
+		break;
+#ifdef INET6
+	case (IPV6_VERSION >> 4):
+		ip6 = mtod(m, struct ip6_hdr *);
+		dst.sa.sa_len = sizeof(struct sockaddr_in6);
+		dst.sa.sa_family = AF_INET6;
+		dst.sin6.sin6_addr = (direction == IPSEC_DIR_INBOUND) ?
+		    ip6->ip6_src : ip6->ip6_dst;
+		break;
+#endif
+	default:
+		return (EINVAL);
+		/* NOTREACHED */
+		break;
+	}
 
 	/* Look up an SADB entry which matches the address of the peer. */
 	sav = KEY_ALLOCSA(&dst, IPPROTO_TCP, htonl(TCP_SIG_SPI));
 	if (sav == NULL) {
-		printf("%s: SADB lookup failed for %s\n", __func__,
-		    inet_ntoa(dst.sin.sin_addr));
+		ipseclog((LOG_ERR, "%s: SADB lookup failed for %s\n", __func__,
+		    (ip->ip_v == IPVERSION) ? inet_ntoa(dst.sin.sin_addr) :
+#ifdef INET6
+			(ip->ip_v == (IPV6_VERSION >> 4)) ?
+			    ip6_sprintf(ip6buf, &dst.sin6.sin6_addr) :
+#endif
+			"(unsupported)"));
 		return (EINVAL);
 	}
 
 	MD5Init(&ctx);
-	ipovly = (struct ipovly *)ip;
-	th = (struct tcphdr *)((u_char *)ip + off0);
-	doff = off0 + sizeof(struct tcphdr) + optlen;
-
 	/*
-	 * Step 1: Update MD5 hash with IP pseudo-header.
+	 * Step 1: Update MD5 hash with IP(v6) pseudo-header.
 	 *
 	 * XXX The ippseudo header MUST be digested in network byte order,
 	 * or else we'll fail the regression test. Assume all fields we've
@@ -1924,12 +1950,55 @@ tcp_signature_compute(struct mbuf *m, in
 	 * XXX One cannot depend on ipovly->ih_len here. When called from
 	 * tcp_output(), the underlying ip_len member has not yet been set.
 	 */
-	ippseudo.ippseudo_src = ipovly->ih_src;
-	ippseudo.ippseudo_dst = ipovly->ih_dst;
-	ippseudo.ippseudo_pad = 0;
-	ippseudo.ippseudo_p = IPPROTO_TCP;
-	ippseudo.ippseudo_len = htons(len + sizeof(struct tcphdr) + optlen);
-	MD5Update(&ctx, (char *)&ippseudo, sizeof(struct ippseudo));
+	switch (ip->ip_v) {
+	case IPVERSION:
+		ipovly = (struct ipovly *)ip;
+		ippseudo.ippseudo_src = ipovly->ih_src;
+		ippseudo.ippseudo_dst = ipovly->ih_dst;
+		ippseudo.ippseudo_pad = 0;
+		ippseudo.ippseudo_p = IPPROTO_TCP;
+		ippseudo.ippseudo_len = htons(len + sizeof(struct tcphdr) +
+		    optlen);
+		MD5Update(&ctx, (char *)&ippseudo, sizeof(struct ippseudo));
+
+		th = (struct tcphdr *)((u_char *)ip + sizeof(struct ip));
+		doff = sizeof(struct ip) + sizeof(struct tcphdr) + optlen;
+		break;
+#ifdef INET6
+	/*
+	 * RFC 2385, 2.0  Proposal
+	 * For IPv6, the pseudo-header is as described in RFC 2460, namely the
+	 * 128-bit source IPv6 address, 128-bit destination IPv6 address, zero-
+	 * extended next header value (to form 32 bits), and 32-bit segment
+	 * length.
+	 * Note: Upper-Layer Packet Length comes before Next Header.
+	 */
+	case (IPV6_VERSION >> 4):
+		in6 = ip6->ip6_src;
+		in6_clearscope(&in6);
+		MD5Update(&ctx, (char *)&in6, sizeof(struct in6_addr));
+		in6 = ip6->ip6_dst;
+		in6_clearscope(&in6);
+		MD5Update(&ctx, (char *)&in6, sizeof(struct in6_addr));
+		plen = htonl(len + sizeof(struct tcphdr) + optlen);
+		MD5Update(&ctx, (char *)&plen, sizeof(uint32_t));
+		nhdr = 0;
+		MD5Update(&ctx, (char *)&nhdr, sizeof(uint8_t));
+		MD5Update(&ctx, (char *)&nhdr, sizeof(uint8_t));
+		MD5Update(&ctx, (char *)&nhdr, sizeof(uint8_t));
+		nhdr = IPPROTO_TCP;
+		MD5Update(&ctx, (char *)&nhdr, sizeof(uint8_t));
+
+		th = (struct tcphdr *)((u_char *)ip6 + sizeof(struct ip6_hdr));
+		doff = sizeof(struct ip6_hdr) + sizeof(struct tcphdr) + optlen;
+		break;
+#endif
+	default:
+		return (EINVAL);
+		/* NOTREACHED */
+		break;
+	}
+
 
 	/*
 	 * Step 2: Update MD5 hash with TCP header, excluding options.

Modified: stable/7/sys/netinet/tcp_syncache.c
==============================================================================
--- stable/7/sys/netinet/tcp_syncache.c	Tue Mar 17 19:57:11 2009	(r189937)
+++ stable/7/sys/netinet/tcp_syncache.c	Tue Mar 17 20:59:45 2009	(r189938)
@@ -1425,7 +1425,7 @@ syncache_respond(struct syncache *sc)
 
 #ifdef TCP_SIGNATURE
 		if (sc->sc_flags & SCF_SIGNATURE)
-			tcp_signature_compute(m, sizeof(struct ip), 0, optlen,
+			tcp_signature_compute(m, 0, 0, optlen,
 			    to.to_signature, IPSEC_DIR_OUTBOUND);
 #endif
 #ifdef INET6

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 21:20:40 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3022A10656C4;
	Tue, 17 Mar 2009 21:20:40 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1765A8FC18;
	Tue, 17 Mar 2009 21:20:40 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HLKdND006652;
	Tue, 17 Mar 2009 21:20:39 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HLKdo7006651;
	Tue, 17 Mar 2009 21:20:39 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200903172120.n2HLKdo7006651@svn.freebsd.org>
From: Xin LI 
Date: Tue, 17 Mar 2009 21:20:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189939 - head/lib/libusb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 21:20:40 -0000

Author: delphij
Date: Tue Mar 17 21:20:39 2009
New Revision: 189939
URL: http://svn.freebsd.org/changeset/base/189939

Log:
  Add prototypes for libusb20_be_[gs]et_template.

Modified:
  head/lib/libusb/libusb20.h

Modified: head/lib/libusb/libusb20.h
==============================================================================
--- head/lib/libusb/libusb20.h	Tue Mar 17 20:59:45 2009	(r189938)
+++ head/lib/libusb/libusb20.h	Tue Mar 17 21:20:39 2009	(r189939)
@@ -274,6 +274,8 @@ int	libusb20_be_get_dev_quirk(struct lib
 int	libusb20_be_get_quirk_name(struct libusb20_backend *pbe, uint16_t index, struct libusb20_quirk *pq);
 int	libusb20_be_add_dev_quirk(struct libusb20_backend *pbe, struct libusb20_quirk *pq);
 int	libusb20_be_remove_dev_quirk(struct libusb20_backend *pbe, struct libusb20_quirk *pq);
+int	libusb20_be_get_template(struct libusb20_backend *pbe, int *ptemp);
+int	libusb20_be_set_template(struct libusb20_backend *pbe, int temp);
 
 /* USB backend operations */
 

From owner-svn-src-all@FreeBSD.ORG  Tue Mar 17 21:21:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 55C5710656D5;
	Tue, 17 Mar 2009 21:21:34 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 447408FC22;
	Tue, 17 Mar 2009 21:21:34 +0000 (UTC)
	(envelope-from delphij@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2HLLYSV006707;
	Tue, 17 Mar 2009 21:21:34 GMT (envelope-from delphij@svn.freebsd.org)
Received: (from delphij@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2HLLYKu006706;
	Tue, 17 Mar 2009 21:21:34 GMT (envelope-from delphij@svn.freebsd.org)
Message-Id: <200903172121.n2HLLYKu006706@svn.freebsd.org>
From: Xin LI 
Date: Tue, 17 Mar 2009 21:21:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189940 - head/usr.sbin/usbconfig
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Tue, 17 Mar 2009 21:21:35 -0000

Author: delphij
Date: Tue Mar 17 21:21:33 2009
New Revision: 189940
URL: http://svn.freebsd.org/changeset/base/189940

Log:
  Remove unused local.  usbconfig(8) can now compile under
  WARNS=6.

Modified:
  head/usr.sbin/usbconfig/usbconfig.c

Modified: head/usr.sbin/usbconfig/usbconfig.c
==============================================================================
--- head/usr.sbin/usbconfig/usbconfig.c	Tue Mar 17 21:20:39 2009	(r189939)
+++ head/usr.sbin/usbconfig/usbconfig.c	Tue Mar 17 21:21:33 2009	(r189940)
@@ -501,7 +501,6 @@ main(int argc, char **argv)
 {
 	struct libusb20_backend *pbe;
 	struct options *opt = &options;
-	char *cp;
 	int n;
 	int t;
 

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 01:57:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7D3AC1065677;
	Wed, 18 Mar 2009 01:57:27 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5D86A8FC14;
	Wed, 18 Mar 2009 01:57:27 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I1vR0b011728;
	Wed, 18 Mar 2009 01:57:27 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I1vRkO011727;
	Wed, 18 Mar 2009 01:57:27 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180157.n2I1vRkO011727@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 01:57:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189941 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 01:57:28 -0000

Author: yongari
Date: Wed Mar 18 01:57:26 2009
New Revision: 189941
URL: http://svn.freebsd.org/changeset/base/189941

Log:
  MFC r187481:
    - Do not read and write RX configuration register multiple times.
    - Always program RX configuration register from scratch instead of
    doing read/modify/write.
    - Rename re_setmulti() to re_set_rxmode() to be reflect reality.
    - Simplify hash filter logic a little while I am here.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Tue Mar 17 21:21:33 2009	(r189940)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 01:57:26 2009	(r189941)
@@ -266,7 +266,7 @@ static int re_miibus_readreg	(device_t, 
 static int re_miibus_writereg	(device_t, int, int, int);
 static void re_miibus_statchg	(device_t);
 
-static void re_setmulti		(struct rl_softc *);
+static void re_set_rxmode		(struct rl_softc *);
 static void re_reset		(struct rl_softc *);
 static void re_setwol		(struct rl_softc *);
 static void re_clrwol		(struct rl_softc *);
@@ -607,26 +607,23 @@ re_miibus_statchg(device_t dev)
 }
 
 /*
- * Program the 64-bit multicast hash filter.
+ * Set the RX configuration and 64-bit multicast hash filter.
  */
 static void
-re_setmulti(struct rl_softc *sc)
+re_set_rxmode(struct rl_softc *sc)
 {
 	struct ifnet		*ifp;
-	int			h = 0;
-	u_int32_t		hashes[2] = { 0, 0 };
 	struct ifmultiaddr	*ifma;
-	u_int32_t		rxfilt;
-	int			mcnt = 0;
+	uint32_t		hashes[2] = { 0, 0 };
+	uint32_t		h, rxfilt;
 
 	RL_LOCK_ASSERT(sc);
 
 	ifp = sc->rl_ifp;
 
+	rxfilt = RL_RXCFG_CONFIG | RL_RXCFG_RX_INDIV | RL_RXCFG_RX_BROAD;
 
-	rxfilt = CSR_READ_4(sc, RL_RXCFG);
-	rxfilt &= ~(RL_RXCFG_RX_ALLPHYS | RL_RXCFG_RX_MULTI);
-	if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+	if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
 		if (ifp->if_flags & IFF_PROMISC)
 			rxfilt |= RL_RXCFG_RX_ALLPHYS;
 		/*
@@ -635,17 +632,10 @@ re_setmulti(struct rl_softc *sc)
 		 * promiscuous mode.
 		 */
 		rxfilt |= RL_RXCFG_RX_MULTI;
-		CSR_WRITE_4(sc, RL_RXCFG, rxfilt);
-		CSR_WRITE_4(sc, RL_MAR0, 0xFFFFFFFF);
-		CSR_WRITE_4(sc, RL_MAR4, 0xFFFFFFFF);
-		return;
+		hashes[0] = hashes[1] = 0xffffffff;
+		goto done;
 	}
 
-	/* first, zot all the existing hash bits */
-	CSR_WRITE_4(sc, RL_MAR0, 0);
-	CSR_WRITE_4(sc, RL_MAR4, 0);
-
-	/* now program new ones */
 	IF_ADDR_LOCK(ifp);
 	TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
 		if (ifma->ifma_addr->sa_family != AF_LINK)
@@ -656,31 +646,29 @@ re_setmulti(struct rl_softc *sc)
 			hashes[0] |= (1 << h);
 		else
 			hashes[1] |= (1 << (h - 32));
-		mcnt++;
 	}
 	IF_ADDR_UNLOCK(ifp);
 
-	if (mcnt)
+	if (hashes[0] != 0 || hashes[1] != 0) {
+		/*
+		 * For some unfathomable reason, RealTek decided to
+		 * reverse the order of the multicast hash registers
+		 * in the PCI Express parts.  This means we have to
+		 * write the hash pattern in reverse order for those
+		 * devices.
+		 */
+		if ((sc->rl_flags & RL_FLAG_INVMAR) != 0) {
+			h = bswap32(hashes[0]);
+			hashes[0] = bswap32(hashes[1]);
+			hashes[1] = h;
+		}
 		rxfilt |= RL_RXCFG_RX_MULTI;
-	else
-		rxfilt &= ~RL_RXCFG_RX_MULTI;
+	}
 
+done:
+	CSR_WRITE_4(sc, RL_MAR0, hashes[0]);
+	CSR_WRITE_4(sc, RL_MAR4, hashes[1]);
 	CSR_WRITE_4(sc, RL_RXCFG, rxfilt);
-
-	/*
-	 * For some unfathomable reason, RealTek decided to reverse
-	 * the order of the multicast hash registers in the PCI Express
-	 * parts. This means we have to write the hash pattern in reverse
-	 * order for those devices.
-	 */
-
-	if ((sc->rl_flags & RL_FLAG_INVMAR) != 0) {
-		CSR_WRITE_4(sc, RL_MAR0, bswap32(hashes[1]));
-		CSR_WRITE_4(sc, RL_MAR4, bswap32(hashes[0]));
-	} else {
-		CSR_WRITE_4(sc, RL_MAR0, hashes[0]);
-		CSR_WRITE_4(sc, RL_MAR4, hashes[1]);
-	}
 }
 
 static void
@@ -2498,7 +2486,6 @@ re_init_locked(struct rl_softc *sc)
 {
 	struct ifnet		*ifp = sc->rl_ifp;
 	struct mii_data		*mii;
-	u_int32_t		rxcfg = 0;
 	uint16_t		cfg;
 	union {
 		uint32_t align_dummy;
@@ -2583,7 +2570,7 @@ re_init_locked(struct rl_softc *sc)
 	CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB|RL_CMD_RX_ENB);
 
 	/*
-	 * Set the initial TX and RX configuration.
+	 * Set the initial TX configuration.
 	 */
 	if (sc->rl_testmode) {
 		if (sc->rl_type == RL_8169)
@@ -2597,32 +2584,10 @@ re_init_locked(struct rl_softc *sc)
 
 	CSR_WRITE_1(sc, RL_EARLY_TX_THRESH, 16);
 
-	CSR_WRITE_4(sc, RL_RXCFG, RL_RXCFG_CONFIG);
-
-	/* Set the individual bit to receive frames for this host only. */
-	rxcfg = CSR_READ_4(sc, RL_RXCFG);
-	rxcfg |= RL_RXCFG_RX_INDIV;
-
-	/* If we want promiscuous mode, set the allframes bit. */
-	if (ifp->if_flags & IFF_PROMISC)
-		rxcfg |= RL_RXCFG_RX_ALLPHYS;
-	else
-		rxcfg &= ~RL_RXCFG_RX_ALLPHYS;
-	CSR_WRITE_4(sc, RL_RXCFG, rxcfg);
-
-	/*
-	 * Set capture broadcast bit to capture broadcast frames.
-	 */
-	if (ifp->if_flags & IFF_BROADCAST)
-		rxcfg |= RL_RXCFG_RX_BROAD;
-	else
-		rxcfg &= ~RL_RXCFG_RX_BROAD;
-	CSR_WRITE_4(sc, RL_RXCFG, rxcfg);
-
 	/*
-	 * Program the multicast filter, if necessary.
+	 * Set the initial RX configuration.
 	 */
-	re_setmulti(sc);
+	re_set_rxmode(sc);
 
 #ifdef DEVICE_POLLING
 	/*
@@ -2761,7 +2726,7 @@ re_ioctl(struct ifnet *ifp, u_long comma
 			if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
 				if (((ifp->if_flags ^ sc->rl_if_flags)
 				    & (IFF_PROMISC | IFF_ALLMULTI)) != 0)
-					re_setmulti(sc);
+					re_set_rxmode(sc);
 			} else
 				re_init_locked(sc);
 		} else {
@@ -2774,7 +2739,7 @@ re_ioctl(struct ifnet *ifp, u_long comma
 	case SIOCADDMULTI:
 	case SIOCDELMULTI:
 		RL_LOCK(sc);
-		re_setmulti(sc);
+		re_set_rxmode(sc);
 		RL_UNLOCK(sc);
 		break;
 	case SIOCGIFMEDIA:

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 01:57:54 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 717FB106579A;
	Wed, 18 Mar 2009 01:57:54 +0000 (UTC)
	(envelope-from weongyo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E8838FC22;
	Wed, 18 Mar 2009 01:57:54 +0000 (UTC)
	(envelope-from weongyo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I1vskk011771;
	Wed, 18 Mar 2009 01:57:54 GMT (envelope-from weongyo@svn.freebsd.org)
Received: (from weongyo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I1vs7v011770;
	Wed, 18 Mar 2009 01:57:54 GMT (envelope-from weongyo@svn.freebsd.org)
Message-Id: <200903180157.n2I1vs7v011770@svn.freebsd.org>
From: Weongyo Jeong 
Date: Wed, 18 Mar 2009 01:57:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189942 - head/sys/compat/ndis
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 01:57:55 -0000

Author: weongyo
Date: Wed Mar 18 01:57:54 2009
New Revision: 189942
URL: http://svn.freebsd.org/changeset/base/189942

Log:
  If the caller sets irp_usriostat or irp_usrevent it try to process it
  whatever the IRP flag is because some drivers (eg. RTL8187L NDIS driver)
  call IoCompleteRequest() without setting flags.  It will prevent waiting
  a event forever at attach.

Modified:
  head/sys/compat/ndis/subr_ntoskrnl.c

Modified: head/sys/compat/ndis/subr_ntoskrnl.c
==============================================================================
--- head/sys/compat/ndis/subr_ntoskrnl.c	Wed Mar 18 01:57:26 2009	(r189941)
+++ head/sys/compat/ndis/subr_ntoskrnl.c	Wed Mar 18 01:57:54 2009	(r189942)
@@ -1197,6 +1197,11 @@ IofCompleteRequest(irp *ip, uint8_t prio
 		sl++;
 	} while (ip->irp_currentstackloc <= (ip->irp_stackcnt + 1));
 
+	if (ip->irp_usriostat != NULL)
+		*ip->irp_usriostat = ip->irp_iostat;
+	if (ip->irp_usrevent != NULL)
+		KeSetEvent(ip->irp_usrevent, prioboost, FALSE);
+
 	/* Handle any associated IRPs. */
 
 	if (ip->irp_flags & IRP_ASSOCIATED_IRP) {
@@ -1220,16 +1225,10 @@ IofCompleteRequest(irp *ip, uint8_t prio
 
 	/* With any luck, these conditions will never arise. */
 
-	if (ip->irp_flags & (IRP_PAGING_IO|IRP_CLOSE_OPERATION)) {
-		if (ip->irp_usriostat != NULL)
-			*ip->irp_usriostat = ip->irp_iostat;
-		if (ip->irp_usrevent != NULL)
-			KeSetEvent(ip->irp_usrevent, prioboost, FALSE);
-		if (ip->irp_flags & IRP_PAGING_IO) {
-			if (ip->irp_mdl != NULL)
-				IoFreeMdl(ip->irp_mdl);
-			IoFreeIrp(ip);
-		}
+	if (ip->irp_flags & IRP_PAGING_IO) {
+		if (ip->irp_mdl != NULL)
+			IoFreeMdl(ip->irp_mdl);
+		IoFreeIrp(ip);
 	}
 
 	return;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:00:24 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C709106566B;
	Wed, 18 Mar 2009 02:00:24 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 18DF38FC1B;
	Wed, 18 Mar 2009 02:00:24 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I20NVS011895;
	Wed, 18 Mar 2009 02:00:23 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I20NVT011893;
	Wed, 18 Mar 2009 02:00:23 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180200.n2I20NVT011893@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:00:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189943 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:00:24 -0000

Author: yongari
Date: Wed Mar 18 02:00:23 2009
New Revision: 189943
URL: http://svn.freebsd.org/changeset/base/189943

Log:
  MFC r187482:
    Retire RL_FLAG_INVMAR bit to match its comment and reality.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c
  stable/7/sys/pci/if_rlreg.h

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 01:57:54 2009	(r189942)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:00:23 2009	(r189943)
@@ -657,7 +657,7 @@ re_set_rxmode(struct rl_softc *sc)
 		 * write the hash pattern in reverse order for those
 		 * devices.
 		 */
-		if ((sc->rl_flags & RL_FLAG_INVMAR) != 0) {
+		if ((sc->rl_flags & RL_FLAG_PCIE) != 0) {
 			h = bswap32(hashes[0]);
 			hashes[0] = bswap32(hashes[1]);
 			hashes[1] = h;
@@ -1234,22 +1234,21 @@ re_attach(device_t dev)
 		break;
 	case RL_HWREV_8100E:
 	case RL_HWREV_8101E:
-		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_INVMAR |
-		    RL_FLAG_PHYWAKE | RL_FLAG_FASTETHER;
+		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_PHYWAKE |
+		    RL_FLAG_FASTETHER;
 		break;
 	case RL_HWREV_8102E:
 	case RL_HWREV_8102EL:
-		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_INVMAR |
-		    RL_FLAG_PHYWAKE | RL_FLAG_PAR | RL_FLAG_DESCV2 |
-		    RL_FLAG_MACSTAT | RL_FLAG_FASTETHER | RL_FLAG_CMDSTOP;
+		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_PHYWAKE |
+		    RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT |
+		    RL_FLAG_FASTETHER | RL_FLAG_CMDSTOP;
 		break;
 	case RL_HWREV_8168_SPIN1:
 	case RL_HWREV_8168_SPIN2:
 		sc->rl_flags |= RL_FLAG_WOLRXENB;
 		/* FALLTHROUGH */
 	case RL_HWREV_8168_SPIN3:
-		sc->rl_flags |= RL_FLAG_INVMAR | RL_FLAG_PHYWAKE |
-		    RL_FLAG_MACSTAT;
+		sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_MACSTAT;
 		break;
 	case RL_HWREV_8168C_SPIN2:
 		sc->rl_flags |= RL_FLAG_MACSLEEP;
@@ -1260,9 +1259,8 @@ re_attach(device_t dev)
 		/* FALLTHROUGH */
 	case RL_HWREV_8168CP:
 	case RL_HWREV_8168D:
-		sc->rl_flags |= RL_FLAG_INVMAR | RL_FLAG_PHYWAKE |
-		    RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT |
-		    RL_FLAG_CMDSTOP;
+		sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PAR |
+		    RL_FLAG_DESCV2 | RL_FLAG_MACSTAT | RL_FLAG_CMDSTOP;
 		/*
 		 * These controllers support jumbo frame but it seems
 		 * that enabling it requires touching additional magic

Modified: stable/7/sys/pci/if_rlreg.h
==============================================================================
--- stable/7/sys/pci/if_rlreg.h	Wed Mar 18 01:57:54 2009	(r189942)
+++ stable/7/sys/pci/if_rlreg.h	Wed Mar 18 02:00:23 2009	(r189943)
@@ -852,7 +852,6 @@ struct rl_softc {
 	int			rl_txstart;
 	uint32_t		rl_flags;
 #define	RL_FLAG_MSI		0x0001
-#define	RL_FLAG_INVMAR		0x0004
 #define	RL_FLAG_PHYWAKE		0x0008
 #define	RL_FLAG_NOJUMBO		0x0010
 #define	RL_FLAG_PAR		0x0020

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:03:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D07CE1065670;
	Wed, 18 Mar 2009 02:03:16 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BC1A18FC18;
	Wed, 18 Mar 2009 02:03:16 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I23Ghe012010;
	Wed, 18 Mar 2009 02:03:16 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I23G57012008;
	Wed, 18 Mar 2009 02:03:16 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180203.n2I23G57012008@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:03:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189944 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:03:17 -0000

Author: yongari
Date: Wed Mar 18 02:03:16 2009
New Revision: 189944
URL: http://svn.freebsd.org/changeset/base/189944

Log:
  MFC r187483:
    - Add support for 8110SCe part.  Some magic registers were taken from
    Linux driver.
    - Swap hardware revisions for 8110S and 8169S as Linux driver claims.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c
  stable/7/sys/pci/if_rlreg.h

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:00:23 2009	(r189943)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:03:16 2009	(r189944)
@@ -199,9 +199,10 @@ static struct rl_hwrev re_hwrevs[] = {
 	{ RL_HWREV_8169, RL_8169, "8169"},
 	{ RL_HWREV_8169S, RL_8169, "8169S"},
 	{ RL_HWREV_8110S, RL_8169, "8110S"},
-	{ RL_HWREV_8169_8110SB, RL_8169, "8169SB"},
-	{ RL_HWREV_8169_8110SC, RL_8169, "8169SC"},
-	{ RL_HWREV_8169_8110SBL, RL_8169, "8169SBL"},
+	{ RL_HWREV_8169_8110SB, RL_8169, "8169SB/8110SB"},
+	{ RL_HWREV_8169_8110SC, RL_8169, "8169SC/8110SC"},
+	{ RL_HWREV_8169_8110SBL, RL_8169, "8169SBL/8110SBL"},
+	{ RL_HWREV_8169_8110SCE, RL_8169, "8169SC/8110SC"},
 	{ RL_HWREV_8100, RL_8139, "8100"},
 	{ RL_HWREV_8101, RL_8139, "8101"},
 	{ RL_HWREV_8100E, RL_8169, "8100E"},
@@ -688,12 +689,10 @@ re_reset(struct rl_softc *sc)
 	if (i == RL_TIMEOUT)
 		device_printf(sc->rl_dev, "reset never completed!\n");
 
-	if ((sc->rl_flags & RL_FLAG_PHY8169) != 0)
+	if ((sc->rl_flags & RL_FLAG_MACRESET) != 0)
 		CSR_WRITE_1(sc, 0x82, 1);
-	if ((sc->rl_flags & RL_FLAG_PHY8110S) != 0) {
-		CSR_WRITE_1(sc, 0x82, 1);
-		re_gmii_writereg(sc->rl_dev, 1, 0x0B, 0);
-	}
+	if (sc->rl_hwrev == RL_HWREV_8169S)
+		re_gmii_writereg(sc->rl_dev, 1, 0x0b, 0);
 }
 
 #ifdef RE_DIAG
@@ -1209,12 +1208,22 @@ re_attach(device_t dev)
 
 	hw_rev = re_hwrevs;
 	hwrev = CSR_READ_4(sc, RL_TXCFG);
-	device_printf(dev, "Chip rev. 0x%08x\n", hwrev & 0x7c800000);
+	switch (hwrev & 0x70000000) {
+	case 0x00000000:
+	case 0x10000000:
+		device_printf(dev, "Chip rev. 0x%08x\n", hwrev & 0xfc800000);
+		hwrev &= (RL_TXCFG_HWREV | 0x80000000);
+		break;
+	default:
+		device_printf(dev, "Chip rev. 0x%08x\n", hwrev & 0x7c800000);
+		hwrev &= RL_TXCFG_HWREV;
+		break;
+	}
 	device_printf(dev, "MAC rev. 0x%08x\n", hwrev & 0x00700000);
-	hwrev &= RL_TXCFG_HWREV;
 	while (hw_rev->rl_desc != NULL) {
 		if (hw_rev->rl_rev == hwrev) {
 			sc->rl_type = hw_rev->rl_type;
+			sc->rl_hwrev = hw_rev->rl_rev;
 			break;
 		}
 		hw_rev++;
@@ -1229,9 +1238,6 @@ re_attach(device_t dev)
 	case RL_HWREV_8139CPLUS:
 		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_FASTETHER;
 		break;
-	case RL_HWREV_8110S:
-		sc->rl_flags |= RL_FLAG_PHY8110S;
-		break;
 	case RL_HWREV_8100E:
 	case RL_HWREV_8101E:
 		sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_PHYWAKE |
@@ -1273,14 +1279,16 @@ re_attach(device_t dev)
 		 */
 		sc->rl_flags |= RL_FLAG_NOJUMBO;
 		break;
-	case RL_HWREV_8169:
-	case RL_HWREV_8169S:
-		sc->rl_flags |= RL_FLAG_PHY8169;
-		break;
 	case RL_HWREV_8169_8110SB:
-	case RL_HWREV_8169_8110SC:
 	case RL_HWREV_8169_8110SBL:
-		sc->rl_flags |= RL_FLAG_PHYWAKE | RL_FLAG_PHY8169;
+	case RL_HWREV_8169_8110SC:
+	case RL_HWREV_8169_8110SCE:
+		sc->rl_flags |= RL_FLAG_PHYWAKE;
+		/* FALLTHROUGH */
+	case RL_HWREV_8169:
+	case RL_HWREV_8169S:
+	case RL_HWREV_8110S:
+		sc->rl_flags |= RL_FLAG_MACRESET;
 		break;
 	default:
 		break;
@@ -2484,6 +2492,7 @@ re_init_locked(struct rl_softc *sc)
 {
 	struct ifnet		*ifp = sc->rl_ifp;
 	struct mii_data		*mii;
+	uint32_t		reg;
 	uint16_t		cfg;
 	union {
 		uint32_t align_dummy;
@@ -2519,6 +2528,17 @@ re_init_locked(struct rl_softc *sc)
 	} else
 		cfg |= RL_CPLUSCMD_RXENB | RL_CPLUSCMD_TXENB;
 	CSR_WRITE_2(sc, RL_CPLUS_CMD, cfg);
+	if (sc->rl_hwrev == RL_HWREV_8169_8110SC ||
+	    sc->rl_hwrev == RL_HWREV_8169_8110SCE) {
+		reg = 0x000fff00;
+		if ((CSR_READ_1(sc, RL_CFG2) & RL_CFG2_PCI66MHZ) != 0)
+			reg |= 0x000000ff;
+		if (sc->rl_hwrev == RL_HWREV_8169_8110SCE)
+			reg |= 0x00f00000;
+		CSR_WRITE_4(sc, 0x7c, reg);
+		/* Disable interrupt mitigation. */
+		CSR_WRITE_2(sc, 0xe2, 0);
+	}
 	/*
 	 * Disable TSO if interface MTU size is greater than MSS
 	 * allowed in controller.

Modified: stable/7/sys/pci/if_rlreg.h
==============================================================================
--- stable/7/sys/pci/if_rlreg.h	Wed Mar 18 02:00:23 2009	(r189943)
+++ stable/7/sys/pci/if_rlreg.h	Wed Mar 18 02:03:16 2009	(r189944)
@@ -154,8 +154,8 @@
 /* Known revision codes. */
 
 #define RL_HWREV_8169		0x00000000
-#define RL_HWREV_8110S		0x00800000
-#define RL_HWREV_8169S		0x04000000
+#define RL_HWREV_8169S		0x00800000
+#define RL_HWREV_8110S		0x04000000
 #define RL_HWREV_8169_8110SB	0x10000000
 #define RL_HWREV_8169_8110SC	0x18000000
 #define RL_HWREV_8102EL		0x24800000
@@ -180,6 +180,7 @@
 #define RL_HWREV_8101		0x74c00000
 #define RL_HWREV_8100		0x78800000
 #define RL_HWREV_8169_8110SBL	0x7CC00000
+#define RL_HWREV_8169_8110SCE	0x98000000
 
 #define RL_TXDMA_16BYTES	0x00000000
 #define RL_TXDMA_32BYTES	0x00000100
@@ -859,8 +860,7 @@ struct rl_softc {
 #define	RL_FLAG_MACSTAT		0x0080
 #define	RL_FLAG_FASTETHER	0x0100
 #define	RL_FLAG_CMDSTOP		0x0200
-#define	RL_FLAG_PHY8169		0x0400
-#define	RL_FLAG_PHY8110S	0x0800
+#define	RL_FLAG_MACRESET	0x0400
 #define	RL_FLAG_WOLRXENB	0x1000
 #define	RL_FLAG_MACSLEEP	0x2000
 #define	RL_FLAG_PCIE		0x4000

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:07:07 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B8F5E106566C;
	Wed, 18 Mar 2009 02:07:07 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A52528FC0A;
	Wed, 18 Mar 2009 02:07:07 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I277gw012126;
	Wed, 18 Mar 2009 02:07:07 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I277fJ012125;
	Wed, 18 Mar 2009 02:07:07 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180207.n2I277fJ012125@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:07:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189945 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:07:08 -0000

Author: yongari
Date: Wed Mar 18 02:07:07 2009
New Revision: 189945
URL: http://svn.freebsd.org/changeset/base/189945

Log:
  MFC r188381:
    Reclaim transmitted frames in re_tick(). This is for PCIe
    controllers that lose Tx completion interrupts under certain
    conditions. With this change it's safe to use MSI on PCIe
    controllers so enable MSI on these controllers.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:03:16 2009	(r189944)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:07:07 2009	(r189945)
@@ -156,7 +156,7 @@ MODULE_DEPEND(re, miibus, 1, 1, 1);
 #include "miibus_if.h"
 
 /* Tunables. */
-static int msi_disable = 1;
+static int msi_disable = 0;
 TUNABLE_INT("hw.re.msi_disable", &msi_disable);
 
 #define RE_CSUM_FEATURES    (CSUM_IP | CSUM_TCP | CSUM_UDP)
@@ -2064,6 +2064,13 @@ re_tick(void *xsc)
 	mii_tick(mii);
 	if ((sc->rl_flags & RL_FLAG_LINK) == 0)
 		re_miibus_statchg(sc->rl_dev);
+	/*
+	 * Reclaim transmitted frames here. Technically it is not
+	 * necessary to do here but it ensures periodic reclamation
+	 * regardless of Tx completion interrupt which seems to be
+	 * lost on PCIe based controllers under certain situations. 
+	 */
+	re_txeof(sc);
 	re_watchdog(sc);
 	callout_reset(&sc->rl_stat_callout, hz, re_tick, sc);
 }

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:10:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CCEBC1065691;
	Wed, 18 Mar 2009 02:10:01 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B0E8F8FC1B;
	Wed, 18 Mar 2009 02:10:01 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I2A1Am012233;
	Wed, 18 Mar 2009 02:10:01 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I2A1QB012231;
	Wed, 18 Mar 2009 02:10:01 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180210.n2I2A1QB012231@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:10:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189946 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:10:02 -0000

Author: yongari
Date: Wed Mar 18 02:10:01 2009
New Revision: 189946
URL: http://svn.freebsd.org/changeset/base/189946

Log:
  MFC r188474:
    Allocating 2 MSI messages do not seem to work on certain controllers
    so use just 1 MSI message. This fixes regression introduced in
    r188381.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c
  stable/7/sys/pci/if_rlreg.h

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:07:07 2009	(r189945)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:10:01 2009	(r189946)
@@ -1149,7 +1149,8 @@ re_attach(device_t dev)
 		if (bootverbose)
 			device_printf(dev, "MSI count : %d\n", msic);
 	}
-	if (msic == RL_MSI_MESSAGES  && msi_disable == 0) {
+	if (msic > 0 && msi_disable == 0) {
+		msic = 1;
 		if (pci_alloc_msi(dev, &msic) == 0) {
 			if (msic == RL_MSI_MESSAGES) {
 				device_printf(dev, "Using %d MSI messages\n",

Modified: stable/7/sys/pci/if_rlreg.h
==============================================================================
--- stable/7/sys/pci/if_rlreg.h	Wed Mar 18 02:07:07 2009	(r189945)
+++ stable/7/sys/pci/if_rlreg.h	Wed Mar 18 02:10:01 2009	(r189946)
@@ -758,7 +758,7 @@ struct rl_stats {
 #define RE_RX_DESC_BUFLEN	MCLBYTES
 #endif
 
-#define	RL_MSI_MESSAGES	2
+#define	RL_MSI_MESSAGES	1
 
 #define RL_ADDR_LO(y)		((uint64_t) (y) & 0xFFFFFFFF)
 #define RL_ADDR_HI(y)		((uint64_t) (y) >> 32)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:12:33 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BFFB3106566C;
	Wed, 18 Mar 2009 02:12:33 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 920CE8FC1F;
	Wed, 18 Mar 2009 02:12:33 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I2CX4C012337;
	Wed, 18 Mar 2009 02:12:33 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I2CXwK012336;
	Wed, 18 Mar 2009 02:12:33 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180212.n2I2CXwK012336@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:12:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189947 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/re
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:12:34 -0000

Author: yongari
Date: Wed Mar 18 02:12:33 2009
New Revision: 189947
URL: http://svn.freebsd.org/changeset/base/189947

Log:
  MFC r189555:
    Add a new tunable hw.re.prefer_iomap which disables memory register
    mapping. The tunable is OFF for all controllers except RTL8169SC
    family. RTL8169SC seems to require more magic to use memory
    register mapping. r187483 added a fix for RTL8169SCe controller but
    it does not looke like fix other variants of RTL8169SC.
  
    Tested by:	Gavin Stone-Tolcher g.stone-tolcher <> its dot uq dot edu dot au

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/re/if_re.c

Modified: stable/7/sys/dev/re/if_re.c
==============================================================================
--- stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:10:01 2009	(r189946)
+++ stable/7/sys/dev/re/if_re.c	Wed Mar 18 02:12:33 2009	(r189947)
@@ -158,6 +158,8 @@ MODULE_DEPEND(re, miibus, 1, 1, 1);
 /* Tunables. */
 static int msi_disable = 0;
 TUNABLE_INT("hw.re.msi_disable", &msi_disable);
+static int prefer_iomap = 0;
+TUNABLE_INT("hw.re.prefer_iomap", &prefer_iomap);
 
 #define RE_CSUM_FEATURES    (CSUM_IP | CSUM_TCP | CSUM_UDP)
 
@@ -1118,25 +1120,35 @@ re_attach(device_t dev)
 	pci_enable_busmaster(dev);
 
 	devid = pci_get_device(dev);
-	/* Prefer memory space register mapping over IO space. */
-	sc->rl_res_id = PCIR_BAR(1);
-	sc->rl_res_type = SYS_RES_MEMORY;
-	/* RTL8168/8101E seems to use different BARs. */
-	if (devid == RT_DEVICEID_8168 || devid == RT_DEVICEID_8101E)
-		sc->rl_res_id = PCIR_BAR(2);
+	/*
+	 * Prefer memory space register mapping over IO space.
+	 * Because RTL8169SC does not seem to work when memory mapping
+	 * is used always activate io mapping. 
+	 */
+	if (devid == RT_DEVICEID_8169SC)
+		prefer_iomap = 1;
+	if (prefer_iomap == 0) {
+		sc->rl_res_id = PCIR_BAR(1);
+		sc->rl_res_type = SYS_RES_MEMORY;
+		/* RTL8168/8101E seems to use different BARs. */
+		if (devid == RT_DEVICEID_8168 || devid == RT_DEVICEID_8101E)
+			sc->rl_res_id = PCIR_BAR(2);
+	} else {
+		sc->rl_res_id = PCIR_BAR(0);
+		sc->rl_res_type = SYS_RES_IOPORT;
+	}
 	sc->rl_res = bus_alloc_resource_any(dev, sc->rl_res_type,
 	    &sc->rl_res_id, RF_ACTIVE);
-
-	if (sc->rl_res == NULL) {
+	if (sc->rl_res == NULL && prefer_iomap == 0) {
 		sc->rl_res_id = PCIR_BAR(0);
 		sc->rl_res_type = SYS_RES_IOPORT;
 		sc->rl_res = bus_alloc_resource_any(dev, sc->rl_res_type,
 		    &sc->rl_res_id, RF_ACTIVE);
-		if (sc->rl_res == NULL) {
-			device_printf(dev, "couldn't map ports/memory\n");
-			error = ENXIO;
-			goto fail;
-		}
+	}
+	if (sc->rl_res == NULL) {
+		device_printf(dev, "couldn't map ports/memory\n");
+		error = ENXIO;
+		goto fail;
 	}
 
 	sc->rl_btag = rman_get_bustag(sc->rl_res);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:23:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D80221065673;
	Wed, 18 Mar 2009 02:23:01 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C317D8FC15;
	Wed, 18 Mar 2009 02:23:01 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I2N1hr012598;
	Wed, 18 Mar 2009 02:23:01 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I2N1Vc012595;
	Wed, 18 Mar 2009 02:23:01 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180223.n2I2N1Vc012595@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:23:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189948 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/nfe
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:23:02 -0000

Author: yongari
Date: Wed Mar 18 02:23:01 2009
New Revision: 189948
URL: http://svn.freebsd.org/changeset/base/189948

Log:
  MFC r183561, 186346:
  r183561:
    Add hardware MAC statistics support. Register information was
    obtained from Linux forcedeth driver.
    While I'm here move creating a sysctl node for process_limit to
    function nfe_sysctl_node().
  
    Tested by:	"Arno J. Klaassen" < arno  heho dot snv dot jussieu dot fr >
  
  r186346:
    Fix a typo.
  
    Submitted by:	clemens fischer via Shigeaki Tagashira

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/nfe/if_nfe.c
  stable/7/sys/dev/nfe/if_nfereg.h
  stable/7/sys/dev/nfe/if_nfevar.h

Modified: stable/7/sys/dev/nfe/if_nfe.c
==============================================================================
--- stable/7/sys/dev/nfe/if_nfe.c	Wed Mar 18 02:12:33 2009	(r189947)
+++ stable/7/sys/dev/nfe/if_nfe.c	Wed Mar 18 02:23:01 2009	(r189948)
@@ -122,6 +122,9 @@ static void nfe_dma_map_segs(void *, bus
 
 static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int, int);
 static int sysctl_hw_nfe_proc_limit(SYSCTL_HANDLER_ARGS);
+static void nfe_sysctl_node(struct nfe_softc *);
+static void nfe_stats_clear(struct nfe_softc *);
+static void nfe_stats_update(struct nfe_softc *);
 
 #ifdef NFE_DEBUG
 static int nfedebug = 0;
@@ -454,18 +457,19 @@ nfe_attach(device_t dev)
 		break;
 	case PCI_PRODUCT_NVIDIA_MCP51_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP51_LAN2:
-		sc->nfe_flags |= NFE_40BIT_ADDR | NFE_PWR_MGMT;
+		sc->nfe_flags |= NFE_40BIT_ADDR | NFE_PWR_MGMT | NFE_MIB_V1;
 		break;
 	case PCI_PRODUCT_NVIDIA_CK804_LAN1:
 	case PCI_PRODUCT_NVIDIA_CK804_LAN2:
 	case PCI_PRODUCT_NVIDIA_MCP04_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP04_LAN2:
-		sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR | NFE_HW_CSUM;
+		sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR | NFE_HW_CSUM |
+		    NFE_MIB_V1;
 		break;
 	case PCI_PRODUCT_NVIDIA_MCP55_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP55_LAN2:
 		sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR | NFE_HW_CSUM |
-		    NFE_HW_VLAN | NFE_PWR_MGMT | NFE_TX_FLOW_CTRL;
+		    NFE_HW_VLAN | NFE_PWR_MGMT | NFE_TX_FLOW_CTRL | NFE_MIB_V2;
 		break;
 
 	case PCI_PRODUCT_NVIDIA_MCP61_LAN1:
@@ -481,7 +485,7 @@ nfe_attach(device_t dev)
 	case PCI_PRODUCT_NVIDIA_MCP73_LAN3:
 	case PCI_PRODUCT_NVIDIA_MCP73_LAN4:
 		sc->nfe_flags |= NFE_40BIT_ADDR | NFE_PWR_MGMT |
-		    NFE_CORRECT_MACADDR | NFE_TX_FLOW_CTRL;
+		    NFE_CORRECT_MACADDR | NFE_TX_FLOW_CTRL | NFE_MIB_V2;
 		break;
 	case PCI_PRODUCT_NVIDIA_MCP77_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP77_LAN2:
@@ -489,7 +493,7 @@ nfe_attach(device_t dev)
 	case PCI_PRODUCT_NVIDIA_MCP77_LAN4:
 		/* XXX flow control */
 		sc->nfe_flags |= NFE_40BIT_ADDR | NFE_HW_CSUM | NFE_PWR_MGMT |
-		    NFE_CORRECT_MACADDR;
+		    NFE_CORRECT_MACADDR | NFE_MIB_V3;
 		break;
 	case PCI_PRODUCT_NVIDIA_MCP79_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP79_LAN2:
@@ -497,14 +501,15 @@ nfe_attach(device_t dev)
 	case PCI_PRODUCT_NVIDIA_MCP79_LAN4:
 		/* XXX flow control */
 		sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR | NFE_HW_CSUM |
-		    NFE_PWR_MGMT | NFE_CORRECT_MACADDR;
+		    NFE_PWR_MGMT | NFE_CORRECT_MACADDR | NFE_MIB_V3;
 		break;
 	case PCI_PRODUCT_NVIDIA_MCP65_LAN1:
 	case PCI_PRODUCT_NVIDIA_MCP65_LAN2:
 	case PCI_PRODUCT_NVIDIA_MCP65_LAN3:
 	case PCI_PRODUCT_NVIDIA_MCP65_LAN4:
 		sc->nfe_flags |= NFE_JUMBO_SUP | NFE_40BIT_ADDR |
-		    NFE_PWR_MGMT | NFE_CORRECT_MACADDR | NFE_TX_FLOW_CTRL;
+		    NFE_PWR_MGMT | NFE_CORRECT_MACADDR | NFE_TX_FLOW_CTRL |
+		    NFE_MIB_V2;
 		break;
 	}
 
@@ -551,24 +556,8 @@ nfe_attach(device_t dev)
 		goto fail;
 
 	nfe_alloc_jrx_ring(sc, &sc->jrxq);
-
-	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
-	    SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
-	    OID_AUTO, "process_limit", CTLTYPE_INT | CTLFLAG_RW,
-	    &sc->nfe_process_limit, 0, sysctl_hw_nfe_proc_limit, "I",
-	    "max number of Rx events to process");
-
-	sc->nfe_process_limit = NFE_PROC_DEFAULT;
-	error = resource_int_value(device_get_name(dev), device_get_unit(dev),
-	    "process_limit", &sc->nfe_process_limit);
-	if (error == 0) {
-		if (sc->nfe_process_limit < NFE_PROC_MIN ||
-		    sc->nfe_process_limit > NFE_PROC_MAX) {
-			device_printf(dev, "process_limit value out of range; "
-			    "using default: %d\n", NFE_PROC_DEFAULT);
-			sc->nfe_process_limit = NFE_PROC_DEFAULT;
-		}
-	}
+	/* Create sysctl node. */
+	nfe_sysctl_node(sc);
 
 	ifp->if_softc = sc;
 	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
@@ -2767,6 +2756,9 @@ nfe_init_locked(void *xsc)
 
 	NFE_WRITE(sc, NFE_PHY_STATUS, 0xf);
 
+	/* Clear hardware stats. */
+	nfe_stats_clear(sc);
+
 #ifdef DEVICE_POLLING
 	if (ifp->if_capenable & IFCAP_POLLING)
 		nfe_disable_intr(sc);
@@ -2855,6 +2847,8 @@ nfe_stop(struct ifnet *ifp)
 			tdata->m = NULL;
 		}
 	}
+	/* Update hardware stats. */
+	nfe_stats_update(sc);
 }
 
 
@@ -2906,6 +2900,7 @@ nfe_tick(void *xsc)
 
 	mii = device_get_softc(sc->nfe_miibus);
 	mii_tick(mii);
+	nfe_stats_update(sc);
 	nfe_watchdog(ifp);
 	callout_reset(&sc->nfe_stat_ch, hz, nfe_tick, sc);
 }
@@ -3013,3 +3008,199 @@ sysctl_hw_nfe_proc_limit(SYSCTL_HANDLER_
 	return (sysctl_int_range(oidp, arg1, arg2, req, NFE_PROC_MIN,
 	    NFE_PROC_MAX));
 }
+
+
+#define	NFE_SYSCTL_STAT_ADD32(c, h, n, p, d)	\
+	    SYSCTL_ADD_UINT(c, h, OID_AUTO, n, CTLFLAG_RD, p, 0, d)
+#define	NFE_SYSCTL_STAT_ADD64(c, h, n, p, d)	\
+	    SYSCTL_ADD_ULONG(c, h, OID_AUTO, n, CTLFLAG_RD, p, d)
+
+static void
+nfe_sysctl_node(struct nfe_softc *sc)
+{
+	struct sysctl_ctx_list *ctx;
+	struct sysctl_oid_list *child, *parent;
+	struct sysctl_oid *tree;
+	struct nfe_hw_stats *stats;
+	int error;
+
+	stats = &sc->nfe_stats;
+	ctx = device_get_sysctl_ctx(sc->nfe_dev);
+	child = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->nfe_dev));
+	SYSCTL_ADD_PROC(ctx, child,
+	    OID_AUTO, "process_limit", CTLTYPE_INT | CTLFLAG_RW,
+	    &sc->nfe_process_limit, 0, sysctl_hw_nfe_proc_limit, "I",
+	    "max number of Rx events to process");
+
+	sc->nfe_process_limit = NFE_PROC_DEFAULT;
+	error = resource_int_value(device_get_name(sc->nfe_dev),
+	    device_get_unit(sc->nfe_dev), "process_limit",
+	    &sc->nfe_process_limit);
+	if (error == 0) {
+		if (sc->nfe_process_limit < NFE_PROC_MIN ||
+		    sc->nfe_process_limit > NFE_PROC_MAX) {
+			device_printf(sc->nfe_dev,
+			    "process_limit value out of range; "
+			    "using default: %d\n", NFE_PROC_DEFAULT);
+			sc->nfe_process_limit = NFE_PROC_DEFAULT;
+		}
+	}
+
+	if ((sc->nfe_flags & (NFE_MIB_V1 | NFE_MIB_V2 | NFE_MIB_V3)) == 0)
+		return;
+
+	tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD,
+	    NULL, "NFE statistics");
+	parent = SYSCTL_CHILDREN(tree);
+
+	/* Rx statistics. */
+	tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx", CTLFLAG_RD,
+	    NULL, "Rx MAC statistics");
+	child = SYSCTL_CHILDREN(tree);
+
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "frame_errors",
+	    &stats->rx_frame_errors, "Framing Errors");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "extra_bytes",
+	    &stats->rx_extra_bytes, "Extra Bytes");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "late_cols",
+	    &stats->rx_late_cols, "Late Collisions");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "runts",
+	    &stats->rx_runts, "Runts");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "jumbos",
+	    &stats->rx_jumbos, "Jumbos");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "fifo_overuns",
+	    &stats->rx_fifo_overuns, "FIFO Overruns");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "crc_errors",
+	    &stats->rx_crc_errors, "CRC Errors");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "fae",
+	    &stats->rx_fae, "Frame Alignment Errors");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "len_errors",
+	    &stats->rx_len_errors, "Length Errors");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "unicast",
+	    &stats->rx_unicast, "Unicast Frames");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "multicast",
+	    &stats->rx_multicast, "Multicast Frames");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "broadcast",
+	    &stats->rx_broadcast, "Broadcast Frames");
+	if ((sc->nfe_flags & NFE_MIB_V2) != 0) {
+		NFE_SYSCTL_STAT_ADD64(ctx, child, "octets",
+		    &stats->rx_octets, "Octets");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "pause",
+		    &stats->rx_pause, "Pause frames");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "drops",
+		    &stats->rx_drops, "Drop frames");
+	}
+
+	/* Tx statistics. */
+	tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "tx", CTLFLAG_RD,
+	    NULL, "Tx MAC statistics");
+	child = SYSCTL_CHILDREN(tree);
+	NFE_SYSCTL_STAT_ADD64(ctx, child, "octets",
+	    &stats->tx_octets, "Octets");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "zero_rexmits",
+	    &stats->tx_zero_rexmits, "Zero Retransmits");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "one_rexmits",
+	    &stats->tx_one_rexmits, "One Retransmits");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "multi_rexmits",
+	    &stats->tx_multi_rexmits, "Multiple Retransmits");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "late_cols",
+	    &stats->tx_late_cols, "Late Collisions");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "fifo_underuns",
+	    &stats->tx_fifo_underuns, "FIFO Underruns");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "carrier_losts",
+	    &stats->tx_carrier_losts, "Carrier Losts");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "excess_deferrals",
+	    &stats->tx_excess_deferals, "Excess Deferrals");
+	NFE_SYSCTL_STAT_ADD32(ctx, child, "retry_errors",
+	    &stats->tx_retry_errors, "Retry Errors");
+	if ((sc->nfe_flags & NFE_MIB_V2) != 0) {
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "deferrals",
+		    &stats->tx_deferals, "Deferrals");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "frames",
+		    &stats->tx_frames, "Frames");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "pause",
+		    &stats->tx_pause, "Pause Frames");
+	}
+	if ((sc->nfe_flags & NFE_MIB_V3) != 0) {
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "unicast",
+		    &stats->tx_deferals, "Unicast Frames");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "multicast",
+		    &stats->tx_frames, "Multicast Frames");
+		NFE_SYSCTL_STAT_ADD32(ctx, child, "broadcast",
+		    &stats->tx_pause, "Broadcast Frames");
+	}
+}
+
+#undef NFE_SYSCTL_STAT_ADD32
+#undef NFE_SYSCTL_STAT_ADD64
+
+static void
+nfe_stats_clear(struct nfe_softc *sc)
+{
+	int i, mib_cnt;
+
+	if ((sc->nfe_flags & NFE_MIB_V1) != 0)
+		mib_cnt = NFE_NUM_MIB_STATV1;
+	else if ((sc->nfe_flags & (NFE_MIB_V2 | NFE_MIB_V3)) != 0)
+		mib_cnt = NFE_NUM_MIB_STATV2;
+	else
+		return;
+
+	for (i = 0; i < mib_cnt; i += sizeof(uint32_t))
+		NFE_READ(sc, NFE_TX_OCTET + i);
+
+	if ((sc->nfe_flags & NFE_MIB_V3) != 0) {
+		NFE_READ(sc, NFE_TX_UNICAST);
+		NFE_READ(sc, NFE_TX_MULTICAST);
+		NFE_READ(sc, NFE_TX_BROADCAST);
+	}
+}
+
+static void
+nfe_stats_update(struct nfe_softc *sc)
+{
+	struct nfe_hw_stats *stats;
+
+	NFE_LOCK_ASSERT(sc);
+
+	if ((sc->nfe_flags & (NFE_MIB_V1 | NFE_MIB_V2 | NFE_MIB_V3)) == 0)
+		return;
+
+	stats = &sc->nfe_stats;
+	stats->tx_octets += NFE_READ(sc, NFE_TX_OCTET);
+	stats->tx_zero_rexmits += NFE_READ(sc, NFE_TX_ZERO_REXMIT);
+	stats->tx_one_rexmits += NFE_READ(sc, NFE_TX_ONE_REXMIT);
+	stats->tx_multi_rexmits += NFE_READ(sc, NFE_TX_MULTI_REXMIT);
+	stats->tx_late_cols += NFE_READ(sc, NFE_TX_LATE_COL);
+	stats->tx_fifo_underuns += NFE_READ(sc, NFE_TX_FIFO_UNDERUN);
+	stats->tx_carrier_losts += NFE_READ(sc, NFE_TX_CARRIER_LOST);
+	stats->tx_excess_deferals += NFE_READ(sc, NFE_TX_EXCESS_DEFERRAL);
+	stats->tx_retry_errors += NFE_READ(sc, NFE_TX_RETRY_ERROR);
+	stats->rx_frame_errors += NFE_READ(sc, NFE_RX_FRAME_ERROR);
+	stats->rx_extra_bytes += NFE_READ(sc, NFE_RX_EXTRA_BYTES);
+	stats->rx_late_cols += NFE_READ(sc, NFE_RX_LATE_COL);
+	stats->rx_runts += NFE_READ(sc, NFE_RX_RUNT);
+	stats->rx_jumbos += NFE_READ(sc, NFE_RX_JUMBO);
+	stats->rx_fifo_overuns += NFE_READ(sc, NFE_RX_FIFO_OVERUN);
+	stats->rx_crc_errors += NFE_READ(sc, NFE_RX_CRC_ERROR);
+	stats->rx_fae += NFE_READ(sc, NFE_RX_FAE);
+	stats->rx_len_errors += NFE_READ(sc, NFE_RX_LEN_ERROR);
+	stats->rx_unicast += NFE_READ(sc, NFE_RX_UNICAST);
+	stats->rx_multicast += NFE_READ(sc, NFE_RX_MULTICAST);
+	stats->rx_broadcast += NFE_READ(sc, NFE_RX_BROADCAST);
+
+	if ((sc->nfe_flags & NFE_MIB_V2) != 0) {
+		stats->tx_deferals += NFE_READ(sc, NFE_TX_DEFERAL);
+		stats->tx_frames += NFE_READ(sc, NFE_TX_FRAME);
+		stats->rx_octets += NFE_READ(sc, NFE_RX_OCTET);
+		stats->tx_pause += NFE_READ(sc, NFE_TX_PAUSE);
+		stats->rx_pause += NFE_READ(sc, NFE_RX_PAUSE);
+		stats->rx_drops += NFE_READ(sc, NFE_RX_DROP);
+	}
+
+	if ((sc->nfe_flags & NFE_MIB_V3) != 0) {
+		stats->tx_unicast += NFE_READ(sc, NFE_TX_UNICAST);
+		stats->tx_multicast += NFE_READ(sc, NFE_TX_MULTICAST);
+		stats->rx_broadcast += NFE_READ(sc, NFE_TX_BROADCAST);
+	}
+}

Modified: stable/7/sys/dev/nfe/if_nfereg.h
==============================================================================
--- stable/7/sys/dev/nfe/if_nfereg.h	Wed Mar 18 02:12:33 2009	(r189947)
+++ stable/7/sys/dev/nfe/if_nfereg.h	Wed Mar 18 02:23:01 2009	(r189948)
@@ -87,11 +87,41 @@
 #define	NFE_PHY_SPEED		0x18c
 #define	NFE_PHY_CTL		0x190
 #define	NFE_PHY_DATA		0x194
+#define	NFE_TX_UNICAST		0x1a0
+#define	NFE_TX_MULTICAST	0x1a4
+#define	NFE_TX_BROADCAST	0x1a8
 #define	NFE_WOL_CTL		0x200
 #define	NFE_PATTERN_CRC		0x204
 #define	NFE_PATTERN_MASK	0x208
 #define	NFE_PWR_CAP		0x268
 #define	NFE_PWR_STATE		0x26c
+#define	NFE_TX_OCTET		0x280
+#define	NFE_TX_ZERO_REXMIT	0x284
+#define	NFE_TX_ONE_REXMIT	0x288
+#define	NFE_TX_MULTI_REXMIT	0x28c
+#define	NFE_TX_LATE_COL		0x290
+#define	NFE_TX_FIFO_UNDERUN	0x294
+#define	NFE_TX_CARRIER_LOST	0x298
+#define	NFE_TX_EXCESS_DEFERRAL	0x29c
+#define	NFE_TX_RETRY_ERROR	0x2a0
+#define	NFE_RX_FRAME_ERROR	0x2a4
+#define	NFE_RX_EXTRA_BYTES	0x2a8
+#define	NFE_RX_LATE_COL		0x2ac
+#define	NFE_RX_RUNT		0x2b0
+#define	NFE_RX_JUMBO		0x2b4
+#define	NFE_RX_FIFO_OVERUN	0x2b8
+#define	NFE_RX_CRC_ERROR	0x2bc
+#define	NFE_RX_FAE		0x2c0
+#define	NFE_RX_LEN_ERROR	0x2c4
+#define	NFE_RX_UNICAST		0x2c8
+#define	NFE_RX_MULTICAST	0x2cc
+#define	NFE_RX_BROADCAST	0x2d0
+#define	NFE_TX_DEFERAL		0x2d4
+#define	NFE_TX_FRAME		0x2d8
+#define	NFE_RX_OCTET		0x2dc
+#define	NFE_TX_PAUSE		0x2e0
+#define	NFE_RX_PAUSE		0x2e4
+#define	NFE_RX_DROP		0x2e8
 #define	NFE_VTAG_CTL		0x300
 #define	NFE_MSIX_MAP0		0x3e0
 #define	NFE_MSIX_MAP1		0x3e4
@@ -182,6 +212,10 @@
 #define	NFE_SEED_100TX		0x00002d00
 #define	NFE_SEED_1000T		0x00007400
 
+#define	NFE_NUM_MIB_STATV1	21
+#define	NFE_NUM_MIB_STATV2	27
+#define	NFE_NUM_MIB_STATV3	30
+
 #define	NFE_MSI_MESSAGES	8
 #define	NFE_MSI_VECTOR_0_ENABLED	0x01
 

Modified: stable/7/sys/dev/nfe/if_nfevar.h
==============================================================================
--- stable/7/sys/dev/nfe/if_nfevar.h	Wed Mar 18 02:12:33 2009	(r189947)
+++ stable/7/sys/dev/nfe/if_nfevar.h	Wed Mar 18 02:23:01 2009	(r189948)
@@ -70,6 +70,39 @@ struct nfe_jrx_ring {
 	int			jnext;
 };
 
+struct nfe_hw_stats {
+	uint64_t		rx_octets;
+	uint32_t		rx_frame_errors;
+	uint32_t		rx_extra_bytes;
+	uint32_t		rx_late_cols;
+	uint32_t		rx_runts;
+	uint32_t		rx_jumbos;
+	uint32_t		rx_fifo_overuns;
+	uint32_t		rx_crc_errors;
+	uint32_t		rx_fae;
+	uint32_t		rx_len_errors;
+	uint32_t		rx_unicast;
+	uint32_t		rx_multicast;
+	uint32_t		rx_broadcast;
+	uint32_t		rx_pause;
+	uint32_t		rx_drops;
+	uint64_t		tx_octets;
+	uint32_t		tx_zero_rexmits;
+	uint32_t		tx_one_rexmits;
+	uint32_t		tx_multi_rexmits;
+	uint32_t		tx_late_cols;
+	uint32_t		tx_fifo_underuns;
+	uint32_t		tx_carrier_losts;
+	uint32_t		tx_excess_deferals;
+	uint32_t		tx_retry_errors;
+	uint32_t		tx_deferals;
+	uint32_t		tx_frames;
+	uint32_t		tx_pause;
+	uint32_t		tx_unicast;
+	uint32_t		tx_multicast;
+	uint32_t		tx_broadcast;
+};
+
 struct nfe_softc {
 	struct ifnet		*nfe_ifp;
 	device_t		nfe_dev;
@@ -96,10 +129,14 @@ struct nfe_softc {
 #define	NFE_PWR_MGMT		0x0010
 #define	NFE_CORRECT_MACADDR	0x0020
 #define	NFE_TX_FLOW_CTRL	0x0040
+#define	NFE_MIB_V1		0x0080
+#define	NFE_MIB_V2		0x0100
+#define	NFE_MIB_V3		0x0200
 	int			nfe_jumbo_disable;
 	uint32_t		rxtxctl;
 	uint8_t			mii_phyaddr;
 	uint8_t			eaddr[ETHER_ADDR_LEN];
+	struct nfe_hw_stats	nfe_stats;
 	struct taskqueue	*nfe_tq;
 	struct task		nfe_int_task;
 	struct task		nfe_tx_task;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:26:47 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 043CB1065706;
	Wed, 18 Mar 2009 02:26:47 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E450B8FC0A;
	Wed, 18 Mar 2009 02:26:46 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I2QkEf012723;
	Wed, 18 Mar 2009 02:26:46 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I2QkPe012722;
	Wed, 18 Mar 2009 02:26:46 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180226.n2I2QkPe012722@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 02:26:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189949 - stable/7/share/man/man4
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:26:48 -0000

Author: yongari
Date: Wed Mar 18 02:26:46 2009
New Revision: 189949
URL: http://svn.freebsd.org/changeset/base/189949

Log:
  MFC r188382:
    Document loader tunable hw.re.msi_disable.
    Bump .Dd

Modified:
  stable/7/share/man/man4/   (props changed)
  stable/7/share/man/man4/igb.4   (props changed)
  stable/7/share/man/man4/re.4

Modified: stable/7/share/man/man4/re.4
==============================================================================
--- stable/7/share/man/man4/re.4	Wed Mar 18 02:23:01 2009	(r189948)
+++ stable/7/share/man/man4/re.4	Wed Mar 18 02:26:46 2009	(r189949)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 14, 2006
+.Dd February 9, 2009
 .Dt RE 4
 .Os
 .Sh NAME
@@ -169,6 +169,16 @@ USRobotics USR997902 Gigabit Ethernet (8
 .It
 Xterasys XN-152 10/100/1000 NIC (8169)
 .El
+.Sh LOADER TUNABLES
+Tunables can be set at the
+.Xr loader 8
+prompt before booting the kernel or stored in
+.Xr loader.conf 5 .
+.Bl -tag -width "xxxxxx"
+.It Va hw.re.msi_disable
+This tunable disables MSI support on the Ethernet hardware.
+The default value is 0.
+.El
 .Sh DIAGNOSTICS
 .Bl -diag
 .It "re%d: couldn't map memory"

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 02:38:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 380951065675;
	Wed, 18 Mar 2009 02:38:36 +0000 (UTC)
	(envelope-from weongyo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 244AF8FC14;
	Wed, 18 Mar 2009 02:38:36 +0000 (UTC)
	(envelope-from weongyo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I2cauU012990;
	Wed, 18 Mar 2009 02:38:36 GMT (envelope-from weongyo@svn.freebsd.org)
Received: (from weongyo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I2ca0a012987;
	Wed, 18 Mar 2009 02:38:36 GMT (envelope-from weongyo@svn.freebsd.org)
Message-Id: <200903180238.n2I2ca0a012987@svn.freebsd.org>
From: Weongyo Jeong 
Date: Wed, 18 Mar 2009 02:38:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189950 - in head/sys: compat/ndis dev/if_ndis
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 02:38:36 -0000

Author: weongyo
Date: Wed Mar 18 02:38:35 2009
New Revision: 189950
URL: http://svn.freebsd.org/changeset/base/189950

Log:
  Some NDIS USB drivers try to call URB funcs like URB_FUNCTION_VENDOR_xxx
  or URB_FUNCTION_CLASS_xxx with HAL preemption lock that means it's
  non-sleepable during USB requests though usb2_do_request() requires a
  sleep so it needs to send queries to the default pipe without those
  interfaces to avoid sleep.

Modified:
  head/sys/compat/ndis/subr_usbd.c
  head/sys/dev/if_ndis/if_ndis_usb.c
  head/sys/dev/if_ndis/if_ndisvar.h

Modified: head/sys/compat/ndis/subr_usbd.c
==============================================================================
--- head/sys/compat/ndis/subr_usbd.c	Wed Mar 18 02:26:46 2009	(r189949)
+++ head/sys/compat/ndis/subr_usbd.c	Wed Mar 18 02:38:35 2009	(r189950)
@@ -77,6 +77,38 @@ __FBSDID("$FreeBSD$");
 
 static driver_object usbd_driver;
 static usb2_callback_t usbd_non_isoc_callback;
+static usb2_callback_t usbd_ctrl_callback;
+
+#define	USBD_CTRL_READ_PIPE		0
+#define	USBD_CTRL_WRITE_PIPE		1
+#define	USBD_CTRL_MAX_PIPE		2
+#define	USBD_CTRL_READ_BUFFER_SP	256
+#define	USBD_CTRL_READ_BUFFER_SIZE	\
+	(sizeof(struct usb2_device_request) + USBD_CTRL_READ_BUFFER_SP)
+#define	USBD_CTRL_WRITE_BUFFER_SIZE	\
+	(sizeof(struct usb2_device_request))
+static struct usb2_config usbd_default_epconfig[USBD_CTRL_MAX_PIPE] = {
+	[USBD_CTRL_READ_PIPE] = {
+		.type =		UE_CONTROL,
+		.endpoint =	0x00,	/* control pipe */
+		.direction =	UE_DIR_ANY,
+		.if_index =	0,
+		.mh.bufsize =	USBD_CTRL_READ_BUFFER_SIZE,
+		.mh.flags =	{ .short_xfer_ok = 1, },
+		.mh.callback =	&usbd_ctrl_callback,
+		.mh.timeout =	5000,	/* 5 seconds */
+	},
+	[USBD_CTRL_WRITE_PIPE] = {
+		.type =		UE_CONTROL,
+		.endpoint =	0x00,	/* control pipe */
+		.direction =	UE_DIR_ANY,
+		.if_index =	0,
+		.mh.bufsize =	USBD_CTRL_WRITE_BUFFER_SIZE,
+		.mh.flags =	{ .proxy_buffer = 1, },
+		.mh.callback =	&usbd_ctrl_callback,
+		.mh.timeout =	5000,	/* 5 seconds */
+	}
+};
 
 static int32_t		 usbd_func_bulkintr(irp *);
 static int32_t		 usbd_func_vendorclass(irp *);
@@ -84,6 +116,9 @@ static int32_t		 usbd_func_selconf(irp *
 static int32_t		 usbd_func_abort_pipe(irp *);
 static usb2_error_t	 usbd_setup_endpoint(irp *, uint8_t,
 			    struct usb2_endpoint_descriptor	*);
+static usb2_error_t	 usbd_setup_endpoint_default(irp *, uint8_t);
+static usb2_error_t	 usbd_setup_endpoint_one(irp *, uint8_t,
+			    struct ndisusb_ep *, struct usb2_config *);
 static int32_t		 usbd_func_getdesc(irp *);
 static union usbd_urb	*usbd_geturb(irp *);
 static struct ndisusb_ep*usbd_get_ndisep(irp *, usb_endpoint_descriptor_t *);
@@ -558,6 +593,57 @@ usbd_func_selconf(ip)
 }
 
 static usb2_error_t
+usbd_setup_endpoint_one(ip, ifidx, ne, epconf)
+	irp				*ip;
+	uint8_t				ifidx;
+	struct ndisusb_ep		*ne;
+	struct usb2_config		*epconf;
+{
+	device_t dev = IRP_NDIS_DEV(ip);
+	struct ndis_softc *sc = device_get_softc(dev);
+	struct usb2_xfer *xfer;
+	usb2_error_t status;
+
+	InitializeListHead(&ne->ne_active);
+	InitializeListHead(&ne->ne_pending);
+	KeInitializeSpinLock(&ne->ne_lock);
+
+	status = usb2_transfer_setup(sc->ndisusb_dev, &ifidx, ne->ne_xfer,
+	    epconf, 1, sc, &sc->ndisusb_mtx);
+	if (status != USB_ERR_NORMAL_COMPLETION) {
+		device_printf(dev, "couldn't setup xfer: %s\n",
+		    usb2_errstr(status));
+		return (status);
+	}
+	xfer = ne->ne_xfer[0];
+	xfer->priv_fifo = ne;
+
+	return (status);
+}
+
+static usb2_error_t
+usbd_setup_endpoint_default(ip, ifidx)
+	irp				*ip;
+	uint8_t				ifidx;
+{
+	device_t dev = IRP_NDIS_DEV(ip);
+	struct ndis_softc *sc = device_get_softc(dev);
+	usb2_error_t status;
+
+	if (ifidx > 0)
+		device_printf(dev, "warning: ifidx > 0 isn't supported.\n");
+
+	status = usbd_setup_endpoint_one(ip, ifidx, &sc->ndisusb_dread_ep,
+	    &usbd_default_epconfig[USBD_CTRL_READ_PIPE]);
+	if (status != USB_ERR_NORMAL_COMPLETION)
+		return (status);
+
+	status = usbd_setup_endpoint_one(ip, ifidx, &sc->ndisusb_dwrite_ep,
+	    &usbd_default_epconfig[USBD_CTRL_WRITE_PIPE]);
+	return (status);
+}
+
+static usb2_error_t
 usbd_setup_endpoint(ip, ifidx, ep)
 	irp				*ip;
 	uint8_t				ifidx;
@@ -644,62 +730,54 @@ usbd_func_vendorclass(ip)
 	irp			*ip;
 {
 	device_t dev = IRP_NDIS_DEV(ip);
+	int32_t error;
 	struct ndis_softc *sc = device_get_softc(dev);
+	struct ndisusb_ep *ne;
+	struct ndisusb_xfer *nx;
 	struct usbd_urb_vendor_or_class_request *vcreq;
-	uint8_t type = 0;
 	union usbd_urb *urb;
-	struct usb2_device_request req;
-	usb2_error_t status;
+
+	if (!(sc->ndisusb_status & NDISUSB_STATUS_SETUP_EP)) {
+		/*
+		 * XXX In some cases the interface number isn't 0.  However
+		 * some driver (eg. RTL8187L NDIS driver) calls this function
+		 * before calling URB_FUNCTION_SELECT_CONFIGURATION.
+		 */
+		error = usbd_setup_endpoint_default(ip, 0);
+		if (error != USB_ERR_NORMAL_COMPLETION)
+			return usbd_usb2urb(error);
+		sc->ndisusb_status |= NDISUSB_STATUS_SETUP_EP;
+	}
 
 	urb = usbd_geturb(ip);
 	vcreq = &urb->uu_vcreq;
+	ne = (vcreq->uvc_trans_flags & USBD_TRANSFER_DIRECTION_IN) ?
+	    &sc->ndisusb_dread_ep : &sc->ndisusb_dwrite_ep;
+	IRP_NDISUSB_EP(ip) = ne;
+	ip->irp_cancelfunc = (cancel_func)usbd_irpcancel_wrap;
 
-	switch (urb->uu_hdr.uuh_func) {
-	case URB_FUNCTION_CLASS_DEVICE:
-		type = UT_CLASS | UT_DEVICE;
-		break;
-	case URB_FUNCTION_CLASS_INTERFACE:
-		type = UT_CLASS | UT_INTERFACE;
-		break;
-	case URB_FUNCTION_CLASS_OTHER:
-		type = UT_CLASS | UT_OTHER;
-		break;
-	case URB_FUNCTION_CLASS_ENDPOINT:
-		type = UT_CLASS | UT_ENDPOINT;
-		break;
-	case URB_FUNCTION_VENDOR_DEVICE:
-		type = UT_VENDOR | UT_DEVICE;
-		break;
-	case URB_FUNCTION_VENDOR_INTERFACE:
-		type = UT_VENDOR | UT_INTERFACE;
-		break;
-	case URB_FUNCTION_VENDOR_OTHER:
-		type = UT_VENDOR | UT_OTHER;
-		break;
-	case URB_FUNCTION_VENDOR_ENDPOINT:
-		type = UT_VENDOR | UT_ENDPOINT;
-		break;
-	default:
-		/* never reached.  */
-		break;
+	nx = malloc(sizeof(struct ndisusb_xfer), M_USBDEV, M_NOWAIT | M_ZERO);
+	if (nx == NULL) {
+		device_printf(IRP_NDIS_DEV(ip), "out of memory\n");
+		return (USBD_STATUS_NO_MEMORY);
 	}
+	nx->nx_ep = ne;
+	nx->nx_priv = ip;
+	KeAcquireSpinLockAtDpcLevel(&ne->ne_lock);
+	InsertTailList((&ne->ne_pending), (&nx->nx_next));
+	KeReleaseSpinLockFromDpcLevel(&ne->ne_lock);
 
-	type |= (vcreq->uvc_trans_flags & USBD_TRANSFER_DIRECTION_IN) ?
-	    UT_READ : UT_WRITE;
-	type |= vcreq->uvc_reserved1;
-
-	req.bmRequestType = type;
-	req.bRequest = vcreq->uvc_req;
-	USETW(req.wIndex, vcreq->uvc_idx);
-	USETW(req.wValue, vcreq->uvc_value);
-	USETW(req.wLength, vcreq->uvc_trans_buflen);
+	/* we've done to setup xfer.  Let's transfer it.  */
+	ip->irp_iostat.isb_status = STATUS_PENDING;
+	ip->irp_iostat.isb_info = 0;
+	USBD_URB_STATUS(urb) = USBD_STATUS_PENDING;
+	IoMarkIrpPending(ip);
 
-	NDISUSB_LOCK(sc);
-	status = usb2_do_request(sc->ndisusb_dev, &sc->ndisusb_mtx, &req,
-	    vcreq->uvc_trans_buf);
-	NDISUSB_UNLOCK(sc);
+	error = usbd_taskadd(ip, NDISUSB_TASK_VENDOR);
+	if (error != USBD_STATUS_SUCCESS)
+		return (error);
 
-	return usbd_usb2urb(status);
+	return (USBD_STATUS_PENDING);
 }
 
 static void
@@ -872,6 +950,146 @@ extra:
 	}
 }
 
+static void
+usbd_ctrl_callback(struct usb2_xfer *xfer)
+{
+	irp *ip;
+	struct ndis_softc *sc = xfer->priv_sc;
+	struct ndisusb_ep *ne = xfer->priv_fifo;
+	struct ndisusb_xfer *nx;
+	uint8_t irql;
+	union usbd_urb *urb;
+	struct usbd_urb_vendor_or_class_request *vcreq;
+	uint8_t type = 0;
+	struct usb2_device_request req;
+
+	switch (USB_GET_STATE(xfer)) {
+	case USB_ST_TRANSFERRED:
+		nx = usbd_aq_getfirst(sc, ne);
+		if (nx == NULL)
+			return;
+
+		ip = nx->nx_priv;
+		urb = usbd_geturb(ip);
+		vcreq = &urb->uu_vcreq;
+
+		if (vcreq->uvc_trans_flags & USBD_TRANSFER_DIRECTION_IN) {
+			usb2_copy_out(xfer->frbuffers + 1, 0,
+			    vcreq->uvc_trans_buf, xfer->frlengths[1]);
+			nx->nx_urbactlen += xfer->frlengths[1];
+		}
+
+		usbd_xfer_complete(sc, ne, nx, USB_ERR_NORMAL_COMPLETION);
+		/* fall through */
+	case USB_ST_SETUP:
+next:
+		/* get next transfer */
+		KeAcquireSpinLock(&ne->ne_lock, &irql);
+		if (IsListEmpty(&ne->ne_pending)) {
+			KeReleaseSpinLock(&ne->ne_lock, irql);
+			return;
+		}
+		nx = CONTAINING_RECORD(ne->ne_pending.nle_flink,
+		    struct ndisusb_xfer, nx_next);
+		RemoveEntryList(&nx->nx_next);
+		/* add a entry to the active queue's tail.  */
+		InsertTailList((&ne->ne_active), (&nx->nx_next));
+		KeReleaseSpinLock(&ne->ne_lock, irql);
+
+		ip = nx->nx_priv;
+		urb = usbd_geturb(ip);
+		vcreq = &urb->uu_vcreq;
+
+		switch (urb->uu_hdr.uuh_func) {
+		case URB_FUNCTION_CLASS_DEVICE:
+			type = UT_CLASS | UT_DEVICE;
+			break;
+		case URB_FUNCTION_CLASS_INTERFACE:
+			type = UT_CLASS | UT_INTERFACE;
+			break;
+		case URB_FUNCTION_CLASS_OTHER:
+			type = UT_CLASS | UT_OTHER;
+			break;
+		case URB_FUNCTION_CLASS_ENDPOINT:
+			type = UT_CLASS | UT_ENDPOINT;
+			break;
+		case URB_FUNCTION_VENDOR_DEVICE:
+			type = UT_VENDOR | UT_DEVICE;
+			break;
+		case URB_FUNCTION_VENDOR_INTERFACE:
+			type = UT_VENDOR | UT_INTERFACE;
+			break;
+		case URB_FUNCTION_VENDOR_OTHER:
+			type = UT_VENDOR | UT_OTHER;
+			break;
+		case URB_FUNCTION_VENDOR_ENDPOINT:
+			type = UT_VENDOR | UT_ENDPOINT;
+			break;
+		default:
+			/* never reached.  */
+			break;
+		}
+
+		type |= (vcreq->uvc_trans_flags & USBD_TRANSFER_DIRECTION_IN) ?
+		    UT_READ : UT_WRITE;
+		type |= vcreq->uvc_reserved1;
+
+		req.bmRequestType = type;
+		req.bRequest = vcreq->uvc_req;
+		USETW(req.wIndex, vcreq->uvc_idx);
+		USETW(req.wValue, vcreq->uvc_value);
+		USETW(req.wLength, vcreq->uvc_trans_buflen);
+
+		nx->nx_urbbuf		= vcreq->uvc_trans_buf;
+		nx->nx_urblen		= vcreq->uvc_trans_buflen;
+		nx->nx_urbactlen	= 0;
+
+		usb2_copy_in(xfer->frbuffers, 0, &req, sizeof(req));
+		xfer->frlengths[0] = sizeof(req);
+		xfer->nframes = 1;
+		if (vcreq->uvc_trans_flags & USBD_TRANSFER_DIRECTION_IN) {
+			if (vcreq->uvc_trans_buflen >= USBD_CTRL_READ_BUFFER_SP)
+				device_printf(sc->ndis_dev,
+				    "warning: not enough buffer space (%d).\n",
+				    vcreq->uvc_trans_buflen);
+			xfer->frlengths[1] = MIN(xfer->max_data_length,
+			    vcreq->uvc_trans_buflen);
+			xfer->nframes = 2;
+		} else {
+			if (nx->nx_urblen > 0)
+				device_printf(sc->ndis_dev,
+				    "warning: not enough write buffer space"
+				    " (%d).\n", nx->nx_urblen);
+			/*
+			 * XXX with my local tests there was no cases to require
+			 * a extra buffer until now but it'd need to update in
+			 * the future if it needs to be.
+			 */
+			if (nx->nx_urblen > 0) {
+				usb2_copy_in(xfer->frbuffers + 1 , 0,
+				    nx->nx_urbbuf, nx->nx_urblen);
+				xfer->frlengths[1] = nx->nx_urblen;
+				xfer->nframes = 2;
+			}
+		}
+		usb2_start_hardware(xfer);
+		break;
+	default:
+		nx = usbd_aq_getfirst(sc, ne);
+		if (nx == NULL)
+			return;
+		if (xfer->error != USB_ERR_CANCELLED) {
+			xfer->flags.stall_pipe = 1;
+			device_printf(sc->ndis_dev, "usb xfer warning (%s)\n",
+			    usb2_errstr(xfer->error));
+		}
+		usbd_xfer_complete(sc, ne, nx, xfer->error);
+		if (xfer->error != USB_ERR_CANCELLED)
+			goto next;
+		break;
+	}
+}
+
 static struct ndisusb_ep *
 usbd_get_ndisep(ip, ep)
 	irp			*ip;
@@ -902,6 +1120,7 @@ usbd_xfertask(dobj, arg)
 	struct ndisusb_xferdone *nd;
 	struct ndisusb_xfer *nq;
 	struct usbd_urb_bulk_or_intr_transfer *ubi;
+	struct usbd_urb_vendor_or_class_request *vcreq;
 	union usbd_urb *urb;
 	usb2_error_t status;
 	void *priv;
@@ -922,18 +1141,19 @@ usbd_xfertask(dobj, arg)
 		ip = priv;
 		urb = usbd_geturb(ip);
 
-		KASSERT(urb->uu_hdr.uuh_func ==
-		    URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER,
-		    ("function(%d) isn't for bulk or interrupt",
-			urb->uu_hdr.uuh_func));
-
 		ip->irp_cancelfunc = NULL;
 		IRP_NDISUSB_EP(ip) = NULL;
 
 		switch (status) {
 		case USB_ERR_NORMAL_COMPLETION:
-			ubi = &urb->uu_bulkintr;
-			ubi->ubi_trans_buflen = nq->nx_urbactlen;
+			if (urb->uu_hdr.uuh_func ==
+			    URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER) {
+				ubi = &urb->uu_bulkintr;
+				ubi->ubi_trans_buflen = nq->nx_urbactlen;
+			} else {
+				vcreq = &urb->uu_vcreq;
+				vcreq->uvc_trans_buflen = nq->nx_urbactlen;
+			}
 			ip->irp_iostat.isb_info = nq->nx_urbactlen;
 			ip->irp_iostat.isb_status = STATUS_SUCCESS;
 			USBD_URB_STATUS(urb) = USBD_STATUS_SUCCESS;
@@ -1037,6 +1257,12 @@ usbd_task(dobj, arg)
 			usb2_transfer_stop(ne->ne_xfer[0]);
 			usb2_transfer_start(ne->ne_xfer[0]);
 			break;
+		case NDISUSB_TASK_VENDOR:
+			ne = (urb->uu_vcreq.uvc_trans_flags &
+			    USBD_TRANSFER_DIRECTION_IN) ?
+			    &sc->ndisusb_dread_ep : &sc->ndisusb_dwrite_ep;
+			usb2_transfer_start(ne->ne_xfer[0]);
+			break;
 		default:
 			break;
 		}

Modified: head/sys/dev/if_ndis/if_ndis_usb.c
==============================================================================
--- head/sys/dev/if_ndis/if_ndis_usb.c	Wed Mar 18 02:26:46 2009	(r189949)
+++ head/sys/dev/if_ndis/if_ndis_usb.c	Wed Mar 18 02:38:35 2009	(r189950)
@@ -210,6 +210,10 @@ ndisusb_detach(device_t self)
 
 	ndis_pnpevent_nic(self, NDIS_PNP_EVENT_SURPRISE_REMOVED);
 
+	if (sc->ndisusb_status & NDISUSB_STATUS_SETUP_EP) {
+		usb2_transfer_unsetup(sc->ndisusb_dread_ep.ne_xfer, 1);
+		usb2_transfer_unsetup(sc->ndisusb_dwrite_ep.ne_xfer, 1);
+	}
 	for (i = 0; i < NDISUSB_ENDPT_MAX; i++) {
 		ne = &sc->ndisusb_ep[i];
 		usb2_transfer_unsetup(ne->ne_xfer, 1);

Modified: head/sys/dev/if_ndis/if_ndisvar.h
==============================================================================
--- head/sys/dev/if_ndis/if_ndisvar.h	Wed Mar 18 02:26:46 2009	(r189949)
+++ head/sys/dev/if_ndis/if_ndisvar.h	Wed Mar 18 02:38:35 2009	(r189950)
@@ -146,6 +146,7 @@ struct ndisusb_task {
 	unsigned		nt_type;
 #define	NDISUSB_TASK_TSTART	0
 #define	NDISUSB_TASK_IRPCANCEL	1
+#define	NDISUSB_TASK_VENDOR	2
 	void			*nt_ctx;
 	list_entry		nt_tasklist;
 };
@@ -229,6 +230,8 @@ struct ndis_softc {
 
 	struct usb2_device	*ndisusb_dev;
 	struct mtx		ndisusb_mtx;
+	struct ndisusb_ep	ndisusb_dread_ep;
+	struct ndisusb_ep	ndisusb_dwrite_ep;
 #define	NDISUSB_GET_ENDPT(addr) \
 	((UE_GET_DIR(addr) >> 7) | (UE_GET_ADDR(addr) << 1))
 #define	NDISUSB_ENDPT_MAX	((UE_ADDR + 1) * 2)
@@ -241,6 +244,7 @@ struct ndis_softc {
 	kspin_lock		ndisusb_tasklock;
 	int			ndisusb_status;
 #define NDISUSB_STATUS_DETACH	0x1
+#define	NDISUSB_STATUS_SETUP_EP	0x2
 };
 
 #define	NDIS_LOCK(_sc)		mtx_lock(&(_sc)->ndis_mtx)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 03:29:05 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B91C1106566B;
	Wed, 18 Mar 2009 03:29:05 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A58628FC14;
	Wed, 18 Mar 2009 03:29:05 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I3T5iZ014256;
	Wed, 18 Mar 2009 03:29:05 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I3T5NK014255;
	Wed, 18 Mar 2009 03:29:05 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180329.n2I3T5NK014255@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 03:29:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189951 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/mii
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 03:29:06 -0000

Author: yongari
Date: Wed Mar 18 03:29:05 2009
New Revision: 189951
URL: http://svn.freebsd.org/changeset/base/189951

Log:
  MFC r189564:
    Report current link state while auto-negotiation is in progress.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mii/ip1000phy.c

Modified: stable/7/sys/dev/mii/ip1000phy.c
==============================================================================
--- stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 02:38:35 2009	(r189950)
+++ stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:29:05 2009	(r189951)
@@ -296,7 +296,7 @@ done:
 		 * Only retry autonegotiation every mii_anegticks seconds.
 		 */
 		if (sc->mii_ticks <= sc->mii_anegticks)
-			return (0);
+			break;
 
 		sc->mii_ticks = 0;
 		ip1000phy_mii_phy_auto(sc);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 03:31:20 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 23D9A106564A;
	Wed, 18 Mar 2009 03:31:20 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 104A28FC1A;
	Wed, 18 Mar 2009 03:31:20 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I3VJPd014355;
	Wed, 18 Mar 2009 03:31:19 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I3VJ2E014354;
	Wed, 18 Mar 2009 03:31:19 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180331.n2I3VJ2E014354@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 03:31:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189952 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/mii
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 03:31:20 -0000

Author: yongari
Date: Wed Mar 18 03:31:19 2009
New Revision: 189952
URL: http://svn.freebsd.org/changeset/base/189952

Log:
  MFC r189565:
    For unknown speed, explicitly set IFM_NONE.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mii/ip1000phy.c

Modified: stable/7/sys/dev/mii/ip1000phy.c
==============================================================================
--- stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:29:05 2009	(r189951)
+++ stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:31:19 2009	(r189952)
@@ -353,6 +353,9 @@ ip1000phy_status(struct mii_softc *sc)
 		case IP1000PHY_LSR_SPEED_1000:
 			mii->mii_media_active |= IFM_1000_T;
 			break;
+		default:
+			mii->mii_media_active |= IFM_NONE;
+			return;
 		}
 		if ((stat & IP1000PHY_LSR_FULL_DUPLEX) != 0)
 			mii->mii_media_active |= IFM_FDX;
@@ -373,6 +376,9 @@ ip1000phy_status(struct mii_softc *sc)
 		case PC_LinkSpeed_1000:
 			mii->mii_media_active |= IFM_1000_T;
 			break;
+		default:
+			mii->mii_media_active |= IFM_NONE;
+			return;
 		}
 		if ((stat & PC_PhyDuplexStatus) != 0)
 			mii->mii_media_active |= IFM_FDX;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 03:33:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B58CC106566C;
	Wed, 18 Mar 2009 03:33:45 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 87B1D8FC17;
	Wed, 18 Mar 2009 03:33:45 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I3Xj5O014458;
	Wed, 18 Mar 2009 03:33:45 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I3Xj2L014457;
	Wed, 18 Mar 2009 03:33:45 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180333.n2I3Xj2L014457@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 03:33:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189953 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/mii
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 03:33:46 -0000

Author: yongari
Date: Wed Mar 18 03:33:45 2009
New Revision: 189953
URL: http://svn.freebsd.org/changeset/base/189953

Log:
  MFC r189566:
    Use mii_phy_add_media() and remove setting each media type.
    While I'm here, don't set mii_anegticks as it's set by
    mii_phy_add_media().

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mii/ip1000phy.c

Modified: stable/7/sys/dev/mii/ip1000phy.c
==============================================================================
--- stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:31:19 2009	(r189952)
+++ stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:33:45 2009	(r189953)
@@ -118,7 +118,6 @@ ip1000phy_attach(device_t dev)
 	sc->mii_phy = ma->mii_phyno;
 	sc->mii_service = ip1000phy_service;
 	sc->mii_pdata = mii;
-	sc->mii_anegticks = MII_ANEGTICKS_GIGE;
 	sc->mii_flags |= MIIF_NOISOLATE;
 
 	mii->mii_instance++;
@@ -126,37 +125,14 @@ ip1000phy_attach(device_t dev)
 	isc->model = MII_MODEL(ma->mii_id2);
 	isc->revision = MII_REV(ma->mii_id2);
 
+	sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
+	if (sc->mii_capabilities & BMSR_EXTSTAT)
+		sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR);
 	device_printf(dev, " ");
 
-#define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
-
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
-	    BMCR_ISO);
-
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, 0, sc->mii_inst),
-	    IP1000PHY_BMCR_10);
-	printf("10baseT, ");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_10_T, IFM_FDX, sc->mii_inst),
-	    IP1000PHY_BMCR_10 | IP1000PHY_BMCR_FDX);
-	printf("10baseT-FDX, ");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, 0, sc->mii_inst),
-	    IP1000PHY_BMCR_100);
-	printf("100baseTX, ");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_FDX, sc->mii_inst),
-	    IP1000PHY_BMCR_100 | IP1000PHY_BMCR_FDX);
-	printf("100baseTX-FDX, ");
-	/* 1000baseT half-duplex, really supported? */
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, 0, sc->mii_inst),
-	    IP1000PHY_BMCR_1000);
-	printf("1000baseTX, ");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_1000_T, IFM_FDX, sc->mii_inst),
-	    IP1000PHY_BMCR_1000 | IP1000PHY_BMCR_FDX);
-	printf("1000baseTX-FDX, ");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_AUTO, 0, sc->mii_inst), 0);
-	printf("auto\n");
-#undef ADD
-
 	ip1000phy_reset(sc);
+	mii_phy_add_media(sc);
+	printf("\n");
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
 	return(0);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 03:36:09 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 39C6D106567D;
	Wed, 18 Mar 2009 03:36:09 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0B6498FC19;
	Wed, 18 Mar 2009 03:36:09 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I3a8oO014552;
	Wed, 18 Mar 2009 03:36:08 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I3a80G014550;
	Wed, 18 Mar 2009 03:36:08 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903180336.n2I3a80G014550@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Wed, 18 Mar 2009 03:36:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189954 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/mii
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 03:36:10 -0000

Author: yongari
Date: Wed Mar 18 03:36:08 2009
New Revision: 189954
URL: http://svn.freebsd.org/changeset/base/189954

Log:
  MFC r189567:
    For IP1001 PHYs, read auto-negotiation advertisement register to
    get default next page configuration. While I'm here explicitly set
    IP1000PHY_ANAR_CSMA bit. This bit is read-only and always set
    by hardware so setting it has no effect but it would clear the
    intention. With this change controllers that couldn't establish
    1000baseT link should work.
  
    PR:	kern/130846

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mii/ip1000phy.c
  stable/7/sys/dev/mii/ip1000phyreg.h

Modified: stable/7/sys/dev/mii/ip1000phy.c
==============================================================================
--- stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:33:45 2009	(r189953)
+++ stable/7/sys/dev/mii/ip1000phy.c	Wed Mar 18 03:36:08 2009	(r189954)
@@ -391,18 +391,24 @@ ip1000phy_status(struct mii_softc *sc)
 }
 
 static int
-ip1000phy_mii_phy_auto(struct mii_softc *mii)
+ip1000phy_mii_phy_auto(struct mii_softc *sc)
 {
+	struct ip1000phy_softc *isc;
 	uint32_t reg;
 
-	PHY_WRITE(mii, IP1000PHY_MII_ANAR,
-	    IP1000PHY_ANAR_10T | IP1000PHY_ANAR_10T_FDX |
+	isc = (struct ip1000phy_softc *)sc;
+	reg = 0;
+	if (isc->model == MII_MODEL_ICPLUS_IP1001)
+		reg = PHY_READ(sc, IP1000PHY_MII_ANAR);
+	reg |= IP1000PHY_ANAR_10T | IP1000PHY_ANAR_10T_FDX |
 	    IP1000PHY_ANAR_100TX | IP1000PHY_ANAR_100TX_FDX |
-	    IP1000PHY_ANAR_PAUSE | IP1000PHY_ANAR_APAUSE);
+	    IP1000PHY_ANAR_PAUSE | IP1000PHY_ANAR_APAUSE;
+	PHY_WRITE(sc, IP1000PHY_MII_ANAR, reg | IP1000PHY_ANAR_CSMA);
+
 	reg = IP1000PHY_1000CR_1000T | IP1000PHY_1000CR_1000T_FDX;
 	reg |= IP1000PHY_1000CR_MASTER;
-	PHY_WRITE(mii, IP1000PHY_MII_1000CR, reg);
-	PHY_WRITE(mii, IP1000PHY_MII_BMCR, (IP1000PHY_BMCR_FDX |
+	PHY_WRITE(sc, IP1000PHY_MII_1000CR, reg);
+	PHY_WRITE(sc, IP1000PHY_MII_BMCR, (IP1000PHY_BMCR_FDX |
 	    IP1000PHY_BMCR_AUTOEN | IP1000PHY_BMCR_STARTNEG));
 
 	return (EJUSTRETURN);

Modified: stable/7/sys/dev/mii/ip1000phyreg.h
==============================================================================
--- stable/7/sys/dev/mii/ip1000phyreg.h	Wed Mar 18 03:33:45 2009	(r189953)
+++ stable/7/sys/dev/mii/ip1000phyreg.h	Wed Mar 18 03:36:08 2009	(r189954)
@@ -61,6 +61,7 @@
 
 /* Autonegotiation advertisement register */
 #define	IP1000PHY_MII_ANAR		0x04
+#define	IP1000PHY_ANAR_CSMA		0x0001
 #define	IP1000PHY_ANAR_10T		0x0020
 #define	IP1000PHY_ANAR_10T_FDX		0x0040
 #define	IP1000PHY_ANAR_100TX		0x0080

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 03:56:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1B932106566C;
	Wed, 18 Mar 2009 03:56:27 +0000 (UTC)
	(envelope-from ganbold@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 094978FC08;
	Wed, 18 Mar 2009 03:56:27 +0000 (UTC)
	(envelope-from ganbold@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2I3uQPH014943;
	Wed, 18 Mar 2009 03:56:26 GMT (envelope-from ganbold@svn.freebsd.org)
Received: (from ganbold@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2I3uQRi014942;
	Wed, 18 Mar 2009 03:56:26 GMT (envelope-from ganbold@svn.freebsd.org)
Message-Id: <200903180356.n2I3uQRi014942@svn.freebsd.org>
From: Ganbold Tsagaankhuu 
Date: Wed, 18 Mar 2009 03:56:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189955 - head/usr.sbin/sysinstall
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 03:56:27 -0000

Author: ganbold (doc committer)
Date: Wed Mar 18 03:56:26 2009
New Revision: 189955
URL: http://svn.freebsd.org/changeset/base/189955

Log:
  Clear confirm password field first when adding new user.
  
  PR: i386/132580
  Reported by: 	ilgiz 
  Approved by:    kensmith

Modified:
  head/usr.sbin/sysinstall/user.c

Modified: head/usr.sbin/sysinstall/user.c
==============================================================================
--- head/usr.sbin/sysinstall/user.c	Wed Mar 18 03:36:08 2009	(r189954)
+++ head/usr.sbin/sysinstall/user.c	Wed Mar 18 03:56:26 2009	(r189955)
@@ -698,6 +698,7 @@ userAddUser(dialogMenuItem *self)
     CLEAR(ugroup);
     CLEAR(gecos);
     CLEAR(passwd);
+    CLEAR(confpasswd);
     CLEAR(umemb);
     CLEAR(homedir);
     CLEAR(shell);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 11:30:47 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74A78106566B;
	Wed, 18 Mar 2009 11:30:47 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 609CB8FC1E;
	Wed, 18 Mar 2009 11:30:47 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IBUl7x025149;
	Wed, 18 Mar 2009 11:30:47 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IBUlaH025146;
	Wed, 18 Mar 2009 11:30:47 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181130.n2IBUlaH025146@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 11:30:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189956 - in stable/7: . sys sys/contrib/pf
	sys/dev/ath/ath_hal sys/dev/cxgb sys/netinet sys/netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 11:30:48 -0000

Author: bz
Date: Wed Mar 18 11:30:47 2009
New Revision: 189956
URL: http://svn.freebsd.org/changeset/base/189956

Log:
  MFC r184096:
  
    Bring over the change switching from using sequential to random
    ephemeral port allocation as implemented in netinet/in_pcb.c rev. 1.143
    (initially from OpenBSD) and follow-up commits during the last four and
    a half years including rev. 1.157, 1.162 and 1.199.
    This now is relying on the same infrastructure as has been implemented
    in in_pcb.c since rev. 1.199.
  
  Reviewed by:	rwatson (UPDATING)

Modified:
  stable/7/UPDATING
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/netinet/in_pcb.h
  stable/7/sys/netinet6/in6_src.c

Modified: stable/7/UPDATING
==============================================================================
--- stable/7/UPDATING	Wed Mar 18 03:56:26 2009	(r189955)
+++ stable/7/UPDATING	Wed Mar 18 11:30:47 2009	(r189956)
@@ -8,6 +8,13 @@ Items affecting the ports and packages s
 /usr/ports/UPDATING.  Please read that file before running
 portupgrade.
 
+20090318:
+	Change IPv6 ephemeral port allocation from sequential to
+	random allocation, like IPv4 has done for more than four years.
+ 	The implementation shares infrastructure with IPv4. This
+	means that there is only one set of sysctls to control both
+	IPv4 and IPv6. See ip(4) man page for details.
+
 20090312:
 	A workaround is committed to allow the creation of System V shared
 	memory segment of size > 2 GB on the 64-bit architectures.

Modified: stable/7/sys/netinet/in_pcb.h
==============================================================================
--- stable/7/sys/netinet/in_pcb.h	Wed Mar 18 03:56:26 2009	(r189955)
+++ stable/7/sys/netinet/in_pcb.h	Wed Mar 18 11:30:47 2009	(r189956)
@@ -483,6 +483,9 @@ extern int	ipport_firstauto;
 extern int	ipport_lastauto;
 extern int	ipport_hifirstauto;
 extern int	ipport_hilastauto;
+extern int	ipport_randomized;
+extern int	ipport_stoprandom;
+extern int	ipport_tcpallocs;
 extern struct callout ipport_tick_callout;
 
 void	in_pcbpurgeif0(struct inpcbinfo *, struct ifnet *);

Modified: stable/7/sys/netinet6/in6_src.c
==============================================================================
--- stable/7/sys/netinet6/in6_src.c	Wed Mar 18 03:56:26 2009	(r189955)
+++ stable/7/sys/netinet6/in6_src.c	Wed Mar 18 11:30:47 2009	(r189956)
@@ -91,6 +91,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -774,7 +777,7 @@ in6_pcbsetport(struct in6_addr *laddr, s
 {
 	struct socket *so = inp->inp_socket;
 	u_int16_t lport = 0, first, last, *lastport;
-	int count, error, wild = 0;
+	int count, error, wild = 0, dorandom;
 	struct inpcbinfo *pcbinfo = inp->inp_pcbinfo;
 
 	INP_INFO_WLOCK_ASSERT(pcbinfo);
@@ -807,56 +810,58 @@ in6_pcbsetport(struct in6_addr *laddr, s
 		last  = ipport_lastauto;
 		lastport = &pcbinfo->ipi_lastport;
 	}
+
 	/*
-	 * Simple check to ensure all ports are not used up causing
-	 * a deadlock here.
-	 *
-	 * We split the two cases (up and down) so that the direction
-	 * is not being tested on each round of the loop.
+	 * For UDP, use random port allocation as long as the user
+	 * allows it.  For TCP (and as of yet unknown) connections,
+	 * use random port allocation only if the user allows it AND
+	 * ipport_tick() allows it.
 	 */
-	if (first > last) {
-		/*
-		 * counting down
-		 */
-		count = first - last;
+	if (ipport_randomized &&
+	    (!ipport_stoprandom || pcbinfo == &udbinfo))
+		dorandom = 1;
+	else
+		dorandom = 0;
+	/*
+	 * It makes no sense to do random port allocation if
+	 * we have the only port available.
+	 */
+	if (first == last)
+		dorandom = 0;
+	/* Make sure to not include UDP packets in the count. */
+	if (pcbinfo != &udbinfo)
+		ipport_tcpallocs++;
 
-		do {
-			if (count-- < 0) {	/* completely used? */
-				/*
-				 * Undo any address bind that may have
-				 * occurred above.
-				 */
-				inp->in6p_laddr = in6addr_any;
-				return (EAGAIN);
-			}
-			--*lastport;
-			if (*lastport > first || *lastport < last)
-				*lastport = first;
-			lport = htons(*lastport);
-		} while (in6_pcblookup_local(pcbinfo, &inp->in6p_laddr,
-		    lport, wild, cred));
-	} else {
-		/*
-			 * counting up
-			 */
-		count = last - first;
+	/*
+	 * Instead of having two loops further down counting up or down
+	 * make sure that first is always <= last and go with only one
+	 * code path implementing all logic.
+	 */
+	if (first > last) {
+		u_int16_t aux;
 
-		do {
-			if (count-- < 0) {	/* completely used? */
-				/*
-				 * Undo any address bind that may have
-				 * occurred above.
-				 */
-				inp->in6p_laddr = in6addr_any;
-				return (EAGAIN);
-			}
-			++*lastport;
-			if (*lastport < first || *lastport > last)
-				*lastport = first;
-			lport = htons(*lastport);
-		} while (in6_pcblookup_local(pcbinfo, &inp->in6p_laddr,
-		    lport, wild, cred));
-	}
+		aux = first;
+		first = last;
+		last = aux;
+	}
+
+	if (dorandom)
+		*lastport = first + (arc4random() % (last - first));
+
+	count = last - first;
+
+	do {
+		if (count-- < 0) {	/* completely used? */
+			/* Undo an address bind that may have occurred. */
+			inp->in6p_laddr = in6addr_any;
+			return (EADDRNOTAVAIL);
+		}
+		++*lastport;
+		if (*lastport < first || *lastport > last)
+			*lastport = first;
+		lport = htons(*lastport);
+	} while (in6_pcblookup_local(pcbinfo, &inp->in6p_laddr,
+	    lport, wild, cred));
 
 	inp->inp_lport = lport;
 	if (in_pcbinshash(inp) != 0) {

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 12:25:41 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5289D106567D;
	Wed, 18 Mar 2009 12:25:41 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 253F08FC13;
	Wed, 18 Mar 2009 12:25:41 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ICPfx6026169;
	Wed, 18 Mar 2009 12:25:41 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ICPffj026168;
	Wed, 18 Mar 2009 12:25:41 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181225.n2ICPffj026168@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 12:25:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189957 - in stable/7/sys: . contrib/pf dev/cxgb kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 12:25:42 -0000

Author: bz
Date: Wed Mar 18 12:25:40 2009
New Revision: 189957
URL: http://svn.freebsd.org/changeset/base/189957

Log:
  MFC r185583:
  
    Fix a credential reference leak. [1]
  
    Close subtle but relatively unlikely race conditions when
    propagating the vnode write error to other active sessions
    tracing to the same vnode, without holding a reference on
    the vnode anymore. [2]
  
    PR:           kern/126368 [1]
    Submitted by: rwatson [2]
    Reviewed by:  kib, rwatson

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/kern_ktrace.c

Modified: stable/7/sys/kern/kern_ktrace.c
==============================================================================
--- stable/7/sys/kern/kern_ktrace.c	Wed Mar 18 11:30:47 2009	(r189956)
+++ stable/7/sys/kern/kern_ktrace.c	Wed Mar 18 12:25:40 2009	(r189957)
@@ -907,12 +907,7 @@ ktr_writerequest(struct thread *td, stru
 	 */
 	mtx_lock(&ktrace_mtx);
 	vp = td->td_proc->p_tracevp;
-	if (vp != NULL)
-		VREF(vp);
 	cred = td->td_proc->p_tracecred;
-	if (cred != NULL)
-		crhold(cred);
-	mtx_unlock(&ktrace_mtx);
 
 	/*
 	 * If vp is NULL, the vp has been cleared out from under this
@@ -921,9 +916,13 @@ ktr_writerequest(struct thread *td, stru
 	 */
 	if (vp == NULL) {
 		KASSERT(cred == NULL, ("ktr_writerequest: cred != NULL"));
+		mtx_unlock(&ktrace_mtx);
 		return;
 	}
+	VREF(vp);
 	KASSERT(cred != NULL, ("ktr_writerequest: cred == NULL"));
+	crhold(cred);
+	mtx_unlock(&ktrace_mtx);
 
 	kth = &req->ktr_header;
 	datalen = data_lengths[(u_short)kth->ktr_type & ~KTR_DROP];
@@ -963,18 +962,26 @@ ktr_writerequest(struct thread *td, stru
 		error = VOP_WRITE(vp, &auio, IO_UNIT | IO_APPEND, cred);
 	VOP_UNLOCK(vp, 0, td);
 	vn_finished_write(mp);
-	vrele(vp);
-	VFS_UNLOCK_GIANT(vfslocked);
-	if (!error)
+	crfree(cred);
+	if (!error) {
+		vrele(vp);
+		VFS_UNLOCK_GIANT(vfslocked);
 		return;
+	}
+	VFS_UNLOCK_GIANT(vfslocked);
+
 	/*
 	 * If error encountered, give up tracing on this vnode.  We defer
 	 * all the vrele()'s on the vnode until after we are finished walking
 	 * the various lists to avoid needlessly holding locks.
+	 * NB: at this point we still hold the vnode reference that must
+	 * not go away as we need the valid vnode to compare with. Thus let
+	 * vrele_count start at 1 and the reference will be freed
+	 * by the loop at the end after our last use of vp.
 	 */
 	log(LOG_NOTICE, "ktrace write failed, errno %d, tracing stopped\n",
 	    error);
-	vrele_count = 0;
+	vrele_count = 1;
 	/*
 	 * First, clear this vnode from being used by any processes in the
 	 * system.

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 13:19:47 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 367DE1065672;
	Wed, 18 Mar 2009 13:19:47 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 22F348FC1D;
	Wed, 18 Mar 2009 13:19:47 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IDJlIJ027223;
	Wed, 18 Mar 2009 13:19:47 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IDJlrj027222;
	Wed, 18 Mar 2009 13:19:47 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903181319.n2IDJlrj027222@svn.freebsd.org>
From: Konstantin Belousov 
Date: Wed, 18 Mar 2009 13:19:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189958 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/devfs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 13:19:49 -0000

Author: kib
Date: Wed Mar 18 13:19:46 2009
New Revision: 189958
URL: http://svn.freebsd.org/changeset/base/189958

Log:
  MFC r189693:
  Enable advisory file locking for devfs vnodes.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/devfs/devfs_vnops.c

Modified: stable/7/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- stable/7/sys/fs/devfs/devfs_vnops.c	Wed Mar 18 12:25:40 2009	(r189957)
+++ stable/7/sys/fs/devfs/devfs_vnops.c	Wed Mar 18 13:19:46 2009	(r189958)
@@ -387,14 +387,6 @@ devfs_access(struct vop_access_args *ap)
 
 /* ARGSUSED */
 static int
-devfs_advlock(struct vop_advlock_args *ap)
-{
-
-	return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL);
-}
-
-/* ARGSUSED */
-static int
 devfs_close(struct vop_close_args *ap)
 {
 	struct vnode *vp = ap->a_vp, *oldvp;
@@ -1501,7 +1493,6 @@ static struct vop_vector devfs_specops =
 	.vop_default =		&default_vnodeops,
 
 	.vop_access =		devfs_access,
-	.vop_advlock =		devfs_advlock,
 	.vop_bmap =		VOP_PANIC,
 	.vop_close =		devfs_close,
 	.vop_create =		VOP_PANIC,

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 13:40:37 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B6BAD1065689;
	Wed, 18 Mar 2009 13:40:37 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A3A068FC20;
	Wed, 18 Mar 2009 13:40:37 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IDeb6P027621;
	Wed, 18 Mar 2009 13:40:37 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IDebUF027618;
	Wed, 18 Mar 2009 13:40:37 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903181340.n2IDebUF027618@svn.freebsd.org>
From: Konstantin Belousov 
Date: Wed, 18 Mar 2009 13:40:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189959 - head/libexec/rtld-elf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 13:40:38 -0000

Author: kib
Date: Wed Mar 18 13:40:37 2009
New Revision: 189959
URL: http://svn.freebsd.org/changeset/base/189959

Log:
  Implement the dynamic string token substitution in the rpath and
  soneeded pathes. The $ORIGIN, $OSNAME, $OSREL and $PLATFORM tokens
  are supported. Enabling the substitution requires DF_ORIGIN flag in
  DT_FLAGS or DF_1_ORIGIN if DF_FLAGS_1, that may be set with -z origin
  gnu ld flag. Translation is unconditionally disabled for setuid/setgid
  processes.
  
  The $ORIGIN translation relies on the AT_EXECPATH auxinfo supplied
  by kernel.
  
  Requested by:	maho
  Tested by:	maho, pho
  Reviewed by:	kan

Modified:
  head/libexec/rtld-elf/map_object.c
  head/libexec/rtld-elf/rtld.c
  head/libexec/rtld-elf/rtld.h

Modified: head/libexec/rtld-elf/map_object.c
==============================================================================
--- head/libexec/rtld-elf/map_object.c	Wed Mar 18 13:19:46 2009	(r189958)
+++ head/libexec/rtld-elf/map_object.c	Wed Mar 18 13:40:37 2009	(r189959)
@@ -348,6 +348,8 @@ obj_free(Obj_Entry *obj)
 	free(obj->vertab);
     if (obj->origin_path)
 	free(obj->origin_path);
+    if (obj->z_origin)
+	free(obj->rpath);
     if (obj->priv)
 	free(obj->priv);
     if (obj->path)

Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c	Wed Mar 18 13:19:46 2009	(r189958)
+++ head/libexec/rtld-elf/rtld.c	Wed Mar 18 13:40:37 2009	(r189959)
@@ -41,6 +41,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 #include 
@@ -118,6 +119,7 @@ static void objlist_remove_unref(Objlist
 static void *path_enumerate(const char *, path_enum_proc, void *);
 static int relocate_objects(Obj_Entry *, bool, Obj_Entry *);
 static int rtld_dirname(const char *, char *);
+static int rtld_dirname_abs(const char *, char *);
 static void rtld_exit(void);
 static char *search_library_path(const char *, const char *);
 static const void **get_program_var_addr(const char *);
@@ -134,6 +136,9 @@ static void unlink_object(Obj_Entry *);
 static void unload_object(Obj_Entry *);
 static void unref_dag(Obj_Entry *);
 static void ref_dag(Obj_Entry *);
+static int origin_subst_one(char **res, const char *real, const char *kw,
+  const char *subst, char *may_free);
+static char *origin_subst(const char *real, const char *origin_path);
 static int  rtld_verify_versions(const Objlist *);
 static int  rtld_verify_object_versions(Obj_Entry *);
 static void object_add_name(Obj_Entry *, const char *);
@@ -412,7 +417,25 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_
 	    die();
     }
 
-    obj_main->path = xstrdup(argv0);
+    if (aux_info[AT_EXECPATH] != 0) {
+	    char *kexecpath;
+	    char buf[MAXPATHLEN];
+
+	    kexecpath = aux_info[AT_EXECPATH]->a_un.a_ptr;
+	    dbg("AT_EXECPATH %p %s", kexecpath, kexecpath);
+	    if (kexecpath[0] == '/')
+		    obj_main->path = kexecpath;
+	    else if (getcwd(buf, sizeof(buf)) == NULL ||
+		     strlcat(buf, "/", sizeof(buf)) >= sizeof(buf) ||
+		     strlcat(buf, kexecpath, sizeof(buf)) >= sizeof(buf))
+		    obj_main->path = xstrdup(argv0);
+	    else
+		    obj_main->path = xstrdup(buf);
+    } else {
+	    dbg("No AT_EXECPATH");
+	    obj_main->path = xstrdup(argv0);
+    }
+    dbg("obj_main path %s", obj_main->path);
     obj_main->mainprog = true;
 
     /*
@@ -614,6 +637,83 @@ basename(const char *name)
     return p != NULL ? p + 1 : name;
 }
 
+static struct utsname uts;
+
+static int
+origin_subst_one(char **res, const char *real, const char *kw, const char *subst,
+    char *may_free)
+{
+    const char *p, *p1;
+    char *res1;
+    int subst_len;
+    int kw_len;
+
+    res1 = *res = NULL;
+    p = real;
+    subst_len = kw_len = 0;
+    for (;;) {
+	 p1 = strstr(p, kw);
+	 if (p1 != NULL) {
+	     if (subst_len == 0) {
+		 subst_len = strlen(subst);
+		 kw_len = strlen(kw);
+	     }
+	     if (*res == NULL) {
+		 *res = xmalloc(PATH_MAX);
+		 res1 = *res;
+	     }
+	     if ((res1 - *res) + subst_len + (p1 - p) >= PATH_MAX) {
+		 _rtld_error("Substitution of %s in %s cannot be performed",
+		     kw, real);
+		 if (may_free != NULL)
+		     free(may_free);
+		 free(res);
+		 return (false);
+	     }
+	     memcpy(res1, p, p1 - p);
+	     res1 += p1 - p;
+	     memcpy(res1, subst, subst_len);
+	     res1 += subst_len;
+	     p = p1 + kw_len;
+	 } else {
+	    if (*res == NULL) {
+		if (may_free != NULL)
+		    *res = may_free;
+		else
+		    *res = xstrdup(real);
+		return (true);
+	    }
+	    *res1 = '\0';
+	    if (may_free != NULL)
+		free(may_free);
+	    if (strlcat(res1, p, PATH_MAX - (res1 - *res)) >= PATH_MAX) {
+		free(res);
+		return (false);
+	    }
+	    return (true);
+	 }
+    }
+}
+
+static char *
+origin_subst(const char *real, const char *origin_path)
+{
+    char *res1, *res2, *res3, *res4;
+
+    if (uts.sysname[0] == '\0') {
+	if (uname(&uts) != 0) {
+	    _rtld_error("utsname failed: %d", errno);
+	    return (NULL);
+	}
+    }
+    if (!origin_subst_one(&res1, real, "$ORIGIN", origin_path, NULL) ||
+	!origin_subst_one(&res2, res1, "$OSNAME", uts.sysname, res1) ||
+	!origin_subst_one(&res3, res2, "$OSREL", uts.release, res2) ||
+	!origin_subst_one(&res4, res3, "$PLATFORM", uts.machine, res3))
+	    return (NULL);
+    return (res4);
+}
+
 static void
 die(void)
 {
@@ -790,11 +890,8 @@ digest_dynamic(Obj_Entry *obj, int early
 #endif
 
 	case DT_FLAGS:
-		if (dynp->d_un.d_val & DF_ORIGIN) {
-		    obj->origin_path = xmalloc(PATH_MAX);
-		    if (rtld_dirname(obj->path, obj->origin_path) == -1)
-			die();
-		}
+		if ((dynp->d_un.d_val & DF_1_ORIGIN) && trust)
+		    obj->z_origin = true;
 		if (dynp->d_un.d_val & DF_SYMBOLIC)
 		    obj->symbolic = true;
 		if (dynp->d_un.d_val & DF_TEXTREL)
@@ -826,6 +923,15 @@ digest_dynamic(Obj_Entry *obj, int early
 		break;
 #endif
 
+	case DT_FLAGS_1:
+		if ((dynp->d_un.d_val & DF_1_ORIGIN) && trust)
+		    obj->z_origin = true;
+		if (dynp->d_un.d_val & DF_1_GLOBAL)
+			/* XXX */;
+		if (dynp->d_un.d_val & DF_1_BIND_NOW)
+		    obj->bind_now = true;
+	    break;
+
 	default:
 	    if (!early) {
 		dbg("Ignoring d_tag %ld = %#lx", (long)dynp->d_tag,
@@ -844,8 +950,17 @@ digest_dynamic(Obj_Entry *obj, int early
 	obj->pltrelsize = 0;
     }
 
-    if (dyn_rpath != NULL)
-	obj->rpath = obj->strtab + dyn_rpath->d_un.d_val;
+    if (obj->z_origin && obj->origin_path == NULL) {
+	obj->origin_path = xmalloc(PATH_MAX);
+	if (rtld_dirname_abs(obj->path, obj->origin_path) == -1)
+	    die();
+    }
+
+    if (dyn_rpath != NULL) {
+	obj->rpath = (char *)obj->strtab + dyn_rpath->d_un.d_val;
+	if (obj->z_origin)
+	    obj->rpath = origin_subst(obj->rpath, obj->origin_path);
+    }
 
     if (dyn_soname != NULL)
 	object_add_name(obj, obj->strtab + dyn_soname->d_un.d_val);
@@ -1003,7 +1118,10 @@ find_library(const char *xname, const Ob
 	      xname);
 	    return NULL;
 	}
-	return xstrdup(xname);
+	if (refobj->z_origin)
+	    return origin_subst(xname, refobj->origin_path);
+	else
+	    return xstrdup(xname);
     }
 
     if (libmap_disable || (refobj == NULL) ||
@@ -2309,6 +2427,23 @@ rtld_dirname(const char *path, char *bna
     return (0);
 }
 
+static int
+rtld_dirname_abs(const char *path, char *base)
+{
+	char base_rel[PATH_MAX];
+
+	if (rtld_dirname(path, base) == -1)
+		return (-1);
+	if (base[0] == '/')
+		return (0);
+	if (getcwd(base_rel, sizeof(base_rel)) == NULL ||
+	    strlcat(base_rel, "/", sizeof(base_rel)) >= sizeof(base_rel) ||
+	    strlcat(base_rel, base, sizeof(base_rel)) >= sizeof(base_rel))
+		return (-1);
+	strcpy(base, base_rel);
+	return (0);
+}
+
 static void
 linkmap_add(Obj_Entry *obj)
 {

Modified: head/libexec/rtld-elf/rtld.h
==============================================================================
--- head/libexec/rtld-elf/rtld.h	Wed Mar 18 13:19:46 2009	(r189958)
+++ head/libexec/rtld-elf/rtld.h	Wed Mar 18 13:40:37 2009	(r189959)
@@ -195,7 +195,7 @@ typedef struct Struct_Obj_Entry {
     const Elf_Hashelt *chains;	/* Hash table chain array */
     unsigned long nchains;	/* Number of chains */
 
-    const char *rpath;		/* Search path specified in object */
+    char *rpath;		/* Search path specified in object */
     Needed_Entry *needed;	/* Shared objects needed by this one (%) */
 
     STAILQ_HEAD(, Struct_Name_Entry) names; /* List of names for this object we
@@ -216,6 +216,7 @@ typedef struct Struct_Obj_Entry {
     bool init_done : 1;		/* Already have added object to init list */
     bool tls_done : 1;		/* Already allocated offset for static TLS */
     bool phdr_alloc : 1;	/* Phdr is allocated and needs to be freed. */
+    bool z_origin : 1;		/* Process rpath and soname tokens */
 
     struct link_map linkmap;	/* for GDB and dlinfo() */
     Objlist dldags;		/* Object belongs to these dlopened DAGs (%) */

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 13:47:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7888E106564A;
	Wed, 18 Mar 2009 13:47:45 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 49FFE8FC08;
	Wed, 18 Mar 2009 13:47:45 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IDljHt027814;
	Wed, 18 Mar 2009 13:47:45 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IDljQN027812;
	Wed, 18 Mar 2009 13:47:45 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181347.n2IDljQN027812@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 13:47:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189960 - in stable/7/sys: . contrib/pf dev/cxgb kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 13:47:46 -0000

Author: bz
Date: Wed Mar 18 13:47:44 2009
New Revision: 189960
URL: http://svn.freebsd.org/changeset/base/189960

Log:
  MFC r185893:
    Make sure nmbclusters are initialized before maxsockets
    by running the tunable_mbinit() SYSINIT at SI_ORDER_MIDDLE
    before the init_maxsockets() SYSINT at SI_ORDER_ANY.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/kern_mbuf.c
  stable/7/sys/kern/uipc_socket.c

Modified: stable/7/sys/kern/kern_mbuf.c
==============================================================================
--- stable/7/sys/kern/kern_mbuf.c	Wed Mar 18 13:40:37 2009	(r189959)
+++ stable/7/sys/kern/kern_mbuf.c	Wed Mar 18 13:47:44 2009	(r189960)
@@ -101,6 +101,11 @@ int nmbjumbo9;			/* limits number of 9k 
 int nmbjumbo16;			/* limits number of 16k jumbo clusters */
 struct mbstat mbstat;
 
+/*
+ * tunable_mbinit() has to be run before init_maxsockets() thus
+ * the SYSINIT order below is SI_ORDER_MIDDLE while init_maxsockets()
+ * runs at SI_ORDER_ANY.
+ */
 static void
 tunable_mbinit(void *dummy)
 {
@@ -112,7 +117,7 @@ tunable_mbinit(void *dummy)
 	nmbjumbo16 = nmbjumbo9 / 2;
 	TUNABLE_INT_FETCH("kern.ipc.nmbclusters", &nmbclusters);
 }
-SYSINIT(tunable_mbinit, SI_SUB_TUNABLES, SI_ORDER_ANY, tunable_mbinit, NULL);
+SYSINIT(tunable_mbinit, SI_SUB_TUNABLES, SI_ORDER_MIDDLE, tunable_mbinit, NULL);
 
 /* XXX: These should be tuneables. Can't change UMA limits on the fly. */
 static int

Modified: stable/7/sys/kern/uipc_socket.c
==============================================================================
--- stable/7/sys/kern/uipc_socket.c	Wed Mar 18 13:40:37 2009	(r189959)
+++ stable/7/sys/kern/uipc_socket.c	Wed Mar 18 13:47:44 2009	(r189960)
@@ -237,7 +237,8 @@ SYSCTL_PROC(_kern_ipc, OID_AUTO, maxsock
     "Maximum number of sockets avaliable");
 
 /*
- * Initialise maxsockets.
+ * Initialise maxsockets.  This SYSINIT must be run after
+ * tunable_mbinit().
  */
 static void init_maxsockets(void *ignored)
 {

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 13:54:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3D99F1065674;
	Wed, 18 Mar 2009 13:54:36 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2C2AC8FC0C;
	Wed, 18 Mar 2009 13:54:36 +0000 (UTC) (envelope-from pho@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IDsaDH027974;
	Wed, 18 Mar 2009 13:54:36 GMT (envelope-from pho@svn.freebsd.org)
Received: (from pho@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IDsakd027973;
	Wed, 18 Mar 2009 13:54:36 GMT (envelope-from pho@svn.freebsd.org)
Message-Id: <200903181354.n2IDsakd027973@svn.freebsd.org>
From: Peter Holm 
Date: Wed, 18 Mar 2009 13:54:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189961 - head/sys/fs/nullfs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 13:54:37 -0000

Author: pho
Date: Wed Mar 18 13:54:35 2009
New Revision: 189961
URL: http://svn.freebsd.org/changeset/base/189961

Log:
  Do not use null_bypass for VOP_ISLOCKED, directly call default
  implementation. null_bypass cannot work for the !nullfs-vnodes, in
  particular, for VBAD vnodes.
  
  In collaboration with:	kib

Modified:
  head/sys/fs/nullfs/null_vnops.c

Modified: head/sys/fs/nullfs/null_vnops.c
==============================================================================
--- head/sys/fs/nullfs/null_vnops.c	Wed Mar 18 13:47:44 2009	(r189960)
+++ head/sys/fs/nullfs/null_vnops.c	Wed Mar 18 13:54:35 2009	(r189961)
@@ -724,6 +724,7 @@ struct vop_vector null_vnodeops = {
 	.vop_getattr =		null_getattr,
 	.vop_getwritemount =	null_getwritemount,
 	.vop_inactive =		null_inactive,
+	.vop_islocked =		vop_stdislocked,
 	.vop_lock1 =		null_lock,
 	.vop_lookup =		null_lookup,
 	.vop_open =		null_open,

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 13:57:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AF19E1065672;
	Wed, 18 Mar 2009 13:57:31 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: from mail-bw0-f164.google.com (mail-bw0-f164.google.com
	[209.85.218.164])
	by mx1.freebsd.org (Postfix) with ESMTP id A0C0E8FC19;
	Wed, 18 Mar 2009 13:57:30 +0000 (UTC)
	(envelope-from asmrookie@gmail.com)
Received: by bwz8 with SMTP id 8so59080bwz.43
	for ; Wed, 18 Mar 2009 06:57:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to:cc
	:content-type:content-transfer-encoding;
	bh=lrrn9u/b4UHn9+Nq/M9lPIAB5n/70eMMlaBbsyZTCSo=;
	b=YVf/5w2bf2xJ1uBDBIKVSJl3wVFOnywUrJCzquQlBZV3Q+2LHZA3Vfc0Ro3hS6QkqC
	+xJOmIN1PdiWc2ijIOLLtaXDz2tAOsX1w6BW4TPu3in+ovaqya+2bk+iMdahvj0gGZx8
	A0ci9vXf/pWLlzrV6bUSclRyDAhUwMMpCSlbY=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:cc:content-type
	:content-transfer-encoding;
	b=Gm10hU25ys2DmI1WGUh8kVEwsAMpyoRonv2A+ot0nxj50CZ6R/YiAPYg4857sZsPSt
	TD1TvpX2Mb5BmA1qwPBs2uxHLvBHQLmBpiXibDNhDwj/3pVXkpIl52zrEVk8vdQXqpBZ
	nVpuUH6hwc3eBC9MCCrt0Swx1wRDieGr8b3fA=
MIME-Version: 1.0
Sender: asmrookie@gmail.com
Received: by 10.223.104.140 with SMTP id p12mr1071479fao.7.1237384649498; Wed, 
	18 Mar 2009 06:57:29 -0700 (PDT)
In-Reply-To: <200903181354.n2IDsakd027973@svn.freebsd.org>
References: <200903181354.n2IDsakd027973@svn.freebsd.org>
Date: Wed, 18 Mar 2009 14:57:29 +0100
X-Google-Sender-Auth: 9c98d6f9cda0567d
Message-ID: <3bbf2fe10903180657i61454fb1m43dfcd75ad648a09@mail.gmail.com>
From: Attilio Rao 
To: Peter Holm 
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r189961 - head/sys/fs/nullfs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 13:57:32 -0000

2009/3/18, Peter Holm :
> Author: pho
>  Date: Wed Mar 18 13:54:35 2009
>  New Revision: 189961
>  URL: http://svn.freebsd.org/changeset/base/189961
>
>  Log:
>   Do not use null_bypass for VOP_ISLOCKED, directly call default
>   implementation. null_bypass cannot work for the !nullfs-vnodes, in
>   particular, for VBAD vnodes.
>
>   In collaboration with:        kib

Pointy hat to: attilio

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 14:01:42 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1F8761065672;
	Wed, 18 Mar 2009 14:01:42 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 07E808FC08;
	Wed, 18 Mar 2009 14:01:42 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IE1fue028186;
	Wed, 18 Mar 2009 14:01:41 GMT (envelope-from vanhu@svn.freebsd.org)
Received: (from vanhu@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IE1fU9028185;
	Wed, 18 Mar 2009 14:01:41 GMT (envelope-from vanhu@svn.freebsd.org)
Message-Id: <200903181401.n2IE1fU9028185@svn.freebsd.org>
From: VANHULLEBUS Yvan 
Date: Wed, 18 Mar 2009 14:01:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189962 - head/sys/netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 14:01:44 -0000

Author: vanhu
Date: Wed Mar 18 14:01:41 2009
New Revision: 189962
URL: http://svn.freebsd.org/changeset/base/189962

Log:
  Fixed deletion of sav entries in key_delsah()
  
  Approved by:	gnn(mentor)
  Obtained from:	NETASQ
  MFC after:	1 month

Modified:
  head/sys/netipsec/key.c

Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c	Wed Mar 18 13:54:35 2009	(r189961)
+++ head/sys/netipsec/key.c	Wed Mar 18 14:01:41 2009	(r189962)
@@ -2687,7 +2687,10 @@ key_delsah(sah)
 			if (sav->refcnt == 0) {
 				/* sanity check */
 				KEY_CHKSASTATE(state, sav->state, __func__);
-				KEY_FREESAV(&sav);
+				/* do NOT call KEY_FREESAV here: it will only delete the sav if refcnt == 1,
+				 * where we already know that refcnt == 0
+				 */
+				key_delsav(sav);
 			} else {
 				/* give up to delete this sa */
 				zombie++;
@@ -4131,6 +4134,8 @@ key_flush_sad(time_t now)
 
 		/* if LARVAL entry doesn't become MATURE, delete it. */
 		LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_LARVAL], chain, nextsav) {
+			/* Need to also check refcnt for a larval SA ???
+			 */
 			if (now - sav->created > V_key_larval_lifetime)
 				KEY_FREESAV(&sav);
 		}

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 14:33:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1DF7C106566C;
	Wed, 18 Mar 2009 14:33:11 +0000 (UTC)
	(envelope-from gabor@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0C8A68FC0A;
	Wed, 18 Mar 2009 14:33:11 +0000 (UTC)
	(envelope-from gabor@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IEXAUH028816;
	Wed, 18 Mar 2009 14:33:10 GMT (envelope-from gabor@svn.freebsd.org)
Received: (from gabor@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IEXAib028815;
	Wed, 18 Mar 2009 14:33:10 GMT (envelope-from gabor@svn.freebsd.org)
Message-Id: <200903181433.n2IEXAib028815@svn.freebsd.org>
From: Gabor Kovesdan 
Date: Wed, 18 Mar 2009 14:33:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189963 - head/lib/libc/nls
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 14:33:11 -0000

Author: gabor (doc,ports committer)
Date: Wed Mar 18 14:33:10 2009
New Revision: 189963
URL: http://svn.freebsd.org/changeset/base/189963

Log:
  - Fix typo
  
  PR:		kern/132773
  Reported by:	Alan R. S. Bueno 
  Submitted by:	Murilo Opsfelder 

Modified:
  head/lib/libc/nls/pt_BR.ISO8859-1.msg

Modified: head/lib/libc/nls/pt_BR.ISO8859-1.msg
==============================================================================
--- head/lib/libc/nls/pt_BR.ISO8859-1.msg	Wed Mar 18 14:01:41 2009	(r189962)
+++ head/lib/libc/nls/pt_BR.ISO8859-1.msg	Wed Mar 18 14:33:10 2009	(r189963)
@@ -70,7 +70,7 @@ $ EMLINK
 $ EPIPE
 32 pipe quebrado
 $ EDOM
-33 Arqumento numérico fora do domínio
+33 Argumento numérico fora do domínio
 $ ERANGE
 34 Resultado muito grande
 $ EAGAIN, EWOULDBLOCK

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 14:36:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 22BEB106566B;
	Wed, 18 Mar 2009 14:36:50 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E94768FC1A;
	Wed, 18 Mar 2009 14:36:49 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IEanfx028926;
	Wed, 18 Mar 2009 14:36:49 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IEanvr028924;
	Wed, 18 Mar 2009 14:36:49 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181436.n2IEanvr028924@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 14:36:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189964 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb netinet netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 14:36:50 -0000

Author: bz
Date: Wed Mar 18 14:36:49 2009
New Revision: 189964
URL: http://svn.freebsd.org/changeset/base/189964

Log:
  MFC r185333:
    Unify the v4 and v6 versions of pcbdetach and pcbfree as good
    as possible so that they are easily diffable.
  
    No functional changes.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/netinet/in_pcb.c
  stable/7/sys/netinet6/in6_pcb.c

Modified: stable/7/sys/netinet/in_pcb.c
==============================================================================
--- stable/7/sys/netinet/in_pcb.c	Wed Mar 18 14:33:10 2009	(r189963)
+++ stable/7/sys/netinet/in_pcb.c	Wed Mar 18 14:36:49 2009	(r189964)
@@ -880,7 +880,7 @@ void
 in_pcbdetach(struct inpcb *inp)
 {
 
-	KASSERT(inp->inp_socket != NULL, ("in_pcbdetach: inp_socket == NULL"));
+	KASSERT(inp->inp_socket != NULL, ("%s: inp_socket == NULL", __func__));
 
 	inp->inp_socket->so_pcb = NULL;
 	inp->inp_socket = NULL;
@@ -895,14 +895,14 @@ in_pcbfree(struct inpcb *inp)
 {
 	struct inpcbinfo *ipi = inp->inp_pcbinfo;
 
-	KASSERT(inp->inp_socket == NULL, ("in_pcbfree: inp_socket != NULL"));
+	KASSERT(inp->inp_socket == NULL, ("%s: inp_socket != NULL", __func__));
 
 	INP_INFO_WLOCK_ASSERT(ipi);
 	INP_WLOCK_ASSERT(inp);
 
 #ifdef IPSEC
 	ipsec4_delete_pcbpolicy(inp);
-#endif /*IPSEC*/
+#endif /* IPSEC */
 	inp->inp_gencnt = ++ipi->ipi_gencnt;
 	in_pcbremlists(inp);
 	if (inp->inp_options)

Modified: stable/7/sys/netinet6/in6_pcb.c
==============================================================================
--- stable/7/sys/netinet6/in6_pcb.c	Wed Mar 18 14:33:10 2009	(r189963)
+++ stable/7/sys/netinet6/in6_pcb.c	Wed Mar 18 14:36:49 2009	(r189964)
@@ -416,7 +416,8 @@ void
 in6_pcbdetach(struct inpcb *inp)
 {
 
-	KASSERT(inp->inp_socket != NULL, ("in6_pcbdetach: inp_socket == NULL"));
+	KASSERT(inp->inp_socket != NULL, ("%s: inp_socket == NULL", __func__));
+
 	inp->inp_socket->so_pcb = NULL;
 	inp->inp_socket = NULL;
 }
@@ -426,8 +427,9 @@ in6_pcbfree(struct inpcb *inp)
 {
 	struct inpcbinfo *ipi = inp->inp_pcbinfo;
 
-	KASSERT(inp->inp_socket == NULL, ("in6_pcbfree: inp_socket != NULL"));
-	INP_INFO_WLOCK_ASSERT(inp->inp_pcbinfo);
+	KASSERT(inp->inp_socket == NULL, ("%s: inp_socket != NULL", __func__));
+
+	INP_INFO_WLOCK_ASSERT(ipi);
 	INP_WLOCK_ASSERT(inp);
 
 #ifdef IPSEC
@@ -445,6 +447,7 @@ in6_pcbfree(struct inpcb *inp)
 		inp_freemoptions(inp->inp_moptions);
 	inp->inp_vflag = 0;
 	crfree(inp->inp_cred);
+
 #ifdef MAC
 	mac_destroy_inpcb(inp);
 #endif

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 14:43:56 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C92D01065670;
	Wed, 18 Mar 2009 14:43:56 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B6B398FC1B;
	Wed, 18 Mar 2009 14:43:56 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IEhurj029097;
	Wed, 18 Mar 2009 14:43:56 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IEhud4029096;
	Wed, 18 Mar 2009 14:43:56 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181443.n2IEhud4029096@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 14:43:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189965 - in stable/7/sys: . contrib/pf dev/cxgb kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 14:43:57 -0000

Author: bz
Date: Wed Mar 18 14:43:56 2009
New Revision: 189965
URL: http://svn.freebsd.org/changeset/base/189965

Log:
  MFC r185892:
    Style changes only. Put the return type on an extra line[1] and
    add an empty line at the beginning as we do not have any local
    variables.
  
  Submitted by: rwatson [1]

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/uipc_socket.c

Modified: stable/7/sys/kern/uipc_socket.c
==============================================================================
--- stable/7/sys/kern/uipc_socket.c	Wed Mar 18 14:36:49 2009	(r189964)
+++ stable/7/sys/kern/uipc_socket.c	Wed Mar 18 14:43:56 2009	(r189965)
@@ -240,8 +240,10 @@ SYSCTL_PROC(_kern_ipc, OID_AUTO, maxsock
  * Initialise maxsockets.  This SYSINIT must be run after
  * tunable_mbinit().
  */
-static void init_maxsockets(void *ignored)
+static void
+init_maxsockets(void *ignored)
 {
+
 	TUNABLE_INT_FETCH("kern.ipc.maxsockets", &maxsockets);
 	maxsockets = imax(maxsockets, imax(maxfiles, nmbclusters));
 }

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 16:09:05 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EAE57106566B;
	Wed, 18 Mar 2009 16:09:05 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D64138FC12;
	Wed, 18 Mar 2009 16:09:05 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IG95ju030795;
	Wed, 18 Mar 2009 16:09:05 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IG95Jf030784;
	Wed, 18 Mar 2009 16:09:05 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903181609.n2IG95Jf030784@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 16:09:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189966 - in stable/7/sys: . contrib/pf dev/cxgb
	dev/cxgb/ulp/tom netinet netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 16:09:06 -0000

Author: bz
Date: Wed Mar 18 16:09:05 2009
New Revision: 189966
URL: http://svn.freebsd.org/changeset/base/189966

Log:
  MFC r186222:
  
    Use inc_flags instead of the inc_isipv6 alias which so far
    had been the only flag with random usage patterns.
    Switch inc_flags to be used as a real bit field by using
    INC_ISIPV6 with bitops to check for the 'isipv6' condition.
  
    While here fix a place or two where in case of v4 inc_flags
    were not properly initialized before.[1]
  
    Found by:     rwatson during review [1]

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
  stable/7/sys/netinet/in_pcb.c
  stable/7/sys/netinet/in_pcb.h
  stable/7/sys/netinet/tcp_hostcache.c
  stable/7/sys/netinet/tcp_input.c
  stable/7/sys/netinet/tcp_subr.c
  stable/7/sys/netinet/tcp_syncache.c
  stable/7/sys/netinet/tcp_timewait.c
  stable/7/sys/netinet/tcp_usrreq.c
  stable/7/sys/netinet6/icmp6.c
  stable/7/sys/netinet6/ip6_output.c

Modified: stable/7/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c
==============================================================================
--- stable/7/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -3270,8 +3270,6 @@ syncache_add_accept_req(struct cpl_pass_
 
 	toep->tp_iss = toep->tp_delack_seq = toep->tp_rcv_wup = toep->tp_copied_seq = rcv_isn + 1;
 
-	
-	inc.inc_isipv6 = 0;
 	inc.inc_len = 0;
 	inc.inc_faddr.s_addr = req->peer_ip;
 	inc.inc_laddr.s_addr = req->local_ip;
@@ -3611,7 +3609,6 @@ syncache_expand_establish_req(struct cpl
 	th.th_seq = req->rcv_isn;
 	th.th_flags = TH_ACK;
 	
-	inc.inc_isipv6 = 0;
 	inc.inc_len = 0;
 	inc.inc_faddr.s_addr = req->peer_ip;
 	inc.inc_laddr.s_addr = req->local_ip;

Modified: stable/7/sys/netinet/in_pcb.c
==============================================================================
--- stable/7/sys/netinet/in_pcb.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/in_pcb.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -1622,7 +1622,7 @@ db_print_inconninfo(struct in_conninfo *
 	indent += 2;
 
 #ifdef INET6
-	if (inc->inc_flags == 1) {
+	if (inc->inc_flags & INC_ISIPV6) {
 		/* IPv6. */
 		ip6_sprintf(laddr_str, &inc->inc6_laddr);
 		ip6_sprintf(faddr_str, &inc->inc6_faddr);

Modified: stable/7/sys/netinet/in_pcb.h
==============================================================================
--- stable/7/sys/netinet/in_pcb.h	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/in_pcb.h	Wed Mar 18 16:09:05 2009	(r189966)
@@ -106,6 +106,12 @@ struct in_conninfo {
 	/* protocol dependent part */
 	struct	in_endpoints inc_ie;
 };
+
+/*
+ * Flags for inc_flags.
+ */
+#define	INC_ISIPV6	0x01
+
 #define inc_isipv6	inc_flags	/* temp compatability */
 #define	inc_fport	inc_ie.ie_fport
 #define	inc_lport	inc_ie.ie_lport

Modified: stable/7/sys/netinet/tcp_hostcache.c
==============================================================================
--- stable/7/sys/netinet/tcp_hostcache.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_hostcache.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -276,7 +276,7 @@ tcp_hc_lookup(struct in_conninfo *inc)
 	/*
 	 * Hash the foreign ip address.
 	 */
-	if (inc->inc_isipv6)
+	if (inc->inc_flags & INC_ISIPV6)
 		hash = HOSTCACHE_HASH6(&inc->inc6_faddr);
 	else
 		hash = HOSTCACHE_HASH(&inc->inc_faddr);
@@ -294,7 +294,7 @@ tcp_hc_lookup(struct in_conninfo *inc)
 	 * Iterate through entries in bucket row looking for a match.
 	 */
 	TAILQ_FOREACH(hc_entry, &hc_head->hch_bucket, rmx_q) {
-		if (inc->inc_isipv6) {
+		if (inc->inc_flags & INC_ISIPV6) {
 			if (memcmp(&inc->inc6_faddr, &hc_entry->ip6,
 			    sizeof(inc->inc6_faddr)) == 0)
 				return hc_entry;
@@ -331,7 +331,7 @@ tcp_hc_insert(struct in_conninfo *inc)
 	/*
 	 * Hash the foreign ip address.
 	 */
-	if (inc->inc_isipv6)
+	if (inc->inc_flags & INC_ISIPV6)
 		hash = HOSTCACHE_HASH6(&inc->inc6_faddr);
 	else
 		hash = HOSTCACHE_HASH(&inc->inc_faddr);
@@ -386,7 +386,7 @@ tcp_hc_insert(struct in_conninfo *inc)
 	 * Initialize basic information of hostcache entry.
 	 */
 	bzero(hc_entry, sizeof(*hc_entry));
-	if (inc->inc_isipv6)
+	if (inc->inc_flags & INC_ISIPV6)
 		bcopy(&inc->inc6_faddr, &hc_entry->ip6, sizeof(hc_entry->ip6));
 	else
 		hc_entry->ip4 = inc->inc_faddr;

Modified: stable/7/sys/netinet/tcp_input.c
==============================================================================
--- stable/7/sys/netinet/tcp_input.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_input.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -564,9 +564,9 @@ findpcb:
 		    "tp not listening", __func__));
 
 		bzero(&inc, sizeof(inc));
-		inc.inc_isipv6 = isipv6;
 #ifdef INET6
 		if (isipv6) {
+			inc.inc_flags |= INC_ISIPV6;
 			inc.inc6_faddr = ip6->ip6_src;
 			inc.inc6_laddr = ip6->ip6_dst;
 		} else
@@ -2974,14 +2974,11 @@ tcp_mssopt(struct in_conninfo *inc)
 	u_long maxmtu = 0;
 	u_long thcmtu = 0;
 	size_t min_protoh;
-#ifdef INET6
-	int isipv6 = inc->inc_isipv6 ? 1 : 0;
-#endif
 
 	KASSERT(inc != NULL, ("tcp_mssopt with NULL in_conninfo pointer"));
 
 #ifdef INET6
-	if (isipv6) {
+	if (inc->inc_flags & INC_ISIPV6) {
 		mss = tcp_v6mssdflt;
 		maxmtu = tcp_maxmtu6(inc, NULL);
 		thcmtu = tcp_hc_getmtu(inc); /* IPv4 and IPv6 */

Modified: stable/7/sys/netinet/tcp_subr.c
==============================================================================
--- stable/7/sys/netinet/tcp_subr.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_subr.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -1191,7 +1191,6 @@ tcp_ctlinput(int cmd, struct sockaddr *s
 					     * value (if given) and then notify.
 					     */
 					    bzero(&inc, sizeof(inc));
-					    inc.inc_flags = 0;	/* IPv4 */
 					    inc.inc_faddr = faddr;
 					    inc.inc_fibnum =
 						inp->inp_inc.inc_fibnum;
@@ -1228,13 +1227,11 @@ tcp_ctlinput(int cmd, struct sockaddr *s
 			if (inp != NULL)
 				INP_WUNLOCK(inp);
 		} else {
+			bzero(&inc, sizeof(inc));
 			inc.inc_fport = th->th_dport;
 			inc.inc_lport = th->th_sport;
 			inc.inc_faddr = faddr;
 			inc.inc_laddr = ip->ip_src;
-#ifdef INET6
-			inc.inc_isipv6 = 0;
-#endif
 			syncache_unreach(&inc, th);
 		}
 		INP_INFO_WUNLOCK(&tcbinfo);
@@ -1303,11 +1300,12 @@ tcp6_ctlinput(int cmd, struct sockaddr *
 		    (struct sockaddr *)ip6cp->ip6c_src,
 		    th.th_sport, cmd, NULL, notify);
 
+		bzero(&inc, sizeof(inc));
 		inc.inc_fport = th.th_dport;
 		inc.inc_lport = th.th_sport;
 		inc.inc6_faddr = ((struct sockaddr_in6 *)sa)->sin6_addr;
 		inc.inc6_laddr = ip6cp->ip6c_src->sin6_addr;
-		inc.inc_isipv6 = 1;
+		inc.inc_flags |= INC_ISIPV6;
 		INP_INFO_WLOCK(&tcbinfo);
 		syncache_unreach(&inc, &th);
 		INP_INFO_WUNLOCK(&tcbinfo);
@@ -2188,7 +2186,7 @@ tcp_log_addrs(struct in_conninfo *inc, s
 	strcat(s, "TCP: [");
 	sp = s + strlen(s);
 
-	if (inc && inc->inc_isipv6 == 0) {
+	if (inc && ((inc->inc_flags & INC_ISIPV6) == 0)) {
 		inet_ntoa_r(inc->inc_faddr, sp);
 		sp = s + strlen(s);
 		sprintf(sp, "]:%i to [", ntohs(inc->inc_fport));

Modified: stable/7/sys/netinet/tcp_syncache.c
==============================================================================
--- stable/7/sys/netinet/tcp_syncache.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_syncache.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -474,7 +474,7 @@ syncache_lookup(struct in_conninfo *inc,
 	struct syncache_head *sch;
 
 #ifdef INET6
-	if (inc->inc_isipv6) {
+	if (inc->inc_flags & INC_ISIPV6) {
 		sch = &tcp_syncache.hashbase[
 		    SYNCACHE_HASH6(inc, tcp_syncache.hashmask)];
 		*schp = sch;
@@ -498,7 +498,7 @@ syncache_lookup(struct in_conninfo *inc,
 		/* Circle through bucket row to find matching entry. */
 		TAILQ_FOREACH(sc, &sch->sch_bucket, sc_hash) {
 #ifdef INET6
-			if (sc->sc_inc.inc_isipv6)
+			if (sc->sc_inc.inc_flags & INC_ISIPV6)
 				continue;
 #endif
 			if (ENDPTS_EQ(&inc->inc_ie, &sc->sc_inc.inc_ie))
@@ -683,9 +683,9 @@ syncache_socket(struct syncache *sc, str
 	INP_WLOCK(inp);
 
 	/* Insert new socket into PCB hash list. */
-	inp->inp_inc.inc_isipv6 = sc->sc_inc.inc_isipv6;
+	inp->inp_inc.inc_flags = sc->sc_inc.inc_flags;
 #ifdef INET6
-	if (sc->sc_inc.inc_isipv6) {
+	if (sc->sc_inc.inc_flags & INC_ISIPV6) {
 		inp->in6p_laddr = sc->sc_inc.inc6_laddr;
 	} else {
 		inp->inp_vflag &= ~INP_IPV6;
@@ -702,7 +702,7 @@ syncache_socket(struct syncache *sc, str
 		 * put the PCB on the hash lists.
 		 */
 #ifdef INET6
-		if (sc->sc_inc.inc_isipv6)
+		if (sc->sc_inc.inc_flags & INC_ISIPV6)
 			inp->in6p_laddr = in6addr_any;
 		else
 #endif
@@ -716,7 +716,7 @@ syncache_socket(struct syncache *sc, str
 		printf("syncache_socket: could not copy policy\n");
 #endif
 #ifdef INET6
-	if (sc->sc_inc.inc_isipv6) {
+	if (sc->sc_inc.inc_flags & INC_ISIPV6) {
 		struct inpcb *oinp = sotoinpcb(lso);
 		struct in6_addr laddr6;
 		struct sockaddr_in6 sin6;
@@ -1043,7 +1043,7 @@ _syncache_add(struct in_conninfo *inc, s
 	cred = crhold(so->so_cred);
 
 #ifdef INET6
-	if (inc->inc_isipv6 &&
+	if ((inc->inc_flags & INC_ISIPV6) &&
 	    (inp->in6p_flags & IN6P_AUTOFLOWLABEL))
 		autoflowlabel = 1;
 #endif
@@ -1072,7 +1072,7 @@ _syncache_add(struct in_conninfo *inc, s
 	 * Remember the IP options, if any.
 	 */
 #ifdef INET6
-	if (!inc->inc_isipv6)
+	if (!(inc->inc_flags & INC_ISIPV6))
 #endif
 		ipopts = (m) ? ip_srcroute(m) : NULL;
 
@@ -1173,10 +1173,11 @@ _syncache_add(struct in_conninfo *inc, s
 	sc->sc_cred = cred;
 	cred = NULL;
 	sc->sc_ipopts = ipopts;
+	/* XXX-BZ this fib assignment is just useless. */
 	sc->sc_inc.inc_fibnum = inp->inp_inc.inc_fibnum;
 	bcopy(inc, &sc->sc_inc, sizeof(struct in_conninfo));
 #ifdef INET6
-	if (!inc->inc_isipv6)
+	if (!(inc->inc_flags & INC_ISIPV6))
 #endif
 	{
 		sc->sc_ip_tos = ip_tos;
@@ -1316,7 +1317,7 @@ syncache_respond(struct syncache *sc)
 
 	hlen =
 #ifdef INET6
-	       (sc->sc_inc.inc_isipv6) ? sizeof(struct ip6_hdr) :
+	       (sc->sc_inc.inc_flags & INC_ISIPV6) ? sizeof(struct ip6_hdr) :
 #endif
 		sizeof(struct ip);
 	tlen = hlen + sizeof(struct tcphdr);
@@ -1343,7 +1344,7 @@ syncache_respond(struct syncache *sc)
 	m->m_pkthdr.rcvif = NULL;
 
 #ifdef INET6
-	if (sc->sc_inc.inc_isipv6) {
+	if (sc->sc_inc.inc_flags & INC_ISIPV6) {
 		ip6 = mtod(m, struct ip6_hdr *);
 		ip6->ip6_vfc = IPV6_VERSION;
 		ip6->ip6_nxt = IPPROTO_TCP;
@@ -1429,7 +1430,7 @@ syncache_respond(struct syncache *sc)
 			    to.to_signature, IPSEC_DIR_OUTBOUND);
 #endif
 #ifdef INET6
-		if (sc->sc_inc.inc_isipv6)
+		if (sc->sc_inc.inc_flags & INC_ISIPV6)
 			ip6->ip6_plen = htons(ntohs(ip6->ip6_plen) + optlen);
 		else
 #endif
@@ -1438,7 +1439,7 @@ syncache_respond(struct syncache *sc)
 		optlen = 0;
 
 #ifdef INET6
-	if (sc->sc_inc.inc_isipv6) {
+	if (sc->sc_inc.inc_flags & INC_ISIPV6) {
 		th->th_sum = 0;
 		th->th_sum = in6_cksum(m, IPPROTO_TCP, hlen,
 				       tlen + optlen - hlen);
@@ -1691,7 +1692,7 @@ syncookie_lookup(struct in_conninfo *inc
 	sc->sc_iss = ack;
 
 #ifdef INET6
-	if (inc->inc_isipv6) {
+	if (inc->inc_flags & INC_ISIPV6) {
 		if (sotoinpcb(so)->in6p_flags & IN6P_AUTOFLOWLABEL)
 			sc->sc_flowlabel = md5_buffer[1] & IPV6_FLOWLABEL_MASK;
 	} else
@@ -1779,7 +1780,7 @@ syncache_pcblist(struct sysctl_req *req,
 				continue;
 			bzero(&xt, sizeof(xt));
 			xt.xt_len = sizeof(xt);
-			if (sc->sc_inc.inc_isipv6)
+			if (sc->sc_inc.inc_flags & INC_ISIPV6)
 				xt.xt_inp.inp_vflag = INP_IPV6;
 			else
 				xt.xt_inp.inp_vflag = INP_IPV4;

Modified: stable/7/sys/netinet/tcp_timewait.c
==============================================================================
--- stable/7/sys/netinet/tcp_timewait.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_timewait.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -529,7 +529,7 @@ tcp_twrespond(struct tcptw *tw, int flag
 	struct tcpopt to;
 #ifdef INET6
 	struct ip6_hdr *ip6 = NULL;
-	int isipv6 = inp->inp_inc.inc_isipv6;
+	int isipv6 = inp->inp_inc.inc_flags & INC_ISIPV6;
 #endif
 
 	INP_WLOCK_ASSERT(inp);

Modified: stable/7/sys/netinet/tcp_usrreq.c
==============================================================================
--- stable/7/sys/netinet/tcp_usrreq.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet/tcp_usrreq.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -538,7 +538,7 @@ tcp6_usr_connect(struct socket *so, stru
 	}
 	inp->inp_vflag &= ~INP_IPV4;
 	inp->inp_vflag |= INP_IPV6;
-	inp->inp_inc.inc_isipv6 = 1;
+	inp->inp_inc.inc_flags |= INC_ISIPV6;
 	if ((error = prison_remote_ip6(td->td_ucred, &sin6p->sin6_addr)) != 0)
 		goto out;
 	if ((error = tcp6_connect(tp, nam, td)) != 0)

Modified: stable/7/sys/netinet6/icmp6.c
==============================================================================
--- stable/7/sys/netinet6/icmp6.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet6/icmp6.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -1129,7 +1129,7 @@ icmp6_mtudisc_update(struct ip6ctlparam 
 		mtu = IPV6_MMTU - 8;
 
 	bzero(&inc, sizeof(inc));
-	inc.inc_flags = 1; /* IPv6 */
+	inc.inc_flags |= INC_ISIPV6;
 	inc.inc6_faddr = *dst;
 	if (in6_setscope(&inc.inc6_faddr, m->m_pkthdr.rcvif, NULL))
 		return;

Modified: stable/7/sys/netinet6/ip6_output.c
==============================================================================
--- stable/7/sys/netinet6/ip6_output.c	Wed Mar 18 14:43:56 2009	(r189965)
+++ stable/7/sys/netinet6/ip6_output.c	Wed Mar 18 16:09:05 2009	(r189966)
@@ -1314,7 +1314,7 @@ ip6_getpmtu(struct route_in6 *ro_pmtu, s
 		struct in_conninfo inc;
 
 		bzero(&inc, sizeof(inc));
-		inc.inc_flags = 1; /* IPv6 */
+		inc.inc_flags |= INC_ISIPV6;
 		inc.inc6_faddr = *dst;
 
 		if (ifp == NULL)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 16:19:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C64EC106566B;
	Wed, 18 Mar 2009 16:19:44 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B41668FC12;
	Wed, 18 Mar 2009 16:19:44 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IGJi5C031032;
	Wed, 18 Mar 2009 16:19:44 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IGJifl031031;
	Wed, 18 Mar 2009 16:19:44 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181619.n2IGJifl031031@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 16:19:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189967 -
	head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 16:19:45 -0000

Author: jhb
Date: Wed Mar 18 16:19:44 2009
New Revision: 189967
URL: http://svn.freebsd.org/changeset/base/189967

Log:
  The zfs_get_xattrdir() function is used to find the extended attribute
  directory for a znode.  When the directory already exists, it returns a
  referenced but unlocked vnode.  When a directory does not yet exist, it
  calls zfs_make_xattrdir() to create a new one.  zfs_make_xattrdir() returns
  the vnode both referenced and and locked and zfs_get_xattrdir() was leaking
  this vnode lock to its callers.  Fix this by dropping the vnode lock if
  zfs_make_xattrdir() successfully creates a new extended attribute
  directory.
  
  Reviewed by:	pjd

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c	Wed Mar 18 16:09:05 2009	(r189966)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c	Wed Mar 18 16:19:44 2009	(r189967)
@@ -940,6 +940,8 @@ top:
 		/* NB: we already did dmu_tx_wait() if necessary */
 		goto top;
 	}
+	if (error == 0)
+		VOP_UNLOCK(*xvpp, 0);
 
 	return (error);
 }

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 16:24:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ECCBF1065672;
	Wed, 18 Mar 2009 16:24:39 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BFE2C8FC1A;
	Wed, 18 Mar 2009 16:24:39 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IGOdMG031167;
	Wed, 18 Mar 2009 16:24:39 GMT (envelope-from alc@svn.freebsd.org)
Received: (from alc@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IGOdKk031166;
	Wed, 18 Mar 2009 16:24:39 GMT (envelope-from alc@svn.freebsd.org)
Message-Id: <200903181624.n2IGOdKk031166@svn.freebsd.org>
From: Alan Cox 
Date: Wed, 18 Mar 2009 16:24:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189968 - stable/7/sys/vm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 16:24:40 -0000

Author: alc
Date: Wed Mar 18 16:24:39 2009
New Revision: 189968
URL: http://svn.freebsd.org/changeset/base/189968

Log:
  MFC revision 1.363
    Eliminate redundant code from vm_page_startup().
  
  (In retrospect, this change should have been included in the superpages
  MFC.  This change subsumes r189750.)
  
  Discussed with:	jhb

Modified:
  stable/7/sys/vm/vm_page.c

Modified: stable/7/sys/vm/vm_page.c
==============================================================================
--- stable/7/sys/vm/vm_page.c	Wed Mar 18 16:19:44 2009	(r189967)
+++ stable/7/sys/vm/vm_page.c	Wed Mar 18 16:24:39 2009	(r189968)
@@ -209,7 +209,6 @@ vm_offset_t
 vm_page_startup(vm_offset_t vaddr)
 {
 	vm_offset_t mapped;
-	vm_size_t npages;
 	vm_paddr_t page_range;
 	vm_paddr_t new_end;
 	int i;
@@ -224,9 +223,6 @@ vm_page_startup(vm_offset_t vaddr)
 	vm_paddr_t low_water, high_water;
 	int biggestone;
 
-	vm_paddr_t total;
-
-	total = 0;
 	biggestsize = 0;
 	biggestone = 0;
 	nblocks = 0;
@@ -252,7 +248,6 @@ vm_page_startup(vm_offset_t vaddr)
 		if (phys_avail[i + 1] > high_water)
 			high_water = phys_avail[i + 1];
 		++nblocks;
-		total += size;
 	}
 
 	end = phys_avail[biggestone+1];
@@ -320,8 +315,6 @@ vm_page_startup(vm_offset_t vaddr)
 #else
 #error "Either VM_PHYSSEG_DENSE or VM_PHYSSEG_SPARSE must be defined."
 #endif
-	npages = (total - (page_range * sizeof(struct vm_page)) -
-	    (end - new_end)) / PAGE_SIZE;
 	end = new_end;
 
 	/*
@@ -363,22 +356,6 @@ vm_page_startup(vm_offset_t vaddr)
 		vm_page_array[i].order = VM_NFREEORDER;
 	vm_page_array_size = page_range;
 
-#if 0
-	/*
-	 * This assertion tests the hypothesis that npages and total are
-	 * redundant.  XXX
-	 *
-	 * XXX: This always fails if VM_NRESERVLEVEL > 0 because
-	 * npages includes the memory for vm_reserv_startup() but
-	 * page_range doesn't.
-	 */
-	page_range = 0;
-	for (i = 0; phys_avail[i + 1] != 0; i += 2)
-		page_range += atop(phys_avail[i + 1] - phys_avail[i]);
-	KASSERT(page_range == npages,
-	    ("vm_page_startup: inconsistent page counts"));
-#endif
-
 	/*
 	 * Initialize the physical memory allocator.
 	 */

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 17:14:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A71E91065673;
	Wed, 18 Mar 2009 17:14:44 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7A21C8FC16;
	Wed, 18 Mar 2009 17:14:44 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IHEiWP032247;
	Wed, 18 Mar 2009 17:14:44 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IHEib6032246;
	Wed, 18 Mar 2009 17:14:44 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903181714.n2IHEib6032246@svn.freebsd.org>
From: Bruce M Simpson 
Date: Wed, 18 Mar 2009 17:14:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189969 - stable/7/sys/dev/ae
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 17:14:45 -0000

Author: bms
Date: Wed Mar 18 17:14:44 2009
New Revision: 189969
URL: http://svn.freebsd.org/changeset/base/189969

Log:
  MFC r183567:
   Merge Wake-on-Lan (WOL) support for the Attansic/Atheros L2.
   This was left out of the backport to RELENG_7 as the WOL
   infrastructure had not yet been backported to RELENG_7 when
   the ae(4) driver was merged.
  
  Tested OK on an ASUS EeePC 701 using ports/net/wol.
  
  Submitted by:	yongari

Modified:
  stable/7/sys/dev/ae/if_ae.c

Modified: stable/7/sys/dev/ae/if_ae.c
==============================================================================
--- stable/7/sys/dev/ae/if_ae.c	Wed Mar 18 16:24:39 2009	(r189968)
+++ stable/7/sys/dev/ae/if_ae.c	Wed Mar 18 17:14:44 2009	(r189969)
@@ -380,8 +380,10 @@ ae_attach(device_t dev)
 	ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
 	IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
 	IFQ_SET_READY(&ifp->if_snd);
-	if (pci_find_extcap(dev, PCIY_PMG, &pmc) == 0)
+	if (pci_find_extcap(dev, PCIY_PMG, &pmc) == 0) {
+		ifp->if_capabilities |= IFCAP_WOL_MAGIC;
 		sc->flags |= AE_FLAG_PMG;
+	}
 	ifp->if_capenable = ifp->if_capabilities;
 
 	/*
@@ -1329,6 +1331,7 @@ ae_pm_init(ae_softc_t *sc)
 	struct ifnet *ifp;
 	uint32_t val;
 	uint16_t pmstat;
+	struct mii_data *mii;
 	int pmc;
 
 	AE_LOCK_ASSERT(sc);
@@ -1340,7 +1343,40 @@ ae_pm_init(ae_softc_t *sc)
 		return;
 	}
 
-	ae_powersave_enable(sc);
+	/*
+	 * Configure WOL if enabled.
+	 */
+	if ((ifp->if_capenable & IFCAP_WOL) != 0) {
+		mii = device_get_softc(sc->miibus);
+		mii_pollstat(mii);
+		if ((mii->mii_media_status & IFM_AVALID) != 0 &&
+		    (mii->mii_media_status & IFM_ACTIVE) != 0) {
+			AE_WRITE_4(sc, AE_WOL_REG, AE_WOL_MAGIC | \
+			    AE_WOL_MAGIC_PME);
+
+			/*
+			 * Configure MAC.
+			 */
+			val = AE_MAC_RX_EN | AE_MAC_CLK_PHY | \
+			    AE_MAC_TX_CRC_EN | AE_MAC_TX_AUTOPAD | \
+			    ((AE_HALFBUF_DEFAULT << AE_HALFBUF_SHIFT) & \
+			    AE_HALFBUF_MASK) | \
+			    ((AE_MAC_PREAMBLE_DEFAULT << \
+			    AE_MAC_PREAMBLE_SHIFT) & AE_MAC_PREAMBLE_MASK) | \
+			    AE_MAC_BCAST_EN | AE_MAC_MCAST_EN;
+			if ((IFM_OPTIONS(mii->mii_media_active) & \
+			    IFM_FDX) != 0)
+				val |= AE_MAC_FULL_DUPLEX;
+			AE_WRITE_4(sc, AE_MAC_REG, val);
+			    
+		} else {	/* No link. */
+			AE_WRITE_4(sc, AE_WOL_REG, AE_WOL_LNKCHG | \
+			    AE_WOL_LNKCHG_PME);
+			AE_WRITE_4(sc, AE_MAC_REG, 0);
+		}
+	} else {
+		ae_powersave_enable(sc);
+	}
 
 	/*
 	 * PCIE hacks. Magic numbers.
@@ -1358,6 +1394,8 @@ ae_pm_init(ae_softc_t *sc)
 	pci_find_extcap(sc->dev, PCIY_PMG, &pmc);
 	pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2);
 	pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE);
+	if ((ifp->if_capenable & IFCAP_WOL) != 0)
+		pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE;
 	pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2);
 }
 

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:08:17 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8BAAB1065829;
	Wed, 18 Mar 2009 18:08:17 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id 4B8A58FC18;
	Wed, 18 Mar 2009 18:08:17 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from server.baldwin.cx (pool-98-109-39-197.nwrknj.fios.verizon.net
	[98.109.39.197])
	by cyrus.watson.org (Postfix) with ESMTPSA id D23D946B88;
	Wed, 18 Mar 2009 14:08:16 -0400 (EDT)
Received: from localhost (john@localhost [127.0.0.1]) (authenticated bits=0)
	by server.baldwin.cx (8.14.3/8.14.3) with ESMTP id n2II7TK0007423;
	Wed, 18 Mar 2009 14:08:10 -0400 (EDT) (envelope-from jhb@freebsd.org)
From: John Baldwin 
To: Kostik Belousov 
Date: Wed, 18 Mar 2009 12:15:22 -0400
User-Agent: KMail/1.9.7
References: <200812181158.mBIBwC50039690@svn.freebsd.org>
	<49BAA2C6.2000807@FreeBSD.org>
	<20090313212229.GW41617@deviant.kiev.zoral.com.ua>
In-Reply-To: <20090313212229.GW41617@deviant.kiev.zoral.com.ua>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <200903181215.23213.jhb@freebsd.org>
X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by
	milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]);
	Wed, 18 Mar 2009 14:08:11 -0400 (EDT)
X-Virus-Scanned: ClamAV 0.94.2/9130/Wed Mar 18 09:51:53 2009 on
	server.baldwin.cx
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 
	autolearn=ham version=3.1.3
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r186276 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:08:18 -0000

On Friday 13 March 2009 5:22:29 pm Kostik Belousov wrote:
> On Fri, Mar 13, 2009 at 02:15:34PM -0400, John Baldwin wrote:
> > Konstantin Belousov wrote:
> > >Author: kib
> > >Date: Thu Dec 18 11:58:12 2008
> > >New Revision: 186276
> > >URL: http://svn.freebsd.org/changeset/base/186276
> > >
> > >Log:
> > >  Do not return success and doomed vnode from lookup. LK_UPGRADE allows
> > >  the vnode to be reclaimed.
> > >  
> > >  Tested by:	pho
> > >  MFC after:	1 month
> > 
> > Would EBADF be more appropriate?  That is what other places that check 
> > VI_DOOMED return for this type of check (e.g. in cache_lookup()).
> 
> I do not think so. When we do namei lookup, there is actually no
> file descriptor to be invalid. The fact the we lost the race with
> forced unmount actually means that there is no more node with
> supplied name.

Hmm, I think a few places need to be fixed to ENOENT instead of EBADF then:

--- //depot/user/jhb/lock/kern/vfs_cache.c
+++ /home/jhb/work/p4/lock/kern/vfs_cache.c
@@ -315,7 +315,7 @@
  * (negative cacheing), a status of ENOENT is returned. If the lookup
  * fails, a status of zero is returned.  If the directory vnode is
  * recycled out from under us due to a forced unmount, a status of
- * EBADF is returned.
+ * ENOENT is returned.
  *
  * vpp is locked and ref'd on return.  If we're looking up DOTDOT, dvp is
  * unlocked.  If we're looking up . an extra ref is taken, but the lock is
@@ -467,7 +467,7 @@
 					/* forced unmount */
 					vrele(*vpp);
 					*vpp = NULL;
-					return (EBADF);
+					return (ENOENT);
 				}
 			} else
 				vn_lock(*vpp, LK_DOWNGRADE | LK_RETRY);
@@ -974,7 +974,7 @@
 		if (vp->v_vflag & VV_ROOT) {
 			if (vp->v_iflag & VI_DOOMED) {	/* forced unmount */
 				CACHE_RUNLOCK();
-				error = EBADF;
+				error = ENOENT;
 				break;
 			}
 			vp = vp->v_mount->mnt_vnodecovered;
--- //depot/user/jhb/lock/kern/vfs_lookup.c
+++ /home/jhb/work/p4/lock/kern/vfs_lookup.c
@@ -602,7 +602,7 @@
 			if ((dp->v_vflag & VV_ROOT) == 0)
 				break;
 			if (dp->v_iflag & VI_DOOMED) {	/* forced unmount */
-				error = EBADF;
+				error = ENOENT;
 				goto bad;
 			}
 			tdp = dp;
@@ -764,9 +764,11 @@
 	     *ndp->ni_next == '/')) {
 		cnp->cn_flags |= ISSYMLINK;
 		if (dp->v_iflag & VI_DOOMED) {
-			/* We can't know whether the directory was mounted with
-			 * NOSYMFOLLOW, so we can't follow safely. */
-			error = EBADF;
+			/*
+			 * We can't know whether the directory was mounted with
+			 * NOSYMFOLLOW, so we can't follow safely.
+			 */
+			error = ENOENT;
 			goto bad2;
 		}
 		if (dp->v_mount->mnt_flag & MNT_NOSYMFOLLOW) {


-- 
John Baldwin

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:08:32 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 71642106567B;
	Wed, 18 Mar 2009 18:08:32 +0000 (UTC)
	(envelope-from jamie@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5DE978FC08;
	Wed, 18 Mar 2009 18:08:32 +0000 (UTC)
	(envelope-from jamie@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2II8Wpw033291;
	Wed, 18 Mar 2009 18:08:32 GMT (envelope-from jamie@svn.freebsd.org)
Received: (from jamie@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2II8VT0033288;
	Wed, 18 Mar 2009 18:08:31 GMT (envelope-from jamie@svn.freebsd.org)
Message-Id: <200903181808.n2II8VT0033288@svn.freebsd.org>
From: Jamie Gritton 
Date: Wed, 18 Mar 2009 18:08:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189970 - stable/7/sbin/ifconfig
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:08:33 -0000

Author: jamie
Date: Wed Mar 18 18:08:31 2009
New Revision: 189970
URL: http://svn.freebsd.org/changeset/base/189970

Log:
  MFC r189864:
  
    Default to AF_LOCAL instead of AF_INET sockets for non-family-specific
    operations.  This allows the query operations to work in non-IPv4 jails,
    and will be necessary in a future of possible non-INET networking.
  
  Approved by:	bz (mentor)

Modified:
  stable/7/sbin/ifconfig/   (props changed)
  stable/7/sbin/ifconfig/ifclone.c
  stable/7/sbin/ifconfig/ifconfig.c
  stable/7/sbin/ifconfig/ifgroup.c

Modified: stable/7/sbin/ifconfig/ifclone.c
==============================================================================
--- stable/7/sbin/ifconfig/ifclone.c	Wed Mar 18 17:14:44 2009	(r189969)
+++ stable/7/sbin/ifconfig/ifclone.c	Wed Mar 18 18:08:31 2009	(r189970)
@@ -53,9 +53,9 @@ list_cloners(void)
 	int idx;
 	int s;
 
-	s = socket(AF_INET, SOCK_DGRAM, 0);
+	s = socket(AF_LOCAL, SOCK_DGRAM, 0);
 	if (s == -1)
-		err(1, "socket(AF_INET,SOCK_DGRAM)");
+		err(1, "socket(AF_LOCAL,SOCK_DGRAM)");
 
 	memset(&ifcr, 0, sizeof(ifcr));
 

Modified: stable/7/sbin/ifconfig/ifconfig.c
==============================================================================
--- stable/7/sbin/ifconfig/ifconfig.c	Wed Mar 18 17:14:44 2009	(r189969)
+++ stable/7/sbin/ifconfig/ifconfig.c	Wed Mar 18 18:08:31 2009	(r189970)
@@ -434,21 +434,22 @@ static const struct cmd setifdstaddr_cmd
 	DEF_CMD("ifdstaddr", 0, setifdstaddr);
 
 static int
-ifconfig(int argc, char *const *argv, int iscreate, const struct afswtch *afp)
+ifconfig(int argc, char *const *argv, int iscreate, const struct afswtch *uafp)
 {
-	const struct afswtch *nafp;
+	const struct afswtch *afp, *nafp;
 	struct callback *cb;
 	int s;
 
 	strncpy(ifr.ifr_name, name, sizeof ifr.ifr_name);
+	afp = uafp != NULL ? uafp : af_getbyname("inet");
 top:
-	if (afp == NULL)
-		afp = af_getbyname("inet");
 	ifr.ifr_addr.sa_family =
 		afp->af_af == AF_LINK || afp->af_af == AF_UNSPEC ?
-		AF_INET : afp->af_af;
+		AF_LOCAL : afp->af_af;
 
-	if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
+	if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0 &&
+	    (uafp != NULL || errno != EPROTONOSUPPORT ||
+	     (s = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0))
 		err(1, "socket(family %u,SOCK_DGRAM", ifr.ifr_addr.sa_family);
 
 	while (argc > 0) {
@@ -792,11 +793,12 @@ status(const struct afswtch *afp, const 
 
 	if (afp == NULL) {
 		allfamilies = 1;
-		afp = af_getbyname("inet");
-	} else
+		ifr.ifr_addr.sa_family = AF_LOCAL;
+	} else {
 		allfamilies = 0;
-
-	ifr.ifr_addr.sa_family = afp->af_af == AF_LINK ? AF_INET : afp->af_af;
+		ifr.ifr_addr.sa_family =
+		    afp->af_af == AF_LINK ? AF_LOCAL : afp->af_af;
+	}
 	strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
 
 	s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0);

Modified: stable/7/sbin/ifconfig/ifgroup.c
==============================================================================
--- stable/7/sbin/ifconfig/ifgroup.c	Wed Mar 18 17:14:44 2009	(r189969)
+++ stable/7/sbin/ifconfig/ifgroup.c	Wed Mar 18 18:08:31 2009	(r189970)
@@ -131,9 +131,9 @@ printgroup(const char *groupname)
 	int			 len, cnt = 0;
 	int			 s;
 
-	s = socket(AF_INET, SOCK_DGRAM, 0);
+	s = socket(AF_LOCAL, SOCK_DGRAM, 0);
 	if (s == -1)
-		err(1, "socket(AF_INET,SOCK_DGRAM)");
+		err(1, "socket(AF_LOCAL,SOCK_DGRAM)");
 	bzero(&ifgr, sizeof(ifgr));
 	strlcpy(ifgr.ifgr_name, groupname, sizeof(ifgr.ifgr_name));
 	if (ioctl(s, SIOCGIFGMEMB, (caddr_t)&ifgr) == -1) {

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:08:59 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 09A9D106591C;
	Wed, 18 Mar 2009 18:08:59 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42])
	by mx1.freebsd.org (Postfix) with ESMTP id CC9FA8FC1A;
	Wed, 18 Mar 2009 18:08:58 +0000 (UTC) (envelope-from jhb@freebsd.org)
Received: from server.baldwin.cx (pool-98-109-39-197.nwrknj.fios.verizon.net
	[98.109.39.197])
	by cyrus.watson.org (Postfix) with ESMTPSA id 792ED46B66;
	Wed, 18 Mar 2009 14:08:58 -0400 (EDT)
Received: from localhost (john@localhost [127.0.0.1]) (authenticated bits=0)
	by server.baldwin.cx (8.14.3/8.14.3) with ESMTP id n2II7TK7007423;
	Wed, 18 Mar 2009 14:08:52 -0400 (EDT) (envelope-from jhb@freebsd.org)
From: John Baldwin 
To: src-committers@freebsd.org
Date: Wed, 18 Mar 2009 14:06:32 -0400
User-Agent: KMail/1.9.7
References: <200903181619.n2IGJifl031031@svn.freebsd.org>
In-Reply-To: <200903181619.n2IGJifl031031@svn.freebsd.org>
MIME-Version: 1.0
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Message-Id: <200903181406.32619.jhb@freebsd.org>
X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by
	milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]);
	Wed, 18 Mar 2009 14:08:52 -0400 (EDT)
X-Virus-Scanned: ClamAV 0.94.2/9130/Wed Mar 18 09:51:53 2009 on
	server.baldwin.cx
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 
	autolearn=ham version=3.1.3
X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org
Subject: Re: svn commit: r189967 -
	head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:09:00 -0000

On Wednesday 18 March 2009 12:19:44 pm John Baldwin wrote:
> Author: jhb
> Date: Wed Mar 18 16:19:44 2009
> New Revision: 189967
> URL: http://svn.freebsd.org/changeset/base/189967
> 
> Log:
>   The zfs_get_xattrdir() function is used to find the extended attribute
>   directory for a znode.  When the directory already exists, it returns a
>   referenced but unlocked vnode.  When a directory does not yet exist, it
>   calls zfs_make_xattrdir() to create a new one.  zfs_make_xattrdir() returns
>   the vnode both referenced and and locked and zfs_get_xattrdir() was leaking
>   this vnode lock to its callers.  Fix this by dropping the vnode lock if
>   zfs_make_xattrdir() successfully creates a new extended attribute
>   directory.

This should fix the panics with ZFS and tar + EA.

-- 
John Baldwin

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:18:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1E78D106579D;
	Wed, 18 Mar 2009 18:18:39 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0AAB18FC13;
	Wed, 18 Mar 2009 18:18:39 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIIcri033545;
	Wed, 18 Mar 2009 18:18:38 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIIcnF033542;
	Wed, 18 Mar 2009 18:18:38 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181818.n2IIIcnF033542@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:18:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189971 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:18:40 -0000

Author: jhb
Date: Wed Mar 18 18:18:38 2009
New Revision: 189971
URL: http://svn.freebsd.org/changeset/base/189971

Log:
  MFC: Add support for fifos to UDF.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/udf/udf.h
  stable/7/sys/fs/udf/udf_vfsops.c
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf.h
==============================================================================
--- stable/7/sys/fs/udf/udf.h	Wed Mar 18 18:08:31 2009	(r189970)
+++ stable/7/sys/fs/udf/udf.h	Wed Mar 18 18:18:38 2009	(r189971)
@@ -137,3 +137,5 @@ int udf_vget(struct mount *, ino_t, int,
 extern uma_zone_t udf_zone_trans;
 extern uma_zone_t udf_zone_node;
 extern uma_zone_t udf_zone_ds;
+
+extern struct vop_vector udf_fifoops;

Modified: stable/7/sys/fs/udf/udf_vfsops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:08:31 2009	(r189970)
+++ stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:18:38 2009	(r189971)
@@ -681,6 +681,7 @@ udf_vget(struct mount *mp, ino_t ino, in
 		break;
 	case 9:
 		vp->v_type = VFIFO;
+		vp->v_op = &udf_fifoops;
 		break;
 	case 10:
 		vp->v_type = VSOCK;

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:08:31 2009	(r189970)
+++ stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:18:38 2009	(r189971)
@@ -48,6 +48,7 @@
 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -60,9 +61,11 @@ static vop_getattr_t	udf_getattr;
 static vop_open_t	udf_open;
 static vop_ioctl_t	udf_ioctl;
 static vop_pathconf_t	udf_pathconf;
+static vop_print_t	udf_print;
 static vop_read_t	udf_read;
 static vop_readdir_t	udf_readdir;
 static vop_readlink_t	udf_readlink;
+static vop_setattr_t	udf_setattr;
 static vop_strategy_t	udf_strategy;
 static vop_bmap_t	udf_bmap;
 static vop_cachedlookup_t	udf_lookup;
@@ -84,14 +87,26 @@ static struct vop_vector udf_vnodeops = 
 	.vop_lookup =		vfs_cache_lookup,
 	.vop_open =		udf_open,
 	.vop_pathconf =		udf_pathconf,
+	.vop_print =		udf_print,
 	.vop_read =		udf_read,
 	.vop_readdir =		udf_readdir,
 	.vop_readlink =		udf_readlink,
 	.vop_reclaim =		udf_reclaim,
+	.vop_setattr =		udf_setattr,
 	.vop_strategy =		udf_strategy,
 	.vop_vptofh =		udf_vptofh,
 };
 
+struct vop_vector udf_fifoops = {
+	.vop_default =		&fifo_specops,
+	.vop_access =		udf_access,
+	.vop_getattr =		udf_getattr,
+	.vop_print =		udf_print,
+	.vop_reclaim =		udf_reclaim,
+	.vop_setattr =		udf_setattr,
+	.vop_vptofh =		udf_vptofh,
+};
+
 MALLOC_DEFINE(M_UDFFID, "udf_fid", "UDF FileId structure");
 MALLOC_DEFINE(M_UDFDS, "udf_ds", "UDF Dirstream structure");
 
@@ -305,6 +320,38 @@ udf_getattr(struct vop_getattr_args *a)
 	return (0);
 }
 
+static int
+udf_setattr(struct vop_setattr_args *a)
+{
+	struct vnode *vp;
+	struct vattr *vap;
+
+	vp = a->a_vp;
+	vap = a->a_vap;
+	if (vap->va_flags != (u_long)VNOVAL || vap->va_uid != (uid_t)VNOVAL ||
+	    vap->va_gid != (gid_t)VNOVAL || vap->va_atime.tv_sec != VNOVAL ||
+	    vap->va_mtime.tv_sec != VNOVAL || vap->va_mode != (mode_t)VNOVAL)
+		return (EROFS);
+	if (vap->va_size != (u_quad_t)VNOVAL) {
+		switch (vp->v_type) {
+		case VDIR:
+			return (EISDIR);
+		case VLNK:
+		case VREG:
+			return (EROFS);
+		case VCHR:
+		case VBLK:
+		case VSOCK:
+		case VFIFO:
+		case VNON:
+		case VBAD:
+		case VMARKER:
+			return (0);
+		}
+	}
+	return (0);
+}
+
 /*
  * File specific ioctls.
  */
@@ -341,6 +388,20 @@ udf_pathconf(struct vop_pathconf_args *a
 	}
 }
 
+static int
+udf_print(struct vop_print_args *ap)
+{
+	struct vnode *vp = ap->a_vp;
+	struct udf_node *node = VTON(vp);
+
+	printf("    ino %lu, on dev %s", (u_long)node->hash_id,
+	    devtoname(node->udfmp->im_dev));
+	if (vp->v_type == VFIFO)
+		fifo_printinfo(vp);
+	printf("\n");
+	return (0);
+}
+
 #define lblkno(udfmp, loc)	((loc) >> (udfmp)->bshift)
 #define blkoff(udfmp, loc)	((loc) & (udfmp)->bmask)
 #define lblktosize(imp, blk)	((blk) << (udfmp)->bshift)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:20:21 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 472B810656C6;
	Wed, 18 Mar 2009 18:20:21 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 32BFE8FC1B;
	Wed, 18 Mar 2009 18:20:21 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIKL1v033635;
	Wed, 18 Mar 2009 18:20:21 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIKLFr033632;
	Wed, 18 Mar 2009 18:20:21 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181820.n2IIKLFr033632@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:20:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189972 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:20:23 -0000

Author: jhb
Date: Wed Mar 18 18:20:20 2009
New Revision: 189972
URL: http://svn.freebsd.org/changeset/base/189972

Log:
  MFC: Add rudimentary support for symbolic links on UDF.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/udf/ecma167-udf.h
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/ecma167-udf.h
==============================================================================
--- stable/7/sys/fs/udf/ecma167-udf.h	Wed Mar 18 18:18:38 2009	(r189971)
+++ stable/7/sys/fs/udf/ecma167-udf.h	Wed Mar 18 18:20:20 2009	(r189972)
@@ -354,6 +354,18 @@ struct file_entry {
 #define	UDF_FENTRY_PERM_GRP_MASK	0xE0
 #define	UDF_FENTRY_PERM_OWNER_MASK	0x1C00
 
+/* Path Component [4/14.16.1] */
+struct path_component {
+	uint8_t			type;
+	uint8_t			length;
+	uint16_t		version;
+	uint8_t			identifier[1];
+} __packed;
+#define	UDF_PATH_ROOT		2
+#define	UDF_PATH_DOTDOT		3
+#define	UDF_PATH_DOT		4
+#define	UDF_PATH_PATH		5
+
 union dscrptr {
 	struct desc_tag		tag;
 	struct anchor_vdp	avdp;

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:18:38 2009	(r189971)
+++ stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:20:20 2009	(r189972)
@@ -846,12 +846,121 @@ udf_readdir(struct vop_readdir_args *a)
 	return (error);
 }
 
-/* Are there any implementations out there that do soft-links? */
 static int
 udf_readlink(struct vop_readlink_args *ap)
 {
-	printf("%s called\n", __func__);
-	return (EOPNOTSUPP);
+	struct path_component *pc, *end;
+	struct vnode *vp;
+	struct uio uio;
+	struct iovec iov[1];
+	struct udf_node *node;
+	void *buf;
+	char *cp;
+	int error, len, root;
+
+	/*
+	 * A symbolic link in UDF is a list of variable-length path
+	 * component structures.  We build a pathname in the caller's
+	 * uio by traversing this list.
+	 */
+	vp = ap->a_vp;
+	node = VTON(vp);
+	len = le64toh(node->fentry->inf_len);
+	buf = malloc(iov[0].iov_len, M_DEVBUF, M_WAITOK);
+	iov[0].iov_base = buf;
+	iov[0].iov_len = len;
+	uio.uio_iov = iov;
+	uio.uio_iovcnt = 1;
+	uio.uio_offset = 0;
+	uio.uio_resid = iov[0].iov_len;
+	uio.uio_segflg = UIO_SYSSPACE;
+	uio.uio_rw = UIO_READ;
+	uio.uio_td = curthread;
+	error = VOP_READ(vp, &uio, 0, ap->a_cred);
+	if (error)
+		goto error;
+
+	pc = buf;
+	end = (void *)((char *)buf + len);
+	root = 0;
+	while (pc < end) {
+		switch (pc->type) {
+		case UDF_PATH_ROOT:
+			/* Only allow this at the beginning of a path. */
+			if ((void *)pc != buf) {
+				error = EINVAL;
+				goto error;
+			}
+			cp = "/";
+			len = 1;
+			root = 1;
+			break;
+		case UDF_PATH_DOT:
+			cp = ".";
+			len = 1;
+			break;
+		case UDF_PATH_DOTDOT:
+			cp = "..";
+			len = 2;
+			break;
+		case UDF_PATH_PATH:
+			if (pc->length == 0) {
+				error = EINVAL;
+				goto error;
+			}
+			/*
+			 * XXX: We only support CS8 which appears to map
+			 * to ASCII directly.
+			 */
+			switch (pc->identifier[0]) {
+			case 8:
+				cp = pc->identifier + 1;
+				len = pc->length - 1;
+				break;
+			default:
+				error = EOPNOTSUPP;
+				goto error;
+			}
+			break;
+		default:
+			error = EINVAL;
+			goto error;
+		}
+
+		/*
+		 * If this is not the first component, insert a path
+		 * separator.
+		 */
+		if (pc != buf) {
+			/* If we started with root we already have a "/". */
+			if (root)
+				goto skipslash;
+			root = 0;
+			if (ap->a_uio->uio_resid < 1) {
+				error = ENAMETOOLONG;
+				goto error;
+			}
+			error = uiomove("/", 1, ap->a_uio);
+			if (error)
+				break;
+		}
+	skipslash:
+
+		/* Append string at 'cp' of length 'len' to our path. */
+		if (len > ap->a_uio->uio_resid) {
+			error = ENAMETOOLONG;
+			goto error;
+		}
+		error = uiomove(cp, len, ap->a_uio);
+		if (error)
+			break;
+
+		/* Advance to next component. */
+		pc = (void *)((char *)pc + 4 + pc->length);
+	}
+error:
+	free(buf, M_DEVBUF);
+	return (error);
 }
 
 static int

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:25:57 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 43477106564A;
	Wed, 18 Mar 2009 18:25:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2662E8FC1F;
	Wed, 18 Mar 2009 18:25:57 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIPvYu033797;
	Wed, 18 Mar 2009 18:25:57 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIPunx033795;
	Wed, 18 Mar 2009 18:25:57 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181825.n2IIPunx033795@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:25:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189973 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:25:58 -0000

Author: jhb
Date: Wed Mar 18 18:25:56 2009
New Revision: 189973
URL: http://svn.freebsd.org/changeset/base/189973

Log:
  MFC: Mark udf(4) MPSAFE and add support for using shared vnode locks for
  pathname lookups.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/udf/udf_vfsops.c
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vfsops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:20:20 2009	(r189972)
+++ stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:25:56 2009	(r189973)
@@ -344,6 +344,7 @@ udf_mountfs(struct vnode *devvp, struct 
 	mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum;
 	MNT_ILOCK(mp);
 	mp->mnt_flag |= MNT_LOCAL;
+	mp->mnt_kern_flag |= MNTK_MPSAFE | MNTK_LOOKUP_SHARED;
 	MNT_IUNLOCK(mp);
 	udfmp->im_mountp = mp;
 	udfmp->im_dev = devvp->v_rdev;
@@ -546,22 +547,13 @@ static int
 udf_root(struct mount *mp, int flags, struct vnode **vpp, struct thread *td)
 {
 	struct udf_mnt *udfmp;
-	struct vnode *vp;
 	ino_t id;
-	int error;
 
 	udfmp = VFSTOUDFFS(mp);
 
 	id = udf_getid(&udfmp->root_icb);
 
-	error = udf_vget(mp, id, LK_EXCLUSIVE, vpp);
-	if (error)
-		return error;
-
-	vp = *vpp;
-	vp->v_vflag |= VV_ROOT;
-
-	return (0);
+	return (udf_vget(mp, id, flags, vpp));
 }
 
 static int
@@ -597,6 +589,22 @@ udf_vget(struct mount *mp, ino_t ino, in
 	if (error || *vpp != NULL)
 		return (error);
 
+	/*
+	 * We must promote to an exclusive lock for vnode creation.  This
+	 * can happen if lookup is passed LOCKSHARED.
+ 	 */
+	if ((flags & LK_TYPE_MASK) == LK_SHARED) {
+		flags &= ~LK_TYPE_MASK;
+		flags |= LK_EXCLUSIVE;
+	}
+
+	/*
+	 * We do not lock vnode creation as it is believed to be too
+	 * expensive for such rare case as simultaneous creation of vnode
+	 * for same ino by different processes. We just allow them to race
+	 * and check later to decide who wins. Let the race begin!
+	 */
+
 	td = curthread;
 	udfmp = VFSTOUDFFS(mp);
 
@@ -690,6 +698,13 @@ udf_vget(struct mount *mp, ino_t ino, in
 		vp->v_type = VLNK;
 		break;
 	}
+
+	if (vp->v_type != VFIFO)
+		VN_LOCK_ASHARE(vp);
+
+	if (ino == udf_getid(&udfmp->root_icb))
+		vp->v_vflag |= VV_ROOT;
+
 	*vpp = vp;
 
 	return (0);

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:20:20 2009	(r189972)
+++ stable/7/sys/fs/udf/udf_vnops.c	Wed Mar 18 18:25:56 2009	(r189973)
@@ -1056,13 +1056,14 @@ udf_lookup(struct vop_cachedlookup_args 
 	long namelen;
 	ino_t id = 0;
 	int offset, error = 0;
-	int numdirpasses, fsize;
+	int fsize, lkflags, ltype, numdirpasses;
 
 	dvp = a->a_dvp;
 	node = VTON(dvp);
 	udfmp = node->udfmp;
 	nameiop = a->a_cnp->cn_nameiop;
 	flags = a->a_cnp->cn_flags;
+	lkflags = a->a_cnp->cn_lkflags;
 	nameptr = a->a_cnp->cn_nameptr;
 	namelen = a->a_cnp->cn_namelen;
 	fsize = le64toh(node->fentry->inf_len);
@@ -1124,20 +1125,36 @@ lookloop:
 
 	/* Did we have a match? */
 	if (id) {
-		if (flags & ISDOTDOT)
-			VOP_UNLOCK(dvp, 0, a->a_cnp->cn_thread);
-		error = udf_vget(udfmp->im_mountp, id, LK_EXCLUSIVE, &tdp);
-		if (flags & ISDOTDOT)
-			vn_lock(dvp, LK_EXCLUSIVE|LK_RETRY, a->a_cnp->cn_thread);
-		if (!error) {
+		/*
+		 * Remember where this entry was if it's the final
+		 * component.
+		 */
+		if ((flags & ISLASTCN) && nameiop == LOOKUP)
+			node->diroff = ds->offset + ds->off;
+		if (numdirpasses == 2)
+			nchstats.ncs_pass2++;
+		udf_closedir(ds);
+
+		if (flags & ISDOTDOT) {
+			error = vn_vget_ino(dvp, id, lkflags, &tdp);
+		} else if (node->hash_id == id) {
+			VREF(dvp);	/* we want ourself, ie "." */
 			/*
-			 * Remember where this entry was if it's the final
-			 * component.
+			 * When we lookup "." we still can be asked to lock it
+			 * differently.
 			 */
-			if ((flags & ISLASTCN) && nameiop == LOOKUP)
-				node->diroff = ds->offset + ds->off;
-			if (numdirpasses == 2)
-				nchstats.ncs_pass2++;
+			ltype = lkflags & LK_TYPE_MASK;
+			if (ltype != VOP_ISLOCKED(dvp, td)) {
+				if (ltype == LK_EXCLUSIVE)
+					vn_lock(dvp, LK_UPGRADE | LK_RETRY, td);
+				else /* if (ltype == LK_SHARED) */
+					vn_lock(dvp, LK_DOWNGRADE | LK_RETRY,
+					    td);
+			}
+			tdp = dvp;
+		} else
+			error = udf_vget(udfmp->im_mountp, id, lkflags, &tdp);
+		if (!error) {
 			*vpp = tdp;
 			/* Put this entry in the cache */
 			if (flags & MAKEENTRY)
@@ -1151,6 +1168,7 @@ lookloop:
 			udf_closedir(ds);
 			goto lookloop;
 		}
+		udf_closedir(ds);
 
 		/* Enter name into cache as non-existant */
 		if (flags & MAKEENTRY)
@@ -1164,7 +1182,6 @@ lookloop:
 		}
 	}
 
-	udf_closedir(ds);
 	return (error);
 }
 

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:30:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 76D2F10656BD;
	Wed, 18 Mar 2009 18:30:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 637368FC15;
	Wed, 18 Mar 2009 18:30:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIU0oO033939;
	Wed, 18 Mar 2009 18:30:00 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIU0F4033938;
	Wed, 18 Mar 2009 18:30:00 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181830.n2IIU0F4033938@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:30:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189974 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb ufs/ffs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:30:01 -0000

Author: jhb
Date: Wed Mar 18 18:30:00 2009
New Revision: 189974
URL: http://svn.freebsd.org/changeset/base/189974

Log:
  MFC:
  - If the g_access() call for the initial root mount fails, then fully
    cleanup.  Before the GEOM consumer would not have been closed.
  - Bump the reference on the character device being mounted while the
    associated devfs vnode is locked.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/ufs/ffs/ffs_vfsops.c

Modified: stable/7/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- stable/7/sys/ufs/ffs/ffs_vfsops.c	Wed Mar 18 18:25:56 2009	(r189973)
+++ stable/7/sys/ufs/ffs/ffs_vfsops.c	Wed Mar 18 18:30:00 2009	(r189974)
@@ -622,10 +622,13 @@ ffs_mountfs(devvp, mp, td)
 	struct g_consumer *cp;
 	struct mount *nmp;
 
-	dev = devvp->v_rdev;
+	bp = NULL;
+	ump = NULL;
 	cred = td ? td->td_ucred : NOCRED;
-
 	ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
+
+	dev = devvp->v_rdev;
+	dev_ref(dev);
 	DROP_GIANT();
 	g_topology_lock();
 	error = g_vfs_open(devvp, &cp, "ffs", ronly ? 0 : 1);
@@ -640,8 +643,7 @@ ffs_mountfs(devvp, mp, td)
 	PICKUP_GIANT();
 	VOP_UNLOCK(devvp, 0, td);
 	if (error)
-		return (error);
-	dev_ref(dev);
+		goto out;
 	if (devvp->v_rdev->si_iosize_max != 0)
 		mp->mnt_iosize_max = devvp->v_rdev->si_iosize_max;
 	if (mp->mnt_iosize_max > MAXPHYS)
@@ -650,8 +652,6 @@ ffs_mountfs(devvp, mp, td)
 	devvp->v_bufobj.bo_private = cp;
 	devvp->v_bufobj.bo_ops = &ffs_ops;
 
-	bp = NULL;
-	ump = NULL;
 	fs = NULL;
 	sblockloc = 0;
 	/*

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:38:26 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DA70110656CD;
	Wed, 18 Mar 2009 18:38:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ACC608FC0C;
	Wed, 18 Mar 2009 18:38:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIcQ69034184;
	Wed, 18 Mar 2009 18:38:26 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIcQAp034183;
	Wed, 18 Mar 2009 18:38:26 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181838.n2IIcQAp034183@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:38:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189975 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/cd9660
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:38:28 -0000

Author: jhb
Date: Wed Mar 18 18:38:26 2009
New Revision: 189975
URL: http://svn.freebsd.org/changeset/base/189975

Log:
  MFC: Keep the vnode for the mountpoint locked on return from namei()
  until after g_vfs_open() to match other filesystems.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/cd9660/cd9660_vfsops.c

Modified: stable/7/sys/fs/cd9660/cd9660_vfsops.c
==============================================================================
--- stable/7/sys/fs/cd9660/cd9660_vfsops.c	Wed Mar 18 18:30:00 2009	(r189974)
+++ stable/7/sys/fs/cd9660/cd9660_vfsops.c	Wed Mar 18 18:38:26 2009	(r189975)
@@ -154,14 +154,14 @@ cd9660_mount(struct mount *mp, struct th
 	 * Not an update, or updating the name: look up the name
 	 * and verify that it refers to a sensible block device.
 	 */
-	NDINIT(&ndp, LOOKUP, FOLLOW, UIO_SYSSPACE, fspec, td);
+	NDINIT(&ndp, LOOKUP, FOLLOW | LOCKLEAF, UIO_SYSSPACE, fspec, td);
 	if ((error = namei(&ndp)))
 		return (error);
 	NDFREE(&ndp, NDF_ONLY_PNBUF);
 	devvp = ndp.ni_vp;
 
 	if (!vn_isdisk(devvp, &error)) {
-		vrele(devvp);
+		vput(devvp);
 		return (error);
 	}
 
@@ -170,7 +170,6 @@ cd9660_mount(struct mount *mp, struct th
 	 * or has superuser abilities
 	 */
 	accessmode = VREAD;
-	vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
 	error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td);
 	if (error)
 		error = priv_check(td, PRIV_VFS_MOUNT_PERM);
@@ -178,22 +177,20 @@ cd9660_mount(struct mount *mp, struct th
 		vput(devvp);
 		return (error);
 	}
-	VOP_UNLOCK(devvp, 0, td);
 
 	if ((mp->mnt_flag & MNT_UPDATE) == 0) {
 		error = iso_mountfs(devvp, mp, td);
+		if (error)
+			vrele(devvp);
 	} else {
 		if (devvp != imp->im_devvp)
 			error = EINVAL;	/* needs translation */
-		else
-			vrele(devvp);
-	}
-	if (error) {
-		vrele(devvp);
-		return error;
+		vput(devvp);
 	}
+	if (error)
+		return (error);
 	vfs_mountedfrom(mp, fspec);
-	return 0;
+	return (0);
 }
 
 /*
@@ -224,7 +221,6 @@ iso_mountfs(devvp, mp, td)
 	struct bufobj *bo;
 	char *cs_local, *cs_disk;
 
-	vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY, td);
 	DROP_GIANT();
 	g_topology_lock();
 	error = g_vfs_open(devvp, &cp, "cd9660", 0);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:42:48 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C12E210656CF;
	Wed, 18 Mar 2009 18:42:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A304A8FC17;
	Wed, 18 Mar 2009 18:42:48 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIgmIo034314;
	Wed, 18 Mar 2009 18:42:48 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIgmvI034311;
	Wed, 18 Mar 2009 18:42:48 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181842.n2IIgmvI034311@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:42:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189976 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/cd9660 fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:42:50 -0000

Author: jhb
Date: Wed Mar 18 18:42:48 2009
New Revision: 189976
URL: http://svn.freebsd.org/changeset/base/189976

Log:
  MFC: Consolidate error handling in mount routines and make the mountpoint
  hold a reference on the cdev the fs is mounted on.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/cd9660/cd9660_vfsops.c
  stable/7/sys/fs/udf/udf_vfsops.c

Modified: stable/7/sys/fs/cd9660/cd9660_vfsops.c
==============================================================================
--- stable/7/sys/fs/cd9660/cd9660_vfsops.c	Wed Mar 18 18:38:26 2009	(r189975)
+++ stable/7/sys/fs/cd9660/cd9660_vfsops.c	Wed Mar 18 18:42:48 2009	(r189976)
@@ -205,7 +205,7 @@ iso_mountfs(devvp, mp, td)
 	struct iso_mnt *isomp = (struct iso_mnt *)0;
 	struct buf *bp = NULL;
 	struct buf *pribp = NULL, *supbp = NULL;
-	struct cdev *dev = devvp->v_rdev;
+	struct cdev *dev;
 	int error = EINVAL;
 	int high_sierra = 0;
 	int iso_bsize;
@@ -221,6 +221,8 @@ iso_mountfs(devvp, mp, td)
 	struct bufobj *bo;
 	char *cs_local, *cs_disk;
 
+	dev = devvp->v_rdev;
+	dev_ref(dev);
 	DROP_GIANT();
 	g_topology_lock();
 	error = g_vfs_open(devvp, &cp, "cd9660", 0);
@@ -228,27 +230,21 @@ iso_mountfs(devvp, mp, td)
 	PICKUP_GIANT();
 	VOP_UNLOCK(devvp, 0, td);
 	if (error)
-		return error;
+		goto out;
 	if (devvp->v_rdev->si_iosize_max != 0)
 		mp->mnt_iosize_max = devvp->v_rdev->si_iosize_max;
 	if (mp->mnt_iosize_max > MAXPHYS)
 		mp->mnt_iosize_max = MAXPHYS;
 
 	bo = &devvp->v_bufobj;
-	bo->bo_private = cp;
-	bo->bo_ops = g_vfs_bufops;
 
 	/* This is the "logical sector size".  The standard says this
 	 * should be 2048 or the physical sector size on the device,
 	 * whichever is greater.
 	 */
 	if ((ISO_DEFAULT_BLOCK_SIZE % cp->provider->sectorsize) != 0) {
-		DROP_GIANT();
-		g_topology_lock();
-		g_vfs_close(cp, td);
-		g_topology_unlock();
-                PICKUP_GIANT();
-		return (EINVAL);
+		error = EINVAL;
+		goto out;
 	}
 
 	iso_bsize = cp->provider->sectorsize;
@@ -487,6 +483,7 @@ out:
 		free((caddr_t)isomp, M_ISOFSMNT);
 		mp->mnt_data = (qaddr_t)0;
 	}
+	dev_rel(dev);
 	return error;
 }
 
@@ -526,6 +523,7 @@ cd9660_unmount(mp, mntflags, td)
 	g_topology_unlock();
 	PICKUP_GIANT();
 	vrele(isomp->im_devvp);
+	dev_rel(isomp->im_dev);
 	free((caddr_t)isomp, M_ISOFSMNT);
 	mp->mnt_data = (qaddr_t)0;
 	MNT_ILOCK(mp);

Modified: stable/7/sys/fs/udf/udf_vfsops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:38:26 2009	(r189975)
+++ stable/7/sys/fs/udf/udf_vfsops.c	Wed Mar 18 18:42:48 2009	(r189976)
@@ -301,8 +301,10 @@ udf_checktag(struct desc_tag *tag, uint1
 }
 
 static int
-udf_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td) {
+udf_mountfs(struct vnode *devvp, struct mount *mp, struct thread *td)
+{
 	struct buf *bp = NULL;
+	struct cdev *dev;
 	struct anchor_vdp avdp;
 	struct udf_mnt *udfmp = NULL;
 	struct part_desc *pd;
@@ -319,6 +321,8 @@ udf_mountfs(struct vnode *devvp, struct 
 	struct g_consumer *cp;
 	struct bufobj *bo;
 
+	dev = devvp->v_rdev;
+	dev_ref(dev);
 	DROP_GIANT();
 	g_topology_lock();
 	error = g_vfs_open(devvp, &cp, "udf", 0);
@@ -326,7 +330,7 @@ udf_mountfs(struct vnode *devvp, struct 
 	PICKUP_GIANT();
 	VOP_UNLOCK(devvp, 0, td);
 	if (error)
-		return error;
+		goto bail;
 
 	bo = &devvp->v_bufobj;
 
@@ -347,7 +351,7 @@ udf_mountfs(struct vnode *devvp, struct 
 	mp->mnt_kern_flag |= MNTK_MPSAFE | MNTK_LOOKUP_SHARED;
 	MNT_IUNLOCK(mp);
 	udfmp->im_mountp = mp;
-	udfmp->im_dev = devvp->v_rdev;
+	udfmp->im_dev = dev;
 	udfmp->im_devvp = devvp;
 	udfmp->im_d2l = NULL;
 	udfmp->im_cp = cp;
@@ -364,12 +368,8 @@ udf_mountfs(struct vnode *devvp, struct 
 
 	if (((logical_secsize % cp->provider->sectorsize) != 0) ||
 	    (logical_secsize < cp->provider->sectorsize)) {
-		DROP_GIANT();
-		g_topology_lock();
-		g_vfs_close(cp, td);
-		g_topology_unlock();
-		PICKUP_GIANT();
-		return (EINVAL);
+		error = EINVAL;
+		goto bail;
 	}
 
 	bsize = cp->provider->sectorsize;
@@ -492,11 +492,14 @@ bail:
 		FREE(udfmp, M_UDFMOUNT);
 	if (bp != NULL)
 		brelse(bp);
-	DROP_GIANT();
-	g_topology_lock();
-	g_vfs_close(cp, td);
-	g_topology_unlock();
-	PICKUP_GIANT();
+	if (cp != NULL) {
+		DROP_GIANT();
+		g_topology_lock();
+		g_vfs_close(cp, td);
+		g_topology_unlock();
+		PICKUP_GIANT();
+	}
+	dev_rel(dev);
 	return error;
 };
 
@@ -529,6 +532,7 @@ udf_unmount(struct mount *mp, int mntfla
 	g_topology_unlock();
 	PICKUP_GIANT();
 	vrele(udfmp->im_devvp);
+	dev_rel(udfmp->im_dev);
 
 	if (udfmp->s_table != NULL)
 		FREE(udfmp->s_table, M_UDFMOUNT);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:42:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C99A110656E0;
	Wed, 18 Mar 2009 18:42:58 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B80148FC1D;
	Wed, 18 Mar 2009 18:42:58 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIgw55034352;
	Wed, 18 Mar 2009 18:42:58 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIgw6f034350;
	Wed, 18 Mar 2009 18:42:58 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200903181842.n2IIgw6f034350@svn.freebsd.org>
From: Christian Brueffer 
Date: Wed, 18 Mar 2009 18:42:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189977 - head
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:42:59 -0000

Author: brueffer
Date: Wed Mar 18 18:42:58 2009
New Revision: 189977
URL: http://svn.freebsd.org/changeset/base/189977

Log:
  k8temp(4) has been renamed to amdtemp(4).

Modified:
  head/ObsoleteFiles.inc

Modified: head/ObsoleteFiles.inc
==============================================================================
--- head/ObsoleteFiles.inc	Wed Mar 18 18:42:48 2009	(r189976)
+++ head/ObsoleteFiles.inc	Wed Mar 18 18:42:58 2009	(r189977)
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20090313: k8temp(4) renamed to amdtemp(4)
+OLD_FILES+=usr/share/man/man4/k8temp.4.gz
 # 20090308: libusb.so.1 renamed
 OLD_LIBS+=usr/lib/libusb20.so.1
 OLD_FILES+=usr/lib/libusb20.a

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:43:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9B6F91065670;
	Wed, 18 Mar 2009 18:43:31 +0000 (UTC)
	(envelope-from luigi@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7B55A8FC0A;
	Wed, 18 Mar 2009 18:43:31 +0000 (UTC)
	(envelope-from luigi@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIhVmV034405;
	Wed, 18 Mar 2009 18:43:31 GMT (envelope-from luigi@svn.freebsd.org)
Received: (from luigi@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIhVmp034404;
	Wed, 18 Mar 2009 18:43:31 GMT (envelope-from luigi@svn.freebsd.org)
Message-Id: <200903181843.n2IIhVmp034404@svn.freebsd.org>
From: Luigi Rizzo 
Date: Wed, 18 Mar 2009 18:43:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189978 - head/release/picobsd/build
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:43:32 -0000

Author: luigi
Date: Wed Mar 18 18:43:31 2009
New Revision: 189978
URL: http://svn.freebsd.org/changeset/base/189978

Log:
  add the option to picobsd to copy files from the host filesystem
  without root privs. This is done, among other things, replacing
  the absolute paths in the symlinks with relative paths, so we
  do not need to do a chroot to follow them.
  
  Still need to update the manpage.
  
  MFC after:	3 days

Modified:
  head/release/picobsd/build/picobsd

Modified: head/release/picobsd/build/picobsd
==============================================================================
--- head/release/picobsd/build/picobsd	Wed Mar 18 18:42:58 2009	(r189977)
+++ head/release/picobsd/build/picobsd	Wed Mar 18 18:43:31 2009	(r189978)
@@ -284,6 +284,9 @@ build_image() {
     if [ -f ${MY_TREE}/config ] ; then
 	. ${MY_TREE}/config
     fi
+    if [ -f ${o_additional_config} ] ; then
+	. ${o_additional_config}
+    fi
 
     # location of the object directory
     PICO_OBJ=${l_objtree}/picobsd/${THETYPE}
@@ -529,6 +532,32 @@ populate_floppy_fs() {		# OK
     ) || true
 }
 
+# Copy the specified files to the destination filesystem.
+# Each file is specified as a pair "src dst", dst is assumed to be
+# a directory (and created with mkdir -p) if it has a trailing /
+# Be careful to escape metacharacters.
+# You can use ${CROSS} to point to the root of the cross build
+# (remember that it might be incomplete)
+
+do_copyfiles() {	# rootdir varname
+	log Copy files to $1
+	local root=$1
+	local srcs dst
+	local CROSS=${_SHLIBDIRPREFIX}
+	eval set "\${${2}}"
+        srcs=""
+	for dst in $* ; do
+		[ x"$srcs" = x ] && srcs=$dst && continue
+		eval srcs="$srcs"	# expand wildcard and vars
+		case x"$dst" in
+		*/ )	mkdir -p ${root}/${dst} ;;
+		# * )	mkdir -p `dirname ${root}/${dst}` ;;
+		esac
+		cp -p ${srcs} ${root}/${dst} || true
+		srcs=""
+        done
+}
+
 # Populate the memory filesystem with binaries and non-variable
 # configuration files.
 # First do an mtree pass, then create directory links and device entries,
@@ -537,7 +566,7 @@ populate_floppy_fs() {		# OK
 # Finally, if required, make a copy of the floppy.tree onto /fd
 
 populate_mfs_tree() {
-    local a dst MFS_TREE
+    local i j a dst MFS_TREE
 
     log "populate_mfs_tree()"
     dst=${BUILDDIR}/mfs.tree
@@ -552,12 +581,15 @@ populate_mfs_tree() {
     log "Running mtree using $a..."
     mtree -deU -f $a -p ${dst} > /dev/null || fail $? mtree
 
-    # XXX create links
+    # Create symlinks using relative pathnames, so it is possible
+    # to follow them also when building the image.
+    # Note that names in STAND_LINKS should not have a leading /
     for i in ${STAND_LINKS}; do
-	ln -s /stand ${dst}/$i
+	j=`echo $i | sed -E 's:^[^/]+::;s:/[^/]+:../:g'`
+	ln -s ${j}stand ${dst}/$i
     done
-    ln -s /dev/null ${dst}/var/run/log
-    ln -s /etc/termcap ${dst}/usr/share/misc/termcap
+    ln -s ../../dev/null ${dst}/var/run/log
+    ln -s ../../../etc/termcap ${dst}/usr/share/misc/termcap
 
     ### now build the crunched binaries ###
     (
@@ -629,6 +661,13 @@ populate_mfs_tree() {
 	(cd ${dst}; chown -R root . )
     fi
 
+    if [ -n "${copy_files}" ] ; then
+	do_copyfiles ${dst} copy_files
+    fi
+
+    # The 'import_files' mechanism is deprecated, as it requires
+    # root permissions to follow the symlinks, and also does
+    # not let you rename the entries.
     if [ -n "${import_files}" ] ; then
 	log "importing ${import_files} into mfs"
 	# We do it in a chroot environment on the target so
@@ -641,6 +680,7 @@ populate_mfs_tree() {
 	rm -rf ${dst}/rescue
     fi
 
+    # final step -- build the mfs image
     (cd ${BUILDDIR}
 	# override the owner
 	echo "/set uid=0 gid=0" > mtree.out
@@ -916,6 +956,11 @@ while [ true ]; do
 	generate_iso="YES"
 	;;
 
+    --cfg) # read additional config from this file
+	o_additional_config=`realpath $2`
+	shift
+	;;
+
     *)
 	break
 	;;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 18:46:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E3ED2106567E;
	Wed, 18 Mar 2009 18:46:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D143D8FC1A;
	Wed, 18 Mar 2009 18:46:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IIkou9034615;
	Wed, 18 Mar 2009 18:46:50 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IIkoc6034614;
	Wed, 18 Mar 2009 18:46:50 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903181846.n2IIkoc6034614@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 18:46:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189979 - stable/7/sys/sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 18:46:52 -0000

Author: jhb
Date: Wed Mar 18 18:46:50 2009
New Revision: 189979
URL: http://svn.freebsd.org/changeset/base/189979

Log:
  MFC: Add VN_LOCK_ASHARE() and VN_LOCK_AREC() macros to make it easier to
  share code with HEAD.

Modified:
  stable/7/sys/sys/vnode.h

Modified: stable/7/sys/sys/vnode.h
==============================================================================
--- stable/7/sys/sys/vnode.h	Wed Mar 18 18:43:31 2009	(r189978)
+++ stable/7/sys/sys/vnode.h	Wed Mar 18 18:46:50 2009	(r189979)
@@ -397,6 +397,9 @@ extern void	(*lease_updatetime)(int delt
 #define	VI_UNLOCK(vp)	mtx_unlock(&(vp)->v_interlock)
 #define	VI_MTX(vp)	(&(vp)->v_interlock)
 
+#define	VN_LOCK_AREC(vp)	((vp)->v_vnlock->lk_flags |= LK_CANRECURSE)
+#define	VN_LOCK_ASHARE(vp)	((vp)->v_vnlock->lk_flags &= ~LK_NOSHARE)
+
 #endif /* _KERNEL */
 
 /*

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 19:28:17 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C0046106564A;
	Wed, 18 Mar 2009 19:28:17 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AD4468FC22;
	Wed, 18 Mar 2009 19:28:17 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IJSH9m035501;
	Wed, 18 Mar 2009 19:28:17 GMT (envelope-from sam@svn.freebsd.org)
Received: (from sam@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IJSHHm035494;
	Wed, 18 Mar 2009 19:28:17 GMT (envelope-from sam@svn.freebsd.org)
Message-Id: <200903181928.n2IJSHHm035494@svn.freebsd.org>
From: Sam Leffler 
Date: Wed, 18 Mar 2009 19:28:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189980 - in head/sys: dev/ath net80211
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 19:28:18 -0000

Author: sam
Date: Wed Mar 18 19:28:17 2009
New Revision: 189980
URL: http://svn.freebsd.org/changeset/base/189980

Log:
  Minor cleanups of tdma protocol handling:
  o break out version-related code to simplify rev'ing the protocol
  o add parameter validation macros so checks that appear multiple places
    are consistent (and easy to change)
  o add protocol version check when looking for a scan candidate
  o improve scan debug output format
  o rewrite beacon update handling to calculate a bitmask of changed values
    and pass that down through the driver callback so drivers can optimize work
  o do slot bounds check before use when parsing received beacons

Modified:
  head/sys/dev/ath/if_ath.c
  head/sys/net80211/ieee80211.h
  head/sys/net80211/ieee80211_scan_sta.c
  head/sys/net80211/ieee80211_tdma.c
  head/sys/net80211/ieee80211_tdma.h
  head/sys/net80211/ieee80211_var.h

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/dev/ath/if_ath.c	Wed Mar 18 19:28:17 2009	(r189980)
@@ -225,7 +225,7 @@ static void	ath_tdma_bintvalsetup(struct
 		    const struct ieee80211_tdma_state *tdma);
 static void	ath_tdma_config(struct ath_softc *sc, struct ieee80211vap *vap);
 static void	ath_tdma_update(struct ieee80211_node *ni,
-		    const struct ieee80211_tdma_param *tdma);
+		    const struct ieee80211_tdma_param *tdma, int);
 static void	ath_tdma_beacon_send(struct ath_softc *sc,
 		    struct ieee80211vap *vap);
 
@@ -7477,7 +7477,7 @@ ath_tdma_config(struct ath_softc *sc, st
  */
 static void
 ath_tdma_update(struct ieee80211_node *ni,
-	const struct ieee80211_tdma_param *tdma)
+	const struct ieee80211_tdma_param *tdma, int changed)
 {
 #define	TSF_TO_TU(_h,_l) \
 	((((u_int32_t)(_h)) << 22) | (((u_int32_t)(_l)) >> 10))
@@ -7498,7 +7498,7 @@ ath_tdma_update(struct ieee80211_node *n
 	/*
 	 * Check for and adopt configuration changes.
 	 */
-	if (isset(ATH_VAP(vap)->av_boff.bo_flags, IEEE80211_BEACON_TDMA)) {
+	if (changed != 0) {
 		const struct ieee80211_tdma_state *ts = vap->iv_tdma;
 
 		ath_tdma_bintvalsetup(sc, ts);

Modified: head/sys/net80211/ieee80211.h
==============================================================================
--- head/sys/net80211/ieee80211.h	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/net80211/ieee80211.h	Wed Mar 18 19:28:17 2009	(r189980)
@@ -1077,15 +1077,27 @@ struct ieee80211_duration {
 #define	ATH_FF_SNAP_ORGCODE_1	0x03
 #define	ATH_FF_SNAP_ORGCODE_2	0x7f
 
+/* NB: Atheros allocated the OUI for this purpose ~2005 but beware ... */
+#define	TDMA_OUI		ATH_OUI
+#define	TDMA_OUI_TYPE		0x02
+#define	TDMA_VERSION_V2		2
+#define	TDMA_VERSION		TDMA_VERSION_V2
+
+/* NB: we only support 2 right now but protocol handles up to 8 */
+#define	TDMA_MAXSLOTS		2	/* max slots/sta's */
+
+#define	TDMA_PARAM_LEN_V2	sizeof(struct ieee80211_tdma_param)
+
 struct ieee80211_tdma_param {
 	u_int8_t	tdma_id;	/* IEEE80211_ELEMID_VENDOR */
 	u_int8_t	tdma_len;
 	u_int8_t	tdma_oui[3];	/* 0x00, 0x03, 0x7f */
 	u_int8_t	tdma_type;	/* OUI type */
 	u_int8_t	tdma_subtype;	/* OUI subtype */
+#define	TDMA_SUBTYPE_PARAM	0x01
 	u_int8_t	tdma_version;	/* spec revision */
-	u_int8_t	tdma_slot;	/* station slot # */
-	u_int8_t	tdma_slotcnt;	/* bss slot count */
+	u_int8_t	tdma_slot;	/* station slot # [0..7] */
+	u_int8_t	tdma_slotcnt;	/* bss slot count [1..8] */
 	u_int16_t	tdma_slotlen;	/* bss slot len (100us) */
 	u_int8_t	tdma_bintval;	/* beacon interval (superframes) */
 	u_int8_t	tdma_inuse[1];	/* slot occupancy map */
@@ -1093,10 +1105,14 @@ struct ieee80211_tdma_param {
 	u_int8_t	tdma_tstamp[8];	/* timestamp from last beacon */
 } __packed;
 
-/* NB: Atheros allocated the OUI for this purpose ~3 years ago but beware ... */
-#define	TDMA_OUI		ATH_OUI
-#define	TDMA_OUI_TYPE		0x02
-#define	TDMA_SUBTYPE_PARAM	0x01
-#define	TDMA_VERSION		2
+#define	TDMA_VERSION_VALID(_version) \
+	(TDMA_VERSION_V2 <= (_version) && (_version) <= TDMA_VERSION)
+#define	TDMA_SLOTCNT_VALID(_slotcnt) \
+	(2 <= (_slotcnt) && (_slotcnt) <= TDMA_MAXSLOTS)
+/* XXX magic constants */
+#define	TDMA_SLOTLEN_VALID(_slotlen) \
+	(2*100 <= (_slotlen) && (unsigned)(_slotlen) <= 0xfffff)
+/* XXX probably should set a max */
+#define	TDMA_BINTVAL_VALID(_bintval)	(1 <= (_bintval))
 
 #endif /* _NET80211_IEEE80211_H_ */

Modified: head/sys/net80211/ieee80211_scan_sta.c
==============================================================================
--- head/sys/net80211/ieee80211_scan_sta.c	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/net80211/ieee80211_scan_sta.c	Wed Mar 18 19:28:17 2009	(r189980)
@@ -126,6 +126,7 @@ static void sta_flush_table(struct sta_t
 #define	MATCH_TDMA_NOTMASTER	0x0800	/* not TDMA master */
 #define	MATCH_TDMA_NOSLOT	0x1000	/* all TDMA slots occupied */
 #define	MATCH_TDMA_LOCAL	0x2000	/* local address */
+#define	MATCH_TDMA_VERSION	0x4000	/* protocol version mismatch */
 static int match_bss(struct ieee80211vap *,
 	const struct ieee80211_scan_state *, struct sta_entry *, int);
 static void adhoc_age(struct ieee80211_scan_state *);
@@ -970,9 +971,12 @@ match_bss(struct ieee80211vap *vap,
 		if (vap->iv_caps & IEEE80211_C_TDMA) {
 			const struct ieee80211_tdma_param *tdma =
 			    (const struct ieee80211_tdma_param *)se->se_ies.tdma_ie;
+			const struct ieee80211_tdma_state *ts = vap->iv_tdma;
 
 			if (tdma == NULL)
 				fail |= MATCH_TDMA_NOIE;
+			else if (tdma->tdma_version != ts->tdma_version)
+				fail |= MATCH_TDMA_VERSION;
 			else if (tdma->tdma_slot != 0)
 				fail |= MATCH_TDMA_NOTMASTER;
 			else if (tdma_isfull(tdma))
@@ -1062,9 +1066,10 @@ match_bss(struct ieee80211vap *vap,
 		    fail & MATCH_CC ? '$' :
 #ifdef IEEE80211_SUPPORT_TDMA
 		    fail & MATCH_TDMA_NOIE ? '&' :
-		    fail & MATCH_TDMA_NOTMASTER ? ':' :
-		    fail & MATCH_TDMA_NOSLOT ? '@' :
-		    fail & MATCH_TDMA_LOCAL ? '#' :
+		    fail & MATCH_TDMA_VERSION ? 'v' :
+		    fail & MATCH_TDMA_NOTMASTER ? 's' :
+		    fail & MATCH_TDMA_NOSLOT ? 'f' :
+		    fail & MATCH_TDMA_LOCAL ? 'l' :
 #endif
 		    fail ? '-' : '+', ether_sprintf(se->se_macaddr));
 		printf(" %s%c", ether_sprintf(se->se_bssid),
@@ -1076,8 +1081,7 @@ match_bss(struct ieee80211vap *vap,
 		    fail & MATCH_RATE ? '!' : ' ');
 		printf(" %4s%c",
 		    (se->se_capinfo & IEEE80211_CAPINFO_ESS) ? "ess" :
-		    (se->se_capinfo & IEEE80211_CAPINFO_IBSS) ? "ibss" :
-		    "????",
+		    (se->se_capinfo & IEEE80211_CAPINFO_IBSS) ? "ibss" : "",
 		    fail & MATCH_CAPINFO ? '!' : ' ');
 		printf(" %3s%c ",
 		    (se->se_capinfo & IEEE80211_CAPINFO_PRIVACY) ?

Modified: head/sys/net80211/ieee80211_tdma.c
==============================================================================
--- head/sys/net80211/ieee80211_tdma.c	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/net80211/ieee80211_tdma.c	Wed Mar 18 19:28:17 2009	(r189980)
@@ -142,6 +142,7 @@ ieee80211_tdma_vattach(struct ieee80211v
 		return;
 	}
 	/* NB: default configuration is passive so no beacons */
+	ts->tdma_version = TDMA_VERSION;
 	ts->tdma_slotlen = TDMA_SLOTLEN_DEFAULT;
 	ts->tdma_slotcnt = TDMA_SLOTCNT_DEFAULT;
 	ts->tdma_bintval = TDMA_BINTVAL_DEFAULT;
@@ -371,71 +372,90 @@ tdma_recv_mgmt(struct ieee80211_node *ni
  * a TDMA information element.  The sender's identity
  * is provided so we can track who our peer is.  If pickslot
  * is non-zero we scan the slot allocation state in the ie
- * locate a free slot for our use.
+ * to locate a free slot for our use.
  */
 static int
 tdma_update(struct ieee80211vap *vap, const struct ieee80211_tdma_param *tdma,
 	struct ieee80211_node *ni, int pickslot)
 {
 	struct ieee80211_tdma_state *ts = vap->iv_tdma;
-	int slotlen, slotcnt, slot, bintval;
+	int slot, slotlen, update;
 
 	KASSERT(vap->iv_caps & IEEE80211_C_TDMA,
 	     ("not a tdma vap, caps 0x%x", vap->iv_caps));
 
-	slotlen = le16toh(tdma->tdma_slotlen);
-	slotcnt = tdma->tdma_slotcnt;
-	bintval = tdma->tdma_bintval;
-
-	/* XXX rate-limit printf's */
-	if (!(2 <= slotcnt && slotcnt <= IEEE80211_TDMA_MAXSLOTS)) {
-		printf("%s: bogus slot cnt %u\n", __func__, slotcnt);
-		return 0;
-	}
-	/* XXX magic constants */
-	if (slotlen < 2 || slotlen > (0xfffff/100)) {
-		printf("%s: bogus slot len %u\n", __func__, slotlen);
-		return 0;
-	}
-	if (bintval < 1) {
-		printf("%s: bogus beacon interval %u\n", __func__, bintval);
-		return 0;
-	}
+	update = 0;
+	if (tdma->tdma_slotcnt != ts->tdma_slotcnt) {
+		if (!TDMA_SLOTCNT_VALID(tdma->tdma_slotcnt)) {
+			printf("%s: bad slot cnt %u\n",
+			    __func__, tdma->tdma_slotcnt);
+			return 0;
+		}
+		update |= TDMA_UPDATE_SLOTCNT;
+ 	}
+	slotlen = le16toh(tdma->tdma_slotlen) * 100;
+	if (slotlen != ts->tdma_slotlen) {
+		if (!TDMA_SLOTLEN_VALID(slotlen)) {
+			printf("%s: bad slot len %u\n",
+			    __func__, slotlen);
+			return 0;
+		}
+		update |= TDMA_UPDATE_SLOTLEN;
+ 	}
+	if (tdma->tdma_bintval != ts->tdma_bintval) {
+		if (!TDMA_BINTVAL_VALID(tdma->tdma_bintval)) {
+			printf("%s: bad beacon interval %u\n",
+			    __func__, tdma->tdma_bintval);
+			return 0;
+		}
+		update |= TDMA_UPDATE_BINTVAL;
+ 	}
+	slot = ts->tdma_slot;
 	if (pickslot) {
 		/*
 		 * Pick unoccupied slot.  Note we never choose slot 0.
 		 */
-		for (slot = slotcnt-1; slot > 0; slot--)
+		for (slot = tdma->tdma_slotcnt-1; slot > 0; slot--)
 			if (isclr(tdma->tdma_inuse, slot))
 				break;
 		if (slot <= 0) {
 			printf("%s: no free slot, slotcnt %u inuse: 0x%x\n",
-				__func__, slotcnt, tdma->tdma_inuse[0]);
+				__func__, tdma->tdma_slotcnt,
+				tdma->tdma_inuse[0]);
 			/* XXX need to do something better */
 			return 0;
 		}
-	} else
-		slot = ts->tdma_slot;
+		if (slot != ts->tdma_slot)
+			update |= TDMA_UPDATE_SLOT;
+	}
+	if (ni != ts->tdma_peer) {
+		/* update everything */
+		update = TDMA_UPDATE_SLOT
+		       | TDMA_UPDATE_SLOTCNT
+		       | TDMA_UPDATE_SLOTLEN
+		       | TDMA_UPDATE_BINTVAL;
+	}
 
-	if (slotcnt != ts->tdma_slotcnt ||
-	    100*slotlen != ts->tdma_slotlen ||
-	    bintval != ts->tdma_bintval ||
-	    slot != ts->tdma_slot ||
-	    ts->tdma_peer != ni) {
+	if (update) {
 		/*
 		 * New/changed parameters; update runtime state.
 		 */
 		/* XXX overwrites user parameters */
-		ts->tdma_slotcnt = slotcnt;
-		ts->tdma_slotlen = 100*slotlen;
-		ts->tdma_slot = slot;
-		ts->tdma_bintval = bintval;
+		if (update & TDMA_UPDATE_SLOTCNT)
+			ts->tdma_slotcnt = tdma->tdma_slotcnt;
+		if (update & TDMA_UPDATE_SLOTLEN)
+			ts->tdma_slotlen = slotlen;
+		if (update & TDMA_UPDATE_SLOT)
+			ts->tdma_slot = slot;
+		if (update & TDMA_UPDATE_BINTVAL)
+			ts->tdma_bintval = tdma->tdma_bintval;
 		/* mark beacon to be updated before next xmit */
 		ieee80211_beacon_notify(vap, IEEE80211_BEACON_TDMA);
 
 		IEEE80211_DPRINTF(vap, IEEE80211_MSG_TDMA,
 		    "%s: slot %u slotcnt %u slotlen %u us bintval %u\n",
-		    __func__, slot, slotcnt, 100*slotlen, tdma->tdma_bintval);
+		    __func__, ts->tdma_slot, ts->tdma_slotcnt,
+		    100*ts->tdma_slotlen, ts->tdma_bintval);
 	}
 	/*
 	 * Notify driver.  Note we can be called before
@@ -445,7 +465,7 @@ tdma_update(struct ieee80211vap *vap, co
 	 * has been setup.  The next beacon will dtrt.
 	 */
 	if (vap->iv_state == IEEE80211_S_RUN)
-		vap->iv_ic->ic_tdma_update(ni, tdma);
+		vap->iv_ic->ic_tdma_update(ni, tdma, update);
 	/*
 	 * Dispatch join event on first beacon from new master.
 	 */
@@ -481,10 +501,23 @@ tdma_process_params(struct ieee80211_nod
 		    wh, "tdma", "too short, len %u", len);
 		return IEEE80211_REASON_IE_INVALID;
 	}
-	if (tdma->tdma_version != TDMA_VERSION) {
+	if (tdma->tdma_version != ts->tdma_version) {
+		IEEE80211_DISCARD_IE(vap,
+		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_TDMA,
+		    wh, "tdma", "bad version %u (ours %u)",
+		    tdma->tdma_version, ts->tdma_version);
+		return IEEE80211_REASON_IE_INVALID;
+	}
+ 	/*
+	 * NB: ideally we'd check against tdma_slotcnt, but that
+	 * would require extra effort so do this easy check that
+	 * covers the work below; more stringent checks are done
+	 * before we make more extensive use of the ie contents.
+	 */
+	if (tdma->tdma_slot >= TDMA_MAXSLOTS) {
 		IEEE80211_DISCARD_IE(vap,
 		    IEEE80211_MSG_ELEMID | IEEE80211_MSG_TDMA,
-		    wh, "tdma", "bad version %u", tdma->tdma_version);
+		    wh, "tdma", "invalid slot %u", tdma->tdma_slot);
 		return IEEE80211_REASON_IE_INVALID;
 	}
 	/*
@@ -612,7 +645,7 @@ ieee80211_add_tdma(uint8_t *frm, struct 
 		.tdma_subtype	= TDMA_SUBTYPE_PARAM,
 		.tdma_version	= TDMA_VERSION,
 	};
-	const struct ieee80211_tdma_state *tdma = vap->iv_tdma;
+	const struct ieee80211_tdma_state *ts = vap->iv_tdma;
 	uint16_t slotlen;
 
 	KASSERT(vap->iv_caps & IEEE80211_C_TDMA,
@@ -620,13 +653,13 @@ ieee80211_add_tdma(uint8_t *frm, struct 
 
 	memcpy(frm, ¶m, sizeof(param));
 	frm += __offsetof(struct ieee80211_tdma_param, tdma_slot);
-	*frm++ = tdma->tdma_slot;
-	*frm++ = tdma->tdma_slotcnt;
+	*frm++ = ts->tdma_slot;
+	*frm++ = ts->tdma_slotcnt;
 	/* NB: convert units to fit in 16-bits */
-	slotlen = tdma->tdma_slotlen / 100;	/* 100us units */
+	slotlen = ts->tdma_slotlen / 100;	/* 100us units */
 	ADDSHORT(frm, slotlen);
-	*frm++ = tdma->tdma_bintval;
-	*frm++ = tdma->tdma_inuse[0];
+	*frm++ = ts->tdma_bintval;
+	*frm++ = ts->tdma_inuse[0];
 	frm += 10;				/* pad+timestamp */
 	return frm; 
 #undef ADDSHORT
@@ -717,8 +750,7 @@ ieee80211_tdma_ioctl_set80211(struct iee
 		}
 		break;
 	case IEEE80211_IOC_TDMA_SLOTCNT:
-		if (!(2 <= ireq->i_val &&
-		      ireq->i_val <= IEEE80211_TDMA_MAXSLOTS))
+		if (!TDMA_SLOTCNT_VALID(ireq->i_val))
 			return EINVAL;
 		if (ireq->i_val != ts->tdma_slotcnt) {
 			ts->tdma_slotcnt = ireq->i_val;
@@ -732,7 +764,7 @@ ieee80211_tdma_ioctl_set80211(struct iee
 		 * 0xfffff is the max duration for bursting
 		 * (implict by way of 16-bit data type for i_val)
 		 */
-		if (ireq->i_val < 150)
+		if (!TDMA_SLOTLEN_VALID(ireq->i_val))
 			return EINVAL;
 		if (ireq->i_val != ts->tdma_slotlen) {
 			ts->tdma_slotlen = ireq->i_val;
@@ -740,7 +772,7 @@ ieee80211_tdma_ioctl_set80211(struct iee
 		}
 		break;
 	case IEEE80211_IOC_TDMA_BINTERVAL:
-		if (ireq->i_val < 1)
+		if (!TDMA_BINTVAL_VALID(ireq->i_val))
 			return EINVAL;
 		if (ireq->i_val != ts->tdma_bintval) {
 			ts->tdma_bintval = ireq->i_val;

Modified: head/sys/net80211/ieee80211_tdma.h
==============================================================================
--- head/sys/net80211/ieee80211_tdma.h	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/net80211/ieee80211_tdma.h	Wed Mar 18 19:28:17 2009	(r189980)
@@ -33,11 +33,11 @@
  */
 struct ieee80211_tdma_state {
 	u_int	tdma_slotlen;		/* bss slot length (us) */
+	uint8_t	tdma_version;		/* protocol version to use */
 	uint8_t	tdma_slotcnt;		/* bss slot count */
 	uint8_t	tdma_bintval;		/* beacon interval (slots) */
 	uint8_t	tdma_slot;		/* station slot # */
 	uint8_t	tdma_inuse[1];		/* mask of slots in use */
-#define	IEEE80211_TDMA_MAXSLOTS	8
 	void	*tdma_peer;		/* peer station cookie */
 	uint8_t	tdma_active[1];		/* mask of active slots */
 	int	tdma_count;		/* active/inuse countdown */
@@ -49,6 +49,11 @@ struct ieee80211_tdma_state {
 		    struct mbuf *, int, int, int, uint32_t);
 	void	(*tdma_opdetach)(struct ieee80211vap *);
 };
+ 
+#define	TDMA_UPDATE_SLOT	0x0001	/* tdma_slot changed */
+#define	TDMA_UPDATE_SLOTCNT	0x0002	/* tdma_slotcnt changed */
+#define	TDMA_UPDATE_SLOTLEN	0x0004	/* tdma_slotlen changed */
+#define	TDMA_UPDATE_BINTVAL	0x0008	/* tdma_bintval changed */
 
 void	ieee80211_tdma_vattach(struct ieee80211vap *);
 

Modified: head/sys/net80211/ieee80211_var.h
==============================================================================
--- head/sys/net80211/ieee80211_var.h	Wed Mar 18 18:46:50 2009	(r189979)
+++ head/sys/net80211/ieee80211_var.h	Wed Mar 18 19:28:17 2009	(r189980)
@@ -229,7 +229,7 @@ struct ieee80211com {
 	void			(*ic_newassoc)(struct ieee80211_node *, int);
 	/* TDMA update notification */
 	void			(*ic_tdma_update)(struct ieee80211_node *,
-				    const struct ieee80211_tdma_param *);
+				    const struct ieee80211_tdma_param *, int);
 	/* node state management */
 	struct ieee80211_node*	(*ic_node_alloc)(struct ieee80211vap *,
 				    const uint8_t [IEEE80211_ADDR_LEN]);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 19:38:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D5DCD1065673;
	Wed, 18 Mar 2009 19:38:39 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A9E2A8FC19;
	Wed, 18 Mar 2009 19:38:39 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IJcdX6035738;
	Wed, 18 Mar 2009 19:38:39 GMT (envelope-from sam@svn.freebsd.org)
Received: (from sam@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IJcdnk035736;
	Wed, 18 Mar 2009 19:38:39 GMT (envelope-from sam@svn.freebsd.org)
Message-Id: <200903181938.n2IJcdnk035736@svn.freebsd.org>
From: Sam Leffler 
Date: Wed, 18 Mar 2009 19:38:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189981 - head/sys/net80211
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 19:38:40 -0000

Author: sam
Date: Wed Mar 18 19:38:39 2009
New Revision: 189981
URL: http://svn.freebsd.org/changeset/base/189981

Log:
  rate limit printfs for invalid tdma ie contents; probably want this to
  be less than 1/sec

Modified:
  head/sys/net80211/ieee80211_tdma.c
  head/sys/net80211/ieee80211_tdma.h

Modified: head/sys/net80211/ieee80211_tdma.c
==============================================================================
--- head/sys/net80211/ieee80211_tdma.c	Wed Mar 18 19:28:17 2009	(r189980)
+++ head/sys/net80211/ieee80211_tdma.c	Wed Mar 18 19:38:39 2009	(r189981)
@@ -387,8 +387,9 @@ tdma_update(struct ieee80211vap *vap, co
 	update = 0;
 	if (tdma->tdma_slotcnt != ts->tdma_slotcnt) {
 		if (!TDMA_SLOTCNT_VALID(tdma->tdma_slotcnt)) {
-			printf("%s: bad slot cnt %u\n",
-			    __func__, tdma->tdma_slotcnt);
+			if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+				printf("%s: bad slot cnt %u\n",
+				    __func__, tdma->tdma_slotcnt);
 			return 0;
 		}
 		update |= TDMA_UPDATE_SLOTCNT;
@@ -396,16 +397,18 @@ tdma_update(struct ieee80211vap *vap, co
 	slotlen = le16toh(tdma->tdma_slotlen) * 100;
 	if (slotlen != ts->tdma_slotlen) {
 		if (!TDMA_SLOTLEN_VALID(slotlen)) {
-			printf("%s: bad slot len %u\n",
-			    __func__, slotlen);
+			if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+				printf("%s: bad slot len %u\n",
+				    __func__, slotlen);
 			return 0;
 		}
 		update |= TDMA_UPDATE_SLOTLEN;
  	}
 	if (tdma->tdma_bintval != ts->tdma_bintval) {
 		if (!TDMA_BINTVAL_VALID(tdma->tdma_bintval)) {
-			printf("%s: bad beacon interval %u\n",
-			    __func__, tdma->tdma_bintval);
+			if (ppsratecheck(&ts->tdma_lastprint, &ts->tdma_fails, 1))
+				printf("%s: bad beacon interval %u\n",
+				    __func__, tdma->tdma_bintval);
 			return 0;
 		}
 		update |= TDMA_UPDATE_BINTVAL;

Modified: head/sys/net80211/ieee80211_tdma.h
==============================================================================
--- head/sys/net80211/ieee80211_tdma.h	Wed Mar 18 19:28:17 2009	(r189980)
+++ head/sys/net80211/ieee80211_tdma.h	Wed Mar 18 19:38:39 2009	(r189981)
@@ -38,9 +38,11 @@ struct ieee80211_tdma_state {
 	uint8_t	tdma_bintval;		/* beacon interval (slots) */
 	uint8_t	tdma_slot;		/* station slot # */
 	uint8_t	tdma_inuse[1];		/* mask of slots in use */
-	void	*tdma_peer;		/* peer station cookie */
 	uint8_t	tdma_active[1];		/* mask of active slots */
 	int	tdma_count;		/* active/inuse countdown */
+	void	*tdma_peer;		/* peer station cookie */
+	struct timeval tdma_lastprint;	/* time of last rate-limited printf */
+	int	tdma_fails;		/* fail count for rate-limiting */
 
 	/* parent method pointers */
 	int	(*tdma_newstate)(struct ieee80211vap *, enum ieee80211_state,

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 19:51:40 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EE7471065693;
	Wed, 18 Mar 2009 19:51:40 +0000 (UTC)
	(envelope-from luigi@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DBCE58FC1A;
	Wed, 18 Mar 2009 19:51:40 +0000 (UTC)
	(envelope-from luigi@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IJpeLm036023;
	Wed, 18 Mar 2009 19:51:40 GMT (envelope-from luigi@svn.freebsd.org)
Received: (from luigi@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IJpe8J036022;
	Wed, 18 Mar 2009 19:51:40 GMT (envelope-from luigi@svn.freebsd.org)
Message-Id: <200903181951.n2IJpe8J036022@svn.freebsd.org>
From: Luigi Rizzo 
Date: Wed, 18 Mar 2009 19:51:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189982 - stable/7/release/picobsd/bridge
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 19:51:42 -0000

Author: luigi
Date: Wed Mar 18 19:51:40 2009
New Revision: 189982
URL: http://svn.freebsd.org/changeset/base/189982

Log:
  replace vnconfig with mdconfig and related tools
  (mdmfs, newfs) and libraries.
  
  Also add the kld* tools so we can load modules.

Modified:
  stable/7/release/picobsd/bridge/crunch.conf

Modified: stable/7/release/picobsd/bridge/crunch.conf
==============================================================================
--- stable/7/release/picobsd/bridge/crunch.conf	Wed Mar 18 19:38:39 2009	(r189981)
+++ stable/7/release/picobsd/bridge/crunch.conf	Wed Mar 18 19:51:40 2009	(r189982)
@@ -135,8 +135,9 @@ progs arp # 0KB.
 
 progs bsdlabel # 4KB.
 progs fdisk # 4KB.
-progs vnconfig # 0KB.
+progs mdconfig # 0KB.
 
+progs kldload kldunload kldstat kldxref
 #progs grep # 16KB.
 progs date # 4KB.
 #progs mount_nfs # 0KB.
@@ -145,9 +146,11 @@ progs ping # 4KB.
 #progs routed # 32KB.
 progs ipfw # 12KB.
 progs traceroute # 0KB.
+progs mdmfs
+ln mdmfs mount_mfs
 # progs mount_cd9660 # 4KB.
 # ln mount_cd9660 cd9660
-# progs newfs # 12KB.
+progs newfs
 #ln newfs mount_mfs
 ln chown chgrp
 # ln mount_msdosfs msdos
@@ -180,3 +183,4 @@ libs -ledit -lutil -lmd -lcrypt -lmp -lm
 libs -lz -lpcap -lwrap
 libs -ltermcap -lgnuregex # -lcurses
 libs -lgeom
+libs -lsbuf -lbsdxml

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 20:03:33 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BA39C1065702;
	Wed, 18 Mar 2009 20:03:33 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A87428FC18;
	Wed, 18 Mar 2009 20:03:33 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IK3X14036278;
	Wed, 18 Mar 2009 20:03:33 GMT (envelope-from imp@svn.freebsd.org)
Received: (from imp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IK3Xhb036277;
	Wed, 18 Mar 2009 20:03:33 GMT (envelope-from imp@svn.freebsd.org)
Message-Id: <200903182003.n2IK3Xhb036277@svn.freebsd.org>
From: Warner Losh 
Date: Wed, 18 Mar 2009 20:03:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189983 - head/share/man/man4
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 20:03:35 -0000

Author: imp
Date: Wed Mar 18 20:03:33 2009
New Revision: 189983
URL: http://svn.freebsd.org/changeset/base/189983

Log:
  Reference exca.

Modified:
  head/share/man/man4/pccbb.4

Modified: head/share/man/man4/pccbb.4
==============================================================================
--- head/share/man/man4/pccbb.4	Wed Mar 18 19:51:40 2009	(r189982)
+++ head/share/man/man4/pccbb.4	Wed Mar 18 20:03:33 2009	(r189983)
@@ -34,6 +34,7 @@
 .Cd device cbb
 .Cd device pccard
 .Cd device cardbus
+.Cd device exca
 .Sh DESCRIPTION
 The
 .Nm
@@ -178,4 +179,5 @@ debugging problems with the bridge chips
 .El
 .Sh SEE ALSO
 .Xr cardbus 4 ,
-.Xr pccard 4
+.Xr pccard 4 ,
+.Xr exca 4

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 20:18:23 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 907A51065677;
	Wed, 18 Mar 2009 20:18:23 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 639538FC18;
	Wed, 18 Mar 2009 20:18:23 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IKIN9N036639;
	Wed, 18 Mar 2009 20:18:23 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IKINLA036637;
	Wed, 18 Mar 2009 20:18:23 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903182018.n2IKINLA036637@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 20:18:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189984 - in stable/7/sys: . contrib/pf dev/cxgb
	netinet6 netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 20:18:24 -0000

Author: bz
Date: Wed Mar 18 20:18:23 2009
New Revision: 189984
URL: http://svn.freebsd.org/changeset/base/189984

Log:
  MFC r186791:
  
    Switch protosw* structs to C99 initializers.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/netinet6/in6_gif.c
  stable/7/sys/netipsec/xform_ipip.c

Modified: stable/7/sys/netinet6/in6_gif.c
==============================================================================
--- stable/7/sys/netinet6/in6_gif.c	Wed Mar 18 20:03:33 2009	(r189983)
+++ stable/7/sys/netinet6/in6_gif.c	Wed Mar 18 20:18:23 2009	(r189984)
@@ -74,12 +74,15 @@ static int gif_validate6(const struct ip
 			 struct ifnet *);
 
 extern  struct domain inet6domain;
-struct ip6protosw in6_gif_protosw =
-{ SOCK_RAW,	&inet6domain,	0/* IPPROTO_IPV[46] */,	PR_ATOMIC|PR_ADDR,
-  in6_gif_input, rip6_output,	0,		rip6_ctloutput,
-  0,
-  0,		0,		0,		0,
-  &rip6_usrreqs
+struct ip6protosw in6_gif_protosw = {
+	.pr_type =	SOCK_RAW,
+	.pr_domain =	&inet6domain,
+	.pr_protocol =	0,			/* IPPROTO_IPV[46] */
+	.pr_flags =	PR_ATOMIC|PR_ADDR,
+	.pr_input =	in6_gif_input,
+	.pr_output =	rip6_output,
+	.pr_ctloutput =	rip6_ctloutput,
+	.pr_usrreqs =	&rip6_usrreqs
 };
 
 int

Modified: stable/7/sys/netipsec/xform_ipip.c
==============================================================================
--- stable/7/sys/netipsec/xform_ipip.c	Wed Mar 18 20:03:33 2009	(r189983)
+++ stable/7/sys/netipsec/xform_ipip.c	Wed Mar 18 20:18:23 2009	(r189984)
@@ -652,22 +652,24 @@ static struct xformsw ipe4_xformsw = {
 };
 
 extern struct domain inetdomain;
-static struct protosw ipe4_protosw =
-{ SOCK_RAW,	&inetdomain,	IPPROTO_IPV4,	PR_ATOMIC|PR_ADDR|PR_LASTHDR,
-  ip4_input,
-		0, 		0,		rip_ctloutput,
-  0,
-  0,		0,		0,		0,
-  &rip_usrreqs
+static struct protosw ipe4_protosw = {
+	.pr_type =	SOCK_RAW,
+	.pr_domain =	&inetdomain,
+	.pr_protocol =	IPPROTO_IPV4,
+	.pr_flags =	PR_ATOMIC|PR_ADDR|PR_LASTHDR,
+	.pr_input =	ip4_input,
+	.pr_ctloutput =	rip_ctloutput,
+	.pr_usrreqs =	&rip_usrreqs
 };
 #ifdef INET6
-static struct ip6protosw ipe6_protosw =
-{ SOCK_RAW,	&inetdomain,	IPPROTO_IPV6,	PR_ATOMIC|PR_ADDR|PR_LASTHDR,
-  ip4_input6,
-		0,	 	0,		rip_ctloutput,
-  0,
-  0,		0,		0,		0,
-  &rip_usrreqs
+static struct ip6protosw ipe6_protosw = {
+	.pr_type =	SOCK_RAW,
+	.pr_domain =	&inetdomain,
+	.pr_protocol =	IPPROTO_IPV6,
+	.pr_flags =	PR_ATOMIC|PR_ADDR|PR_LASTHDR,
+	.pr_input =	ip4_input6,
+	.pr_ctloutput =	rip_ctloutput,
+	.pr_usrreqs =	&rip_usrreqs
 };
 #endif
 

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 20:22:22 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 66F001065673;
	Wed, 18 Mar 2009 20:22:22 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3A32E8FC0C;
	Wed, 18 Mar 2009 20:22:22 +0000 (UTC) (envelope-from bz@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IKMMl5036767;
	Wed, 18 Mar 2009 20:22:22 GMT (envelope-from bz@svn.freebsd.org)
Received: (from bz@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IKMMRI036766;
	Wed, 18 Mar 2009 20:22:22 GMT (envelope-from bz@svn.freebsd.org)
Message-Id: <200903182022.n2IKMMRI036766@svn.freebsd.org>
From: "Bjoern A. Zeeb" 
Date: Wed, 18 Mar 2009 20:22:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189985 - stable/7
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 20:22:24 -0000

Author: bz
Date: Wed Mar 18 20:22:21 2009
New Revision: 189985
URL: http://svn.freebsd.org/changeset/base/189985

Log:
  MFC r179232 by jb:
  
    Add a knob to allow just the kernels to be built during a 'make universe'.
  
  MFC r185250 by des:
  
    Change the universe target to warn the user for every world or kernel that
    fails.  The error message includes a reference to the relevant log file.

Modified:
  stable/7/Makefile   (contents, props changed)

Modified: stable/7/Makefile
==============================================================================
--- stable/7/Makefile	Wed Mar 18 20:18:23 2009	(r189984)
+++ stable/7/Makefile	Wed Mar 18 20:22:21 2009	(r189985)
@@ -285,22 +285,30 @@ KERNCONFS:=	${KERNCONFS:S/^NOTES$/LINT/}
 universe: universe_${target}
 .ORDER: universe_prologue universe_${target} universe_epilogue
 universe_${target}:
+.if !defined(MAKE_JUST_KERNELS)
 	@echo ">> ${target} started on `LC_ALL=C date`"
-	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildworld \
+	@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
+	    ${MAKE} ${JFLAG} buildworld \
 	    TARGET=${target} \
-	    __MAKE_CONF=/dev/null \
-	    > _.${target}.buildworld 2>&1
+	    > _.${target}.buildworld 2>&1 || \
+	    echo "${target} world failed," \
+	    "check _.${target}.buildworld for details")
 	@echo ">> ${target} buildworld completed on `LC_ALL=C date`"
+.endif
 .if exists(${.CURDIR}/sys/${target}/conf/NOTES)
-	-cd ${.CURDIR}/sys/${target}/conf && ${MAKE} LINT \
-	    > ${.CURDIR}/_.${target}.makeLINT 2>&1
+	@(cd ${.CURDIR}/sys/${target}/conf && env __MAKE_CONF=/dev/null \
+	    ${MAKE} LINT > ${.CURDIR}/_.${target}.makeLINT 2>&1 || \
+	    echo "${target} 'make LINT' failed," \
+	    "check _.${target}.makeLINT for details")
 .endif
 .for kernel in ${KERNCONFS}
-	-cd ${.CURDIR} && ${MAKE} ${JFLAG} buildkernel \
+	@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
+	    ${MAKE} ${JFLAG} buildkernel \
 	    TARGET=${target} \
 	    KERNCONF=${kernel} \
-	    __MAKE_CONF=/dev/null \
-	    > _.${target}.${kernel} 2>&1
+	    > _.${target}.${kernel} 2>&1 || \
+	    echo "${target} ${kernel} kernel failed," \
+	    "check _.${target}.${kernel} for details")
 .endfor
 	@echo ">> ${target} completed on `LC_ALL=C date`"
 .endfor

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 20:31:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D7CE610656CE
	for ; Wed, 18 Mar 2009 20:31:13 +0000 (UTC)
	(envelope-from mailnull@mips.inka.de)
Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net
	[151.189.21.42])
	by mx1.freebsd.org (Postfix) with ESMTP id 8CE118FC12
	for ; Wed, 18 Mar 2009 20:31:13 +0000 (UTC)
	(envelope-from mailnull@mips.inka.de)
Received: from mail-in-05-z2.arcor-online.net (mail-in-05-z2.arcor-online.net
	[151.189.8.17]) by mx.arcor.de (Postfix) with ESMTP id A57103FE82E
	for ; Wed, 18 Mar 2009 20:58:58 +0100 (CET)
Received: from mail-in-07.arcor-online.net (mail-in-07.arcor-online.net
	[151.189.21.47])
	by mail-in-05-z2.arcor-online.net (Postfix) with ESMTP id 9DF922DA965
	for ; Wed, 18 Mar 2009 20:58:58 +0100 (CET)
Received: from lorvorc.mips.inka.de (dslb-092-075-199-023.pools.arcor-ip.net
	[92.75.199.23])
	by mail-in-07.arcor-online.net (Postfix) with ESMTPS id 6CCDC3CA9DA
	for ; Wed, 18 Mar 2009 20:58:58 +0100 (CET)
X-DomainKeys: Sendmail DomainKeys Filter v1.0.2 mail-in-07.arcor-online.net
	6CCDC3CA9DA
X-DKIM: Sendmail DKIM Filter v2.8.2 mail-in-07.arcor-online.net 6CCDC3CA9DA
Received: from lorvorc.mips.inka.de (localhost [127.0.0.1])
	by lorvorc.mips.inka.de (8.14.3/8.14.3) with ESMTP id n2IJwvOW042004
	for ; Wed, 18 Mar 2009 20:58:57 +0100 (CET)
	(envelope-from mailnull@lorvorc.mips.inka.de)
Received: (from mailnull@localhost)
	by lorvorc.mips.inka.de (8.14.3/8.14.3/Submit) id n2IJwvrO042003
	for svn-src-all@freebsd.org; Wed, 18 Mar 2009 20:58:57 +0100 (CET)
	(envelope-from mailnull)
From: naddy@mips.inka.de (Christian Weisgerber)
Date: Wed, 18 Mar 2009 19:58:57 +0000 (UTC)
Message-ID: 
References: <200903181830.n2IIU0F4033938@svn.freebsd.org>
Originator: naddy@mips.inka.de (Christian Weisgerber)
To: svn-src-all@freebsd.org
Subject: Re: svn commit: r189974 - in stable/7/sys: . contrib/pf
	dev/ath/ath_hal dev/cxgb ufs/ffs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 20:31:14 -0000

John Baldwin  wrote:

> Modified:
>   stable/7/sys/   (props changed)
>   stable/7/sys/contrib/pf/   (props changed)
>   stable/7/sys/dev/ath/ath_hal/   (props changed)
>   stable/7/sys/dev/cxgb/   (props changed)

Why does every kernel commit touch these?

-- 
Christian "naddy" Weisgerber                          naddy@mips.inka.de


From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 20:42:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 99E72106564A;
	Wed, 18 Mar 2009 20:42:00 +0000 (UTC)
	(envelope-from ambrisko@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 867FE8FC14;
	Wed, 18 Mar 2009 20:42:00 +0000 (UTC)
	(envelope-from ambrisko@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IKg0Cc037145;
	Wed, 18 Mar 2009 20:42:00 GMT
	(envelope-from ambrisko@svn.freebsd.org)
Received: (from ambrisko@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IKg0mE037140;
	Wed, 18 Mar 2009 20:42:00 GMT
	(envelope-from ambrisko@svn.freebsd.org)
Message-Id: <200903182042.n2IKg0mE037140@svn.freebsd.org>
From: Doug Ambrisko 
Date: Wed, 18 Mar 2009 20:42:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189986 - in stable/6/sys: . dev/mfi
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 20:42:01 -0000

Author: ambrisko
Date: Wed Mar 18 20:42:00 2009
New Revision: 189986
URL: http://svn.freebsd.org/changeset/base/189986

Log:
  MF7: r185034 which brings in new HW support, fix some bugs in the API
       for the management ioctl.
  
  Submitted by:	LSI

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/dev/mfi/mfi.c
  stable/6/sys/dev/mfi/mfi_ioctl.h
  stable/6/sys/dev/mfi/mfi_pci.c
  stable/6/sys/dev/mfi/mfireg.h
  stable/6/sys/dev/mfi/mfivar.h

Modified: stable/6/sys/dev/mfi/mfi.c
==============================================================================
--- stable/6/sys/dev/mfi/mfi.c	Wed Mar 18 20:22:21 2009	(r189985)
+++ stable/6/sys/dev/mfi/mfi.c	Wed Mar 18 20:42:00 2009	(r189986)
@@ -163,7 +163,11 @@ static void
 mfi_enable_intr_ppc(struct mfi_softc *sc)
 {
 	MFI_WRITE4(sc, MFI_ODCR0, 0xFFFFFFFF);
-	MFI_WRITE4(sc, MFI_OMSK, ~MFI_1078_EIM);
+	if (sc->mfi_flags & MFI_FLAGS_1078) {
+		MFI_WRITE4(sc, MFI_OMSK, ~MFI_1078_EIM);
+	} else if (sc->mfi_flags & MFI_FLAGS_GEN2) {
+		MFI_WRITE4(sc, MFI_OMSK, ~MFI_GEN2_EIM);
+	}
 }
 
 static int32_t
@@ -171,14 +175,14 @@ mfi_read_fw_status_xscale(struct mfi_sof
 {
 	return MFI_READ4(sc, MFI_OMSG0);
 }
- 
+
 static int32_t
 mfi_read_fw_status_ppc(struct mfi_softc *sc)
 {
 	return MFI_READ4(sc, MFI_OSP0);
 }
 
-static int 
+static int
 mfi_check_clear_intr_xscale(struct mfi_softc *sc)
 {
 	int32_t status;
@@ -189,28 +193,35 @@ mfi_check_clear_intr_xscale(struct mfi_s
 
 	MFI_WRITE4(sc, MFI_OSTS, status);
 	return 0;
- }
+}
 
-static int 
+static int
 mfi_check_clear_intr_ppc(struct mfi_softc *sc)
 {
 	int32_t status;
 
 	status = MFI_READ4(sc, MFI_OSTS);
-	if (!status)
-		return 1; 
+	if (sc->mfi_flags & MFI_FLAGS_1078) {
+		if (!(status & MFI_1078_RM)) {
+			return 1;
+		}
+	} else if (sc->mfi_flags & MFI_FLAGS_GEN2) {
+		if (!(status & MFI_GEN2_RM)) {
+			return 1;
+		}
+	}
 
 	MFI_WRITE4(sc, MFI_ODCR0, status);
 	return 0;
- }
+}
 
-static void 
+static void
 mfi_issue_cmd_xscale(struct mfi_softc *sc,uint32_t bus_add,uint32_t frame_cnt)
 {
 	MFI_WRITE4(sc, MFI_IQP,(bus_add >>3)|frame_cnt);
 }
-  
-static void 
+
+static void
 mfi_issue_cmd_ppc(struct mfi_softc *sc,uint32_t bus_add,uint32_t frame_cnt)
 {
 	MFI_WRITE4(sc, MFI_IQP, (bus_add |frame_cnt <<1)|1 );
@@ -1399,6 +1410,8 @@ mfi_bio_complete(struct mfi_command *cm)
 		device_printf(sc->mfi_dev, "I/O error, status= %d "
 		    "scsi_status= %d\n", hdr->cmd_status, hdr->scsi_status);
 		mfi_print_sense(cm->cm_sc, cm->cm_sense);
+	} else if (cm->cm_error != 0) {
+		bio->bio_flags |= BIO_ERROR;
 	}
 
 	mfi_release_command(cm);
@@ -1815,6 +1828,9 @@ mfi_check_command_post(struct mfi_softc 
 	case MFI_DCMD_CFG_ADD:
 		mfi_ldprobe(sc);
 		break;
+	case MFI_DCMD_CFG_FOREIGN_IMPORT:
+		mfi_ldprobe(sc);
+		break;
 	}
 }
 
@@ -1904,7 +1920,7 @@ mfi_ioctl(struct cdev *dev, u_long cmd, 
 	struct mfi_ioc_aen *aen;
 	struct mfi_command *cm = NULL;
 	uint32_t context;
-	uint8_t *sense_ptr;
+	union mfi_sense_ptr sense_ptr;
 	uint8_t *data = NULL, *temp;
 	int i;
 	struct mfi_ioc_passthru *iop = (struct mfi_ioc_passthru *)arg;
@@ -1986,8 +2002,9 @@ mfi_ioctl(struct cdev *dev, u_long cmd, 
 		context = cm->cm_frame->header.context;
 
 		bcopy(ioc->mfi_frame.raw, cm->cm_frame,
-		      2 * MFI_DCMD_FRAME_SIZE);  /* this isn't quite right */
-		cm->cm_total_frame_size = (sizeof(union mfi_sgl) * ioc->mfi_sge_count) + ioc->mfi_sgl_off;
+		    2 * MFI_DCMD_FRAME_SIZE);  /* this isn't quite right */
+		cm->cm_total_frame_size = (sizeof(union mfi_sgl)
+		    * ioc->mfi_sge_count) + ioc->mfi_sgl_off;
 		if (ioc->mfi_sge_count) {
 			cm->cm_sg =
 			    (union mfi_sgl *)&cm->cm_frame->bytes[ioc->mfi_sgl_off];
@@ -2001,7 +2018,8 @@ mfi_ioctl(struct cdev *dev, u_long cmd, 
 		if (cm->cm_flags == 0)
 			cm->cm_flags |= MFI_CMD_DATAIN | MFI_CMD_DATAOUT;
 		cm->cm_len = cm->cm_frame->header.data_len;
-		if (cm->cm_flags & (MFI_CMD_DATAIN | MFI_CMD_DATAOUT)) {
+		if (cm->cm_len &&
+		    (cm->cm_flags & (MFI_CMD_DATAIN | MFI_CMD_DATAOUT))) {
 			cm->cm_data = data = malloc(cm->cm_len, M_MFIBUF,
 			    M_WAITOK | M_ZERO);
 			if (cm->cm_data == NULL) {
@@ -2051,6 +2069,11 @@ mfi_ioctl(struct cdev *dev, u_long cmd, 
 		if (cm->cm_frame->header.cmd == MFI_CMD_DCMD)
 			locked = mfi_config_lock(sc, cm->cm_frame->dcmd.opcode);
 
+		if (cm->cm_frame->header.cmd == MFI_CMD_PD_SCSI_IO) {
+			cm->cm_frame->pass.sense_addr_lo = cm->cm_sense_busaddr;
+			cm->cm_frame->pass.sense_addr_hi = 0;
+		}
+
 		mtx_lock(&sc->mfi_io_lock);
 		error = mfi_check_command_pre(sc, cm);
 		if (error) {
@@ -2102,10 +2125,20 @@ mfi_ioctl(struct cdev *dev, u_long cmd, 
 		}
 
 		if (ioc->mfi_sense_len) {
-			/* copy out sense */
-			sense_ptr = &((struct mfi_ioc_packet*)arg)
-			    ->mfi_frame.raw[0];
-			error = copyout(cm->cm_sense, sense_ptr,
+			/* get user-space sense ptr then copy out sense */
+			bcopy(&((struct mfi_ioc_packet*)arg)
+			    ->mfi_frame.raw[ioc->mfi_sense_off],
+			    &sense_ptr.sense_ptr_data[0],
+			    sizeof(sense_ptr.sense_ptr_data));
+#ifdef __amd64__
+			if (cmd != MFI_CMD) {
+				/*
+				 * not 64bit native so zero out any address
+				 * over 32bit */
+				sense_ptr.addr.high = 0;
+			}
+#endif
+			error = copyout(cm->cm_sense, sense_ptr.user_space,
 			    ioc->mfi_sense_len);
 			if (error != 0) {
 				device_printf(sc->mfi_dev,
@@ -2203,7 +2236,7 @@ mfi_linux_ioctl_int(struct cdev *dev, u_
 	struct mfi_linux_ioc_aen l_aen;
 	struct mfi_command *cm = NULL;
 	struct mfi_aen *mfi_aen_entry;
-	uint8_t *sense_ptr;
+	union mfi_sense_ptr sense_ptr;
 	uint32_t context;
 	uint8_t *data = NULL, *temp;
 	int i;
@@ -2237,7 +2270,8 @@ mfi_linux_ioctl_int(struct cdev *dev, u_
 
 		bcopy(l_ioc.lioc_frame.raw, cm->cm_frame,
 		      2 * MFI_DCMD_FRAME_SIZE);	/* this isn't quite right */
-		cm->cm_total_frame_size = (sizeof(union mfi_sgl) * l_ioc.lioc_sge_count) + l_ioc.lioc_sgl_off;
+		cm->cm_total_frame_size = (sizeof(union mfi_sgl)
+		      * l_ioc.lioc_sge_count) + l_ioc.lioc_sgl_off;
 		if (l_ioc.lioc_sge_count)
 			cm->cm_sg =
 			    (union mfi_sgl *)&cm->cm_frame->bytes[l_ioc.lioc_sgl_off];
@@ -2247,7 +2281,8 @@ mfi_linux_ioctl_int(struct cdev *dev, u_
 		if (cm->cm_frame->header.flags & MFI_FRAME_DATAOUT)
 			cm->cm_flags |= MFI_CMD_DATAOUT;
 		cm->cm_len = cm->cm_frame->header.data_len;
-		if (cm->cm_flags & (MFI_CMD_DATAIN | MFI_CMD_DATAOUT)) {
+		if (cm->cm_len &&
+		      (cm->cm_flags & (MFI_CMD_DATAIN | MFI_CMD_DATAOUT))) {
 			cm->cm_data = data = malloc(cm->cm_len, M_MFIBUF,
 			    M_WAITOK | M_ZERO);
 			if (cm->cm_data == NULL) {
@@ -2279,6 +2314,11 @@ mfi_linux_ioctl_int(struct cdev *dev, u_
 		if (cm->cm_frame->header.cmd == MFI_CMD_DCMD)
 			locked = mfi_config_lock(sc, cm->cm_frame->dcmd.opcode);
 
+		if (cm->cm_frame->header.cmd == MFI_CMD_PD_SCSI_IO) {
+			cm->cm_frame->pass.sense_addr_lo = cm->cm_sense_busaddr;
+			cm->cm_frame->pass.sense_addr_hi = 0;
+		}
+
 		mtx_lock(&sc->mfi_io_lock);
 		error = mfi_check_command_pre(sc, cm);
 		if (error) {
@@ -2312,10 +2352,19 @@ mfi_linux_ioctl_int(struct cdev *dev, u_
 		}
 
 		if (l_ioc.lioc_sense_len) {
-			/* copy out sense */
-			sense_ptr = &((struct mfi_linux_ioc_packet*)arg)
-			    ->lioc_frame.raw[0];
-			error = copyout(cm->cm_sense, sense_ptr,
+			/* get user-space sense ptr then copy out sense */
+			bcopy(&((struct mfi_linux_ioc_packet*)arg)
+                            ->lioc_frame.raw[l_ioc.lioc_sense_off],
+			    &sense_ptr.sense_ptr_data[0],
+			    sizeof(sense_ptr.sense_ptr_data));
+#ifdef __amd64__
+			/*
+			 * only 32bit Linux support so zero out any
+			 * address over 32bit
+			 */
+			sense_ptr.addr.high = 0;
+#endif
+			error = copyout(cm->cm_sense, sense_ptr.user_space,
 			    l_ioc.lioc_sense_len);
 			if (error != 0) {
 				device_printf(sc->mfi_dev,

Modified: stable/6/sys/dev/mfi/mfi_ioctl.h
==============================================================================
--- stable/6/sys/dev/mfi/mfi_ioctl.h	Wed Mar 18 20:22:21 2009	(r189985)
+++ stable/6/sys/dev/mfi/mfi_ioctl.h	Wed Mar 18 20:42:00 2009	(r189986)
@@ -50,6 +50,16 @@ union mfi_statrequest {
 	struct mfi_qstat	ms_qstat;
 };
 
+#define MAX_SPACE_FOR_SENSE_PTR		32
+union mfi_sense_ptr {
+	uint8_t		sense_ptr_data[MAX_SPACE_FOR_SENSE_PTR];
+	void 		*user_space;
+	struct {
+		uint32_t	low;
+		uint32_t	high;
+	} addr;
+} __packed;
+
 #define MAX_IOCTL_SGE	16
 
 struct mfi_ioc_packet {

Modified: stable/6/sys/dev/mfi/mfi_pci.c
==============================================================================
--- stable/6/sys/dev/mfi/mfi_pci.c	Wed Mar 18 20:22:21 2009	(r189985)
+++ stable/6/sys/dev/mfi/mfi_pci.c	Wed Mar 18 20:42:00 2009	(r189986)
@@ -118,7 +118,14 @@ struct mfi_ident {
 	{0x1000, 0x0413, 0xffff, 0xffff, MFI_FLAGS_1064R, "LSI MegaSAS 1064R"}, /* Verde ZCR */
 	{0x1028, 0x0015, 0xffff, 0xffff, MFI_FLAGS_1064R, "Dell PERC 5/i"},
 	{0x1000, 0x0060, 0x1028, 0xffff, MFI_FLAGS_1078,  "Dell PERC 6"},
-	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
+ 	{0x1000, 0x0060, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
+	{0x1000, 0x0079, 0x1028, 0x1f15, MFI_FLAGS_GEN2,  "Dell PERC 607E Adapter"},
+	{0x1000, 0x0079, 0x1028, 0x1f16, MFI_FLAGS_GEN2,  "Dell PERC 607I Adapter"},
+	{0x1000, 0x0079, 0x1028, 0x1f17, MFI_FLAGS_GEN2,  "Dell PERC 607I Integrated"},
+	{0x1000, 0x0079, 0x1028, 0x1f18, MFI_FLAGS_GEN2,  "Dell PERC 607I Modular"},
+	{0x1000, 0x0078, 0xffff, 0xffff, MFI_FLAGS_GEN2,  "LSI MegaSAS Gen2"},
+	{0x1000, 0x0079, 0xffff, 0xffff, MFI_FLAGS_GEN2,  "LSI MegaSAS Gen2"},
+	{0x1000, 0x007c, 0xffff, 0xffff, MFI_FLAGS_1078,  "LSI MegaSAS 1078"},
 	{0, 0, 0, 0, 0, NULL}
 };
 
@@ -163,6 +170,8 @@ mfi_pci_attach(device_t dev)
 	sc = device_get_softc(dev);
 	bzero(sc, sizeof(*sc));
 	sc->mfi_dev = dev;
+	m = mfi_find_ident(dev);
+	sc->mfi_flags = m->flags;
 
 	/* Verify that the adapter can be set up in PCI space */
 	command = pci_read_config(dev, PCIR_COMMAND, 2);
@@ -179,7 +188,14 @@ mfi_pci_attach(device_t dev)
 	}
 
 	/* Allocate PCI registers */
-	sc->mfi_regs_rid = PCIR_BAR(0);
+	if ((sc->mfi_flags & MFI_FLAGS_1064R) ||
+	    (sc->mfi_flags & MFI_FLAGS_1078)) {
+		/* 1068/1078: Memory mapped BAR is at offset 0x10 */
+		sc->mfi_regs_rid = PCIR_BAR(0);
+	} else if (sc->mfi_flags & MFI_FLAGS_GEN2) {
+		/* GEN2: Memory mapped BAR is at offset 0x14 */
+		sc->mfi_regs_rid = PCIR_BAR(1);
+	}
 	if ((sc->mfi_regs_resource = bus_alloc_resource_any(sc->mfi_dev,
 	    SYS_RES_MEMORY, &sc->mfi_regs_rid, RF_ACTIVE)) == NULL) {
 		device_printf(dev, "Cannot allocate PCI registers\n");
@@ -206,9 +222,6 @@ mfi_pci_attach(device_t dev)
 		goto out;
 	}
 
-	m = mfi_find_ident(dev);
-	sc->mfi_flags = m->flags;
-
 	error = mfi_attach(sc);
 out:
 	if (error) {

Modified: stable/6/sys/dev/mfi/mfireg.h
==============================================================================
--- stable/6/sys/dev/mfi/mfireg.h	Wed Mar 18 20:22:21 2009	(r189985)
+++ stable/6/sys/dev/mfi/mfireg.h	Wed Mar 18 20:42:00 2009	(r189986)
@@ -89,10 +89,16 @@ __FBSDID("$FreeBSD$");
 #define MFI_ODCR0	0xa0 		/* outbound doorbell clear register0  */
 #define MFI_OSP0	0xb0 		/* outbound scratch pad0  */
 #define MFI_1078_EIM	0x80000004 	/* 1078 enable intrrupt mask  */
-#define MFI_RMI		0x2 		/* reply message interrupt  */       
+#define MFI_RMI		0x2 		/* reply message interrupt  */
 #define MFI_1078_RM	0x80000000 	/* reply 1078 message interrupt  */
 #define MFI_ODC		0x4 		/* outbound doorbell change interrupt */
 
+/*
+ * GEN2 specific changes
+ */
+#define MFI_GEN2_EIM	0x00000005	/* GEN2 enable interrupt mask */
+#define MFI_GEN2_RM	0x00000001	/* reply GEN2 message interrupt */
+
 /* Bits for MFI_OSTS */
 #define MFI_OSTS_INTR_VALID	0x00000002
 
@@ -153,6 +159,7 @@ typedef enum {
 	MFI_DCMD_CFG_READ =		0x04010000,
 	MFI_DCMD_CFG_ADD =		0x04020000,
 	MFI_DCMD_CFG_CLEAR =		0x04030000,
+	MFI_DCMD_CFG_FOREIGN_IMPORT =	0x04060400,
 	MFI_DCMD_CLUSTER =		0x08000000,
 	MFI_DCMD_CLUSTER_RESET_ALL =	0x08010100,
 	MFI_DCMD_CLUSTER_RESET_LD =	0x08010200

Modified: stable/6/sys/dev/mfi/mfivar.h
==============================================================================
--- stable/6/sys/dev/mfi/mfivar.h	Wed Mar 18 20:22:21 2009	(r189985)
+++ stable/6/sys/dev/mfi/mfivar.h	Wed Mar 18 20:42:00 2009	(r189986)
@@ -133,6 +133,7 @@ struct mfi_softc {
 #define MFI_FLAGS_STOP		(1<<3)
 #define MFI_FLAGS_1064R		(1<<4)
 #define MFI_FLAGS_1078		(1<<5)
+#define MFI_FLAGS_GEN2		(1<<6)
 
 	struct mfi_hwcomms		*mfi_comms;
 	TAILQ_HEAD(,mfi_command)	mfi_free;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:02:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BBDE6106566C;
	Wed, 18 Mar 2009 21:02:00 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from mail.terabit.net.ua (mail.terabit.net.ua [195.137.202.147])
	by mx1.freebsd.org (Postfix) with ESMTP id 5565D8FC12;
	Wed, 18 Mar 2009 21:02:00 +0000 (UTC)
	(envelope-from kostikbel@gmail.com)
Received: from skuns.zoral.com.ua ([91.193.166.194] helo=mail.zoral.com.ua)
	by mail.terabit.net.ua with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.63 (FreeBSD)) (envelope-from )
	id 1Lk2ti-0007jP-UU; Wed, 18 Mar 2009 23:01:59 +0200
Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua
	[10.1.1.148])
	by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id n2IL1kFN035777
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 18 Mar 2009 23:01:46 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1])
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3) with ESMTP id
	n2IL1kY9011334; Wed, 18 Mar 2009 23:01:46 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
Received: (from kostik@localhost)
	by deviant.kiev.zoral.com.ua (8.14.3/8.14.3/Submit) id n2IL1kNR011333; 
	Wed, 18 Mar 2009 23:01:46 +0200 (EET)
	(envelope-from kostikbel@gmail.com)
X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to
	kostikbel@gmail.com using -f
Date: Wed, 18 Mar 2009 23:01:46 +0200
From: Kostik Belousov 
To: John Baldwin 
Message-ID: <20090318210146.GG7716@deviant.kiev.zoral.com.ua>
References: <200812181158.mBIBwC50039690@svn.freebsd.org>
	<49BAA2C6.2000807@FreeBSD.org>
	<20090313212229.GW41617@deviant.kiev.zoral.com.ua>
	<200903181215.23213.jhb@freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="QWpDgw58+k1mSFBj"
Content-Disposition: inline
In-Reply-To: <200903181215.23213.jhb@freebsd.org>
User-Agent: Mutt/1.4.2.3i
X-Virus-Scanned: ClamAV version 0.94.2,
	clamav-milter version 0.94.2 on skuns.kiev.zoral.com.ua
X-Virus-Status: Clean
X-Spam-Status: No, score=-4.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
	autolearn=ham version=3.2.5
X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on
	skuns.kiev.zoral.com.ua
X-Virus-Scanned: mail.terabit.net.ua 1Lk2ti-0007jP-UU
	ff02edea1678b6c9413a12e355346f4e
X-Terabit: YES
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r186276 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:02:01 -0000


--QWpDgw58+k1mSFBj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 18, 2009 at 12:15:22PM -0400, John Baldwin wrote:
> On Friday 13 March 2009 5:22:29 pm Kostik Belousov wrote:
> > On Fri, Mar 13, 2009 at 02:15:34PM -0400, John Baldwin wrote:
> > > Konstantin Belousov wrote:
> > > >Author: kib
> > > >Date: Thu Dec 18 11:58:12 2008
> > > >New Revision: 186276
> > > >URL: http://svn.freebsd.org/changeset/base/186276
> > > >
> > > >Log:
> > > >  Do not return success and doomed vnode from lookup. LK_UPGRADE all=
ows
> > > >  the vnode to be reclaimed.
> > > > =20
> > > >  Tested by:	pho
> > > >  MFC after:	1 month
> > >=20
> > > Would EBADF be more appropriate?  That is what other places that chec=
k=20
> > > VI_DOOMED return for this type of check (e.g. in cache_lookup()).
> >=20
> > I do not think so. When we do namei lookup, there is actually no
> > file descriptor to be invalid. The fact the we lost the race with
> > forced unmount actually means that there is no more node with
> > supplied name.
>=20
> Hmm, I think a few places need to be fixed to ENOENT instead of EBADF the=
n:
>=20
> --- //depot/user/jhb/lock/kern/vfs_cache.c
> +++ /home/jhb/work/p4/lock/kern/vfs_cache.c
> @@ -315,7 +315,7 @@
>   * (negative cacheing), a status of ENOENT is returned. If the lookup
>   * fails, a status of zero is returned.  If the directory vnode is
>   * recycled out from under us due to a forced unmount, a status of
> - * EBADF is returned.
> + * ENOENT is returned.
>   *
>   * vpp is locked and ref'd on return.  If we're looking up DOTDOT, dvp is
>   * unlocked.  If we're looking up . an extra ref is taken, but the lock =
is
> @@ -467,7 +467,7 @@
>  					/* forced unmount */
>  					vrele(*vpp);
>  					*vpp =3D NULL;
> -					return (EBADF);
> +					return (ENOENT);
>  				}
>  			} else
>  				vn_lock(*vpp, LK_DOWNGRADE | LK_RETRY);
> @@ -974,7 +974,7 @@
>  		if (vp->v_vflag & VV_ROOT) {
>  			if (vp->v_iflag & VI_DOOMED) {	/* forced unmount */
>  				CACHE_RUNLOCK();
> -				error =3D EBADF;
> +				error =3D ENOENT;
>  				break;
>  			}
>  			vp =3D vp->v_mount->mnt_vnodecovered;
> --- //depot/user/jhb/lock/kern/vfs_lookup.c
> +++ /home/jhb/work/p4/lock/kern/vfs_lookup.c
> @@ -602,7 +602,7 @@
>  			if ((dp->v_vflag & VV_ROOT) =3D=3D 0)
>  				break;
>  			if (dp->v_iflag & VI_DOOMED) {	/* forced unmount */
> -				error =3D EBADF;
> +				error =3D ENOENT;
>  				goto bad;
>  			}
>  			tdp =3D dp;
> @@ -764,9 +764,11 @@
>  	     *ndp->ni_next =3D=3D '/')) {
>  		cnp->cn_flags |=3D ISSYMLINK;
>  		if (dp->v_iflag & VI_DOOMED) {
> -			/* We can't know whether the directory was mounted with
> -			 * NOSYMFOLLOW, so we can't follow safely. */
> -			error =3D EBADF;
> +			/*
> +			 * We can't know whether the directory was mounted with
> +			 * NOSYMFOLLOW, so we can't follow safely.
> +			 */
> +			error =3D ENOENT;
>  			goto bad2;
>  		}
>  		if (dp->v_mount->mnt_flag & MNT_NOSYMFOLLOW) {
>=20

There is one place in lookup() that does MNT_UNION handling, it switches
to the covered directory when VOP_LOOKUP returns ENOENT. In current code,
EBADF from VOP_LOOKUP would cause namei to return, but with the change,
it will continue. I doubt that this can cause a problem.

Overall, it looks good to me.

--QWpDgw58+k1mSFBj
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEARECAAYFAknBYTkACgkQC3+MBN1Mb4hHpwCfetOfFkK8nJPRtZnYc1rYsWTZ
TRMAni18qQGC4JYrrn35L/5mjERHFbma
=Dm5Q
-----END PGP SIGNATURE-----

--QWpDgw58+k1mSFBj--

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:03:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A04ED106564A
	for ; Wed, 18 Mar 2009 21:03:39 +0000 (UTC)
	(envelope-from dimitry@andric.com)
Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net
	[IPv6:2001:7b8:2ff:146::2])
	by mx1.freebsd.org (Postfix) with ESMTP id 63F0A8FC08
	for ; Wed, 18 Mar 2009 21:03:39 +0000 (UTC)
	(envelope-from dimitry@andric.com)
Received: from [IPv6:2001:7b8:3a7:0:9cf1:50bd:fbdb:efdd] (unknown
	[IPv6:2001:7b8:3a7:0:9cf1:50bd:fbdb:efdd])
	(using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits))
	(No client certificate requested)
	by tensor.andric.com (Postfix) with ESMTPSA id 09B6A5C43;
	Wed, 18 Mar 2009 22:03:38 +0100 (CET)
Message-ID: <49C161AA.4020806@andric.com>
Date: Wed, 18 Mar 2009 22:03:38 +0100
From: Dimitry Andric 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US;
	rv:1.9.1b4pre) Gecko/20090316 Shredder/3.0b3pre
MIME-Version: 1.0
To: Christian Weisgerber 
References: <200903181830.n2IIU0F4033938@svn.freebsd.org>
	
In-Reply-To: 
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: svn-src-all@freebsd.org
Subject: Re: svn commit: r189974 - in stable/7/sys: .
 contrib/pf	dev/ath/ath_hal dev/cxgb ufs/ffs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:03:39 -0000

On 2009-03-18 20:58, Christian Weisgerber wrote:
>> Modified:
>>   stable/7/sys/   (props changed)
>>   stable/7/sys/contrib/pf/   (props changed)
>>   stable/7/sys/dev/ath/ath_hal/   (props changed)
>>   stable/7/sys/dev/cxgb/   (props changed)
> 
> Why does every kernel commit touch these?

It's Subversion merge information being propagated, in particular in the
vendor import areas, it seems.

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:33:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74E041065678;
	Wed, 18 Mar 2009 21:33:28 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 539F68FC1F;
	Wed, 18 Mar 2009 21:33:28 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILXSHM038160;
	Wed, 18 Mar 2009 21:33:28 GMT (envelope-from rpaulo@svn.freebsd.org)
Received: (from rpaulo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILXSYW038159;
	Wed, 18 Mar 2009 21:33:28 GMT (envelope-from rpaulo@svn.freebsd.org)
Message-Id: <200903182133.n2ILXSYW038159@svn.freebsd.org>
From: Rui Paulo 
Date: Wed, 18 Mar 2009 21:33:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189987 - head/sys/net80211
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:33:32 -0000

Author: rpaulo
Date: Wed Mar 18 21:33:28 2009
New Revision: 189987
URL: http://svn.freebsd.org/changeset/base/189987

Log:
  Use plural in a comment. No functional change.

Modified:
  head/sys/net80211/ieee80211_input.c

Modified: head/sys/net80211/ieee80211_input.c
==============================================================================
--- head/sys/net80211/ieee80211_input.c	Wed Mar 18 20:42:00 2009	(r189986)
+++ head/sys/net80211/ieee80211_input.c	Wed Mar 18 21:33:28 2009	(r189987)
@@ -98,7 +98,7 @@ ieee80211_input_all(struct ieee80211com 
 }
 
 /*
- * This function reassemble fragments.
+ * This function reassembles fragments.
  *
  * XXX should handle 3 concurrent reassemblies per-spec.
  */

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:43:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BC9FB106566B;
	Wed, 18 Mar 2009 21:43:16 +0000 (UTC)
	(envelope-from emax@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A9A058FC13;
	Wed, 18 Mar 2009 21:43:16 +0000 (UTC)
	(envelope-from emax@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILhGGn038405;
	Wed, 18 Mar 2009 21:43:16 GMT (envelope-from emax@svn.freebsd.org)
Received: (from emax@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILhGwW038397;
	Wed, 18 Mar 2009 21:43:16 GMT (envelope-from emax@svn.freebsd.org)
Message-Id: <200903182143.n2ILhGwW038397@svn.freebsd.org>
From: Maksim Yevmenkin 
Date: Wed, 18 Mar 2009 21:43:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189989 - stable/7/lib/libbluetooth
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:43:17 -0000

Author: emax
Date: Wed Mar 18 21:43:16 2009
New Revision: 189989
URL: http://svn.freebsd.org/changeset/base/189989

Log:
  MFC r189462
  MFC is ahead of schedule due to request.
  
  Add Bluetooth compatibility shims. Inspired by Linux BlueZ and NetBSD.
  
  Discussed with:	Iain Hibbert plunky -at- rya-online -dot- net of NetBSD
  Requested by:	Bruce Simpson bms -at- incunabulum -dot- net
  Tested by:	Bruce Simpson bms -at- incunabulum -dot- net

Added:
  stable/7/lib/libbluetooth/dev.c
     - copied unchanged from r189462, head/lib/libbluetooth/dev.c
  stable/7/lib/libbluetooth/hci.c
     - copied unchanged from r189462, head/lib/libbluetooth/hci.c
Modified:
  stable/7/lib/libbluetooth/   (props changed)
  stable/7/lib/libbluetooth/Makefile
  stable/7/lib/libbluetooth/bluetooth.3
  stable/7/lib/libbluetooth/bluetooth.c
  stable/7/lib/libbluetooth/bluetooth.h

Modified: stable/7/lib/libbluetooth/Makefile
==============================================================================
--- stable/7/lib/libbluetooth/Makefile	Wed Mar 18 21:33:53 2009	(r189988)
+++ stable/7/lib/libbluetooth/Makefile	Wed Mar 18 21:43:16 2009	(r189989)
@@ -9,7 +9,7 @@ CFLAGS+=	-I${.CURDIR} -I${.CURDIR}/../..
 
 SHLIB_MAJOR=	3
 
-SRCS=		bluetooth.c
+SRCS=		bluetooth.c dev.c hci.c
 INCS=		bluetooth.h
 
 MLINKS+=	bluetooth.3 bt_gethostbyname.3
@@ -27,6 +27,12 @@ MLINKS+=	bluetooth.3 bt_endprotoent.3
 MLINKS+=	bluetooth.3 bt_ntoa.3
 MLINKS+=	bluetooth.3 bt_aton.3
 
+MLINKS+=	bluetooth.3 bt_devaddr.3
+MLINKS+=	bluetooth.3 bt_devname.3
+
+MLINKS+=	bluetooth.3 bt_devinfo.3
+MLINKS+=	bluetooth.3 bt_devenum.3
+
 MLINKS+=	bluetooth.3 bdaddr_same.3
 MLINKS+=	bluetooth.3 bdaddr_any.3
 MLINKS+=	bluetooth.3 bdaddr_copy.3

Modified: stable/7/lib/libbluetooth/bluetooth.3
==============================================================================
--- stable/7/lib/libbluetooth/bluetooth.3	Wed Mar 18 21:33:53 2009	(r189988)
+++ stable/7/lib/libbluetooth/bluetooth.3	Wed Mar 18 21:43:16 2009	(r189989)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2003 Maksim Yevmenkin 
+.\" Copyright (c) 2003-2009 Maksim Yevmenkin 
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
 .\" $Id: bluetooth.3,v 1.5 2003/05/20 23:04:30 max Exp $
 .\" $FreeBSD$
 .\"
-.Dd August 13, 2008
+.Dd February 13, 2009
 .Dt BLUETOOTH 3
 .Os
 .Sh NAME
@@ -74,6 +74,16 @@
 .Ft const char *
 .Fn bt_ntoa "const bdaddr_t *ba" "char *str"
 .Ft int
+.Fn bt_devaddr "const char *devname" "bdaddr_t *addr"
+.Ft int
+.Fn bt_devname "char *devname" "const bdaddr_t *addr"
+.Ft int
+.Fn (bt_devenum_cb_t) "int s" "struct bt_devinfo const *di" "void *arg"
+.Ft int
+.Fn bt_devinfo "struct bt_devinfo *di"
+.Ft int
+.Fn bt_devenum "bt_devenum_cb_t *cb" "void *arg"
+.Ft int
 .Fn bdaddr_same "const bdaddr_t *a" "const bdaddr_t *b"
 .Ft int
 .Fn bdaddr_any "const bdaddr_t *a"
@@ -197,6 +207,110 @@ It is up to the caller to ensure that pr
 If no buffer was provided then internal static buffer will be used.
 .Pp
 The
+.Fn bt_devaddr
+function interprets the specified
+.Fa devname
+string as the address or device name of a Bluetooth device on the local system,
+and places the device address in the provided
+.Fa bdaddr ,
+if any.
+The function returns 1 if the string was successfully interpreted,
+or 0 if the string did not match any local device.
+The
+.Fn bt_devname
+function takes a Bluetooth device address and copies the local device
+name associated with that address into the buffer provided,
+if any.
+Caller must ensure that provided buffer is at least
+.Dv HCI_DEVNAME_SIZE
+characters in size.
+The function returns 1 when the device was found,
+otherwise 0.
+.Pp
+The
+.Fn bt_devinfo
+function populates prodivded
+.Vt bt_devinfo
+structure with the information about given Bluetooth device.
+The caller is expected to pass Bluetooth device name in the
+.Fa devname
+field of the passed
+.Vt bt_devinfo
+structure.
+The function returns 0 when successful,
+otherwise -1.
+The
+.Vt bt_devinfo
+structure is defined as follows
+.Bd -literal -offset indent
+struct bt_devinfo
+{
+        char            devname[HCI_DEVNAME_SIZE];
+
+        uint32_t        state;
+
+        bdaddr_t        bdaddr;
+        uint16_t        _reserved0;
+
+        uint8_t         features[HCI_DEVFEATURES_SIZE];
+
+        /* buffer info */
+        uint16_t        _reserved1;
+        uint16_t        cmd_free;
+        uint16_t        sco_size;
+        uint16_t        sco_pkts;
+        uint16_t        sco_free;
+        uint16_t        acl_size;
+        uint16_t        acl_pkts;
+        uint16_t        acl_free;
+
+        /* stats */
+        uint32_t        cmd_sent;
+        uint32_t        evnt_recv;
+        uint32_t        acl_recv;
+        uint32_t        acl_sent;
+        uint32_t        sco_recv;
+        uint32_t        sco_sent;
+        uint32_t        bytes_recv;
+        uint32_t        bytes_sent;
+
+        /* misc/specific */
+        uint16_t        link_policy_info;
+        uint16_t        packet_type_info;
+        uint16_t        role_switch_info;
+        uint16_t        debug;
+
+        uint8_t         _padding[20];
+};
+.Ed
+.Pp
+The
+.Fn bt_devenum
+function enumerates Bluetooth devices present in the system.
+For every device found,
+the function will call provided
+.Fa cb
+callback function which should be of
+.Vt bt_devenum_cb_t
+type.
+The callback function is passed a
+.Dv HCI
+socket
+.Fa s ,
+fully populated
+.Vt bt_devinfo
+structure
+.Fa di
+and
+.Fa arg
+argument provided to the
+.Fn bt_devenum .
+The callback function can stop enumeration by returning a value
+that is greater than zero.
+The function returns number of successfully enumerated devices,
+or -1 if an error occurred.
+.Pp
+The
 .Fn bdaddr_same ,
 .Fn bdaddr_any
 and
@@ -287,7 +401,8 @@ on EOF or error.
 .Xr getprotobynumber 3 ,
 .Xr herror 3 ,
 .Xr inet_aton 3 ,
-.Xr inet_ntoa 3
+.Xr inet_ntoa 3 ,
+.Xr ng_hci 4
 .Sh CAVEAT
 The
 .Fn bt_gethostent
@@ -312,6 +427,20 @@ The
 function opens and/or rewinds the
 .Pa /etc/bluetooth/protocols
 file.
+.Pp
+The
+.Fn bt_devenum
+function enumerates up to
+.Dv HCI_DEVMAX
+Bluetooth devices.
+During enumeration the
+.Fn bt_devenum
+function uses the same
+.Dv HCI
+socket.
+The function guarantees that the socket,
+passed to the callback function,
+will be bound and connected to the Bluetooth device being enumerated.
 .Sh AUTHORS
 .An Maksim Yevmenkin Aq m_evmenkin@yahoo.com
 .Sh BUGS

Modified: stable/7/lib/libbluetooth/bluetooth.c
==============================================================================
--- stable/7/lib/libbluetooth/bluetooth.c	Wed Mar 18 21:33:53 2009	(r189988)
+++ stable/7/lib/libbluetooth/bluetooth.c	Wed Mar 18 21:43:16 2009	(r189989)
@@ -1,7 +1,9 @@
 /*
  * bluetooth.c
- *
- * Copyright (c) 2001-2003 Maksim Yevmenkin 
+ */
+
+/*-
+ * Copyright (c) 2001-2009 Maksim Yevmenkin 
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without

Modified: stable/7/lib/libbluetooth/bluetooth.h
==============================================================================
--- stable/7/lib/libbluetooth/bluetooth.h	Wed Mar 18 21:33:53 2009	(r189988)
+++ stable/7/lib/libbluetooth/bluetooth.h	Wed Mar 18 21:43:16 2009	(r189989)
@@ -1,7 +1,9 @@
 /*
  * bluetooth.h
- *
- * Copyright (c) 2001-2003 Maksim Yevmenkin 
+ */
+
+/*-
+ * Copyright (c) 2001-2009 Maksim Yevmenkin 
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -35,9 +37,12 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
+#include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -72,6 +77,63 @@ void              bt_endprotoent      (v
 char const *      bt_ntoa             (bdaddr_t const *ba, char *str);
 int               bt_aton             (char const *str, bdaddr_t *ba);
 
+/* bt_devXXXX() functions (inspired by NetBSD) */
+int               bt_devaddr          (char const *devname, bdaddr_t *addr);
+int               bt_devname          (char *devname, bdaddr_t const *addr);
+
+/* 
+ * Bluetooth HCI functions
+ */
+
+#define	HCI_DEVMAX			32		/* arbitrary */
+#define	HCI_DEVNAME_SIZE		NG_NODESIZ
+#define	HCI_DEVFEATURES_SIZE		NG_HCI_FEATURES_SIZE
+
+struct bt_devinfo
+{
+	char		devname[HCI_DEVNAME_SIZE];
+
+	uint32_t	state;		/* device/implementation specific */
+
+	bdaddr_t	bdaddr;
+	uint16_t	_reserved0;
+
+	uint8_t		features[HCI_DEVFEATURES_SIZE];
+
+	/* buffer info */
+	uint16_t	_reserved1;
+	uint16_t	cmd_free;
+	uint16_t	sco_size;
+	uint16_t	sco_pkts;
+	uint16_t	sco_free;
+	uint16_t	acl_size;
+	uint16_t	acl_pkts;
+	uint16_t	acl_free;
+
+	/* stats */
+	uint32_t	cmd_sent;
+	uint32_t	evnt_recv;
+	uint32_t	acl_recv;
+	uint32_t	acl_sent;
+	uint32_t	sco_recv;
+	uint32_t	sco_sent;
+	uint32_t	bytes_recv;
+	uint32_t	bytes_sent;
+
+	/* misc/specific */
+	uint16_t	link_policy_info;
+	uint16_t	packet_type_info;
+	uint16_t	role_switch_info;
+	uint16_t	debug;
+
+	uint8_t		_padding[20];	/* leave space for future additions */
+};
+
+typedef int	(bt_devenum_cb_t)(int, struct bt_devinfo const *, void *);
+
+int		bt_devinfo (struct bt_devinfo *di);
+int		bt_devenum (bt_devenum_cb_t *cb, void *arg);
+
 /*
  * bdaddr utility functions (from NetBSD)
  */

Copied: stable/7/lib/libbluetooth/dev.c (from r189462, head/lib/libbluetooth/dev.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/7/lib/libbluetooth/dev.c	Wed Mar 18 21:43:16 2009	(r189989, copy of r189462, head/lib/libbluetooth/dev.c)
@@ -0,0 +1,95 @@
+/*
+ * dev.c
+ */
+
+/*-
+ * Copyright (c) 2009 Maksim Yevmenkin 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (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$
+ */
+
+#include 
+#include 
+#include 
+
+struct bt_devaddr_match_arg
+{
+	char		devname[HCI_DEVNAME_SIZE];
+	bdaddr_t const	*bdaddr;
+};
+
+static bt_devenum_cb_t	bt_devaddr_match;
+
+int
+bt_devaddr(char const *devname, bdaddr_t *addr)
+{
+	struct bt_devinfo	di;
+
+	strlcpy(di.devname, devname, sizeof(di.devname));
+
+	if (bt_devinfo(&di) < 0)
+		return (0);
+
+	if (addr != NULL)
+		bdaddr_copy(addr, &di.bdaddr);
+
+	return (1);
+}
+
+int
+bt_devname(char *devname, bdaddr_t const *addr)
+{
+	struct bt_devaddr_match_arg	arg;
+
+	memset(&arg, 0, sizeof(arg));
+	arg.bdaddr = addr;
+
+	if (bt_devenum(&bt_devaddr_match, &arg) < 0)
+		return (0);
+	
+	if (arg.devname[0] == '\0') {
+		errno = ENXIO;
+		return (0);
+	}
+
+	if (devname != NULL)
+		strlcpy(devname, arg.devname, HCI_DEVNAME_SIZE);
+
+	return (1);
+}
+
+static int
+bt_devaddr_match(int s, struct bt_devinfo const *di, void *arg)
+{
+	struct bt_devaddr_match_arg	*m = (struct bt_devaddr_match_arg *)arg;
+
+	if (!bdaddr_same(&di->bdaddr, m->bdaddr))
+		return (0);
+
+	strlcpy(m->devname, di->devname, sizeof(m->devname));
+
+	return (1);
+}
+

Copied: stable/7/lib/libbluetooth/hci.c (from r189462, head/lib/libbluetooth/hci.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/7/lib/libbluetooth/hci.c	Wed Mar 18 21:43:16 2009	(r189989, copy of r189462, head/lib/libbluetooth/hci.c)
@@ -0,0 +1,246 @@
+/*
+ * hci.c
+ */
+
+/*-
+ * Copyright (c) 2009 Maksim Yevmenkin 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (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$
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+
+static char * bt_dev2node (char const *devname, char *nodename, int nnlen);
+
+int
+bt_devinfo(struct bt_devinfo *di)
+{
+	union {
+		struct ng_btsocket_hci_raw_node_state		r0;
+		struct ng_btsocket_hci_raw_node_bdaddr		r1;
+		struct ng_btsocket_hci_raw_node_features	r2;
+		struct ng_btsocket_hci_raw_node_buffer		r3;
+		struct ng_btsocket_hci_raw_node_stat		r4;
+		struct ng_btsocket_hci_raw_node_link_policy_mask r5;
+		struct ng_btsocket_hci_raw_node_packet_mask	r6;
+		struct ng_btsocket_hci_raw_node_role_switch	r7;
+		struct ng_btsocket_hci_raw_node_debug		r8;
+	}						rp;
+	struct sockaddr_hci				ha;
+	int						s, rval;
+
+	if (di == NULL) {
+		errno = EINVAL;
+		return (-1);
+	}
+
+	memset(&ha, 0, sizeof(ha));
+	ha.hci_len = sizeof(ha);
+	ha.hci_family = AF_BLUETOOTH;
+
+	if (bt_aton(di->devname, &rp.r1.bdaddr)) {
+		if (!bt_devname(ha.hci_node, &rp.r1.bdaddr))
+			return (-1);
+	} else if (bt_dev2node(di->devname, ha.hci_node,
+					sizeof(ha.hci_node)) == NULL) {
+		errno = ENXIO;
+		return (-1);
+	}
+
+	s = socket(PF_BLUETOOTH, SOCK_RAW, BLUETOOTH_PROTO_HCI);
+	if (s < 0)
+		return (-1);
+
+	rval = -1;
+
+	if (bind(s, (struct sockaddr *) &ha, sizeof(ha)) < 0 ||
+	    connect(s, (struct sockaddr *) &ha, sizeof(ha)) < 0)
+		goto bad;
+	strlcpy(di->devname, ha.hci_node, sizeof(di->devname));
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_STATE, &rp.r0, sizeof(rp.r0)) < 0)
+		goto bad;
+	di->state = rp.r0.state;
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_BDADDR, &rp.r1, sizeof(rp.r1)) < 0)
+		goto bad;
+	bdaddr_copy(&di->bdaddr, &rp.r1.bdaddr);
+	
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_FEATURES, &rp.r2, sizeof(rp.r2)) < 0)
+		goto bad;
+	memcpy(di->features, rp.r2.features, sizeof(di->features));
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_BUFFER, &rp.r3, sizeof(rp.r3)) < 0)
+		goto bad;
+	di->cmd_free = rp.r3.buffer.cmd_free;
+	di->sco_size = rp.r3.buffer.sco_size;
+	di->sco_pkts = rp.r3.buffer.sco_pkts;
+	di->sco_free = rp.r3.buffer.sco_free;
+	di->acl_size = rp.r3.buffer.acl_size;
+	di->acl_pkts = rp.r3.buffer.acl_pkts;
+	di->acl_free = rp.r3.buffer.acl_free;
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_STAT, &rp.r4, sizeof(rp.r4)) < 0)
+		goto bad;
+	di->cmd_sent = rp.r4.stat.cmd_sent;
+	di->evnt_recv = rp.r4.stat.evnt_recv;
+	di->acl_recv = rp.r4.stat.acl_recv;
+	di->acl_sent = rp.r4.stat.acl_sent;
+	di->sco_recv = rp.r4.stat.sco_recv;
+	di->sco_sent = rp.r4.stat.sco_sent;
+	di->bytes_recv = rp.r4.stat.bytes_recv;
+	di->bytes_sent = rp.r4.stat.bytes_sent;
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_LINK_POLICY_MASK,
+			&rp.r5, sizeof(rp.r5)) < 0)
+		goto bad;
+	di->link_policy_info = rp.r5.policy_mask;
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_PACKET_MASK,
+			&rp.r6, sizeof(rp.r6)) < 0)
+		goto bad;
+	di->packet_type_info = rp.r6.packet_mask;
+
+	 if (ioctl(s, SIOC_HCI_RAW_NODE_GET_ROLE_SWITCH,
+			&rp.r7, sizeof(rp.r7)) < 0)
+		goto bad;
+	di->role_switch_info = rp.r7.role_switch;
+
+	if (ioctl(s, SIOC_HCI_RAW_NODE_GET_DEBUG, &rp.r8, sizeof(rp.r8)) < 0)
+		goto bad;
+	di->debug = rp.r8.debug;
+
+	rval = 0;
+bad:
+	close(s);
+
+	return (rval);
+}
+
+int
+bt_devenum(bt_devenum_cb_t cb, void *arg)
+{
+	struct ng_btsocket_hci_raw_node_list_names	rp;
+	struct bt_devinfo				di;
+	struct sockaddr_hci				ha;
+	int						s, i, count;
+
+	rp.num_names = HCI_DEVMAX;
+	rp.names = (struct nodeinfo *) calloc(rp.num_names,
+						sizeof(struct nodeinfo));
+	if (rp.names == NULL) {
+		errno = ENOMEM;
+		return (-1);
+	}
+
+	memset(&ha, 0, sizeof(ha));
+	ha.hci_len = sizeof(ha);
+	ha.hci_family = AF_BLUETOOTH;
+	ha.hci_node[0] = 'x';
+
+	s = socket(PF_BLUETOOTH, SOCK_RAW, BLUETOOTH_PROTO_HCI);
+	if (s < 0) {
+		free(rp.names);
+
+		return (-1);
+	}
+
+	if (bind(s, (struct sockaddr *) &ha, sizeof(ha)) < 0 ||
+	    connect(s, (struct sockaddr *) &ha, sizeof(ha)) < 0 ||
+	    ioctl(s, SIOC_HCI_RAW_NODE_LIST_NAMES, &rp, sizeof(rp)) < 0) {
+		close(s);
+		free(rp.names);
+
+		return (-1);
+	}
+
+	for (count = 0, i = 0; i < rp.num_names; i ++) {
+		strlcpy(di.devname, rp.names[i].name, sizeof(di.devname));
+		if (bt_devinfo(&di) < 0)
+			continue;
+
+		count ++;
+
+		if (cb == NULL)
+			continue;
+
+		strlcpy(ha.hci_node, rp.names[i].name, sizeof(ha.hci_node));
+		if (bind(s, (struct sockaddr *) &ha, sizeof(ha)) < 0 ||
+		    connect(s, (struct sockaddr *) &ha, sizeof(ha)) < 0)
+			continue;
+
+		if ((*cb)(s, &di, arg) > 0)
+			break;
+	}
+
+	close (s);
+	free(rp.names);
+
+	return (count);
+}
+
+static char *
+bt_dev2node(char const *devname, char *nodename, int nnlen)
+{
+	static char const *	 bt_dev_prefix[] = {
+		"btccc",	/* 3Com Bluetooth PC-CARD */
+		"h4",		/* UART/serial Bluetooth devices */
+		"ubt",		/* Bluetooth USB devices */
+		NULL		/* should be last */
+	};
+
+	static char		_nodename[HCI_DEVNAME_SIZE];
+	char const		**p;
+	char			*ep;
+	int			plen, unit;
+
+	if (nodename == NULL) {
+		nodename = _nodename;
+		nnlen = HCI_DEVNAME_SIZE;
+	}
+
+	for (p = bt_dev_prefix; *p != NULL; p ++) {
+		plen = strlen(*p);
+		if (strncmp(devname, *p, plen) != 0)
+			continue;
+
+		unit = strtoul(devname + plen, &ep, 10);
+		if (*ep != '\0' &&
+		    strcmp(ep, "hci") != 0 &&
+		    strcmp(ep, "l2cap") != 0)
+			return (NULL);	/* can't make sense of device name */
+
+		snprintf(nodename, nnlen, "%s%uhci", *p, unit);
+
+		return (nodename);
+	}
+
+	return (NULL);
+}
+

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:46:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EC38F1065670;
	Wed, 18 Mar 2009 21:46:55 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D8AD48FC1A;
	Wed, 18 Mar 2009 21:46:55 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILkt9d038569;
	Wed, 18 Mar 2009 21:46:55 GMT (envelope-from imp@svn.freebsd.org)
Received: (from imp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILktXB038567;
	Wed, 18 Mar 2009 21:46:55 GMT (envelope-from imp@svn.freebsd.org)
Message-Id: <200903182146.n2ILktXB038567@svn.freebsd.org>
From: Warner Losh 
Date: Wed, 18 Mar 2009 21:46:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189990 - in stable/7/sys: . conf contrib/pf
	dev/ath/ath_hal dev/cxgb dev/sis modules/sis pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:46:57 -0000

Author: imp
Date: Wed Mar 18 21:46:55 2009
New Revision: 189990
URL: http://svn.freebsd.org/changeset/base/189990

Log:
  MFC 181524:
   Move sis to sys/dev/sis for consistency.

Added:
  stable/7/sys/dev/sis/
     - copied from r181524, head/sys/dev/sis/
Deleted:
  stable/7/sys/pci/if_sis.c
  stable/7/sys/pci/if_sisreg.h
Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/conf/files
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/modules/sis/Makefile

Modified: stable/7/sys/conf/files
==============================================================================
--- stable/7/sys/conf/files	Wed Mar 18 21:43:16 2009	(r189989)
+++ stable/7/sys/conf/files	Wed Mar 18 21:46:55 2009	(r189990)
@@ -1107,6 +1107,7 @@ dev/si/si3_t225.c		optional si
 dev/si/si_eisa.c		optional si eisa
 dev/si/si_isa.c			optional si isa
 dev/si/si_pci.c			optional si pci
+dev/sis/if_sis.c		optional sis pci
 dev/sk/if_sk.c			optional sk pci
 dev/smbus/smb.c			optional smb
 dev/smbus/smbconf.c		optional smbus
@@ -2112,7 +2113,6 @@ pci/amdsmb.c			optional amdsmb pci
 pci/if_mn.c			optional mn pci
 pci/if_pcn.c			optional pcn pci
 pci/if_rl.c			optional rl pci
-pci/if_sis.c			optional sis pci
 pci/if_ste.c			optional ste pci
 pci/if_tl.c			optional tl pci
 pci/if_wb.c			optional wb pci

Modified: stable/7/sys/modules/sis/Makefile
==============================================================================
--- stable/7/sys/modules/sis/Makefile	Wed Mar 18 21:43:16 2009	(r189989)
+++ stable/7/sys/modules/sis/Makefile	Wed Mar 18 21:46:55 2009	(r189990)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-.PATH: ${.CURDIR}/../../pci
+.PATH: ${.CURDIR}/../../dev/sis
 
 KMOD=	if_sis
 SRCS=	if_sis.c device_if.h bus_if.h pci_if.h

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:51:03 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6D6F3106567C;
	Wed, 18 Mar 2009 21:51:03 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5811E8FC13;
	Wed, 18 Mar 2009 21:51:03 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILp3nx038719;
	Wed, 18 Mar 2009 21:51:03 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILp2IH038712;
	Wed, 18 Mar 2009 21:51:02 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903182151.n2ILp2IH038712@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 21:51:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189991 - in stable/7/sys: . compat/linux compat/svr4
	contrib/pf dev/ath/ath_hal dev/cxgb fs/coda i386/ibcs2 kern
	nfsserver
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:51:05 -0000

Author: jhb
Date: Wed Mar 18 21:51:02 2009
New Revision: 189991
URL: http://svn.freebsd.org/changeset/base/189991

Log:
  MFC: Use shared vnode locks when invoking VOP_READDIR().

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/compat/linux/linux_file.c
  stable/7/sys/compat/linux/linux_getcwd.c
  stable/7/sys/compat/svr4/svr4_misc.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/coda/coda_vnops.c
  stable/7/sys/i386/ibcs2/ibcs2_misc.c
  stable/7/sys/kern/vfs_syscalls.c
  stable/7/sys/nfsserver/nfs_serv.c

Modified: stable/7/sys/compat/linux/linux_file.c
==============================================================================
--- stable/7/sys/compat/linux/linux_file.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/compat/linux/linux_file.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -465,7 +465,7 @@ getdents_common(struct thread *td, struc
 	buflen = min(buflen, MAXBSIZE);
 	buf = malloc(buflen, M_TEMP, M_WAITOK);
 	lbuf = malloc(LINUX_MAXRECLEN, M_TEMP, M_WAITOK | M_ZERO);
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 
 again:
 	aiov.iov_base = buf;

Modified: stable/7/sys/compat/linux/linux_getcwd.c
==============================================================================
--- stable/7/sys/compat/linux/linux_getcwd.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/compat/linux/linux_getcwd.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -163,7 +163,7 @@ linux_getcwd_scandir(lvpp, uvpp, bpp, bu
 	cn.cn_nameptr = "..";
 	cn.cn_namelen = 2;
 	cn.cn_consume = 0;
-	cn.cn_lkflags = LK_EXCLUSIVE;
+	cn.cn_lkflags = LK_SHARED;
 	
 	/*
 	 * At this point, lvp is locked and will be unlocked by the lookup.

Modified: stable/7/sys/compat/svr4/svr4_misc.c
==============================================================================
--- stable/7/sys/compat/svr4/svr4_misc.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/compat/svr4/svr4_misc.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -278,7 +278,7 @@ svr4_sys_getdents64(td, uap)
 	buflen = max(DIRBLKSIZ, nbytes);
 	buflen = min(buflen, MAXBSIZE);
 	buf = malloc(buflen, M_TEMP, M_WAITOK);
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 again:
 	aiov.iov_base = buf;
 	aiov.iov_len = buflen;
@@ -447,7 +447,7 @@ svr4_sys_getdents(td, uap)
 
 	buflen = min(MAXBSIZE, uap->nbytes);
 	buf = malloc(buflen, M_TEMP, M_WAITOK);
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 	off = fp->f_offset;
 again:
 	aiov.iov_base = buf;

Modified: stable/7/sys/fs/coda/coda_vnops.c
==============================================================================
--- stable/7/sys/fs/coda/coda_vnops.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/fs/coda/coda_vnops.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -1510,7 +1510,7 @@ coda_readdir(struct vop_readdir_args *ap
 	 */
 	CODADEBUG(CODA_READDIR, myprintf(("indirect readdir: fid = %s, "
 	    "refcnt = %d\n", coda_f2s(&cp->c_fid), vp->v_usecount)););
-	vn_lock(cp->c_ovp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(cp->c_ovp, LK_SHARED | LK_RETRY, td);
 	error = VOP_READDIR(cp->c_ovp, uiop, cred, eofflag, ncookies,
 	    cookies);
 	VOP_UNLOCK(cp->c_ovp, 0, td);

Modified: stable/7/sys/i386/ibcs2/ibcs2_misc.c
==============================================================================
--- stable/7/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/i386/ibcs2/ibcs2_misc.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -356,7 +356,7 @@ ibcs2_getdents(td, uap)
 	buflen = max(DIRBLKSIZ, uap->nbytes);
 	buflen = min(buflen, MAXBSIZE);
 	buf = malloc(buflen, M_TEMP, M_WAITOK);
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 again:
 	aiov.iov_base = buf;
 	aiov.iov_len = buflen;
@@ -518,7 +518,7 @@ ibcs2_read(td, uap)
 	buflen = max(DIRBLKSIZ, uap->nbytes);
 	buflen = min(buflen, MAXBSIZE);
 	buf = malloc(buflen, M_TEMP, M_WAITOK);
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 again:
 	aiov.iov_base = buf;
 	aiov.iov_len = buflen;

Modified: stable/7/sys/kern/vfs_syscalls.c
==============================================================================
--- stable/7/sys/kern/vfs_syscalls.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/kern/vfs_syscalls.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -3665,7 +3665,7 @@ unionread:
 	auio.uio_segflg = UIO_USERSPACE;
 	auio.uio_td = td;
 	auio.uio_resid = uap->count;
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 	loff = auio.uio_offset = fp->f_offset;
 #ifdef MAC
 	error = mac_check_vnode_readdir(td->td_ucred, vp);
@@ -3824,8 +3824,7 @@ unionread:
 	auio.uio_segflg = UIO_USERSPACE;
 	auio.uio_td = td;
 	auio.uio_resid = count;
-	/* vn_lock(vp, LK_SHARED | LK_RETRY, td); */
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 	AUDIT_ARG(vnode, vp, ARG_VNODE1);
 	loff = auio.uio_offset = fp->f_offset;
 #ifdef MAC

Modified: stable/7/sys/nfsserver/nfs_serv.c
==============================================================================
--- stable/7/sys/nfsserver/nfs_serv.c	Wed Mar 18 21:46:55 2009	(r189990)
+++ stable/7/sys/nfsserver/nfs_serv.c	Wed Mar 18 21:51:02 2009	(r189991)
@@ -3236,7 +3236,7 @@ again:
 	io.uio_rw = UIO_READ;
 	io.uio_td = NULL;
 	eofflag = 0;
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 	if (cookies) {
 		free((caddr_t)cookies, M_TEMP);
 		cookies = NULL;
@@ -3518,7 +3518,7 @@ again:
 	io.uio_rw = UIO_READ;
 	io.uio_td = NULL;
 	eofflag = 0;
-	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
+	vn_lock(vp, LK_SHARED | LK_RETRY, td);
 	if (cookies) {
 		free((caddr_t)cookies, M_TEMP);
 		cookies = NULL;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:51:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 77B79106579B;
	Wed, 18 Mar 2009 21:51:12 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 45CBE8FC15;
	Wed, 18 Mar 2009 21:51:12 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILpCU7038757;
	Wed, 18 Mar 2009 21:51:12 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILpCrM038756;
	Wed, 18 Mar 2009 21:51:12 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200903182151.n2ILpCrM038756@svn.freebsd.org>
From: Doug Barton 
Date: Wed, 18 Mar 2009 21:51:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189992 - head/usr.sbin/mergemaster
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:51:15 -0000

Author: dougb
Date: Wed Mar 18 21:51:11 2009
New Revision: 189992
URL: http://svn.freebsd.org/changeset/base/189992

Log:
  Add a new -F option to automatically install files that differ
  only by version control Id strings

Modified:
  head/usr.sbin/mergemaster/mergemaster.sh

Modified: head/usr.sbin/mergemaster/mergemaster.sh
==============================================================================
--- head/usr.sbin/mergemaster/mergemaster.sh	Wed Mar 18 21:51:02 2009	(r189991)
+++ head/usr.sbin/mergemaster/mergemaster.sh	Wed Mar 18 21:51:11 2009	(r189992)
@@ -15,7 +15,7 @@ PATH=/bin:/usr/bin:/usr/sbin
 display_usage () {
   VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
   echo "mergemaster version ${VERSION_NUMBER}"
-  echo 'Usage: mergemaster [-scrvahipCPU]'
+  echo 'Usage: mergemaster [-scrvahipFCPU]'
   echo '    [-m /path] [-t /path] [-d] [-u N] [-w N] [-A arch] [-D /path]'
   echo "Options:"
   echo "  -s  Strict comparison (diff every pair of files)"
@@ -26,6 +26,7 @@ display_usage () {
   echo "  -h  Display more complete help"
   echo '  -i  Automatically install files that do not exist in destination directory'
   echo '  -p  Pre-buildworld mode, only compares crucial files'
+  echo '  -F  Install files that differ only by revision control Id ($FreeBSD$)'
   echo '  -C  Compare local rc.conf variables to the defaults'
   echo '  -P  Preserve files that are overwritten'
   echo "  -U  Attempt to auto upgrade files that have not been user modified"
@@ -264,11 +265,14 @@ MTREEFILE="${MTREEDB}/mergemaster.mtree"
 
 # Check the command line options
 #
-while getopts ":ascrvhipCPm:t:du:w:D:A:U" COMMAND_LINE_ARGUMENT ; do
+while getopts ":ascrvhipCPm:t:du:w:D:A:FU" COMMAND_LINE_ARGUMENT ; do
   case "${COMMAND_LINE_ARGUMENT}" in
   A)
     ARCHSTRING='TARGET_ARCH='${OPTARG}
     ;;
+  F)
+    FREEBSD_ID=yes
+    ;;
   U)
     AUTO_UPGRADE=yes
     ;;
@@ -1021,6 +1025,19 @@ for COMPFILE in `find . -type f -size +0
       # Use more if not.
       # Use unified diffs by default.  Context diffs give me a headache. :)
       #
+      # If the user chose the -F option, test for that before proceeding
+      #
+      if [ -n "$FREEBSD_ID" ]; then
+        if diff -q -I'[$]FreeBSD:.*$' "${DESTDIR}${COMPFILE#.}" "${COMPFILE}" > \
+            /dev/null 2>&1; then
+          if mm_install "${COMPFILE}"; then
+            echo "*** Updated revision control Id for ${DESTDIR}${COMPFILE#.}"
+          else
+            echo "*** Problem installing ${COMPFILE}, it will remain to merge by hand later"
+          fi
+          continue
+        fi
+      fi
       case "${AUTO_RUN}" in
       '')
         # prompt user to install/delete/merge changes

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:54:29 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 14716106564A;
	Wed, 18 Mar 2009 21:54:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 022578FC1E;
	Wed, 18 Mar 2009 21:54:29 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILsSqB038863;
	Wed, 18 Mar 2009 21:54:28 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILsSn0038862;
	Wed, 18 Mar 2009 21:54:28 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903182154.n2ILsSn0038862@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 21:54:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189993 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/sis kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:54:30 -0000

Author: jhb
Date: Wed Mar 18 21:54:28 2009
New Revision: 189993
URL: http://svn.freebsd.org/changeset/base/189993

Log:
  MFC: Remove a comment and expand scope of sysctl sx lock a bit to fully
  restore limiting of wired memory by userspace for sysctls.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/sis/if_sis.c   (props changed)
  stable/7/sys/dev/sis/if_sisreg.h   (props changed)
  stable/7/sys/kern/kern_sysctl.c

Modified: stable/7/sys/kern/kern_sysctl.c
==============================================================================
--- stable/7/sys/kern/kern_sysctl.c	Wed Mar 18 21:51:11 2009	(r189992)
+++ stable/7/sys/kern/kern_sysctl.c	Wed Mar 18 21:54:28 2009	(r189993)
@@ -1199,14 +1199,6 @@ kernel_sysctlbyname(struct thread *td, c
 	oid[1] = 3;		/* name2oid */
 	oidlen = sizeof(oid);
 
-	/*
-	 * XXX: Prone to a possible race condition between lookup and
-	 * execution? Maybe put locking around it?
-	 *
-	 * Userland is just as racy, so I think the current implementation
-	 * is fine.
-	 */
-
 	error = kernel_sysctl(td, oid, 2, oid, &oidlen,
 	    (void *)name, strlen(name), &plen, flags);
 	if (error)
@@ -1517,10 +1509,10 @@ userland_sysctl(struct thread *td, int *
 		uio_yield();
 	}
 
-	SYSCTL_XUNLOCK();
 
 	if (req.lock == REQ_WIRED && req.validlen > 0)
 		vsunlock(req.oldptr, req.validlen);
+	SYSCTL_XUNLOCK();
 
 	if (error && error != ENOMEM)
 		return (error);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:55:09 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F3E4D1065675;
	Wed, 18 Mar 2009 21:55:08 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E192D8FC28;
	Wed, 18 Mar 2009 21:55:08 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILt8KH038929;
	Wed, 18 Mar 2009 21:55:08 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILt8Ti038928;
	Wed, 18 Mar 2009 21:55:08 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200903182155.n2ILt8Ti038928@svn.freebsd.org>
From: Doug Barton 
Date: Wed, 18 Mar 2009 21:55:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189994 - head/usr.sbin/mergemaster
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:55:10 -0000

Author: dougb
Date: Wed Mar 18 21:55:08 2009
New Revision: 189994
URL: http://svn.freebsd.org/changeset/base/189994

Log:
  1. Update for new -F option from r189992.
  2. Sort the command line options to match how they are displayed
  in usage()
  3. Change references to cvs to the more generic "version control system"
  and remove the .Xr for cvs
  4. Consistently use ".Op Fl" to refer to command line options in the text.
  5. Only use the apostrophe to indicate possession.
  6. Add FREEBSD_ID (-F) to the list of variables in the example rc,
  and change the DIFF_OPTIONS example to -Bb since -F now covers it.

Modified:
  head/usr.sbin/mergemaster/mergemaster.8

Modified: head/usr.sbin/mergemaster/mergemaster.8
==============================================================================
--- head/usr.sbin/mergemaster/mergemaster.8	Wed Mar 18 21:54:28 2009	(r189993)
+++ head/usr.sbin/mergemaster/mergemaster.8	Wed Mar 18 21:55:08 2009	(r189994)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 2, 2009
+.Dd March 18, 2009
 .Dt MERGEMASTER 8
 .Os
 .Sh NAME
@@ -32,14 +32,14 @@
 .Nd merge configuration files, et al during an upgrade
 .Sh SYNOPSIS
 .Nm
-.Op Fl achiprsvCPU
-.Op Fl A Ar Target architecture
-.Op Fl D Ar /destdir/path
+.Op Fl scrvahipFCPU
 .Op Fl m Ar /path/to/sources
 .Op Fl t Ar /path/to/temp/root
 .Op Fl d
 .Op Fl u Ar N
 .Op Fl w Ar N
+.Op Fl A Ar Target architecture
+.Op Fl D Ar /destdir/path
 .Sh DESCRIPTION
 The
 .Nm
@@ -82,15 +82,23 @@ merge by hand later.
 By default it creates the temporary root in
 .Pa /var/tmp/temproot
 and compares the
-.Xr cvs 1
-version $Id/$FreeBSD strings for files that have them, deleting
+Version Control System (VCS) Id strings ($FreeBSD$)
+for files that have them, deleting
 the temporary file if the strings match.
 If there is
-no $Id string, or if the strings are different it
+no Id string, or if the strings are different it
 compares the files themselves.
 You can
-also specify that the script ignore the $Id strings and
-compare every file.
+also specify that the script ignore the Id strings and
+compare every file with the
+.Op Fl s
+option.
+Using the
+.Op Fl F
+option
+.Nm
+will install the new file for you if they differ only by
+VCS strings.
 .Pp
 The merge menu option is designed to let you easily combine your
 customizations from the old version of a file into the new one.
@@ -117,11 +125,13 @@ After
 installing an updated version of this file you should
 probably run
 .Xr pwd_mkdb 8
-with the -p option to rebuild your password databases
+with the
+.Op Fl p
+option to rebuild your password databases
 and recreate
 .Pa /etc/passwd .
 .Pp
-The script uses the owner and group id's
+The script uses the owner and group ids
 that the files are created with by
 .Pa /usr/src/etc/Makefile ,
 and file permissions as specified by the umask.
@@ -158,9 +168,9 @@ and therefore can override both files.
 The options are as follows:
 .Bl -tag -width Fl
 .It Fl s
-Perform a strict comparison, diff'ing every pair of files.
+Perform a strict comparison, diffing every pair of files.
 This comparison is performed line by line,
-without regard to CVS $Id's.
+without regard to VCS Ids.
 .It Fl c
 Use context diffs instead of unified diffs.
 .It Fl r
@@ -189,8 +199,11 @@ directory exists, it creates a new one i
 non-existent directory.
 This option unsets the verbose flag,
 but is compatible with all other options.
-Setting -a makes
--w superfluous.
+Setting
+.Op Fl a
+makes
+.Op Fl w
+superfluous.
 .It Fl h
 Display usage and help information.
 .It Fl i
@@ -202,6 +215,9 @@ Compares only files known to be essentia
 {build|install}world,
 including
 .Pa /etc/make.conf .
+.It Fl F
+If the files differ only by VCS Id ($FreeBSD$)
+install the new file.
 .It Fl C
 After a standard
 .Nm
@@ -213,6 +229,8 @@ Preserve files that you replace in
 or another directory you specify in your
 .Nm
 rc file.
+.It Fl U
+Attempt to auto upgrade files that have not been user modified.
 .It Fl m Ar /path/to/sources
 Specify the path to the directory where you want to do the
 .Xr make 1 .
@@ -234,7 +252,9 @@ instead of the default
 .It Fl d
 Add the date and time to the name of the temporary
 root directory.
-If -t is specified, this option must
+If
+.Op Fl t
+is specified, this option must
 follow it if you want the date added too.
 .It Fl u Ar N
 Specify a numeric umask.
@@ -250,8 +270,6 @@ Specify an alternative
 architecture name.
 .It Fl D Ar /path
 Specify the destination directory for the installed files.
-.It Fl U
-Attempt to auto upgrade files that have not been user modified.
 .El
 .Sh ENVIRONMENT
 The
@@ -314,12 +332,15 @@ with all values commented out:
 # Specify the destination directory for the installed files
 #DESTDIR=
 #
-# Strict comparison bypasses the CVS $Id tests and compares every file
+# Strict comparison skips the VCS Id test and compares every file
 #STRICT=no
 #
 # Type of diff, such as unified, context, etc.
 #DIFF_FLAG='-u'
 #
+# Install the new file if it differs only by VCS Id ($FreeBSD$)
+#FREEBSD_ID=
+#
 # Verbose mode includes more details and additional checks
 #VERBOSE=
 #
@@ -345,7 +366,7 @@ with all values commented out:
 #IGNORE_FILES='/etc/motd /etc/printcap foo bar'
 #
 # Additional options for diff.  This will get unset when using -s.
-#DIFF_OPTIONS='-I$\&FreeBSD:.*[$]'	# Ignores CVS Id tags
+#DIFF_OPTIONS='-Bb'	# Ignore changes in whitespace
 #
 # Location to store the list of mtree values for AUTO_UPGRADE purposes
 #MTREEDB='/var/db'
@@ -382,7 +403,7 @@ Typically all you will need to do is typ
 .Nm
 at the prompt and the script will do all the work for you.
 .Pp
-To use context diff's and have
+To use context diffs and have
 .Nm
 explain more things as it goes along, use:
 .Pp
@@ -401,7 +422,6 @@ comparison, use:
 .Pp
 .Dl # mergemaster -sw 110
 .Sh SEE ALSO
-.Xr cvs 1 ,
 .Xr diff 1 ,
 .Xr make 1 ,
 .Xr more 1 ,

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 21:57:35 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B6B2D10656BC;
	Wed, 18 Mar 2009 21:57:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 894738FC1E;
	Wed, 18 Mar 2009 21:57:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2ILvZC6039018;
	Wed, 18 Mar 2009 21:57:35 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2ILvZgG039017;
	Wed, 18 Mar 2009 21:57:35 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903182157.n2ILvZgG039017@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 18 Mar 2009 21:57:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189995 - stable/7/sys/dev/sis
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 21:57:39 -0000

Author: jhb
Date: Wed Mar 18 21:57:35 2009
New Revision: 189995
URL: http://svn.freebsd.org/changeset/base/189995

Log:
  Remove the empty mergeinfo from these files.

Modified:
  stable/7/sys/dev/sis/if_sis.c   (props changed)
  stable/7/sys/dev/sis/if_sisreg.h   (props changed)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 22:12:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0C9371065675;
	Wed, 18 Mar 2009 22:12:55 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ECD108FC1C;
	Wed, 18 Mar 2009 22:12:54 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IMCsju039366;
	Wed, 18 Mar 2009 22:12:54 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IMCsAP039363;
	Wed, 18 Mar 2009 22:12:54 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182212.n2IMCsAP039363@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 22:12:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189996 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb net netinet netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 22:12:56 -0000

Author: marius
Date: Wed Mar 18 22:12:54 2009
New Revision: 189996
URL: http://svn.freebsd.org/changeset/base/189996

Log:
  MFC: r189494
  
  On architectures with strict alignment requirements compensate
  the misalignment of the IP header that prepending the EtherIP
  header might have caused.
  
  PR:		131921

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/net/if_gif.h
  stable/7/sys/netinet/in_gif.c
  stable/7/sys/netinet6/in6_gif.c

Modified: stable/7/sys/net/if_gif.h
==============================================================================
--- stable/7/sys/net/if_gif.h	Wed Mar 18 21:57:35 2009	(r189995)
+++ stable/7/sys/net/if_gif.h	Wed Mar 18 22:12:54 2009	(r189996)
@@ -100,6 +100,8 @@ struct etherip_header {
 #define ETHERIP_VER_VERS_MASK   0x0f
 #define ETHERIP_VER_RSVD_MASK   0xf0
 #define ETHERIP_VERSION         0x03
+/* mbuf adjust factor to force 32-bit alignment of IP header */
+#define	ETHERIP_ALIGN		2
 
 /* Prototypes */
 void gif_input(struct mbuf *, int, struct ifnet *);

Modified: stable/7/sys/netinet/in_gif.c
==============================================================================
--- stable/7/sys/netinet/in_gif.c	Wed Mar 18 21:57:35 2009	(r189995)
+++ stable/7/sys/netinet/in_gif.c	Wed Mar 18 22:12:54 2009	(r189996)
@@ -98,7 +98,7 @@ in_gif_output(struct ifnet *ifp, int fam
 	struct sockaddr_in *sin_dst = (struct sockaddr_in *)sc->gif_pdst;
 	struct ip iphdr;	/* capsule IP header, host byte ordered */
 	struct etherip_header eiphdr;
-	int proto, error;
+	int error, len, proto;
 	u_int8_t tos;
 
 	GIF_LOCK_ASSERT(sc);
@@ -182,13 +182,27 @@ in_gif_output(struct ifnet *ifp, int fam
 		       &iphdr.ip_tos, &tos);
 
 	/* prepend new IP header */
-	M_PREPEND(m, sizeof(struct ip), M_DONTWAIT);
-	if (m && m->m_len < sizeof(struct ip))
-		m = m_pullup(m, sizeof(struct ip));
+	len = sizeof(struct ip);
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK)
+		len += ETHERIP_ALIGN;
+#endif
+	M_PREPEND(m, len, M_DONTWAIT);
+	if (m != NULL && m->m_len < len)
+		m = m_pullup(m, len);
 	if (m == NULL) {
 		printf("ENOBUFS in in_gif_output %d\n", __LINE__);
 		return ENOBUFS;
 	}
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK) {
+		len = mtod(m, vm_offset_t) & 3;
+		KASSERT(len == 0 || len == ETHERIP_ALIGN,
+		    ("in_gif_output: unexpected misalignment"));
+		m->m_data += len;
+		m->m_len -= ETHERIP_ALIGN;
+	}
+#endif
 	bcopy(&iphdr, mtod(m, struct ip *), sizeof(struct ip));
 
 	M_SETFIB(m, sc->gif_fibnum);

Modified: stable/7/sys/netinet6/in6_gif.c
==============================================================================
--- stable/7/sys/netinet6/in6_gif.c	Wed Mar 18 21:57:35 2009	(r189995)
+++ stable/7/sys/netinet6/in6_gif.c	Wed Mar 18 22:12:54 2009	(r189996)
@@ -96,7 +96,7 @@ in6_gif_output(struct ifnet *ifp,
 	struct sockaddr_in6 *sin6_dst = (struct sockaddr_in6 *)sc->gif_pdst;
 	struct ip6_hdr *ip6;
 	struct etherip_header eiphdr;
-	int proto, error;
+	int error, len, proto;
 	u_int8_t itos, otos;
 
 	GIF_LOCK_ASSERT(sc);
@@ -164,13 +164,27 @@ in6_gif_output(struct ifnet *ifp,
 	}
 
 	/* prepend new IP header */
-	M_PREPEND(m, sizeof(struct ip6_hdr), M_DONTWAIT);
-	if (m && m->m_len < sizeof(struct ip6_hdr))
-		m = m_pullup(m, sizeof(struct ip6_hdr));
+	len = sizeof(struct ip6_hdr);
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK)
+		len += ETHERIP_ALIGN;
+#endif
+	M_PREPEND(m, len, M_DONTWAIT);
+	if (m != NULL && m->m_len < len)
+		m = m_pullup(m, len);
 	if (m == NULL) {
 		printf("ENOBUFS in in6_gif_output %d\n", __LINE__);
 		return ENOBUFS;
 	}
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK) {
+		len = mtod(m, vm_offset_t) & 3;
+		KASSERT(len == 0 || len == ETHERIP_ALIGN,
+		    ("in6_gif_output: unexpected misalignment"));
+		m->m_data += len;
+		m->m_len -= ETHERIP_ALIGN;
+	}
+#endif
 
 	ip6 = mtod(m, struct ip6_hdr *);
 	ip6->ip6_flow	= 0;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 22:13:30 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 10CFC106567C;
	Wed, 18 Mar 2009 22:13:30 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ED1D98FC18;
	Wed, 18 Mar 2009 22:13:29 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IMDT6D039416;
	Wed, 18 Mar 2009 22:13:29 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IMDTOo039413;
	Wed, 18 Mar 2009 22:13:29 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182213.n2IMDTOo039413@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 22:13:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189997 - in stable/6/sys: . contrib/pf dev/cxgb net
	netinet netinet6
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 22:13:32 -0000

Author: marius
Date: Wed Mar 18 22:13:29 2009
New Revision: 189997
URL: http://svn.freebsd.org/changeset/base/189997

Log:
  MFC: r189494
  
  On architectures with strict alignment requirements compensate
  the misalignment of the IP header that prepending the EtherIP
  header might have caused.
  
  PR:		131921

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)
  stable/6/sys/net/if_gif.h
  stable/6/sys/netinet/in_gif.c
  stable/6/sys/netinet6/in6_gif.c

Modified: stable/6/sys/net/if_gif.h
==============================================================================
--- stable/6/sys/net/if_gif.h	Wed Mar 18 22:12:54 2009	(r189996)
+++ stable/6/sys/net/if_gif.h	Wed Mar 18 22:13:29 2009	(r189997)
@@ -99,6 +99,8 @@ struct etherip_header {
 #define ETHERIP_VER_VERS_MASK   0x0f
 #define ETHERIP_VER_RSVD_MASK   0xf0
 #define ETHERIP_VERSION         0x03
+/* mbuf adjust factor to force 32-bit alignment of IP header */
+#define	ETHERIP_ALIGN		2
 
 /* Prototypes */
 void gif_input(struct mbuf *, int, struct ifnet *);

Modified: stable/6/sys/netinet/in_gif.c
==============================================================================
--- stable/6/sys/netinet/in_gif.c	Wed Mar 18 22:12:54 2009	(r189996)
+++ stable/6/sys/netinet/in_gif.c	Wed Mar 18 22:13:29 2009	(r189997)
@@ -101,7 +101,7 @@ in_gif_output(ifp, family, m)
 	struct sockaddr_in *sin_dst = (struct sockaddr_in *)sc->gif_pdst;
 	struct ip iphdr;	/* capsule IP header, host byte ordered */
 	struct etherip_header eiphdr;
-	int proto, error;
+	int error, len, proto;
 	u_int8_t tos;
 
 	GIF_LOCK_ASSERT(sc);
@@ -185,13 +185,27 @@ in_gif_output(ifp, family, m)
 		       &iphdr.ip_tos, &tos);
 
 	/* prepend new IP header */
-	M_PREPEND(m, sizeof(struct ip), M_DONTWAIT);
-	if (m && m->m_len < sizeof(struct ip))
-		m = m_pullup(m, sizeof(struct ip));
+	len = sizeof(struct ip);
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK)
+		len += ETHERIP_ALIGN;
+#endif
+	M_PREPEND(m, len, M_DONTWAIT);
+	if (m != NULL && m->m_len < len)
+		m = m_pullup(m, len);
 	if (m == NULL) {
 		printf("ENOBUFS in in_gif_output %d\n", __LINE__);
 		return ENOBUFS;
 	}
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK) {
+		len = mtod(m, vm_offset_t) & 3;
+		KASSERT(len == 0 || len == ETHERIP_ALIGN,
+		    ("in_gif_output: unexpected misalignment"));
+		m->m_data += len;
+		m->m_len -= ETHERIP_ALIGN;
+	}
+#endif
 	bcopy(&iphdr, mtod(m, struct ip *), sizeof(struct ip));
 
 	if (dst->sin_family != sin_dst->sin_family ||

Modified: stable/6/sys/netinet6/in6_gif.c
==============================================================================
--- stable/6/sys/netinet6/in6_gif.c	Wed Mar 18 22:12:54 2009	(r189996)
+++ stable/6/sys/netinet6/in6_gif.c	Wed Mar 18 22:13:29 2009	(r189997)
@@ -96,7 +96,7 @@ in6_gif_output(ifp, family, m)
 	struct sockaddr_in6 *sin6_dst = (struct sockaddr_in6 *)sc->gif_pdst;
 	struct ip6_hdr *ip6;
 	struct etherip_header eiphdr;
-	int proto, error;
+	int error, len, proto;
 	u_int8_t itos, otos;
 
 	GIF_LOCK_ASSERT(sc);
@@ -164,13 +164,27 @@ in6_gif_output(ifp, family, m)
 	}
 
 	/* prepend new IP header */
-	M_PREPEND(m, sizeof(struct ip6_hdr), M_DONTWAIT);
-	if (m && m->m_len < sizeof(struct ip6_hdr))
-		m = m_pullup(m, sizeof(struct ip6_hdr));
+	len = sizeof(struct ip6_hdr);
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK)
+		len += ETHERIP_ALIGN;
+#endif
+	M_PREPEND(m, len, M_DONTWAIT);
+	if (m != NULL && m->m_len < len)
+		m = m_pullup(m, len);
 	if (m == NULL) {
 		printf("ENOBUFS in in6_gif_output %d\n", __LINE__);
 		return ENOBUFS;
 	}
+#ifndef __NO_STRICT_ALIGNMENT
+	if (family == AF_LINK) {
+		len = mtod(m, vm_offset_t) & 3;
+		KASSERT(len == 0 || len == ETHERIP_ALIGN,
+		    ("in6_gif_output: unexpected misalignment"));
+		m->m_data += len;
+		m->m_len -= ETHERIP_ALIGN;
+	}
+#endif
 
 	ip6 = mtod(m, struct ip6_hdr *);
 	ip6->ip6_flow	= 0;

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 22:57:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9E0C510656D3;
	Wed, 18 Mar 2009 22:57:55 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8A8268FC15;
	Wed, 18 Mar 2009 22:57:55 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2IMvt3A040395;
	Wed, 18 Mar 2009 22:57:55 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2IMvt1h040392;
	Wed, 18 Mar 2009 22:57:55 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182257.n2IMvt1h040392@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 22:57:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189998 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/mpt
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 22:57:56 -0000

Author: marius
Date: Wed Mar 18 22:57:55 2009
New Revision: 189998
URL: http://svn.freebsd.org/changeset/base/189998

Log:
  MFC: r172842 (partial), r178725
  
  Restore multi-release tradition of the driver.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mpt/mpt.h
  stable/7/sys/dev/mpt/mpt_cam.c
  stable/7/sys/dev/mpt/mpt_raid.c

Modified: stable/7/sys/dev/mpt/mpt.h
==============================================================================
--- stable/7/sys/dev/mpt/mpt.h	Wed Mar 18 22:13:29 2009	(r189997)
+++ stable/7/sys/dev/mpt/mpt.h	Wed Mar 18 22:57:55 2009	(r189998)
@@ -270,13 +270,30 @@ void mpt_map_rquest(void *, bus_dma_segm
 #define	mpt_setup_intr	bus_setup_intr
 #endif
 
+/* **************************** NewBUS CAM Support ****************************/
+#if __FreeBSD_version < 700049
+#define mpt_xpt_bus_register(sim, parent, bus)	\
+	xpt_bus_register(sim, bus)
+#else
+#define mpt_xpt_bus_register	xpt_bus_register
+#endif
+
 /**************************** Kernel Thread Support ***************************/
-#if __FreeBSD_version > 500005
+#if __FreeBSD_version > 800001
+#define mpt_kthread_create(func, farg, proc_ptr, flags, stackpgs, fmtstr, arg) \
+	kproc_create(func, farg, proc_ptr, flags, stackpgs, fmtstr, arg)
+#define	mpt_kthread_exit(status)	\
+	kproc_exit(status)
+#elif __FreeBSD_version > 500005
 #define mpt_kthread_create(func, farg, proc_ptr, flags, stackpgs, fmtstr, arg) \
 	kthread_create(func, farg, proc_ptr, flags, stackpgs, fmtstr, arg)
+#define	mpt_kthread_exit(status)	\
+	kthread_exit(status)
 #else
 #define mpt_kthread_create(func, farg, proc_ptr, flags, stackpgs, fmtstr, arg) \
 	kthread_create(func, farg, proc_ptr, fmtstr, arg)
+#define	mpt_kthread_exit(status)	\
+	kthread_exit(status)
 #endif
 
 /****************************** Timer Facilities ******************************/

Modified: stable/7/sys/dev/mpt/mpt_cam.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt_cam.c	Wed Mar 18 22:13:29 2009	(r189997)
+++ stable/7/sys/dev/mpt/mpt_cam.c	Wed Mar 18 22:57:55 2009	(r189998)
@@ -346,7 +346,7 @@ mpt_cam_attach(struct mpt_softc *mpt)
 	 * Register exactly this bus.
 	 */
 	MPT_LOCK(mpt);
-	if (xpt_bus_register(mpt->sim, mpt->dev, 0) != CAM_SUCCESS) {
+	if (mpt_xpt_bus_register(mpt->sim, mpt->dev, 0) != CAM_SUCCESS) {
 		mpt_prt(mpt, "Bus registration Failed!\n");
 		error = ENOMEM;
 		MPT_UNLOCK(mpt);
@@ -385,7 +385,8 @@ mpt_cam_attach(struct mpt_softc *mpt)
 	 * Register this bus.
 	 */
 	MPT_LOCK(mpt);
-	if (xpt_bus_register(mpt->phydisk_sim, mpt->dev, 1) != CAM_SUCCESS) {
+	if (mpt_xpt_bus_register(mpt->phydisk_sim, mpt->dev, 1) !=
+	    CAM_SUCCESS) {
 		mpt_prt(mpt, "Physical Disk Bus registration Failed!\n");
 		error = ENOMEM;
 		MPT_UNLOCK(mpt);
@@ -3988,7 +3989,7 @@ mpt_recovery_thread(void *arg)
 	mpt->recovery_thread = NULL;
 	wakeup(&mpt->recovery_thread);
 	MPT_UNLOCK(mpt);
-	kthread_exit(0);
+	mpt_kthread_exit(0);
 }
 
 static int

Modified: stable/7/sys/dev/mpt/mpt_raid.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt_raid.c	Wed Mar 18 22:13:29 2009	(r189997)
+++ stable/7/sys/dev/mpt/mpt_raid.c	Wed Mar 18 22:57:55 2009	(r189998)
@@ -722,7 +722,7 @@ mpt_raid_thread(void *arg)
 	mpt->raid_thread = NULL;
 	wakeup(&mpt->raid_thread);
 	MPT_UNLOCK(mpt);
-	kthread_exit(0);
+	mpt_kthread_exit(0);
 }
 
 #if 0

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:08:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AB141106566B;
	Wed, 18 Mar 2009 23:08:28 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from out4.smtp.messagingengine.com (out4.smtp.messagingengine.com
	[66.111.4.28]) by mx1.freebsd.org (Postfix) with ESMTP id 7ADC08FC18;
	Wed, 18 Mar 2009 23:08:28 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from compute1.internal (compute1.internal [10.202.2.41])
	by out1.messagingengine.com (Postfix) with ESMTP id BE10C2F3B1B;
	Wed, 18 Mar 2009 19:08:27 -0400 (EDT)
Received: from heartbeat1.messagingengine.com ([10.202.2.160])
	by compute1.internal (MEProxy); Wed, 18 Mar 2009 19:08:27 -0400
X-Sasl-enc: ICBLQ0KRsXj3h2N2KLIjI7reGrWorzMqi+JcvKDxSc4P 1237417707
Received: from anglepoise.lon.incunabulum.net
	(82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254])
	by mail.messagingengine.com (Postfix) with ESMTPSA id ADB7913D8C;
	Wed, 18 Mar 2009 19:08:26 -0400 (EDT)
Message-ID: <49C17EE3.5090305@incunabulum.net>
Date: Wed, 18 Mar 2009 23:08:19 +0000
From: Bruce Simpson 
User-Agent: Thunderbird 2.0.0.19 (X11/20090125)
MIME-Version: 1.0
To: Maksim Yevmenkin 
References: <200903182143.n2ILhGwW038397@svn.freebsd.org>
In-Reply-To: <200903182143.n2ILhGwW038397@svn.freebsd.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org, svn-src-stable-7@freebsd.org
Subject: Re: svn commit: r189989 - stable/7/lib/libbluetooth
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:08:29 -0000

Maksim Yevmenkin wrote:
> Author: emax
> Date: Wed Mar 18 21:43:16 2009
> New Revision: 189989
> URL: http://svn.freebsd.org/changeset/base/189989
>
> Log:
>   MFC r189462
>   MFC is ahead of schedule due to request.
>   
>   Add Bluetooth compatibility shims. Inspired by Linux BlueZ and NetBSD.
>   
Most excellent, thank you!

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:13:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3FDB91065672;
	Wed, 18 Mar 2009 23:13:36 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2B2E78FC08;
	Wed, 18 Mar 2009 23:13:36 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2INDa8C040753;
	Wed, 18 Mar 2009 23:13:36 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2INDZFs040748;
	Wed, 18 Mar 2009 23:13:35 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182313.n2INDZFs040748@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 23:13:35 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r189999 - in stable/7/sys: . contrib/pf dev/cxgb dev/mpt
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:13:37 -0000

Author: marius
Date: Wed Mar 18 23:13:35 2009
New Revision: 189999
URL: http://svn.freebsd.org/changeset/base/189999

Log:
  MFC: r186878
  
  Make the whole initiator mode part of mpt(4) endian-clean,
  specifically SPI controllers now also work in big-endian
  machines and some conversions relevant for FC and SAS
  controllers as well as support for ILP32 machines which all
  were omitted in previous attempts are now also implemented.
  The IOCTL-interface is intentionally left (and where needed
  actually changed) to be completely little-endian as otherwise
  we would have to add conversion code for every possible
  configuration page to mpt(4), which didn't seem the right
  thing to do, neither did converting only half of the user-
  interface to the native byte order.
  This change was tested on amd64 (SAS+SPI), i386 (SAS) and
  sparc64 (SAS+SPI). Due to lack of the necessary hardware
  the target mode code is still left to be made endian-clean.
  
  Reviewed by:	scottl

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mpt/mpt.c
  stable/7/sys/dev/mpt/mpt.h
  stable/7/sys/dev/mpt/mpt_cam.c
  stable/7/sys/dev/mpt/mpt_raid.c
  stable/7/sys/dev/mpt/mpt_user.c

Modified: stable/7/sys/dev/mpt/mpt.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt.c	Wed Mar 18 22:57:55 2009	(r189998)
+++ stable/7/sys/dev/mpt/mpt.c	Wed Mar 18 23:13:35 2009	(r189999)
@@ -1637,7 +1637,7 @@ mpt_read_extcfg_header(struct mpt_softc 
 		rslt->PageVersion = cfgp->Header.PageVersion;
 		rslt->PageNumber = cfgp->Header.PageNumber;
 		rslt->PageType = cfgp->Header.PageType;
-		rslt->ExtPageLength = cfgp->ExtPageLength;
+		rslt->ExtPageLength = le16toh(cfgp->ExtPageLength);
 		rslt->ExtPageType = cfgp->ExtPageType;
 		error = 0;
 		break;
@@ -1668,7 +1668,7 @@ mpt_read_extcfg_page(struct mpt_softc *m
 
 	req = mpt_get_request(mpt, sleep_ok);
 	if (req == NULL) {
-		mpt_prt(mpt, "mpt_read_cfg_page: Get request failed!\n");
+		mpt_prt(mpt, "mpt_read_extcfg_page: Get request failed!\n");
 		return (-1);
 	}
 
@@ -2025,6 +2025,7 @@ mpt_read_config_info_ioc(struct mpt_soft
 		mpt_raid_free_mem(mpt);
 		return (EIO);
 	}
+	mpt2host_config_page_ioc3(mpt->ioc_page3);
 	mpt_raid_wakeup(mpt);
 	return (0);
 }
@@ -2760,6 +2761,7 @@ mpt_enable_ioc(struct mpt_softc *mpt, in
 void
 mpt2host_sge_simple_union(SGE_SIMPLE_UNION *sge)
 {
+
 	MPT_2_HOST32(sge, FlagsLength);
 	MPT_2_HOST32(sge, u.Address64.Low);
 	MPT_2_HOST32(sge, u.Address64.High);
@@ -2768,6 +2770,7 @@ mpt2host_sge_simple_union(SGE_SIMPLE_UNI
 void
 mpt2host_iocfacts_reply(MSG_IOC_FACTS_REPLY *rp)
 {
+
 	MPT_2_HOST16(rp, MsgVersion);
 	MPT_2_HOST16(rp, HeaderVersion);
 	MPT_2_HOST32(rp, MsgContext);
@@ -2794,6 +2797,7 @@ mpt2host_iocfacts_reply(MSG_IOC_FACTS_RE
 void
 mpt2host_portfacts_reply(MSG_PORT_FACTS_REPLY *pfp)
 {
+
 	MPT_2_HOST16(pfp, Reserved);
 	MPT_2_HOST16(pfp, Reserved1);
 	MPT_2_HOST32(pfp, MsgContext);
@@ -2809,20 +2813,139 @@ mpt2host_portfacts_reply(MSG_PORT_FACTS_
 	MPT_2_HOST16(pfp, Reserved4);
 	MPT_2_HOST32(pfp, Reserved5);
 }
+
 void
 mpt2host_config_page_ioc2(CONFIG_PAGE_IOC_2 *ioc2)
 {
 	int i;
-	ioc2->CapabilitiesFlags = htole32(ioc2->CapabilitiesFlags);
+
+	MPT_2_HOST32(ioc2, CapabilitiesFlags);
 	for (i = 0; i < MPI_IOC_PAGE_2_RAID_VOLUME_MAX; i++) {
 		MPT_2_HOST16(ioc2, RaidVolume[i].Reserved3);
 	}
 }
 
 void
+mpt2host_config_page_ioc3(CONFIG_PAGE_IOC_3 *ioc3)
+{
+
+	MPT_2_HOST16(ioc3, Reserved2);
+}
+
+void
+mpt2host_config_page_scsi_port_0(CONFIG_PAGE_SCSI_PORT_0 *sp0)
+{
+
+	MPT_2_HOST32(sp0, Capabilities);
+	MPT_2_HOST32(sp0, PhysicalInterface);
+}
+
+void
+mpt2host_config_page_scsi_port_1(CONFIG_PAGE_SCSI_PORT_1 *sp1)
+{
+
+	MPT_2_HOST32(sp1, Configuration);
+	MPT_2_HOST32(sp1, OnBusTimerValue);
+	MPT_2_HOST16(sp1, IDConfig);
+}
+
+void
+host2mpt_config_page_scsi_port_1(CONFIG_PAGE_SCSI_PORT_1 *sp1)
+{
+
+	HOST_2_MPT32(sp1, Configuration);
+	HOST_2_MPT32(sp1, OnBusTimerValue);
+	HOST_2_MPT16(sp1, IDConfig);
+}
+
+void
+mpt2host_config_page_scsi_port_2(CONFIG_PAGE_SCSI_PORT_2 *sp2)
+{
+	int i;
+
+	MPT_2_HOST32(sp2, PortFlags);
+	MPT_2_HOST32(sp2, PortSettings);
+	for (i = 0; i < sizeof(sp2->DeviceSettings) /
+	    sizeof(*sp2->DeviceSettings); i++) {
+		MPT_2_HOST16(sp2, DeviceSettings[i].DeviceFlags);
+	}
+}
+
+void
+mpt2host_config_page_scsi_device_0(CONFIG_PAGE_SCSI_DEVICE_0 *sd0)
+{
+
+	MPT_2_HOST32(sd0, NegotiatedParameters);
+	MPT_2_HOST32(sd0, Information);
+}
+
+void
+mpt2host_config_page_scsi_device_1(CONFIG_PAGE_SCSI_DEVICE_1 *sd1)
+{
+
+	MPT_2_HOST32(sd1, RequestedParameters);
+	MPT_2_HOST32(sd1, Reserved);
+	MPT_2_HOST32(sd1, Configuration);
+}
+
+void
+host2mpt_config_page_scsi_device_1(CONFIG_PAGE_SCSI_DEVICE_1 *sd1)
+{
+
+	HOST_2_MPT32(sd1, RequestedParameters);
+	HOST_2_MPT32(sd1, Reserved);
+	HOST_2_MPT32(sd1, Configuration);
+}
+
+void
+mpt2host_config_page_fc_port_0(CONFIG_PAGE_FC_PORT_0 *fp0)
+{
+
+	MPT_2_HOST32(fp0, Flags);
+	MPT_2_HOST32(fp0, PortIdentifier);
+	MPT_2_HOST32(fp0, WWNN.Low);
+	MPT_2_HOST32(fp0, WWNN.High);
+	MPT_2_HOST32(fp0, WWPN.Low);
+	MPT_2_HOST32(fp0, WWPN.High);
+	MPT_2_HOST32(fp0, SupportedServiceClass);
+	MPT_2_HOST32(fp0, SupportedSpeeds);
+	MPT_2_HOST32(fp0, CurrentSpeed);
+	MPT_2_HOST32(fp0, MaxFrameSize);
+	MPT_2_HOST32(fp0, FabricWWNN.Low);
+	MPT_2_HOST32(fp0, FabricWWNN.High);
+	MPT_2_HOST32(fp0, FabricWWPN.Low);
+	MPT_2_HOST32(fp0, FabricWWPN.High);
+	MPT_2_HOST32(fp0, DiscoveredPortsCount);
+	MPT_2_HOST32(fp0, MaxInitiators);
+}
+
+void
+mpt2host_config_page_fc_port_1(CONFIG_PAGE_FC_PORT_1 *fp1)
+{
+
+	MPT_2_HOST32(fp1, Flags);
+	MPT_2_HOST32(fp1, NoSEEPROMWWNN.Low);
+	MPT_2_HOST32(fp1, NoSEEPROMWWNN.High);
+	MPT_2_HOST32(fp1, NoSEEPROMWWPN.Low);
+	MPT_2_HOST32(fp1, NoSEEPROMWWPN.High);
+}
+
+void
+host2mpt_config_page_fc_port_1(CONFIG_PAGE_FC_PORT_1 *fp1)
+{
+
+	HOST_2_MPT32(fp1, Flags);
+	HOST_2_MPT32(fp1, NoSEEPROMWWNN.Low);
+	HOST_2_MPT32(fp1, NoSEEPROMWWNN.High);
+	HOST_2_MPT32(fp1, NoSEEPROMWWPN.Low);
+	HOST_2_MPT32(fp1, NoSEEPROMWWPN.High);
+}
+
+void
 mpt2host_config_page_raid_vol_0(CONFIG_PAGE_RAID_VOL_0 *volp)
 {
 	int i;
+
 	MPT_2_HOST16(volp, VolumeStatus.Reserved);
 	MPT_2_HOST16(volp, VolumeSettings.Settings);
 	MPT_2_HOST32(volp, MaxLBA);
@@ -2836,8 +2959,21 @@ mpt2host_config_page_raid_vol_0(CONFIG_P
 }
 
 void
+mpt2host_config_page_raid_phys_disk_0(CONFIG_PAGE_RAID_PHYS_DISK_0 *rpd0)
+{
+
+	MPT_2_HOST32(rpd0, Reserved1);
+	MPT_2_HOST16(rpd0, PhysDiskStatus.Reserved);
+	MPT_2_HOST32(rpd0, MaxLBA);
+	MPT_2_HOST16(rpd0, ErrorData.Reserved);
+	MPT_2_HOST16(rpd0, ErrorData.ErrorCount);
+	MPT_2_HOST16(rpd0, ErrorData.SmartCount);
+}
+
+void
 mpt2host_mpi_raid_vol_indicator(MPI_RAID_VOL_INDICATOR *vi)
 {
+
 	MPT_2_HOST16(vi, TotalBlocks.High);
 	MPT_2_HOST16(vi, TotalBlocks.Low);
 	MPT_2_HOST16(vi, BlocksRemaining.High);

Modified: stable/7/sys/dev/mpt/mpt.h
==============================================================================
--- stable/7/sys/dev/mpt/mpt.h	Wed Mar 18 22:57:55 2009	(r189998)
+++ stable/7/sys/dev/mpt/mpt.h	Wed Mar 18 23:13:35 2009	(r189999)
@@ -317,14 +317,39 @@ void mpt2host_sge_simple_union(SGE_SIMPL
 void mpt2host_iocfacts_reply(MSG_IOC_FACTS_REPLY *);
 void mpt2host_portfacts_reply(MSG_PORT_FACTS_REPLY *);
 void mpt2host_config_page_ioc2(CONFIG_PAGE_IOC_2 *);
+void mpt2host_config_page_ioc3(CONFIG_PAGE_IOC_3 *);
+void mpt2host_config_page_scsi_port_0(CONFIG_PAGE_SCSI_PORT_0 *);
+void mpt2host_config_page_scsi_port_1(CONFIG_PAGE_SCSI_PORT_1 *);
+void host2mpt_config_page_scsi_port_1(CONFIG_PAGE_SCSI_PORT_1 *);
+void mpt2host_config_page_scsi_port_2(CONFIG_PAGE_SCSI_PORT_2 *);
+void mpt2host_config_page_scsi_device_0(CONFIG_PAGE_SCSI_DEVICE_0 *);
+void mpt2host_config_page_scsi_device_1(CONFIG_PAGE_SCSI_DEVICE_1 *);
+void host2mpt_config_page_scsi_device_1(CONFIG_PAGE_SCSI_DEVICE_1 *);
+void mpt2host_config_page_fc_port_0(CONFIG_PAGE_FC_PORT_0 *);
+void mpt2host_config_page_fc_port_1(CONFIG_PAGE_FC_PORT_1 *);
+void host2mpt_config_page_fc_port_1(CONFIG_PAGE_FC_PORT_1 *);
 void mpt2host_config_page_raid_vol_0(CONFIG_PAGE_RAID_VOL_0 *);
+void mpt2host_config_page_raid_phys_disk_0(CONFIG_PAGE_RAID_PHYS_DISK_0 *);
 void mpt2host_mpi_raid_vol_indicator(MPI_RAID_VOL_INDICATOR *);
 #else
 #define	mpt2host_sge_simple_union(x)		do { ; } while (0)
 #define	mpt2host_iocfacts_reply(x)		do { ; } while (0)
 #define	mpt2host_portfacts_reply(x)		do { ; } while (0)
 #define	mpt2host_config_page_ioc2(x)		do { ; } while (0)
+#define	mpt2host_config_page_ioc3(x)		do { ; } while (0)
+#define	mpt2host_config_page_scsi_port_0(x)	do { ; } while (0)
+#define	mpt2host_config_page_scsi_port_1(x)	do { ; } while (0)
+#define	host2mpt_config_page_scsi_port_1(x)	do { ; } while (0)
+#define	mpt2host_config_page_scsi_port_2(x)	do { ; } while (0)
+#define	mpt2host_config_page_scsi_device_0(x)	do { ; } while (0)
+#define	mpt2host_config_page_scsi_device_1(x)	do { ; } while (0)
+#define	host2mpt_config_page_scsi_device_1(x)	do { ; } while (0)
+#define	mpt2host_config_page_fc_port_0(x)	do { ; } while (0)
+#define	mpt2host_config_page_fc_port_1(x)	do { ; } while (0)
+#define	host2mpt_config_page_fc_port_1(x)	do { ; } while (0)
 #define	mpt2host_config_page_raid_vol_0(x)	do { ; } while (0)
+#define	mpt2host_config_page_raid_phys_disk_0(x)			\
+	do { ; } while (0)
 #define	mpt2host_mpi_raid_vol_indicator(x)	do { ; } while (0)
 #endif
 

Modified: stable/7/sys/dev/mpt/mpt_cam.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt_cam.c	Wed Mar 18 22:57:55 2009	(r189998)
+++ stable/7/sys/dev/mpt/mpt_cam.c	Wed Mar 18 23:13:35 2009	(r189999)
@@ -437,6 +437,7 @@ mpt_read_config_info_fc(struct mpt_softc
 		mpt_prt(mpt, "failed to read FC Port Page 0\n");
 		return (-1);
 	}
+	mpt2host_config_page_fc_port_0(&mpt->mpt_fcport_page0);
 
 	mpt->mpt_fcport_speed = mpt->mpt_fcport_page0.CurrentSpeed;
 
@@ -527,13 +528,14 @@ mpt_set_initial_config_fc(struct mpt_sof
 		mpt_prt(mpt, "failed to read FC page 1\n");
 		return (mpt_fc_reset_link(mpt, 1));
 	}
+	mpt2host_config_page_fc_port_1(&fc);
 
 	/*
 	 * Check our flags to make sure we support the role we want.
 	 */
 	doit = 0;
 	role = 0;
-	fl = le32toh(fc.Flags);;
+	fl = fc.Flags;
 
 	if (fl & MPI_FCPORTPAGE1_FLAGS_PROT_FCP_INIT) {
 		role |= MPT_ROLE_INITIATOR;
@@ -587,7 +589,8 @@ mpt_set_initial_config_fc(struct mpt_sof
 	}
 
 	if (doit) {
-		fc.Flags = htole32(fl);
+		fc.Flags = fl;
+		host2mpt_config_page_fc_port_1(&fc);
 		r = mpt_write_cfg_page(mpt,
 		    MPI_CONFIG_ACTION_PAGE_WRITE_NVRAM, 0, &fc.Header,
 		    sizeof(fc), FALSE, 5000);
@@ -982,6 +985,7 @@ mpt_read_config_info_spi(struct mpt_soft
 	if (rv) {
 		mpt_prt(mpt, "failed to read SPI Port Page 0\n");
 	} else {
+		mpt2host_config_page_scsi_port_0(&mpt->mpt_port_page0);
 		mpt_lprt(mpt, MPT_PRT_NEGOTIATION,
 		    "SPI Port Page 0: Capabilities %x PhysicalInterface %x\n",
 		    mpt->mpt_port_page0.Capabilities,
@@ -993,6 +997,7 @@ mpt_read_config_info_spi(struct mpt_soft
 	if (rv) {
 		mpt_prt(mpt, "failed to read SPI Port Page 1\n");
 	} else {
+		mpt2host_config_page_scsi_port_1(&mpt->mpt_port_page1);
 		mpt_lprt(mpt, MPT_PRT_DEBUG,
 		    "SPI Port Page 1: Configuration %x OnBusTimerValue %x\n",
 		    mpt->mpt_port_page1.Configuration,
@@ -1008,6 +1013,7 @@ mpt_read_config_info_spi(struct mpt_soft
 		    "Port Page 2: Flags %x Settings %x\n",
 		    mpt->mpt_port_page2.PortFlags,
 		    mpt->mpt_port_page2.PortSettings);
+		mpt2host_config_page_scsi_port_2(&mpt->mpt_port_page2);
 		for (i = 0; i < 16; i++) {
 			mpt_lprt(mpt, MPT_PRT_NEGOTIATION,
 		  	    " Port Page 2 Tgt %d: timo %x SF %x Flags %x\n",
@@ -1026,6 +1032,7 @@ mpt_read_config_info_spi(struct mpt_soft
 			    "cannot read SPI Target %d Device Page 0\n", i);
 			continue;
 		}
+		mpt2host_config_page_scsi_device_0(&mpt->mpt_dev_page0[i]);
 		mpt_lprt(mpt, MPT_PRT_NEGOTIATION,
 		    "target %d page 0: Negotiated Params %x Information %x\n",
 		    i, mpt->mpt_dev_page0[i].NegotiatedParameters,
@@ -1039,6 +1046,7 @@ mpt_read_config_info_spi(struct mpt_soft
 			    "cannot read SPI Target %d Device Page 1\n", i);
 			continue;
 		}
+		mpt2host_config_page_scsi_device_1(&mpt->mpt_dev_page1[i]);
 		mpt_lprt(mpt, MPT_PRT_NEGOTIATION,
 		    "target %d page 1: Requested Params %x Configuration %x\n",
 		    i, mpt->mpt_dev_page1[i].RequestedParameters,
@@ -1068,6 +1076,7 @@ mpt_set_initial_config_spi(struct mpt_so
 		    "be %x\n", mpt->mpt_port_page1.Configuration, pp1val);
 		tmp = mpt->mpt_port_page1;
 		tmp.Configuration = pp1val;
+		host2mpt_config_page_scsi_port_1(&tmp);
 		error = mpt_write_cur_cfg_page(mpt, 0,
 		    &tmp.Header, sizeof(tmp), FALSE, 5000);
 		if (error) {
@@ -1078,6 +1087,7 @@ mpt_set_initial_config_spi(struct mpt_so
 		if (error) {
 			return (-1);
 		}
+		mpt2host_config_page_scsi_port_1(&tmp);
 		if (tmp.Configuration != pp1val) {
 			mpt_prt(mpt,
 			    "failed to reset SPI Port Page 1 Config value\n");
@@ -1432,7 +1442,8 @@ bad:
 		memset(se, 0, sizeof (*se));
 		se->Address.Low = htole32(dm_segs->ds_addr & 0xffffffff);
 		if (sizeof(bus_addr_t) > 4) {
-			se->Address.High = ((uint64_t) dm_segs->ds_addr) >> 32;
+			se->Address.High =
+			    htole32(((uint64_t)dm_segs->ds_addr) >> 32);
 		}
 		MPI_pSGE_SET_LENGTH(se, dm_segs->ds_len);
 		tf = flags;
@@ -1507,9 +1518,9 @@ bad:
 		chain_list_addr += cur_off;
 		if (sizeof (bus_addr_t) > 4) {
 			ce->Address.High =
-			    htole32((uint32_t) ((uint64_t)chain_list_addr >> 32));
+			    htole32(((uint64_t)chain_list_addr) >> 32);
 		}
-		ce->Address.Low = htole32((uint32_t) chain_list_addr);
+		ce->Address.Low = htole32(chain_list_addr & 0xffffffff);
 		ce->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT |
 			    MPI_SGE_FLAGS_64_BIT_ADDRESSING;
 
@@ -1536,6 +1547,7 @@ bad:
 			ce->Length = (this_seg_lim - seg) *
 			    sizeof (SGE_SIMPLE64);
 		}
+		ce->Length = htole16(ce->Length);
 
 		/*
 		 * Fill in the chain list SGE elements with our segment data.
@@ -1546,7 +1558,8 @@ bad:
 		 */
 		while (seg < this_seg_lim) {
 			memset(se, 0, sizeof (*se));
-			se->Address.Low = htole32(dm_segs->ds_addr);
+			se->Address.Low = htole32(dm_segs->ds_addr &
+			    0xffffffff);
 			if (sizeof (bus_addr_t) > 4) {
 				se->Address.High =
 				    htole32(((uint64_t)dm_segs->ds_addr) >> 32);
@@ -1830,7 +1843,7 @@ bad:
 		uint32_t tf;
 
 		memset(se, 0,sizeof (*se));
-		se->Address = dm_segs->ds_addr;
+		se->Address = htole32(dm_segs->ds_addr);
 
 
 
@@ -1908,7 +1921,7 @@ bad:
 
 
 
-		ce->Address = chain_list_addr;
+		ce->Address = htole32(chain_list_addr);
 		ce->Flags = MPI_SGE_FLAGS_CHAIN_ELEMENT;
 
 
@@ -1935,6 +1948,7 @@ bad:
 			ce->Length = (this_seg_lim - seg) *
 			    sizeof (SGE_SIMPLE32);
 		}
+		ce->Length = htole16(ce->Length);
 
 		/*
 		 * Fill in the chain list SGE elements with our segment data.
@@ -1945,7 +1959,7 @@ bad:
 		 */
 		while (seg < this_seg_lim) {
 			memset(se, 0, sizeof (*se));
-			se->Address = dm_segs->ds_addr;
+			se->Address = htole32(dm_segs->ds_addr);
 
 
 
@@ -2193,6 +2207,7 @@ mpt_start(struct cam_sim *sim, union ccb
 			mpt_req->Control |= MPI_SCSIIO_CONTROL_NO_DISCONNECT;
 		}
 	}
+	mpt_req->Control = htole32(mpt_req->Control);
 
 	/* Copy the scsi command block into place */
 	if ((ccb->ccb_h.flags & CAM_CDB_POINTER) != 0) {
@@ -2317,7 +2332,7 @@ mpt_bus_reset(struct mpt_softc *mpt, tar
 	error = mpt_wait_req(mpt, mpt->tmf_req, REQ_STATE_DONE,
 	    REQ_STATE_DONE, sleep_ok, 5000);
 
-	status = mpt->tmf_req->IOCStatus;
+	status = le16toh(mpt->tmf_req->IOCStatus);
 	response = mpt->tmf_req->ResponseCode;
 	mpt->tmf_req->state = REQ_STATE_FREE;
 
@@ -2524,10 +2539,11 @@ mpt_cam_event(struct mpt_softc *mpt, req
 		struct cam_sim *sim;
 		struct cam_path *tmppath;
 		struct ccb_relsim crs;
-		PTR_EVENT_DATA_QUEUE_FULL pqf =
-		    (PTR_EVENT_DATA_QUEUE_FULL) msg->Data;
+		PTR_EVENT_DATA_QUEUE_FULL pqf;
 		lun_id_t lun_id;
 
+		pqf = (PTR_EVENT_DATA_QUEUE_FULL)msg->Data;
+		pqf->CurrentDepth = le16toh(pqf->CurrentDepth);
 		mpt_prt(mpt, "QUEUE FULL EVENT: Bus 0x%02x Target 0x%02x Depth "
 		    "%d\n", pqf->Bus, pqf->TargetID, pqf->CurrentDepth);
 		if (mpt->phydisk_sim) {
@@ -3086,9 +3102,10 @@ mpt_scsi_reply_frame_handler(struct mpt_
 	 && (ccb->ccb_h.flags & (CAM_SENSE_PHYS | CAM_SENSE_PTR)) == 0) {
 		ccb->ccb_h.status |= CAM_AUTOSNS_VALID;
 		ccb->csio.sense_resid =
-		    ccb->csio.sense_len - scsi_io_reply->SenseCount;
+		    ccb->csio.sense_len - le32toh(scsi_io_reply->SenseCount);
 		bcopy(req->sense_vbuf, &ccb->csio.sense_data,
-		      min(ccb->csio.sense_len, scsi_io_reply->SenseCount));
+		    min(ccb->csio.sense_len,
+		    le32toh(scsi_io_reply->SenseCount)));
 	}
 
 	if ((sstate & MPI_SCSI_STATE_QUEUE_TAG_REJECTED) != 0) {
@@ -3776,6 +3793,8 @@ mpt_get_spi_settings(struct mpt_softc *m
 			mpt_prt(mpt, "can't get tgt %d config page 0\n", tgt);
 			return (rv);
 		}
+		mpt2host_config_page_scsi_device_0(&tmp);
+		
 		MPTLOCK_2_CAMLOCK(mpt);
 		mpt_lprt(mpt, MPT_PRT_DEBUG,
 		    "mpt_get_spi_settings[%d]: current NP %x Info %x\n", tgt,
@@ -3905,6 +3924,7 @@ mpt_update_spi_config(struct mpt_softc *
 	    "mpt_update_spi_config[%d].page1: Requested Params 0x%08x\n",
 	    tgt, mpt->mpt_dev_page1[tgt].RequestedParameters);
 	tmp = mpt->mpt_dev_page1[tgt];
+	host2mpt_config_page_scsi_device_1(&tmp);
 	rv = mpt_write_cur_cfg_page(mpt, tgt,
 	    &tmp.Header, sizeof(tmp), FALSE, 5000);
 	if (rv) {
@@ -4156,7 +4176,7 @@ mpt_recover_commands(struct mpt_softc *m
 		error = mpt_wait_req(mpt, mpt->tmf_req, REQ_STATE_DONE,
 		    REQ_STATE_DONE, TRUE, 500);
 
-		status = mpt->tmf_req->IOCStatus;
+		status = le16toh(mpt->tmf_req->IOCStatus);
 		response = mpt->tmf_req->ResponseCode;
 		mpt->tmf_req->state = REQ_STATE_FREE;
 

Modified: stable/7/sys/dev/mpt/mpt_raid.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt_raid.c	Wed Mar 18 22:57:55 2009	(r189998)
+++ stable/7/sys/dev/mpt/mpt_raid.c	Wed Mar 18 23:13:35 2009	(r189999)
@@ -564,7 +564,7 @@ mpt_raid_reply_frame_handler(struct mpt_
 	action_result = REQ_TO_RAID_ACTION_RESULT(req);
 	memcpy(&action_result->action_data, &reply->ActionData,
 	    sizeof(action_result->action_data));
-	action_result->action_status = reply->ActionStatus;
+	action_result->action_status = le16toh(reply->ActionStatus);
 	return (TRUE);
 }
 
@@ -583,7 +583,7 @@ mpt_issue_raid_req(struct mpt_softc *mpt
 	rap = req->req_vbuf;
 	memset(rap, 0, sizeof *rap);
 	rap->Action = Action;
-	rap->ActionDataWord = ActionDataWord;
+	rap->ActionDataWord = htole32(ActionDataWord);
 	rap->Function = MPI_FUNCTION_RAID_ACTION;
 	rap->VolumeID = vol->config_page->VolumeID;
 	rap->VolumeBus = vol->config_page->VolumeBus;
@@ -592,12 +592,13 @@ mpt_issue_raid_req(struct mpt_softc *mpt
 	else
 		rap->PhysDiskNum = 0xFF;
 	se = (SGE_SIMPLE32 *)&rap->ActionDataSGE;
-	se->Address = addr;
+	se->Address = htole32(addr);
 	MPI_pSGE_SET_LENGTH(se, len);
 	MPI_pSGE_SET_FLAGS(se, (MPI_SGE_FLAGS_SIMPLE_ELEMENT |
 	    MPI_SGE_FLAGS_LAST_ELEMENT | MPI_SGE_FLAGS_END_OF_BUFFER |
 	    MPI_SGE_FLAGS_END_OF_LIST |
 	    write ? MPI_SGE_FLAGS_HOST_TO_IOC : MPI_SGE_FLAGS_IOC_TO_HOST));
+	se->FlagsLength = htole32(se->FlagsLength);
 	rap->MsgContext = htole32(req->index | raid_handler_id);
 
 	mpt_check_doorbell(mpt);
@@ -1226,6 +1227,7 @@ mpt_refresh_raid_disk(struct mpt_softc *
 		mpt_prt(mpt, "mpt_refresh_raid_disk: "
 			"Failed to read RAID Disk Page(%d)\n",
 		 	ioc_disk->PhysDiskNum);
+	mpt2host_config_page_raid_phys_disk_0(&mpt_disk->config_page);
 }
 
 static void
@@ -1354,6 +1356,7 @@ mpt_refresh_raid_data(struct mpt_softc *
 		    "mpt_refresh_raid_data: Failed to read IOC Page 3\n");
 		return (-1);
 	}
+	mpt2host_config_page_ioc3(mpt->ioc_page3);
 
 	ioc_disk = mpt->ioc_page3->PhysDisk;
 	ioc_last_disk = ioc_disk + mpt->ioc_page3->NumPhysDisks;
@@ -1384,6 +1387,7 @@ mpt_refresh_raid_data(struct mpt_softc *
 			"Failed to read IOC Page 2\n");
 		return (-1);
 	}
+	mpt2host_config_page_ioc2(mpt->ioc_page2);
 
 	ioc_vol = mpt->ioc_page2->RaidVolume;
 	ioc_last_vol = ioc_vol + mpt->ioc_page2->NumActiveVolumes;

Modified: stable/7/sys/dev/mpt/mpt_user.c
==============================================================================
--- stable/7/sys/dev/mpt/mpt_user.c	Wed Mar 18 22:57:55 2009	(r189998)
+++ stable/7/sys/dev/mpt/mpt_user.c	Wed Mar 18 23:13:35 2009	(r189999)
@@ -256,7 +256,7 @@ mpt_user_read_cfg_header(struct mpt_soft
 	params.PageLength = 0;
 	params.PageNumber = page_req->header.PageNumber;
 	params.PageType = page_req->header.PageType;
-	params.PageAddress = page_req->page_address;
+	params.PageAddress = le32toh(page_req->page_address);
 	error = mpt_issue_cfg_req(mpt, req, ¶ms, /*addr*/0, /*len*/0,
 				  TRUE, 5000);
 	if (error != 0) {
@@ -270,7 +270,7 @@ mpt_user_read_cfg_header(struct mpt_soft
 		return (ETIMEDOUT);
 	}
 
-	page_req->ioc_status = req->IOCStatus;
+	page_req->ioc_status = htole16(req->IOCStatus);
 	if ((req->IOCStatus & MPI_IOCSTATUS_MASK) == MPI_IOCSTATUS_SUCCESS) {
 		cfgp = req->req_vbuf;
 		bcopy(&cfgp->Header, &page_req->header,
@@ -301,15 +301,15 @@ mpt_user_read_cfg_page(struct mpt_softc 
 	params.PageLength = hdr->PageLength;
 	params.PageNumber = hdr->PageNumber;
 	params.PageType = hdr->PageType & MPI_CONFIG_PAGETYPE_MASK;
-	params.PageAddress = page_req->page_address;
+	params.PageAddress = le32toh(page_req->page_address);
 	error = mpt_issue_cfg_req(mpt, req, ¶ms, mpt_page->paddr,
-				  page_req->len, TRUE, 5000);
+	    le32toh(page_req->len), TRUE, 5000);
 	if (error != 0) {
 		mpt_prt(mpt, "mpt_user_read_cfg_page timed out\n");
 		return (ETIMEDOUT);
 	}
 
-	page_req->ioc_status = req->IOCStatus;
+	page_req->ioc_status = htole16(req->IOCStatus);
 	if ((req->IOCStatus & MPI_IOCSTATUS_MASK) == MPI_IOCSTATUS_SUCCESS)
 		bus_dmamap_sync(mpt_page->tag, mpt_page->map,
 		    BUS_DMASYNC_POSTREAD);
@@ -337,7 +337,7 @@ mpt_user_read_extcfg_header(struct mpt_s
 	params.PageLength = 0;
 	params.PageNumber = ext_page_req->header.PageNumber;
 	params.PageType = MPI_CONFIG_PAGETYPE_EXTENDED;
-	params.PageAddress = ext_page_req->page_address;
+	params.PageAddress = le32toh(ext_page_req->page_address);
 	params.ExtPageType = ext_page_req->header.ExtPageType;
 	params.ExtPageLength = 0;
 	error = mpt_issue_cfg_req(mpt, req, ¶ms, /*addr*/0, /*len*/0,
@@ -353,7 +353,7 @@ mpt_user_read_extcfg_header(struct mpt_s
 		return (ETIMEDOUT);
 	}
 
-	ext_page_req->ioc_status = req->IOCStatus;
+	ext_page_req->ioc_status = htole16(req->IOCStatus);
 	if ((req->IOCStatus & MPI_IOCSTATUS_MASK) == MPI_IOCSTATUS_SUCCESS) {
 		cfgp = req->req_vbuf;
 		ext_page_req->header.PageVersion = cfgp->Header.PageVersion;
@@ -387,17 +387,17 @@ mpt_user_read_extcfg_page(struct mpt_sof
 	params.PageLength = 0;
 	params.PageNumber = hdr->PageNumber;
 	params.PageType = MPI_CONFIG_PAGETYPE_EXTENDED;
-	params.PageAddress = ext_page_req->page_address;
+	params.PageAddress = le32toh(ext_page_req->page_address);
 	params.ExtPageType = hdr->ExtPageType;
 	params.ExtPageLength = hdr->ExtPageLength;
 	error = mpt_issue_cfg_req(mpt, req, ¶ms, mpt_page->paddr,
-				  ext_page_req->len, TRUE, 5000);
+	    le32toh(ext_page_req->len), TRUE, 5000);
 	if (error != 0) {
 		mpt_prt(mpt, "mpt_user_read_extcfg_page timed out\n");
 		return (ETIMEDOUT);
 	}
 
-	ext_page_req->ioc_status = req->IOCStatus;
+	ext_page_req->ioc_status = htole16(req->IOCStatus);
 	if ((req->IOCStatus & MPI_IOCSTATUS_MASK) == MPI_IOCSTATUS_SUCCESS)
 		bus_dmamap_sync(mpt_page->tag, mpt_page->map,
 		    BUS_DMASYNC_POSTREAD);
@@ -446,7 +446,7 @@ mpt_user_write_cfg_page(struct mpt_softc
 	params.PageVersion = hdr->PageVersion;
 	params.PageLength = hdr->PageLength;
 	params.PageNumber = hdr->PageNumber;
-	params.PageAddress = page_req->page_address;
+	params.PageAddress = le32toh(page_req->page_address);
 #if	0
 	/* Restore stripped out attributes */
 	hdr->PageType |= hdr_attr;
@@ -455,13 +455,13 @@ mpt_user_write_cfg_page(struct mpt_softc
 	params.PageType = hdr->PageType;
 #endif
 	error = mpt_issue_cfg_req(mpt, req, ¶ms, mpt_page->paddr,
-				  page_req->len, TRUE, 5000);
+	    le32toh(page_req->len), TRUE, 5000);
 	if (error != 0) {
 		mpt_prt(mpt, "mpt_write_cfg_page timed out\n");
 		return (ETIMEDOUT);
 	}
 
-	page_req->ioc_status = req->IOCStatus;
+	page_req->ioc_status = htole16(req->IOCStatus);
 	mpt_free_request(mpt, req);
 	return (0);
 }
@@ -536,14 +536,15 @@ mpt_user_raid_action(struct mpt_softc *m
 	if (mpt_page->vaddr != NULL && raid_act->len != 0) {
 		bus_dmamap_sync(mpt_page->tag, mpt_page->map,
 		    BUS_DMASYNC_PREWRITE);
-		se->Address = mpt_page->paddr;
-		MPI_pSGE_SET_LENGTH(se, raid_act->len);
+		se->Address = htole32(mpt_page->paddr);
+		MPI_pSGE_SET_LENGTH(se, le32toh(raid_act->len));
 		MPI_pSGE_SET_FLAGS(se, (MPI_SGE_FLAGS_SIMPLE_ELEMENT |
 		    MPI_SGE_FLAGS_LAST_ELEMENT | MPI_SGE_FLAGS_END_OF_BUFFER |
 		    MPI_SGE_FLAGS_END_OF_LIST |
 		    raid_act->write ? MPI_SGE_FLAGS_HOST_TO_IOC :
 		    MPI_SGE_FLAGS_IOC_TO_HOST));
 	}
+	se->FlagsLength = htole32(se->FlagsLength);
 	rap->MsgContext = htole32(req->index | user_handler_id);
 
 	mpt_check_doorbell(mpt);
@@ -559,7 +560,7 @@ mpt_user_raid_action(struct mpt_softc *m
 		return (error);
 	}
 
-	raid_act->ioc_status = req->IOCStatus;
+	raid_act->ioc_status = htole16(req->IOCStatus);
 	if ((req->IOCStatus & MPI_IOCSTATUS_MASK) != MPI_IOCSTATUS_SUCCESS) {
 		mpt_free_request(mpt, req);
 		return (0);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:25:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 825A1106566B;
	Wed, 18 Mar 2009 23:25:12 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6CEB88FC18;
	Wed, 18 Mar 2009 23:25:12 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2INPCOV041102;
	Wed, 18 Mar 2009 23:25:12 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2INPCZd041098;
	Wed, 18 Mar 2009 23:25:12 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182325.n2INPCZd041098@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 23:25:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190000 - in stable/7/sys: . boot/sparc64/loader
	contrib/pf dev/ath/ath_hal dev/cxgb sparc64/include sun4v/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:25:13 -0000

Author: marius
Date: Wed Mar 18 23:25:12 2009
New Revision: 190000
URL: http://svn.freebsd.org/changeset/base/190000

Log:
  MFC: r181398
  
  - Reimplement {d,i}tlb_enter() and {d,i}tlb_va_to_pa() in C. There's
    no particular reason for them to be implemented in assembler and
    having them in C allows easier extension as well as using more C
    macros and {d,i}tlb_slot_max rather than hard-coding magic (and
    actually spitfire-only) values.
  - Fix the compilation of pmap_print_tte().
  - Change pmap_print_tlb() to use ldxa() rather than re-rolling it
    inline as well as TLB_DAR_SLOT and {d,i}tlb_slot_max rather than
    hardcoding magic (and actually spitfire-only) values.
  - While at it, suffix the above mentioned functions with "_sun4u" to
    underline they're architecture-specific.
  - Use __FBSDID and macros instead of magic values in locore.S.
  - Remove unused includes and smp_stack in locore.S.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/sparc64/loader/locore.S
  stable/7/sys/boot/sparc64/loader/main.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/tte.h
  stable/7/sys/sun4v/include/tte.h

Modified: stable/7/sys/boot/sparc64/loader/locore.S
==============================================================================
--- stable/7/sys/boot/sparc64/loader/locore.S	Wed Mar 18 23:13:35 2009	(r189999)
+++ stable/7/sys/boot/sparc64/loader/locore.S	Wed Mar 18 23:25:12 2009	(r190000)
@@ -4,35 +4,34 @@
  * All rights reserved.
  *
  * As long as the above copyright statement and this notice remain
- * unchanged, you can do what ever you want with this file. 
- *
- * $FreeBSD$
+ * unchanged, you can do what ever you want with this file.
  */
 
+#include 
+__FBSDID("$FreeBSD$");
+
 #define	LOCORE
 
-#include 
-#include 
+#include 
+#include 
+#include 
 #include 
-#include 
-#include 
 
 #define	PAGE_SIZE	8192
 #define	PAGE_SHIFT	13
 
-#define	SPOFF		2047
 #define	STACK_SIZE	(2 * PAGE_SIZE)
 
 ENTRY(_start)
-	/* limit interrupts */
-	wrpr	%g0, 13, %pil
+	/* Limit interrupts. */
+	wrpr	%g0, PIL_TICK - 1, %pil
 
 	/*
 	 * PSTATE: privileged, interrupts enabled, floating point
 	 * unit enabled
 	 */
-	wrpr	%g0, PSTATE_PRIV|PSTATE_IE|PSTATE_PEF, %pstate
-	wr	%g0, 0x4, %fprs
+	wrpr	%g0, PSTATE_PRIV | PSTATE_IE | PSTATE_PEF, %pstate
+	wr	%g0, FPRS_FEF, %fprs
 
 	setx	stack + STACK_SIZE - SPOFF - CCFSZ, %l7, %l6
 	mov	%l6, %sp
@@ -40,74 +39,4 @@ ENTRY(_start)
 	 mov	%o4, %o0
 	sir
 
-/*
- * %o0 input VA constant
- * %o1 current iTLB offset
- * %o2 current iTLB TTE tag
- */
-ENTRY(itlb_va_to_pa)
-	clr	%o1
-0:	ldxa	[%o1] ASI_ITLB_TAG_READ_REG, %o2
-	cmp	%o2, %o0
-	bne,a	%xcc, 1f
-	 nop
-	/* return PA of matching entry */
-	ldxa	[%o1] ASI_ITLB_DATA_ACCESS_REG, %o0
-	sllx	%o0, 23, %o0
-	srlx	%o0, PAGE_SHIFT+23, %o0
-	sllx	%o0, PAGE_SHIFT, %o0
-	retl
-	 mov	%o0, %o1
-1:	cmp	%o1, 63<<3
-	blu	%xcc, 0b
-	 add	%o1, 8, %o1
-	clr	%o0
-	retl
-	 not	%o0
-
-ENTRY(dtlb_va_to_pa)
-	clr	%o1
-0:	ldxa	[%o1] ASI_DTLB_TAG_READ_REG, %o2
-	cmp	%o2, %o0
-	bne,a	%xcc, 1f
-	 nop
-	/* return PA of matching entry */
-	ldxa	[%o1] ASI_DTLB_DATA_ACCESS_REG, %o0
-	sllx	%o0, 23, %o0
-	srlx	%o0, PAGE_SHIFT+23, %o0
-	sllx	%o0, PAGE_SHIFT, %o0
-	retl
-	 mov	%o0, %o1
-1:	cmp	%o1, 63<<3
-	blu	%xcc, 0b
-	 add	%o1, 8, %o1
-	clr	%o0
-	retl
-	 not	%o0
-
-/*
- * %o0 = vpn
- * %o1 = tte data
- */
-ENTRY(itlb_enter)
-	rdpr	%pstate, %o4
-	wrpr	%o4, PSTATE_IE, %pstate
-	mov	AA_IMMU_TAR, %o3
-	stxa	%o0, [%o3] ASI_IMMU
-	stxa	%o1, [%g0] ASI_ITLB_DATA_IN_REG
-	membar	#Sync
-	retl
-	 wrpr	%o4, 0, %pstate
-
-ENTRY(dtlb_enter)
-	rdpr	%pstate, %o4
-	wrpr	%o4, PSTATE_IE, %pstate
-	mov	AA_DMMU_TAR, %o3
-	stxa	%o0, [%o3] ASI_DMMU
-	stxa	%o1, [%g0] ASI_DTLB_DATA_IN_REG
-	membar	#Sync
-	retl
-	 wrpr	%o4, 0, %pstate
-
 	.comm	stack, STACK_SIZE, 32
-	.comm	smp_stack, STACK_SIZE, 32

Modified: stable/7/sys/boot/sparc64/loader/main.c
==============================================================================
--- stable/7/sys/boot/sparc64/loader/main.c	Wed Mar 18 23:13:35 2009	(r189999)
+++ stable/7/sys/boot/sparc64/loader/main.c	Wed Mar 18 23:25:12 2009	(r190000)
@@ -4,7 +4,7 @@
  * All rights reserved.
  *
  * As long as the above copyright statement and this notice remain
- * unchanged, you can do what ever you want with this file. 
+ * unchanged, you can do what ever you want with this file.
  */
 
 #include 
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 
 #include "bootstrap.h"
@@ -56,10 +57,10 @@ static struct mmu_ops {
 typedef void kernel_entry_t(vm_offset_t mdp, u_long o1, u_long o2, u_long o3,
     void *openfirmware);
 
-extern void itlb_enter(u_long vpn, u_long data);
-extern void dtlb_enter(u_long vpn, u_long data);
-extern vm_offset_t itlb_va_to_pa(vm_offset_t);
-extern vm_offset_t dtlb_va_to_pa(vm_offset_t);
+static void dtlb_enter_sun4u(u_long vpn, u_long data);
+static vm_offset_t dtlb_va_to_pa_sun4u(vm_offset_t);
+static void itlb_enter_sun4u(u_long vpn, u_long data);
+static vm_offset_t itlb_va_to_pa_sun4u(vm_offset_t);
 extern vm_offset_t md_load(char *, vm_offset_t *);
 static int sparc64_autoload(void);
 static ssize_t sparc64_readin(const int, vm_offset_t, const size_t);
@@ -76,6 +77,13 @@ static vm_offset_t init_heap(void);
 static void tlb_init_sun4u(void);
 static void tlb_init_sun4v(void);
 
+#ifdef LOADER_DEBUG
+typedef u_int64_t tte_t;
+
+static void pmap_print_tlb_sun4u(void);
+static void pmap_print_tte_sun4u(tte_t, tte_t);
+#endif
+
 static struct mmu_ops mmu_ops_sun4u = { tlb_init_sun4u, mmu_mapin_sun4u };
 static struct mmu_ops mmu_ops_sun4v = { tlb_init_sun4v, mmu_mapin_sun4v };
 
@@ -344,9 +352,8 @@ __elfN(exec)(struct preloaded_file *fp)
 		return (error);
 
 	printf("jumping to kernel entry at %#lx.\n", e->e_entry);
-#if 0
-	pmap_print_tlb('i');
-	pmap_print_tlb('d');
+#if LOADER_DEBUG
+	pmap_print_tlb_sun4u();
 #endif
 
 	entry = e->e_entry;
@@ -358,6 +365,64 @@ __elfN(exec)(struct preloaded_file *fp)
 	panic("%s: exec returned", __func__);
 }
 
+static vm_offset_t
+dtlb_va_to_pa_sun4u(vm_offset_t va)
+{
+	u_long reg;
+	int i;
+
+	for (i = 0; i < dtlb_slot_max; i++) {
+		reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
+		if (TLB_TAR_VA(reg) != va)
+			continue;
+		reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG);
+		return ((reg & TD_PA_SF_MASK) >> TD_PA_SHIFT);
+	}
+	return (-1);
+}
+
+static vm_offset_t
+itlb_va_to_pa_sun4u(vm_offset_t va)
+{
+	u_long reg;
+	int i;
+
+	for (i = 0; i < itlb_slot_max; i++) {
+		reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
+		if (TLB_TAR_VA(reg) != va)
+			continue;
+		reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG);
+		return ((reg & TD_PA_SF_MASK) >> TD_PA_SHIFT);
+	}
+	return (-1);
+}
+
+static void
+itlb_enter_sun4u(u_long vpn, u_long data)
+{
+	u_long reg;
+
+	reg = rdpr(pstate);
+	wrpr(pstate, reg & ~PSTATE_IE, 0);
+	stxa(AA_IMMU_TAR, ASI_IMMU, vpn);
+	stxa(0, ASI_ITLB_DATA_IN_REG, data);
+	membar(Sync);
+	wrpr(pstate, reg, 0);
+}
+
+static void
+dtlb_enter_sun4u(u_long vpn, u_long data)
+{
+	u_long reg;
+
+	reg = rdpr(pstate);
+	wrpr(pstate, reg & ~PSTATE_IE, 0);
+	stxa(AA_DMMU_TAR, ASI_DMMU, vpn);
+	stxa(0, ASI_DTLB_DATA_IN_REG, data);
+	membar(Sync);
+	wrpr(pstate, reg, 0);
+}
+
 static int
 mmu_mapin_sun4u(vm_offset_t va, vm_size_t len)
 {
@@ -371,8 +436,8 @@ mmu_mapin_sun4u(vm_offset_t va, vm_size_
 	len += va & PAGE_MASK_4M;
 	va &= ~PAGE_MASK_4M;
 	while (len) {
-		if (dtlb_va_to_pa(va) == (vm_offset_t)-1 ||
-		    itlb_va_to_pa(va) == (vm_offset_t)-1) {
+		if (dtlb_va_to_pa_sun4u(va) == (vm_offset_t)-1 ||
+		    itlb_va_to_pa_sun4u(va) == (vm_offset_t)-1) {
 			/* Allocate a physical page, claim the virtual area. */
 			if (pa == (vm_offset_t)-1) {
 				pa = alloc_phys(PAGE_SIZE_4M, PAGE_SIZE_4M);
@@ -404,8 +469,8 @@ mmu_mapin_sun4u(vm_offset_t va, vm_size_
 			itlb_store[itlb_slot].te_va = va;
 			dtlb_slot++;
 			itlb_slot++;
-			dtlb_enter(va, data);
-			itlb_enter(va, data);
+			dtlb_enter_sun4u(va, data);
+			itlb_enter_sun4u(va, data);
 			pa = (vm_offset_t)-1;
 		}
 		len -= len > PAGE_SIZE_4M ? PAGE_SIZE_4M : len;
@@ -620,14 +685,12 @@ exit(int code)
 }
 
 #ifdef LOADER_DEBUG
-typedef u_int64_t tte_t;
-
 static const char *page_sizes[] = {
 	"  8k", " 64k", "512k", "  4m"
 };
 
 static void
-pmap_print_tte(tte_t tag, tte_t tte)
+pmap_print_tte_sun4u(tte_t tag, tte_t tte)
 {
 
 	printf("%s %s ",
@@ -641,36 +704,31 @@ pmap_print_tte(tte_t tag, tte_t tte)
 	printf(tte & TD_L ? "\e[32mL\e[0m " : "  ");
 	printf(tte & TD_IE ? "IE " : "   ");
 	printf(tte & TD_NFO ? "NFO " : "    ");
-	printf("tag=0x%lx pa=0x%lx va=0x%lx ctx=%ld\n", tag, TD_PA(tte),
-	    TT_VA(tag), TT_CTX(tag));
+	printf("pa=0x%lx va=0x%lx ctx=%ld\n",
+	    TD_PA(tte), TLB_TAR_VA(tag), TLB_TAR_CTX(tag));
 }
-void
-pmap_print_tlb(char which)
+
+static void
+pmap_print_tlb_sun4u(void)
 {
+	tte_t tag, tte;
 	int i;
-	tte_t tte, tag;
 
-	for (i = 0; i < 64*8; i += 8) {
-		if (which == 'i') {
-			__asm__ __volatile__("ldxa	[%1] %2, %0\n" :
-			    "=r" (tag) : "r" (i),
-			    "i" (ASI_ITLB_TAG_READ_REG));
-			__asm__ __volatile__("ldxa	[%1] %2, %0\n" :
-			    "=r" (tte) : "r" (i),
-			    "i" (ASI_ITLB_DATA_ACCESS_REG));
-		}
-		else {
-			__asm__ __volatile__("ldxa	[%1] %2, %0\n" :
-			    "=r" (tag) : "r" (i),
-			    "i" (ASI_DTLB_TAG_READ_REG));
-			__asm__ __volatile__("ldxa	[%1] %2, %0\n" :
-			    "=r" (tte) : "r" (i),
-			    "i" (ASI_DTLB_DATA_ACCESS_REG));
-		}
+	for (i = 0; i < itlb_slot_max; i++) {
+		tte = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG);
+		if (!(tte & TD_V))
+			continue;
+		tag = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
+		printf("iTLB-%2u: ", i);
+		pmap_print_tte_sun4u(tag, tte);
+	}
+	for (i = 0; i < dtlb_slot_max; i++) {
+		tte = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG);
 		if (!(tte & TD_V))
 			continue;
-		printf("%cTLB-%2u: ", which, i>>3);
-		pmap_print_tte(tag, tte);
+		tag = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
+		printf("dTLB-%2u: ", i);
+		pmap_print_tte_sun4u(tag, tte);
 	}
 }
 #endif

Modified: stable/7/sys/sparc64/include/tte.h
==============================================================================
--- stable/7/sys/sparc64/include/tte.h	Wed Mar 18 23:13:35 2009	(r189999)
+++ stable/7/sys/sparc64/include/tte.h	Wed Mar 18 23:25:12 2009	(r190000)
@@ -43,12 +43,16 @@
 #define	TD_SIZE_BITS	(2)
 #define	TD_SOFT2_BITS	(9)
 #define	TD_DIAG_BITS	(9)
-#define	TD_PA_BITS	(28)
+#define	TD_PA_CH_BITS	(30)
+#define	TD_PA_SF_BITS	(28)
+#define	TD_PA_BITS	TD_PA_SF_BITS
 #define	TD_SOFT_BITS	(6)
 
 #define	TD_SIZE_MASK	((1UL << TD_SIZE_BITS) - 1)
 #define	TD_SOFT2_MASK	((1UL << TD_SOFT2_BITS) - 1)
 #define	TD_DIAG_MASK	((1UL << TD_DIAG_BITS) - 1)
+#define	TD_PA_CH_MASK	((1UL << TD_PA_CH_BITS) - 1)
+#define	TD_PA_SF_MASK	((1UL << TD_PA_SF_BITS) - 1)
 #define	TD_PA_MASK	((1UL << TD_PA_BITS) - 1)
 #define	TD_SOFT_MASK	((1UL << TD_SOFT_BITS) - 1)
 

Modified: stable/7/sys/sun4v/include/tte.h
==============================================================================
--- stable/7/sys/sun4v/include/tte.h	Wed Mar 18 23:13:35 2009	(r189999)
+++ stable/7/sys/sun4v/include/tte.h	Wed Mar 18 23:25:12 2009	(r190000)
@@ -41,11 +41,15 @@
 
 #define	TD_SOFT2_BITS	(9)
 #define	TD_DIAG_BITS	(9)
+#define	TD_PA_CH_BITS	(30)
+#define	TD_PA_SF_BITS	(28)
 #define	TD_PA_BITS	(42)
 #define	TD_SOFT_BITS	(6)
 
 #define	TD_SOFT2_MASK	((1UL << TD_SOFT2_BITS) - 1)
 #define	TD_DIAG_MASK	((1UL << TD_DIAG_BITS) - 1)
+#define	TD_PA_CH_MASK	((1UL << TD_PA_CH_BITS) - 1)
+#define	TD_PA_SF_MASK	((1UL << TD_PA_SF_BITS) - 1)
 #define	TD_PA_MASK	((1UL << TD_PA_BITS) - 1)
 #define	TD_SOFT_MASK	((1UL << TD_SOFT_BITS) - 1)
 

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:35:40 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 633F2106564A;
	Wed, 18 Mar 2009 23:35:40 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4F93F8FC1E;
	Wed, 18 Mar 2009 23:35:40 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2INZet8041344;
	Wed, 18 Mar 2009 23:35:40 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2INZepv041343;
	Wed, 18 Mar 2009 23:35:40 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182335.n2INZepv041343@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 23:35:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190001 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:35:41 -0000

Author: marius
Date: Wed Mar 18 23:35:40 2009
New Revision: 190001
URL: http://svn.freebsd.org/changeset/base/190001

Log:
  MFC: r181642
  
  Assume OpenSolaris knows better and use their value for VM_MAX_PROM_ADDRESS.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/vmparam.h

Modified: stable/7/sys/sparc64/include/vmparam.h
==============================================================================
--- stable/7/sys/sparc64/include/vmparam.h	Wed Mar 18 23:25:12 2009	(r190000)
+++ stable/7/sys/sparc64/include/vmparam.h	Wed Mar 18 23:35:40 2009	(r190001)
@@ -194,7 +194,7 @@
 #define	VM_MAX_KERNEL_ADDRESS	(vm_max_kernel_address)
 
 #define	VM_MIN_PROM_ADDRESS	(0x00000000f0000000UL)
-#define	VM_MAX_PROM_ADDRESS	(0x00000000ffffe000UL)
+#define	VM_MAX_PROM_ADDRESS	(0x00000000ffffffffUL)
 
 #define	VM_MIN_USER_ADDRESS	(0x0000000000000000UL)
 #define	VM_MAX_USER_ADDRESS	(0x000007fe00000000UL)

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:50:25 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5FDDD106564A;
	Wed, 18 Mar 2009 23:50:25 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4BA018FC19;
	Wed, 18 Mar 2009 23:50:25 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2INoPlm041691;
	Wed, 18 Mar 2009 23:50:25 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2INoPhF041690;
	Wed, 18 Mar 2009 23:50:25 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182350.n2INoPhF041690@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 23:50:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190002 - in stable/7/sys: . boot/sparc64/loader
	contrib/pf dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:50:26 -0000

Author: marius
Date: Wed Mar 18 23:50:25 2009
New Revision: 190002
URL: http://svn.freebsd.org/changeset/base/190002

Log:
  MFC: r182478, r182766
  
  - Read ASI_{D,I}TLB_DATA_ACCESS_REG twice in order to work around
    errata of USIII and beyond (USIII erratum #19, USIII+ erratum #1,
    USIIIi erratum #1).
  - Use the cheetah PA mask in {d,i}tlb_va_to_pa_sun4u() for USIII
    and beyond. This is done so that these functions will still mask
    the debug bits of spitfire-class CPUs once we increase TD_PA_BITS
    to match the number of bits used for the PA by cheetah-class CPUs.
  - Change {d,i}tlb_enter_sun4u() to also set TLB_CTX_KERNEL as the
    context of the mappings entered. This is more or less cosmetic as
    TLB_CTX_KERNEL is 0.
  - Now that we have to distinguish between different sun4u CPUs in
    the loader anyway, no longer do trial and error when reading the
    portid property.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/sparc64/loader/main.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/boot/sparc64/loader/main.c
==============================================================================
--- stable/7/sys/boot/sparc64/loader/main.c	Wed Mar 18 23:35:40 2009	(r190001)
+++ stable/7/sys/boot/sparc64/loader/main.c	Wed Mar 18 23:50:25 2009	(r190002)
@@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include "bootstrap.h"
 #include "libofw.h"
@@ -57,8 +58,10 @@ static struct mmu_ops {
 typedef void kernel_entry_t(vm_offset_t mdp, u_long o1, u_long o2, u_long o3,
     void *openfirmware);
 
+static inline u_long dtlb_get_data_sun4u(int slot);
 static void dtlb_enter_sun4u(u_long vpn, u_long data);
 static vm_offset_t dtlb_va_to_pa_sun4u(vm_offset_t);
+static inline u_long itlb_get_data_sun4u(int slot);
 static void itlb_enter_sun4u(u_long vpn, u_long data);
 static vm_offset_t itlb_va_to_pa_sun4u(vm_offset_t);
 extern vm_offset_t md_load(char *, vm_offset_t *);
@@ -92,6 +95,7 @@ struct tlb_entry *dtlb_store;
 struct tlb_entry *itlb_store;
 int dtlb_slot;
 int itlb_slot;
+int cpu_impl;
 static int dtlb_slot_max;
 static int itlb_slot_max;
 
@@ -365,60 +369,98 @@ __elfN(exec)(struct preloaded_file *fp)
 	panic("%s: exec returned", __func__);
 }
 
+static inline u_long
+dtlb_get_data_sun4u(int slot)
+{
+
+	/*
+	 * We read ASI_DTLB_DATA_ACCESS_REG twice in order to work
+	 * around errata of USIII and beyond.
+	 */
+	(void)ldxa(TLB_DAR_SLOT(slot), ASI_DTLB_DATA_ACCESS_REG);
+	return (ldxa(TLB_DAR_SLOT(slot), ASI_DTLB_DATA_ACCESS_REG));
+}
+
+static inline u_long
+itlb_get_data_sun4u(int slot)
+{
+
+	/*
+	 * We read ASI_ITLB_DATA_ACCESS_REG twice in order to work
+	 * around errata of USIII and beyond.
+	 */
+	(void)ldxa(TLB_DAR_SLOT(slot), ASI_ITLB_DATA_ACCESS_REG);
+	return (ldxa(TLB_DAR_SLOT(slot), ASI_ITLB_DATA_ACCESS_REG));
+}
+
 static vm_offset_t
 dtlb_va_to_pa_sun4u(vm_offset_t va)
 {
-	u_long reg;
+	u_long pstate, reg;
 	int i;
 
+	pstate = rdpr(pstate);
+	wrpr(pstate, pstate & ~PSTATE_IE, 0);
 	for (i = 0; i < dtlb_slot_max; i++) {
 		reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);
 		if (TLB_TAR_VA(reg) != va)
 			continue;
-		reg = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG);
+		reg = dtlb_get_data_sun4u(i);
+		wrpr(pstate, pstate, 0);
+		if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
+			return ((reg & TD_PA_CH_MASK) >> TD_PA_SHIFT);
 		return ((reg & TD_PA_SF_MASK) >> TD_PA_SHIFT);
 	}
+	wrpr(pstate, pstate, 0);
 	return (-1);
 }
 
 static vm_offset_t
 itlb_va_to_pa_sun4u(vm_offset_t va)
 {
-	u_long reg;
+	u_long pstate, reg;
 	int i;
 
+	pstate = rdpr(pstate);
+	wrpr(pstate, pstate & ~PSTATE_IE, 0);
 	for (i = 0; i < itlb_slot_max; i++) {
 		reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
 		if (TLB_TAR_VA(reg) != va)
 			continue;
-		reg = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG);
+		reg = itlb_get_data_sun4u(i);
+		wrpr(pstate, pstate, 0);
+		if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
+			return ((reg & TD_PA_CH_MASK) >> TD_PA_SHIFT);
 		return ((reg & TD_PA_SF_MASK) >> TD_PA_SHIFT);
 	}
+	wrpr(pstate, pstate, 0);
 	return (-1);
 }
 
 static void
-itlb_enter_sun4u(u_long vpn, u_long data)
+dtlb_enter_sun4u(u_long vpn, u_long data)
 {
 	u_long reg;
 
 	reg = rdpr(pstate);
 	wrpr(pstate, reg & ~PSTATE_IE, 0);
-	stxa(AA_IMMU_TAR, ASI_IMMU, vpn);
-	stxa(0, ASI_ITLB_DATA_IN_REG, data);
+	stxa(AA_DMMU_TAR, ASI_DMMU,
+	     TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+	stxa(0, ASI_DTLB_DATA_IN_REG, data);
 	membar(Sync);
 	wrpr(pstate, reg, 0);
 }
 
 static void
-dtlb_enter_sun4u(u_long vpn, u_long data)
+itlb_enter_sun4u(u_long vpn, u_long data)
 {
 	u_long reg;
 
 	reg = rdpr(pstate);
 	wrpr(pstate, reg & ~PSTATE_IE, 0);
-	stxa(AA_DMMU_TAR, ASI_DMMU, vpn);
-	stxa(0, ASI_DTLB_DATA_IN_REG, data);
+	stxa(AA_IMMU_TAR, ASI_IMMU,
+	     TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+	stxa(0, ASI_ITLB_DATA_IN_REG, data);
 	membar(Sync);
 	wrpr(pstate, reg, 0);
 }
@@ -539,19 +581,18 @@ tlb_init_sun4u(void)
 	u_int bootcpu;
 	u_int cpu;
 
+	cpu_impl = VER_IMPL(rdpr(ver));
 	bootcpu = UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG));
 	for (child = OF_child(root); child != 0; child = OF_peer(child)) {
-		if (child == -1)
-			panic("%s: can't get child phandle", __func__);
-		if (OF_getprop(child, "device_type", buf, sizeof(buf)) > 0 &&
-		    strcmp(buf, "cpu") == 0) {
-			if (OF_getprop(child, "upa-portid", &cpu,
-			    sizeof(cpu)) == -1 && OF_getprop(child, "portid",
-			    &cpu, sizeof(cpu)) == -1)
-				panic("%s: can't get portid", __func__);
-			if (cpu == bootcpu)
-				break;
-		}
+		if (OF_getprop(child, "device_type", buf, sizeof(buf)) <= 0)
+			continue;
+		if (strcmp(buf, "cpu") != 0)
+			continue;
+		if (OF_getprop(child, cpu_impl < CPU_IMPL_ULTRASPARCIII ?
+		    "upa-portid" : "portid", &cpu, sizeof(cpu)) <= 0)
+			continue;
+		if (cpu == bootcpu)
+			break;
 	}
 	if (cpu != bootcpu)
 		panic("%s: no node for bootcpu?!?!", __func__);
@@ -712,10 +753,14 @@ static void
 pmap_print_tlb_sun4u(void)
 {
 	tte_t tag, tte;
+	u_long pstate;
 	int i;
 
+	pstate = rdpr(pstate);
 	for (i = 0; i < itlb_slot_max; i++) {
-		tte = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG);
+		wrpr(pstate, pstate & ~PSTATE_IE, 0);
+		tte = itlb_get_data_sun4u(i);
+		wrpr(pstate, pstate, 0);
 		if (!(tte & TD_V))
 			continue;
 		tag = ldxa(TLB_DAR_SLOT(i), ASI_ITLB_TAG_READ_REG);
@@ -723,7 +768,9 @@ pmap_print_tlb_sun4u(void)
 		pmap_print_tte_sun4u(tag, tte);
 	}
 	for (i = 0; i < dtlb_slot_max; i++) {
-		tte = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_DATA_ACCESS_REG);
+		wrpr(pstate, pstate & ~PSTATE_IE, 0);
+		tte = dtlb_get_data_sun4u(i);
+		wrpr(pstate, pstate, 0);
 		if (!(tte & TD_V))
 			continue;
 		tag = ldxa(TLB_DAR_SLOT(i), ASI_DTLB_TAG_READ_REG);

From owner-svn-src-all@FreeBSD.ORG  Wed Mar 18 23:52:20 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EFF89106564A;
	Wed, 18 Mar 2009 23:52:20 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DE26C8FC13;
	Wed, 18 Mar 2009 23:52:20 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2INqKQS041761;
	Wed, 18 Mar 2009 23:52:20 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2INqKsE041760;
	Wed, 18 Mar 2009 23:52:20 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903182352.n2INqKsE041760@svn.freebsd.org>
From: Marius Strobl 
Date: Wed, 18 Mar 2009 23:52:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190003 - head/sys/sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Wed, 18 Mar 2009 23:52:21 -0000

Author: marius
Date: Wed Mar 18 23:52:20 2009
New Revision: 190003
URL: http://svn.freebsd.org/changeset/base/190003

Log:
  Add missing const.

Modified:
  head/sys/sparc64/sparc64/db_disasm.c

Modified: head/sys/sparc64/sparc64/db_disasm.c
==============================================================================
--- head/sys/sparc64/sparc64/db_disasm.c	Wed Mar 18 23:50:25 2009	(r190002)
+++ head/sys/sparc64/sparc64/db_disasm.c	Wed Mar 18 23:52:20 2009	(r190003)
@@ -82,14 +82,14 @@ struct sparc_insn {
 	  const char* format;
 };
 
-static const char* regs[] = {
+static const char *const regs[] = {
 	"g0", "g1", "g2", "g3", "g4", "g5", "g6", "g7",
 	"o0", "o1", "o2", "o3", "o4", "o5", "sp", "o7",
 	"l0", "l1", "l2", "l3", "l4", "l5", "l6", "l7",
 	"i0", "i1", "i2", "i3", "i4", "i5", "fp", "i7"
 };
 
-static const char* priv_regs[] = {
+static const char *const priv_regs[] = {
 	"tpc", "tnpc", "tstate", "tt", "tick", "tba", "pstate", "tl",
 	"pil", "cwp", "cansave", "canrestore", "cleanwin", "otherwin",
 	"wstate", "fq",
@@ -97,18 +97,18 @@ static const char* priv_regs[] = {
 	"", "", "", "", "", "", "", "ver"
 };
 
-static const char* state_regs[] = {
+static const char *const state_regs[] = {
 	"y", "", "ccr", "asi", "tick", "pc", "fprs", "asr",
 	"", "", "", "", "", "", "", "",
 	"pcr", "pic", "dcr", "gsr", "set_softint", "clr_softint", "softint",
 	"tick_cmpr", "sys_tick", "sys_tick_cmpr", "", "", "", "", "", "", ""
 };
 
-static const char* ccodes[] = {
+static const char *const ccodes[] = {
 	"fcc0", "fcc1", "fcc2", "fcc3", "icc", "", "xcc", ""
 };
 
-static const char* prefetch[] = {
+static const char *const prefetch[] = {
 	"n_reads", "one_read", "n_writes", "one_write", "page"
 };
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:02:08 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1A53C106568A;
	Thu, 19 Mar 2009 00:02:08 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 051A58FC14;
	Thu, 19 Mar 2009 00:02:08 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J028U4042023;
	Thu, 19 Mar 2009 00:02:08 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J027PR042014;
	Thu, 19 Mar 2009 00:02:07 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903190002.n2J027PR042014@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 00:02:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190004 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:02:09 -0000

Author: marius
Date: Thu Mar 19 00:02:07 2009
New Revision: 190004
URL: http://svn.freebsd.org/changeset/base/190004

Log:
  MFC: r182689
  
  - USIII-based machines can consist of CPUs having different cache
    sizes (and running at different frequencies) so move the cacheinfo
    to the PCPU data. While at it, remove some redundant and/or unused
    members from struct cacheinfo.
  - In sparc64_init don't assume the first CPU node we find in the OFW
    device tree is the BSP.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/cache.h
  stable/7/sys/sparc64/include/pcpu.h
  stable/7/sys/sparc64/sparc64/cache.c
  stable/7/sys/sparc64/sparc64/cheetah.c
  stable/7/sys/sparc64/sparc64/genassym.c
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/mp_exception.S
  stable/7/sys/sparc64/sparc64/mp_machdep.c
  stable/7/sys/sparc64/sparc64/spitfire.c

Modified: stable/7/sys/sparc64/include/cache.h
==============================================================================
--- stable/7/sys/sparc64/include/cache.h	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/include/cache.h	Thu Mar 19 00:02:07 2009	(r190004)
@@ -45,10 +45,6 @@
 #ifndef _MACHINE_CACHE_H_
 #define	_MACHINE_CACHE_H_
 
-#ifndef LOCORE
-#include 
-#endif
-
 #define	DCACHE_COLOR_BITS	(1)
 #define	DCACHE_COLORS		(1 << DCACHE_COLOR_BITS)
 #define	DCACHE_COLOR_MASK	(DCACHE_COLORS - 1)
@@ -80,31 +76,27 @@
  * Cache control information
  */
 struct cacheinfo {
-	u_int	c_enabled;		/* true => cache is enabled */
 	u_int	ic_size;		/* instruction cache */
-	u_int	ic_set;
-	u_int	ic_l2set;
 	u_int	ic_assoc;
 	u_int	ic_linesize;
 	u_int	dc_size;		/* data cache */
-	u_int	dc_l2size;
 	u_int	dc_assoc;
 	u_int	dc_linesize;
 	u_int	ec_size;		/* external cache info */
 	u_int	ec_assoc;
-	u_int	ec_l2set;
 	u_int	ec_linesize;
-	u_int	ec_l2linesize;
 };
 
 #ifdef _KERNEL
 
+struct pcpu;
+
 typedef void cache_enable_t(void);
 typedef void cache_flush_t(void);
 typedef void dcache_page_inval_t(vm_paddr_t pa);
 typedef void icache_page_inval_t(vm_paddr_t pa);
 
-void	cache_init(phandle_t node);
+void cache_init(struct pcpu *pcpu);
 
 cache_enable_t cheetah_cache_enable;
 cache_flush_t cheetah_cache_flush;
@@ -121,8 +113,6 @@ extern cache_flush_t *cache_flush;
 extern dcache_page_inval_t *dcache_page_inval;
 extern icache_page_inval_t *icache_page_inval;
 
-extern struct cacheinfo cache;
-
 #endif /* KERNEL */
 
 #endif /* !LOCORE */

Modified: stable/7/sys/sparc64/include/pcpu.h
==============================================================================
--- stable/7/sys/sparc64/include/pcpu.h	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/include/pcpu.h	Thu Mar 19 00:02:07 2009	(r190004)
@@ -31,6 +31,7 @@
 #define	_MACHINE_PCPU_H_
 
 #include 
+#include 
 #include 
 #include 
 
@@ -43,6 +44,7 @@ struct pmap;
  * point at the globaldata structure.
  */
 #define	PCPU_MD_FIELDS							\
+	struct	cacheinfo pc_cache;					\
 	struct	intr_request pc_irpool[IR_FREE];			\
 	struct	intr_request *pc_irhead;				\
 	struct	intr_request **pc_irtail;				\

Modified: stable/7/sys/sparc64/sparc64/cache.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/cache.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/cache.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -74,6 +74,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 
 #include 
 
@@ -81,8 +82,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-struct cacheinfo cache;
-
 cache_enable_t *cache_enable;
 cache_flush_t *cache_flush;
 dcache_page_inval_t *dcache_page_inval;
@@ -94,33 +93,41 @@ icache_page_inval_t *icache_page_inval;
  * Fill in the cache parameters using the cpu node.
  */
 void
-cache_init(phandle_t node)
+cache_init(struct pcpu *pcpu)
 {
 	u_long set;
 
-	if (OF_GET(node, "icache-size", cache.ic_size) == -1 ||
-	    OF_GET(node, "icache-line-size", cache.ic_linesize) == -1 ||
-	    OF_GET(node, "icache-associativity", cache.ic_assoc) == -1 ||
-	    OF_GET(node, "dcache-size", cache.dc_size) == -1 ||
-	    OF_GET(node, "dcache-line-size", cache.dc_linesize) == -1 ||
-	    OF_GET(node, "dcache-associativity", cache.dc_assoc) == -1 ||
-	    OF_GET(node, "ecache-size", cache.ec_size) == -1 ||
-	    OF_GET(node, "ecache-line-size", cache.ec_linesize) == -1 ||
-	    OF_GET(node, "ecache-associativity", cache.ec_assoc) == -1)
+	if (OF_GET(pcpu->pc_node, "icache-size",
+	    pcpu->pc_cache.ic_size) == -1 ||
+	    OF_GET(pcpu->pc_node, "icache-line-size",
+	    pcpu->pc_cache.ic_linesize) == -1 ||
+	    OF_GET(pcpu->pc_node, "icache-associativity",
+	    pcpu->pc_cache.ic_assoc) == -1 ||
+	    OF_GET(pcpu->pc_node, "dcache-size",
+	    pcpu->pc_cache.dc_size) == -1 ||
+	    OF_GET(pcpu->pc_node, "dcache-line-size",
+	    pcpu->pc_cache.dc_linesize) == -1 ||
+	    OF_GET(pcpu->pc_node, "dcache-associativity",
+	    pcpu->pc_cache.dc_assoc) == -1 ||
+	    OF_GET(pcpu->pc_node, "ecache-size",
+	    pcpu->pc_cache.ec_size) == -1 ||
+	    OF_GET(pcpu->pc_node, "ecache-line-size",
+	    pcpu->pc_cache.ec_linesize) == -1 ||
+	    OF_GET(pcpu->pc_node, "ecache-associativity",
+	    pcpu->pc_cache.ec_assoc) == -1)
 		panic("cache_init: could not retrieve cache parameters");
 
-	cache.ic_set = cache.ic_size / cache.ic_assoc;
-	cache.ic_l2set = ffs(cache.ic_set) - 1;
-	if ((cache.ic_set & ~(1UL << cache.ic_l2set)) != 0)
+	set = pcpu->pc_cache.ic_size / pcpu->pc_cache.ic_assoc;
+	if ((set & ~(1UL << (ffs(set) - 1))) != 0)
 		panic("cache_init: I$ set size not a power of 2");
-	cache.dc_l2size = ffs(cache.dc_size) - 1;
-	if ((cache.dc_size & ~(1UL << cache.dc_l2size)) != 0)
+	if ((pcpu->pc_cache.dc_size &
+	    ~(1UL << (ffs(pcpu->pc_cache.dc_size) - 1))) != 0)
 		panic("cache_init: D$ size not a power of 2");
-	if (((cache.dc_size / cache.dc_assoc) / PAGE_SIZE) != DCACHE_COLORS)
+	if (((pcpu->pc_cache.dc_size / pcpu->pc_cache.dc_assoc) /
+	    PAGE_SIZE) != DCACHE_COLORS)
 		panic("cache_init: too many D$ colors");
-	set = cache.ec_size / cache.ec_assoc;
-	cache.ec_l2set = ffs(set) - 1;
-	if ((set & ~(1UL << cache.ec_l2set)) != 0)
+	set = pcpu->pc_cache.ec_size / pcpu->pc_cache.ec_assoc;
+	if ((set & ~(1UL << (ffs(set) - 1))) != 0)
 		panic("cache_init: E$ set size not a power of 2");
 
 	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII) {

Modified: stable/7/sys/sparc64/sparc64/cheetah.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/cheetah.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/cheetah.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -72,7 +72,7 @@ cheetah_dcache_page_inval(vm_paddr_t spa
 
 	KASSERT((spa & PAGE_MASK) == 0, ("%s: pa not page aligned", __func__));
 	cookie = ipi_dcache_page_inval(tl_ipi_cheetah_dcache_page_inval, spa);
-	for (pa = spa; pa < spa + PAGE_SIZE; pa += cache.dc_linesize)
+	for (pa = spa; pa < spa + PAGE_SIZE; pa += PCPU_GET(cache.dc_linesize))
 		stxa_sync(pa, ASI_DCACHE_INVALIDATE, 0);
 	ipi_wait(cookie);
 }

Modified: stable/7/sys/sparc64/sparc64/genassym.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/genassym.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -188,11 +188,12 @@ ASSYM(PM_TSB_MISS_COUNT, offsetof(struct
 ASSYM(PM_TSB_CAP_MISS_COUNT, offsetof(struct pmap, pm_tsb_cap_miss_count));
 #endif
 #ifdef SUN4U
+ASSYM(PC_CACHE, offsetof(struct pcpu, pc_cache));
 ASSYM(PC_MID, offsetof(struct pcpu, pc_mid));
+ASSYM(PC_PMAP, offsetof(struct pcpu, pc_pmap));
 ASSYM(PC_TLB_CTX, offsetof(struct pcpu, pc_tlb_ctx));
 ASSYM(PC_TLB_CTX_MAX, offsetof(struct pcpu, pc_tlb_ctx_max));
 ASSYM(PC_TLB_CTX_MIN, offsetof(struct pcpu, pc_tlb_ctx_min));
-ASSYM(PC_PMAP, offsetof(struct pcpu, pc_pmap));
 #endif
 
 ASSYM(IR_NEXT, offsetof(struct intr_request, ir_next));

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -279,6 +279,7 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	phandle_t child;
 	phandle_t root;
 	u_int clock;
+	uint32_t portid;
 
 	end = 0;
 	kmdp = NULL;
@@ -314,12 +315,40 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 
 	init_param1();
 
+	/*
+	 * Prime our per-CPU data page for use.  Note, we are using it for
+	 * our stack, so don't pass the real size (PAGE_SIZE) to pcpu_init
+	 * or it'll zero it out from under us.
+	 */
+	pc = (struct pcpu *)(pcpu0 + (PCPU_PAGES * PAGE_SIZE)) - 1;
+	pcpu_init(pc, 0, sizeof(struct pcpu));
+	pc->pc_addr = (vm_offset_t)pcpu0;
+	pc->pc_mid = UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG));
+	pc->pc_tlb_ctx = TLB_CTX_USER_MIN;
+	pc->pc_tlb_ctx_min = TLB_CTX_USER_MIN;
+	pc->pc_tlb_ctx_max = TLB_CTX_USER_MAX;
+
+	/*
+	 * Determine the OFW node (and ensure the
+	 * BSP is in the device tree in the first place).
+	 */
+	pc->pc_node = 0;
 	root = OF_peer(0);
 	for (child = OF_child(root); child != 0; child = OF_peer(child)) {
-		OF_getprop(child, "device_type", type, sizeof(type));
-		if (strcmp(type, "cpu") == 0)
+		if (OF_getprop(child, "device_type", type, sizeof(type)) <= 0)
+			continue;
+		if (strcmp(type, "cpu") != 0)
+			continue;
+		if (OF_getprop(child, cpu_impl < CPU_IMPL_ULTRASPARCIII ?
+		    "upa-portid" : "portid", &portid, sizeof(portid)) <= 0)
+			continue;
+		if (portid == pc->pc_mid) {
+			pc->pc_node = child;
 			break;
+		}
 	}
+	if (pc->pc_node == 0)
+		OF_exit();
 
 	/*
 	 * Initialize the tick counter.  Must be before the console is inited
@@ -353,8 +382,8 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 		end = (vm_offset_t)_end;
 	}
 
-	cache_init(child);
-	uma_set_align(cache.dc_linesize - 1);
+	cache_init(pc);
+	uma_set_align(pc->pc_cache.dc_linesize - 1);
 
 	cpu_block_copy = bcopy;
 	cpu_block_zero = bzero;
@@ -397,7 +426,7 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	intr_init1();
 
 	/*
-	 * Initialize proc0 stuff (p_contested needs to be done early).
+	 * Initialize proc0, set kstack0, frame0, curthread and curpcb.
 	 */
 	proc_linkup0(&proc0, &thread0);
 	proc0.p_md.md_sigtramp = NULL;
@@ -407,22 +436,8 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	    (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;
 	frame0.tf_tstate = TSTATE_IE | TSTATE_PEF | TSTATE_PRIV;
 	thread0.td_frame = &frame0;
-
-	/*
-	 * Prime our per-cpu data page for use.  Note, we are using it for our
-	 * stack, so don't pass the real size (PAGE_SIZE) to pcpu_init or
-	 * it'll zero it out from under us.
-	 */
-	pc = (struct pcpu *)(pcpu0 + (PCPU_PAGES * PAGE_SIZE)) - 1;
-	pcpu_init(pc, 0, sizeof(struct pcpu));
 	pc->pc_curthread = &thread0;
 	pc->pc_curpcb = thread0.td_pcb;
-	pc->pc_mid = UPA_CR_GET_MID(ldxa(0, ASI_UPA_CONFIG_REG));
-	pc->pc_addr = (vm_offset_t)pcpu0;
-	pc->pc_node = child;
-	pc->pc_tlb_ctx = TLB_CTX_USER_MIN;
-	pc->pc_tlb_ctx_min = TLB_CTX_USER_MIN;
-	pc->pc_tlb_ctx_max = TLB_CTX_USER_MAX;
 
 	/*
 	 * Initialize global registers.

Modified: stable/7/sys/sparc64/sparc64/mp_exception.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_exception.S	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/mp_exception.S	Thu Mar 19 00:02:07 2009	(r190004)
@@ -57,9 +57,8 @@ ENTRY(tl_ipi_spitfire_dcache_page_inval)
 	ldx	[%g5 + ICA_PA], %g6
 	srlx	%g6, PAGE_SHIFT - DC_TAG_SHIFT, %g6
 
-	SET(cache, %g3, %g2)
-	lduw	[%g2 + DC_SIZE], %g3
-	lduw	[%g2 + DC_LINESIZE], %g4
+	lduw	[PCPU(CACHE) + DC_SIZE], %g3
+	lduw	[PCPU(CACHE) + DC_LINESIZE], %g4
 	sub	%g3, %g4, %g2
 
 1:	ldxa	[%g2] ASI_DCACHE_TAG, %g1
@@ -98,9 +97,8 @@ ENTRY(tl_ipi_spitfire_icache_page_inval)
 	ldx	[%g5 + ICA_PA], %g6
 	srlx	%g6, PAGE_SHIFT - IC_TAG_SHIFT, %g6
 
-	SET(cache, %g3, %g2)
-	lduw	[%g2 + IC_SIZE], %g3
-	lduw	[%g2 + IC_LINESIZE], %g4
+	lduw	[PCPU(CACHE) + IC_SIZE], %g3
+	lduw	[PCPU(CACHE) + IC_LINESIZE], %g4
 	sub	%g3, %g4, %g2
 
 1:	ldda	[%g2] ASI_ICACHE_TAG, %g0 /*, %g1 */
@@ -140,8 +138,7 @@ ENTRY(tl_ipi_cheetah_dcache_page_inval)
 	set	PAGE_SIZE, %g2
 	add	%g1, %g2, %g3
 
-	SET(cache, %g4, %g2)
-	lduw	[%g2 + DC_LINESIZE], %g2
+	lduw	[PCPU(CACHE) + DC_LINESIZE], %g2
 
 1:	stxa	%g0, [%g1] ASI_DCACHE_INVALIDATE
 	membar	#Sync

Modified: stable/7/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_machdep.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -294,6 +294,8 @@ cpu_mp_start(void)
 		pc->pc_mid = mid;
 		pc->pc_node = child;
 
+		cache_init(pc);
+
 		all_cpus |= 1 << cpuid;
 		intr_add_cpu(cpuid);
 	}

Modified: stable/7/sys/sparc64/sparc64/spitfire.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/spitfire.c	Wed Mar 18 23:52:20 2009	(r190003)
+++ stable/7/sys/sparc64/sparc64/spitfire.c	Thu Mar 19 00:02:07 2009	(r190004)
@@ -72,9 +72,11 @@ spitfire_cache_flush(void)
 {
 	u_long addr;
 
-	for (addr = 0; addr < cache.dc_size; addr += cache.dc_linesize)
+	for (addr = 0; addr < PCPU_GET(cache.dc_size);
+	    addr += PCPU_GET(cache.dc_linesize))
 		stxa_sync(addr, ASI_DCACHE_TAG, 0);
-	for (addr = 0; addr < cache.ic_size; addr += cache.ic_linesize)
+	for (addr = 0; addr < PCPU_GET(cache.ic_size);
+	    addr += PCPU_GET(cache.ic_linesize))
 		stxa_sync(addr, ASI_ICACHE_TAG, 0);
 }
 
@@ -93,7 +95,8 @@ spitfire_dcache_page_inval(vm_paddr_t pa
 	PMAP_STATS_INC(spitfire_dcache_npage_inval);
 	target = pa >> (PAGE_SHIFT - DC_TAG_SHIFT);
 	cookie = ipi_dcache_page_inval(tl_ipi_spitfire_dcache_page_inval, pa);
-	for (addr = 0; addr < cache.dc_size; addr += cache.dc_linesize) {
+	for (addr = 0; addr < PCPU_GET(cache.dc_size);
+	    addr += PCPU_GET(cache.dc_linesize)) {
 		tag = ldxa(addr, ASI_DCACHE_TAG);
 		if (((tag >> DC_VALID_SHIFT) & DC_VALID_MASK) == 0)
 			continue;
@@ -121,7 +124,8 @@ spitfire_icache_page_inval(vm_paddr_t pa
 	PMAP_STATS_INC(spitfire_icache_npage_inval);
 	target = pa >> (PAGE_SHIFT - IC_TAG_SHIFT);
 	cookie = ipi_icache_page_inval(tl_ipi_spitfire_icache_page_inval, pa);
-	for (addr = 0; addr < cache.ic_size; addr += cache.ic_linesize) {
+	for (addr = 0; addr < PCPU_GET(cache.ic_size);
+	    addr += PCPU_GET(cache.ic_linesize)) {
 		__asm __volatile("ldda [%1] %2, %%g0" /*, %g1 */
 		    : "=r" (tag) : "r" (addr), "n" (ASI_ICACHE_TAG));
 		if (((tag >> IC_VALID_SHIFT) & IC_VALID_MASK) == 0)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:04:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 35458106564A;
	Thu, 19 Mar 2009 00:04:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 06ADF8FC16;
	Thu, 19 Mar 2009 00:04:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J04UcC042126;
	Thu, 19 Mar 2009 00:04:30 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J04Ukt042125;
	Thu, 19 Mar 2009 00:04:30 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903190004.n2J04Ukt042125@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 00:04:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190005 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sun4v/sun4v
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:04:32 -0000

Author: marius
Date: Thu Mar 19 00:04:30 2009
New Revision: 190005
URL: http://svn.freebsd.org/changeset/base/190005

Log:
  MFC: r182691
  
  Resurrect clock.c from r164371.

Added:
  stable/7/sys/sun4v/sun4v/clock.c
     - copied unchanged from r182691, head/sys/sun4v/sun4v/clock.c
Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Copied: stable/7/sys/sun4v/sun4v/clock.c (from r182691, head/sys/sun4v/sun4v/clock.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/7/sys/sun4v/sun4v/clock.c	Thu Mar 19 00:04:30 2009	(r190005, copy of r182691, head/sys/sun4v/sun4v/clock.c)
@@ -0,0 +1,67 @@
+/*-
+ * Copyright (c) 2001 Jake Burkholder.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (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$
+ */
+
+#include 
+#include 
+#include 
+
+u_long tick_increment;
+u_long tick_freq;
+u_long tick_MHz;
+
+void
+DELAY(int n)
+{
+	u_long start, end;
+
+	start = rd(tick);
+	if (n < 0)
+		return;
+	end = start + (u_long)n * tick_MHz;
+	while (rd(tick) < end)
+		;
+}
+
+void
+cpu_startprofclock(void)
+{
+}
+
+void
+cpu_stopprofclock(void)
+{
+}
+
+int
+sysbeep(int pitch, int period)
+{
+	/*
+	 * XXX: function exists to enable RAID drivers to compile at the moment.
+	 */
+	return (0);
+}

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:28:54 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D3AB5106566C;
	Thu, 19 Mar 2009 00:28:54 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C15288FC15;
	Thu, 19 Mar 2009 00:28:54 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J0SsWc042657;
	Thu, 19 Mar 2009 00:28:54 GMT (envelope-from sam@svn.freebsd.org)
Received: (from sam@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J0SsTa042656;
	Thu, 19 Mar 2009 00:28:54 GMT (envelope-from sam@svn.freebsd.org)
Message-Id: <200903190028.n2J0SsTa042656@svn.freebsd.org>
From: Sam Leffler 
Date: Thu, 19 Mar 2009 00:28:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190006 - in stable/7/usr.sbin: . makefs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:28:55 -0000

Author: sam
Date: Thu Mar 19 00:28:54 2009
New Revision: 190006
URL: http://svn.freebsd.org/changeset/base/190006

Log:
  MFC makefs: a tool for creating a file system image from a directory tree

Added:
  stable/7/usr.sbin/makefs/   (props changed)
     - copied from r189999, head/usr.sbin/makefs/
Modified:
  stable/7/usr.sbin/Makefile

Modified: stable/7/usr.sbin/Makefile
==============================================================================
--- stable/7/usr.sbin/Makefile	Thu Mar 19 00:04:30 2009	(r190005)
+++ stable/7/usr.sbin/Makefile	Thu Mar 19 00:28:54 2009	(r190006)
@@ -86,6 +86,7 @@ SUBDIR=	${_ac} \
 	${_lptcontrol} \
 	${_mailstats} \
 	mailwrapper \
+	makefs \
 	${_makemap} \
 	manctl \
 	memcontrol \

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:44:22 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F13B91065672;
	Thu, 19 Mar 2009 00:44:22 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DFD3F8FC17;
	Thu, 19 Mar 2009 00:44:22 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J0iMYk043004;
	Thu, 19 Mar 2009 00:44:22 GMT (envelope-from imp@svn.freebsd.org)
Received: (from imp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J0iMlD043003;
	Thu, 19 Mar 2009 00:44:22 GMT (envelope-from imp@svn.freebsd.org)
Message-Id: <200903190044.n2J0iMlD043003@svn.freebsd.org>
From: Warner Losh 
Date: Thu, 19 Mar 2009 00:44:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190007 - head
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:44:23 -0000

Author: imp
Date: Thu Mar 19 00:44:22 2009
New Revision: 190007
URL: http://svn.freebsd.org/changeset/base/190007

Log:
  Add usr.bin/ar to the list of cross tools.  Before, when we had gnu
  ar, it was built in the gnu/usr.bin/binutils tree.  Now it isn't.
  
  Submitted by:	John Hein

Modified:
  head/Makefile.inc1

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Thu Mar 19 00:28:54 2009	(r190006)
+++ head/Makefile.inc1	Thu Mar 19 00:44:22 2009	(r190007)
@@ -1017,6 +1017,7 @@ cross-tools:
 .for _tool in \
     gnu/usr.bin/binutils \
     gnu/usr.bin/cc \
+    usr.bin/ar \
     usr.bin/sed \
     usr.bin/xlint/lint1 usr.bin/xlint/lint2 usr.bin/xlint/xlint \
     ${_btxld} \

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:52:30 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ED7E6106564A;
	Thu, 19 Mar 2009 00:52:30 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BFB818FC19;
	Thu, 19 Mar 2009 00:52:30 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J0qUTA043251;
	Thu, 19 Mar 2009 00:52:30 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J0qUSj043249;
	Thu, 19 Mar 2009 00:52:30 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903190052.n2J0qUSj043249@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Thu, 19 Mar 2009 00:52:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190008 - in stable/7/sys: . contrib/pf dev/cxgb dev/sis
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:52:31 -0000

Author: yongari
Date: Thu Mar 19 00:52:30 2009
New Revision: 190008
URL: http://svn.freebsd.org/changeset/base/190008

Log:
  MFC r185784:
    Fix a long standing VLAN tagged frame handling bug.
    When VLAN tagged frame is received the hardware sets 'LONG' bit of
    Rx status word. It is always set when the size of received frame
    exceeded 1518 bytes, including CRC. This VLAN tagged frame clears
    'OK' bit of Rx status word such that driver should not rely on 'OK'
    bit of Rx status word to pass the VLAN tagged frame to upper stack.
  
    To fix the bug, don't use SIS_CMDSTS_PKT_OK for Rx error check and
    introduce SIS_RXSTAT_ERROR macro that checks Rx errors. If we are
    configured to accept VLAN tagged frames and the received frame size
    is less than or equal to maximum allowed length of VLAN tagged
    frame, clear 'LONG' bit of Rx status word before checking Rx
    errors.
  
    Reported by:	Vladimir Ermako < samflanker <> gmail DOT com >
    Tested by:	Vladimir Ermako < samflanker <> gmail DOT com >

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/sis/if_sis.c
  stable/7/sys/dev/sis/if_sisreg.h

Modified: stable/7/sys/dev/sis/if_sis.c
==============================================================================
--- stable/7/sys/dev/sis/if_sis.c	Thu Mar 19 00:44:22 2009	(r190007)
+++ stable/7/sys/dev/sis/if_sis.c	Thu Mar 19 00:52:30 2009	(r190008)
@@ -1431,7 +1431,11 @@ sis_rxeof(struct sis_softc *sc)
 		 * it should simply get re-used next time this descriptor
 	 	 * comes up in the ring.
 		 */
-		if (!(rxstat & SIS_CMDSTS_PKT_OK)) {
+		if ((ifp->if_capenable & IFCAP_VLAN_MTU) != 0 &&
+		    total_len <= (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN -
+		    ETHER_CRC_LEN))
+			rxstat &= ~SIS_RXSTAT_GIANT;
+		if (SIS_RXSTAT_ERROR(rxstat) != 0) {
 			ifp->if_ierrors++;
 			if (rxstat & SIS_RXSTAT_COLL)
 				ifp->if_collisions++;

Modified: stable/7/sys/dev/sis/if_sisreg.h
==============================================================================
--- stable/7/sys/dev/sis/if_sisreg.h	Thu Mar 19 00:44:22 2009	(r190007)
+++ stable/7/sys/dev/sis/if_sisreg.h	Thu Mar 19 00:52:30 2009	(r190008)
@@ -348,6 +348,11 @@ struct sis_desc {
 #define SIS_RXSTAT_OVERRUN	0x02000000
 #define SIS_RXSTAT_RX_ABORT	0x04000000
 
+#define	SIS_RXSTAT_ERROR(x)						\
+	((x) & (SIS_RXSTAT_RX_ABORT | SIS_RXSTAT_OVERRUN |		\
+	SIS_RXSTAT_GIANT | SIS_RXSTAT_SYMBOLERR | SIS_RXSTAT_RUNT |	\
+	SIS_RXSTAT_CRCERR | SIS_RXSTAT_ALIGNERR))
+
 #define SIS_DSTCLASS_REJECT	0x00000000
 #define SIS_DSTCLASS_UNICAST	0x00800000
 #define SIS_DSTCLASS_MULTICAST	0x01000000

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 00:55:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 700F71065675;
	Thu, 19 Mar 2009 00:55:27 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5C80C8FC1E;
	Thu, 19 Mar 2009 00:55:27 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J0tRL9043361;
	Thu, 19 Mar 2009 00:55:27 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J0tRqc043360;
	Thu, 19 Mar 2009 00:55:27 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903190055.n2J0tRqc043360@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Thu, 19 Mar 2009 00:55:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190009 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/sis
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 00:55:28 -0000

Author: yongari
Date: Thu Mar 19 00:55:27 2009
New Revision: 190009
URL: http://svn.freebsd.org/changeset/base/190009

Log:
  MFC r188550:
    Receving VLAN oversized frames raise SIS_ISR_RX_ERR interrupt, so
    make sis_rxeof() handle that too. Previously it used to receive the
    frame and reset controller.
  
    PR:	kern/131414

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/sis/if_sis.c

Modified: stable/7/sys/dev/sis/if_sis.c
==============================================================================
--- stable/7/sys/dev/sis/if_sis.c	Thu Mar 19 00:52:30 2009	(r190008)
+++ stable/7/sys/dev/sis/if_sis.c	Thu Mar 19 00:55:27 2009	(r190009)
@@ -1662,10 +1662,11 @@ sis_intr(void *arg)
 		     SIS_ISR_TX_OK | SIS_ISR_TX_IDLE) )
 			sis_txeof(sc);
 
-		if (status & (SIS_ISR_RX_DESC_OK|SIS_ISR_RX_OK|SIS_ISR_RX_IDLE))
+		if (status & (SIS_ISR_RX_DESC_OK | SIS_ISR_RX_OK |
+		    SIS_ISR_RX_ERR | SIS_ISR_RX_IDLE))
 			sis_rxeof(sc);
 
-		if (status & (SIS_ISR_RX_ERR | SIS_ISR_RX_OFLOW))
+		if (status & SIS_ISR_RX_OFLOW)
 			sis_rxeoc(sc);
 
 		if (status & (SIS_ISR_RX_IDLE))

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 01:07:22 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 507B31065672;
	Thu, 19 Mar 2009 01:07:22 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 39DF08FC18;
	Thu, 19 Mar 2009 01:07:22 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J17LGl043612;
	Thu, 19 Mar 2009 01:07:21 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J17LhO043610;
	Thu, 19 Mar 2009 01:07:21 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903190107.n2J17LhO043610@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Thu, 19 Mar 2009 01:07:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190010 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/txp
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 01:07:23 -0000

Author: yongari
Date: Thu Mar 19 01:07:21 2009
New Revision: 190010
URL: http://svn.freebsd.org/changeset/base/190010

Log:
  MFC r189022:
    Update to latest 3Com firmware image. The latest fimware is
    required to make 3CR990 familiy controllers run on NV flash
    firmware version 03.001.008.
    The latest firmware added HMAC digest information so teach txp(4)
    to pass them to sleep image before downloading is started.
  
    While I'm here restore previous IMR/IER register if firmware
    downloading have failed.
  
    PR:	kern/89876, kern/132047

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/txp/3c990img.h
  stable/7/sys/dev/txp/if_txp.c
  stable/7/sys/dev/txp/if_txpreg.h

Modified: stable/7/sys/dev/txp/3c990img.h
==============================================================================
--- stable/7/sys/dev/txp/3c990img.h	Thu Mar 19 00:55:27 2009	(r190009)
+++ stable/7/sys/dev/txp/3c990img.h	Thu Mar 19 01:07:21 2009	(r190010)
@@ -1,22 +1,17 @@
-/*	$OpenBSD: 3c990img.h,v 1.2 2001/06/05 02:15:17 jason Exp $	*/
-/*	$FreeBSD$ */
+/*	$FreeBSD$	*/	
 
 /*-
- * Copyright (C) 1999-2001 3Com, Inc.
- * All rights reserved.
+ * Copyright 1999-2003 3Com Corporation.  All Rights Reserved.    
  *
- * Redistribution and use in source and binary forms of the 3CR990 microcode
- * are permitted provided
- * that the following conditions are met:
+ * Redistribution and use in source and binary forms of the 3c990img.h
+ * microcode software are permitted provided that the following conditions
+ * are met:
  * 1. Redistribution of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
  * 2. Redistribution in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes 3CR990 microcode
- * 4. The name of 3Com may not be used to endorse or promote products
+ * 3. The name of 3Com may not be used to endorse or promote products
  *    derived from this software without specific prior written permission
  *
  * THIS SOFTWARE IS PROVIDED BY 3COM ``AS IS'' AND ANY EXPRESS OR
@@ -30,735 +25,458 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * USER ACKNOWLEDGES AND AGREES THAT PURCHASE OR USE OF THE 3CR990 microcode
- * SOFTWARE WILL NOT CREATE OR GIVE GROUNDS FOR A LICENSE BY IMPLICATION,
- * ESTOPPEL, OR OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS (PATENT, COPYRIGHT,
- * TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT) EMBODIED IN ANY OTHER
- * 3COM HARDWARE OR SOFTWARE EITHER SOLELY OR IN COMBINATION WITH THE 3CR990
- * microcode SOFTWARE
- */
+ * USER ACKNOWLEDGES AND AGREES THAT PURCHASE OR USE OF THE 3c990img.h
+ * MICROCODE SOFTWARE WILL NOT CREATE OR GIVE GROUNDS FOR A LICENSE BY
+ * IMPLICATION, ESTOPPEL, OR OTHERWISE IN ANY INTELLECTUAL PROPERTY RIGHTS
+ * (PATENT, COPYRIGHT, TRADE SECRET, MASK WORK, OR OTHER PROPRIETARY RIGHT)
+ * EMBODIED IN ANY OTHER 3COM HARDWARE OR SOFTWARE EITHER SOLELY OR IN
+ * COMBINATION WITH THE 3c990img.h MICROCODE SOFTWARE
+ */ 
 
 unsigned char tc990image[] = {
 0x54, 0x59, 0x50, 0x48, 0x4f, 0x4f, 0x4e, 0x00, 0x02, 0x00, 0x00, 0x00, 
-0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x40, 0x01, 0x00, 0x00, 
-0xd6, 0xbb, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x39, 0x00, 0x00, 0xea, 
-0x05, 0x00, 0x00, 0xea, 0x04, 0x00, 0x00, 0xea, 0x03, 0x00, 0x00, 0xea, 
-0x02, 0x00, 0x00, 0xea, 0x01, 0x00, 0x00, 0xea, 0x4a, 0x05, 0x00, 0xea, 
-0xb4, 0x1d, 0x00, 0xea, 0x07, 0x00, 0x2d, 0xe9, 0x0e, 0x00, 0xa0, 0xe1, 
-0x00, 0x10, 0x0f, 0xe1, 0xd0, 0x20, 0x9f, 0xe5, 0x12, 0xff, 0x2f, 0xe1, 
-0xfe, 0xff, 0xff, 0xea, 0x01, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x81, 0xe4, 
-0x01, 0x00, 0x50, 0xe1, 0xfc, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 
-0x00, 0xa0, 0xa0, 0xe1, 0x0e, 0xb0, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 
-0xa8, 0x10, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 0xa4, 0x10, 0x9f, 0xe5, 
-0x00, 0x00, 0x81, 0xe5, 0x01, 0x16, 0xa0, 0xe3, 0x00, 0x00, 0x91, 0xe5, 
-0x01, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x81, 0xe5, 0xd7, 0x00, 0xa0, 0xe3, 
-0x00, 0xf0, 0x21, 0xe1, 0x88, 0xd0, 0x9f, 0xe5, 0xdb, 0x00, 0xa0, 0xe3, 
-0x00, 0xf0, 0x21, 0xe1, 0x7c, 0xd0, 0x9f, 0xe5, 0xd2, 0x00, 0xa0, 0xe3, 
-0x00, 0xf0, 0x21, 0xe1, 0x74, 0xd0, 0x9f, 0xe5, 0xd1, 0x00, 0xa0, 0xe3, 
-0x00, 0xf0, 0x21, 0xe1, 0x6c, 0xd0, 0x9f, 0xe5, 0x8a, 0x1d, 0x00, 0xeb, 
-0xd3, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 0x60, 0xd0, 0x9f, 0xe5, 
-0x60, 0x00, 0x9f, 0xe5, 0x60, 0x10, 0x9f, 0xe5, 0x60, 0x20, 0x9f, 0xe5, 
-0xdb, 0xff, 0xff, 0xeb, 0x5c, 0x00, 0x9f, 0xe5, 0x5c, 0x10, 0x9f, 0xe5, 
-0x00, 0x20, 0xa0, 0xe3, 0xd7, 0xff, 0xff, 0xeb, 0x54, 0x00, 0x9f, 0xe5, 
-0x54, 0x10, 0x9f, 0xe5, 0xd4, 0xff, 0xff, 0xeb, 0x0a, 0x00, 0xa0, 0xe1, 
-0x0b, 0xf0, 0xa0, 0xe1, 0xd3, 0x10, 0xa0, 0xe3, 0x01, 0xf0, 0x21, 0xe1, 
-0xd4, 0xff, 0xff, 0xeb, 0x3c, 0xa0, 0x9f, 0xe5, 0x1a, 0xff, 0x2f, 0xe1, 
-0xc6, 0xff, 0xff, 0xea, 0x01, 0x2e, 0xff, 0xff, 0x0c, 0x00, 0x10, 0x00, 
-0x1c, 0x00, 0x10, 0x00, 0x3c, 0x38, 0x00, 0x80, 0xfc, 0x37, 0x00, 0x80, 
-0xfc, 0x3f, 0x00, 0x80, 0xfc, 0x33, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 
-0x00, 0x30, 0x00, 0x80, 0xad, 0xde, 0xad, 0xde, 0xc8, 0xc2, 0x00, 0x00, 
-0x20, 0xab, 0x20, 0x40, 0x5c, 0x2b, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x80, 
-0xd1, 0xd1, 0x21, 0x40, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 
-0x00, 0x00, 0x00, 0x00, 0x40, 0x7b, 0x00, 0x00, 0x4d, 0x42, 0x00, 0x00, 
-0x60, 0x01, 0xff, 0xff, 0xb0, 0xb5, 0x07, 0x1c, 0x12, 0x4c, 0x00, 0x25, 
-0x60, 0x6b, 0x00, 0x28, 0x1d, 0xd0, 0x38, 0x1c, 0x10, 0x49, 0x06, 0xf0, 
-0x55, 0xff, 0x61, 0x6b, 0xc0, 0x46, 0x08, 0x60, 0x00, 0x28, 0x14, 0xd0, 
-0x38, 0x01, 0x0d, 0x49, 0x40, 0x18, 0x19, 0x23, 0xdb, 0x01, 0xc0, 0x18, 
-0x41, 0x6b, 0x80, 0x29, 0x0b, 0xd2, 0x01, 0x31, 0x41, 0x63, 0x60, 0x6b, 
-0xc1, 0x69, 0xc0, 0x46, 0x61, 0x63, 0x39, 0x07, 0x41, 0x60, 0xc7, 0x62, 
-0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x28, 0x1c, 0xfa, 0xe7, 0x00, 0x00, 
-0x38, 0x17, 0x00, 0x80, 0xee, 0x05, 0x00, 0x00, 0x58, 0x1d, 0x00, 0x80, 
-0x02, 0x49, 0x4a, 0x6b, 0xc0, 0x46, 0xc2, 0x61, 0x48, 0x63, 0x70, 0x47, 
-0x38, 0x17, 0x00, 0x80, 0x00, 0x20, 0x02, 0x49, 0xc0, 0x46, 0x48, 0x61, 
-0x70, 0x47, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x80, 
-0x00, 0xb5, 0x00, 0x20, 0x04, 0x49, 0xc0, 0x46, 0x48, 0x61, 0x04, 0x48, 
-0x04, 0x49, 0x09, 0x68, 0x07, 0xf0, 0xa3, 0xf9, 0x08, 0xbc, 0x18, 0x47, 
-0x9c, 0x04, 0x00, 0x80, 0xdd, 0x01, 0xff, 0xff, 0x74, 0x76, 0x21, 0x40, 
-0xf0, 0xb5, 0x04, 0x1c, 0x41, 0x4e, 0x00, 0x25, 0x70, 0x69, 0x00, 0x28, 
-0x03, 0xd1, 0xff, 0xf7, 0xa7, 0xff, 0x07, 0x1c, 0x03, 0xd1, 0x28, 0x1c, 
-0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x3c, 0x21, 0x00, 0x20, 0x79, 0x60, 
-0xbd, 0x60, 0x06, 0xf0, 0x2f, 0xff, 0x00, 0x20, 0x79, 0x68, 0x00, 0x29, 
-0x06, 0xd9, 0x39, 0x68, 0xc0, 0x46, 0x0d, 0x54, 0x79, 0x68, 0x01, 0x30, 
-0x81, 0x42, 0xf8, 0xd8, 0x39, 0x68, 0x00, 0x20, 0xff, 0x23, 0x0a, 0x18, 
-0x13, 0x70, 0x43, 0x08, 0x05, 0xd3, 0x43, 0x08, 0x5b, 0x00, 0x1b, 0x19, 
-0x1b, 0x89, 0x1b, 0x0a, 0x05, 0xe0, 0x43, 0x08, 0x5b, 0x00, 0x1b, 0x19, 
-0x1b, 0x89, 0x1b, 0x06, 0x1b, 0x0e, 0x93, 0x71, 0x01, 0x30, 0x06, 0x28, 
-0xea, 0xd3, 0xc1, 0x20, 0xc0, 0x00, 0x08, 0x73, 0x03, 0x0a, 0x4b, 0x73, 
-0x38, 0x68, 0xff, 0x21, 0x01, 0x31, 0x81, 0x73, 0x0b, 0x0a, 0xc3, 0x73, 
-0x08, 0x22, 0x02, 0x74, 0x13, 0x0a, 0x43, 0x74, 0x06, 0x22, 0x82, 0x74, 
-0x04, 0x22, 0xc2, 0x74, 0x01, 0x75, 0x0b, 0x0a, 0x43, 0x75, 0x0e, 0x30, 
-0x00, 0x21, 0x4a, 0x00, 0x13, 0x19, 0x1d, 0x89, 0x16, 0x18, 0x35, 0x72, 
-0x2b, 0x0a, 0x73, 0x72, 0x00, 0x25, 0x17, 0x4e, 0x92, 0x19, 0xd5, 0x81, 
-0x01, 0x31, 0x03, 0x29, 0xf1, 0xd3, 0x21, 0x68, 0xc0, 0x46, 0x81, 0x73, 
-0x0b, 0x0a, 0xc3, 0x73, 0x0b, 0x0c, 0x03, 0x74, 0x0b, 0x0e, 0x43, 0x74, 
-0x31, 0x60, 0x61, 0x68, 0xc0, 0x46, 0x01, 0x76, 0x0b, 0x0a, 0x43, 0x76, 
-0x0b, 0x0c, 0x83, 0x76, 0x0b, 0x0e, 0xc3, 0x76, 0x71, 0x60, 0x60, 0x69, 
-0xc0, 0x46, 0x70, 0x61, 0xa0, 0x69, 0xc0, 0x46, 0xb0, 0x61, 0x38, 0x1c, 
-0x06, 0xf0, 0x3a, 0xff, 0x38, 0x1c, 0xff, 0xf7, 0x61, 0xff, 0x05, 0x48, 
-0x05, 0x49, 0x0b, 0x68, 0x05, 0x4a, 0x00, 0x21, 0x07, 0xf0, 0x19, 0xf9, 
-0x01, 0x20, 0x85, 0xe7, 0x9c, 0x04, 0x00, 0x80, 0xdd, 0x01, 0xff, 0xff, 
-0x70, 0x76, 0x21, 0x40, 0x98, 0x3a, 0x00, 0x00, 0x90, 0xb5, 0x1d, 0x4f, 
-0x79, 0x69, 0x00, 0x29, 0x32, 0xd0, 0x80, 0x6a, 0x01, 0x7b, 0x43, 0x7b, 
-0x1b, 0x02, 0x19, 0x43, 0xc1, 0x23, 0xdb, 0x00, 0x99, 0x42, 0x29, 0xd1, 
-0x01, 0x7d, 0x43, 0x7d, 0x1b, 0x02, 0x19, 0x43, 0x01, 0x23, 0x5b, 0x02, 
-0x0e, 0x30, 0x99, 0x42, 0x20, 0xd1, 0xc3, 0x1d, 0x07, 0x33, 0x14, 0xcb, 
-0x9b, 0x07, 0xdb, 0x0e, 0xda, 0x40, 0x5b, 0x42, 0x20, 0x33, 0x9c, 0x40, 
-0x14, 0x43, 0x79, 0x68, 0xa1, 0x42, 0x13, 0xd1, 0x00, 0x21, 0x4a, 0x00, 
-0x13, 0x18, 0x1c, 0x7a, 0x5b, 0x7a, 0x1b, 0x02, 0x1c, 0x43, 0xd2, 0x19, 
-0xd4, 0x81, 0x01, 0x31, 0x09, 0x06, 0x09, 0x0e, 0x03, 0x29, 0xf2, 0xdb, 
-0x79, 0x69, 0x38, 0x1c, 0x07, 0xf0, 0xd7, 0xf8, 0x00, 0x20, 0x78, 0x61, 
-0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0x9c, 0x04, 0x00, 0x80, 
-0xf0, 0xb5, 0x07, 0x1c, 0x01, 0x25, 0x20, 0x48, 0x01, 0x22, 0x00, 0x21, 
-0x03, 0x68, 0x08, 0x20, 0x07, 0xf0, 0xc7, 0xf8, 0x04, 0x1c, 0xff, 0x2c, 
-0x03, 0xd1, 0x00, 0x20, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x20, 0x1c, 
-0x19, 0x4e, 0x00, 0x22, 0x11, 0x21, 0x33, 0x68, 0x07, 0xf0, 0xb9, 0xf8, 
-0xff, 0x23, 0x45, 0x33, 0x98, 0x42, 0x1e, 0xd1, 0x20, 0x1c, 0x39, 0x1c, 
-0x14, 0x4a, 0x13, 0x68, 0xff, 0x22, 0x45, 0x32, 
-0x07, 0xf0, 0xad, 0xf8, 0xff, 0x23, 0x45, 0x33, 0x98, 0x42, 0x12, 0xd1, 
-0x00, 0x22, 0x13, 0x21, 0x33, 0x68, 0x20, 0x1c, 0x07, 0xf0, 0xa3, 0xf8, 
-0x06, 0x06, 0x36, 0x0e, 0x00, 0x20, 0x78, 0x71, 0x38, 0x1c, 0x0b, 0x49, 
-0x0a, 0x68, 0xff, 0x21, 0x45, 0x31, 0x07, 0xf0, 0x97, 0xf8, 0xb0, 0x42, 
-0x00, 0xd0, 0x00, 0x25, 0x20, 0x1c, 0x07, 0x49, 0x09, 0x68, 0x07, 0xf0, 
-0x8e, 0xf8, 0x28, 0x1c, 0xca, 0xe7, 0x00, 0x00, 0x74, 0x6e, 0x21, 0x40, 
-0x8c, 0x6e, 0x21, 0x40, 0x80, 0x6e, 0x21, 0x40, 0x94, 0x6e, 0x21, 0x40, 
-0x88, 0x6e, 0x21, 0x40, 0xf0, 0xb5, 0xff, 0x21, 0x45, 0x31, 0x00, 0x20, 
-0x51, 0x4f, 0x00, 0x26, 0x3a, 0x18, 0xe1, 0x23, 0x1b, 0x01, 0xd2, 0x18, 
-0x16, 0x73, 0x01, 0x30, 0x88, 0x42, 0xf7, 0xd3, 0x4d, 0x4b, 0xf8, 0x18, 
-0xff, 0xf7, 0xa0, 0xff, 0x01, 0x25, 0x2d, 0x05, 0x00, 0x28, 0x0e, 0xd0, 
-0xe1, 0x23, 0x1b, 0x01, 0xf8, 0x18, 0x01, 0x7b, 0x41, 0x29, 0x16, 0xd0, 
-0x41, 0x7b, 0x53, 0x29, 0x13, 0xd0, 0x81, 0x7b, 0x46, 0x29, 0x10, 0xd0, 
-0xc0, 0x7b, 0x00, 0x28, 0x0d, 0xd0, 0x01, 0x23, 0x1b, 0x03, 0xb8, 0x69, 
-0x98, 0x43, 0xb8, 0x61, 0xe8, 0x61, 0x5b, 0x00, 0xb8, 0x69, 0x98, 0x43, 
-0xb8, 0x61, 0xe8, 0x61, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x3c, 0x49, 
-0x39, 0x23, 0x9b, 0x01, 0xf8, 0x18, 0x0a, 0x68, 0xc0, 0x46, 0xc2, 0x80, 
-0x4a, 0x68, 0xc0, 0x46, 0x02, 0x81, 0x89, 0x68, 0xc0, 0x46, 0x41, 0x81, 
-0x3c, 0x1c, 0x00, 0x21, 0x37, 0x1c, 0x4a, 0x00, 0x12, 0x19, 0x39, 0x23, 
-0x9b, 0x01, 0xd2, 0x18, 0x17, 0x80, 0x01, 0x31, 0x09, 0x06, 0x09, 0x0e, 
-0x03, 0x29, 0xf4, 0xdb, 0x07, 0x73, 0x2f, 0x48, 0x2f, 0x49, 0x0b, 0x68, 
-0x2f, 0x4a, 0x00, 0x21, 0x07, 0xf0, 0x2d, 0xf8, 0xe9, 0x23, 0x1b, 0x01, 
-0xe0, 0x18, 0x07, 0x73, 0x42, 0x89, 0x19, 0x21, 0x49, 0x01, 0x8a, 0x42, 
-0x00, 0xda, 0x41, 0x81, 0x00, 0x21, 0x82, 0x7b, 0x00, 0x2a, 0x0c, 0xdd, 
-0x16, 0x22, 0x4a, 0x43, 0x12, 0x19, 0x75, 0x23, 0x5b, 0x01, 0xd2, 0x18, 
-0xd7, 0x70, 0x01, 0x31, 0x09, 0x06, 0x09, 0x0e, 0x82, 0x7b, 0x8a, 0x42, 
-0xf2, 0xdc, 0xef, 0x23, 0x1b, 0x01, 0xe0, 0x18, 0xc7, 0x71, 0x39, 0x1c, 
-0x00, 0x20, 0x42, 0x00, 0x12, 0x19, 0xef, 0x23, 0x1b, 0x01, 0xd2, 0x18, 
-0x11, 0x72, 0x51, 0x72, 0x01, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x04, 0x28, 
-0xf3, 0xdb, 0x79, 0x23, 0x5b, 0x01, 0xe0, 0x18, 0x01, 0x72, 0x3d, 0x23, 
-0x9b, 0x01, 0xe0, 0x18, 0x81, 0x60, 0x14, 0x48, 0x14, 0x49, 0xc0, 0x46, 
-0x08, 0x60, 0x01, 0x23, 0x1b, 0x03, 0xa0, 0x69, 0x18, 0x43, 0xa0, 0x61, 
-0xe1, 0x69, 0x99, 0x43, 0xe1, 0x61, 0xe8, 0x61, 0xe0, 0x69, 0xc0, 0x46, 
-0x28, 0x62, 0x5b, 0x00, 0xa0, 0x69, 0x98, 0x43, 0xa0, 0x61, 0xe8, 0x61, 
-0x03, 0xf0, 0xee, 0xff, 0x0a, 0x48, 0x0b, 0x49, 0xc0, 0x46, 0x08, 0x60, 
-0x88, 0xe7, 0x00, 0x00, 0xf8, 0x0d, 0x00, 0x80, 0x1c, 0x0e, 0x00, 0x00, 
-0x40, 0x00, 0x14, 0x40, 0x39, 0x06, 0xff, 0xff, 0x70, 0x76, 0x21, 0x40, 
-0x80, 0x4f, 0x12, 0x00, 0x08, 0x6e, 0x21, 0x40, 0x88, 0x70, 0x21, 0x40, 
-0x7d, 0x0c, 0xff, 0xff, 0x78, 0x70, 0x21, 0x40, 0xb0, 0xb5, 0x00, 0x20, 
-0x1c, 0x4f, 0xef, 0x23, 0x1b, 0x01, 0xfc, 0x18, 0xe1, 0x79, 0x00, 0x29, 
-0x0c, 0xdd, 0x00, 0x21, 0x42, 0x00, 0xd2, 0x19, 0xef, 0x23, 0x1b, 0x01, 
-0xd2, 0x18, 0x51, 0x72, 0x01, 0x30, 0x00, 0x06, 0x00, 0x0e, 0xe2, 0x79, 
-0x82, 0x42, 0xf3, 0xdc, 0x39, 0x23, 0x9b, 0x01, 
-0xf8, 0x18, 0xc2, 0x6a, 0x11, 0x4d, 0x00, 0x2a, 0x04, 0xd0, 0x11, 0x48, 
-0x00, 0x21, 0x2b, 0x68, 0x06, 0xf0, 0xa5, 0xff, 0x00, 0xf0, 0x2a, 0xf8, 
-0x0e, 0x48, 0x05, 0x22, 0x00, 0x21, 0x2b, 0x68, 0x06, 0xf0, 0x9d, 0xff, 
-0xe0, 0x79, 0x00, 0x28, 0x05, 0xd1, 0xe9, 0x23, 0x1b, 0x01, 0xf8, 0x18, 
-0x80, 0x7b, 0x00, 0x28, 0x04, 0xd0, 0x08, 0x48, 0x7d, 0x21, 0x09, 0x01, 
-0x00, 0xf0, 0x71, 0xf8, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0xf8, 0x0d, 0x00, 0x80, 0x70, 0x76, 0x21, 0x40, 0xb5, 0x07, 0xff, 0xff, 
-0x6d, 0x07, 0xff, 0xff, 0xd1, 0x07, 0xff, 0xff, 0x00, 0x20, 0x02, 0x49, 
-0xc0, 0x46, 0x08, 0x73, 0x70, 0x47, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x80, 
-0x80, 0xb4, 0x00, 0x21, 0x09, 0x48, 0xc0, 0x46, 0x01, 0x60, 0x00, 0x20, 
-0x08, 0x4a, 0x43, 0x00, 0x1b, 0x18, 0x9b, 0x00, 0x9f, 0x18, 0xb9, 0x60, 
-0xd1, 0x50, 0x79, 0x60, 0x01, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x05, 0x28, 
-0xf3, 0xdb, 0x80, 0xbc, 0x70, 0x47, 0x00, 0x00, 0x04, 0x6e, 0x21, 0x40, 
-0x40, 0xab, 0x20, 0x40, 0xb0, 0xb4, 0x00, 0x29, 0x03, 0xd0, 0x07, 0x68, 
-0x00, 0x2f, 0x02, 0xd1, 0x01, 0x60, 0xb0, 0xbc, 0x70, 0x47, 0x3a, 0x1c, 
-0x53, 0x68, 0x4c, 0x68, 0xa3, 0x42, 0x08, 0xd8, 0x13, 0x1c, 0x12, 0x68, 
-0x00, 0x2a, 0x02, 0xd0, 0x55, 0x68, 0xa5, 0x42, 0xf8, 0xd9, 0x00, 0x2b, 
-0x03, 0xd1, 0x3a, 0x68, 0xc0, 0x46, 0x0a, 0x60, 0xea, 0xe7, 0x18, 0x68, 
-0xc0, 0x46, 0x08, 0x60, 0x19, 0x60, 0xe6, 0xe7, 0x90, 0xb4, 0x00, 0x29, 
-0x15, 0xd0, 0x02, 0x68, 0x17, 0x1c, 0x8a, 0x42, 0x08, 0xd0, 0x13, 0x1c, 
-0x14, 0x68, 0x00, 0x2c, 0x02, 0xd0, 0x22, 0x1c, 0x8a, 0x42, 0xf8, 0xd1, 
-0x00, 0x2b, 0x03, 0xd1, 0x3a, 0x68, 0xc0, 0x46, 0x02, 0x60, 0x02, 0xe0, 
-0x10, 0x68, 0xc0, 0x46, 0x18, 0x60, 0x00, 0x20, 0x08, 0x60, 0x90, 0xbc, 
-0x70, 0x47, 0x00, 0xb5, 0x01, 0x68, 0xff, 0xf7, 0xe1, 0xff, 0x08, 0xbc, 
-0x18, 0x47, 0x90, 0xb5, 0x00, 0x22, 0x11, 0x4c, 0x53, 0x00, 0x9b, 0x18, 
-0x9b, 0x00, 0x1b, 0x19, 0x9b, 0x68, 0x00, 0x2b, 0x04, 0xd1, 0x53, 0x00, 
-0x9b, 0x18, 0x9b, 0x00, 0x1f, 0x19, 0x04, 0xe0, 0x01, 0x32, 0x12, 0x06, 
-0x12, 0x0e, 0x05, 0x2a, 0xee, 0xdb, 0x00, 0x23, 0x05, 0x2a, 0x03, 0xd1, 
-0x18, 0x1c, 0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0xb8, 0x60, 0x79, 0x60, 
-0x3b, 0x60, 0x39, 0x1c, 0x03, 0x48, 0xff, 0xf7, 0x9d, 0xff, 0x38, 0x1c, 
-0xf3, 0xe7, 0x00, 0x00, 0x40, 0xab, 0x20, 0x40, 0x04, 0x6e, 0x21, 0x40, 
-0x80, 0xb5, 0x07, 0x1c, 0x39, 0x1c, 0x04, 0x48, 0xff, 0xf7, 0xb0, 0xff, 
-0x00, 0x20, 0xb8, 0x60, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0x04, 0x6e, 0x21, 0x40, 0xf0, 0xb5, 0x0f, 0x4c, 0x27, 0x68, 0x00, 0x2f, 
-0x17, 0xd0, 0x78, 0x68, 0x00, 0x28, 0x0c, 0xd1, 0x0c, 0x4e, 0x00, 0x25, 
-0x30, 0x1c, 0xff, 0xf7, 0xb6, 0xff, 0xb8, 0x68, 0x06, 0xf0, 0xd4, 0xfe, 
-0xbd, 0x60, 0x27, 0x68, 0x78, 0x68, 0x00, 0x28, 0xf4, 0xd0, 0x00, 0x2f, 
-0x05, 0xd0, 0x78, 0x68, 0x01, 0x38, 0x78, 0x60, 0x3f, 0x68, 0x00, 0x2f, 
-0xf9, 0xd1, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x04, 0x6e, 0x21, 0x40, 
-0x04, 0x6e, 0x21, 0x40, 0x00, 0xb5, 0x04, 0x48, 0x04, 0x49, 0x0a, 0x68, 
-0x01, 0x21, 0x06, 0xf0, 0xbb, 0xfe, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0x68, 0x1c, 0x00, 0x80, 0xc0, 0x6f, 0x21, 0x40, 0x80, 0xb5, 0x0b, 0x4f, 
-0x78, 0x7b, 0x01, 0x28, 0x08, 0xd0, 0x02, 0x28, 
-0x01, 0xd1, 0x00, 0xf0, 0x65, 0xf8, 0x78, 0x7b, 0x01, 0x28, 0x04, 0xd1, 
-0x79, 0x7a, 0x03, 0xe0, 0x00, 0xf0, 0x0c, 0xf8, 0xf7, 0xe7, 0x79, 0x89, 
-0x03, 0x48, 0xff, 0xf7, 0x82, 0xff, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0x88, 0x1c, 0x00, 0x80, 0xd1, 0x07, 0xff, 0xff, 0x00, 0xb5, 0x08, 0x48, 
-0xe9, 0x23, 0x1b, 0x01, 0xc1, 0x18, 0x09, 0x7b, 0x49, 0x00, 0x08, 0x18, 
-0xef, 0x23, 0x1b, 0x01, 0xc0, 0x18, 0x41, 0x7a, 0x00, 0x7a, 0x00, 0xf0, 
-0xd5, 0xf9, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0xf8, 0x0d, 0x00, 0x80, 
-0x90, 0xb5, 0xc8, 0x00, 0x40, 0x18, 0x80, 0x00, 0x19, 0x49, 0x40, 0x18, 
-0x41, 0x78, 0x19, 0x4c, 0xe9, 0x23, 0x1b, 0x01, 0xe7, 0x18, 0x08, 0x29, 
-0x1d, 0xd2, 0x02, 0xa3, 0x5b, 0x5c, 0x5b, 0x00, 0x9f, 0x44, 0x00, 0x1c, 
-0x10, 0x10, 0x04, 0x04, 0x10, 0x10, 0x19, 0x1c, 0x02, 0x30, 0x00, 0x21, 
-0x01, 0x31, 0x09, 0x06, 0x09, 0x0e, 0x03, 0x29, 0xfa, 0xdb, 0x0f, 0x49, 
-0x0a, 0x68, 0x01, 0x21, 0x06, 0xf0, 0x62, 0xfe, 0x38, 0x7b, 0x40, 0x00, 
-0x00, 0x19, 0xef, 0x23, 0x1b, 0x01, 0xc0, 0x18, 0x41, 0x7a, 0x01, 0x31, 
-0x41, 0x72, 0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x20, 0x39, 0x7b, 
-0x49, 0x00, 0x09, 0x19, 0xef, 0x23, 0x1b, 0x01, 0xc9, 0x18, 0x48, 0x72, 
-0xf3, 0xe7, 0x00, 0x00, 0xe4, 0x2b, 0x00, 0x80, 0xf8, 0x0d, 0x00, 0x80, 
-0xc0, 0x6f, 0x21, 0x40, 0x00, 0xb5, 0x0b, 0x48, 0xe9, 0x23, 0x1b, 0x01, 
-0xc1, 0x18, 0x09, 0x7b, 0x16, 0x23, 0x59, 0x43, 0x08, 0x18, 0x75, 0x23, 
-0x5b, 0x01, 0xc1, 0x18, 0x09, 0x78, 0xe9, 0x23, 0x1b, 0x01, 0xc0, 0x18, 
-0xc0, 0x7b, 0xfe, 0x23, 0x18, 0x40, 0x00, 0xf0, 0xad, 0xf9, 0x08, 0xbc, 
-0x18, 0x47, 0x00, 0x00, 0xf8, 0x0d, 0x00, 0x80, 0xf0, 0xb5, 0x04, 0x1c, 
-0xc8, 0x00, 0x40, 0x18, 0x80, 0x00, 0x32, 0x49, 0x46, 0x18, 0x00, 0x25, 
-0x31, 0x48, 0xe9, 0x23, 0x1b, 0x01, 0xc7, 0x18, 0x39, 0x7b, 0x16, 0x23, 
-0x59, 0x43, 0x08, 0x18, 0x75, 0x23, 0x5b, 0x01, 0xc2, 0x18, 0xd1, 0x78, 
-0x63, 0x68, 0x1b, 0x06, 0x1b, 0x0e, 0x0c, 0x2b, 0x3b, 0xd1, 0x29, 0x4b, 
-0x54, 0x78, 0x36, 0x78, 0x34, 0x40, 0x24, 0x06, 0x24, 0x0e, 0x1e, 0x1c, 
-0xe9, 0x23, 0x1b, 0x01, 0xc0, 0x18, 0xc0, 0x7b, 0x40, 0x08, 0x07, 0xd3, 
-0x8c, 0x42, 0x24, 0xd0, 0x90, 0x78, 0xa0, 0x42, 0x0a, 0xd0, 0x88, 0x42, 
-0x1f, 0xd1, 0x06, 0xe0, 0x00, 0x2c, 0x02, 0xd0, 0x00, 0x29, 0x1a, 0xd1, 
-0x02, 0xe0, 0x00, 0x29, 0x17, 0xd0, 0x01, 0x25, 0x00, 0x2d, 0x03, 0xd0, 
-0x90, 0x79, 0x80, 0x23, 0x18, 0x43, 0x90, 0x71, 0x00, 0x25, 0x38, 0x7b, 
-0x16, 0x23, 0x58, 0x43, 0x80, 0x19, 0x16, 0x4b, 0xc0, 0x18, 0x16, 0x49, 
-0x0a, 0x68, 0x01, 0x21, 0x06, 0xf0, 0xe4, 0xfd, 0x68, 0x1c, 0x05, 0x06, 
-0x2d, 0x0e, 0x03, 0x2d, 0xef, 0xdb, 0x38, 0x7b, 0x16, 0x23, 0x58, 0x43, 
-0x80, 0x19, 0x75, 0x23, 0x5b, 0x01, 0xc0, 0x18, 0xc4, 0x70, 0x0b, 0x48, 
-0x39, 0x7b, 0x01, 0x31, 0x39, 0x73, 0x39, 0x7b, 0xba, 0x7b, 0x91, 0x42, 
-0x09, 0xdb, 0x00, 0x21, 0x39, 0x73, 0xef, 0x23, 0x1b, 0x01, 0xc0, 0x18, 
-0xc0, 0x79, 0x00, 0x28, 0x01, 0xd0, 0x01, 0x20, 0x78, 0x73, 0xf0, 0xbc, 
-0x08, 0xbc, 0x18, 0x47, 0xe4, 0x2b, 0x00, 0x80, 0xf8, 0x0d, 0x00, 0x80, 
-0xa4, 0x0e, 0x00, 0x00, 0xc0, 0x6f, 0x21, 0x40, 0xb0, 0xb5, 0x00, 0x27, 
-0x07, 0x4d, 0x08, 0x4c, 0x01, 0x21, 0x2a, 0x68, 0x20, 0x1c, 0x06, 0xf0, 
-0xb1, 0xfd, 0x78, 0x1c, 0x07, 0x06, 0x3f, 0x0e, 
-0x03, 0x2f, 0xf5, 0xdb, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0xc0, 0x6f, 0x21, 0x40, 0x44, 0x1d, 0x00, 0x80, 0xb0, 0xb5, 0xc8, 0x00, 
-0x40, 0x18, 0x80, 0x00, 0x19, 0x49, 0x47, 0x18, 0x38, 0x78, 0x0d, 0x28, 
-0x2a, 0xdb, 0x12, 0x28, 0x28, 0xdc, 0xb8, 0x78, 0x10, 0x28, 0x25, 0xd1, 
-0x79, 0x78, 0x15, 0x48, 0x3d, 0x23, 0x9b, 0x01, 0xc4, 0x18, 0x13, 0x29, 
-0x16, 0xd1, 0x13, 0x4b, 0xc5, 0x18, 0xa0, 0x68, 0x00, 0x28, 0x01, 0xd0, 
-0xff, 0xf7, 0x94, 0xfe, 0x00, 0x20, 0x39, 0x18, 0xc9, 0x78, 0xc0, 0x46, 
-0x29, 0x54, 0x01, 0x30, 0x0e, 0x28, 0xf8, 0xd3, 0x38, 0x79, 0x00, 0x02, 
-0xf9, 0x78, 0x01, 0x43, 0x0a, 0x48, 0xff, 0xf7, 0x5c, 0xfe, 0xa0, 0x60, 
-0x78, 0x78, 0x14, 0x28, 0x04, 0xd1, 0xa0, 0x68, 0x00, 0x28, 0x01, 0xd0, 
-0xff, 0xf7, 0x7c, 0xfe, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0xe4, 0x2b, 0x00, 0x80, 0xf8, 0x0d, 0x00, 0x80, 0x4c, 0x0f, 0x00, 0x00, 
-0xc5, 0x09, 0xff, 0xff, 0xf0, 0xb5, 0xcb, 0x00, 0x59, 0x18, 0x89, 0x00, 
-0x17, 0x4a, 0x8f, 0x18, 0x39, 0x78, 0xc5, 0x1d, 0x19, 0x35, 0x0b, 0x29, 
-0x22, 0xdb, 0x10, 0x29, 0x20, 0xdc, 0xb8, 0x78, 0x10, 0x28, 0x1d, 0xd1, 
-0xfe, 0x1c, 0x78, 0x78, 0x15, 0x28, 0x0e, 0xd1, 0x00, 0x24, 0x30, 0x1c, 
-0x0f, 0x49, 0x0a, 0x68, 0x01, 0x21, 0x06, 0xf0, 0x49, 0xfd, 0x00, 0x28, 
-0x00, 0xd1, 0x28, 0x71, 0x60, 0x1c, 0x04, 0x06, 0x24, 0x0e, 0x03, 0x2c, 
-0xf1, 0xdb, 0x78, 0x78, 0x16, 0x28, 0x09, 0xd1, 0x30, 0x1c, 0x07, 0x49, 
-0x0a, 0x68, 0x01, 0x21, 0x06, 0xf0, 0x38, 0xfd, 0x00, 0x28, 0x01, 0xd1, 
-0x00, 0x20, 0x28, 0x71, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
-0xe4, 0x2b, 0x00, 0x80, 0xc0, 0x6f, 0x21, 0x40, 0xc8, 0x00, 0x40, 0x18, 
-0x80, 0x00, 0x0c, 0x49, 0x40, 0x18, 0x01, 0x78, 0x0d, 0x29, 0x12, 0xd1, 
-0x41, 0x78, 0x15, 0x29, 0x0f, 0xd1, 0x80, 0x78, 0x10, 0x28, 0x0c, 0xd1, 
-0x07, 0x48, 0x08, 0x4b, 0xc3, 0x18, 0x00, 0x21, 0x00, 0x22, 0x5a, 0x54, 
-0x01, 0x31, 0x0c, 0x29, 0xfb, 0xd3, 0x79, 0x23, 0x5b, 0x01, 0xc0, 0x18, 
-0x02, 0x72, 0x70, 0x47, 0xe4, 0x2b, 0x00, 0x80, 0xf8, 0x0d, 0x00, 0x80, 
-0x28, 0x0f, 0x00, 0x00, 0x83, 0x00, 0x18, 0x18, 0x80, 0x00, 0x02, 0x49, 
-0x40, 0x18, 0x02, 0x4b, 0xc0, 0x18, 0x70, 0x47, 0xf8, 0x0d, 0x00, 0x80, 
-0x81, 0x0e, 0x00, 0x00, 0x80, 0xb4, 0x00, 0x20, 0x09, 0x49, 0x00, 0x22, 
-0x43, 0x00, 0x5f, 0x18, 0xef, 0x23, 0x1b, 0x01, 0xfb, 0x18, 0x1a, 0x72, 
-0x01, 0x30, 0x00, 0x06, 0x00, 0x0e, 0x04, 0x28, 0xf4, 0xdb, 0xef, 0x23, 
-0x1b, 0x01, 0xc8, 0x18, 0xc2, 0x71, 0x80, 0xbc, 0x70, 0x47, 0x00, 0x00, 
-0xf8, 0x0d, 0x00, 0x80, 0x88, 0xb5, 0x01, 0x1c, 0x0b, 0x4a, 0xc0, 0x46, 
-0x00, 0x92, 0x0b, 0x4f, 0x0b, 0x4b, 0xf8, 0x18, 0x1a, 0x23, 0x0a, 0x1c, 
-0x04, 0x21, 0x04, 0xf0, 0xe9, 0xf8, 0x05, 0x28, 0x06, 0xd1, 0x00, 0x20, 
-0xef, 0x23, 0x1b, 0x01, 0xf9, 0x18, 0xc8, 0x71, 0xff, 0xf7, 0x0a, 0xfd, 
-0x88, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0xad, 0x0b, 0xff, 0xff, 
-0xf8, 0x0d, 0x00, 0x80, 0xf8, 0x0e, 0x00, 0x00, 0x00, 0xb5, 0x43, 0x00, 
-0x18, 0x18, 0x80, 0x00, 0x04, 0x49, 0x40, 0x18, 0x40, 0x7a, 0x04, 0x49, 
-0xc0, 0x46, 0xc8, 0x71, 0xff, 0xf7, 0xf4, 0xfc, 0x08, 0xbc, 0x18, 0x47, 
-0x5c, 0xac, 0x20, 0x40, 0xe8, 0x1c, 0x00, 0x80, 0xb0, 0xb5, 0x04, 0x1c, 
-0x0d, 0x1c, 0x00, 0x27, 0x03, 0xf0, 0x42, 0xfe, 
-0x00, 0x28, 0x1d, 0xd0, 0x18, 0x21, 0x01, 0x70, 0x0f, 0x49, 0xc0, 0x46, 
-0xc1, 0x60, 0x0f, 0x49, 0xc0, 0x46, 0x41, 0x60, 0x0e, 0x49, 0xc0, 0x46, 
-0x81, 0x60, 0x04, 0x74, 0x01, 0x21, 0x41, 0x74, 0x04, 0x21, 0x81, 0x74, 
-0x11, 0x21, 0xc1, 0x74, 0x10, 0x21, 0x01, 0x75, 0x45, 0x75, 0x00, 0x21, 
-0x81, 0x75, 0x01, 0x21, 0x21, 0x43, 0xc1, 0x75, 0x00, 0x21, 0x03, 0xf0, 
-0xd9, 0xfc, 0x07, 0x1c, 0x38, 0x1c, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0xe4, 0x2b, 0x00, 0x80, 0x00, 0x3f, 0xf3, 0x03, 0x31, 0x08, 0xff, 0xff, 
-0xb0, 0xb5, 0x04, 0x1c, 0x0d, 0x1c, 0x00, 0x27, 0x03, 0xf0, 0x12, 0xfe, 
-0x00, 0x28, 0x13, 0xd0, 0x08, 0x21, 0x01, 0x70, 0x0a, 0x49, 0xc0, 0x46, 
-0xc1, 0x60, 0x0a, 0x49, 0xc0, 0x46, 0x41, 0x60, 0x09, 0x49, 0xc0, 0x46, 
-0x81, 0x60, 0x04, 0x74, 0x45, 0x74, 0x01, 0x21, 0x21, 0x43, 0x81, 0x74, 
-0x00, 0x21, 0x03, 0xf0, 0xb3, 0xfc, 0x07, 0x1c, 0x38, 0x1c, 0xb0, 0xbc, 
-0x08, 0xbc, 0x18, 0x47, 0xe4, 0x2b, 0x00, 0x80, 0x00, 0x3f, 0xf3, 0x13, 
-0xe1, 0x08, 0xff, 0xff, 0xc1, 0x10, 0x05, 0xd1, 0x40, 0x07, 0x40, 0x0f, 
-0x80, 0x00, 0x02, 0x49, 0x08, 0x58, 0x70, 0x47, 0x00, 0x20, 0xfc, 0xe7, 
-0x20, 0x6e, 0x21, 0x40, 0xcb, 0x00, 0x59, 0x18, 0x89, 0x00, 0x08, 0x48, 
-0x42, 0x5c, 0x03, 0x2a, 0x0a, 0xd1, 0x08, 0x18, 0x41, 0x78, 0x18, 0x29, 
-0x06, 0xd1, 0x81, 0x78, 0x10, 0x29, 0x03, 0xd1, 0xc0, 0x78, 0x03, 0x49, 
-0xc0, 0x46, 0xc8, 0x62, 0x70, 0x47, 0x00, 0x00, 0xe4, 0x2b, 0x00, 0x80, 
-0xf8, 0x1b, 0x00, 0x80, 0xf0, 0xb4, 0x02, 0x7c, 0xd6, 0x07, 0xf6, 0x0f, 
-0xc7, 0x1d, 0x19, 0x37, 0x1c, 0x4d, 0x00, 0x24, 0xca, 0x00, 0x52, 0x18, 
-0x92, 0x00, 0x00, 0x2e, 0x23, 0xd0, 0xae, 0x5c, 0x19, 0x4d, 0xcb, 0x00, 
-0x59, 0x18, 0x89, 0x00, 0x69, 0x18, 0x00, 0x2e, 0x15, 0xd1, 0x03, 0x23, 
-0xab, 0x54, 0x13, 0x22, 0x4a, 0x70, 0x10, 0x22, 0x8a, 0x70, 0x09, 0x22, 
-0x13, 0x4b, 0x5d, 0x6a, 0x02, 0x23, 0x1d, 0x40, 0x00, 0xd1, 0x01, 0x22, 
-0x04, 0x23, 0x00, 0x2d, 0x00, 0xd1, 0x00, 0x23, 0x1a, 0x43, 0xca, 0x70, 
-0x15, 0x22, 0x3a, 0x71, 0x00, 0xe0, 0x3c, 0x71, 0xc1, 0x61, 0x04, 0x62, 
-0x44, 0x61, 0xf0, 0xbc, 0x70, 0x47, 0x14, 0x21, 0x39, 0x71, 0x09, 0x49, 
-0x52, 0x19, 0x01, 0x62, 0x82, 0x61, 0x00, 0x21, 0x54, 0x54, 0x01, 0x31, 
-0x24, 0x29, 0xfb, 0xd3, 0x05, 0x49, 0xc0, 0x46, 0x41, 0x61, 0xee, 0xe7, 
-0xe4, 0x2b, 0x00, 0x80, 0x08, 0x2c, 0x00, 0x80, 0xf8, 0x1b, 0x00, 0x80, 
-0x95, 0x0c, 0xff, 0xff, 0xc5, 0x0c, 0xff, 0xff, 0x14, 0x22, 0xc3, 0x1d, 
-0x19, 0x33, 0x1a, 0x71, 0xcb, 0x00, 0x59, 0x18, 0x89, 0x00, 0x04, 0x4a, 
-0x89, 0x18, 0x81, 0x61, 0x03, 0x49, 0xc0, 0x46, 0x01, 0x62, 0x00, 0x21, 
-0x41, 0x61, 0x70, 0x47, 0xe4, 0x2b, 0x00, 0x80, 0xf1, 0x09, 0xff, 0xff, 
-0x80, 0xb4, 0x02, 0x7c, 0xd7, 0x07, 0xff, 0x0f, 0xcb, 0x00, 0x59, 0x18, 
-0x89, 0x00, 0xc2, 0x1d, 0x19, 0x32, 0x00, 0x2f, 0x27, 0xd0, 0x1a, 0x4b, 
-0xc9, 0x18, 0x15, 0x23, 0x13, 0x71, 0x00, 0x22, 0xc1, 0x61, 0x42, 0x61, 
-0x02, 0x62, 0x17, 0x4a, 0x79, 0x23, 0x5b, 0x01, 0xd0, 0x18, 0x03, 0x7a, 
-0x10, 0x20, 0x00, 0x2b, 0x11, 0xd0, 0x0d, 0x23, 0x0b, 0x70, 0x16, 0x23, 
-0x4b, 0x70, 0x88, 0x70, 0x00, 0x20, 0x17, 0x18, 0x79, 0x23, 0x5b, 0x01, 
-0xfb, 0x18, 0x5b, 0x7a, 0x0f, 0x18, 0xfb, 0x70, 0x01, 0x30, 0x0b, 0x28, 
-0xf5, 0xd3, 0x80, 0xbc, 0x70, 0x47, 0x02, 0x22, 
-0x0a, 0x70, 0x17, 0x22, 0x4a, 0x70, 0x88, 0x70, 0xf7, 0xe7, 0x14, 0x23, 
-0x13, 0x71, 0x07, 0x4a, 0x89, 0x18, 0x81, 0x61, 0x06, 0x49, 0xc0, 0x46, 
-0x01, 0x62, 0x06, 0x49, 0xc0, 0x46, 0x41, 0x61, 0xeb, 0xe7, 0x00, 0x00, 
-0x08, 0x2c, 0x00, 0x80, 0xf8, 0x0d, 0x00, 0x80, 0xe4, 0x2b, 0x00, 0x80, 
-0xe1, 0x0a, 0xff, 0xff, 0x81, 0x0d, 0xff, 0xff, 0x14, 0x22, 0xc3, 0x1d, 
-0x19, 0x33, 0x1a, 0x71, 0x04, 0x4a, 0xcb, 0x00, 0x59, 0x18, 0x89, 0x00, 
-0x02, 0x62, 0x03, 0x4a, 0x89, 0x18, 0x81, 0x61, 0x70, 0x47, 0x00, 0x00, 
-0x71, 0x0a, 0xff, 0xff, 0xe4, 0x2b, 0x00, 0x80, 0x00, 0x00, 0x0f, 0xe1, 
-0x00, 0x10, 0xa0, 0xe1, 0xc0, 0x10, 0x81, 0xe3, 0x01, 0xf0, 0x21, 0xe1, 
-0x1e, 0xff, 0x2f, 0xe1, 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 
-0x00, 0x00, 0x0f, 0xe1, 0xc0, 0x00, 0x80, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
-0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x0f, 0xe1, 0xc0, 0x00, 0xc0, 0xe3, 
+0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbf, 0xcd, 0x57, 0xc3, 
+0xba, 0x01, 0x2c, 0xe8, 0xcd, 0xef, 0xa9, 0xd9, 0x6f, 0xbb, 0x76, 0x2f, 
+0x86, 0x49, 0xac, 0x1b, 0x40, 0x01, 0x00, 0x00, 0x8a, 0xe4, 0x00, 0x00, 
+0x00, 0x00, 0xff, 0xff, 0x39, 0x00, 0x00, 0xea, 0x05, 0x00, 0x00, 0xea, 
+0x04, 0x00, 0x00, 0xea, 0x03, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, 0xea, 
+0x01, 0x00, 0x00, 0xea, 0x32, 0x02, 0x00, 0xea, 0xc0, 0x14, 0x00, 0xea, 
+0x07, 0x00, 0x2d, 0xe9, 0x0e, 0x00, 0xa0, 0xe1, 0x00, 0x10, 0x0f, 0xe1, 
+0xd0, 0x20, 0x9f, 0xe5, 0x12, 0xff, 0x2f, 0xe1, 0xfe, 0xff, 0xff, 0xea, 
+0x01, 0x00, 0x80, 0xe0, 0x04, 0x20, 0x81, 0xe4, 0x01, 0x00, 0x50, 0xe1, 
+0xfc, 0xff, 0xff, 0x1a, 0x0e, 0xf0, 0xa0, 0xe1, 0x00, 0xa0, 0xa0, 0xe1, 
+0x0e, 0xb0, 0xa0, 0xe1, 0x00, 0x00, 0xa0, 0xe3, 0xa8, 0x10, 0x9f, 0xe5, 
+0x00, 0x00, 0x81, 0xe5, 0xa4, 0x10, 0x9f, 0xe5, 0x00, 0x00, 0x81, 0xe5, 
+0x01, 0x16, 0xa0, 0xe3, 0x00, 0x00, 0x91, 0xe5, 0x01, 0x00, 0x80, 0xe3, 
+0x00, 0x00, 0x81, 0xe5, 0xd7, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x88, 0xd0, 0x9f, 0xe5, 0xdb, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x7c, 0xd0, 0x9f, 0xe5, 0xd2, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x74, 0xd0, 0x9f, 0xe5, 0xd1, 0x00, 0xa0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x6c, 0xd0, 0x9f, 0xe5, 0x96, 0x14, 0x00, 0xeb, 0xd3, 0x00, 0xa0, 0xe3, 
+0x00, 0xf0, 0x21, 0xe1, 0x60, 0xd0, 0x9f, 0xe5, 0x60, 0x00, 0x9f, 0xe5, 
+0x60, 0x10, 0x9f, 0xe5, 0x60, 0x20, 0x9f, 0xe5, 0xdb, 0xff, 0xff, 0xeb, 
+0x5c, 0x00, 0x9f, 0xe5, 0x5c, 0x10, 0x9f, 0xe5, 0x00, 0x20, 0xa0, 0xe3, 
+0xd7, 0xff, 0xff, 0xeb, 0x54, 0x00, 0x9f, 0xe5, 0x54, 0x10, 0x9f, 0xe5, 
+0xd4, 0xff, 0xff, 0xeb, 0x0a, 0x00, 0xa0, 0xe1, 0x0b, 0xf0, 0xa0, 0xe1, 
+0xd3, 0x10, 0xa0, 0xe3, 0x01, 0xf0, 0x21, 0xe1, 0xd4, 0xff, 0xff, 0xeb, 
+0x3c, 0xa0, 0x9f, 0xe5, 0x1a, 0xff, 0x2f, 0xe1, 0xc6, 0xff, 0xff, 0xea, 
+0x01, 0x21, 0xff, 0xff, 0x0c, 0x00, 0x10, 0x00, 0x1c, 0x00, 0x10, 0x00, 
+0x3c, 0x38, 0x00, 0x80, 0xfc, 0x37, 0x00, 0x80, 0xfc, 0x3f, 0x00, 0x80, 
+0x7c, 0x34, 0x00, 0x80, 0x80, 0x0f, 0x00, 0x00, 0x80, 0x30, 0x00, 0x80, 
+0xad, 0xde, 0xad, 0xde, 0x5c, 0xbc, 0x00, 0x00, 0x24, 0xab, 0x20, 0x40, 
+0x48, 0x29, 0x00, 0x00, 0x28, 0x05, 0x00, 0x80, 0x8d, 0xd2, 0x21, 0x40, 
+0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
+0x44, 0x57, 0x00, 0x00, 0x71, 0xaf, 0x00, 0x00, 0x60, 0x01, 0xff, 0xff, 
+0xb0, 0xb5, 0x07, 0x1c, 0x12, 0x4c, 0x00, 0x25, 0x20, 0x68, 0x00, 0x28, 
+0x1d, 0xd0, 0x38, 0x1c, 0x10, 0x49, 0x04, 0xf0, 0x71, 0xfd, 0x21, 0x68, 
+0xc0, 0x46, 0x08, 0x60, 0x00, 0x28, 0x14, 0xd0, 0x38, 0x01, 0x0d, 0x49, 
+0x40, 0x18, 0x19, 0x23, 0xdb, 0x01, 0xc0, 0x18, 0x41, 0x6b, 0x80, 0x29, 
+0x0b, 0xd2, 0x01, 0x31, 0x41, 0x63, 0x20, 0x68, 0xc1, 0x69, 0xc0, 0x46, 
+0x21, 0x60, 0x39, 0x07, 0x41, 0x60, 0xc7, 0x62, 0xb0, 0xbc, 0x08, 0xbc, 
+0x18, 0x47, 0x28, 0x1c, 0xfa, 0xe7, 0x00, 0x00, 0xe8, 0x17, 0x00, 0x80, 
+0xee, 0x05, 0x00, 0x00, 0xa0, 0x1c, 0x00, 0x80, 0x02, 0x49, 0x0a, 0x68, 
+0xc0, 0x46, 0xc2, 0x61, 0x08, 0x60, 0x70, 0x47, 
+0xe8, 0x17, 0x00, 0x80, 0x70, 0x47, 0x00, 0x00, 0x70, 0x47, 0x00, 0x00, 
+0x70, 0x47, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xe1, 0x00, 0x10, 0xa0, 0xe1, 
+0xc0, 0x10, 0x81, 0xe3, 0x01, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 
 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x0f, 0xe1, 
-0x40, 0x00, 0x80, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 
-0x00, 0x00, 0x0f, 0xe1, 0x80, 0x00, 0x10, 0xe3, 0x80, 0x00, 0x80, 0xe3, 
-0x00, 0xf0, 0x21, 0xe1, 0x00, 0x00, 0x00, 0x12, 0x1e, 0xff, 0x2f, 0xe1, 
-0x00, 0x00, 0x50, 0xe3, 0x00, 0x00, 0x0f, 0xe1, 0x80, 0x00, 0xc0, 0x13, 
+0xc0, 0x00, 0x80, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 
+0x00, 0x00, 0x0f, 0xe1, 0xc0, 0x00, 0xc0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x0f, 0xe1, 0x40, 0x00, 0x80, 0xe3, 
 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x0f, 0xe1, 
-0x80, 0x00, 0xc0, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 
-0x91, 0x00, 0x00, 0xe0, 0x1e, 0xff, 0x2f, 0xe1, 0x01, 0x20, 0x80, 0xe0, 
-0x01, 0x00, 0x80, 0xe0, 0x1e, 0xff, 0x2f, 0xe1, 0x80, 0xb5, 0x08, 0x4f, 
-0x64, 0x28, 0x04, 0xd3, 0x64, 0x20, 0xf8, 0x62, 0x00, 0x20, 0xc0, 0x43, 
-0x03, 0xe0, 0xf8, 0x62, 0x04, 0x49, 0x06, 0xf0, 0xb1, 0xfe, 0x38, 0x63, 
-0x78, 0x63, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0xf8, 0x0d, 0x00, 0x80, 
-0x88, 0x13, 0x00, 0x00, 0x80, 0xb4, 0x10, 0x4b, 0x00, 0x22, 0xdf, 0x6a, 
-0x64, 0x2f, 0x03, 0xd2, 0x09, 0x68, 0x09, 0x68, 0x49, 0x08, 0x02, 0xd2, 
-0x10, 0x1c, 0x80, 0xbc, 0x70, 0x47, 0x19, 0x1c, 0x9b, 0x6b, 0x0f, 0x6b, 
-0xbb, 0x42, 0x05, 0xd2, 0x40, 0x68, 0x00, 0x04, 0x00, 0x0c, 0x18, 0x18, 
-0x88, 0x63, 0xf1, 0xe7, 0x41, 0x68, 0x05, 0x4b, 0x19, 0x43, 0x41, 0x60, 
-0x04, 0x48, 0xc1, 0x6b, 0x01, 0x31, 0xc1, 0x63, 0x02, 0x20, 0xe8, 0xe7, 
-0xf8, 0x0d, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x94, 0x2c, 0x00, 0x80, 
-0x90, 0xb5, 0x07, 0x1c, 0x15, 0x4c, 0x00, 0x20, 0xe1, 0x6a, 0x64, 0x29, 
-0x0b, 0xd2, 0xb9, 0x6e, 0x49, 0x08, 0x08, 0xd3, 0xe1, 0x6b, 0x62, 0x6b, 
-0x91, 0x42, 0x07, 0xd2, 0xfa, 0x1d, 0x39, 0x32, 0x52, 0x8b, 0x89, 0x18, 
-0xe1, 0x63, 0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x78, 0x6a, 0x39, 0x6b, 
-0xc0, 0x46, 0x48, 0x62, 0x38, 0x6b, 0x03, 0xf0, 0xc7, 0xf9, 0x38, 0x1c, 
-0x02, 0xf0, 0x7d, 0xfe, 0x01, 0x20, 0xbb, 0x23, 0x1b, 0x01, 0xe1, 0x18, 
-0xc8, 0x70, 0x05, 0x49, 0x0a, 0x6c, 0x12, 0x18, 0x0a, 0x64, 0x04, 0x49, 
-0x8a, 0x6d, 0x12, 0x18, 0x8a, 0x65, 0xe4, 0xe7, 0xf8, 0x0d, 0x00, 0x80, 
-0x94, 0x2c, 0x00, 0x80, 0x2c, 0x2c, 0x00, 0x80, 0x80, 0xb4, 0x0a, 0x48, 
-0xc0, 0x6d, 0x02, 0x23, 0x18, 0x40, 0x09, 0x4a, 0x00, 0x21, 0x00, 0x28, 
-0x03, 0xd0, 0x91, 0x63, 0xd1, 0x63, 0x80, 0xbc, 0x70, 0x47, 0x06, 0x48, 
-0x07, 0x68, 0x7b, 0x1c, 0x03, 0x60, 0x0a, 0x2f, 
-0xf7, 0xd3, 0x01, 0x60, 0xf3, 0xe7, 0x00, 0x00, 0x2c, 0x2c, 0x00, 0x80, 
-0xf8, 0x0d, 0x00, 0x80, 0x5c, 0x01, 0x00, 0x80, 0x70, 0x47, 0x02, 0x04, 
-0x12, 0x0c, 0x00, 0x0c, 0x10, 0x18, 0x0a, 0x04, 0x12, 0x0c, 0x09, 0x0c, 
-0x51, 0x18, 0x08, 0x18, 0x01, 0x0c, 0x05, 0xd0, 0x01, 0x04, 0x09, 0x0c, 
-0x00, 0x0c, 0x08, 0x18, 0x01, 0x0c, 0xf9, 0xd1, 0x00, 0x04, 0x00, 0x0c, 
-0x70, 0x47, 0x80, 0xb4, 0x00, 0x22, 0x00, 0x29, 0x18, 0xd0, 0x4f, 0x08, 
-0x7b, 0x1e, 0x00, 0x2f, 0x06, 0xd0, 0x07, 0x88, 0xba, 0x18, 0x02, 0x30, 
-0x1f, 0x1c, 0x01, 0x3b, 0x00, 0x2f, 0xf8, 0xd1, 0x49, 0x08, 0x03, 0xd3, 
-0x00, 0x88, 0x00, 0x06, 0x00, 0x0e, 0x82, 0x18, 0x10, 0x0c, 0x05, 0xd0, 
-0x10, 0x04, 0x00, 0x0c, 0x11, 0x0c, 0x42, 0x18, 0x10, 0x0c, 0xf9, 0xd1, 
-0x10, 0x04, 0x00, 0x0c, 0x80, 0xbc, 0x70, 0x47, 0x80, 0xb5, 0x83, 0x89, 
-0xc7, 0x89, 0xfb, 0x18, 0x07, 0x8a, 0xfb, 0x18, 0x47, 0x8a, 0xfb, 0x18, 
-0x40, 0x7a, 0x00, 0x02, 0xc7, 0x18, 0x38, 0x0c, 0x05, 0xd0, 0x38, 0x04, 
-0x00, 0x0c, 0x3b, 0x0c, 0xc7, 0x18, 0x38, 0x0c, 0xf9, 0xd1, 0x08, 0x1c, 
-0x11, 0x1c, 0xff, 0xf7, 0xc8, 0xff, 0x01, 0x1c, 0x38, 0x1c, 0xff, 0xf7, 
-0xb0, 0xff, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x90, 0xb5, 0x02, 0x23, 
-0x82, 0x68, 0x1a, 0x40, 0x00, 0x27, 0x00, 0x2a, 0x0f, 0xd0, 0x0a, 0x4a, 
-0x93, 0x69, 0x01, 0x33, 0x93, 0x61, 0x0a, 0x68, 0x8b, 0x68, 0x9a, 0x18, 
-0x00, 0x68, 0x1c, 0x18, 0x57, 0x81, 0x09, 0x69, 0x10, 0x1c, 0xff, 0xf7, 
-0xac, 0xff, 0xc0, 0x43, 0x60, 0x81, 0x38, 0x1c, 0x90, 0xbc, 0x08, 0xbc, 
-0x18, 0x47, 0x00, 0x00, 0x94, 0x2c, 0x00, 0x80, 0x90, 0xb5, 0x04, 0x23, 
-0x82, 0x68, 0x1a, 0x40, 0x00, 0x27, 0x00, 0x2a, 0x11, 0xd0, 0x4a, 0x68, 
-0x52, 0x09, 0x0e, 0xd3, 0x09, 0x4a, 0x13, 0x6a, 0x01, 0x33, 0x13, 0x62, 
-0xcb, 0x68, 0x02, 0x68, 0x9c, 0x18, 0x01, 0x23, 0x9b, 0x07, 0x08, 0x3a, 
-0x1a, 0x43, 0x12, 0x68, 0x00, 0xf0, 0x2e, 0xf8, 0x20, 0x82, 0x38, 0x1c, 
-0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0x94, 0x2c, 0x00, 0x80, 
-0x90, 0xb5, 0x80, 0x23, 0x82, 0x68, 0x1a, 0x40, 0x00, 0x24, 0x00, 0x2a, 
-0x15, 0xd0, 0x4a, 0x68, 0x92, 0x09, 0x12, 0xd3, 0x0b, 0x4a, 0xd3, 0x69, 
-0x01, 0x33, 0xd3, 0x61, 0xcb, 0x68, 0x02, 0x68, 0x9f, 0x18, 0x01, 0x23, 
-0x9b, 0x07, 0x08, 0x3a, 0x1a, 0x43, 0x12, 0x68, 0x00, 0xf0, 0x0e, 0xf8, 
-0x00, 0x28, 0x00, 0xd1, 0x04, 0x48, 0xc0, 0x46, 0xf8, 0x80, 0x20, 0x1c, 
-0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0x94, 0x2c, 0x00, 0x80, 
-0xff, 0xff, 0x00, 0x00, 0xb0, 0xb5, 0x14, 0x1c, 0x05, 0x1c, 0x0f, 0x1c, 
-0x38, 0x69, 0xb9, 0x68, 0x41, 0x18, 0x38, 0x68, 0xff, 0xf7, 0x53, 0xff, 
-0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x20, 0x1c, 0xff, 0xf7, 0x39, 0xff, 
-0x04, 0x1c, 0xb8, 0x68, 0x79, 0x69, 0x40, 0x18, 0x69, 0x68, 0x88, 0x42, 
-0x0c, 0xd2, 0x2a, 0x68, 0x12, 0x18, 0x09, 0x1a, 0x10, 0x1c, 0x00, 0xf0, 
-0x05, 0xf9, 0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x20, 0x1c, 0xff, 0xf7, 
-0x26, 0xff, 0x04, 0x1c, 0xe0, 0x43, 0x00, 0x04, 0x00, 0x0c, 0xb0, 0xbc, 
-0x08, 0xbc, 0x18, 0x47, 0x80, 0xb5, 0x07, 0x1c, 0xb8, 0x6b, 0xc0, 0x08, 
-0x1a, 0xd3, 0xb8, 0x6a, 0xf9, 0x6b, 0x40, 0x18, 0x79, 0x6c, 0x00, 0xf0, 
-0xed, 0xf8, 0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x0a, 0x48, 0x07, 0xd0, 
-0x20, 0x23, 0xb9, 0x69, 0x19, 0x43, 0xb9, 0x61, 
-0x01, 0x6b, 0x01, 0x31, 0x01, 0x63, 0x07, 0xe0, 0xff, 0x23, 0x01, 0x33, 
-0xb9, 0x69, 0x19, 0x43, 0xb9, 0x61, 0x41, 0x6a, 0x01, 0x31, 0x41, 0x62, 
-0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x94, 0x2c, 0x00, 0x80, 
-0x80, 0xb5, 0x07, 0x1c, 0xb8, 0x6b, 0x41, 0x09, 0x1c, 0xd3, 0xc0, 0x08, 
-0x1a, 0xd3, 0xf8, 0x1d, 0x39, 0x30, 0x00, 0x7b, 0x06, 0x28, 0x15, 0xd1, 
-0x38, 0x1c, 0x00, 0xf0, 0x53, 0xf8, 0x01, 0x1c, 0x0a, 0x48, 0x07, 0xd0, 
-0x40, 0x23, 0xb9, 0x69, 0x19, 0x43, 0xb9, 0x61, 0x81, 0x6b, 0x01, 0x31, 
-0x81, 0x63, 0x07, 0xe0, 0x01, 0x23, 0x9b, 0x02, 0xb9, 0x69, 0x19, 0x43, 
-0xb9, 0x61, 0xc1, 0x6a, 0x01, 0x31, 0xc1, 0x62, 0x00, 0x20, 0x80, 0xbc, 
-0x08, 0xbc, 0x18, 0x47, 0x94, 0x2c, 0x00, 0x80, 0xb0, 0xb5, 0x07, 0x1c, 
-0xb8, 0x6b, 0x81, 0x09, 0x2c, 0xd3, 0xc0, 0x08, 0x2a, 0xd3, 0xf8, 0x1d, 
-0x39, 0x30, 0x00, 0x7b, 0x11, 0x28, 0x25, 0xd1, 0xb8, 0x6a, 0x39, 0x6c, 
-0x40, 0x18, 0x01, 0x23, 0x9b, 0x07, 0x06, 0x30, 0x18, 0x43, 0x00, 0x68, 
-0x05, 0x04, 0x2d, 0x0c, 0x0f, 0x4c, 0x11, 0xd0, 0x38, 0x1c, 0x00, 0xf0, 
-0x1f, 0xf8, 0x00, 0x28, 0x0c, 0xd0, 0xa8, 0x42, 0x02, 0xd1, 0x0c, 0x4b, 
-0x98, 0x42, 0x07, 0xd0, 0x80, 0x23, 0xb8, 0x69, 0x18, 0x43, 0xb8, 0x61, 
-0x60, 0x6b, 0x01, 0x30, 0x60, 0x63, 0x07, 0xe0, 0x01, 0x23, 0x5b, 0x02, 
-0xb8, 0x69, 0x18, 0x43, 0xb8, 0x61, 0xa0, 0x6a, 0x01, 0x30, 0xa0, 0x62, 
-0x00, 0x20, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x94, 0x2c, 0x00, 0x80, 
-0xff, 0xff, 0x00, 0x00, 0xf0, 0xb5, 0xff, 0xb0, 0x99, 0xb0, 0x04, 0x1c, 
-0xe0, 0x6b, 0x61, 0x6c, 0x09, 0x18, 0x03, 0xaa, 0x85, 0x18, 0xa3, 0x6a, 
-0x00, 0x20, 0x8a, 0x08, 0x01, 0x32, 0x97, 0x92, 0x07, 0xd0, 0x82, 0x00, 
-0x9f, 0x58, 0x03, 0xae, 0xb7, 0x50, 0x97, 0x9a, 0x01, 0x30, 0x82, 0x42, 
-0xf7, 0xd8, 0x60, 0x6a, 0x01, 0x23, 0x9b, 0x07, 0x04, 0x30, 0x18, 0x43, 
-0x00, 0x68, 0xc0, 0x46, 0x02, 0x90, 0x02, 0xaf, 0x3f, 0x88, 0x03, 0xa8, 
-0xff, 0xf7, 0x87, 0xfe, 0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x38, 0x1c, 
-0xff, 0xf7, 0x6d, 0xfe, 0x07, 0x1c, 0xe0, 0x6b, 0xa1, 0x6c, 0x40, 0x18, 
-0x61, 0x6a, 0x01, 0x23, 0x9b, 0x07, 0x08, 0x31, 0x19, 0x43, 0x09, 0x68, 
-0xc0, 0x46, 0x01, 0x91, 0x01, 0xa9, 0x09, 0x88, 0x01, 0x31, 0x88, 0x42, 
-0x0c, 0xd2, 0xa2, 0x6a, 0x12, 0x18, 0x09, 0x1a, 0x10, 0x1c, 0x00, 0xf0, 
-0x2f, 0xf8, 0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x38, 0x1c, 0xff, 0xf7, 
-0x50, 0xfe, 0x07, 0x1c, 0xa8, 0x89, 0xe9, 0x89, 0x08, 0x18, 0x29, 0x8a, 
-0x08, 0x18, 0x69, 0x8a, 0x08, 0x18, 0x69, 0x7a, 0x09, 0x02, 0x08, 0x18, 
-0xa1, 0x6c, 0x62, 0x6c, 0x89, 0x1a, 0x0a, 0x04, 0x12, 0x0c, 0x11, 0x02, 
-0x12, 0x0a, 0x11, 0x43, 0x09, 0x04, 0x09, 0x0c, 0x09, 0x18, 0x08, 0x0c, 
-0x05, 0xd0, 0x08, 0x04, 0x00, 0x0c, 0x09, 0x0c, 0x41, 0x18, 0x08, 0x0c, 
-0xf9, 0xd1, 0x38, 0x1c, 0xff, 0xf7, 0x2f, 0xfe, 0xc0, 0x43, 0x00, 0x04, 
-0x00, 0x0c, 0x7f, 0xb0, 0x19, 0xb0, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0xb0, 0xb4, 0x00, 0x22, 0x00, 0x29, 0x2e, 0xd0, 0x83, 0x07, 0x9b, 0x0f, 
-0xdc, 0x00, 0x47, 0x18, 0x04, 0x25, 0xef, 0x1b, 0xbf, 0x07, 0xbf, 0x0f, 
-0xff, 0x00, 0x80, 0x08, 0x80, 0x00, 0x59, 0x18, 0x03, 0x31, 0x89, 0x08, 
-0x4d, 0x1e, 0x02, 0xc8, 0xe1, 0x40, 0xa1, 0x40, 0x6b, 0x1e, 0x00, 0x2d, 
-0x09, 0xd0, 0x0c, 0x04, 0x24, 0x0c, 0xa2, 0x18, 
-0x09, 0x0c, 0x8a, 0x18, 0x02, 0xc8, 0x1c, 0x1c, 0x01, 0x3b, 0x00, 0x2c, 
-0xf5, 0xd1, 0xb9, 0x40, 0x08, 0x1c, 0xf8, 0x40, 0x01, 0x04, 0x09, 0x0c, 
-0x89, 0x18, 0x00, 0x0c, 0x42, 0x18, 0x10, 0x0c, 0x05, 0xd0, 0x10, 0x04, 
-0x00, 0x0c, 0x11, 0x0c, 0x42, 0x18, 0x10, 0x0c, 0xf9, 0xd1, 0x10, 0x04, 
-0x00, 0x0c, 0xb0, 0xbc, 0x70, 0x47, 0x00, 0x00, 0x90, 0xb4, 0x00, 0x20, 
-0x01, 0x27, 0x11, 0x49, 0x42, 0x00, 0x12, 0x18, 0xd2, 0x00, 0x53, 0x18, 
-0x9c, 0x68, 0x01, 0x23, 0x9b, 0x07, 0x23, 0x43, 0x1b, 0x68, 0x1b, 0x03, 
-0x1b, 0x0b, 0x8a, 0x58, 0x12, 0x03, 0x12, 0x0b, 0x93, 0x42, 0x0c, 0xd1, 
-0x01, 0x30, 0x04, 0x28, 0xec, 0xd3, 0x08, 0x48, 0xc0, 0x6a, 0x01, 0x03, 
-0x09, 0x0b, 0x07, 0x48, 0xc0, 0x6e, 0x00, 0x03, 0x00, 0x0b, 0x81, 0x42, 
-0x02, 0xd0, 0x38, 0x1c, 0x90, 0xbc, 0x70, 0x47, 0x00, 0x20, 0xfb, 0xe7, 
-0x18, 0x03, 0x00, 0x80, 0x00, 0x40, 0x14, 0x40, 0xf8, 0x0d, 0x00, 0x80, 
-0x98, 0xb4, 0x14, 0x4a, 0xc0, 0x46, 0x00, 0x92, 0x83, 0x00, 0x13, 0x48, 
-0xc0, 0x58, 0x07, 0x03, 0x3f, 0x0b, 0x12, 0x48, 0xc0, 0x58, 0x02, 0x03, 
-0x12, 0x0b, 0x11, 0x48, 0xc0, 0x58, 0x00, 0x03, 0x00, 0x0b, 0x10, 0x4c, 
-0xe4, 0x58, 0x01, 0x23, 0x9b, 0x07, 0x23, 0x43, 0x1b, 0x68, 0x9b, 0x00, 
-0xcc, 0x00, 0x01, 0x21, 0x98, 0x42, 0x01, 0xd1, 0x08, 0x1c, 0x09, 0xe0, 
-0x98, 0x42, 0x03, 0xd9, 0x10, 0x1a, 0xda, 0x1b, 0x80, 0x18, 0x00, 0xe0, 
-0x18, 0x1a, 0x84, 0x42, 0xf4, 0xd3, 0x00, 0x20, 0x98, 0xbc, 0x70, 0x47, 
-0x55, 0x55, 0x55, 0x55, 0x90, 0x03, 0x00, 0x80, 0x98, 0x03, 0x00, 0x80, 
-0x78, 0x03, 0x00, 0x80, 0x88, 0x03, 0x00, 0x80, 0x80, 0xb4, 0x13, 0x04, 
-0x00, 0xd0, 0x01, 0x3a, 0x80, 0x00, 0x0b, 0x1c, 0x13, 0x49, 0x0f, 0x58, 
-0xc0, 0x46, 0x3b, 0x60, 0x0b, 0x58, 0xc0, 0x46, 0x5a, 0x60, 0x0a, 0x58, 
-0x08, 0x32, 0x10, 0x4b, 0x1b, 0x58, 0x9a, 0x42, 0x01, 0xd3, 0x0f, 0x4a, 
-0x12, 0x58, 0x0f, 0x4b, 0x1f, 0x58, 0x01, 0x23, 0x9b, 0x07, 0x3b, 0x43, 
-0x1b, 0x68, 0x9b, 0x00, 0x17, 0x03, 0x3f, 0x0b, 0x9f, 0x42, 0x06, 0xd1, 
-0x0a, 0x48, 0xc1, 0x68, 0x01, 0x31, 0xc1, 0x60, 0x01, 0x20, 0x80, 0xbc, 
-0x70, 0x47, 0x08, 0x4b, 0x1b, 0x58, 0xc0, 0x46, 0x1a, 0x60, 0x0a, 0x50, 
-0x00, 0x20, 0xf6, 0xe7, 0x78, 0x03, 0x00, 0x80, 0x98, 0x03, 0x00, 0x80, 
-0x90, 0x03, 0x00, 0x80, 0x88, 0x03, 0x00, 0x80, 0xa0, 0x82, 0x20, 0x40, 
-0x80, 0x03, 0x00, 0x80, 0xff, 0x5f, 0x2d, 0xe9, 0x48, 0xfe, 0xff, 0xeb, 
-0x01, 0xb6, 0xa0, 0xe3, 0x01, 0xb1, 0x8b, 0xe2, 0x02, 0x7a, 0xa0, 0xe3, 
-0x01, 0x6a, 0xa0, 0xe3, 0xc4, 0xa0, 0x9f, 0xe5, 0x01, 0x99, 0xa0, 0xe3, 
-0x01, 0x56, 0xa0, 0xe3, 0xbc, 0x80, 0x9f, 0xe5, 0x14, 0x40, 0x9b, 0xe5, 
-0x00, 0x00, 0x54, 0xe3, 0x29, 0x00, 0x00, 0x0a, 0x03, 0x0a, 0x14, 0xe3, 
-0x17, 0x00, 0x00, 0x0a, 0x08, 0x00, 0x9a, 0xe5, 0x00, 0x00, 0x50, 0xe3, 
-0x0a, 0x00, 0x00, 0x0a, 0x01, 0x0a, 0x14, 0xe3, 0x03, 0x00, 0x00, 0x0a, 
-0x00, 0x00, 0xa0, 0xe3, 0xb0, 0x19, 0x00, 0xeb, 0x14, 0x60, 0x85, 0xe5, 
-0x0e, 0x00, 0x00, 0xea, 0x02, 0x0a, 0x14, 0xe3, 0x0c, 0x00, 0x00, 0x0a, 
-0x01, 0x00, 0xa0, 0xe3, 0xaa, 0x19, 0x00, 0xeb, 0x08, 0x00, 0x00, 0xea, 
-0x18, 0x00, 0x9a, 0xe5, 0x01, 0x0a, 0xc0, 0xe3, 0x18, 0x00, 0x8a, 0xe5, 
-0x1c, 0x00, 0x85, 0xe5, 0x14, 0x60, 0x85, 0xe5, 0x18, 0x00, 0x9a, 0xe5, 
-0x02, 0x0a, 0xc0, 0xe3, 0x18, 0x00, 0x8a, 0xe5, 
-0x1c, 0x00, 0x85, 0xe5, 0x14, 0x70, 0x85, 0xe5, 0x01, 0x09, 0x14, 0xe3, 
-0x01, 0x00, 0x00, 0x0a, 0x99, 0x19, 0x00, 0xeb, 0x14, 0x90, 0x85, 0xe5, 
-0x02, 0x00, 0x14, 0xe3, 0x3a, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x14, 0xe3, 
-0x3e, 0x00, 0x00, 0x1b, 0x02, 0x0b, 0x14, 0xe3, 0x42, 0x00, 0x00, 0x1b, 
-0x01, 0x0b, 0x14, 0xe3, 0x1a, 0x00, 0x00, 0x1b, 0x18, 0x00, 0x98, 0xe5, 
-0x01, 0x00, 0x80, 0xe2, 0x18, 0x00, 0x88, 0xe5, 0xd2, 0xff, 0xff, 0xea, 
-0xff, 0x5f, 0xbd, 0xe8, 0x04, 0xf0, 0x5e, 0xe2, 0xf8, 0x0d, 0x00, 0x80, 
-0x04, 0x83, 0x20, 0x40, 0x10, 0x10, 0x1f, 0xe5, 0x10, 0x30, 0x91, 0xe5, 
-0x00, 0x20, 0xc3, 0xe1, 0x10, 0x20, 0x81, 0xe5, 0x01, 0x16, 0xa0, 0xe3, 
-0x0c, 0x20, 0x81, 0xe5, 0x0b, 0x12, 0xa0, 0xe3, 0x00, 0x00, 0x81, 0xe5, 
-0x18, 0x10, 0x9f, 0xe5, 0xb0, 0x24, 0xd1, 0xe1, 0x01, 0x20, 0x82, 0xe2, 
-0xb0, 0x24, 0xc1, 0xe1, 0x3c, 0x20, 0x91, 0xe5, 0x00, 0x00, 0x82, 0xe1, 
-0x3c, 0x00, 0x81, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0xa0, 0x82, 0x20, 0x40, 
-0xff, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x01, 0x0b, 0xa0, 0xe3, 
-0x01, 0x16, 0xa0, 0xe3, 0x14, 0x00, 0x81, 0xe5, 0x00, 0x1a, 0x81, 0xe1, 
-0x24, 0x20, 0x91, 0xe5, 0x70, 0x00, 0x1f, 0xe5, 0x00, 0x00, 0x00, 0x00, 
-0x20, 0x20, 0x80, 0xe5, 0x28, 0x10, 0x91, 0xe5, 0x00, 0x00, 0x00, 0x00, 
-0x24, 0x10, 0x80, 0xe5, 0x28, 0x20, 0x90, 0xe5, 0x01, 0x20, 0x82, 0xe2, 
-0x28, 0x20, 0x80, 0xe5, 0x3f, 0x00, 0x01, 0xe2, 0x3f, 0x00, 0x50, 0xe3, 
-0x1e, 0xff, 0x2f, 0x11, 0x18, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 
-0x01, 0x10, 0x81, 0xe2, 0x00, 0x10, 0x80, 0xe5, 0x02, 0x18, 0xa0, 0xe3, 
-0x0b, 0x02, 0xa0, 0xe3, 0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 
-0xa0, 0x03, 0x00, 0x80, 0x0b, 0x10, 0xa0, 0xe3, 0x02, 0x19, 0x81, 0xe2, 
-0x06, 0x07, 0xa0, 0xe3, 0x4c, 0x11, 0x80, 0xe5, 0xff, 0xff, 0xff, 0xea, 
-0xfe, 0xff, 0xff, 0xea, 0x0c, 0x10, 0xa0, 0xe3, 0x02, 0x19, 0x81, 0xe2, 
-0x06, 0x07, 0xa0, 0xe3, 0x4c, 0x11, 0x80, 0xe5, 0xff, 0xff, 0xff, 0xea, 
+0x80, 0x00, 0x10, 0xe3, 0x80, 0x00, 0x80, 0xe3, 0x00, 0xf0, 0x21, 0xe1, 
+0x00, 0x00, 0x00, 0x12, 0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x50, 0xe3, 
+0x00, 0x00, 0x0f, 0xe1, 0x80, 0x00, 0xc0, 0x13, 0x00, 0xf0, 0x21, 0xe1, 
+0x1e, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x0f, 0xe1, 0x80, 0x00, 0xc0, 0xe3, 
+0x00, 0xf0, 0x21, 0xe1, 0x1e, 0xff, 0x2f, 0xe1, 0x91, 0x00, 0x00, 0xe0, 
+0x1e, 0xff, 0x2f, 0xe1, 0x01, 0x20, 0x80, 0xe0, 0x01, 0x00, 0x80, 0xe0, 
+0x1e, 0xff, 0x2f, 0xe1, 0x80, 0xb5, 0x08, 0x4f, 0x64, 0x28, 0x04, 0xd3, 
+0x64, 0x20, 0x38, 0x63, 0x00, 0x20, 0xc0, 0x43, 0x03, 0xe0, 0x38, 0x63, 
+0x04, 0x49, 0x05, 0xf0, 0xf7, 0xfa, 0x78, 0x63, 0xb8, 0x63, 0x80, 0xbc, 
+0x08, 0xbc, 0x18, 0x47, 0x68, 0x0e, 0x00, 0x80, 0x88, 0x13, 0x00, 0x00, 
+0x80, 0xb4, 0x10, 0x4b, 0x00, 0x22, 0x1f, 0x6b, 0x64, 0x2f, 0x03, 0xd2, 
+0x09, 0x68, 0x09, 0x68, 0x49, 0x08, 0x02, 0xd2, 0x10, 0x1c, 0x80, 0xbc, 
+0x70, 0x47, 0x19, 0x1c, 0xdb, 0x6b, 0x4f, 0x6b, 0xbb, 0x42, 0x05, 0xd2, 
+0x40, 0x68, 0x00, 0x04, 0x00, 0x0c, 0x18, 0x18, 0xc8, 0x63, 0xf1, 0xe7, 
+0x41, 0x68, 0x05, 0x4b, 0x19, 0x43, 0x41, 0x60, 0x04, 0x48, 0xc1, 0x6b, 
+0x01, 0x31, 0xc1, 0x63, 0x02, 0x20, 0xe8, 0xe7, 0x68, 0x0e, 0x00, 0x80, 
+0x00, 0x00, 0x00, 0x80, 0x0c, 0x2b, 0x00, 0x80, 0x90, 0xb5, 0x07, 0x1c, 
+0x15, 0x4c, 0x00, 0x20, 0x21, 0x6b, 0x64, 0x29, 0x0b, 0xd2, 0xb9, 0x6e, 
+0x49, 0x08, 0x08, 0xd3, 0x21, 0x6c, 0xa2, 0x6b, 0x91, 0x42, 0x07, 0xd2, 
+0xfa, 0x1d, 0x39, 0x32, 0x52, 0x8b, 0x89, 0x18, 0x21, 0x64, 0x90, 0xbc, 
+0x08, 0xbc, 0x18, 0x47, 0x78, 0x6a, 0x39, 0x6b, 0xc0, 0x46, 0x48, 0x62, 
+0x38, 0x6b, 0x02, 0xf0, 0x23, 0xfe, 0x38, 0x1c, 0x02, 0xf0, 0xde, 0xfa, 
+0x01, 0x20, 0xbb, 0x23, 0x1b, 0x01, 0xe1, 0x18, 0xc8, 0x73, 0x05, 0x49, 
+0x0a, 0x6c, 0x12, 0x18, 0x0a, 0x64, 0x04, 0x49, 0x8a, 0x6d, 0x12, 0x18, 
+0x8a, 0x65, 0xe4, 0xe7, 0x68, 0x0e, 0x00, 0x80, 0x0c, 0x2b, 0x00, 0x80, 
+0xa4, 0x2a, 0x00, 0x80, 0x80, 0xb4, 0x0a, 0x48, 0xc0, 0x6d, 0x02, 0x23, 
+0x18, 0x40, 0x09, 0x4a, 0x00, 0x21, 0x00, 0x28, 0x03, 0xd0, 0xd1, 0x63, 
+0x11, 0x64, 0x80, 0xbc, 0x70, 0x47, 0x06, 0x48, 0x07, 0x68, 0x7b, 0x1c, 
+0x03, 0x60, 0x0a, 0x2f, 0xf7, 0xd3, 0x01, 0x60, 0xf3, 0xe7, 0x00, 0x00, 
+0xa4, 0x2a, 0x00, 0x80, 0x68, 0x0e, 0x00, 0x80, 0xe0, 0x01, 0x00, 0x80, 
+0x70, 0x47, 0x02, 0x04, 0x12, 0x0c, 0x00, 0x0c, 0x10, 0x18, 0x0a, 0x04, 
+0x12, 0x0c, 0x09, 0x0c, 0x51, 0x18, 0x08, 0x18, 0x01, 0x0c, 0x05, 0xd0, 
+0x01, 0x04, 0x09, 0x0c, 0x00, 0x0c, 0x08, 0x18, 0x01, 0x0c, 0xf9, 0xd1, 
+0x00, 0x04, 0x00, 0x0c, 0x70, 0x47, 0x80, 0xb4, 0x00, 0x22, 0x00, 0x29, 
+0x18, 0xd0, 0x4f, 0x08, 0x7b, 0x1e, 0x00, 0x2f, 
+0x06, 0xd0, 0x07, 0x88, 0xba, 0x18, 0x02, 0x30, 0x1f, 0x1c, 0x01, 0x3b, 
+0x00, 0x2f, 0xf8, 0xd1, 0x49, 0x08, 0x03, 0xd3, 0x00, 0x88, 0x00, 0x06, 
+0x00, 0x0e, 0x82, 0x18, 0x10, 0x0c, 0x05, 0xd0, 0x10, 0x04, 0x00, 0x0c, 
+0x11, 0x0c, 0x42, 0x18, 0x10, 0x0c, 0xf9, 0xd1, 0x10, 0x04, 0x00, 0x0c, 
+0x80, 0xbc, 0x70, 0x47, 0x80, 0xb5, 0x83, 0x89, 0xc7, 0x89, 0xfb, 0x18, 
+0x07, 0x8a, 0xfb, 0x18, 0x47, 0x8a, 0xfb, 0x18, 0x40, 0x7a, 0x00, 0x02, 
+0xc7, 0x18, 0x38, 0x0c, 0x05, 0xd0, 0x38, 0x04, 0x00, 0x0c, 0x3b, 0x0c, 
+0xc7, 0x18, 0x38, 0x0c, 0xf9, 0xd1, 0x08, 0x1c, 0x11, 0x1c, 0xff, 0xf7, 
+0xc8, 0xff, 0x01, 0x1c, 0x38, 0x1c, 0xff, 0xf7, 0xb0, 0xff, 0x80, 0xbc, 
+0x08, 0xbc, 0x18, 0x47, 0x90, 0xb5, 0x02, 0x23, 0x82, 0x68, 0x1a, 0x40, 
+0x00, 0x27, 0x00, 0x2a, 0x0f, 0xd0, 0x0a, 0x4a, 0x93, 0x69, 0x01, 0x33, 
+0x93, 0x61, 0x0a, 0x68, 0x8b, 0x68, 0x9a, 0x18, 0x00, 0x68, 0x1c, 0x18, 
+0x57, 0x81, 0x09, 0x69, 0x10, 0x1c, 0xff, 0xf7, 0xac, 0xff, 0xc0, 0x43, 
+0x60, 0x81, 0x38, 0x1c, 0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 
+0x0c, 0x2b, 0x00, 0x80, 0x90, 0xb5, 0x04, 0x23, 0x82, 0x68, 0x1a, 0x40, 
+0x00, 0x27, 0x00, 0x2a, 0x11, 0xd0, 0x4a, 0x68, 0x52, 0x09, 0x0e, 0xd3, 
+0x09, 0x4a, 0x13, 0x6a, 0x01, 0x33, 0x13, 0x62, 0xcb, 0x68, 0x02, 0x68, 
+0x9c, 0x18, 0x01, 0x23, 0x9b, 0x07, 0x08, 0x3a, 0x1a, 0x43, 0x12, 0x68, 
+0x00, 0xf0, 0x2e, 0xf8, 0x20, 0x82, 0x38, 0x1c, 0x90, 0xbc, 0x08, 0xbc, 
+0x18, 0x47, 0x00, 0x00, 0x0c, 0x2b, 0x00, 0x80, 0x90, 0xb5, 0x80, 0x23, 
+0x82, 0x68, 0x1a, 0x40, 0x00, 0x24, 0x00, 0x2a, 0x15, 0xd0, 0x4a, 0x68, 
+0x92, 0x09, 0x12, 0xd3, 0x0b, 0x4a, 0xd3, 0x69, 0x01, 0x33, 0xd3, 0x61, 
+0xcb, 0x68, 0x02, 0x68, 0x9f, 0x18, 0x01, 0x23, 0x9b, 0x07, 0x08, 0x3a, 
+0x1a, 0x43, 0x12, 0x68, 0x00, 0xf0, 0x0e, 0xf8, 0x00, 0x28, 0x00, 0xd1, 
+0x04, 0x48, 0xc0, 0x46, 0xf8, 0x80, 0x20, 0x1c, 0x90, 0xbc, 0x08, 0xbc, 
+0x18, 0x47, 0x00, 0x00, 0x0c, 0x2b, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 
+0xb0, 0xb5, 0x14, 0x1c, 0x05, 0x1c, 0x0f, 0x1c, 0x38, 0x69, 0xb9, 0x68, 
+0x41, 0x18, 0x38, 0x68, 0xff, 0xf7, 0x53, 0xff, 0xc0, 0x43, 0x01, 0x04, 
+0x09, 0x0c, 0x20, 0x1c, 0xff, 0xf7, 0x39, 0xff, 0x04, 0x1c, 0xb8, 0x68, 
+0x79, 0x69, 0x40, 0x18, 0x69, 0x68, 0x88, 0x42, 0x0c, 0xd2, 0x2a, 0x68, 
+0x12, 0x18, 0x09, 0x1a, 0x10, 0x1c, 0x00, 0xf0, 0x05, 0xf9, 0xc0, 0x43, 
+0x01, 0x04, 0x09, 0x0c, 0x20, 0x1c, 0xff, 0xf7, 0x26, 0xff, 0x04, 0x1c, 
+0xe0, 0x43, 0x00, 0x04, 0x00, 0x0c, 0xb0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
+0x80, 0xb5, 0x07, 0x1c, 0xb8, 0x6b, 0xc0, 0x08, 0x1a, 0xd3, 0xb8, 0x6a, 
+0xf9, 0x6b, 0x40, 0x18, 0x79, 0x6c, 0x00, 0xf0, 0xed, 0xf8, 0xc0, 0x43, 
+0x01, 0x04, 0x09, 0x0c, 0x0a, 0x48, 0x07, 0xd0, 0x20, 0x23, 0xb9, 0x69, 
+0x19, 0x43, 0xb9, 0x61, 0x01, 0x6b, 0x01, 0x31, 0x01, 0x63, 0x07, 0xe0, 
+0xff, 0x23, 0x01, 0x33, 0xb9, 0x69, 0x19, 0x43, 0xb9, 0x61, 0x41, 0x6a, 
+0x01, 0x31, 0x41, 0x62, 0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
+0x0c, 0x2b, 0x00, 0x80, 0x80, 0xb5, 0x07, 0x1c, 0xb8, 0x6b, 0x41, 0x09, 
+0x1c, 0xd3, 0xc0, 0x08, 0x1a, 0xd3, 0xf8, 0x1d, 0x39, 0x30, 0x00, 0x7b, 
+0x06, 0x28, 0x15, 0xd1, 0x38, 0x1c, 0x00, 0xf0, 0x53, 0xf8, 0x01, 0x1c, 
+0x0a, 0x48, 0x07, 0xd0, 0x40, 0x23, 0xb9, 0x69, 
+0x19, 0x43, 0xb9, 0x61, 0x81, 0x6b, 0x01, 0x31, 0x81, 0x63, 0x07, 0xe0, 
+0x01, 0x23, 0x9b, 0x02, 0xb9, 0x69, 0x19, 0x43, 0xb9, 0x61, 0xc1, 0x6a, 
+0x01, 0x31, 0xc1, 0x62, 0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
+0x0c, 0x2b, 0x00, 0x80, 0xb0, 0xb5, 0x07, 0x1c, 0xb8, 0x6b, 0x81, 0x09, 
+0x2c, 0xd3, 0xc0, 0x08, 0x2a, 0xd3, 0xf8, 0x1d, 0x39, 0x30, 0x00, 0x7b, 
+0x11, 0x28, 0x25, 0xd1, 0xb8, 0x6a, 0x39, 0x6c, 0x40, 0x18, 0x01, 0x23, 
+0x9b, 0x07, 0x06, 0x30, 0x18, 0x43, 0x00, 0x68, 0x05, 0x04, 0x2d, 0x0c, 
+0x0f, 0x4c, 0x11, 0xd0, 0x38, 0x1c, 0x00, 0xf0, 0x1f, 0xf8, 0x00, 0x28, 
+0x0c, 0xd0, 0xa8, 0x42, 0x02, 0xd1, 0x0c, 0x4b, 0x98, 0x42, 0x07, 0xd0, 
+0x80, 0x23, 0xb8, 0x69, 0x18, 0x43, 0xb8, 0x61, 0x60, 0x6b, 0x01, 0x30, 
+0x60, 0x63, 0x07, 0xe0, 0x01, 0x23, 0x5b, 0x02, 0xb8, 0x69, 0x18, 0x43, 
+0xb8, 0x61, 0xa0, 0x6a, 0x01, 0x30, 0xa0, 0x62, 0x00, 0x20, 0xb0, 0xbc, 
+0x08, 0xbc, 0x18, 0x47, 0x0c, 0x2b, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 
+0xf0, 0xb5, 0xff, 0xb0, 0x99, 0xb0, 0x04, 0x1c, 0xe0, 0x6b, 0x61, 0x6c, 
+0x09, 0x18, 0x03, 0xaa, 0x85, 0x18, 0xa3, 0x6a, 0x00, 0x20, 0x8a, 0x08, 
+0x01, 0x32, 0x97, 0x92, 0x07, 0xd0, 0x82, 0x00, 0x9f, 0x58, 0x03, 0xae, 
+0xb7, 0x50, 0x97, 0x9a, 0x01, 0x30, 0x82, 0x42, 0xf7, 0xd8, 0x60, 0x6a, 
+0x01, 0x23, 0x9b, 0x07, 0x04, 0x30, 0x18, 0x43, 0x00, 0x68, 0xc0, 0x46, 
+0x02, 0x90, 0x02, 0xaf, 0x3f, 0x88, 0x03, 0xa8, 0xff, 0xf7, 0x87, 0xfe, 
+0xc0, 0x43, 0x01, 0x04, 0x09, 0x0c, 0x38, 0x1c, 0xff, 0xf7, 0x6d, 0xfe, 
+0x07, 0x1c, 0xe0, 0x6b, 0xa1, 0x6c, 0x40, 0x18, 0x61, 0x6a, 0x01, 0x23, 
+0x9b, 0x07, 0x08, 0x31, 0x19, 0x43, 0x09, 0x68, 0xc0, 0x46, 0x01, 0x91, 
+0x01, 0xa9, 0x09, 0x88, 0x01, 0x31, 0x88, 0x42, 0x0c, 0xd2, 0xa2, 0x6a, 
+0x12, 0x18, 0x09, 0x1a, 0x10, 0x1c, 0x00, 0xf0, 0x2f, 0xf8, 0xc0, 0x43, 
+0x01, 0x04, 0x09, 0x0c, 0x38, 0x1c, 0xff, 0xf7, 0x50, 0xfe, 0x07, 0x1c, 
+0xa8, 0x89, 0xe9, 0x89, 0x08, 0x18, 0x29, 0x8a, 0x08, 0x18, 0x69, 0x8a, 
+0x08, 0x18, 0x69, 0x7a, 0x09, 0x02, 0x08, 0x18, 0xa1, 0x6c, 0x62, 0x6c, 
+0x89, 0x1a, 0x0a, 0x04, 0x12, 0x0c, 0x11, 0x02, 0x12, 0x0a, 0x11, 0x43, 
+0x09, 0x04, 0x09, 0x0c, 0x09, 0x18, 0x08, 0x0c, 0x05, 0xd0, 0x08, 0x04, 
+0x00, 0x0c, 0x09, 0x0c, 0x41, 0x18, 0x08, 0x0c, 0xf9, 0xd1, 0x38, 0x1c, 
+0xff, 0xf7, 0x2f, 0xfe, 0xc0, 0x43, 0x00, 0x04, 0x00, 0x0c, 0x7f, 0xb0, 
+0x19, 0xb0, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0xb0, 0xb4, 0x00, 0x22, 
+0x00, 0x29, 0x2e, 0xd0, 0x83, 0x07, 0x9b, 0x0f, 0xdc, 0x00, 0x47, 0x18, 
+0x04, 0x25, 0xef, 0x1b, 0xbf, 0x07, 0xbf, 0x0f, 0xff, 0x00, 0x80, 0x08, 
+0x80, 0x00, 0x59, 0x18, 0x03, 0x31, 0x89, 0x08, 0x4d, 0x1e, 0x02, 0xc8, 
+0xe1, 0x40, 0xa1, 0x40, 0x6b, 0x1e, 0x00, 0x2d, 0x09, 0xd0, 0x0c, 0x04, 
+0x24, 0x0c, 0xa2, 0x18, 0x09, 0x0c, 0x8a, 0x18, 0x02, 0xc8, 0x1c, 0x1c, 
+0x01, 0x3b, 0x00, 0x2c, 0xf5, 0xd1, 0xb9, 0x40, 0x08, 0x1c, 0xf8, 0x40, 
+0x01, 0x04, 0x09, 0x0c, 0x89, 0x18, 0x00, 0x0c, 0x42, 0x18, 0x10, 0x0c, 
+0x05, 0xd0, 0x10, 0x04, 0x00, 0x0c, 0x11, 0x0c, 0x42, 0x18, 0x10, 0x0c, 
+0xf9, 0xd1, 0x10, 0x04, 0x00, 0x0c, 0xb0, 0xbc, 0x70, 0x47, 0x00, 0x00, 
+0x90, 0xb4, 0x00, 0x20, 0x01, 0x27, 0x11, 0x49, 0x42, 0x00, 0x12, 0x18, 
+0xd2, 0x00, 0x53, 0x18, 0x9c, 0x68, 0x01, 0x23, 
+0x9b, 0x07, 0x23, 0x43, 0x1b, 0x68, 0x1b, 0x03, 0x1b, 0x0b, 0x8a, 0x58, 
+0x12, 0x03, 0x12, 0x0b, 0x93, 0x42, 0x0c, 0xd1, 0x01, 0x30, 0x04, 0x28, 
+0xec, 0xd3, 0x08, 0x48, 0xc0, 0x6a, 0x01, 0x03, 0x09, 0x0b, 0x07, 0x48, 
+0x00, 0x6f, 0x00, 0x03, 0x00, 0x0b, 0x81, 0x42, 0x02, 0xd0, 0x38, 0x1c, 
+0x90, 0xbc, 0x70, 0x47, 0x00, 0x20, 0xfb, 0xe7, 0xa8, 0x03, 0x00, 0x80, 
+0x00, 0x40, 0x14, 0x40, 0x68, 0x0e, 0x00, 0x80, 0x98, 0xb4, 0x14, 0x4a, 
+0xc0, 0x46, 0x00, 0x92, 0x83, 0x00, 0x13, 0x48, 0xc0, 0x58, 0x07, 0x03, 
+0x3f, 0x0b, 0x12, 0x48, 0xc0, 0x58, 0x02, 0x03, 0x12, 0x0b, 0x11, 0x48, 
+0xc0, 0x58, 0x00, 0x03, 0x00, 0x0b, 0x10, 0x4c, 0xe4, 0x58, 0x01, 0x23, 
+0x9b, 0x07, 0x23, 0x43, 0x1b, 0x68, 0x9b, 0x00, 0xcc, 0x00, 0x01, 0x21, 
+0x98, 0x42, 0x01, 0xd1, 0x08, 0x1c, 0x09, 0xe0, 0x98, 0x42, 0x03, 0xd9, 
+0x10, 0x1a, 0xda, 0x1b, 0x80, 0x18, 0x00, 0xe0, 0x18, 0x1a, 0x84, 0x42, 
+0xf4, 0xd3, 0x00, 0x20, 0x98, 0xbc, 0x70, 0x47, 0x55, 0x55, 0x55, 0x55, 
+0x20, 0x04, 0x00, 0x80, 0x28, 0x04, 0x00, 0x80, 0x08, 0x04, 0x00, 0x80, 
+0x18, 0x04, 0x00, 0x80, 0x80, 0xb4, 0x13, 0x04, 0x00, 0xd0, 0x01, 0x3a, 
+0x80, 0x00, 0x0b, 0x1c, 0x13, 0x49, 0x0f, 0x58, 0xc0, 0x46, 0x3b, 0x60, 
+0x0b, 0x58, 0xc0, 0x46, 0x5a, 0x60, 0x0a, 0x58, 0x08, 0x32, 0x10, 0x4b, 
+0x1b, 0x58, 0x9a, 0x42, 0x01, 0xd3, 0x0f, 0x4a, 0x12, 0x58, 0x0f, 0x4b, 
+0x1f, 0x58, 0x01, 0x23, 0x9b, 0x07, 0x3b, 0x43, 0x1b, 0x68, 0x9b, 0x00, 
+0x17, 0x03, 0x3f, 0x0b, 0x9f, 0x42, 0x06, 0xd1, 0x0a, 0x48, 0xc1, 0x68, 
+0x01, 0x31, 0xc1, 0x60, 0x01, 0x20, 0x80, 0xbc, 0x70, 0x47, 0x08, 0x4b, 
+0x1b, 0x58, 0xc0, 0x46, 0x1a, 0x60, 0x0a, 0x50, 0x00, 0x20, 0xf6, 0xe7, 
+0x08, 0x04, 0x00, 0x80, 0x28, 0x04, 0x00, 0x80, 0x20, 0x04, 0x00, 0x80, 
+0x18, 0x04, 0x00, 0x80, 0xa0, 0x82, 0x20, 0x40, 0x10, 0x04, 0x00, 0x80, 
+0xff, 0x5f, 0x2d, 0xe9, 0x48, 0xfe, 0xff, 0xeb, 0x01, 0xb6, 0xa0, 0xe3, 
+0x01, 0xb1, 0x8b, 0xe2, 0x02, 0x8a, 0xa0, 0xe3, 0x01, 0x7a, 0xa0, 0xe3, 
+0x01, 0xa9, 0xa0, 0xe3, 0x01, 0x56, 0xa0, 0xe3, 0xc8, 0x60, 0x9f, 0xe5, 
+0xc8, 0x90, 0x9f, 0xe5, 0x14, 0x40, 0x9b, 0xe5, 0x00, 0x00, 0x54, 0xe3, 
+0x2c, 0x00, 0x00, 0x0a, 0x03, 0x0a, 0x14, 0xe3, 0x11, 0x00, 0x00, 0x0a, 
+0x0c, 0x00, 0x96, 0xe5, 0x00, 0x00, 0x50, 0xe3, 0x21, 0x00, 0x00, 0x0a, 
+0x01, 0x0a, 0x14, 0xe3, 0x05, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x96, 0xe5, 
+0x01, 0x0a, 0xc0, 0xe3, 0x1c, 0x00, 0x86, 0xe5, 0x1c, 0x00, 0x85, 0xe5, 
+0x14, 0x70, 0x85, 0xe5, 0x06, 0x00, 0x00, 0xea, 0x02, 0x0a, 0x14, 0xe3, 
+0x04, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x96, 0xe5, 0x02, 0x0a, 0xc0, 0xe3, 
+0x1c, 0x00, 0x86, 0xe5, 0x1c, 0x00, 0x85, 0xe5, 0x14, 0x80, 0x85, 0xe5, 
+0x01, 0x09, 0x14, 0xe3, 0x04, 0x00, 0x00, 0x0a, 0x1c, 0x00, 0x96, 0xe5, 
+0x01, 0x09, 0xc0, 0xe3, 0x1c, 0x00, 0x86, 0xe5, 0x1c, 0x00, 0x85, 0xe5, 
+0x14, 0xa0, 0x85, 0xe5, 0x02, 0x00, 0x14, 0xe3, 0x40, 0x00, 0x00, 0x1b, 
+0x01, 0x00, 0x14, 0xe3, 0x54, 0x00, 0x00, 0x1b, 0x02, 0x0b, 0x14, 0xe3, 
+0x67, 0x00, 0x00, 0x1b, 0x01, 0x0b, 0x14, 0xe3, 0x20, 0x00, 0x00, 0x1b, 
+0x18, 0x00, 0x99, 0xe5, 0x01, 0x00, 0x80, 0xe2, 0x18, 0x00, 0x89, 0xe5, 
+0xd5, 0xff, 0xff, 0xea, 0x1c, 0x00, 0x96, 0xe5, 0x01, 0x0a, 0xc0, 0xe3, 
+0x1c, 0x00, 0x86, 0xe5, 0x1c, 0x00, 0x85, 0xe5, 
+0x14, 0x70, 0x85, 0xe5, 0xe1, 0xff, 0xff, 0xea, 0xff, 0x5f, 0xbd, 0xe8, 
+0x04, 0xf0, 0x5e, 0xe2, 0x68, 0x0e, 0x00, 0x80, 0x08, 0x83, 0x20, 0x40, 
+0x10, 0x10, 0x1f, 0xe5, 0x14, 0x30, 0x91, 0xe5, 0x00, 0x20, 0xc3, 0xe1, 
+0x14, 0x20, 0x81, 0xe5, 0x01, 0x16, 0xa0, 0xe3, 0x0c, 0x20, 0x81, 0xe5, 
+0x0b, 0x12, 0xa0, 0xe3, 0x00, 0x00, 0x81, 0xe5, 0x18, 0x10, 0x9f, 0xe5, 
+0xb0, 0x24, 0xd1, 0xe1, 0x01, 0x20, 0x82, 0xe2, 0xb0, 0x24, 0xc1, 0xe1, 
+0x3c, 0x20, 0x91, 0xe5, 0x00, 0x00, 0x82, 0xe1, 0x3c, 0x00, 0x81, 0xe5, 
+0x1e, 0xff, 0x2f, 0xe1, 0xa0, 0x82, 0x20, 0x40, 0xff, 0xff, 0xff, 0xea, 
+0xfe, 0xff, 0xff, 0xea, 0x01, 0x0b, 0xa0, 0xe3, 0x01, 0x16, 0xa0, 0xe3, 
+0x14, 0x00, 0x81, 0xe5, 0x00, 0x1a, 0x81, 0xe1, 0x24, 0x20, 0x91, 0xe5, 
+0x70, 0x00, 0x1f, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x24, 0x20, 0x80, 0xe5, 
+0x28, 0x10, 0x91, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x28, 0x10, 0x80, 0xe5, 
+0x2c, 0x20, 0x90, 0xe5, 0x01, 0x20, 0x82, 0xe2, 0x2c, 0x20, 0x80, 0xe5, 
+0x3f, 0x00, 0x01, 0xe2, 0x3f, 0x00, 0x50, 0xe3, 0x1e, 0xff, 0x2f, 0x11, 
+0x18, 0x00, 0x9f, 0xe5, 0x00, 0x10, 0x90, 0xe5, 0x01, 0x10, 0x81, 0xe2, 
+0x00, 0x10, 0x80, 0xe5, 0x02, 0x18, 0xa0, 0xe3, 0x0b, 0x02, 0xa0, 0xe3, 
+0x00, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x30, 0x04, 0x00, 0x80, 
+0x01, 0x06, 0xa0, 0xe3, 0x01, 0x01, 0x80, 0xe2, 0x00, 0x10, 0x90, 0xe5, 
+0x01, 0x08, 0x11, 0xe3, 0x0b, 0x10, 0xa0, 0xe3, 0x02, 0x19, 0x81, 0xe2, 
+0x05, 0x00, 0x00, 0x1a, 0x00, 0x20, 0x90, 0xe5, 0x42, 0x28, 0xb0, 0xe1, 
+0x05, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x90, 0xe5, 0x02, 0x0c, 0x10, 0xe3, 
+0x02, 0x00, 0x00, 0x0a, 0x06, 0x07, 0xa0, 0xe3, 0x4c, 0x11, 0x80, 0xe5, 
+0x03, 0x00, 0x00, 0xea, 0x0c, 0x00, 0x9f, 0xe5, 0x00, 0x00, 0x00, 0x00, 
+0x40, 0x10, 0x80, 0xe5, 0xff, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 
+0x00, 0x00, 0x00, 0x80, 0x01, 0x06, 0xa0, 0xe3, 0x01, 0x01, 0x80, 0xe2, 
+0x00, 0x10, 0x90, 0xe5, 0x01, 0x08, 0x11, 0xe3, 0x0c, 0x10, 0xa0, 0xe3, 
+0x02, 0x19, 0x81, 0xe2, 0x05, 0x00, 0x00, 0x1a, 0x00, 0x20, 0x90, 0xe5, 
+0x42, 0x28, 0xb0, 0xe1, 0x05, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x90, 0xe5, 
+0x02, 0x0c, 0x10, 0xe3, 0x02, 0x00, 0x00, 0x0a, 0x06, 0x07, 0xa0, 0xe3, 
+0x4c, 0x11, 0x80, 0xe5, 0x03, 0x00, 0x00, 0xea, 0x4c, 0x00, 0x1f, 0xe5, 
+0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x80, 0xe5, 0xff, 0xff, 0xff, 0xea, 
 0xfe, 0xff, 0xff, 0xea, 0x02, 0x1b, 0xa0, 0xe3, 0x01, 0x06, 0xa0, 0xe3, 
-0x14, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x04, 0x21, 0x1f, 0xe5, 
-0x10, 0x30, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x80, 0xe5, 
-0x18, 0x00, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xe5, 
-0x00, 0x10, 0xa0, 0xe3, 0x10, 0x10, 0x82, 0xe5, 0x01, 0x06, 0xa0, 0xe3, 
-0x18, 0x10, 0x82, 0xe5, 0x0c, 0x10, 0x80, 0xe5, 0x18, 0x10, 0x92, 0xe5, 
+0x14, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 0x80, 0x21, 0x1f, 0xe5, 
+0x14, 0x30, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x80, 0xe5, 
+0x1c, 0x00, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xe5, 
+0x00, 0x10, 0xa0, 0xe3, 0x14, 0x10, 0x82, 0xe5, 0x01, 0x06, 0xa0, 0xe3, 
+0x1c, 0x10, 0x82, 0xe5, 0x0c, 0x10, 0x80, 0xe5, 0x1c, 0x10, 0x92, 0xe5, 
 0x00, 0x00, 0x00, 0x00, 0x1c, 0x10, 0x80, 0xe5, 0x1e, 0xff, 0x2f, 0xe1, 
-0x44, 0x21, 0x1f, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x18, 0x10, 0x82, 0xe5, 
-0x01, 0x16, 0xa0, 0xe3, 0x10, 0x00, 0x82, 0xe5, 0x0c, 0x00, 0x81, 0xe5, 
-0x18, 0x00, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x81, 0xe5, 
+0xc0, 0x21, 0x1f, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x10, 0x82, 0xe5, 
+0x01, 0x16, 0xa0, 0xe3, 0x14, 0x00, 0x82, 0xe5, 0x0c, 0x00, 0x81, 0xe5, 
+0x1c, 0x00, 0x92, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x81, 0xe5, 
 0x1e, 0xff, 0x2f, 0xe1, 0x80, 0xb5, 0x0f, 0x1c, 0x38, 0x1c, 0x00, 0xf0, 
-0x17, 0xf8, 0x00, 0x28, 0x02, 0xd0, 0x38, 0x1c, 0x00, 0xf0, 0x76, 0xf8, 
-0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x80, 0xb5, 0x0f, 0x1c, 
-0x38, 0x1c, 0x00, 0xf0, 0x09, 0xf8, 0x00, 0x28, 0x02, 0xd0, 0x38, 0x1c, 
-0x00, 0xf0, 0x68, 0xf8, 0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0xf0, 0xb4, 0x07, 0x68, 0x3a, 0x78, 0xd2, 0x07, 0xd2, 0x0f, 0x00, 0x24, 
-0x00, 0x2a, 0x03, 0xd0, 0xff, 0x22, 0x01, 0x32, 
+0x17, 0xf8, 0x00, 0x28, 0x02, 0xd0, 0x38, 0x1c, 
+0x00, 0xf0, 0x92, 0xf8, 0x00, 0x20, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
+0x80, 0xb5, 0x0f, 0x1c, 0x38, 0x1c, 0x00, 0xf0, 0x09, 0xf8, 0x00, 0x28, 
+0x02, 0xd0, 0x38, 0x1c, 0x00, 0xf0, 0x84, 0xf8, 0x00, 0x20, 0x80, 0xbc, 
+0x08, 0xbc, 0x18, 0x47, 0xf0, 0xb4, 0x07, 0x68, 0x3a, 0x78, 0xd2, 0x07, 
+0xd2, 0x0f, 0x00, 0x24, 0x00, 0x2a, 0x03, 0xd0, 0xff, 0x22, 0x01, 0x32, 
 0x42, 0x60, 0x00, 0xe0, 0x44, 0x60, 0x3a, 0x7b, 0x7b, 0x7b, 0x1b, 0x02, 
 0x1a, 0x43, 0x81, 0x2a, 0x08, 0xd1, 0x01, 0x23, 0x5b, 0x02, 0x42, 0x68, 
 0x1a, 0x43, 0x42, 0x60, 0x04, 0x22, 0xbf, 0x18, 0x82, 0x60, 0x00, 0xe0, 
 0x84, 0x60, 0x3a, 0x7b, 0x7b, 0x7b, 0x1b, 0x02, 0x1a, 0x43, 0x08, 0x2a, 
 0x06, 0xd1, 0x06, 0x23, 0x41, 0x68, 0x19, 0x43, 0x41, 0x60, 0x81, 0x68, 
-0x0e, 0x31, 0x2c, 0xe0, 0x13, 0x02, 0x12, 0x0a, 0x12, 0x06, 0x12, 0x0e, 
-0x1a, 0x43, 0x12, 0x04, 0x12, 0x0c, 0x2e, 0x3a, 0x16, 0x4b, 0x9a, 0x42, 
-0x24, 0xd8, 0x01, 0x25, 0x42, 0x68, 0x15, 0x43, 0x45, 0x60, 0xba, 0x7b, 
-0xfb, 0x7b, 0x1b, 0x02, 0x1a, 0x43, 0x12, 0x4b, 0x9a, 0x42, 0x19, 0xd1, 
-0xfb, 0x1d, 0x09, 0x33, 0x44, 0xcb, 0x9b, 0x07, 0xdb, 0x0e, 0xda, 0x40, 
-0x5b, 0x42, 0x20, 0x33, 0x9e, 0x40, 0x16, 0x43, 0x03, 0x2e, 0x0f, 0xd1, 
-0x39, 0x7d, 0x7b, 0x7d, 0x1b, 0x02, 0x19, 0x43, 0x08, 0x29, 0x07, 0xd1, 
-0x04, 0x21, 0x29, 0x43, 0x41, 0x60, 0x81, 0x68, 0x16, 0x31, 0x81, 0x60, 
-0x01, 0x21, 0x01, 0xe0, 0x00, 0x21, 0x84, 0x60, 0x08, 0x1c, 0xf0, 0xbc, 
-0x70, 0x47, 0x00, 0x00, 0xae, 0x05, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 
-0x80, 0xb4, 0x42, 0x68, 0xd1, 0x08, 0x3f, 0xd3, 0x01, 0x68, 0x83, 0x68, 
-0x59, 0x18, 0x02, 0x39, 0x8f, 0x78, 0xff, 0x06, 0xff, 0x0e, 0x05, 0x2f, 
-0x03, 0xd1, 0xda, 0x1d, 0x0d, 0x32, 0xc2, 0x60, 0x05, 0xe0, 0xbf, 0x00, 
-0xdb, 0x19, 0xc3, 0x60, 0x08, 0x23, 0x1a, 0x43, 0x42, 0x60, 0x8a, 0x78, 
-0xd2, 0x06, 0xd2, 0x0e, 0x92, 0x00, 0x02, 0x61, 0x0a, 0x79, 0x4b, 0x79, 
-0x1b, 0x02, 0x1a, 0x43, 0x13, 0x02, 0x12, 0x0a, 0x12, 0x06, 0x12, 0x0e, 
-0x1a, 0x43, 0x12, 0x04, 0x12, 0x0c, 0x42, 0x61, 0xca, 0x7a, 0x06, 0x2a, 
-0x03, 0xd1, 0x10, 0x23, 0x42, 0x68, 0x1a, 0x43, 0x10, 0xe0, 0x11, 0x2a, 
-0x03, 0xd1, 0x20, 0x23, 0x42, 0x68, 0x1a, 0x43, 0x0a, 0xe0, 0x33, 0x2a, 
-0x03, 0xd1, 0x40, 0x23, 0x42, 0x68, 0x1a, 0x43, 0x04, 0xe0, 0x32, 0x2a, 
-0x03, 0xd1, 0x80, 0x23, 0x42, 0x68, 0x1a, 0x43, 0x42, 0x60, 0xc9, 0x7a, 
-0xc0, 0x46, 0x01, 0x76, 0x80, 0xbc, 0x70, 0x47, 0x0a, 0x78, 0xc0, 0x46, 
-0x02, 0x60, 0x4b, 0x78, 0x1b, 0x02, 0x1a, 0x43, 0x02, 0x60, 0x8b, 0x78, 
-0x1b, 0x04, 0x1a, 0x43, 0x02, 0x60, 0xc9, 0x78, 0x09, 0x06, 0x11, 0x43, 
-0x01, 0x60, 0x70, 0x47, 0xf0, 0xb5, 0x00, 0x21, 0x00, 0x24, 0x00, 0x27, 
-0x80, 0x6a, 0x02, 0x7b, 0x43, 0x7b, 0x1b, 0x02, 0x1a, 0x43, 0x81, 0x2a, 
-0x00, 0xd1, 0x04, 0x30, 0x02, 0x7b, 0x43, 0x7b, 0x1b, 0x02, 0x1a, 0x43, 
-0x08, 0x2a, 0x01, 0xd1, 0x0e, 0x30, 0x24, 0xe0, 0x13, 0x02, 0x12, 0x0a, 
-0x12, 0x06, 0x12, 0x0e, 0x1a, 0x43, 0x12, 0x04, 0x12, 0x0c, 0x2e, 0x3a, 
-0x42, 0x4b, 0x9a, 0x42, 0x74, 0xd8, 0x82, 0x7b, 0xc3, 0x7b, 0x1b, 0x02, 
-0x1a, 0x43, 0x40, 0x4b, 0x9a, 0x42, 0x6e, 0xd1, 0xc3, 0x1d, 0x09, 0x33, 
-0x24, 0xcb, 0x9b, 0x07, 0xdb, 0x0e, 0xda, 0x40, 0x5b, 0x42, 0x20, 0x33, 
-0x9d, 0x40, 0x15, 0x43, 0x03, 0x2d, 0x63, 0xd1, 0x02, 0x7d, 0x43, 0x7d, 
-0x1b, 0x02, 0x1a, 0x43, 0x08, 0x2a, 0x5c, 0xd1, 0x16, 0x30, 0x42, 0x7a, 
-0x11, 0x2a, 0x58, 0xd1, 0x02, 0x78, 0xd2, 0x06, 0xd2, 0x0e, 0x92, 0x00, 
-0x10, 0x18, 0x02, 0x78, 0x43, 0x78, 0x1b, 0x02, 0x1a, 0x43, 0x43, 0x23, 
-0x1b, 0x02, 0x9a, 0x42, 0x4b, 0xd1, 0xc3, 0x1d, 0x01, 0x33, 0xd8, 0x1d, 
-0xe9, 0x30, 0x02, 0x78, 0x35, 0x2a, 0x04, 0xd1, 
-0x82, 0x78, 0x05, 0x2a, 0x19, 0xd1, 0x01, 0x21, 0x0d, 0xe0, 0x01, 0x2a, 
-0x01, 0xd1, 0x87, 0x1c, 0x09, 0xe0, 0x03, 0x2a, 0x01, 0xd1, 0x84, 0x1c, 
-0x05, 0xe0, 0xff, 0x2a, 0x0d, 0xd0, 0x00, 0x2a, 0x01, 0xd1, 0x01, 0x30, 
-0x02, 0xe0, 0x42, 0x78, 0x10, 0x18, 0x02, 0x30, 0x00, 0x2f, 0xe4, 0xd0, 
-0x00, 0x2c, 0xe2, 0xd0, 0x00, 0x29, 0xe0, 0xd0, 0x01, 0xe0, 0x00, 0x29, 
-0x2e, 0xd0, 0xd9, 0x1d, 0x09, 0x31, 0x0e, 0x1c, 0x19, 0x4d, 0xe3, 0x23, 
-0x1b, 0x01, 0xe8, 0x18, 0xff, 0xf7, 0x78, 0xff, 0x00, 0x2f, 0x04, 0xd0, 
-0x16, 0x4b, 0xe8, 0x18, 0x39, 0x1c, 0xff, 0xf7, 0x71, 0xff, 0x00, 0x2c, 
-0x04, 0xd0, 0x14, 0x4b, 0xe8, 0x18, 0x21, 0x1c, 0xff, 0xf7, 0x6a, 0xff, 
-0x31, 0x1c, 0x12, 0x4d, 0xe8, 0x1d, 0x11, 0x30, 0xff, 0xf7, 0x64, 0xff, 
-0x00, 0x2f, 0x08, 0xd0, 0xe8, 0x1d, 0x0d, 0x30, 0x39, 0x1c, 0xff, 0xf7, 
-0x5d, 0xff, 0x02, 0xe0, 0x08, 0xe0, 0x07, 0xe0, 0x06, 0xe0, 0x00, 0x2c, 
-0x04, 0xd0, 0xe8, 0x1d, 0x09, 0x30, 0x21, 0x1c, 0xff, 0xf7, 0x52, 0xff, 
-0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x00, 0xae, 0x05, 0x00, 0x00, 
-0xaa, 0xaa, 0x00, 0x00, 0xf8, 0x0d, 0x00, 0x80, 0x34, 0x0e, 0x00, 0x00, 
-0x38, 0x0e, 0x00, 0x00, 0x98, 0x6e, 0x21, 0x40, 0x80, 0xb5, 0x07, 0x1c, 
-0x48, 0x68, 0x80, 0x09, 0x26, 0xd3, 0xb8, 0x6a, 0xc9, 0x68, 0x40, 0x18, 
-0x01, 0x23, 0x9b, 0x07, 0x02, 0x30, 0x18, 0x43, 0x00, 0x68, 0x00, 0x04, 
-0x00, 0x0c, 0x11, 0x23, 0x9b, 0x02, 0x98, 0x42, 0x18, 0xd1, 0x78, 0x6a, 
-0x39, 0x6b, 0xc0, 0x46, 0x48, 0x62, 0x38, 0x6b, 0x02, 0xf0, 0x26, 0xfc, 
-0x38, 0x1c, 0x02, 0xf0, 0xdc, 0xf8, 0x01, 0x20, 0x07, 0x49, 0xc0, 0x46, 
-0xc8, 0x70, 0x07, 0x49, 0x4a, 0x6c, 0x12, 0x18, 0x4a, 0x64, 0x06, 0x49, 
-0x8a, 0x6d, 0x12, 0x18, 0x8a, 0x65, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0x00, 0x20, 0xfa, 0xe7, 0xa8, 0x19, 0x00, 0x80, 0x94, 0x2c, 0x00, 0x80, 
-0x2c, 0x2c, 0x00, 0x80, 0x81, 0x07, 0x19, 0xd0, 0x80, 0x08, 0x80, 0x00, 
-0x01, 0x23, 0x9b, 0x07, 0x01, 0x1d, 0x18, 0x43, 0x00, 0x68, 0x19, 0x43, 
-0x09, 0x68, 0x02, 0x02, 0x12, 0x0e, 0x12, 0x06, 0x00, 0x0a, 0xff, 0x23, 
-0x1b, 0x04, 0x18, 0x40, 0x10, 0x43, 0x0a, 0x0a, 0x12, 0x06, 0x12, 0x0e, 
-0x10, 0x43, 0x09, 0x02, 0x1b, 0x0a, 0x19, 0x40, 0x08, 0x43, 0x70, 0x47, 
-0x01, 0x23, 0x9b, 0x07, 0x18, 0x43, 0x00, 0x68, 0x01, 0x06, 0x02, 0x02, 
-0xff, 0x23, 0x1b, 0x04, 0x1a, 0x40, 0x11, 0x43, 0x02, 0x0a, 0x1b, 0x0a, 
-0x1a, 0x40, 0x11, 0x43, 0x00, 0x0e, 0x08, 0x43, 0xed, 0xe7, 0x00, 0x00, 
-0xf0, 0xb5, 0x04, 0x23, 0x81, 0x6b, 0x19, 0x40, 0x00, 0x22, 0x00, 0x29, 
-0x46, 0xd0, 0xc7, 0x1d, 0x39, 0x37, 0x39, 0x7b, 0x33, 0x29, 0x01, 0xd0, 
-0x32, 0x29, 0x3f, 0xd1, 0x01, 0x6b, 0xc0, 0x46, 0x4a, 0x65, 0xc4, 0x1d, 
-0x2d, 0x34, 0xcd, 0x1d, 0x2d, 0x35, 0x00, 0x22, 0x93, 0x00, 0xe6, 0x58, 
-0xc0, 0x46, 0xee, 0x50, 0x01, 0x32, 0x07, 0x2a, 0xf8, 0xd3, 0x82, 0x6a, 
-0xc0, 0x46, 0x4a, 0x63, 0x82, 0x6a, 0xc0, 0x46, 0x8a, 0x62, 0x7a, 0x8b, 
-0xcb, 0x1d, 0x39, 0x33, 0x5a, 0x83, 0x40, 0x6a, 0xc0, 0x46, 0x48, 0x62, 
-0x12, 0x48, 0x01, 0x27, 0x42, 0x68, 0x00, 0x2a, 0x10, 0xd1, 0xc2, 0x68, 
-0x00, 0x2a, 0x13, 0xd1, 0x42, 0x69, 0x00, 0x2a, 0x0d, 0xd1, 0x01, 0x61, 
-0xc1, 0x60, 0x01, 0x6a, 0x02, 0x29, 0x02, 0xd3, 0x20, 0x30, 0x07, 0x71, 
-0x0c, 0xe0, 0x00, 0xf0, 0x13, 0xf8, 0x09, 0xe0, 
-0xc2, 0x68, 0x00, 0x2a, 0x02, 0xd1, 0x01, 0x61, 0xc1, 0x60, 0x03, 0xe0, 
-0x02, 0x69, 0xc0, 0x46, 0x51, 0x65, 0x01, 0x61, 0x38, 0x1c, 0xf0, 0xbc, 
-0x08, 0xbc, 0x18, 0x47, 0x10, 0x1c, 0xfa, 0xe7, 0xfc, 0x05, 0x00, 0x80, 
-0x90, 0xb5, 0x1e, 0x49, 0x00, 0x27, 0xca, 0x68, 0x00, 0x2a, 0x35, 0xd0, 
-0xc8, 0x1d, 0xf9, 0x30, 0x82, 0x62, 0xca, 0x68, 0x92, 0x6a, 0xc0, 0x46, 
-0xc2, 0x62, 0xca, 0x69, 0x53, 0x00, 0x9b, 0x18, 0x5b, 0x02, 0x17, 0x4a, 
-0x9c, 0x18, 0x17, 0x4b, 0xe3, 0x18, 0x82, 0x63, 0x03, 0x63, 0xcb, 0x1d, 
-0xff, 0x33, 0x5a, 0x33, 0x1f, 0x72, 0x3a, 0x1c, 0xcb, 0x69, 0x00, 0x2b, 
-0x01, 0xd0, 0xca, 0x61, 0x01, 0xe0, 0x01, 0x23, 0xcb, 0x61, 0x0f, 0x1c, 
-0xc9, 0x68, 0x49, 0x6a, 0x09, 0x89, 0x01, 0x31, 0x41, 0x63, 0xf8, 0x1d, 
-0xff, 0x30, 0x3a, 0x30, 0x42, 0x60, 0x02, 0x82, 0x82, 0x60, 0xc2, 0x60, 
-0x38, 0x1c, 0x00, 0xf0, 0xcb, 0xfa, 0x38, 0x6a, 0x01, 0x30, 0x38, 0x62, 
-0x38, 0x1c, 0x00, 0xf0, 0x0b, 0xf8, 0x90, 0xbc, 0x08, 0xbc, 0x18, 0x47, 
-0x38, 0x1c, 0xfa, 0xe7, 0xfc, 0x05, 0x00, 0x80, 0x48, 0xad, 0x20, 0x40, 
-0x64, 0x07, 0x00, 0x00, 0xf0, 0xb5, 0x07, 0x1c, 0xf9, 0x1d, 0xf9, 0x31, 
+0x0e, 0x31, 0x3c, 0xe0, 0xc1, 0x23, 0xdb, 0x00, 0x9a, 0x42, 0x03, 0xd1, 
+0x41, 0x68, 0x24, 0x4b, 0x19, 0x43, 0x3e, 0xe0, 0x23, 0x4b, 0x9a, 0x42, 
+0x04, 0xd1, 0x01, 0x23, 0x1b, 0x03, 0x41, 0x68, 0x19, 0x43, 0x36, 0xe0, 
+0x13, 0x02, 0x12, 0x0a, 0x12, 0x06, 0x12, 0x0e, 0x1a, 0x43, 0x12, 0x04, 
+0x12, 0x0c, 0x2e, 0x3a, 0x1c, 0x4b, 0x9a, 0x42, 0x2d, 0xd8, 0x01, 0x25, 
+0x42, 0x68, 0x15, 0x43, 0x45, 0x60, 0xba, 0x7b, 0xfb, 0x7b, 0x1b, 0x02, 
+0x1a, 0x43, 0x18, 0x4b, 0x9a, 0x42, 0x22, 0xd1, 0xfb, 0x1d, 0x09, 0x33, 
+0x44, 0xcb, 0x9b, 0x07, 0xdb, 0x0e, 0xda, 0x40, 0x5b, 0x42, 0x20, 0x33, 
+0x9e, 0x40, 0x16, 0x43, 0x03, 0x2e, 0x18, 0xd1, 0x39, 0x7d, 0x7b, 0x7d, 
+0x1b, 0x02, 0x19, 0x43, 0x08, 0x29, 0x07, 0xd1, 0x04, 0x21, 0x29, 0x43, 
+0x41, 0x60, 0x81, 0x68, 0x16, 0x31, 0x81, 0x60, 0x01, 0x21, 0x0a, 0xe0, 
+0xc1, 0x23, 0xdb, 0x00, 0x99, 0x42, 0x04, 0xd1, 0x01, 0x21, 0x89, 0x03, 
+0x29, 0x43, 0x41, 0x60, 0x00, 0xe0, 0x84, 0x60, 0x00, 0x21, 0x08, 0x1c, 
+0xf0, 0xbc, 0x70, 0x47, 0x02, 0x40, 0x00, 0x00, 0x81, 0x80, 0x00, 0x00, 
+0xae, 0x05, 0x00, 0x00, 0xaa, 0xaa, 0x00, 0x00, 0x80, 0xb4, 0x42, 0x68, 
+0xd1, 0x08, 0x3f, 0xd3, 0x01, 0x68, 0x83, 0x68, 0x59, 0x18, 0x02, 0x39, 
+0x8f, 0x78, 0x3f, 0x07, 0x3f, 0x0f, 0x05, 0x2f, 0x03, 0xd1, 0xda, 0x1d, 
+0x0d, 0x32, 0xc2, 0x60, 0x05, 0xe0, 0xbf, 0x00, 0xdb, 0x19, 0xc3, 0x60, 
+0x08, 0x23, 0x1a, 0x43, 0x42, 0x60, 0x8a, 0x78, 0x12, 0x07, 0x12, 0x0f, 
+0x92, 0x00, 0x02, 0x61, 0x0a, 0x79, 0x4b, 0x79, 0x1b, 0x02, 0x1a, 0x43, 
+0x13, 0x02, 0x12, 0x0a, 0x12, 0x06, 0x12, 0x0e, 0x1a, 0x43, 0x12, 0x04, 
+0x12, 0x0c, 0x42, 0x61, 0xca, 0x7a, 0x06, 0x2a, 0x03, 0xd1, 0x10, 0x23, 
+0x42, 0x68, 0x1a, 0x43, 0x10, 0xe0, 0x11, 0x2a, 0x03, 0xd1, 0x20, 0x23, 
+0x42, 0x68, 0x1a, 0x43, 0x0a, 0xe0, 0x33, 0x2a, 0x03, 0xd1, 0x40, 0x23, 
+0x42, 0x68, 0x1a, 0x43, 0x04, 0xe0, 0x32, 0x2a, 0x03, 0xd1, 0x80, 0x23, 
+0x42, 0x68, 0x1a, 0x43, 0x42, 0x60, 0xc9, 0x7a, 0xc0, 0x46, 0x01, 0x76, 
+0x80, 0xbc, 0x70, 0x47, 0x0a, 0x78, 0xc0, 0x46, 0x02, 0x60, 0x4b, 0x78, 
+0x1b, 0x02, 0x1a, 0x43, 0x02, 0x60, 0x8b, 0x78, 0x1b, 0x04, 0x1a, 0x43, 
+0x02, 0x60, 0xc9, 0x78, 0x09, 0x06, 0x11, 0x43, 0x01, 0x60, 0x70, 0x47, 
+0x80, 0xb5, 0x07, 0x1c, 0x48, 0x68, 0x80, 0x09, 0x26, 0xd3, 0xb8, 0x6a, 
+0xc9, 0x68, 0x40, 0x18, 0x01, 0x23, 0x9b, 0x07, 0x02, 0x30, 0x18, 0x43, 
+0x00, 0x68, 0x00, 0x04, 0x00, 0x0c, 0x11, 0x23, 0x9b, 0x02, 0x98, 0x42, 
+0x18, 0xd1, 0x78, 0x6a, 0x39, 0x6b, 0xc0, 0x46, 
+0x48, 0x62, 0x38, 0x6b, 0x02, 0xf0, 0xd0, 0xf8, 0x38, 0x1c, 0x01, 0xf0, 
+0x8b, 0xfd, 0x01, 0x20, 0x07, 0x49, 0xc0, 0x46, 0xc8, 0x73, 0x07, 0x49, 
+0x4a, 0x6c, 0x12, 0x18, 0x4a, 0x64, 0x06, 0x49, 0x8a, 0x6d, 0x12, 0x18, 
+0x8a, 0x65, 0x80, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x00, 0x20, 0xfa, 0xe7, 
+0x18, 0x1a, 0x00, 0x80, 0x0c, 0x2b, 0x00, 0x80, 0xa4, 0x2a, 0x00, 0x80, 
+0x81, 0x07, 0x19, 0xd0, 0x80, 0x08, 0x80, 0x00, 0x01, 0x23, 0x9b, 0x07, 
+0x01, 0x1d, 0x18, 0x43, 0x00, 0x68, 0x19, 0x43, 0x09, 0x68, 0x02, 0x02, 
+0x12, 0x0e, 0x12, 0x06, 0x00, 0x0a, 0xff, 0x23, 0x1b, 0x04, 0x18, 0x40, 
+0x10, 0x43, 0x0a, 0x0a, 0x12, 0x06, 0x12, 0x0e, 0x10, 0x43, 0x09, 0x02, 
+0x1b, 0x0a, 0x19, 0x40, 0x08, 0x43, 0x70, 0x47, 0x01, 0x23, 0x9b, 0x07, 
+0x18, 0x43, 0x00, 0x68, 0x01, 0x06, 0x02, 0x02, 0xff, 0x23, 0x1b, 0x04, 
+0x1a, 0x40, 0x11, 0x43, 0x02, 0x0a, 0x1b, 0x0a, 0x1a, 0x40, 0x11, 0x43, 
+0x00, 0x0e, 0x08, 0x43, 0xed, 0xe7, 0x00, 0x00, 0xf0, 0xb5, 0x04, 0x23, 
+0x81, 0x6b, 0x19, 0x40, 0x00, 0x22, 0x00, 0x29, 0x46, 0xd0, 0xc7, 0x1d, 
+0x39, 0x37, 0x39, 0x7b, 0x33, 0x29, 0x01, 0xd0, 0x32, 0x29, 0x3f, 0xd1, 
+0x01, 0x6b, 0xc0, 0x46, 0x4a, 0x65, 0xc4, 0x1d, 0x2d, 0x34, 0xcd, 0x1d, 
+0x2d, 0x35, 0x00, 0x22, 0x93, 0x00, 0xe6, 0x58, 0xc0, 0x46, 0xee, 0x50, 
+0x01, 0x32, 0x07, 0x2a, 0xf8, 0xd3, 0x82, 0x6a, 0xc0, 0x46, 0x4a, 0x63, 
+0x82, 0x6a, 0xc0, 0x46, 0x8a, 0x62, 0x7a, 0x8b, 0xcb, 0x1d, 0x39, 0x33, 
+0x5a, 0x83, 0x40, 0x6a, 0xc0, 0x46, 0x48, 0x62, 0x12, 0x48, 0x01, 0x27, 
+0x42, 0x68, 0x00, 0x2a, 0x10, 0xd1, 0xc2, 0x68, 0x00, 0x2a, 0x13, 0xd1, 
+0x42, 0x69, 0x00, 0x2a, 0x0d, 0xd1, 0x01, 0x61, 0xc1, 0x60, 0x01, 0x6a, 
+0x02, 0x29, 0x02, 0xd3, 0x20, 0x30, 0x07, 0x71, 0x0c, 0xe0, 0x00, 0xf0, 
+0x13, 0xf8, 0x09, 0xe0, 0xc2, 0x68, 0x00, 0x2a, 0x02, 0xd1, 0x01, 0x61, 
+0xc1, 0x60, 0x03, 0xe0, 0x02, 0x69, 0xc0, 0x46, 0x51, 0x65, 0x01, 0x61, 
+0x38, 0x1c, 0xf0, 0xbc, 0x08, 0xbc, 0x18, 0x47, 0x10, 0x1c, 0xfa, 0xe7, 
+0x6c, 0x06, 0x00, 0x80, 0x80, 0xb5, 0x1e, 0x49, 0x00, 0x22, 0xcb, 0x68, 
+0x00, 0x2b, 0x34, 0xd0, 0xc8, 0x1d, 0xf9, 0x30, 0x83, 0x62, 0xcb, 0x68, 
+0x9b, 0x6a, 0xc0, 0x46, 0xc3, 0x62, 0xcf, 0x69, 0x7b, 0x00, 0xdf, 0x19, 
+0x7f, 0x02, 0x17, 0x4b, 0xff, 0x18, 0xff, 0x37, 0x65, 0x37, 0x83, 0x63, 
+0x07, 0x63, 0xcb, 0x1d, 0xff, 0x33, 0x5a, 0x33, 0x1a, 0x72, 0xcb, 0x69, 
+0x00, 0x2b, 0x01, 0xd0, 0xca, 0x61, 0x01, 0xe0, 0x01, 0x23, 0xcb, 0x61, 
+0x0f, 0x1c, 0xc9, 0x68, 0x49, 0x6a, 0x09, 0x89, 0x01, 0x31, 0x41, 0x63, 
+0xf8, 0x1d, 0xff, 0x30, 0x3a, 0x30, 0x42, 0x60, 0x02, 0x82, 0x82, 0x60, 
+0xc2, 0x60, 0x38, 0x1c, 0x00, 0xf0, 0xce, 0xfa, 0x38, 0x6a, 0x01, 0x30, 
+0x38, 0x62, 0x38, 0x1c, 0x00, 0xf0, 0x0a, 0xf8, 0x80, 0xbc, 0x08, 0xbc, 
+0x18, 0x47, 0x10, 0x1c, 0xfa, 0xe7, 0x00, 0x00, 0x6c, 0x06, 0x00, 0x80, 
+0x1c, 0xad, 0x20, 0x40, 0xf0, 0xb5, 0x07, 0x1c, 0xf9, 0x1d, 0xf9, 0x31, 
 0x88, 0x6a, 0xc2, 0x1d, 0x2d, 0x32, 0x01, 0x23, 0x9b, 0x07, 0x08, 0x32, 
 0x1a, 0x43, 0xc8, 0x6a, 0x12, 0x68, 0x12, 0x04, 0x12, 0x0c, 0x80, 0x18, 
 0x82, 0x79, 0xc3, 0x79, 0x1b, 0x02, 0x1a, 0x43, 0x13, 0x02, 0x12, 0x0a, 
 0x12, 0x06, 0x12, 0x0e, 0x1a, 0x43, 0x12, 0x04, 0x12, 0x0c, 0x02, 0x38, 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 01:15:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4A75A106566B;
	Thu, 19 Mar 2009 01:15:27 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 385D18FC16;
	Thu, 19 Mar 2009 01:15:27 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J1FROo043803;
	Thu, 19 Mar 2009 01:15:27 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J1FRwg043802;
	Thu, 19 Mar 2009 01:15:27 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903190115.n2J1FRwg043802@svn.freebsd.org>
From: Bruce M Simpson 
Date: Thu, 19 Mar 2009 01:15:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190011 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 01:15:27 -0000

Author: bms
Date: Thu Mar 19 01:15:26 2009
New Revision: 190011
URL: http://svn.freebsd.org/changeset/base/190011

Log:
  Comment IGMP_PIM as being very historic, as in, don't use.

Modified:
  head/sys/netinet/igmp.h

Modified: head/sys/netinet/igmp.h
==============================================================================
--- head/sys/netinet/igmp.h	Thu Mar 19 01:07:21 2009	(r190010)
+++ head/sys/netinet/igmp.h	Thu Mar 19 01:15:26 2009	(r190011)
@@ -108,7 +108,7 @@ struct igmp_report {
 #define IGMP_HOST_MEMBERSHIP_QUERY	0x11	/* membership query         */
 #define IGMP_v1_HOST_MEMBERSHIP_REPORT	0x12	/* Ver. 1 membership report */
 #define IGMP_DVMRP			0x13	/* DVMRP routing message    */
-#define IGMP_PIM			0x14	/* PIM routing message     */
+#define IGMP_PIM			0x14	/* PIMv1 message (historic) */
 #define IGMP_v2_HOST_MEMBERSHIP_REPORT	0x16	/* Ver. 2 membership report */
 #define IGMP_HOST_LEAVE_MESSAGE		0x17	/* Leave-group message     */
 #define IGMP_MTRACE_REPLY		0x1e	/* mtrace(8) reply */

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 01:15:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7DD63106566B
	for ; Thu, 19 Mar 2009 01:15:55 +0000 (UTC)
	(envelope-from doconnor@gsoft.com.au)
Received: from cain.gsoft.com.au (cain.gsoft.com.au [203.31.81.10])
	by mx1.freebsd.org (Postfix) with ESMTP id E97F18FC08
	for ; Thu, 19 Mar 2009 01:15:53 +0000 (UTC)
	(envelope-from doconnor@gsoft.com.au)
Received: from inchoate.localnet (Inchoate.gsoft.com.au [203.31.81.30])
	(authenticated bits=0)
	by cain.gsoft.com.au (8.13.8/8.13.8) with ESMTP id n2J0t3Nh033991
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Thu, 19 Mar 2009 11:25:03 +1030 (CST)
	(envelope-from doconnor@gsoft.com.au)
From: "Daniel O'Connor" 
To: svn-src-all@freebsd.org
Date: Thu, 19 Mar 2009 11:24:54 +1030
User-Agent: KMail/1.10.4 (Linux/2.6.27-11-generic; KDE/4.1.4; i686; ; )
References: <200903181830.n2IIU0F4033938@svn.freebsd.org>
	 <49C161AA.4020806@andric.com>
In-Reply-To: <49C161AA.4020806@andric.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart1593639.9t6MCbRM2G";
	protocol="application/pgp-signature"; micalg=pgp-sha1
Content-Transfer-Encoding: 7bit
Message-Id: <200903191125.01033.doconnor@gsoft.com.au>
X-Spam-Score: -3.977 () ALL_TRUSTED,BAYES_00
X-Scanned-By: MIMEDefang 2.63 on 203.31.81.10
Cc: Dimitry Andric ,
	Christian Weisgerber 
Subject: Re: svn commit: r189974 - in stable/7/sys: . 
 contrib/pf	dev/ath/ath_hal dev/cxgb ufs/ffs
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 01:15:55 -0000

--nextPart1593639.9t6MCbRM2G
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Thursday 19 March 2009 07:33:38 Dimitry Andric wrote:
> On 2009-03-18 20:58, Christian Weisgerber wrote:
> >> Modified:
> >>   stable/7/sys/   (props changed)
> >>   stable/7/sys/contrib/pf/   (props changed)
> >>   stable/7/sys/dev/ath/ath_hal/   (props changed)
> >>   stable/7/sys/dev/cxgb/   (props changed)
> >
> > Why does every kernel commit touch these?
>
> It's Subversion merge information being propagated, in particular in the
> vendor import areas, it seems.

Is there a way to change it so that they appear last rather than first?
=46ixing it properly would be better but the above would be a useful work=20
around.

It is very tedious sorting through email when you can't get an idea about w=
hat=20
it touched based on the subject alone..

=2D-=20
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C


--nextPart1593639.9t6MCbRM2G
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQBJwZff5ZPcIHs/zowRAok0AJwKcQQXoFRBlNkD5AIPL/GF42cIkgCcDVuJ
DyNIc0bXo1AnDXLieyckdpM=
=kFTx
-----END PGP SIGNATURE-----

--nextPart1593639.9t6MCbRM2G--

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 01:43:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D1FF21065674;
	Thu, 19 Mar 2009 01:43:03 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BD0478FC18;
	Thu, 19 Mar 2009 01:43:03 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J1h3e8044354;
	Thu, 19 Mar 2009 01:43:03 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J1h38h044349;
	Thu, 19 Mar 2009 01:43:03 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903190143.n2J1h38h044349@svn.freebsd.org>
From: Bruce M Simpson 
Date: Thu, 19 Mar 2009 01:43:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190012 - in head: . sys/modules/ip6_mroute_mod
	sys/modules/ip_mroute_mod sys/netinet sys/netinet6 usr.bin/netstat
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 01:43:05 -0000

Author: bms
Date: Thu Mar 19 01:43:03 2009
New Revision: 190012
URL: http://svn.freebsd.org/changeset/base/190012

Log:
  Introduce a number of changes to the MROUTING code.
  This is purely a forwarding plane cleanup; no control plane
  code is involved.
  
  Summary:
   * Split IPv4 and IPv6 MROUTING support. The static compile-time
     kernel option remains the same, however, the modules may now
     be built for IPv4 and IPv6 separately as ip_mroute_mod and
     ip6_mroute_mod.
   * Clean up the IPv4 multicast forwarding code to use BSD queue
     and hash table constructs. Don't build our own timer abstractions
     when ratecheck() and timevalclear() etc will do.
   * Expose the multicast forwarding cache (MFC) and virtual interface
     table (VIF) as sysctls, to reduce netstat's dependence on libkvm
     for this information for running kernels.
     * bandwidth meters however still require libkvm.
   * Make the MFC hash table size a boot/load-time tunable ULONG,
     net.inet.ip.mfchashsize (defaults to 256).
   * Remove unused members from struct vif and struct mfc.
   * Kill RSVP support, as no current RSVP implementation uses it.
     These stubs could be moved to raw_ip.c.
   * Don't share locks or initialization between IPv4 and IPv6.
   * Don't use a static struct route_in6 in ip6_mroute.c.
     The v6 code is still using a cached struct route_in6, this is
     moved to mif6 for the time being.
   * More cleanup remains to be merged from ip_mroute.c to ip6_mroute.c.
  
  v4 path tested using ports/net/mcast-tools.
  v6 changes are mostly mechanical locking and *have not* been tested.
  As these changes partially break some kernel ABIs, they will not
  be MFCed. There is a lot more work to be done here.
  
  Reviewed by:	Pavlin Radoslavov

Added:
  head/sys/modules/ip6_mroute_mod/
  head/sys/modules/ip6_mroute_mod/Makefile   (contents, props changed)
Modified:
  head/UPDATING
  head/sys/modules/ip_mroute_mod/Makefile
  head/sys/netinet/ip_mroute.c
  head/sys/netinet/ip_mroute.h
  head/sys/netinet6/ip6_mroute.c
  head/sys/netinet6/ip6_mroute.h
  head/usr.bin/netstat/main.c
  head/usr.bin/netstat/mroute.c
  head/usr.bin/netstat/netstat.h

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Thu Mar 19 01:15:26 2009	(r190011)
+++ head/UPDATING	Thu Mar 19 01:43:03 2009	(r190012)
@@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20090319:
+	The multicast forwarding code has been cleaned up. netstat(1)
+	only relies on KVM now for printing bandwidth upcall meters.
+	The IPv4 and IPv6 modules are split into ip_mroute_mod and
+	ip6_mroute_mod respectively. The config(5) options for statically
+	compiling this code remain the same, i.e. 'options MROUTING'.
+
 20090315:
 	Support for the IFF_NEEDSGIANT network interface flag has been
 	removed, which means that non-MPSAFE network device drivers are no

Added: head/sys/modules/ip6_mroute_mod/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sys/modules/ip6_mroute_mod/Makefile	Thu Mar 19 01:43:03 2009	(r190012)
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+.include 
+
+.PATH: ${.CURDIR}/../../netinet6
+
+KMOD=	ip6_mroute
+
+SRCS=	ip6_mroute.c
+SRCS+=	opt_inet6.h opt_mac.h opt_mrouting.h
+
+.if !defined(KERNBUILDDIR)
+opt_inet6.h:
+	echo "#define INET6 1" > ${.TARGET}
+opt_mrouting.h:
+	echo "#define MROUTING 1" > ${.TARGET}
+.endif
+
+.include 

Modified: head/sys/modules/ip_mroute_mod/Makefile
==============================================================================
--- head/sys/modules/ip_mroute_mod/Makefile	Thu Mar 19 01:15:26 2009	(r190011)
+++ head/sys/modules/ip_mroute_mod/Makefile	Thu Mar 19 01:43:03 2009	(r190012)
@@ -8,21 +8,12 @@ KMOD=	ip_mroute
 
 SRCS=	ip_mroute.c
 SRCS+=	opt_inet.h opt_mac.h opt_mrouting.h opt_route.h
-SRCS+=	opt_inet6.h
-
-.if ${MK_INET6_SUPPORT} != "no"
-SRCS+=	ip6_mroute.c
-.endif
 
 .if !defined(KERNBUILDDIR)
 opt_inet.h:
 	echo "#define INET 1" > ${.TARGET}
 opt_mrouting.h:
 	echo "#define MROUTING 1" > ${.TARGET}
-.if ${MK_INET6_SUPPORT} != "no"
-opt_inet6.h:
-	echo "#define INET6 1" > ${.TARGET}
-.endif
 .endif
 
 .include 

Modified: head/sys/netinet/ip_mroute.c
==============================================================================
--- head/sys/netinet/ip_mroute.c	Thu Mar 19 01:15:26 2009	(r190011)
+++ head/sys/netinet/ip_mroute.c	Thu Mar 19 01:43:03 2009	(r190012)
@@ -53,11 +53,24 @@
  * bandwidth metering and signaling
  */
 
+/*
+ * TODO: Prefix functions with ipmf_.
+ * TODO: Maintain a refcount on if_allmulti() in ifnet or in the protocol
+ * domain attachment (if_afdata) so we can track consumers of that service.
+ * TODO: Deprecate routing socket path for SIOCGETSGCNT and SIOCGETVIFCNT,
+ * move it to socket options.
+ * TODO: Rototile log_debug to use KTR.
+ * TODO: Cleanup LSRR removal further.
+ * TODO: Push RSVP stubs into raw_ip.c.
+ * TODO: Use bitstring.h for vif set.
+ * TODO: Fix mrt6_ioctl dangling ref when dynamically loaded.
+ * TODO: Sync ip6_mroute.c with this file.
+ */
+
 #include 
 __FBSDID("$FreeBSD$");
 
 #include "opt_inet.h"
-#include "opt_inet6.h"
 #include "opt_mac.h"
 #include "opt_mrouting.h"
 
@@ -81,9 +94,11 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+
 #include 
 #include 
 #include 
+
 #include 
 #include 
 #include 
@@ -98,96 +113,84 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-#ifdef INET6
-#include 
-#include 
-#include 
-#include 
-#endif
 #include 
 
 #include 
 
-/*
- * Control debugging code for rsvp and multicast routing code.
- * Can only set them with the debugger.
- */
-static u_int    rsvpdebug;		/* non-zero enables debugging	*/
-
-static u_int	mrtdebug;		/* any set of the flags below	*/
 #define		DEBUG_MFC	0x02
 #define		DEBUG_FORWARD	0x04
 #define		DEBUG_EXPIRE	0x08
 #define		DEBUG_XMIT	0x10
 #define		DEBUG_PIM	0x20
+static u_int	mrtdebug;
+SYSCTL_INT(_debug, OID_AUTO, mrtdebug, CTLFLAG_RW, &mrtdebug, 0,
+    "Enable/disable IPv4 multicast forwarding debugging flags");
 
 #define		VIFI_INVALID	((vifi_t) -1)
+#define		M_HASCL(m)	((m)->m_flags & M_EXT)
 
-#define M_HASCL(m)	((m)->m_flags & M_EXT)
-
-static MALLOC_DEFINE(M_MRTABLE, "mroutetbl", "multicast routing tables");
+static MALLOC_DEFINE(M_MRTABLE, "mroutetbl", "multicast forwarding cache");
 
 /*
  * Locking.  We use two locks: one for the virtual interface table and
  * one for the forwarding table.  These locks may be nested in which case
  * the VIF lock must always be taken first.  Note that each lock is used
  * to cover not only the specific data structure but also related data
- * structures.  It may be better to add more fine-grained locking later;
- * it's not clear how performance-critical this code is.
- *
- * XXX: This module could particularly benefit from being cleaned
- *      up to use the  macros.
- *
+ * structures.
  */
 
-static struct mrtstat	mrtstat;
-SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, mrtstat, CTLFLAG_RW,
-    &mrtstat, mrtstat,
-    "Multicast Routing Statistics (struct mrtstat, netinet/ip_mroute.h)");
-
-static struct mfc	*mfctable[MFCTBLSIZ];
-SYSCTL_OPAQUE(_net_inet_ip, OID_AUTO, mfctable, CTLFLAG_RD,
-    &mfctable, sizeof(mfctable), "S,*mfc[MFCTBLSIZ]",
-    "Multicast Forwarding Table (struct *mfc[MFCTBLSIZ], netinet/ip_mroute.h)");
-
 static struct mtx mrouter_mtx;
 #define	MROUTER_LOCK()		mtx_lock(&mrouter_mtx)
 #define	MROUTER_UNLOCK()	mtx_unlock(&mrouter_mtx)
 #define	MROUTER_LOCK_ASSERT()	mtx_assert(&mrouter_mtx, MA_OWNED)
-#define	MROUTER_LOCK_INIT()	\
+#define	MROUTER_LOCK_INIT()						\
 	mtx_init(&mrouter_mtx, "IPv4 multicast forwarding", NULL, MTX_DEF)
 #define	MROUTER_LOCK_DESTROY()	mtx_destroy(&mrouter_mtx)
 
+static struct mrtstat	mrtstat;
+SYSCTL_STRUCT(_net_inet_ip, OID_AUTO, mrtstat, CTLFLAG_RW,
+    &mrtstat, mrtstat,
+    "IPv4 Multicast Forwarding Statistics (struct mrtstat, "
+    "netinet/ip_mroute.h)");
+
+static u_long			 mfchash;
+#define MFCHASH(a, g)							\
+	((((a).s_addr >> 20) ^ ((a).s_addr >> 10) ^ (a).s_addr ^ \
+	  ((g).s_addr >> 20) ^ ((g).s_addr >> 10) ^ (g).s_addr) & mfchash)
+#define MFCHASHSIZE	256
+
+static u_char			*nexpire;	/* 0..mfchashsize-1 */
+static u_long			 mfchashsize;	/* Hash size */
+LIST_HEAD(mfchashhdr, mfc)	*mfchashtbl;
+
 static struct mtx mfc_mtx;
-#define	MFC_LOCK()	mtx_lock(&mfc_mtx)
-#define	MFC_UNLOCK()	mtx_unlock(&mfc_mtx)
+#define	MFC_LOCK()		mtx_lock(&mfc_mtx)
+#define	MFC_UNLOCK()		mtx_unlock(&mfc_mtx)
 #define	MFC_LOCK_ASSERT()	mtx_assert(&mfc_mtx, MA_OWNED)
-#define	MFC_LOCK_INIT()	mtx_init(&mfc_mtx, "mroute mfc table", NULL, MTX_DEF)
+#define	MFC_LOCK_INIT()							\
+	mtx_init(&mfc_mtx, "IPv4 multicast forwarding cache", NULL, MTX_DEF)
 #define	MFC_LOCK_DESTROY()	mtx_destroy(&mfc_mtx)
 
+static vifi_t		numvifs;
 static struct vif	viftable[MAXVIFS];
 SYSCTL_OPAQUE(_net_inet_ip, OID_AUTO, viftable, CTLFLAG_RD,
     &viftable, sizeof(viftable), "S,vif[MAXVIFS]",
-    "Multicast Virtual Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)");
+    "IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)");
 
 static struct mtx vif_mtx;
-#define	VIF_LOCK()	mtx_lock(&vif_mtx)
-#define	VIF_UNLOCK()	mtx_unlock(&vif_mtx)
+#define	VIF_LOCK()		mtx_lock(&vif_mtx)
+#define	VIF_UNLOCK()		mtx_unlock(&vif_mtx)
 #define	VIF_LOCK_ASSERT()	mtx_assert(&vif_mtx, MA_OWNED)
-#define	VIF_LOCK_INIT()	mtx_init(&vif_mtx, "mroute vif table", NULL, MTX_DEF)
+#define	VIF_LOCK_INIT()							\
+	mtx_init(&vif_mtx, "IPv4 multicast interfaces", NULL, MTX_DEF)
 #define	VIF_LOCK_DESTROY()	mtx_destroy(&vif_mtx)
 
-static u_char		nexpire[MFCTBLSIZ];
-
 static eventhandler_tag if_detach_event_tag = NULL;
 
 static struct callout expire_upcalls_ch;
-
 #define		EXPIRE_TIMEOUT	(hz / 4)	/* 4x / second		*/
 #define		UPCALL_EXPIRE	6		/* number of timeouts	*/
 
-#define ENCAP_TTL 64
-
 /*
  * Bandwidth meter variables and constants
  */
@@ -223,7 +226,7 @@ SYSCTL_ULONG(_net_inet_pim, OID_AUTO, sq
     "Disable IGMP_WHOLEPKT notifications if rendezvous point is unspecified");
 
 extern  struct domain inetdomain;
-struct protosw in_pim_protosw = {
+static const struct protosw in_pim_protosw = {
 	.pr_type =		SOCK_RAW,
 	.pr_domain =		&inetdomain,
 	.pr_protocol =		IPPROTO_PIM,
@@ -235,18 +238,6 @@ struct protosw in_pim_protosw = {
 };
 static const struct encaptab *pim_encap_cookie;
 
-#ifdef INET6
-/* ip6_mroute.c glue */
-extern struct in6_protosw in6_pim_protosw;
-static const struct encaptab *pim6_encap_cookie;
-
-extern int X_ip6_mrouter_set(struct socket *, struct sockopt *);
-extern int X_ip6_mrouter_get(struct socket *, struct sockopt *);
-extern int X_ip6_mrouter_done(void);
-extern int X_ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *);
-extern int X_mrt6_ioctl(int, caddr_t);
-#endif
-
 static int pim_encapcheck(const struct mbuf *, int, int, void *);
 
 /*
@@ -264,6 +255,7 @@ struct pim_encap_pimhdr {
 	struct pim pim;
 	uint32_t   flags;
 };
+#define		PIM_ENCAP_TTL	64
 
 static struct ip pim_encap_iphdr = {
 #if BYTE_ORDER == LITTLE_ENDIAN
@@ -277,7 +269,7 @@ static struct ip pim_encap_iphdr = {
 	sizeof(struct ip),	/* total length */
 	0,			/* id */
 	0,			/* frag offset */
-	ENCAP_TTL,
+	PIM_ENCAP_TTL,
 	IPPROTO_PIM,
 	0,			/* checksum */
 };
@@ -297,129 +289,97 @@ static vifi_t reg_vif_num = VIFI_INVALID
 /*
  * Private variables.
  */
-static vifi_t	   numvifs;
 
-static u_long	X_ip_mcast_src(int vifi);
-static int	X_ip_mforward(struct ip *ip, struct ifnet *ifp,
-			struct mbuf *m, struct ip_moptions *imo);
+static u_long	X_ip_mcast_src(int);
+static int	X_ip_mforward(struct ip *, struct ifnet *, struct mbuf *,
+		    struct ip_moptions *);
 static int	X_ip_mrouter_done(void);
-static int	X_ip_mrouter_get(struct socket *so, struct sockopt *m);
-static int	X_ip_mrouter_set(struct socket *so, struct sockopt *m);
-static int	X_legal_vif_num(int vif);
-static int	X_mrt_ioctl(int cmd, caddr_t data, int fibnum);
-
-static int get_sg_cnt(struct sioc_sg_req *);
-static int get_vif_cnt(struct sioc_vif_req *);
-static void if_detached_event(void *arg __unused, struct ifnet *);
-static int ip_mrouter_init(struct socket *, int);
-static int add_vif(struct vifctl *);
-static int del_vif_locked(vifi_t);
-static int del_vif(vifi_t);
-static int add_mfc(struct mfcctl2 *);
-static int del_mfc(struct mfcctl2 *);
-static int set_api_config(uint32_t *); /* chose API capabilities */
-static int socket_send(struct socket *, struct mbuf *, struct sockaddr_in *);
-static int set_assert(int);
-static void expire_upcalls(void *);
-static int ip_mdq(struct mbuf *, struct ifnet *, struct mfc *, vifi_t);
-static void phyint_send(struct ip *, struct vif *, struct mbuf *);
-static void send_packet(struct vif *, struct mbuf *);
-
-/*
- * Bandwidth monitoring
- */
-static void free_bw_list(struct bw_meter *list);
-static int add_bw_upcall(struct bw_upcall *);
-static int del_bw_upcall(struct bw_upcall *);
-static void bw_meter_receive_packet(struct bw_meter *x, int plen,
-		struct timeval *nowp);
-static void bw_meter_prepare_upcall(struct bw_meter *x, struct timeval *nowp);
-static void bw_upcalls_send(void);
-static void schedule_bw_meter(struct bw_meter *x, struct timeval *nowp);
-static void unschedule_bw_meter(struct bw_meter *x);
-static void bw_meter_process(void);
-static void expire_bw_upcalls_send(void *);
-static void expire_bw_meter_process(void *);
-
-static int pim_register_send(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
-static int pim_register_send_rp(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
-static int pim_register_send_upcall(struct ip *, struct vif *,
-		struct mbuf *, struct mfc *);
-static struct mbuf *pim_register_prepare(struct ip *, struct mbuf *);
-
-/*
- * whether or not special PIM assert processing is enabled.
- */
-static int pim_assert;
-/*
- * Rate limit for assert notification messages, in usec
- */
-#define ASSERT_MSG_TIME		3000000
+static int	X_ip_mrouter_get(struct socket *, struct sockopt *);
+static int	X_ip_mrouter_set(struct socket *, struct sockopt *);
+static int	X_legal_vif_num(int);
+static int	X_mrt_ioctl(int, caddr_t, int);
+
+static int	add_bw_upcall(struct bw_upcall *);
+static int	add_mfc(struct mfcctl2 *);
+static int	add_vif(struct vifctl *);
+static void	bw_meter_prepare_upcall(struct bw_meter *, struct timeval *);
+static void	bw_meter_process(void);
+static void	bw_meter_receive_packet(struct bw_meter *, int,
+		    struct timeval *);
+static void	bw_upcalls_send(void);
+static int	del_bw_upcall(struct bw_upcall *);
+static int	del_mfc(struct mfcctl2 *);
+static int	del_vif(vifi_t);
+static int	del_vif_locked(vifi_t);
+static void	expire_bw_meter_process(void *);
+static void	expire_bw_upcalls_send(void *);
+static void	expire_mfc(struct mfc *);
+static void	expire_upcalls(void *);
+static void	free_bw_list(struct bw_meter *);
+static int	get_sg_cnt(struct sioc_sg_req *);
+static int	get_vif_cnt(struct sioc_vif_req *);
+static void	if_detached_event(void *, struct ifnet *);
+static int	ip_mdq(struct mbuf *, struct ifnet *, struct mfc *, vifi_t);
+static int	ip_mrouter_init(struct socket *, int);
+static __inline struct mfc *
+		mfc_find(struct in_addr *, struct in_addr *);
+static void	phyint_send(struct ip *, struct vif *, struct mbuf *);
+static struct mbuf *
+		pim_register_prepare(struct ip *, struct mbuf *);
+static int	pim_register_send(struct ip *, struct vif *,
+		    struct mbuf *, struct mfc *);
+static int	pim_register_send_rp(struct ip *, struct vif *,
+		    struct mbuf *, struct mfc *);
+static int	pim_register_send_upcall(struct ip *, struct vif *,
+		    struct mbuf *, struct mfc *);
+static void	schedule_bw_meter(struct bw_meter *, struct timeval *);
+static void	send_packet(struct vif *, struct mbuf *);
+static int	set_api_config(uint32_t *);
+static int	set_assert(int);
+static int	socket_send(struct socket *, struct mbuf *,
+		    struct sockaddr_in *);
+static void	unschedule_bw_meter(struct bw_meter *);
 
 /*
- * Kernel multicast routing API capabilities and setup.
+ * Kernel multicast forwarding API capabilities and setup.
  * If more API capabilities are added to the kernel, they should be
  * recorded in `mrt_api_support'.
  */
+#define MRT_API_VERSION		0x0305
+
+static const int mrt_api_version = MRT_API_VERSION;
 static const uint32_t mrt_api_support = (MRT_MFC_FLAGS_DISABLE_WRONGVIF |
 					 MRT_MFC_FLAGS_BORDER_VIF |
 					 MRT_MFC_RP |
 					 MRT_MFC_BW_UPCALL);
 static uint32_t mrt_api_config = 0;
 
-/*
- * Hash function for a source, group entry
- */
-#define MFCHASH(a, g) MFCHASHMOD(((a) >> 20) ^ ((a) >> 10) ^ (a) ^ \
-			((g) >> 20) ^ ((g) >> 10) ^ (g))
+static int pim_assert_enabled;
+static struct timeval pim_assert_interval = { 3, 0 };	/* Rate limit */
 
 /*
- * Find a route for a given origin IP address and Multicast group address
- * Statistics are updated by the caller if needed
- * (mrtstat.mrts_mfc_lookups and mrtstat.mrts_mfc_misses)
+ * Find a route for a given origin IP address and multicast group address.
+ * Statistics must be updated by the caller.
  */
-static struct mfc *
-mfc_find(in_addr_t o, in_addr_t g)
+static __inline struct mfc *
+mfc_find(struct in_addr *o, struct in_addr *g)
 {
-    struct mfc *rt;
+	struct mfc *rt;
 
-    MFC_LOCK_ASSERT();
+	MFC_LOCK_ASSERT();
 
-    for (rt = mfctable[MFCHASH(o,g)]; rt; rt = rt->mfc_next)
-	if ((rt->mfc_origin.s_addr == o) &&
-		(rt->mfc_mcastgrp.s_addr == g) && (rt->mfc_stall == NULL))
-	    break;
-    return rt;
-}
+	LIST_FOREACH(rt, &mfchashtbl[MFCHASH(*o, *g)], mfc_hash) {
+		if (in_hosteq(rt->mfc_origin, *o) &&
+		    in_hosteq(rt->mfc_mcastgrp, *g) &&
+		    TAILQ_EMPTY(&rt->mfc_stall))
+			break;
+	}
 
-/*
- * Macros to compute elapsed time efficiently
- * Borrowed from Van Jacobson's scheduling code
- */
-#define TV_DELTA(a, b, delta) {					\
-	int xxs;						\
-	delta = (a).tv_usec - (b).tv_usec;			\
-	if ((xxs = (a).tv_sec - (b).tv_sec)) {			\
-		switch (xxs) {					\
-		case 2:						\
-		      delta += 1000000;				\
-		      /* FALLTHROUGH */				\
-		case 1:						\
-		      delta += 1000000;				\
-		      break;					\
-		default:					\
-		      delta += (1000000 * xxs);			\
-		}						\
-	}							\
+	return (rt);
 }
 
-#define TV_LT(a, b) (((a).tv_usec < (b).tv_usec && \
-	      (a).tv_sec <= (b).tv_sec) || (a).tv_sec < (b).tv_sec)
-
 /*
- * Handle MRT setsockopt commands to modify the multicast routing tables.
+ * Handle MRT setsockopt commands to modify the multicast forwarding tables.
  */
 static int
 X_ip_mrouter_set(struct socket *so, struct sockopt *sopt)
@@ -526,15 +486,15 @@ static int
 X_ip_mrouter_get(struct socket *so, struct sockopt *sopt)
 {
     int error;
-    static int version = 0x0305; /* !!! why is this here? XXX */
 
     switch (sopt->sopt_name) {
     case MRT_VERSION:
-	error = sooptcopyout(sopt, &version, sizeof version);
+	error = sooptcopyout(sopt, &mrt_api_version, sizeof mrt_api_version);
 	break;
 
     case MRT_ASSERT:
-	error = sooptcopyout(sopt, &pim_assert, sizeof pim_assert);
+	error = sooptcopyout(sopt, &pim_assert_enabled,
+	    sizeof pim_assert_enabled);
 	break;
 
     case MRT_API_SUPPORT:
@@ -556,7 +516,7 @@ X_ip_mrouter_get(struct socket *so, stru
  * Handle ioctl commands to obtain information from the cache
  */
 static int
-X_mrt_ioctl(int cmd, caddr_t data, int fibnum)
+X_mrt_ioctl(int cmd, caddr_t data, int fibnum __unused)
 {
     int error = 0;
 
@@ -593,7 +553,7 @@ get_sg_cnt(struct sioc_sg_req *req)
     struct mfc *rt;
 
     MFC_LOCK();
-    rt = mfc_find(req->src.s_addr, req->grp.s_addr);
+    rt = mfc_find(&req->src, &req->grp);
     if (rt == NULL) {
 	MFC_UNLOCK();
 	req->pktcnt = req->bytecnt = req->wrong_if = 0xffffffff;
@@ -632,10 +592,8 @@ get_vif_cnt(struct sioc_vif_req *req)
 static void
 ip_mrouter_reset(void)
 {
-    bzero((caddr_t)mfctable, sizeof(mfctable));
-    bzero((caddr_t)nexpire, sizeof(nexpire));
 
-    pim_assert = 0;
+    pim_assert_enabled = 0;
     mrt_api_config = 0;
 
     callout_init(&expire_upcalls_ch, CALLOUT_MPSAFE);
@@ -652,55 +610,40 @@ if_detached_event(void *arg __unused, st
     INIT_VNET_INET(curvnet);
     vifi_t vifi;
     int i;
-    struct mfc *mfc;
-    struct mfc *nmfc;
-    struct mfc **ppmfc;	/* Pointer to previous node's next-pointer */
-    struct rtdetq *pq;
-    struct rtdetq *npq;
 
     MROUTER_LOCK();
+
     if (V_ip_mrouter == NULL) {
 	MROUTER_UNLOCK();
+	return;
     }
 
+    VIF_LOCK();
+    MFC_LOCK();
+
     /*
      * Tear down multicast forwarder state associated with this ifnet.
      * 1. Walk the vif list, matching vifs against this ifnet.
      * 2. Walk the multicast forwarding cache (mfc) looking for
      *    inner matches with this vif's index.
-     * 3. Free any pending mbufs for this mfc.
-     * 4. Free the associated mfc entry and state associated with this vif.
-     *    Be very careful about unlinking from a singly-linked list whose
-     *    "head node" is a pointer in a simple array.
-     * 5. Free vif state. This should disable ALLMULTI on the interface.
+     * 3. Expire any matching multicast forwarding cache entries.
+     * 4. Free vif state. This should disable ALLMULTI on the interface.
      */
-    VIF_LOCK();
-    MFC_LOCK();
     for (vifi = 0; vifi < numvifs; vifi++) {
 	if (viftable[vifi].v_ifp != ifp)
 		continue;
-	for (i = 0; i < MFCTBLSIZ; i++) {
-	    ppmfc = &mfctable[i];
-	    for (mfc = mfctable[i]; mfc != NULL; ) {
-		nmfc = mfc->mfc_next;
-		if (mfc->mfc_parent == vifi) {
-		    for (pq = mfc->mfc_stall; pq != NULL; ) {
-			npq = pq->next;
-			m_freem(pq->m);
-			free(pq, M_MRTABLE);
-			pq = npq;
-		    }
-		    free_bw_list(mfc->mfc_bw_meter);
-		    free(mfc, M_MRTABLE);
-		    *ppmfc = nmfc;
-		} else {
-		    ppmfc = &mfc->mfc_next;
+	for (i = 0; i < mfchashsize; i++) {
+		struct mfc *rt, *nrt;
+		for (rt = LIST_FIRST(&mfchashtbl[i]); rt; rt = nrt) {
+			nrt = LIST_NEXT(rt, mfc_hash);
+			if (rt->mfc_parent == vifi) {
+				expire_mfc(rt);
+			}
 		}
-		mfc = nmfc;
-	    }
 	}
 	del_vif_locked(vifi);
     }
+
     MFC_UNLOCK();
     VIF_UNLOCK();
 
@@ -708,7 +651,7 @@ if_detached_event(void *arg __unused, st
 }
                         
 /*
- * Enable multicast routing
+ * Enable multicast forwarding.
  */
 static int
 ip_mrouter_init(struct socket *so, int version)
@@ -739,6 +682,8 @@ ip_mrouter_init(struct socket *so, int v
 	return (ENOMEM);
     }
 
+    mfchashtbl = hashinit_flags(mfchashsize, M_MRTABLE, &mfchash, HASH_NOWAIT);
+
     callout_reset(&expire_upcalls_ch, EXPIRE_TIMEOUT, expire_upcalls, NULL);
 
     callout_reset(&bw_upcalls_ch, BW_UPCALLS_PERIOD,
@@ -756,7 +701,7 @@ ip_mrouter_init(struct socket *so, int v
 }
 
 /*
- * Disable multicast routing
+ * Disable multicast forwarding.
  */
 static int
 X_ip_mrouter_done(void)
@@ -766,8 +711,6 @@ X_ip_mrouter_done(void)
     int i;
     struct ifnet *ifp;
     struct ifreq ifr;
-    struct mfc *rt;
-    struct rtdetq *rte;
 
     MROUTER_LOCK();
 
@@ -783,12 +726,13 @@ X_ip_mrouter_done(void)
     mrt_api_config = 0;
 
     VIF_LOCK();
+
     /*
      * For each phyint in use, disable promiscuous reception of all IP
      * multicasts.
      */
     for (vifi = 0; vifi < numvifs; vifi++) {
-	if (viftable[vifi].v_lcl_addr.s_addr != 0 &&
+	if (!in_nullhost(viftable[vifi].v_lcl_addr) &&
 		!(viftable[vifi].v_flags & (VIFF_TUNNEL | VIFF_REGISTER))) {
 	    struct sockaddr_in *so = (struct sockaddr_in *)&(ifr.ifr_addr);
 
@@ -801,38 +745,37 @@ X_ip_mrouter_done(void)
     }
     bzero((caddr_t)viftable, sizeof(viftable));
     numvifs = 0;
-    pim_assert = 0;
+    pim_assert_enabled = 0;
+
     VIF_UNLOCK();
+
     EVENTHANDLER_DEREGISTER(ifnet_departure_event, if_detach_event_tag);
 
-    /*
-     * Free all multicast forwarding cache entries.
-     */
     callout_stop(&expire_upcalls_ch);
     callout_stop(&bw_upcalls_ch);
     callout_stop(&bw_meter_ch);
 
     MFC_LOCK();
-    for (i = 0; i < MFCTBLSIZ; i++) {
-	for (rt = mfctable[i]; rt != NULL; ) {
-	    struct mfc *nr = rt->mfc_next;
-
-	    for (rte = rt->mfc_stall; rte != NULL; ) {
-		struct rtdetq *n = rte->next;
 
-		m_freem(rte->m);
-		free(rte, M_MRTABLE);
-		rte = n;
-	    }
-	    free_bw_list(rt->mfc_bw_meter);
-	    free(rt, M_MRTABLE);
-	    rt = nr;
+    /*
+     * Free all multicast forwarding cache entries.
+     * Do not use hashdestroy(), as we must perform other cleanup.
+     */
+    for (i = 0; i < mfchashsize; i++) {
+	struct mfc *rt, *nrt;
+	for (rt = LIST_FIRST(&mfchashtbl[i]); rt; rt = nrt) {
+		nrt = LIST_NEXT(rt, mfc_hash);
+		expire_mfc(rt);
 	}
     }
-    bzero((caddr_t)mfctable, sizeof(mfctable));
-    bzero((caddr_t)nexpire, sizeof(nexpire));
+    free(mfchashtbl, M_MRTABLE);
+    mfchashtbl = NULL;
+
+    bzero(nexpire, sizeof(nexpire[0]) * mfchashsize);
+
     bw_upcalls_n = 0;
     bzero(bw_meter_timers, sizeof(bw_meter_timers));
+
     MFC_UNLOCK();
 
     reg_vif_num = VIFI_INVALID;
@@ -854,7 +797,7 @@ set_assert(int i)
     if ((i != 1) && (i != 0))
 	return EINVAL;
 
-    pim_assert = i;
+    pim_assert_enabled = i;
 
     return 0;
 }
@@ -878,17 +821,22 @@ set_api_config(uint32_t *apival)
 	*apival = 0;
 	return EPERM;
     }
-    if (pim_assert) {
+    if (pim_assert_enabled) {
 	*apival = 0;
 	return EPERM;
     }
-    for (i = 0; i < MFCTBLSIZ; i++) {
-	if (mfctable[i] != NULL) {
+
+    MFC_LOCK();
+
+    for (i = 0; i < mfchashsize; i++) {
+	if (LIST_FIRST(&mfchashtbl[i]) != NULL) {
 	    *apival = 0;
 	    return EPERM;
 	}
     }
 
+    MFC_UNLOCK();
+
     mrt_api_config = *apival & mrt_api_support;
     *apival = mrt_api_config;
 
@@ -918,11 +866,11 @@ add_vif(struct vifctl *vifcp)
 	VIF_UNLOCK();
 	return EINVAL;
     }
-    if (vifp->v_lcl_addr.s_addr != INADDR_ANY) {
+    if (!in_nullhost(vifp->v_lcl_addr)) {
 	VIF_UNLOCK();
 	return EADDRINUSE;
     }
-    if (vifcp->vifc_lcl_addr.s_addr == INADDR_ANY) {
+    if (in_nullhost(vifcp->vifc_lcl_addr)) {
 	VIF_UNLOCK();
 	return EADDRNOTAVAIL;
     }
@@ -978,8 +926,6 @@ add_vif(struct vifctl *vifcp)
     vifp->v_lcl_addr  = vifcp->vifc_lcl_addr;
     vifp->v_rmt_addr  = vifcp->vifc_rmt_addr;
     vifp->v_ifp       = ifp;
-    vifp->v_rsvp_on   = 0;
-    vifp->v_rsvpd     = NULL;
     /* initialize per vif pkt counters */
     vifp->v_pkt_in    = 0;
     vifp->v_pkt_out   = 0;
@@ -988,7 +934,8 @@ add_vif(struct vifctl *vifcp)
     bzero(&vifp->v_route, sizeof(vifp->v_route));
 
     /* Adjust numvifs up if the vifi is higher than numvifs */
-    if (numvifs <= vifcp->vifc_vifi) numvifs = vifcp->vifc_vifi + 1;
+    if (numvifs <= vifcp->vifc_vifi)
+	numvifs = vifcp->vifc_vifi + 1;
 
     VIF_UNLOCK();
 
@@ -1017,7 +964,7 @@ del_vif_locked(vifi_t vifi)
 	return EINVAL;
     }
     vifp = &viftable[vifi];
-    if (vifp->v_lcl_addr.s_addr == INADDR_ANY) {
+    if (in_nullhost(vifp->v_lcl_addr)) {
 	return EADDRNOTAVAIL;
     }
 
@@ -1034,7 +981,7 @@ del_vif_locked(vifi_t vifi)
 
     /* Adjust numvifs down */
     for (vifi = numvifs; vifi > 0; vifi--)
-	if (viftable[vifi-1].v_lcl_addr.s_addr != INADDR_ANY)
+	if (!in_nullhost(viftable[vifi-1].v_lcl_addr))
 	    break;
     numvifs = vifi;
 
@@ -1089,9 +1036,25 @@ init_mfc_params(struct mfc *rt, struct m
     rt->mfc_pkt_cnt    = 0;
     rt->mfc_byte_cnt   = 0;
     rt->mfc_wrong_if   = 0;
-    rt->mfc_last_assert.tv_sec = rt->mfc_last_assert.tv_usec = 0;
+    timevalclear(&rt->mfc_last_assert);
 }
 
+static void
+expire_mfc(struct mfc *rt)
+{
+	struct rtdetq *rte, *nrte;
+
+	free_bw_list(rt->mfc_bw_meter);
+
+	TAILQ_FOREACH_SAFE(rte, &rt->mfc_stall, rte_link, nrte) {
+		m_freem(rte->m);
+		TAILQ_REMOVE(&rt->mfc_stall, rte, rte_link);
+		free(rte, M_MRTABLE);
+	}
+
+	LIST_REMOVE(rt, mfc_hash);
+	free(rt, M_MRTABLE);
+}
 
 /*
  * Add an mfc entry
@@ -1100,14 +1063,14 @@ static int
 add_mfc(struct mfcctl2 *mfccp)
 {
     struct mfc *rt;
-    u_long hash;
-    struct rtdetq *rte;
+    struct rtdetq *rte, *nrte;
+    u_long hash = 0;
     u_short nstl;
 
     VIF_LOCK();
     MFC_LOCK();
 
-    rt = mfc_find(mfccp->mfcc_origin.s_addr, mfccp->mfcc_mcastgrp.s_addr);
+    rt = mfc_find(&mfccp->mfcc_origin, &mfccp->mfcc_mcastgrp);
 
     /* If an entry already exists, just update the fields */
     if (rt) {
@@ -1120,47 +1083,48 @@ add_mfc(struct mfcctl2 *mfccp)
 	update_mfc_params(rt, mfccp);
 	MFC_UNLOCK();
 	VIF_UNLOCK();
-	return 0;
+	return (0);
     }
 
     /*
      * Find the entry for which the upcall was made and update
      */
-    hash = MFCHASH(mfccp->mfcc_origin.s_addr, mfccp->mfcc_mcastgrp.s_addr);
-    for (rt = mfctable[hash], nstl = 0; rt; rt = rt->mfc_next) {
-
-	if ((rt->mfc_origin.s_addr == mfccp->mfcc_origin.s_addr) &&
-		(rt->mfc_mcastgrp.s_addr == mfccp->mfcc_mcastgrp.s_addr) &&
-		(rt->mfc_stall != NULL)) {
-
-	    if (nstl++)
-		log(LOG_ERR, "add_mfc %s o %lx g %lx p %x dbx %p\n",
-		    "multiple kernel entries",
-		    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
-		    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-		    mfccp->mfcc_parent, (void *)rt->mfc_stall);
-
-	    if (mrtdebug & DEBUG_MFC)
-		log(LOG_DEBUG,"add_mfc o %lx g %lx p %x dbg %p\n",
-		    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
-		    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-		    mfccp->mfcc_parent, (void *)rt->mfc_stall);
-
-	    init_mfc_params(rt, mfccp);
+    nstl = 0;
+    hash = MFCHASH(mfccp->mfcc_origin, mfccp->mfcc_mcastgrp);
+    LIST_FOREACH(rt, &mfchashtbl[hash], mfc_hash) {
+	if (in_hosteq(rt->mfc_origin, mfccp->mfcc_origin) &&
+	    in_hosteq(rt->mfc_mcastgrp, mfccp->mfcc_mcastgrp) &&
+	    !TAILQ_EMPTY(&rt->mfc_stall)) {
+		if (nstl++) {
+			log(LOG_ERR, "add_mfc %s o %lx g %lx p %x dbx %p\n",
+			    "multiple kernel entries",
+			    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
+			    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
+			    mfccp->mfcc_parent,
+			    (void *)TAILQ_FIRST(&rt->mfc_stall));
+		}
 
-	    rt->mfc_expire = 0;	/* Don't clean this guy up */
-	    nexpire[hash]--;
+		if (mrtdebug & DEBUG_MFC) {
+			log(LOG_DEBUG,"add_mfc o %lx g %lx p %x dbg %p\n",
+			    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
+			    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
+			    mfccp->mfcc_parent,
+			    (void *)TAILQ_FIRST(&rt->mfc_stall));
+		}
 
-	    /* free packets Qed at the end of this entry */
-	    for (rte = rt->mfc_stall; rte != NULL; ) {
-		struct rtdetq *n = rte->next;
+		init_mfc_params(rt, mfccp);
+		rt->mfc_expire = 0;	/* Don't clean this guy up */
+		nexpire[hash]--;
 
-		ip_mdq(rte->m, rte->ifp, rt, -1);
-		m_freem(rte->m);
-		free(rte, M_MRTABLE);
-		rte = n;
-	    }
-	    rt->mfc_stall = NULL;
+		/* Free queued packets, but attempt to forward them first. */
+		TAILQ_FOREACH_SAFE(rte, &rt->mfc_stall, rte_link, nrte) {
+			if (rte->ifp != NULL)
+				ip_mdq(rte->m, rte->ifp, rt, -1);
+			m_freem(rte->m);
+			TAILQ_REMOVE(&rt->mfc_stall, rte, rte_link);
+			rt->mfc_nstall--;
+			free(rte, M_MRTABLE);
+		}
 	}
     }
 
@@ -1168,43 +1132,50 @@ add_mfc(struct mfcctl2 *mfccp)
      * It is possible that an entry is being inserted without an upcall
      */
     if (nstl == 0) {
+	/*
+	 * No mfc; make a new one
+	 */
 	if (mrtdebug & DEBUG_MFC)
 	    log(LOG_DEBUG,"add_mfc no upcall h %lu o %lx g %lx p %x\n",
 		hash, (u_long)ntohl(mfccp->mfcc_origin.s_addr),
 		(u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
 		mfccp->mfcc_parent);
 
-	for (rt = mfctable[hash]; rt != NULL; rt = rt->mfc_next) {
-	    if ((rt->mfc_origin.s_addr == mfccp->mfcc_origin.s_addr) &&
-		    (rt->mfc_mcastgrp.s_addr == mfccp->mfcc_mcastgrp.s_addr)) {
-		init_mfc_params(rt, mfccp);
-		if (rt->mfc_expire)
-		    nexpire[hash]--;
-		rt->mfc_expire = 0;
-		break; /* XXX */
-	    }
+	LIST_FOREACH(rt, &mfchashtbl[hash], mfc_hash) {
+		if (in_hosteq(rt->mfc_origin, mfccp->mfcc_origin) &&
+		    in_hosteq(rt->mfc_mcastgrp, mfccp->mfcc_mcastgrp)) {
+			init_mfc_params(rt, mfccp);
+			if (rt->mfc_expire)
+			    nexpire[hash]--;
+			rt->mfc_expire = 0;
+			break; /* XXX */
+		}
 	}
+
 	if (rt == NULL) {		/* no upcall, so make a new entry */
 	    rt = (struct mfc *)malloc(sizeof(*rt), M_MRTABLE, M_NOWAIT);
 	    if (rt == NULL) {
 		MFC_UNLOCK();
 		VIF_UNLOCK();
-		return ENOBUFS;
+		return (ENOBUFS);
 	    }
 
 	    init_mfc_params(rt, mfccp);
-	    rt->mfc_expire     = 0;
-	    rt->mfc_stall      = NULL;
+	    TAILQ_INIT(&rt->mfc_stall);
+	    rt->mfc_nstall = 0;
 
+	    rt->mfc_expire     = 0;
 	    rt->mfc_bw_meter = NULL;
+
 	    /* insert new entry at head of hash chain */
-	    rt->mfc_next = mfctable[hash];
-	    mfctable[hash] = rt;
+	    LIST_INSERT_HEAD(&mfchashtbl[hash], rt, mfc_hash);
 	}
     }
+
     MFC_UNLOCK();
     VIF_UNLOCK();
-    return 0;
+
+    return (0);
 }
 
 /*
@@ -1216,49 +1187,40 @@ del_mfc(struct mfcctl2 *mfccp)
     struct in_addr	origin;
     struct in_addr	mcastgrp;
     struct mfc		*rt;
-    struct mfc		**nptr;
-    u_long		hash;
-    struct bw_meter	*list;
 
     origin = mfccp->mfcc_origin;
     mcastgrp = mfccp->mfcc_mcastgrp;
 
-    if (mrtdebug & DEBUG_MFC)
+    if (mrtdebug & DEBUG_MFC) {
 	log(LOG_DEBUG,"del_mfc orig %lx mcastgrp %lx\n",
-	    (u_long)ntohl(origin.s_addr), (u_long)ntohl(mcastgrp.s_addr));
+	    (u_long)ntohl(origin.s_addr),
+	    (u_long)ntohl(mcastgrp.s_addr));
+    }

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 02:13:15 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 37F601065670;
	Thu, 19 Mar 2009 02:13:15 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2191D8FC0A;
	Thu, 19 Mar 2009 02:13:15 +0000 (UTC)
	(envelope-from yongari@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J2DFcZ044985;
	Thu, 19 Mar 2009 02:13:15 GMT (envelope-from yongari@svn.freebsd.org)
Received: (from yongari@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J2DFKv044983;
	Thu, 19 Mar 2009 02:13:15 GMT (envelope-from yongari@svn.freebsd.org)
Message-Id: <200903190213.n2J2DFKv044983@svn.freebsd.org>
From: Pyun YongHyeon 
Date: Thu, 19 Mar 2009 02:13:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190013 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/msk
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 02:13:17 -0000

Author: yongari
Date: Thu Mar 19 02:13:14 2009
New Revision: 190013
URL: http://svn.freebsd.org/changeset/base/190013

Log:
  MFC r187325:
    Add hardware MAC statistics support. Also added some reserved
    statistics register definition. Users can get current MAC
    statistics from dev.msk.%d.stats sysctl node(%d is unit number of
    a device).

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/msk/if_msk.c
  stable/7/sys/dev/msk/if_mskreg.h

Modified: stable/7/sys/dev/msk/if_msk.c
==============================================================================
--- stable/7/sys/dev/msk/if_msk.c	Thu Mar 19 01:43:03 2009	(r190012)
+++ stable/7/sys/dev/msk/if_msk.c	Thu Mar 19 02:13:14 2009	(r190013)
@@ -291,6 +291,11 @@ static void msk_setmulti(struct msk_if_s
 static void msk_setvlan(struct msk_if_softc *, struct ifnet *);
 static void msk_setpromisc(struct msk_if_softc *);
 
+static void msk_stats_clear(struct msk_if_softc *);
+static void msk_stats_update(struct msk_if_softc *);
+static int msk_sysctl_stat32(SYSCTL_HANDLER_ARGS);
+static int msk_sysctl_stat64(SYSCTL_HANDLER_ARGS);
+static void msk_sysctl_node(struct msk_if_softc *);
 static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int, int);
 static int sysctl_hw_msk_proc_limit(SYSCTL_HANDLER_ARGS);
 
@@ -1435,6 +1440,7 @@ msk_attach(device_t dev)
 
 	callout_init_mtx(&sc_if->msk_tick_ch, &sc_if->msk_softc->msk_mtx, 0);
 	TASK_INIT(&sc_if->msk_link_task, 0, msk_link_task, sc_if);
+	msk_sysctl_node(sc_if);
 
 	/* Disable jumbo frame for Yukon FE. */
 	if (sc_if->msk_softc->msk_hw_id == CHIP_ID_YUKON_FE)
@@ -3544,15 +3550,8 @@ msk_init_locked(struct msk_if_softc *sc_
 	/* Dummy read the Interrupt Source Register. */
 	CSR_READ_1(sc, MR_ADDR(sc_if->msk_port, GMAC_IRQ_SRC));
 
-	/* Set MIB Clear Counter Mode. */
-	gmac = GMAC_READ_2(sc, sc_if->msk_port, GM_PHY_ADDR);
-	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac | GM_PAR_MIB_CLR);
-	/* Read all MIB Counters with Clear Mode set. */
-	for (i = 0; i < GM_MIB_CNT_SIZE; i++)
-		GMAC_READ_2(sc, sc_if->msk_port, GM_MIB_CNT_BASE + 8 * i);
-	/* Clear MIB Clear Counter Mode. */
-	gmac &= ~GM_PAR_MIB_CLR;
-	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac);
+	/* Clear MIB stats. */
+	msk_stats_clear(sc_if);
 
 	/* Disable FCS. */
 	GMAC_WRITE_2(sc, sc_if->msk_port, GM_RX_CTRL, GM_RXCR_CRC_DIS);
@@ -3838,6 +3837,8 @@ msk_stop(struct msk_if_softc *sc_if)
 	GMAC_WRITE_2(sc, sc_if->msk_port, GM_GP_CTRL, val);
 	/* Read again to ensure writing. */
 	GMAC_READ_2(sc, sc_if->msk_port, GM_GP_CTRL);
+	/* Update stats and clear counters. */
+	msk_stats_update(sc_if);
 
 	/* Stop Tx BMU. */
 	CSR_WRITE_4(sc, Q_ADDR(sc_if->msk_txq, Q_CSR), BMU_STOP);
@@ -3953,6 +3954,295 @@ msk_stop(struct msk_if_softc *sc_if)
 	sc_if->msk_link = 0;
 }
 
+/*
+ * When GM_PAR_MIB_CLR bit of GM_PHY_ADDR is set, reading lower
+ * counter clears high 16 bits of the counter such that accessing
+ * lower 16 bits should be the last operation.
+ */
+#define	MSK_READ_MIB32(x, y)					\
+	(((uint32_t)GMAC_READ_2(sc, x, (y) + 4)) << 16) +	\
+	(uint32_t)GMAC_READ_2(sc, x, y)
+#define	MSK_READ_MIB64(x, y)					\
+	(((uint64_t)MSK_READ_MIB32(x, (y) + 8)) << 32) +	\
+	(uint64_t)MSK_READ_MIB32(x, y)
+
+static void
+msk_stats_clear(struct msk_if_softc *sc_if)
+{
+	struct msk_softc *sc;
+	uint32_t reg;
+	uint16_t gmac;
+	int i;
+
+	MSK_IF_LOCK_ASSERT(sc_if);
+
+	sc = sc_if->msk_softc;
+	/* Set MIB Clear Counter Mode. */
+	gmac = GMAC_READ_2(sc, sc_if->msk_port, GM_PHY_ADDR);
+	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac | GM_PAR_MIB_CLR);
+	/* Read all MIB Counters with Clear Mode set. */
+	for (i = GM_RXF_UC_OK; i <= GM_TXE_FIFO_UR; i++)
+		reg = MSK_READ_MIB32(sc_if->msk_port, i);
+	/* Clear MIB Clear Counter Mode. */
+	gmac &= ~GM_PAR_MIB_CLR;
+	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac);
+}
+
+static void
+msk_stats_update(struct msk_if_softc *sc_if)
+{
+	struct msk_softc *sc;
+	struct ifnet *ifp;
+	struct msk_hw_stats *stats;
+	uint16_t gmac;
+	uint32_t reg;
+
+	MSK_IF_LOCK_ASSERT(sc_if);
+
+	ifp = sc_if->msk_ifp;
+	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+		return;
+	sc = sc_if->msk_softc;
+	stats = &sc_if->msk_stats;
+	/* Set MIB Clear Counter Mode. */
+	gmac = GMAC_READ_2(sc, sc_if->msk_port, GM_PHY_ADDR);
+	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac | GM_PAR_MIB_CLR);
+
+	/* Rx stats. */
+	stats->rx_ucast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_UC_OK);
+	stats->rx_bcast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_BC_OK);
+	stats->rx_pause_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_MPAUSE);
+	stats->rx_mcast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_MC_OK);
+	stats->rx_crc_errs +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_FCS_ERR);
+	reg = MSK_READ_MIB32(sc_if->msk_port, GM_RXF_SPARE1);
+	stats->rx_good_octets +=
+	    MSK_READ_MIB64(sc_if->msk_port, GM_RXO_OK_LO);
+	stats->rx_bad_octets +=
+	    MSK_READ_MIB64(sc_if->msk_port, GM_RXO_ERR_LO);
+	stats->rx_runts +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_SHT);
+	stats->rx_runt_errs +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXE_FRAG);
+	stats->rx_pkts_64 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_64B);
+	stats->rx_pkts_65_127 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_127B);
+	stats->rx_pkts_128_255 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_255B);
+	stats->rx_pkts_256_511 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_511B);
+	stats->rx_pkts_512_1023 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_1023B);
+	stats->rx_pkts_1024_1518 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_1518B);
+	stats->rx_pkts_1519_max +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_MAX_SZ);
+	stats->rx_pkts_too_long +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_LNG_ERR);
+	stats->rx_pkts_jabbers +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXF_JAB_PKT);
+	reg = MSK_READ_MIB32(sc_if->msk_port, GM_RXF_SPARE2);
+	stats->rx_fifo_oflows +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_RXE_FIFO_OV);
+	reg = MSK_READ_MIB32(sc_if->msk_port, GM_RXF_SPARE3);
+
+	/* Tx stats. */
+	stats->tx_ucast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_UC_OK);
+	stats->tx_bcast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_BC_OK);
+	stats->tx_pause_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_MPAUSE);
+	stats->tx_mcast_frames +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_MC_OK);
+	stats->tx_octets +=
+	    MSK_READ_MIB64(sc_if->msk_port, GM_TXO_OK_LO);
+	stats->tx_pkts_64 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_64B);
+	stats->tx_pkts_65_127 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_127B);
+	stats->tx_pkts_128_255 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_255B);
+	stats->tx_pkts_256_511 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_511B);
+	stats->tx_pkts_512_1023 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_1023B);
+	stats->tx_pkts_1024_1518 +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_1518B);
+	stats->tx_pkts_1519_max +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_MAX_SZ);
+	reg = MSK_READ_MIB32(sc_if->msk_port, GM_TXF_SPARE1);
+	stats->tx_colls +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_COL);
+	stats->tx_late_colls +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_LAT_COL);
+	stats->tx_excess_colls +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_ABO_COL);
+	stats->tx_multi_colls +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_MUL_COL);
+	stats->tx_single_colls +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXF_SNG_COL);
+	stats->tx_underflows +=
+	    MSK_READ_MIB32(sc_if->msk_port, GM_TXE_FIFO_UR);
+	/* Clear MIB Clear Counter Mode. */
+	gmac &= ~GM_PAR_MIB_CLR;
+	GMAC_WRITE_2(sc, sc_if->msk_port, GM_PHY_ADDR, gmac);
+}
+
+static int
+msk_sysctl_stat32(SYSCTL_HANDLER_ARGS)
+{
+	struct msk_softc *sc;
+	struct msk_if_softc *sc_if;
+	uint32_t result, *stat;
+	int off;
+
+	sc_if = (struct msk_if_softc *)arg1;
+	sc = sc_if->msk_softc;
+	off = arg2;
+	stat = (uint32_t *)((uint8_t *)&sc_if->msk_stats + off);
+
+	MSK_IF_LOCK(sc_if);
+	result = MSK_READ_MIB32(sc_if->msk_port, GM_MIB_CNT_BASE + off * 2);
+	result += *stat;
+	MSK_IF_UNLOCK(sc_if);
+
+	return (sysctl_handle_int(oidp, &result, 0, req));
+}
+
+static int
+msk_sysctl_stat64(SYSCTL_HANDLER_ARGS)
+{
+	struct msk_softc *sc;
+	struct msk_if_softc *sc_if;
+	uint64_t result, *stat;
+	int off;
+
+	sc_if = (struct msk_if_softc *)arg1;
+	sc = sc_if->msk_softc;
+	off = arg2;
+	stat = (uint64_t *)((uint8_t *)&sc_if->msk_stats + off);
+
+	MSK_IF_LOCK(sc_if);
+	result = MSK_READ_MIB64(sc_if->msk_port, GM_MIB_CNT_BASE + off * 2);
+	result += *stat;
+	MSK_IF_UNLOCK(sc_if);
+
+	return (sysctl_handle_quad(oidp, &result, 0, req));
+}
+
+#undef MSK_READ_MIB32
+#undef MSK_READ_MIB64
+
+#define MSK_SYSCTL_STAT32(sc, c, o, p, n, d) 				\
+	SYSCTL_ADD_PROC(c, p, OID_AUTO, o, CTLTYPE_UINT | CTLFLAG_RD, 	\
+	    sc, offsetof(struct msk_hw_stats, n), msk_sysctl_stat32,	\
+	    "IU", d)
+#define MSK_SYSCTL_STAT64(sc, c, o, p, n, d) 				\
+	SYSCTL_ADD_PROC(c, p, OID_AUTO, o, CTLTYPE_UINT | CTLFLAG_RD, 	\
+	    sc, offsetof(struct msk_hw_stats, n), msk_sysctl_stat64,	\
+	    "Q", d)
+
+static void
+msk_sysctl_node(struct msk_if_softc *sc_if)
+{
+	struct sysctl_ctx_list *ctx;
+	struct sysctl_oid_list *child, *schild;
+	struct sysctl_oid *tree;
+
+	ctx = device_get_sysctl_ctx(sc_if->msk_if_dev);
+	child = SYSCTL_CHILDREN(device_get_sysctl_tree(sc_if->msk_if_dev));
+
+	tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD,
+	    NULL, "MSK Statistics");
+	schild = child = SYSCTL_CHILDREN(tree);
+	tree = SYSCTL_ADD_NODE(ctx, schild, OID_AUTO, "rx", CTLFLAG_RD,
+	    NULL, "MSK RX Statistics");
+	child = SYSCTL_CHILDREN(tree);
+	MSK_SYSCTL_STAT32(sc_if, ctx, "ucast_frames",
+	    child, rx_ucast_frames, "Good unicast frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "bcast_frames",
+	    child, rx_bcast_frames, "Good broadcast frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "pause_frames",
+	    child, rx_pause_frames, "Pause frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "mcast_frames",
+	    child, rx_mcast_frames, "Multicast frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "crc_errs",
+	    child, rx_crc_errs, "CRC errors");
+	MSK_SYSCTL_STAT64(sc_if, ctx, "good_octets",
+	    child, rx_good_octets, "Good octets");
+	MSK_SYSCTL_STAT64(sc_if, ctx, "bad_octets",
+	    child, rx_bad_octets, "Bad octets");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_64",
+	    child, rx_pkts_64, "64 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_65_127",
+	    child, rx_pkts_65_127, "65 to 127 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_128_255",
+	    child, rx_pkts_128_255, "128 to 255 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_256_511",
+	    child, rx_pkts_256_511, "256 to 511 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_512_1023",
+	    child, rx_pkts_512_1023, "512 to 1023 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_1024_1518",
+	    child, rx_pkts_1024_1518, "1024 to 1518 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_1519_max",
+	    child, rx_pkts_1519_max, "1519 to max frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_too_long",
+	    child, rx_pkts_too_long, "frames too long");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "jabbers",
+	    child, rx_pkts_jabbers, "Jabber errors");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "jabbers",
+	    child, rx_fifo_oflows, "FIFO overflows");
+
+	tree = SYSCTL_ADD_NODE(ctx, schild, OID_AUTO, "tx", CTLFLAG_RD,
+	    NULL, "MSK TX Statistics");
+	child = SYSCTL_CHILDREN(tree);
+	MSK_SYSCTL_STAT32(sc_if, ctx, "ucast_frames",
+	    child, tx_ucast_frames, "Unicast frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "bcast_frames",
+	    child, tx_bcast_frames, "Broadcast frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "pause_frames",
+	    child, tx_pause_frames, "Pause frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "mcast_frames",
+	    child, tx_mcast_frames, "Multicast frames");
+	MSK_SYSCTL_STAT64(sc_if, ctx, "octets",
+	    child, tx_octets, "Octets");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_64",
+	    child, tx_pkts_64, "64 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_65_127",
+	    child, tx_pkts_65_127, "65 to 127 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_128_255",
+	    child, tx_pkts_128_255, "128 to 255 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_256_511",
+	    child, tx_pkts_256_511, "256 to 511 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_512_1023",
+	    child, tx_pkts_512_1023, "512 to 1023 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_1024_1518",
+	    child, tx_pkts_1024_1518, "1024 to 1518 bytes frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "frames_1519_max",
+	    child, tx_pkts_1519_max, "1519 to max frames");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "colls",
+	    child, tx_colls, "Collisions");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "late_colls",
+	    child, tx_late_colls, "Late collisions");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "excess_colls",
+	    child, tx_excess_colls, "Excessive collisions");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "multi_colls",
+	    child, tx_multi_colls, "Multiple collisions");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "single_colls",
+	    child, tx_single_colls, "Single collisions");
+	MSK_SYSCTL_STAT32(sc_if, ctx, "underflows",
+	    child, tx_underflows, "FIFO underflows");
+}
+
+#undef MSK_SYSCTL_STAT32
+#undef MSK_SYSCTL_STAT64
+
 static int
 sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high)
 {

Modified: stable/7/sys/dev/msk/if_mskreg.h
==============================================================================
--- stable/7/sys/dev/msk/if_mskreg.h	Thu Mar 19 01:43:03 2009	(r190012)
+++ stable/7/sys/dev/msk/if_mskreg.h	Thu Mar 19 02:13:14 2009	(r190013)
@@ -1614,6 +1614,8 @@
 			(GM_MIB_CNT_BASE + 24)	/* Multicast Frames Received OK */
 #define GM_RXF_FCS_ERR \
 			(GM_MIB_CNT_BASE + 32)	/* Rx Frame Check Seq. Error */
+#define GM_RXF_SPARE1 \
+			(GM_MIB_CNT_BASE + 40)	/* Rx spare 1 */
 #define GM_RXO_OK_LO \
 			(GM_MIB_CNT_BASE + 48)	/* Octets Received OK Low */
 #define GM_RXO_OK_HI \
@@ -1644,8 +1646,12 @@
 			(GM_MIB_CNT_BASE + 152)	/* Rx Frame too Long Error */
 #define GM_RXF_JAB_PKT \
 			(GM_MIB_CNT_BASE + 160)	/* Rx Jabber Packet Frame */
+#define GM_RXF_SPARE2 \
+			(GM_MIB_CNT_BASE + 168)	/* Rx spare 2 */
 #define GM_RXE_FIFO_OV \
 			(GM_MIB_CNT_BASE + 176)	/* Rx FIFO overflow Event */
+#define GM_RXF_SPARE3 \
+			(GM_MIB_CNT_BASE + 184)	/* Rx spare 3 */
 #define GM_TXF_UC_OK \
 			(GM_MIB_CNT_BASE + 192)	/* Unicast Frames Xmitted OK */
 #define GM_TXF_BC_OK \
@@ -1672,6 +1678,8 @@
 			(GM_MIB_CNT_BASE + 280)	/* 1024-1518 Byte Tx Frame */
 #define GM_TXF_MAX_SZ \
 			(GM_MIB_CNT_BASE + 288)	/* 1519-MaxSize Byte Tx Frame */
+#define GM_TXF_SPARE1 \
+			(GM_MIB_CNT_BASE + 296)	/* Tx spare 1 */
 #define GM_TXF_COL \
 			(GM_MIB_CNT_BASE + 304)	/* Tx Collision */
 #define GM_TXF_LAT_COL \
@@ -2270,6 +2278,52 @@ struct msk_ring_data {
 /* Forward decl. */
 struct msk_if_softc;
 
+struct msk_hw_stats {
+	/* Rx stats. */
+	uint32_t rx_ucast_frames;
+	uint32_t rx_bcast_frames;
+	uint32_t rx_pause_frames;
+	uint32_t rx_mcast_frames;
+	uint32_t rx_crc_errs;
+	uint32_t rx_spare1;
+	uint64_t rx_good_octets;
+	uint64_t rx_bad_octets;
+	uint32_t rx_runts;
+	uint32_t rx_runt_errs;
+	uint32_t rx_pkts_64;
+	uint32_t rx_pkts_65_127;
+	uint32_t rx_pkts_128_255;
+	uint32_t rx_pkts_256_511;
+	uint32_t rx_pkts_512_1023;
+	uint32_t rx_pkts_1024_1518;
+	uint32_t rx_pkts_1519_max;
+	uint32_t rx_pkts_too_long;
+	uint32_t rx_pkts_jabbers;
+	uint32_t rx_spare2;
+	uint32_t rx_fifo_oflows;
+	uint32_t rx_spare3;
+	/* Tx stats. */
+	uint32_t tx_ucast_frames;
+	uint32_t tx_bcast_frames;
+	uint32_t tx_pause_frames;
+	uint32_t tx_mcast_frames;
+	uint64_t tx_octets;
+	uint32_t tx_pkts_64;
+	uint32_t tx_pkts_65_127;
+	uint32_t tx_pkts_128_255;
+	uint32_t tx_pkts_256_511;
+	uint32_t tx_pkts_512_1023;
+	uint32_t tx_pkts_1024_1518;
+	uint32_t tx_pkts_1519_max;
+	uint32_t tx_spare1;
+	uint32_t tx_colls;
+	uint32_t tx_late_colls;
+	uint32_t tx_excess_colls;
+	uint32_t tx_multi_colls;
+	uint32_t tx_single_colls;
+	uint32_t tx_underflows;
+};
+
 /* Softc for the Marvell Yukon II controller. */
 struct msk_softc {
 	struct resource		*msk_res[1];	/* I/O resource */
@@ -2340,6 +2394,7 @@ struct msk_if_softc {
 	struct msk_chain_data	msk_cdata;
 	struct msk_ring_data	msk_rdata;
 	struct msk_softc	*msk_softc;	/* parent controller */
+	struct msk_hw_stats	msk_stats;
 	struct task		msk_link_task;
 	struct task		msk_tx_task;
 	int			msk_if_flags;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 06:44:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DF635106566B;
	Thu, 19 Mar 2009 06:44:00 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CB25B8FC1A;
	Thu, 19 Mar 2009 06:44:00 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J6i0BX050746;
	Thu, 19 Mar 2009 06:44:00 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J6i0Cl050743;
	Thu, 19 Mar 2009 06:44:00 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200903190644.n2J6i0Cl050743@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Thu, 19 Mar 2009 06:44:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190014 - in stable/7/sbin/geom: . class/part misc
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 06:44:01 -0000

Author: marcel
Date: Thu Mar 19 06:44:00 2009
New Revision: 190014
URL: http://svn.freebsd.org/changeset/base/190014

Log:
  MFC r184070,185454,185495-185496,188330 -- gpart(8):
  o  Add support for multiple attributes.
  o  Parse the error string returned by the kernel.
  o  Prefer the start and end attributes over the offset and size attributes.

Modified:
  stable/7/sbin/geom/   (props changed)
  stable/7/sbin/geom/class/part/   (props changed)
  stable/7/sbin/geom/class/part/geom_part.c
  stable/7/sbin/geom/misc/   (props changed)

Modified: stable/7/sbin/geom/class/part/geom_part.c
==============================================================================
--- stable/7/sbin/geom/class/part/geom_part.c	Thu Mar 19 02:13:14 2009	(r190013)
+++ stable/7/sbin/geom/class/part/geom_part.c	Thu Mar 19 06:44:00 2009	(r190014)
@@ -63,10 +63,11 @@ static char index_param[] = "index";
 static char partcode_param[] = "partcode";
 
 static void gpart_bootcode(struct gctl_req *, unsigned int);
+static void gpart_issue(struct gctl_req *, unsigned int);
 static void gpart_show(struct gctl_req *, unsigned int);
 
 struct g_command PUBSYM(class_commands)[] = {
-	{ "add", 0, NULL, {
+	{ "add", 0, gpart_issue, {
 		{ 'b', "start", NULL, G_TYPE_STRING },
 		{ 's', "size", NULL, G_TYPE_STRING },
 		{ 't', "type", NULL, G_TYPE_STRING },
@@ -84,25 +85,25 @@ struct g_command PUBSYM(class_commands)[
 		G_OPT_SENTINEL },
 	  "geom", NULL
 	},
-	{ "commit", 0, NULL, G_NULL_OPTS, "geom", NULL },
-	{ "create", 0, NULL, {
+	{ "commit", 0, gpart_issue, G_NULL_OPTS, "geom", NULL },
+	{ "create", 0, gpart_issue, {
 		{ 's', "scheme", NULL, G_TYPE_STRING },
 		{ 'n', "entries", optional, G_TYPE_STRING },
 		{ 'f', "flags", flags, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	  "provider", NULL
 	},
-	{ "delete", 0, NULL, {
+	{ "delete", 0, gpart_issue, {
 		{ 'i', index_param, NULL, G_TYPE_STRING },
 		{ 'f', "flags", flags, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	  "geom", NULL
 	},
-	{ "destroy", 0, NULL, {
+	{ "destroy", 0, gpart_issue, {
 		{ 'f', "flags", flags, G_TYPE_STRING },
 		G_OPT_SENTINEL },
 	  "geom", NULL },
-	{ "modify", 0, NULL, {
+	{ "modify", 0, gpart_issue, {
 		{ 'i', index_param, NULL, G_TYPE_STRING },
 		{ 'l', "label", optional, G_TYPE_STRING },
 		{ 't', "type", optional, G_TYPE_STRING },
@@ -110,7 +111,7 @@ struct g_command PUBSYM(class_commands)[
 		G_OPT_SENTINEL },
 	  "geom", NULL
 	},
-	{ "set", 0, NULL, {
+	{ "set", 0, gpart_issue, {
 		{ 'a', "attrib", NULL, G_TYPE_STRING },
 		{ 'i', index_param, NULL, G_TYPE_STRING },
 		{ 'f', "flags", flags, G_TYPE_STRING },
@@ -123,8 +124,8 @@ struct g_command PUBSYM(class_commands)[
 		G_OPT_SENTINEL },
 	  NULL, "[-lr] [geom ...]"
 	},
-	{ "undo", 0, NULL, G_NULL_OPTS, "geom", NULL },
-	{ "unset", 0, NULL, {
+	{ "undo", 0, gpart_issue, G_NULL_OPTS, "geom", NULL },
+	{ "unset", 0, gpart_issue, {
 		{ 'a', "attrib", NULL, G_TYPE_STRING },
 		{ 'i', index_param, NULL, G_TYPE_STRING },
 		{ 'f', "flags", flags, G_TYPE_STRING },
@@ -186,17 +187,23 @@ static struct gprovider *
 find_provider(struct ggeom *gp, unsigned long long minsector)
 {
 	struct gprovider *pp, *bestpp;
-	unsigned long long offset;
+	const char *s;
 	unsigned long long sector, bestsector;
 
 	bestpp = NULL;
 	LIST_FOREACH(pp, &gp->lg_provider, lg_provider) {
-		offset = atoll(find_provcfg(pp, "offset"));
-		sector = offset / pp->lg_sectorsize;
+		s = find_provcfg(pp, "start");
+		if (s == NULL) {
+			s = find_provcfg(pp, "offset");
+			sector = atoll(s) / pp->lg_sectorsize;
+		} else
+			sector = atoll(s);
+
 		if (sector < minsector)
 			continue;
 		if (bestpp != NULL && sector >= bestsector)
 			continue;
+
 		bestpp = pp;
 		bestsector = sector;
 	}
@@ -216,13 +223,20 @@ fmtsize(int64_t rawsz)
 static const char *
 fmtattrib(struct gprovider *pp)
 {
-	static char buf[64];
-	const char *val;
+	static char buf[128];
+	struct gconfig *gc;
+	u_int idx;
 
-	val = find_provcfg(pp, "attrib");
-	if (val == NULL)
-		return ("");
-	snprintf(buf, sizeof(buf), " [%s] ", val);
+	buf[0] = '\0';
+	idx = 0;
+	LIST_FOREACH(gc, &pp->lg_config, lg_config) {
+		if (strcmp(gc->lg_name, "attrib") != 0)
+			continue;
+		idx += snprintf(buf + idx, sizeof(buf) - idx, "%s%s",
+		    (idx == 0) ? " [" : ",", gc->lg_val);
+	}
+	if (idx > 0)
+		snprintf(buf + idx, sizeof(buf) - idx, "] ");
 	return (buf);
 }
 
@@ -232,7 +246,7 @@ gpart_show_geom(struct ggeom *gp, const 
 	struct gprovider *pp;
 	const char *s, *scheme;
 	unsigned long long first, last, sector, end;
-	unsigned long long offset, length, secsz;
+	unsigned long long length, secsz;
 	int idx, wblocks, wname;
 
 	scheme = find_geomcfg(gp, "scheme");
@@ -250,14 +264,24 @@ gpart_show_geom(struct ggeom *gp, const 
 	    scheme, fmtsize(pp->lg_mediasize));
 
 	while ((pp = find_provider(gp, first)) != NULL) {
-		s = find_provcfg(pp, "offset");
-		offset = atoll(s);
-		sector = offset / secsz;
-		s = find_provcfg(pp, "length");
-		length = atoll(s);
+		s = find_provcfg(pp, "start");
+		if (s == NULL) {
+			s = find_provcfg(pp, "offset");
+			sector = atoll(s) / secsz;
+		} else
+			sector = atoll(s);
+
+		s = find_provcfg(pp, "end");
+		if (s == NULL) {
+			s = find_provcfg(pp, "length");
+			length = atoll(s) / secsz;
+			end = sector + length - 1;
+		} else {
+			end = atoll(s);
+			length = end - sector + 1;
+		}
 		s = find_provcfg(pp, "index");
 		idx = atoi(s);
-		end = sector + length / secsz;
 		if (first < sector) {
 			printf("  %*llu  %*llu  %*s  - free -  (%s)\n",
 			    wblocks, first, wblocks, sector - first,
@@ -265,16 +289,17 @@ gpart_show_geom(struct ggeom *gp, const 
 			    fmtsize((sector - first) * secsz));
 		}
 		printf("  %*llu  %*llu  %*d  %s %s (%s)\n",
-		    wblocks, sector, wblocks, end - sector,
+		    wblocks, sector, wblocks, length,
 		    wname, idx, find_provcfg(pp, element),
 		    fmtattrib(pp), fmtsize(pp->lg_mediasize));
-		first = end;
+		first = end + 1;
 	}
 	if (first <= last) {
+		length = last - first + 1;
 		printf("  %*llu  %*llu  %*s  - free -  (%s)\n",
-		    wblocks, first, wblocks, last - first + 1,
+		    wblocks, first, wblocks, length,
 		    wname, "",
-		    fmtsize((last - first + 1) * secsz));
+		    fmtsize(length * secsz));
 	}
 	printf("\n");
 }
@@ -439,7 +464,7 @@ gpart_write_partcode(struct gctl_req *re
 }
 
 static void
-gpart_bootcode(struct gctl_req *req, unsigned int fl __unused)
+gpart_bootcode(struct gctl_req *req, unsigned int fl)
 {
 	const char *s;
 	char *sp;
@@ -494,9 +519,42 @@ gpart_bootcode(struct gctl_req *req, uns
 			errx(EXIT_FAILURE, "no -b nor -p");
 	}
 
-	if (bootcode != NULL) {
-		s = gctl_issue(req);
-		if (s != NULL)
-			errx(EXIT_FAILURE, "%s", s);
-	}
+	if (bootcode != NULL)
+		gpart_issue(req, fl);
+}
+
+static void
+gpart_issue(struct gctl_req *req, unsigned int fl __unused)
+{
+	char buf[4096];
+	char *errmsg;
+	const char *errstr;
+	int error, status;
+
+	bzero(buf, sizeof(buf));
+	gctl_rw_param(req, "output", sizeof(buf), buf);
+	errstr = gctl_issue(req);
+	if (errstr == NULL || errstr[0] == '\0') {
+		if (buf[0] != '\0')
+			printf("%s", buf);
+		status = EXIT_SUCCESS;
+		goto done;
+	}
+
+	error = strtol(errstr, &errmsg, 0);
+	if (errmsg != errstr) {
+		while (errmsg[0] == ' ')
+			errmsg++;
+		if (errmsg[0] != '\0')
+			warnc(error, "%s", errmsg);
+		else
+			warnc(error, NULL);
+	} else
+		warnx("%s", errmsg);
+
+	status = EXIT_FAILURE;
+
+ done:
+	gctl_free(req);
+	exit(status);
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 07:37:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D9B1B106564A;
	Thu, 19 Mar 2009 07:37:00 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C65C78FC18;
	Thu, 19 Mar 2009 07:37:00 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J7b0cW051976;
	Thu, 19 Mar 2009 07:37:00 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J7b0OL051975;
	Thu, 19 Mar 2009 07:37:00 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190737.n2J7b0OL051975@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 07:37:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190015 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 07:37:02 -0000

Author: rnoland
Date: Thu Mar 19 07:37:00 2009
New Revision: 190015
URL: http://svn.freebsd.org/changeset/base/190015

Log:
  Merge 189868
  
  Fix R600 writeback across suspend/resume.
  
  This is likely a NOOP for us, since I haven't ported the suspend/resume
  code yet.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/r600_cp.c

Modified: stable/7/sys/dev/drm/r600_cp.c
==============================================================================
--- stable/7/sys/dev/drm/r600_cp.c	Thu Mar 19 06:44:00 2009	(r190014)
+++ stable/7/sys/dev/drm/r600_cp.c	Thu Mar 19 07:37:00 2009	(r190015)
@@ -1740,9 +1740,6 @@ static void r600_cp_init_ring_buffer(str
 
 	RADEON_WRITE(R600_CP_DEBUG, (1 << 27) | (1 << 28));
 
-	/* Start with assuming that writeback doesn't work */
-	dev_priv->writeback_works = 0;
-
 	/* Initialize the scratch register pointer.  This will cause
 	 * the scratch register values to be written out to memory
 	 * whenever they are updated.

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 07:39:07 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A48E0106564A;
	Thu, 19 Mar 2009 07:39:07 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7728E8FC12;
	Thu, 19 Mar 2009 07:39:07 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J7d7cb052067;
	Thu, 19 Mar 2009 07:39:07 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J7d7o0052064;
	Thu, 19 Mar 2009 07:39:07 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190739.n2J7d7o0052064@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 07:39:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190016 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 07:39:08 -0000

Author: rnoland
Date: Thu Mar 19 07:39:07 2009
New Revision: 190016
URL: http://svn.freebsd.org/changeset/base/190016

Log:
  Merge 189869
  
  Get rid of any remaining PZERO flags in mtx_sleep()
  
  Also, clean up some ifdef mess while I'm here.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_drv.c
  stable/7/sys/dev/drm/drm_lock.c
  stable/7/sys/dev/drm/radeon_cp.c

Modified: stable/7/sys/dev/drm/drm_drv.c
==============================================================================
--- stable/7/sys/dev/drm/drm_drv.c	Thu Mar 19 07:37:00 2009	(r190015)
+++ stable/7/sys/dev/drm/drm_drv.c	Thu Mar 19 07:39:07 2009	(r190016)
@@ -666,7 +666,7 @@ void drm_close(void *data)
 			}
 			/* Contention */
 			retcode = mtx_sleep((void *)&dev->lock.lock_queue,
-			    &dev->dev_lock, PZERO | PCATCH, "drmlk2", 0);
+			    &dev->dev_lock, PCATCH, "drmlk2", 0);
 			if (retcode)
 				break;
 		}

Modified: stable/7/sys/dev/drm/drm_lock.c
==============================================================================
--- stable/7/sys/dev/drm/drm_lock.c	Thu Mar 19 07:37:00 2009	(r190015)
+++ stable/7/sys/dev/drm/drm_lock.c	Thu Mar 19 07:39:07 2009	(r190016)
@@ -82,7 +82,7 @@ int drm_lock(struct drm_device *dev, voi
 
 		/* Contention */
 		ret = mtx_sleep((void *)&dev->lock.lock_queue, &dev->dev_lock,
-		    PZERO | PCATCH, "drmlk2", 0);
+		    PCATCH, "drmlk2", 0);
 		if (ret != 0)
 			break;
 	}

Modified: stable/7/sys/dev/drm/radeon_cp.c
==============================================================================
--- stable/7/sys/dev/drm/radeon_cp.c	Thu Mar 19 07:37:00 2009	(r190015)
+++ stable/7/sys/dev/drm/radeon_cp.c	Thu Mar 19 07:39:07 2009	(r190016)
@@ -1708,26 +1708,14 @@ void radeon_do_release(struct drm_device
 			if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) {
 				while ((ret = r600_do_cp_idle(dev_priv)) != 0) {
 					DRM_DEBUG("radeon_do_cp_idle %d\n", ret);
-#ifdef __linux__
-					schedule();
-#elsif defined(__FreeBSD__)
 					mtx_sleep(&ret, &dev->dev_lock, 0,
 					    "rdnrel", 1);
-#else
-					tsleep(&ret, PZERO, "rdnrel", 1);
-#endif
 				}
 			} else {
 				while ((ret = radeon_do_cp_idle(dev_priv)) != 0) {
 					DRM_DEBUG("radeon_do_cp_idle %d\n", ret);
-#ifdef __linux__
-					schedule();
-#elsif defined(__FreeBSD__)
 					mtx_sleep(&ret, &dev->dev_lock, 0,
 					    "rdnrel", 1);
-#else
-					tsleep(&ret, PZERO, "rdnrel", 1);
-#endif
 				}
 			}
 			if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 07:40:41 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BB01E106567D;
	Thu, 19 Mar 2009 07:40:41 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8CB478FC1D;
	Thu, 19 Mar 2009 07:40:41 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J7efhb052151;
	Thu, 19 Mar 2009 07:40:41 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J7efQm052150;
	Thu, 19 Mar 2009 07:40:41 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190740.n2J7efQm052150@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 07:40:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190017 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/atkbdc dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 07:40:42 -0000

Author: rnoland
Date: Thu Mar 19 07:40:41 2009
New Revision: 190017
URL: http://svn.freebsd.org/changeset/base/190017

Log:
  Merge 189870
  
  Teach psm about O_ASYNC
  
  This makes Xorg happy if you aren't using moused.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/atkbdc/psm.c
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/dev/atkbdc/psm.c
==============================================================================
--- stable/7/sys/dev/atkbdc/psm.c	Thu Mar 19 07:39:07 2009	(r190016)
+++ stable/7/sys/dev/atkbdc/psm.c	Thu Mar 19 07:40:41 2009	(r190017)
@@ -70,7 +70,10 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
+#include 
+#include 
 #include 
 #include 
 #include 
@@ -212,6 +215,7 @@ struct psm_softc {		/* Driver status inf
 	struct cdev	*bdev;
 	int		lasterr;
 	int		cmdcount;
+	struct sigio	*async;		/* Processes waiting for SIGIO */
 };
 static devclass_t psm_devclass;
 #define	PSM_SOFTC(unit)	\
@@ -1383,6 +1387,7 @@ psmopen(struct cdev *dev, int flag, int 
 	sc->mode.level = sc->dflt_mode.level;
 	sc->mode.protocol = sc->dflt_mode.protocol;
 	sc->watchdog = FALSE;
+	sc->async = NULL;
 
 	/* flush the event queue */
 	sc->queue.count = 0;
@@ -1522,6 +1527,12 @@ psmclose(struct cdev *dev, int flag, int
 	/* remove anything left in the output buffer */
 	empty_aux_buffer(sc->kbdc, 10);
 
+	/* clean up and sigio requests */
+	if (sc->async != NULL) {
+		funsetown(&sc->async);
+		sc->async = NULL;
+	}
+
 	/* close is almost always successful */
 	sc->state &= ~PSM_OPEN;
 	kbdc_lock(sc->kbdc, FALSE);
@@ -2083,6 +2094,15 @@ psmioctl(struct cdev *dev, u_long cmd, c
 		break;
 #endif /* MOUSE_GETHWID */
 
+	case FIONBIO:
+	case FIOASYNC:
+		break;
+	case FIOSETOWN:
+		error = fsetown(*(int *)addr, &sc->async);
+		break;
+	case FIOGETOWN:
+		*(int *) addr = fgetown(&sc->async);
+		break;
 	default:
 		return (ENOTTY);
 	}
@@ -2972,6 +2992,9 @@ next:
 		wakeup(sc);
 	}
 	selwakeuppri(&sc->rsel, PZERO);
+	if (sc->async != NULL) {
+		pgsigio(&sc->async, SIGIO, 0);
+	}
 	sc->state &= ~PSM_SOFTARMED;
 	splx(s);
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 07:41:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 93E361065674;
	Thu, 19 Mar 2009 07:41:58 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 815AF8FC0A;
	Thu, 19 Mar 2009 07:41:58 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J7fwfE052220;
	Thu, 19 Mar 2009 07:41:58 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J7fwqh052219;
	Thu, 19 Mar 2009 07:41:58 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190741.n2J7fwqh052219@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 07:41:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190018 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 07:41:59 -0000

Author: rnoland
Date: Thu Mar 19 07:41:58 2009
New Revision: 190018
URL: http://svn.freebsd.org/changeset/base/190018

Log:
  Merge 189899
  
  Use the right MSI_REARM for RS600.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/radeon_irq.c

Modified: stable/7/sys/dev/drm/radeon_irq.c
==============================================================================
--- stable/7/sys/dev/drm/radeon_irq.c	Thu Mar 19 07:40:41 2009	(r190017)
+++ stable/7/sys/dev/drm/radeon_irq.c	Thu Mar 19 07:41:58 2009	(r190018)
@@ -229,6 +229,7 @@ irqreturn_t radeon_driver_irq_handler(DR
 				RADEON_WRITE(RADEON_AIC_CNTL,
 				    tmp | RS400_MSI_REARM);
 				break;
+			case CHIP_RS600:
 			case CHIP_RS690:
 			case CHIP_RS740:
 				tmp = RADEON_READ(RADEON_BUS_CNTL) &

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 08:18:14 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 754731065670;
	Thu, 19 Mar 2009 08:18:14 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 484FA8FC0A;
	Thu, 19 Mar 2009 08:18:14 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J8IDY9053091;
	Thu, 19 Mar 2009 08:18:13 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J8ID8R053090;
	Thu, 19 Mar 2009 08:18:13 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190818.n2J8ID8R053090@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 08:18:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190019 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 08:18:15 -0000

Author: rnoland
Date: Thu Mar 19 08:18:13 2009
New Revision: 190019
URL: http://svn.freebsd.org/changeset/base/190019

Log:
  Record only commit to document that 173573,175381,176624,177480,183397
  have all been merged.  Not sure where these got lost exactly...

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 08:22:57 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 025DA106564A;
	Thu, 19 Mar 2009 08:22:57 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E4ACD8FC12;
	Thu, 19 Mar 2009 08:22:56 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J8MuXa053262;
	Thu, 19 Mar 2009 08:22:56 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J8MuBl053258;
	Thu, 19 Mar 2009 08:22:56 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190822.n2J8MuBl053258@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 08:22:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190020 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 08:22:57 -0000

Author: rnoland
Date: Thu Mar 19 08:22:56 2009
New Revision: 190020
URL: http://svn.freebsd.org/changeset/base/190020

Log:
  Pull in some suspend / resume changes from Intel's code
  
  Tested by:	mav@
  MFC after:	3 days

Modified:
  head/sys/dev/drm/i915_drv.h
  head/sys/dev/drm/i915_reg.h
  head/sys/dev/drm/i915_suspend.c

Modified: head/sys/dev/drm/i915_drv.h
==============================================================================
--- head/sys/dev/drm/i915_drv.h	Thu Mar 19 08:18:13 2009	(r190019)
+++ head/sys/dev/drm/i915_drv.h	Thu Mar 19 08:22:56 2009	(r190020)
@@ -151,6 +151,8 @@ typedef struct drm_i915_private {
 	u32 saveDSPACNTR;
 	u32 saveDSPBCNTR;
 	u32 saveDSPARB;
+	u32 saveRENDERSTANDBY;
+	u32 saveHWS;
 	u32 savePIPEACONF;
 	u32 savePIPEBCONF;
 	u32 savePIPEASRC;
@@ -232,8 +234,8 @@ typedef struct drm_i915_private {
 	u8 saveAR_INDEX;
 	u8 saveAR[21];
 	u8 saveDACMASK;
-	u8 saveDACDATA[256*3]; /* 256 3-byte colors */
 	u8 saveCR[37];
+
 	struct {
 #ifdef __linux__
 		struct drm_mm gtt_space;
@@ -651,7 +653,8 @@ extern int i915_wait_ring(struct drm_dev
 
 #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
 		     (dev)->pci_device == 0x2E12 || \
-		     (dev)->pci_device == 0x2E22)
+		     (dev)->pci_device == 0x2E22 || \
+		     IS_GM45(dev))
 
 #define IS_G33(dev)    ((dev)->pci_device == 0x29C2 ||	\
 			(dev)->pci_device == 0x29B2 ||	\

Modified: head/sys/dev/drm/i915_reg.h
==============================================================================
--- head/sys/dev/drm/i915_reg.h	Thu Mar 19 08:18:13 2009	(r190019)
+++ head/sys/dev/drm/i915_reg.h	Thu Mar 19 08:22:56 2009	(r190020)
@@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$");
 #define INTEL_GMCH_MEM_64M	0x1
 #define INTEL_GMCH_MEM_128M	0
 
-#define INTEL_855_GMCH_GMS_MASK		(0x7 << 4)
+#define INTEL_GMCH_GMS_MASK		(0xf << 4)
 #define INTEL_855_GMCH_GMS_DISABLED	(0x0 << 4)
 #define INTEL_855_GMCH_GMS_STOLEN_1M	(0x1 << 4)
 #define INTEL_855_GMCH_GMS_STOLEN_4M	(0x2 << 4)
@@ -48,6 +48,12 @@ __FBSDID("$FreeBSD$");
 
 #define INTEL_915G_GMCH_GMS_STOLEN_48M	(0x6 << 4)
 #define INTEL_915G_GMCH_GMS_STOLEN_64M	(0x7 << 4)
+#define INTEL_GMCH_GMS_STOLEN_128M	(0x8 << 4)
+#define INTEL_GMCH_GMS_STOLEN_256M	(0x9 << 4)
+#define INTEL_GMCH_GMS_STOLEN_96M	(0xa << 4)
+#define INTEL_GMCH_GMS_STOLEN_160M	(0xb << 4)
+#define INTEL_GMCH_GMS_STOLEN_224M	(0xc << 4)
+#define INTEL_GMCH_GMS_STOLEN_352M	(0xd << 4)
 
 /* PCI config space */
 
@@ -178,9 +184,27 @@ __FBSDID("$FreeBSD$");
 #define   DISPLAY_PLANE_B           (1<<20)
 
 /*
- * Instruction and interrupt control regs
+ * Fence registers
  */
+#define FENCE_REG_830_0			0x2000
+#define FENCE_REG_945_8			0x3000
+#define   I830_FENCE_START_MASK		0x07f80000
+#define   I830_FENCE_TILING_Y_SHIFT	12
+#define   I830_FENCE_SIZE_BITS(size)	((ffs((size) >> 19) - 1) << 8)
+#define   I830_FENCE_PITCH_SHIFT	4
+#define   I830_FENCE_REG_VALID		(1<<0)
+
+#define   I915_FENCE_START_MASK		0x0ff00000
+#define   I915_FENCE_SIZE_BITS(size)	((ffs((size) >> 20) - 1) << 8)
+
+#define FENCE_REG_965_0			0x03000
+#define   I965_FENCE_PITCH_SHIFT	2
+#define   I965_FENCE_TILING_Y_SHIFT	1
+#define   I965_FENCE_REG_VALID		(1<<0)
 
+/*
+ * Instruction and interrupt control regs
+ */
 #define PRB0_TAIL	0x02030
 #define PRB0_HEAD	0x02034
 #define PRB0_START	0x02038
@@ -248,6 +272,7 @@ __FBSDID("$FreeBSD$");
 #define   CM0_RC_OP_FLUSH_DISABLE (1<<0)
 #define GFX_FLSH_CNTL	0x02170 /* 915+ only */
 
+
 /*
  * Framebuffer compression (915+ only)
  */
@@ -525,11 +550,17 @@ __FBSDID("$FreeBSD$");
 #define DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED	(2 << 0)
 #define DCC_ADDRESSING_MODE_MASK			(3 << 0)
 #define DCC_CHANNEL_XOR_DISABLE				(1 << 10)
+#define DCC_CHANNEL_XOR_BIT_17				(1 << 9)
 
 /** 965 MCH register controlling DRAM channel configuration */
 #define C0DRB3			0x10206
 #define C1DRB3			0x10606
 
+/** GM965 GM45 render standby register */
+#define MCHBAR_RENDER_STANDBY	0x111B8
+
+#define PEG_BAND_GAP_DATA	0x14d68
+
 /*
  * Overlay regs
  */
@@ -593,6 +624,9 @@ __FBSDID("$FreeBSD$");
 
 /* Hotplug control (945+ only) */
 #define PORT_HOTPLUG_EN		0x61110
+#define   HDMIB_HOTPLUG_INT_EN			(1 << 29)
+#define   HDMIC_HOTPLUG_INT_EN			(1 << 28)
+#define   HDMID_HOTPLUG_INT_EN			(1 << 27)
 #define   SDVOB_HOTPLUG_INT_EN			(1 << 26)
 #define   SDVOC_HOTPLUG_INT_EN			(1 << 25)
 #define   TV_HOTPLUG_INT_EN			(1 << 18)
@@ -600,6 +634,9 @@ __FBSDID("$FreeBSD$");
 #define   CRT_HOTPLUG_FORCE_DETECT		(1 << 3)
 
 #define PORT_HOTPLUG_STAT	0x61114
+#define   HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
+#define   HDMIC_HOTPLUG_INT_STATUS		(1 << 28)
+#define   HDMID_HOTPLUG_INT_STATUS		(1 << 27)
 #define   CRT_HOTPLUG_INT_STATUS		(1 << 11)
 #define   TV_HOTPLUG_INT_STATUS			(1 << 10)
 #define   CRT_HOTPLUG_MONITOR_MASK		(3 << 8)
@@ -629,7 +666,16 @@ __FBSDID("$FreeBSD$");
 #define   SDVO_PHASE_SELECT_DEFAULT	(6 << 19)
 #define   SDVO_CLOCK_OUTPUT_INVERT	(1 << 18)
 #define   SDVOC_GANG_MODE		(1 << 16)
+#define   SDVO_ENCODING_SDVO		(0x0 << 10)
+#define   SDVO_ENCODING_HDMI		(0x2 << 10)
+/** Requird for HDMI operation */
+#define   SDVO_NULL_PACKETS_DURING_VSYNC (1 << 9)
 #define   SDVO_BORDER_ENABLE		(1 << 7)
+#define   SDVO_AUDIO_ENABLE		(1 << 6)
+/** New with 965, default is to be set */
+#define   SDVO_VSYNC_ACTIVE_HIGH	(1 << 4)
+/** New with 965, default is to be set */
+#define   SDVO_HSYNC_ACTIVE_HIGH	(1 << 3)
 #define   SDVOB_PCIE_CONCURRENCY	(1 << 3)
 #define   SDVO_DETECTED			(1 << 2)
 /* Bits to be preserved when writing */
@@ -1403,6 +1449,7 @@ __FBSDID("$FreeBSD$");
 #define PIPEB_FRMCOUNT_GM45	0x71040
 #define PIPEB_FLIPCOUNT_GM45	0x71044
 
+
 /* Display B control */
 #define DSPBCNTR		0x71180
 #define   DISPPLANE_ALPHA_TRANS_ENABLE		(1<<15)

Modified: head/sys/dev/drm/i915_suspend.c
==============================================================================
--- head/sys/dev/drm/i915_suspend.c	Thu Mar 19 08:18:13 2009	(r190019)
+++ head/sys/dev/drm/i915_suspend.c	Thu Mar 19 08:22:56 2009	(r190020)
@@ -125,11 +125,6 @@ static void i915_save_vga(struct drm_dev
 
 	/* VGA color palette registers */
 	dev_priv->saveDACMASK = I915_READ8(VGA_DACMASK);
-	/* DACCRX automatically increments during read */
-	I915_WRITE8(VGA_DACRX, 0);
-	/* Read 3 bytes of color data from each index */
-	for (i = 0; i < 256 * 3; i++)
-		dev_priv->saveDACDATA[i] = I915_READ8(VGA_DACDATA);
 
 	/* MSR bits */
 	dev_priv->saveMSR = I915_READ8(VGA_MSR_READ);
@@ -231,12 +226,6 @@ static void i915_restore_vga(struct drm_
 
 	/* VGA color palette registers */
 	I915_WRITE8(VGA_DACMASK, dev_priv->saveDACMASK);
-	/* DACCRX automatically increments during read */
-	I915_WRITE8(VGA_DACWX, 0);
-	/* Read 3 bytes of color data from each index */
-	for (i = 0; i < 256 * 3; i++)
-		I915_WRITE8(VGA_DACDATA, dev_priv->saveDACDATA[i]);
-
 }
 
 int i915_save_state(struct drm_device *dev)
@@ -250,6 +239,13 @@ int i915_save_state(struct drm_device *d
 	pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB);
 #endif
 
+	/* Render Standby */
+	if (IS_I965G(dev) && IS_MOBILE(dev))
+		dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
+
+	/* Hardware status page */
+	dev_priv->saveHWS = I915_READ(HWS_PGA);
+
 	/* Display arbitration control */
 	dev_priv->saveDSPARB = I915_READ(DSPARB);
 
@@ -379,6 +375,14 @@ int i915_restore_state(struct drm_device
 	pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);
 #endif
 
+	/* Render Standby */
+	if (IS_I965G(dev) && IS_MOBILE(dev))
+		I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
+
+	/* Hardware status page */
+	I915_WRITE(HWS_PGA, dev_priv->saveHWS);
+
+	/* Display arbitration */
 	I915_WRITE(DSPARB, dev_priv->saveDSPARB);
 
 	/* Pipe & plane A info */

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 08:28:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B1A901065670;
	Thu, 19 Mar 2009 08:28:36 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9F3D98FC0C;
	Thu, 19 Mar 2009 08:28:36 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J8SaBL053404;
	Thu, 19 Mar 2009 08:28:36 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J8Sanh053402;
	Thu, 19 Mar 2009 08:28:36 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190828.n2J8Sanh053402@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 08:28:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190021 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 08:28:37 -0000

Author: rnoland
Date: Thu Mar 19 08:28:36 2009
New Revision: 190021
URL: http://svn.freebsd.org/changeset/base/190021

Log:
  Sync up the rest of the code that we use with what Intel is shipping
  
  	-Some irq/vblank related changes that hopefully will help.
  	-A little more cleanup while I'm here.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/i915_dma.c
  head/sys/dev/drm/i915_irq.c

Modified: head/sys/dev/drm/i915_dma.c
==============================================================================
--- head/sys/dev/drm/i915_dma.c	Thu Mar 19 08:22:56 2009	(r190020)
+++ head/sys/dev/drm/i915_dma.c	Thu Mar 19 08:28:36 2009	(r190021)
@@ -193,7 +193,7 @@ static int i915_initialize(struct drm_de
 		dev_priv->ring.map.flags = 0;
 		dev_priv->ring.map.mtrr = 0;
 
-		drm_core_ioremap(&dev_priv->ring.map, dev);
+		drm_core_ioremap_wc(&dev_priv->ring.map, dev);
 
 		if (dev_priv->ring.map.handle == NULL) {
 			i915_dma_cleanup(dev);
@@ -209,7 +209,7 @@ static int i915_initialize(struct drm_de
 	dev_priv->back_offset = init->back_offset;
 	dev_priv->front_offset = init->front_offset;
 	dev_priv->current_page = 0;
-	dev_priv->sarea_priv->pf_current_page = dev_priv->current_page;
+	dev_priv->sarea_priv->pf_current_page = 0;
 
 	/* Allow hardware batchbuffers unless told otherwise.
 	 */
@@ -721,7 +721,7 @@ static int i915_flip_bufs(struct drm_dev
 
 	DRM_DEBUG("%s\n", __func__);
 
-	LOCK_TEST_WITH_RETURN(dev, file_priv);
+	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
 
 	ret = i915_dispatch_flip(dev);
 
@@ -758,7 +758,7 @@ static int i915_getparam(struct drm_devi
 		value = 0;
 		break;
 	default:
-		DRM_ERROR("Unknown parameter %d\n", param->param);
+		DRM_DEBUG("Unknown parameter %d\n", param->param);
 		return -EINVAL;
 	}
 
@@ -791,7 +791,7 @@ static int i915_setparam(struct drm_devi
 		dev_priv->allow_batchbuffer = param->value;
 		break;
 	default:
-		DRM_ERROR("unknown parameter %d\n", param->param);
+		DRM_DEBUG("unknown parameter %d\n", param->param);
 		return -EINVAL;
 	}
 
@@ -822,7 +822,7 @@ static int i915_set_status_page(struct d
 	dev_priv->hws_map.flags = 0;
 	dev_priv->hws_map.mtrr = 0;
 
-	drm_core_ioremap(&dev_priv->hws_map, dev);
+	drm_core_ioremap_wc(&dev_priv->hws_map, dev);
 	if (dev_priv->hws_map.handle == NULL) {
 		i915_dma_cleanup(dev);
 		dev_priv->status_gfx_addr = 0;
@@ -880,8 +880,12 @@ int i915_driver_load(struct drm_device *
 	/* Init HWS */
 	if (!I915_NEED_GFX_HWS(dev)) {
 		ret = i915_init_phys_hws(dev);
-		if (ret != 0)
+		if (ret != 0) {
+			drm_rmmap(dev, dev_priv->mmio_map);
+			drm_free(dev_priv, sizeof(struct drm_i915_private),
+			    DRM_MEM_DRIVER);
 			return ret;
+		}
 	}
 #ifdef __linux__
 	/* On the 945G/GM, the chipset reports the MSI capability on the
@@ -901,6 +905,7 @@ int i915_driver_load(struct drm_device *
 	intel_opregion_init(dev);
 #endif
 	DRM_SPININIT(&dev_priv->user_irq_lock, "userirq");
+	dev_priv->user_irq_refcount = 0;
 
 	ret = drm_vblank_init(dev, I915_NUM_PIPE);
 

Modified: head/sys/dev/drm/i915_irq.c
==============================================================================
--- head/sys/dev/drm/i915_irq.c	Thu Mar 19 08:22:56 2009	(r190020)
+++ head/sys/dev/drm/i915_irq.c	Thu Mar 19 08:28:36 2009	(r190021)
@@ -43,21 +43,28 @@ __FBSDID("$FreeBSD$");
  * we leave them always unmasked in IMR and then control enabling them through
  * PIPESTAT alone.
  */
-#define I915_INTERRUPT_ENABLE_FIX (I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \
-				   I915_DISPLAY_PIPE_B_EVENT_INTERRUPT)
+#define I915_INTERRUPT_ENABLE_FIX	(I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \
+				   	 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT)
 
 /** Interrupts that we mask and unmask at runtime. */
-#define I915_INTERRUPT_ENABLE_VAR (I915_USER_INTERRUPT)
+#define I915_INTERRUPT_ENABLE_VAR	(I915_USER_INTERRUPT)
 
 /** These are all of the interrupts used by the driver */
-#define I915_INTERRUPT_ENABLE_MASK (I915_INTERRUPT_ENABLE_FIX | \
-				    I915_INTERRUPT_ENABLE_VAR)
+#define I915_INTERRUPT_ENABLE_MASK	(I915_INTERRUPT_ENABLE_FIX | \
+				    	 I915_INTERRUPT_ENABLE_VAR)
+
+#define I915_PIPE_VBLANK_STATUS		(PIPE_START_VBLANK_INTERRUPT_STATUS |\
+					 PIPE_VBLANK_INTERRUPT_STATUS)
+ 
+#define I915_PIPE_VBLANK_ENABLE		(PIPE_START_VBLANK_INTERRUPT_ENABLE |\
+					 PIPE_VBLANK_INTERRUPT_ENABLE)
+  
+#define DRM_I915_VBLANK_PIPE_ALL	(DRM_I915_VBLANK_PIPE_A | \
+					 DRM_I915_VBLANK_PIPE_B)
 
 static inline void
 i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask)
 {
-	DRM_DEBUG("irq_enable_reg = 0x%08x, mask = 0x%08x\n",
-	    dev_priv->irq_mask_reg, mask);
 	mask &= I915_INTERRUPT_ENABLE_VAR;
 	if ((dev_priv->irq_mask_reg & mask) != 0) {
 		dev_priv->irq_mask_reg &= ~mask;
@@ -189,59 +196,84 @@ irqreturn_t i915_driver_irq_handler(DRM_
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
 	u32 iir, new_iir;
 	u32 pipea_stats, pipeb_stats;
+	u32 vblank_status;
+	u32 vblank_enable;
+	int irq_received;
 
 	atomic_inc(&dev_priv->irq_received);
 
-	for (iir = I915_READ(IIR) ; iir != 0 ; iir = new_iir) {
+	iir = I915_READ(IIR);
 
-		pipea_stats = pipeb_stats = 0;
+	if (IS_I965G(dev)) {
+		vblank_status = I915_START_VBLANK_INTERRUPT_STATUS;
+		vblank_enable = PIPE_START_VBLANK_INTERRUPT_ENABLE;
+	} else {
+		vblank_status = I915_VBLANK_INTERRUPT_STATUS;
+		vblank_enable = I915_VBLANK_INTERRUPT_ENABLE;
+	}
+
+	for (;;) {
+		irq_received = iir != 0;
+
+		/* Can't rely on pipestat interrupt bit in iir as it might
+		 * have been cleared after the pipestat interrupt was received.
+		 * It doesn't set the bit in iir again, but it still produces
+		 * interrupts (for non-MSI).
+		 */
+		DRM_SPINLOCK(&dev_priv->user_irq_lock);
+		pipea_stats = I915_READ(PIPEASTAT);
+		pipeb_stats = I915_READ(PIPEBSTAT);
 
 		/*
 		 * Clear the PIPE(A|B)STAT regs before the IIR
 		 */
-		if (iir & I915_DISPLAY_PIPE_A_EVENT_INTERRUPT) {
-			DRM_SPINLOCK(&dev_priv->user_irq_lock);
-			pipea_stats = I915_READ(PIPEASTAT);
+		if (pipea_stats & 0x8000ffff) {
 			I915_WRITE(PIPEASTAT, pipea_stats);
-			DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
+			irq_received = 1;
 		}
 
-		if (iir & I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) {
-			DRM_SPINLOCK(&dev_priv->user_irq_lock);
-			pipeb_stats = I915_READ(PIPEBSTAT);
+		if (pipeb_stats & 0x8000ffff) {
 			I915_WRITE(PIPEBSTAT, pipeb_stats);
-			DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
+			irq_received = 1;
 		}
+		DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
 
-		I915_WRITE(IIR, iir);
-		new_iir = I915_READ(IIR);
+		if (!irq_received)
+			break;
 
-		DRM_DEBUG("iir = 0x%08x, pipestats a = 0x%08x, b = 0x%08x\n",
-		    iir, pipea_stats, pipeb_stats);
+		I915_WRITE(IIR, iir);
+		new_iir = I915_READ(IIR); /* Flush posted writes */
 
 		if (dev_priv->sarea_priv)
 			dev_priv->sarea_priv->last_dispatch =
 			    READ_BREADCRUMB(dev_priv);
 
 		if (iir & I915_USER_INTERRUPT) {
-#ifdef I915_HAVE_GEM
-			dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev);
-#endif
 			DRM_WAKEUP(&dev_priv->irq_queue);
 		}
 
-		if (pipea_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS |
-		    PIPE_VBLANK_INTERRUPT_STATUS))
+		if (pipea_stats & vblank_status)
 			drm_handle_vblank(dev, 0);
 
-		if (pipeb_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS |
-		    PIPE_VBLANK_INTERRUPT_STATUS))
+		if (pipeb_stats & vblank_status)
 			drm_handle_vblank(dev, 1);
-#ifdef __linux__
-		if ((pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) ||
-		    (iir & I915_ASLE_INTERRUPT))
-			opregion_asle_intr(dev);
-#endif
+
+		/* With MSI, interrupts are only generated when iir
+		 * transitions from zero to nonzero.  If another bit got
+		 * set while we were handling the existing iir bits, then
+		 * we would never get another interrupt.
+		 *
+		 * This is fine on non-MSI as well, as if we hit this path
+		 * we avoid exiting the interrupt handler only to generate
+		 * another one.
+		 *
+		 * Note that for MSI this could cause a stray interrupt report
+		 * if an interrupt landed in the time between writing IIR and
+		 * the posting read.  This should be rare enough to never
+		 * trigger the 99% of 100,000 interrupts test for disabling
+		 * stray interrupts.
+		 */
+		iir = new_iir;
 	}
 }
 
@@ -273,27 +305,25 @@ static int i915_emit_irq(struct drm_devi
 void i915_user_irq_get(struct drm_device *dev)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-	unsigned long irqflags;
 
 	DRM_DEBUG("\n");
-	DRM_SPINLOCK_IRQSAVE(&dev_priv->user_irq_lock, irqflags);
+	DRM_SPINLOCK(&dev_priv->user_irq_lock);
 	if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1))
 		i915_enable_irq(dev_priv, I915_USER_INTERRUPT);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev_priv->user_irq_lock, irqflags);
+	DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
 }
 
 void i915_user_irq_put(struct drm_device *dev)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-	unsigned long irqflags;
 
-	DRM_SPINLOCK_IRQSAVE(&dev_priv->user_irq_lock, irqflags);
-#ifdef __linux__
-	BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0);
-#endif
-	if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0))
-		i915_disable_irq(dev_priv, I915_USER_INTERRUPT);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev_priv->user_irq_lock, irqflags);
+	DRM_SPINLOCK(&dev_priv->user_irq_lock);
+	if (dev->irq_enabled) {
+		KASSERT(dev_priv->user_irq_refcount > 0, ("invalid refcount"));
+		if (--dev_priv->user_irq_refcount == 0)
+			i915_disable_irq(dev_priv, I915_USER_INTERRUPT);
+	}
+	DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
 }
 
 static int i915_wait_irq(struct drm_device * dev, int irq_nr)
@@ -320,15 +350,14 @@ static int i915_wait_irq(struct drm_devi
 		    READ_BREADCRUMB(dev_priv) >= irq_nr);
 	i915_user_irq_put(dev);
 
+	if (ret == -ERESTART)
+		DRM_DEBUG("restarting syscall\n");
+
 	if (ret == -EBUSY) {
 		DRM_ERROR("EBUSY -- rec: %d emitted: %d\n",
 			  READ_BREADCRUMB(dev_priv), (int)dev_priv->counter);
 	}
 
-	if (dev_priv->sarea_priv)
-		dev_priv->sarea_priv->last_dispatch =
-			READ_BREADCRUMB(dev_priv);
-
 	return ret;
 }
 
@@ -341,13 +370,13 @@ int i915_irq_emit(struct drm_device *dev
 	drm_i915_irq_emit_t *emit = data;
 	int result;
 
-	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
-
 	if (!dev_priv) {
 		DRM_ERROR("called with no initialization\n");
 		return -EINVAL;
 	}
 
+	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
+
 	result = i915_emit_irq(dev);
 
 	if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) {
@@ -380,21 +409,21 @@ int i915_irq_wait(struct drm_device *dev
 int i915_enable_vblank(struct drm_device *dev, int pipe)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-	unsigned long irqflags;
-	u32 pipestat;
+	int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF;
+	u32 pipeconf;
 
-	/*
-	 * Older chips didn't have the start vblank interrupt,
-	 * but
-	 */
-	if (IS_I965G (dev))
-		pipestat = PIPE_START_VBLANK_INTERRUPT_ENABLE;
-	else
-		pipestat = PIPE_VBLANK_INTERRUPT_ENABLE;
+	pipeconf = I915_READ(pipeconf_reg);
+	if (!(pipeconf & PIPEACONF_ENABLE))
+		return -EINVAL;
 
-	DRM_SPINLOCK_IRQSAVE(&dev_priv->user_irq_lock, irqflags);
-	i915_enable_pipestat(dev_priv, pipe, pipestat);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev_priv->user_irq_lock, irqflags);
+	DRM_SPINLOCK(&dev_priv->user_irq_lock);
+	if (IS_I965G(dev))
+		i915_enable_pipestat(dev_priv, pipe,
+				     PIPE_START_VBLANK_INTERRUPT_ENABLE);
+	else
+		i915_enable_pipestat(dev_priv, pipe,
+				     PIPE_VBLANK_INTERRUPT_ENABLE);
+	DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
 	return 0;
 }
 
@@ -404,12 +433,12 @@ int i915_enable_vblank(struct drm_device
 void i915_disable_vblank(struct drm_device *dev, int pipe)
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-	unsigned long irqflags;
 
-	DRM_SPINLOCK_IRQSAVE(&dev_priv->user_irq_lock, irqflags);
+	DRM_SPINLOCK(&dev_priv->user_irq_lock);
 	i915_disable_pipestat(dev_priv, pipe,
-	    PIPE_START_VBLANK_INTERRUPT_ENABLE | PIPE_VBLANK_INTERRUPT_ENABLE);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev_priv->user_irq_lock, irqflags);
+			      PIPE_VBLANK_INTERRUPT_ENABLE |
+			      PIPE_START_VBLANK_INTERRUPT_ENABLE);
+	DRM_SPINUNLOCK(&dev_priv->user_irq_lock);
 }
 
 /* Set the vblank monitor pipe
@@ -463,7 +492,6 @@ int i915_vblank_swap(struct drm_device *
 	 * Context switching to userland and back is plenty fast enough for
 	 * meeting the requirements of vblank swapping.
 	 */
-
 	return -EINVAL;
 }
 
@@ -473,6 +501,8 @@ void i915_driver_irq_preinstall(struct d
 {
 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
 
+	atomic_set_int(&dev_priv->irq_received, 0);
+
 	I915_WRITE(HWSTAM, 0xeffe);
 	I915_WRITE(PIPEASTAT, 0);
 	I915_WRITE(PIPEBSTAT, 0);
@@ -505,13 +535,6 @@ int i915_driver_irq_postinstall(struct d
 	I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK);
 	I915_WRITE(IMR, dev_priv->irq_mask_reg);
 	(void) I915_READ(IER);
-#ifdef __linux__
-	opregion_enable_asle(dev);
-#endif
-	DRM_INIT_WAITQUEUE(&dev_priv->irq_queue);
-
-	i915_enable_vblank(dev, 0);
-	i915_enable_vblank(dev, 1);
 
 	return 0;
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 08:34:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6DEEC106564A;
	Thu, 19 Mar 2009 08:34:04 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5C1138FC12;
	Thu, 19 Mar 2009 08:34:04 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J8Y4QK053565;
	Thu, 19 Mar 2009 08:34:04 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J8Y4lV053564;
	Thu, 19 Mar 2009 08:34:04 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190834.n2J8Y4lV053564@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 08:34:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190022 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 08:34:05 -0000

Author: rnoland
Date: Thu Mar 19 08:34:04 2009
New Revision: 190022
URL: http://svn.freebsd.org/changeset/base/190022

Log:
  Rework vblank handling to try to resolve some reports of "slow" windows
  after vt switch or suspend.  I can't really test this on Intel right now
  but I think I've heard reports of it on radeon as well.  I can't break
  it on the radeon here.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/drm_irq.c

Modified: head/sys/dev/drm/drm_irq.c
==============================================================================
--- head/sys/dev/drm/drm_irq.c	Thu Mar 19 08:28:36 2009	(r190021)
+++ head/sys/dev/drm/drm_irq.c	Thu Mar 19 08:34:04 2009	(r190022)
@@ -98,15 +98,13 @@ static void vblank_disable_fn(void *arg)
 
 void drm_vblank_cleanup(struct drm_device *dev)
 {
-	unsigned long irqflags;
-
 	/* Bail if the driver didn't call drm_vblank_init() */
 	if (dev->num_crtcs == 0)
 		return;
 
-	DRM_SPINLOCK_IRQSAVE(&dev->vbl_lock, irqflags);
+	DRM_SPINLOCK(&dev->vbl_lock);
 	callout_stop(&dev->vblank_disable_timer);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev->vbl_lock, irqflags);
+	DRM_SPINUNLOCK(&dev->vbl_lock);
 
 	callout_drain(&dev->vblank_disable_timer);
 
@@ -200,11 +198,25 @@ err:
 
 int drm_irq_uninstall(struct drm_device *dev)
 {
+	int crtc;
+
 	if (!dev->irq_enabled)
 		return EINVAL;
 
 	dev->irq_enabled = 0;
 
+	/*
+	* Wake up any waiters so they don't hang.
+	*/
+	DRM_SPINLOCK(&dev->vbl_lock);
+	for (crtc = 0; crtc < dev->num_crtcs; crtc++) {
+		DRM_WAKEUP(&dev->vblank[crtc].queue);
+		dev->vblank[crtc].enabled = 0;
+		dev->vblank[crtc].last =
+		    dev->driver->get_vblank_counter(dev, crtc);
+	}
+	DRM_SPINUNLOCK(&dev->vbl_lock);
+
 	DRM_DEBUG("irq=%d\n", dev->irq);
 
 	dev->driver->irq_uninstall(dev);
@@ -277,16 +289,15 @@ static void drm_update_vblank_count(stru
 
 int drm_vblank_get(struct drm_device *dev, int crtc)
 {
-	unsigned long irqflags;
 	int ret = 0;
 
-	DRM_SPINLOCK_IRQSAVE(&dev->vbl_lock, irqflags);
+	DRM_SPINLOCK(&dev->vbl_lock);
 	/* Going from 0->1 means we have to enable interrupts again */
 	atomic_add_acq_int(&dev->vblank[crtc].refcount, 1);
-	DRM_DEBUG("vblank refcount = %d\n", dev->vblank[crtc].refcount);
 	if (dev->vblank[crtc].refcount == 1 &&
 	    !dev->vblank[crtc].enabled) {
 		ret = dev->driver->enable_vblank(dev, crtc);
+		DRM_DEBUG("enabling vblank on crtc %d, ret: %d\n", crtc, ret);
 		if (ret)
 			atomic_dec(&dev->vblank[crtc].refcount);
 		else {
@@ -294,30 +305,28 @@ int drm_vblank_get(struct drm_device *de
 			drm_update_vblank_count(dev, crtc);
 		}
 	}
-	DRM_SPINUNLOCK_IRQRESTORE(&dev->vbl_lock, irqflags);
+	DRM_SPINUNLOCK(&dev->vbl_lock);
 
 	return ret;
 }
 
 void drm_vblank_put(struct drm_device *dev, int crtc)
 {
-	unsigned long irqflags;
+	KASSERT(atomic_read(&dev->vblank[crtc].refcount) > 0,
+	    ("invalid refcount"));
 
-	DRM_SPINLOCK_IRQSAVE(&dev->vbl_lock, irqflags);
 	/* Last user schedules interrupt disable */
 	atomic_subtract_acq_int(&dev->vblank[crtc].refcount, 1);
-	DRM_DEBUG("vblank refcount = %d\n", dev->vblank[crtc].refcount);
+
 	if (dev->vblank[crtc].refcount == 0)
 	    callout_reset(&dev->vblank_disable_timer, 5 * DRM_HZ,
 		(timeout_t *)vblank_disable_fn, (void *)dev);
-	DRM_SPINUNLOCK_IRQRESTORE(&dev->vbl_lock, irqflags);
 }
 
 int drm_modeset_ctl(struct drm_device *dev, void *data,
 		    struct drm_file *file_priv)
 {
 	struct drm_modeset_ctl *modeset = data;
-	unsigned long irqflags;
 	int crtc, ret = 0;
 
 	DRM_DEBUG("num_crtcs=%d\n", dev->num_crtcs);
@@ -343,18 +352,22 @@ int drm_modeset_ctl(struct drm_device *d
 	case _DRM_PRE_MODESET:
 		DRM_DEBUG("pre-modeset\n");
 		if (!dev->vblank[crtc].inmodeset) {
-			dev->vblank[crtc].inmodeset = 1;
-			drm_vblank_get(dev, crtc);
+			dev->vblank[crtc].inmodeset = 0x1;
+			if (drm_vblank_get(dev, crtc) == 0)
+				dev->vblank[crtc].inmodeset |= 0x2;
 		}
 		break;
 	case _DRM_POST_MODESET:
 		DRM_DEBUG("post-modeset\n");
 		if (dev->vblank[crtc].inmodeset) {
-			DRM_SPINLOCK_IRQSAVE(&dev->vbl_lock, irqflags);
+			DRM_SPINLOCK(&dev->vbl_lock);
 			dev->vblank_disable_allowed = 1;
+			DRM_SPINUNLOCK(&dev->vbl_lock);
+
+			if (dev->vblank[crtc].inmodeset & 0x2)
+				drm_vblank_put(dev, crtc);
+
 			dev->vblank[crtc].inmodeset = 0;
-			DRM_SPINUNLOCK_IRQRESTORE(&dev->vbl_lock, irqflags);
-			drm_vblank_put(dev, crtc);
 		}
 		break;
 	default:
@@ -445,7 +458,11 @@ int drm_wait_vblank(struct drm_device *d
 			mtx_unlock(&dev->irq_lock);
 		}
 
-		DRM_DEBUG("return = %d\n", ret);
+		if (ret == ERESTART) {
+			DRM_DEBUG("restarting syscall\n");
+			return ret;
+		}
+
 		if (ret != EINTR) {
 			struct timeval now;
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 08:36:09 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 11B02106566B;
	Thu, 19 Mar 2009 08:36:09 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DA1858FC1B;
	Thu, 19 Mar 2009 08:36:08 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2J8a8rr053645;
	Thu, 19 Mar 2009 08:36:08 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2J8a8Kk053642;
	Thu, 19 Mar 2009 08:36:08 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903190836.n2J8a8Kk053642@svn.freebsd.org>
From: Robert Noland 
Date: Thu, 19 Mar 2009 08:36:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190023 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 08:36:09 -0000

Author: rnoland
Date: Thu Mar 19 08:36:08 2009
New Revision: 190023
URL: http://svn.freebsd.org/changeset/base/190023

Log:
  Add some debugging so I can see when syscalls are being restarted
  consistantly.  After a lengthy irc discussion it seems like we
  shouldn't need to worry about them, but it's nice to know about.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/drm_lock.c
  head/sys/dev/drm/mga_irq.c
  head/sys/dev/drm/radeon_irq.c

Modified: head/sys/dev/drm/drm_lock.c
==============================================================================
--- head/sys/dev/drm/drm_lock.c	Thu Mar 19 08:34:04 2009	(r190022)
+++ head/sys/dev/drm/drm_lock.c	Thu Mar 19 08:36:08 2009	(r190023)
@@ -87,7 +87,12 @@ int drm_lock(struct drm_device *dev, voi
 			break;
 	}
 	DRM_UNLOCK();
-	DRM_DEBUG("%d %s\n", lock->context, ret ? "interrupted" : "has lock");
+
+	if (ret == ERESTART)
+		DRM_DEBUG("restarting syscall\n");
+	else
+		DRM_DEBUG("%d %s\n", lock->context,
+		    ret ? "interrupted" : "has lock");
 
 	if (ret != 0)
 		return ret;

Modified: head/sys/dev/drm/mga_irq.c
==============================================================================
--- head/sys/dev/drm/mga_irq.c	Thu Mar 19 08:34:04 2009	(r190022)
+++ head/sys/dev/drm/mga_irq.c	Thu Mar 19 08:36:08 2009	(r190023)
@@ -139,6 +139,9 @@ int mga_driver_fence_wait(struct drm_dev
 		    (((cur_fence = atomic_read(&dev_priv->last_fence_retired))
 		      - *sequence) <= (1 << 23)));
 
+	if (ret == -ERESTART)
+		DRM_DEBUG("restarting syscall\n");
+
 	*sequence = cur_fence;
 
 	return ret;

Modified: head/sys/dev/drm/radeon_irq.c
==============================================================================
--- head/sys/dev/drm/radeon_irq.c	Thu Mar 19 08:34:04 2009	(r190022)
+++ head/sys/dev/drm/radeon_irq.c	Thu Mar 19 08:36:08 2009	(r190023)
@@ -282,6 +282,9 @@ static int radeon_wait_irq(struct drm_de
 	DRM_WAIT_ON(ret, dev_priv->swi_queue, 3 * DRM_HZ,
 		    RADEON_READ(RADEON_LAST_SWI_REG) >= swi_nr);
 
+	if (ret == -ERESTART)
+		DRM_DEBUG("restarting syscall");
+
 	return ret;
 }
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 10:23:26 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BBE87106564A;
	Thu, 19 Mar 2009 10:23:26 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AAC718FC13;
	Thu, 19 Mar 2009 10:23:26 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JANQ9J055901;
	Thu, 19 Mar 2009 10:23:26 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JANQse055900;
	Thu, 19 Mar 2009 10:23:26 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903191023.n2JANQse055900@svn.freebsd.org>
From: Bruce M Simpson 
Date: Thu, 19 Mar 2009 10:23:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190024 - head/usr.bin/netstat
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 10:23:27 -0000

Author: bms
Date: Thu Mar 19 10:23:26 2009
New Revision: 190024
URL: http://svn.freebsd.org/changeset/base/190024

Log:
  Fix size_t merge-o.

Modified:
  head/usr.bin/netstat/mroute.c

Modified: head/usr.bin/netstat/mroute.c
==============================================================================
--- head/usr.bin/netstat/mroute.c	Thu Mar 19 08:36:08 2009	(r190023)
+++ head/usr.bin/netstat/mroute.c	Thu Mar 19 10:23:26 2009	(r190024)
@@ -293,7 +293,7 @@ mroutepr(u_long pmfchashtbl, u_long pmfc
 			len -= sizeof(*m);
 		}
 		if (len != 0)
-			warnx("print_mfc: %d trailing bytes", len);
+			warnx("print_mfc: %lu trailing bytes", (u_long)len);
 
 		free(mfctable);
 	} else {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 10:32:25 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C3A781065670;
	Thu, 19 Mar 2009 10:32:25 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B21A78FC13;
	Thu, 19 Mar 2009 10:32:25 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JAWPjx058338;
	Thu, 19 Mar 2009 10:32:25 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JAWP1d058337;
	Thu, 19 Mar 2009 10:32:25 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903191032.n2JAWP1d058337@svn.freebsd.org>
From: Konstantin Belousov 
Date: Thu, 19 Mar 2009 10:32:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190025 - head/lib/libthr/thread
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 10:32:26 -0000

Author: kib
Date: Thu Mar 19 10:32:25 2009
New Revision: 190025
URL: http://svn.freebsd.org/changeset/base/190025

Log:
  Forcibly unlock the malloc() locks in the child process after fork(),
  by temporary pretending that the process is still multithreaded.
  Current malloc lock primitives do nothing for singlethreaded process.
  
  Reviewed by:	davidxu, deischen

Modified:
  head/lib/libthr/thread/thr_fork.c

Modified: head/lib/libthr/thread/thr_fork.c
==============================================================================
--- head/lib/libthr/thread/thr_fork.c	Thu Mar 19 10:23:26 2009	(r190024)
+++ head/lib/libthr/thread/thr_fork.c	Thu Mar 19 10:32:25 2009	(r190025)
@@ -173,8 +173,11 @@ _fork(void)
 		/* Ready to continue, unblock signals. */ 
 		_thr_signal_unblock(curthread);
 
-		if (unlock_malloc)
+		if (unlock_malloc) {
+			__isthreaded = 1;
 			_malloc_postfork();
+			__isthreaded = 0;
+		}
 
 		/* Run down atfork child handlers. */
 		TAILQ_FOREACH(af, &_thr_atfork_list, qe) {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 10:42:07 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 976E0106566C;
	Thu, 19 Mar 2009 10:42:07 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 845288FC16;
	Thu, 19 Mar 2009 10:42:07 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JAg7wL058576;
	Thu, 19 Mar 2009 10:42:07 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JAg7iT058575;
	Thu, 19 Mar 2009 10:42:07 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200903191042.n2JAg7iT058575@svn.freebsd.org>
From: Christian Brueffer 
Date: Thu, 19 Mar 2009 10:42:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190026 - head/sbin/ipfw
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 10:42:08 -0000

Author: brueffer
Date: Thu Mar 19 10:42:07 2009
New Revision: 190026
URL: http://svn.freebsd.org/changeset/base/190026

Log:
  Mdoc style, spelling, grammar and wording fixes. This manpage needs more work.

Modified:
  head/sbin/ipfw/ipfw.8

Modified: head/sbin/ipfw/ipfw.8
==============================================================================
--- head/sbin/ipfw/ipfw.8	Thu Mar 19 10:32:25 2009	(r190025)
+++ head/sbin/ipfw/ipfw.8	Thu Mar 19 10:42:07 2009	(r190026)
@@ -1,7 +1,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 27, 2008
+.Dd February 7, 2009
 .Dt IPFW 8
 .Os
 .Sh NAME
@@ -606,10 +606,10 @@ To delete previously applied tag, use th
 keyword.
 .Pp
 Note: since tags are kept with the packet everywhere in kernelspace,
-they can be set and unset anywhere in kernel network subsystem
-(using
+they can be set and unset anywhere in the kernel network subsystem
+(using the
 .Xr mbuf_tags 9
-facility), not only by means of
+facility), not only by means of the
 .Xr ipfw 4
 .Cm tag
 and
@@ -862,8 +862,8 @@ actions.
 .It Cm setfib Ar fibnum
 The packet is tagged so as to use the FIB (routing table)
 .Ar fibnum
-in any subsequent forwarding decisions. Initially this is
-limited to the values  0 through 15. See 
+in any subsequent forwarding decisions.
+Initially this is limited to the values 0 through 15, see
 .Xr setfib 8 .
 Processing continues at the next rule.
 .El
@@ -1166,7 +1166,7 @@ Destination options
 .Pq Cm dstopt ,
 IPSec authentication headers
 .Pq Cm ah ,
-and IPSec encapsulated security payload headers
+and IPsec encapsulated security payload headers
 .Pq Cm esp .
 .It Cm fib Ar fibnum
 Matches a packet that has been tagged to use
@@ -1835,13 +1835,12 @@ A pipe emulates a link with given bandwi
 queue size and packet loss rate.
 Packets are queued in front of the pipe as they come out from the classifier,
 and then transferred to the pipe according to the pipe's parameters.
-.Pp
 .It Em queue
 A queue
 is an abstraction used to implement the WF2Q+
 (Worst-case Fair Weighted Fair Queueing) policy, which is
 an efficient variant of the WFQ policy.
-.br
+.Pp
 The queue associates a
 .Em weight
 and a reference pipe to each flow, and then all backlogged (i.e.,
@@ -1850,8 +1849,8 @@ bandwidth proportionally to their weight
 Note that weights are not priorities; a flow with a lower weight
 is still guaranteed to get its fraction of the bandwidth even if a
 flow with a higher weight is permanently backlogged.
-.Pp
 .El
+.Pp
 In practice,
 .Em pipes
 can be used to set hard limits to the bandwidth that a flow can use, whereas
@@ -2101,7 +2100,7 @@ If you are logged in over a network, loa
 version of
 .Nm
 is probably not as straightforward as you would think.
-I recommend the following command line:
+The following command line is recommended:
 .Bd -literal -offset indent
 kldload ipfw && \e
 ipfw add 32000 allow ip from any to any
@@ -2141,14 +2140,13 @@ The nat configuration command is the fol
 .Ek
 .Ed
 .Pp
-.
 The following parameters can be configured:
 .Bl -tag -width indent
 .It Cm ip Ar ip_address
 Define an ip address to use for aliasing.
 .It Cm if Ar nic
-Use ip addres of NIC for aliasing, dynamically changing
-it if NIC's ip address change.
+Use ip address of NIC for aliasing, dynamically changing
+it if NIC's ip address changes.
 .It Cm log
 Enable logging on this nat instance.
 .It Cm deny_in
@@ -2171,27 +2169,26 @@ To let the packet continue after being (
 .Va net.inet.ip.fw.one_pass 
 to 0.
 For more information about aliasing modes, refer to
-.Xr libalias 3
-.
+.Xr libalias 3 .
 See Section
 .Sx EXAMPLES
 for some examples about nat usage.
 .Sh REDIRECT AND LSNAT SUPPORT IN IPFW
 Redirect and LSNAT support follow closely the syntax used in
-.Xr natd 8
-. 
+.Xr natd 8 . 
 See Section
 .Sx EXAMPLES
 for some examples on how to do redirect and lsnat.
 .Sh SCTP NAT SUPPORT
-Sctp nat can be configured in a simillar manner to TCP through the
-ipfw command line tool
-.Xr ipfw 8
-, the main difference is that 
+SCTP nat can be configured in a similar manner to TCP through the
+.Nm
+command line tool.
+The main difference is that 
 .Nm sctp nat 
-does not do port
-translation. Since the local and global side ports will be the same,
-there is no need to specify both. Ports are redirected as follows:
+does not do port translation.
+Since the local and global side ports will be the same,
+there is no need to specify both.
+Ports are redirected as follows:
 .Bd -ragged -offset indent
 .Bk -words
 .Cm nat 
@@ -2203,15 +2200,16 @@ there is no need to specify both. Ports 
 .Ek
 .Ed
 .Pp
-.
 Most
-.B sctp nat
+.Nm sctp nat
 configuration can be done in real-time through the
-.B sysctl(8)
-interface. All may be changed dynamically, though the hash_table size will only
-change for new 
-.Nm nat 
-instances. See 
+.Xr sysctl 8
+interface.
+All may be changed dynamically, though the hash_table size will only
+change for new
+.Nm nat
+instances.
+See
 .Sx SYSCTL VARIABLES 
 for more info.
 .Sh SYSCTL VARIABLES
@@ -2238,22 +2236,23 @@ ports and vtags match but global address
 will accept and process all OOTB global AddIP messages.
 .El
 .Pp
-Option 1 should never be selected as this forms a security risk. An attacker can
+Option 1 should never be selected as this forms a security risk.
+An attacker can
 establish multiple fake associations by sending AddIP messages.
 .It Va net.inet.ip.alias.sctp.chunk_proc_limit: No 5
 Defines the maximum number of chunks in an SCTP packet that will be parsed for a
-packet that matches an existing association. This value is enforced to be greater or equal
-than 
+packet that matches an existing association.
+This value is enforced to be greater or equal than 
 .Cm net.inet.ip.alias.sctp.initialising_chunk_proc_limit . 
 A high value is
 a DoS risk yet setting too low a value may result in important control chunks in
 the packet not being located and parsed.
 .It Va net.inet.ip.alias.sctp.error_on_ootb: No 1
-Defines when the 
+Defines when the
 .Nm nat 
-responds to any Out-of-the-Blue (OOTB) packets with ErrorM
-packets. An OOTB packet is a packet that arrives with no existing association
-registered in the 
+responds to any Out-of-the-Blue (OOTB) packets with ErrorM packets.
+An OOTB packet is a packet that arrives with no existing association
+registered in the
 .Nm nat 
 and is not an INIT or ASCONF-AddIP packet:
 .Bl -tag -width indent
@@ -2263,8 +2262,8 @@ ErrorM is never sent in response to OOTB
 ErrorM is only sent to OOTB packets received on the local side.
 .It Cm 2
 ErrorM is sent to the local side and on the global side ONLY if there is a
-partial match (ports and vtags match but the source global IP does not). This
-value is only useful if the 
+partial match (ports and vtags match but the source global IP does not).
+This value is only useful if the 
 .Nm nat 
 is tracking global IP addresses.
 .It Cm 3
@@ -2273,20 +2272,21 @@ ErrorM is sent in response to all OOTB p
 .El
 .Pp
 At the moment the default is 0, since the ErrorM packet is not yet
-supported by most SCTP stacks. When it is supported, and if not tracking
+supported by most SCTP stacks.
+When it is supported, and if not tracking
 global addresses, we recommend setting this value to 1 to allow
 multi-homed local hosts to function with the 
 .Nm nat .
 To track global addresses, we recommend setting this value to 2 to
 allow global hosts to be informed when they need to (re)send an
-ASCONF-AddIP. Value 3 should never be chosen (except for debugging) as
-the
+ASCONF-AddIP.
+Value 3 should never be chosen (except for debugging) as the
 .Nm nat 
 will respond to all OOTB global packets (a DoS risk).
 .It Va net.inet.ip.alias.sctp.hashtable_size: No 2003
 Size of hash tables used for 
 .Nm nat 
-lookups (100 < prime_number > 1000001)
+lookups (100 < prime_number > 1000001).
 This value sets the 
 .Nm hash table 
 size for any future created 
@@ -2294,26 +2294,33 @@ size for any future created 
 instance and therefore must be set prior to creating a 
 .Nm nat 
 instance.
-The table sizes my be changed to suit specific needs. If there will be few
-concurrent associations, and memory is scarce, you may make these smaller.  If
-there will be many thousands (or millions) of concurrent associations, you
-should make these larger. A prime number is best for the table size. The sysctl
+The table sizes may be changed to suit specific needs.
+If there will be few
+concurrent associations, and memory is scarce, you may make these smaller.
+If there will be many thousands (or millions) of concurrent associations, you
+should make these larger.
+A prime number is best for the table size.
+The sysctl
 update function will adjust your input value to the next highest prime number.
 .It Va net.inet.ip.alias.sctp.holddown_time:  No 0
 Hold association in table for this many seconds after receiving a
-SHUTDOWN-COMPLETE.  This allows endpoints to correct shutdown gracefully if a
+SHUTDOWN-COMPLETE.
+This allows endpoints to correct shutdown gracefully if a
 shutdown_complete is lost and retransmissions are required.
 .It Va net.inet.ip.alias.sctp.init_timer: No 15
 Timeout value while waiting for (INIT-ACK|AddIP-ACK).
 This value cannot be 0.
 .It Va net.inet.ip.alias.sctp.initialising_chunk_proc_limit: No 2
 Defines the maximum number of chunks in an SCTP packet that will be parsed when
-no existing association exists that matches that packet. Ideally this packet
-will only be an INIT or ASCONF-AddIP packet. A higher value may become a DoS
+no existing association exists that matches that packet.
+Ideally this packet
+will only be an INIT or ASCONF-AddIP packet.
+A higher value may become a DoS
 risk as malformed packets can consume processing resources.
 .It Va net.inet.ip.alias.sctp.param_proc_limit: No 25
 Defines the maximum number of parameters within a chunk that will be parsed in a
-packet. As for other similar sysctl variables, larger values pose a DoS risk.
+packet.
+As for other similar sysctl variables, larger values pose a DoS risk.
 .It Va net.inet.ip.alias.sctp.log_level: No 0 
 Level of detail in the system log messages (0 \- minimal, 1 \- event,
 2 \- info, 3 \- detail, 4 \- debug, 5 \- max debug). May be a good
@@ -2335,7 +2342,7 @@ association is limited to this value
 .El
 .Pp
 This variable is fully dynamic, the new value will be adopted for all newly
-arriving associations, existing association are treated as they were previously.
+arriving associations, existing associations are treated as they were previously.
 Global tracking will decrease the number of collisions within the 
 .Nm nat 
 at a cost
@@ -2552,10 +2559,10 @@ by adding the following to the top of a 
 This rule drops all incoming packets that appear to be coming from another
 directly connected system but on the wrong interface.
 For example, a packet with a source address of
-.Li 192.168.0.0/24
-, configured on
-.Li fxp0
-, but coming in on
+.Li 192.168.0.0/24 ,
+configured on
+.Li fxp0 ,
+but coming in on
 .Li fxp1
 would be dropped.
 .Ss DYNAMIC RULES
@@ -2875,14 +2882,13 @@ Work on
 .Nm dummynet
 traffic shaper supported by Akamba Corp.
 .Pp
-Sctp
+SCTP
 .Nm nat
 support has been developed by
 .An The Centre for Advanced Internet Architectures (CAIA) Aq http://www.caia.swin.edu.au .
 The primary developers and maintainers are David Hayes and Jason But.
 For further information visit:
 .Aq http://www.caia.swin.edu.au/urp/SONATA
-.
 .Sh BUGS
 The syntax has grown over the years and sometimes it might be confusing.
 Unfortunately, backward compatibility prevents cleaning up mistakes
@@ -2933,8 +2939,8 @@ or quoted appropriately.
 .Pp
 Due to the architecture of 
 .Xr libalias 3 , 
-ipfw nat is not compatible with the tcp segmentation offloading
-(TSO). Thus, to reliably nat your network traffic, please disable TSO
+ipfw nat is not compatible with the TCP segmentation offloading (TSO).
+Thus, to reliably nat your network traffic, please disable TSO
 on your NICs using
 .Xr ifconfig 8 .
 .Pp

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:31:59 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D8654106566B;
	Thu, 19 Mar 2009 12:31:59 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C6F2E8FC17;
	Thu, 19 Mar 2009 12:31:59 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCVxqD060797;
	Thu, 19 Mar 2009 12:31:59 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCVxsN060796;
	Thu, 19 Mar 2009 12:31:59 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903191231.n2JCVxsN060796@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Thu, 19 Mar 2009 12:31:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190027 - head/sbin/fdisk_pc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:32:00 -0000

Author: nyan
Date: Thu Mar 19 12:31:59 2009
New Revision: 190027
URL: http://svn.freebsd.org/changeset/base/190027

Log:
  Use the common PC98_SID_ACTIVE define instead of a local define.

Modified:
  head/sbin/fdisk_pc98/fdisk.c

Modified: head/sbin/fdisk_pc98/fdisk.c
==============================================================================
--- head/sbin/fdisk_pc98/fdisk.c	Thu Mar 19 10:42:07 2009	(r190026)
+++ head/sbin/fdisk_pc98/fdisk.c	Thu Mar 19 12:31:59 2009	(r190027)
@@ -84,8 +84,6 @@ struct mboot {
 static struct mboot mboot;
 static int fd;
 
-#define ACTIVE 0x80
-
 static uint dos_cyls;
 static uint dos_heads;
 static uint dos_sectors;
@@ -520,7 +518,7 @@ change_active(int which)
 
 	active = -1;
 	for (i = 0; i < NDOSPART; i++) {
-		if ((partp[i].dp_sid & ACTIVE) == 0)
+		if ((partp[i].dp_sid & PC98_SID_ACTIVE) == 0)
 			continue;
 		printf("Partition %d is marked active\n", i + 1);
 		if (active == -1)
@@ -545,7 +543,7 @@ setactive:
 		active = new;
 	} while (!ok("Are you happy with this choice"));
 	if (active > 0 && active <= 8)
-		partp[active-1].dp_sid |= ACTIVE;
+		partp[active-1].dp_sid |= PC98_SID_ACTIVE;
 }
 
 static void

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:32:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6573710656F2;
	Thu, 19 Mar 2009 12:32:13 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 528E38FC16;
	Thu, 19 Mar 2009 12:32:13 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCWDAU060841;
	Thu, 19 Mar 2009 12:32:13 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCWDYx060840;
	Thu, 19 Mar 2009 12:32:13 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191232.n2JCWDYx060840@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 12:32:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190028 - in stable/7/sys: . conf contrib/pf
	dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:32:14 -0000

Author: marius
Date: Thu Mar 19 12:32:13 2009
New Revision: 190028
URL: http://svn.freebsd.org/changeset/base/190028

Log:
  MFC: r182729
  
  Switch sun4v to back to using its own clock.c, which was ressurected
  in r190005, as the sparc64 version is going to be rototilled and sun4v
  currently can't be verified to still work with the new sparc64 one
  due to its overall state.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/conf/files.sun4v
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/conf/files.sun4v
==============================================================================
--- stable/7/sys/conf/files.sun4v	Thu Mar 19 12:31:59 2009	(r190027)
+++ stable/7/sys/conf/files.sun4v	Thu Mar 19 12:32:13 2009	(r190028)
@@ -34,7 +34,7 @@ libkern/fls.c			standard
 libkern/flsl.c			standard
 sparc64/sparc64/autoconf.c	standard
 sun4v/sun4v/bus_machdep.c	standard
-sparc64/sparc64/clock.c		standard
+sun4v/sun4v/clock.c		standard
 sparc64/sparc64/db_disasm.c	optional	ddb
 sun4v/sun4v/db_interface.c	optional	ddb
 sun4v/sun4v/db_trace.c	optional	ddb

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:33:37 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ED2921065687;
	Thu, 19 Mar 2009 12:33:37 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DB4038FC14;
	Thu, 19 Mar 2009 12:33:37 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCXbrT060934;
	Thu, 19 Mar 2009 12:33:37 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCXbJg060933;
	Thu, 19 Mar 2009 12:33:37 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903191233.n2JCXbJg060933@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Thu, 19 Mar 2009 12:33:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190029 - head/sys/boot/pc98/libpc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:33:38 -0000

Author: nyan
Date: Thu Mar 19 12:33:37 2009
New Revision: 190029
URL: http://svn.freebsd.org/changeset/base/190029

Log:
  Use the common PC98_MID_* defines instead of a magic number.

Modified:
  head/sys/boot/pc98/libpc98/biosdisk.c

Modified: head/sys/boot/pc98/libpc98/biosdisk.c
==============================================================================
--- head/sys/boot/pc98/libpc98/biosdisk.c	Thu Mar 19 12:32:13 2009	(r190028)
+++ head/sys/boot/pc98/libpc98/biosdisk.c	Thu Mar 19 12:33:37 2009	(r190029)
@@ -625,9 +625,9 @@ bd_bestslice(struct open_disk *od)
 
 	dp = &od->od_slicetab[0];
 	for (i = 0; i < od->od_nslices; i++, dp++) {
-		switch(dp->dp_mid & 0x7f) {
-		case DOSMID_386BSD & 0x7f:		/* FreeBSD */
-			if ((dp->dp_mid & 0x80) &&
+		switch(dp->dp_mid & PC98_MID_MASK) {
+		case PC98_MID_386BSD:		/* FreeBSD */
+			if ((dp->dp_mid & PC98_MID_BOOTABLE) &&
 			    (preflevel > PREF_FBSD_ACT)) {
 				pref = i;
 				preflevel = PREF_FBSD_ACT;
@@ -643,7 +643,7 @@ bd_bestslice(struct open_disk *od)
 		case 0x22:
 		case 0x23:
 		case 0x63:
-			if ((dp->dp_mid & 0x80) &&
+			if ((dp->dp_mid & PC98_MID_BOOTABLE) &&
 			    (preflevel > PREF_DOS_ACT)) {
 				pref = i;
 				preflevel = PREF_DOS_ACT;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:39:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9FE5B1065687;
	Thu, 19 Mar 2009 12:39:13 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8B9AB8FC28;
	Thu, 19 Mar 2009 12:39:13 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCdDe2061098;
	Thu, 19 Mar 2009 12:39:13 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCdD2K061097;
	Thu, 19 Mar 2009 12:39:13 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <200903191239.n2JCdD2K061097@svn.freebsd.org>
From: Dag-Erling Smorgrav 
Date: Thu, 19 Mar 2009 12:39:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190030 - head/sys/dev/ichwd
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:39:14 -0000

Author: des
Date: Thu Mar 19 12:39:13 2009
New Revision: 190030
URL: http://svn.freebsd.org/changeset/base/190030

Log:
  Rename two functions to make their purpose clearer.  Add tons of comments.
  Generated code is identical after stripping .comment section.
  
  Suggested by:	Andriy Gapon 
  MFC after:	2 weeks

Modified:
  head/sys/dev/ichwd/ichwd.c

Modified: head/sys/dev/ichwd/ichwd.c
==============================================================================
--- head/sys/dev/ichwd/ichwd.c	Thu Mar 19 12:33:37 2009	(r190029)
+++ head/sys/dev/ichwd/ichwd.c	Thu Mar 19 12:39:13 2009	(r190030)
@@ -141,26 +141,55 @@ static devclass_t ichwd_devclass;
 			device_printf(dev, __VA_ARGS__);\
 	} while (0)
 
+/*
+ * Disable the watchdog timeout SMI handler.
+ *
+ * Apparently, some BIOSes install handlers that reset or disable the
+ * watchdog timer instead of resetting the system, so we disable the SMI
+ * (by clearing the SMI_TCO_EN bit of the SMI_EN register) to prevent this
+ * from happening.
+ */
 static __inline void
-ichwd_intr_enable(struct ichwd_softc *sc)
+ichwd_smi_disable(struct ichwd_softc *sc)
 {
 	ichwd_write_smi_4(sc, SMI_EN, ichwd_read_smi_4(sc, SMI_EN) & ~SMI_TCO_EN);
 }
 
+/*
+ * Enable the watchdog timeout SMI handler.  See above for details.
+ */
 static __inline void
-ichwd_intr_disable(struct ichwd_softc *sc)
+ichwd_smi_enable(struct ichwd_softc *sc)
 {
 	ichwd_write_smi_4(sc, SMI_EN, ichwd_read_smi_4(sc, SMI_EN) | SMI_TCO_EN);
 }
 
+/*
+ * Reset the watchdog status bits.
+ */
 static __inline void
 ichwd_sts_reset(struct ichwd_softc *sc)
 {
+	/*
+	 * The watchdog status bits are set to 1 by the hardware to
+	 * indicate various conditions.  They can be cleared by software
+	 * by writing a 1, not a 0.
+	 */
 	ichwd_write_tco_2(sc, TCO1_STS, TCO_TIMEOUT);
+	/*
+	 * XXX The datasheet says that TCO_SECOND_TO_STS must be cleared
+	 * before TCO_BOOT_STS, not the other way around.
+	 */
 	ichwd_write_tco_2(sc, TCO2_STS, TCO_BOOT_STS);
 	ichwd_write_tco_2(sc, TCO2_STS, TCO_SECOND_TO_STS);
 }
 
+/*
+ * Enable the watchdog timer by clearing the TCO_TMR_HALT bit in the
+ * TCO1_CNT register.  This is complicated by the need to preserve bit 9
+ * of that same register, and the requirement that all other bits must be
+ * written back as zero.
+ */
 static __inline void
 ichwd_tmr_enable(struct ichwd_softc *sc)
 {
@@ -172,6 +201,9 @@ ichwd_tmr_enable(struct ichwd_softc *sc)
 	ichwd_verbose_printf(sc->device, "timer enabled\n");
 }
 
+/*
+ * Disable the watchdog timer.  See above for details.
+ */
 static __inline void
 ichwd_tmr_disable(struct ichwd_softc *sc)
 {
@@ -183,6 +215,11 @@ ichwd_tmr_disable(struct ichwd_softc *sc
 	ichwd_verbose_printf(sc->device, "timer disabled\n");
 }
 
+/*
+ * Reload the watchdog timer: writing anything to any of the lower five
+ * bits of the TCO_RLD register reloads the timer from the last value
+ * written to TCO_TMR.
+ */
 static __inline void
 ichwd_tmr_reload(struct ichwd_softc *sc)
 {
@@ -194,6 +231,10 @@ ichwd_tmr_reload(struct ichwd_softc *sc)
 	ichwd_verbose_printf(sc->device, "timer reloaded\n");
 }
 
+/*
+ * Set the initial timeout value.  Note that this must always be followed
+ * by a reload.
+ */
 static __inline void
 ichwd_tmr_set(struct ichwd_softc *sc, unsigned int timeout)
 {
@@ -262,7 +303,8 @@ ichwd_clear_noreboot(struct ichwd_softc 
 }
 
 /*
- * Watchdog event handler.
+ * Watchdog event handler - called by the framework to enable or disable
+ * the watchdog or change the initial timeout value.
  */
 static void
 ichwd_event(void *arg, unsigned int cmd, int *error)
@@ -426,6 +468,13 @@ ichwd_attach(device_t dev)
 	device_printf(dev, "%s (ICH%d or equivalent)\n",
 	    device_get_desc(dev), sc->ich_version);
 
+	/*
+	 * XXX we should check the status registers (specifically, the
+	 * TCO_SECOND_TO_STS bit in the TCO2_STS register) to see if we
+	 * just came back from a watchdog-induced reset, and let the user
+	 * know.
+	 */
+
 	/* reset the watchdog status registers */
 	ichwd_sts_reset(sc);
 
@@ -435,8 +484,8 @@ ichwd_attach(device_t dev)
 	/* register the watchdog event handler */
 	sc->ev_tag = EVENTHANDLER_REGISTER(watchdog_list, ichwd_event, sc, 0);
 
-	/* enable watchdog timeout interrupts */
-	ichwd_intr_enable(sc);
+	/* disable the SMI handler */
+	ichwd_smi_disable(sc);
 
 	return (0);
  fail:
@@ -466,8 +515,8 @@ ichwd_detach(device_t dev)
 	if (sc->active)
 		ichwd_tmr_disable(sc);
 
-	/* disable watchdog timeout interrupts */
-	ichwd_intr_disable(sc);
+	/* enable the SMI handler */
+	ichwd_smi_enable(sc);
 
 	/* deregister event handler */
 	if (sc->ev_tag != NULL)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:48:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B73DD106566B;
	Thu, 19 Mar 2009 12:48:00 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A5B6D8FC0A;
	Thu, 19 Mar 2009 12:48:00 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCm0Mo061332;
	Thu, 19 Mar 2009 12:48:00 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCm0Rd061331;
	Thu, 19 Mar 2009 12:48:00 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <200903191248.n2JCm0Rd061331@svn.freebsd.org>
From: Dag-Erling Smorgrav 
Date: Thu, 19 Mar 2009 12:48:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190031 - head/etc/defaults
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:48:01 -0000

Author: des
Date: Thu Mar 19 12:48:00 2009
New Revision: 190031
URL: http://svn.freebsd.org/changeset/base/190031

Log:
  Revert r188010.  When dhclient is backgrounded, services such as ntpdate,
  sendmail / postfix etc. may fail to start because DNS is unavailable and /
  or the server is unreachable.  In the worst case, the machine may become
  unusable.
  
  Debugging this issue was far more difficult than it should have been, due
  to earlier changes to the rc framework to hide almost all useful information
  about the boot process.
  
  Approved by:	silence

Modified:
  head/etc/defaults/rc.conf

Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf	Thu Mar 19 12:39:13 2009	(r190030)
+++ head/etc/defaults/rc.conf	Thu Mar 19 12:48:00 2009	(r190031)
@@ -101,7 +101,7 @@ nisdomainname="NO"		# Set to NIS domain 
 dhclient_program="/sbin/dhclient"	# Path to dhcp client program.
 dhclient_flags=""		# Extra flags to pass to dhcp client.
 #dhclient_flags_fxp0=""		# Extra dhclient flags for fxp0 only
-background_dhclient="YES"	# Start dhcp client in the background.
+background_dhclient="NO"	# Start dhcp client in the background.
 #background_dhclient_fxp0="YES"	# Start dhcp client on fxp0 in the background.
 synchronous_dhclient="NO"	# Start dhclient directly on configured
 				# interfaces during startup.

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:52:20 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 91F6E106564A;
	Thu, 19 Mar 2009 12:52:20 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 667188FC1D;
	Thu, 19 Mar 2009 12:52:20 +0000 (UTC) (envelope-from des@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCqK9P061463;
	Thu, 19 Mar 2009 12:52:20 GMT (envelope-from des@svn.freebsd.org)
Received: (from des@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCqKre061462;
	Thu, 19 Mar 2009 12:52:20 GMT (envelope-from des@svn.freebsd.org)
Message-Id: <200903191252.n2JCqKre061462@svn.freebsd.org>
From: Dag-Erling Smorgrav 
Date: Thu, 19 Mar 2009 12:52:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190032 - head/etc
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:52:21 -0000

Author: des
Date: Thu Mar 19 12:52:19 2009
New Revision: 190032
URL: http://svn.freebsd.org/changeset/base/190032

Log:
  Add hostid to the ranks.
  
  MFC after:	2 weeks

Modified:
  head/etc/netstart

Modified: head/etc/netstart
==============================================================================
--- head/etc/netstart	Thu Mar 19 12:48:00 2009	(r190031)
+++ head/etc/netstart	Thu Mar 19 12:52:19 2009	(r190032)
@@ -40,6 +40,7 @@ load_rc_config 'XXX'
 _start=quietstart
 
 /etc/rc.d/devd ${_start}
+/etc/rc.d/hostid ${_start}
 /etc/rc.d/hostname ${_start}
 /etc/rc.d/ipmon ${_start}
 /etc/rc.d/ipfilter ${_start}

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 12:55:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 450D01065670;
	Thu, 19 Mar 2009 12:55:12 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2F9F28FC08;
	Thu, 19 Mar 2009 12:55:12 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JCtC46061579;
	Thu, 19 Mar 2009 12:55:12 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JCtB7p061565;
	Thu, 19 Mar 2009 12:55:11 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191255.n2JCtB7p061565@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 12:55:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190033 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 12:55:13 -0000

Author: marius
Date: Thu Mar 19 12:55:11 2009
New Revision: 190033
URL: http://svn.freebsd.org/changeset/base/190033

Log:
  MFC: r182730, r182743, r183201
  
  - USIII-based machines can consist of CPUs running at different
    frequencies (and having different cache sizes) so use the STICK
    (System TICK) timer, which was introduced due to this and is
    driven by the same frequency across all CPUs, instead of the
    TICK timer, whose frequency varies with the CPU clock, to drive
    hardclock. We use the STICK timers only when absolutely necessary
    though as the STICK timers are driven at frequencies as low as
    5MHz, resulting in bad granularity compared to the TICK timers.
    However, don't employ the workaround for the BlackBird erratum #1
    when using the TICK timer on machines with cheetah-class CPUs for
    performance reasons.
    Note that using the STICK counter also causes a hang with USIIIi
    MP machines for reasons unknown, but these can only consist of
    identical CPUs anyway.
  - Given that we only (try to) synchronize the (S)TICK timers of APs
    with the BSP during startup, we could end up spinning forever in
    DELAY(9) if that function is migrated to another CPU while we're
    spinning due to clock drift afterwards, so pin to the CPU in order
    to avoid migration. Unfortunately, pinning doesn't work at the
    point DELAY(9) is required by the low-level console drivers, yet,
    so switch to a function pointer, which is updated accordingly, for
    implementing DELAY(9). For USIII and beyond, this would also allow
    to easily use the STICK counter instead of the TICK one here,
    there's no benefit in doing so however.
    While at it, use cpu_spinwait(9) for spinning in the delay-
    functions. This currently is a NOP though.
  - Don't set the TICK timer of the BSP to 0 during startup as there's
    no need to do so.
  - Implement cpu_est_clockrate().
  - Unfortunately, USIIIi-based machines don't provide a timecounter
    device besides the STICK and TICK counters (well, in theory the
    Tomatillo bridges have a performance counter that can be (ab)used
    as timecounter by configuring it to count bus cycles, though unlike
    the performance counter of Schizo bridges, the Tomatillo one is
    broken and counts Sun knows what in this mode). This means that
    we've to use a (S)TICK counter for timecounting, which has the old
    problem of not being in sync across CPUs, so provide an additional
    timecounter function which binds itself to the BSP but has an
    adequate low priority.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/clock.h
  stable/7/sys/sparc64/include/cpufunc.h
  stable/7/sys/sparc64/include/pcpu.h
  stable/7/sys/sparc64/include/smp.h
  stable/7/sys/sparc64/include/tick.h
  stable/7/sys/sparc64/include/ver.h
  stable/7/sys/sparc64/sparc64/clock.c
  stable/7/sys/sparc64/sparc64/exception.S
  stable/7/sys/sparc64/sparc64/genassym.c
  stable/7/sys/sparc64/sparc64/locore.S
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/mp_locore.S
  stable/7/sys/sparc64/sparc64/mp_machdep.c
  stable/7/sys/sparc64/sparc64/tick.c

Modified: stable/7/sys/sparc64/include/clock.h
==============================================================================
--- stable/7/sys/sparc64/include/clock.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/clock.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -29,10 +29,12 @@
 #ifndef	_MACHINE_CLOCK_H_
 #define	_MACHINE_CLOCK_H_
 
-extern u_long tick_increment;
-extern u_long tick_freq;
-extern u_long tick_MHz;
+extern void (*delay_func)(int usec);
+extern u_long clock_boot;
 
-int	sysbeep(int, int);
+void delay_boot(int usec);
+void delay_tick(int usec);
+
+int	sysbeep(int pitch, int period);
 
 #endif /* !_MACHINE_CLOCK_H_ */

Modified: stable/7/sys/sparc64/include/cpufunc.h
==============================================================================
--- stable/7/sys/sparc64/include/cpufunc.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/cpufunc.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -174,6 +174,15 @@ int fasword32(u_long asi, void *addr, ui
 } while (0)
 
 /*
+ * Trick GAS/GCC into compiling access to STICK/STICK_COMPARE independently
+ * of the selected instruction set.
+ */
+#define	rdstick()		rd(asr24)
+#define	rdstickcmpr()		rd(asr25)
+#define	wrstick(val, xor)	wr(asr24, (val), (xor))
+#define	wrstickcmpr(val, xor)	wr(asr25, (val), (xor))
+
+/*
  * Macro intended to be used instead of wr(asr23, val, xor) for writing to
  * the TICK_COMPARE register in order to avoid a bug in BlackBird CPUs that
  * can cause these writes to fail under certain condidtions which in turn

Modified: stable/7/sys/sparc64/include/pcpu.h
==============================================================================
--- stable/7/sys/sparc64/include/pcpu.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/pcpu.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -53,6 +53,7 @@ struct pmap;
 	vm_offset_t pc_addr;						\
 	u_long	pc_tickref;						\
 	u_long	pc_tickadj;						\
+	u_int	pc_clock;						\
 	u_int	pc_mid;							\
 	u_int	pc_node;						\
 	u_int	pc_tlb_ctx;						\

Modified: stable/7/sys/sparc64/include/smp.h
==============================================================================
--- stable/7/sys/sparc64/include/smp.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/smp.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -29,9 +29,10 @@
 #ifndef	_MACHINE_SMP_H_
 #define	_MACHINE_SMP_H_
 
-#define	CPU_CLKSYNC		1
-#define	CPU_INIT		2
-#define	CPU_BOOTSTRAP		3
+#define	CPU_TICKSYNC		1
+#define	CPU_STICKSYNC		2
+#define	CPU_INIT		3
+#define	CPU_BOOTSTRAP		4
 
 #ifndef	LOCORE
 
@@ -62,6 +63,7 @@ struct cpu_start_args {
 	u_int	csa_state;
 	vm_offset_t csa_pcpu;
 	u_long	csa_tick;
+	u_long	csa_stick;
 	u_long	csa_ver;
 	struct	tte csa_ttes[PCPU_PAGES];
 };

Modified: stable/7/sys/sparc64/include/tick.h
==============================================================================
--- stable/7/sys/sparc64/include/tick.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/tick.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -29,7 +29,9 @@
 #ifndef _MACHINE_TICK_H_
 #define	_MACHINE_TICK_H_
 
-void	tick_init(u_long clock);
+extern u_int hardclock_use_stick;
+
+void	tick_clear(void);
 void	tick_start(void);
 void	tick_stop(void);
 

Modified: stable/7/sys/sparc64/include/ver.h
==============================================================================
--- stable/7/sys/sparc64/include/ver.h	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/include/ver.h	Thu Mar 19 12:55:11 2009	(r190033)
@@ -41,6 +41,8 @@
 #define	VER_MAXTL_SIZE		(8)
 #define	VER_MAXWIN_SIZE		(5)
 
+#ifndef LOCORE
+
 #define	VER_MANUF_MASK		(((1L<
 #include 
+#include 
+#include 
+#include 
+
 #include 
+#include 
+#include 
+
+void (*delay_func)(int usec);
+u_long clock_boot;
+
+void
+DELAY(int usec)
+{
 
-u_long tick_increment;
-u_long tick_freq;
-u_long tick_MHz;
+	(*delay_func)(usec);
+}
 
 void
-DELAY(int n)
+delay_boot(int usec)
 {
-	u_long start, end;
+	u_long end;
 
-	start = rd(tick);
-	if (n < 0)
+	if (usec < 0)
 		return;
-	end = start + (u_long)n * tick_MHz;
+
+	end = rd(tick) + (u_long)usec * clock_boot / 1000000;
 	while (rd(tick) < end)
-		;
+		cpu_spinwait();
+}
+
+void
+delay_tick(int usec)
+{
+	u_long end;
+
+	if (usec < 0)
+		return;
+
+	/*
+	 * We avoid being migrated to another CPU with a possibly
+	 * unsynchronized TICK timer while spinning.
+	 */
+	sched_pin();
+
+	end = rd(tick) + (u_long)usec * PCPU_GET(clock) / 1000000;
+	while (rd(tick) < end)
+		cpu_spinwait();
+
+	sched_unpin();
 }
 
 void

Modified: stable/7/sys/sparc64/sparc64/exception.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 12:55:11 2009	(r190033)
@@ -550,7 +550,7 @@ END(tl0_sfsr_trap)
 	tl ## traplvl ## _intr	level, 1 << level
 
 #define	TICK(traplvl) \
-	tl ## traplvl ## _intr	PIL_TICK, 1
+	tl ## traplvl ## _intr	PIL_TICK, 0x10001
 
 #define	INTR_LEVEL(tl)							\
 	INTR(1, tl) ;							\

Modified: stable/7/sys/sparc64/sparc64/genassym.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 12:55:11 2009	(r190033)
@@ -83,10 +83,11 @@ ASSYM(PAGE_SIZE_4M, PAGE_SIZE_4M);
 ASSYM(CSA_PCPU, offsetof(struct cpu_start_args, csa_pcpu));
 ASSYM(CSA_STATE, offsetof(struct cpu_start_args, csa_state));
 #ifdef SUN4U
-ASSYM(CSA_TICK, offsetof(struct cpu_start_args, csa_tick));
-ASSYM(CSA_VER, offsetof(struct cpu_start_args, csa_ver));
 ASSYM(CSA_MID, offsetof(struct cpu_start_args, csa_mid));
+ASSYM(CSA_STICK, offsetof(struct cpu_start_args, csa_stick));
+ASSYM(CSA_TICK, offsetof(struct cpu_start_args, csa_tick));
 ASSYM(CSA_TTES, offsetof(struct cpu_start_args, csa_ttes));
+ASSYM(CSA_VER, offsetof(struct cpu_start_args, csa_ver));
 #endif
 #ifdef SUN4V
 ASSYM(CSA_CPUID, offsetof(struct cpu_start_args, csa_cpuid));

Modified: stable/7/sys/sparc64/sparc64/locore.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/locore.S	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/locore.S	Thu Mar 19 12:55:11 2009	(r190033)
@@ -54,7 +54,6 @@ ENTRY(_start)
 	wrpr	%g0, 0, %cleanwin
 	wrpr	%g0, 0, %pil
 	wr	%g0, 0, %fprs
-	wrpr	%g0, 0, %tick
 
 	/*
 	 * Get onto our per-CPU panic stack, which precedes the struct pcpu in

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 12:55:11 2009	(r190033)
@@ -133,18 +133,6 @@ struct kva_md_info kmi;
 u_long ofw_vec;
 u_long ofw_tba;
 
-/*
- * Note: timer quality for CPU's is set low to try and prevent them from
- * being chosen as the primary timecounter.  The CPU counters are not
- * synchronized among the CPU's so in MP machines this causes problems
- * when calculating the time.  With this value the CPU's should only be
- * chosen as the primary timecounter as a last resort.
- */
-
-#define	UP_TICK_QUALITY	1000
-#define	MP_TICK_QUALITY	-100
-static struct timecounter tick_tc;
-
 char sparc64_model[32];
 
 static int cpu_use_vis = 1;
@@ -152,7 +140,6 @@ static int cpu_use_vis = 1;
 cpu_block_copy_t *cpu_block_copy;
 cpu_block_zero_t *cpu_block_zero;
 
-static timecounter_get_t tick_get_timecount;
 void sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3,
     ofw_vec_t *vec);
 void sparc64_shutdown_final(void *dummy, int howto);
@@ -180,22 +167,6 @@ cpu_startup(void *arg)
 	vm_paddr_t physsz;
 	int i;
 
-	tick_tc.tc_get_timecount = tick_get_timecount;
-	tick_tc.tc_poll_pps = NULL;
-	tick_tc.tc_counter_mask = ~0u;
-	tick_tc.tc_frequency = tick_freq;
-	tick_tc.tc_name = "tick";
-	tick_tc.tc_quality = UP_TICK_QUALITY;
-#ifdef SMP
-	/*
-	 * We do not know if each CPU's tick counter is synchronized.
-	 */
-	if (cpu_mp_probe())
-		tick_tc.tc_quality = MP_TICK_QUALITY;
-#endif
-
-	tc_init(&tick_tc);
-
 	physsz = 0;
 	for (i = 0; i < sparc64_nmemreg; i++)
 		physsz += sparc64_memreg[i].mr_size;
@@ -217,7 +188,7 @@ cpu_startup(void *arg)
 	if (bootverbose)
 		printf("machine: %s\n", sparc64_model);
 
-	cpu_identify(rdpr(ver), tick_freq, PCPU_GET(cpuid));
+	cpu_identify(rdpr(ver), PCPU_GET(clock), curcpu);
 }
 
 void
@@ -262,12 +233,6 @@ spinlock_exit(void)
 		wrpr(pil, td->td_md.md_saved_pil, 0);
 }
 
-unsigned
-tick_get_timecount(struct timecounter *tc)
-{
-	return ((unsigned)rd(tick));
-}
-
 void
 sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec)
 {
@@ -278,7 +243,6 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	caddr_t kmdp;
 	phandle_t child;
 	phandle_t root;
-	u_int clock;
 	uint32_t portid;
 
 	end = 0;
@@ -291,6 +255,21 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	cpu_impl = VER_IMPL(rdpr(ver));
 
 	/*
+	 * Clear (S)TICK timer (including NPT).
+	 */
+	tick_clear();
+
+	/*
+	 * UltraSparc II[e,i] based systems come up with the tick interrupt
+	 * enabled and a handler that resets the tick counter, causing DELAY()
+	 * to not work properly when used early in boot.
+	 * UltraSPARC III based systems come up with the system tick interrupt
+	 * enabled, causing an interrupt storm on startup since they are not
+	 * handled.
+	 */
+	tick_stop();
+
+	/*
 	 * Initialize Open Firmware (needed for console).
 	 */
 	OF_init(vec);
@@ -329,7 +308,7 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	pc->pc_tlb_ctx_max = TLB_CTX_USER_MAX;
 
 	/*
-	 * Determine the OFW node (and ensure the
+	 * Determine the OFW node and frequency of the BSP (and ensure the
 	 * BSP is in the device tree in the first place).
 	 */
 	pc->pc_node = 0;
@@ -349,17 +328,23 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	}
 	if (pc->pc_node == 0)
 		OF_exit();
+	if (OF_getprop(child, "clock-frequency", &pc->pc_clock,
+	    sizeof(pc->pc_clock)) <= 0)
+		OF_exit();
 
 	/*
-	 * Initialize the tick counter.  Must be before the console is inited
-	 * in order to provide the low-level console drivers with a working
-	 * DELAY().
+	 * Provide a DELAY() that works before PCPU_REG is set.  We can't
+	 * set PCPU_REG without also taking over the trap table or the
+	 * firmware will overwrite it.  Unfortunately, it's way to early
+	 * to also take over the trap table at this point.
 	 */
-	OF_getprop(child, "clock-frequency", &clock, sizeof(clock));
-	tick_init(clock);
+	clock_boot = pc->pc_clock;
+	delay_func = delay_boot;
 
 	/*
 	 * Initialize the console before printing anything.
+	 * NB: the low-level console drivers require a working DELAY() at
+	 * this point.
 	 */
 	cninit();
 
@@ -445,6 +430,11 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	cpu_setregs(pc);
 
 	/*
+	 * It's now safe to use the real DELAY().
+	 */
+	delay_func = delay_tick;
+
+	/*
 	 * Initialize the message buffer (after setting trap table).
 	 */
 	msgbufinit(msgbufp, MSGBUF_SIZE);
@@ -720,8 +710,13 @@ cpu_shutdown(void *args)
 int
 cpu_est_clockrate(int cpu_id, uint64_t *rate)
 {
+	struct pcpu *pc;
 
-	return (ENXIO);
+	pc = pcpu_find(cpu_id);
+	if (pc == NULL || rate == NULL)
+		return (EINVAL);
+	*rate = pc->pc_clock;
+	return (0);
 }
 
 /*

Modified: stable/7/sys/sparc64/sparc64/mp_locore.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_locore.S	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/mp_locore.S	Thu Mar 19 12:55:11 2009	(r190033)
@@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include "assym.s"
 
@@ -92,7 +93,7 @@ ENTRY(mp_startup)
 
 	SET(cpu_start_args, %l1, %l0)
 
-	mov	CPU_CLKSYNC, %l1
+	mov	CPU_TICKSYNC, %l1
 	membar	#StoreLoad
 	stw	%l1, [%l0 + CSA_STATE]
 
@@ -101,7 +102,25 @@ ENTRY(mp_startup)
 	 nop
 	wrpr	%l1, 0, %tick
 
-	UPA_GET_MID(%o0)
+	rdpr	%ver, %l1
+	stx	%l1, [%l0 + CSA_VER]
+
+	srlx	%l1, VER_IMPL_SHIFT, %l1
+	sll	%l1, VER_IMPL_SIZE, %l1
+	srl	%l1, VER_IMPL_SIZE, %l1
+	cmp	%l1, CPU_IMPL_ULTRASPARCIII
+	bl	%icc, 3f
+	 nop
+	mov	CPU_STICKSYNC, %l1
+	membar	#StoreLoad
+	stw	%l1, [%l0 + CSA_STATE]
+
+2:	ldx	[%l0 + CSA_STICK], %l1
+	brz	%l1, 2b
+	 nop
+	wr	%l1, 0, %asr24
+
+3:	UPA_GET_MID(%o0)
 
 #if KTR_COMPILE & KTR_SMP
 	CATR(KTR_SMP, "mp_start: CPU %d entered kernel"
@@ -110,9 +129,6 @@ ENTRY(mp_startup)
 9:
 #endif
 
-	rdpr	%ver, %l1
-	stx	%l1, [%l0 + CSA_VER]
-
 	/*
 	 * Inform the boot processor we have inited.
 	 */
@@ -123,9 +139,9 @@ ENTRY(mp_startup)
 	/*
 	 * Wait till its our turn to bootstrap.
 	 */
-2:	lduw	[%l0 + CSA_MID], %l1
+4:	lduw	[%l0 + CSA_MID], %l1
 	cmp	%l1, %o0
-	bne	%xcc, 2b
+	bne	%xcc, 4b
 	 nop
 
 #if KTR_COMPILE & KTR_SMP
@@ -141,7 +157,7 @@ ENTRY(mp_startup)
 	/*
 	 * Map the per-CPU pages.
 	 */
-3:	sllx	%l2, TTE_SHIFT, %l3
+5:	sllx	%l2, TTE_SHIFT, %l3
 	add	%l1, %l3, %l3
 
 	ldx	[%l3 + TTE_VPN], %l4
@@ -156,7 +172,7 @@ ENTRY(mp_startup)
 
 	add	%l2, 1, %l2
 	cmp	%l2, PCPU_PAGES
-	bne	%xcc, 3b
+	bne	%xcc, 5b
 	 nop
 
 	/*

Modified: stable/7/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 12:55:11 2009	(r190033)
@@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -101,7 +102,7 @@ static ih_func_t cpu_ipi_stop;
  * since the other processors will use it before the boot CPU enters the
  * kernel.
  */
-struct	cpu_start_args cpu_start_args = { 0, -1, -1, 0, 0 };
+struct	cpu_start_args cpu_start_args = { 0, -1, -1, 0, 0, 0 };
 struct	ipi_cache_args ipi_cache_args;
 struct	ipi_tlb_args ipi_tlb_args;
 struct	pcb stoppcbs[MAXCPU];
@@ -270,17 +271,25 @@ cpu_mp_start(void)
 		if (OF_getprop(child, "clock-frequency", &clock,
 		    sizeof(clock)) <= 0)
 			panic("%s: can't get clock", __func__);
+		if (clock != PCPU_GET(clock))
+			hardclock_use_stick = 1;
 
 		csa->csa_state = 0;
 		sun4u_startcpu(child, (void *)mp_tramp, 0);
 		s = intr_disable();
-		while (csa->csa_state != CPU_CLKSYNC)
+		while (csa->csa_state != CPU_TICKSYNC)
 			;
 		membar(StoreLoad);
 		csa->csa_tick = rd(tick);
+		if (cpu_impl >= CPU_IMPL_ULTRASPARCIII) {
+			while (csa->csa_state != CPU_STICKSYNC)
+				;
+			membar(StoreLoad);
+			csa->csa_stick = rdstick();
+		}
 		while (csa->csa_state != CPU_INIT)
 			;
-		csa->csa_tick = 0;
+		csa->csa_tick = csa->csa_stick = 0;
 		intr_restore(s);
 
 		cpuid = mp_ncpus++;
@@ -291,6 +300,7 @@ cpu_mp_start(void)
 		pc = (struct pcpu *)(va + (PCPU_PAGES * PAGE_SIZE)) - 1;
 		pcpu_init(pc, cpuid, sizeof(*pc));
 		pc->pc_addr = va;
+		pc->pc_clock = clock;
 		pc->pc_mid = mid;
 		pc->pc_node = child;
 

Modified: stable/7/sys/sparc64/sparc64/tick.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/tick.c	Thu Mar 19 12:52:19 2009	(r190032)
+++ stable/7/sys/sparc64/sparc64/tick.c	Thu Mar 19 12:55:11 2009	(r190033)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2001 Jake Burkholder.
+ * Copyright (c) 2005, 2008 Marius Strobl 
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -28,22 +29,30 @@
 __FBSDID("$FreeBSD$");
 
 #include 
-#include 
 #include 
-#include 
-#include 
+#include 
+#include 
+#include 
 #include 
+#include 
+#include 
+#include 
 #include 
 #include 
 
-#include 
+#include 
+
 #include 
 #include 
 #include 
 #include 
 #include 
 
-#define	TICK_GRACE	10000
+/* 10000 ticks proved okay for 500MHz. */
+#define	TICK_GRACE(clock)	((clock) / 1000000 * 2 * 10)
+
+#define	TICK_QUALITY_MP	10
+#define	TICK_QUALITY_UP	1000
 
 SYSCTL_NODE(_machdep, OID_AUTO, tick, CTLFLAG_RD, 0, "tick statistics");
 
@@ -63,7 +72,24 @@ static int adjust_ticks = 0;
 SYSCTL_INT(_machdep_tick, OID_AUTO, adjust_ticks, CTLFLAG_RD, &adjust_ticks,
     0, "total number of tick interrupts with adjustment");
 
+u_int hardclock_use_stick = 0;
+SYSCTL_INT(_machdep_tick, OID_AUTO, hardclock_use_stick, CTLFLAG_RD,
+    &hardclock_use_stick, 0, "hardclock uses STICK instead of TICK timer");
+
+static struct timecounter tick_tc;
+static u_long tick_increment;
+
+static uint64_t tick_cputicks(void);
+static timecounter_get_t tick_get_timecount_up;
+#ifdef SMP
+static timecounter_get_t tick_get_timecount_mp;
+#endif
 static void tick_hardclock(struct trapframe *tf);
+static void tick_hardclock_bbwar(struct trapframe *tf);
+static inline void tick_hardclock_common(struct trapframe *tf, u_long tick,
+    u_long adj);
+static inline void tick_process(struct trapframe *tf);
+static void stick_hardclock(struct trapframe *tf);
 
 static uint64_t
 tick_cputicks(void)
@@ -75,9 +101,65 @@ tick_cputicks(void)
 void
 cpu_initclocks(void)
 {
+	uint32_t clock;
 
 	stathz = hz;
+
+	/*
+	 * Given that the STICK timers typically are driven at rather low
+	 * frequencies they shouldn't be used except when really necessary.
+	 */
+	if (hardclock_use_stick != 0) {
+		if (OF_getprop(OF_parent(PCPU_GET(node)), "stick-frequency",
+		    &clock, sizeof(clock)) == -1)
+		panic("%s: could not determine STICK frequency", __func__);
+		intr_setup(PIL_TICK, stick_hardclock, -1, NULL, NULL);
+		/*
+		 * We don't provide a CPU ticker as long as the frequency
+		 * supplied isn't actually used per-CPU.
+		 */
+	} else {
+		clock = PCPU_GET(clock);
+		intr_setup(PIL_TICK, cpu_impl < CPU_IMPL_ULTRASPARCIII ?
+		    tick_hardclock_bbwar : tick_hardclock, -1, NULL, NULL);
+		set_cputicker(tick_cputicks, clock, 0);
+	}
+	tick_increment = clock / hz;
+	/*
+	 * Avoid stopping of hardclock in terms of a lost (S)TICK interrupt
+	 * by ensuring that the (S)TICK period is at least TICK_GRACE ticks.
+	 */
+	if (tick_increment < TICK_GRACE(clock))
+		panic("%s: HZ too high, decrease to at least %d",
+		    __func__, clock / TICK_GRACE(clock));
 	tick_start();
+
+	/*
+	 * Initialize the TICK-based timecounter.  This must not happen
+	 * before SI_SUB_INTRINSIC for tick_get_timecount_mp() to work.
+	 */
+	tick_tc.tc_get_timecount = tick_get_timecount_up;
+	tick_tc.tc_poll_pps = NULL;
+	tick_tc.tc_counter_mask = ~0u;
+	tick_tc.tc_frequency = PCPU_GET(clock);
+	tick_tc.tc_name = "tick";
+	tick_tc.tc_quality = TICK_QUALITY_UP;
+	tick_tc.tc_priv = NULL;
+#ifdef SMP
+	/*
+	 * We (try to) sync the (S)TICK timers of APs with the BSP during
+	 * their startup but not afterwards.  The resulting drift can
+	 * cause problems when the time is calculated based on (S)TICK
+	 * values read on different CPUs.  Thus we bind to the BSP for
+	 * reading the register and use a low quality for the otherwise
+	 * high quality (S)TICK timers in the MP case.
+	 */
+	if (cpu_mp_probe()) {
+		tick_tc.tc_get_timecount = tick_get_timecount_mp;
+		tick_tc.tc_quality = TICK_QUALITY_MP;
+	}
+#endif
+	tc_init(&tick_tc);
 }
 
 static inline void
@@ -93,27 +175,68 @@ tick_process(struct trapframe *tf)
 	statclock(TRAPF_USERMODE(tf));
 }
 
+/*
+ * NB: the sequence of reading the (S)TICK register, calculating the value
+ * of the next tick and writing it to the (S)TICK_COMPARE register must not
+ * be interrupted, not even by an IPI, otherwise a value that is in the past
+ * could be written in the worst case, causing hardclock to stop.
+ */
+
 static void
 tick_hardclock(struct trapframe *tf)
 {
-	u_long adj, ref, tick;
-	long delta;
+	u_long adj, tick;
+	register_t s;
+
+	critical_enter();
+	adj = PCPU_GET(tickadj);
+	s = intr_disable();
+	tick = rd(tick);
+	wr(tick_cmpr, tick + tick_increment - adj, 0);
+	intr_restore(s);
+	tick_hardclock_common(tf, tick, adj);
+	critical_exit();
+}
+
+static void
+tick_hardclock_bbwar(struct trapframe *tf)
+{
+	u_long adj, tick;
 	register_t s;
-	int count;
 
-	/*
-	 * The sequence of reading the TICK register, calculating the value
-	 * of the next tick and writing it to the TICK_CMPR register must not
-	 * be interrupted, not even by an IPI, otherwise a value that is in
-	 * the past could be written in the worst case, causing hardclock to
-	 * stop.
-	 */
 	critical_enter();
 	adj = PCPU_GET(tickadj);
 	s = intr_disable();
 	tick = rd(tick);
 	wrtickcmpr(tick + tick_increment - adj, 0);
 	intr_restore(s);
+	tick_hardclock_common(tf, tick, adj);
+	critical_exit();
+}
+
+static void
+stick_hardclock(struct trapframe *tf)
+{
+	u_long adj, stick;
+	register_t s;
+
+	critical_enter();
+	adj = PCPU_GET(tickadj);
+	s = intr_disable();
+	stick = rdstick();
+	wrstickcmpr(stick + tick_increment - adj, 0);
+	intr_restore(s);
+	tick_hardclock_common(tf, stick, adj);
+	critical_exit();
+}
+
+static inline void
+tick_hardclock_common(struct trapframe *tf, u_long tick, u_long adj)
+{
+	u_long ref;
+	long delta;
+	int count;
+
 	ref = PCPU_GET(tickref);
 	delta = tick - ref;
 	count = 0;
@@ -139,29 +262,36 @@ tick_hardclock(struct trapframe *tf)
 	}
 	PCPU_SET(tickref, ref);
 	PCPU_SET(tickadj, adj);
-	critical_exit();
 }
 
-void
-tick_init(u_long clock)
+static u_int
+tick_get_timecount_up(struct timecounter *tc)
 {
 
-	tick_freq = clock;
-	tick_MHz = clock / 1000000;
-	tick_increment = clock / hz;
+	return ((u_int)rd(tick));
+}
 
-	/*
-	 * UltraSparc II[e,i] based systems come up with the tick interrupt
-	 * enabled and a handler that resets the tick counter, causing DELAY()
-	 * to not work properly when used early in boot.
-	 * UltraSPARC III based systems come up with the system tick interrupt
-	 * enabled, causing an interrupt storm on startup since they are not
-	 * handled.
-	 */
-	tick_stop();
+#ifdef SMP
+static u_int
+tick_get_timecount_mp(struct timecounter *tc)
+{
+	struct thread *td;
+	u_int tick;
+
+	td = curthread;
+	thread_lock(td);
+	sched_bind(td, 0);
+	thread_unlock(td);
+
+	tick = tick_get_timecount_up(tc);
+
+	thread_lock(td);
+	sched_unbind(td);
+	thread_unlock(td);
 
-	set_cputicker(tick_cputicks, tick_freq, 0);
+	return (tick);
 }
+#endif
 
 void
 tick_start(void)
@@ -170,32 +300,34 @@ tick_start(void)
 	register_t s;
 
 	/*
-	 * Avoid stopping of hardclock in terms of a lost tick interrupt
-	 * by ensuring that the tick period is at least TICK_GRACE ticks.
-	 * This check would be better placed in tick_init(), however we
-	 * have to call tick_init() before cninit() in order to provide
-	 * the low-level console drivers with a working DELAY() which in
-	 * turn means we cannot use panic() in tick_init().
-	 */
-	if (tick_increment < TICK_GRACE)
-		panic("%s: HZ too high, decrease to at least %ld", __func__,
-		    tick_freq / TICK_GRACE);
-
-	if (curcpu == 0)
-		intr_setup(PIL_TICK, tick_hardclock, -1, NULL, NULL);
-
-	/*
-	 * Try to make the tick interrupts as synchronously as possible on
-	 * all CPUs to avoid inaccuracies for migrating processes. Leave out
-	 * one tick to make sure that it is not missed.
+	 * Try to make the (S)TICK interrupts as synchronously as possible
+	 * on all CPUs to avoid inaccuracies for migrating processes.  Leave
+	 * out one tick to make sure that it is not missed.
 	 */
+	critical_enter();
 	PCPU_SET(tickadj, 0);
 	s = intr_disable();
-	base = rd(tick);
+	if (hardclock_use_stick != 0)
+		base = rdstick();
+	else
+		base = rd(tick);
 	base = roundup(base, tick_increment);
 	PCPU_SET(tickref, base);
-	wrtickcmpr(base + tick_increment, 0);
+	if (hardclock_use_stick != 0)
+		wrstickcmpr(base + tick_increment, 0);
+	else
+		wrtickcmpr(base + tick_increment, 0);
 	intr_restore(s);
+	critical_exit();
+}
+
+void
+tick_clear(void)
+{
+
+	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
+		wrstick(0, 0);
+	wrpr(tick, 0, 0);
 }
 
 void
@@ -203,6 +335,6 @@ tick_stop(void)
 {
 
 	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
-		wr(asr25, 1L << 63, 0);
+		wrstickcmpr(1L << 63, 0);
 	wrtickcmpr(1L << 63, 0);
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:00:21 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AF5BF106564A;
	Thu, 19 Mar 2009 13:00:21 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9C4718FC25;
	Thu, 19 Mar 2009 13:00:21 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD0LfK061755;
	Thu, 19 Mar 2009 13:00:21 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD0LmH061754;
	Thu, 19 Mar 2009 13:00:21 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903191300.n2JD0LmH061754@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Thu, 19 Mar 2009 13:00:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190034 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/ppc
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:00:22 -0000

Author: nyan
Date: Thu Mar 19 13:00:21 2009
New Revision: 190034
URL: http://svn.freebsd.org/changeset/base/190034

Log:
  MFC: r182441
  
    Remove unneeded include.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/ppc/ppc_isa.c

Modified: stable/7/sys/dev/ppc/ppc_isa.c
==============================================================================
--- stable/7/sys/dev/ppc/ppc_isa.c	Thu Mar 19 12:55:11 2009	(r190033)
+++ stable/7/sys/dev/ppc/ppc_isa.c	Thu Mar 19 13:00:21 2009	(r190034)
@@ -37,11 +37,6 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-#if defined(__i386__) && defined(PC98)
-#include 
-#else
-#include 
-#endif
 #include 
 
 #include 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:02:38 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C3071065676;
	Thu, 19 Mar 2009 13:02:38 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 19A428FC23;
	Thu, 19 Mar 2009 13:02:38 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD2bU4061849;
	Thu, 19 Mar 2009 13:02:37 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD2b5n061848;
	Thu, 19 Mar 2009 13:02:37 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903191302.n2JD2b5n061848@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Thu, 19 Mar 2009 13:02:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190035 - in stable/7/sys: . boot contrib/pf dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:02:39 -0000

Author: nyan
Date: Thu Mar 19 13:02:37 2009
New Revision: 190035
URL: http://svn.freebsd.org/changeset/base/190035

Log:
  MFC: r186073
  
    Disconnect the efi from pc98.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/Makefile
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/boot/Makefile
==============================================================================
--- stable/7/sys/boot/Makefile	Thu Mar 19 13:00:21 2009	(r190034)
+++ stable/7/sys/boot/Makefile	Thu Mar 19 13:02:37 2009	(r190035)
@@ -8,7 +8,7 @@ SUBDIR+=		ficl
 .endif
 
 # Build EFI library.
-.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "ia64"
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE} == "i386" || ${MACHINE_ARCH} == "ia64"
 SUBDIR+=		efi
 .endif
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:02:53 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 833B01065670;
	Thu, 19 Mar 2009 13:02:53 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 576A78FC25;
	Thu, 19 Mar 2009 13:02:53 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD2rXG061892;
	Thu, 19 Mar 2009 13:02:53 GMT (envelope-from rwatson@svn.freebsd.org)
Received: (from rwatson@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD2r4G061891;
	Thu, 19 Mar 2009 13:02:53 GMT (envelope-from rwatson@svn.freebsd.org)
Message-Id: <200903191302.n2JD2r4G061891@svn.freebsd.org>
From: Robert Watson 
Date: Thu, 19 Mar 2009 13:02:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-svnadmin@freebsd.org
X-SVN-Group: svnadmin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190036 - svnadmin/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:02:54 -0000

Author: rwatson
Date: Thu Mar 19 13:02:52 2009
New Revision: 190036
URL: http://svn.freebsd.org/changeset/base/190036

Log:
  Add brueffer as a mentee ...

Modified:
  svnadmin/conf/mentors

Modified: svnadmin/conf/mentors
==============================================================================
--- svnadmin/conf/mentors	Thu Mar 19 13:02:37 2009	(r190035)
+++ svnadmin/conf/mentors	Thu Mar 19 13:02:52 2009	(r190036)
@@ -11,6 +11,7 @@
 
 # Mentee	Mentor		Optional comment
 avg		rpaulo		Co-mentor: jhb
+brueffer	rwatson
 cbzimmer	sam
 dchagin		kib
 eri		mlaier		Co-mentor: thompsa

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:03:18 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6A3D610656E9;
	Thu, 19 Mar 2009 13:03:18 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 573E68FC13;
	Thu, 19 Mar 2009 13:03:18 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD3ImM061946;
	Thu, 19 Mar 2009 13:03:18 GMT (envelope-from rwatson@svn.freebsd.org)
Received: (from rwatson@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD3Ics061945;
	Thu, 19 Mar 2009 13:03:18 GMT (envelope-from rwatson@svn.freebsd.org)
Message-Id: <200903191303.n2JD3Ics061945@svn.freebsd.org>
From: Robert Watson 
Date: Thu, 19 Mar 2009 13:03:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-svnadmin@freebsd.org
X-SVN-Group: svnadmin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190037 - svnadmin/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:03:22 -0000

Author: rwatson
Date: Thu Mar 19 13:03:17 2009
New Revision: 190037
URL: http://svn.freebsd.org/changeset/base/190037

Log:
  ... so that I can remove him again.  brueffer is now free to roam the
  plains of FreeBSD as he sees fit.

Modified:
  svnadmin/conf/mentors

Modified: svnadmin/conf/mentors
==============================================================================
--- svnadmin/conf/mentors	Thu Mar 19 13:02:52 2009	(r190036)
+++ svnadmin/conf/mentors	Thu Mar 19 13:03:17 2009	(r190037)
@@ -11,7 +11,6 @@
 
 # Mentee	Mentor		Optional comment
 avg		rpaulo		Co-mentor: jhb
-brueffer	rwatson
 cbzimmer	sam
 dchagin		kib
 eri		mlaier		Co-mentor: thompsa

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:08:25 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F3C35106566B;
	Thu, 19 Mar 2009 13:08:24 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E01F48FC19;
	Thu, 19 Mar 2009 13:08:24 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD8OWh062108;
	Thu, 19 Mar 2009 13:08:24 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD8OnB062106;
	Thu, 19 Mar 2009 13:08:24 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191308.n2JD8OnB062106@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 13:08:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190038 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:08:25 -0000

Author: marius
Date: Thu Mar 19 13:08:24 2009
New Revision: 190038
URL: http://svn.freebsd.org/changeset/base/190038

Log:
  MFC: r182767
  
  The physical address space of cheetah-class CPUs has been extended
  to 43 bits so update TD_PA_BITS accordingly. For the most part this
  increase is transparent to the existing code except for when reading
  the physical address from ASI_{D,I}TLB_DATA_ACCESS_REG, which we
  only do in the loader and which was already adjusted in r190002, or
  from the OFW translations node.
  While at it, ensure we are only taking valid OFW mapping entries
  into account.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/tte.h
  stable/7/sys/sparc64/sparc64/pmap.c

Modified: stable/7/sys/sparc64/include/tte.h
==============================================================================
--- stable/7/sys/sparc64/include/tte.h	Thu Mar 19 13:03:17 2009	(r190037)
+++ stable/7/sys/sparc64/include/tte.h	Thu Mar 19 13:08:24 2009	(r190038)
@@ -36,21 +36,24 @@
 
 #define	TD_SIZE_SHIFT	(61)
 #define	TD_SOFT2_SHIFT	(50)
-#define	TD_DIAG_SHIFT	(41)
+#define	TD_DIAG_SF_SHIFT	(41)
+#define	TD_RSVD_CH_SHIFT	(43)
 #define	TD_PA_SHIFT	(13)
 #define	TD_SOFT_SHIFT	(7)
 
 #define	TD_SIZE_BITS	(2)
 #define	TD_SOFT2_BITS	(9)
-#define	TD_DIAG_BITS	(9)
+#define	TD_DIAG_SF_BITS	(9)
+#define	TD_RSVD_CH_BITS	(7)
 #define	TD_PA_CH_BITS	(30)
 #define	TD_PA_SF_BITS	(28)
-#define	TD_PA_BITS	TD_PA_SF_BITS
+#define	TD_PA_BITS	TD_PA_CH_BITS
 #define	TD_SOFT_BITS	(6)
 
 #define	TD_SIZE_MASK	((1UL << TD_SIZE_BITS) - 1)
 #define	TD_SOFT2_MASK	((1UL << TD_SOFT2_BITS) - 1)
-#define	TD_DIAG_MASK	((1UL << TD_DIAG_BITS) - 1)
+#define	TD_DIAG_SF_MASK	((1UL << TD_DIAG_SF_BITS) - 1)
+#define	TD_RSVD_CH_MASK	((1UL << TD_RSVD_CH_BITS) - 1)
 #define	TD_PA_CH_MASK	((1UL << TD_PA_CH_BITS) - 1)
 #define	TD_PA_SF_MASK	((1UL << TD_PA_SF_BITS) - 1)
 #define	TD_PA_MASK	((1UL << TD_PA_BITS) - 1)

Modified: stable/7/sys/sparc64/sparc64/pmap.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 13:03:17 2009	(r190037)
+++ stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 13:08:24 2009	(r190038)
@@ -103,6 +103,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #define	PMAP_DEBUG
 
@@ -473,6 +474,8 @@ pmap_bootstrap(vm_offset_t ekva)
 		    "translation: start=%#lx size=%#lx tte=%#lx",
 		    translations[i].om_start, translations[i].om_size,
 		    translations[i].om_tte);
+		if ((translations[i].om_tte & TD_V) == 0)
+			continue;
 		if (translations[i].om_start < VM_MIN_PROM_ADDRESS ||
 		    translations[i].om_start > VM_MAX_PROM_ADDRESS)
 			continue;
@@ -483,7 +486,11 @@ pmap_bootstrap(vm_offset_t ekva)
 			tp->tte_vpn = TV_VPN(va, TS_8K);
 			tp->tte_data =
 			    ((translations[i].om_tte &
-			      ~(TD_SOFT_MASK << TD_SOFT_SHIFT)) | TD_EXEC) +
+			    ~((TD_SOFT2_MASK << TD_SOFT2_SHIFT) |
+			    (cpu_impl < CPU_IMPL_ULTRASPARCIII ?
+			    (TD_DIAG_SF_MASK << TD_DIAG_SF_SHIFT) :
+			    (TD_RSVD_CH_MASK << TD_RSVD_CH_SHIFT)) |
+			    (TD_SOFT_MASK << TD_SOFT_SHIFT))) | TD_EXEC) +
 			    off;
 		}
 	}
@@ -603,6 +610,8 @@ pmap_init(void)
 	for (i = 0; i < translations_size; i++) {
 		addr = translations[i].om_start;
 		size = translations[i].om_size;
+		if ((translations[i].om_tte & TD_V) == 0)
+			continue;
 		if (addr < VM_MIN_PROM_ADDRESS || addr > VM_MAX_PROM_ADDRESS)
 			continue;
 		result = vm_map_find(kernel_map, NULL, 0, &addr, size, FALSE,

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:09:54 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 41967106566C;
	Thu, 19 Mar 2009 13:09:54 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2CBB28FC15;
	Thu, 19 Mar 2009 13:09:54 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JD9sw6062186;
	Thu, 19 Mar 2009 13:09:54 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JD9rLm062180;
	Thu, 19 Mar 2009 13:09:53 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191309.n2JD9rLm062180@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 13:09:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190039 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:09:55 -0000

Author: marius
Date: Thu Mar 19 13:09:53 2009
New Revision: 190039
URL: http://svn.freebsd.org/changeset/base/190039

Log:
  MFC: r182768
  
  Flesh out MMU and cache handling of cheetah-class CPUs.

Added:
  stable/7/sys/sparc64/include/dcr.h
     - copied unchanged from r182768, head/sys/sparc64/include/dcr.h
Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/cpu.h
  stable/7/sys/sparc64/sparc64/cheetah.c
  stable/7/sys/sparc64/sparc64/genassym.c
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/mp_machdep.c

Modified: stable/7/sys/sparc64/include/cpu.h
==============================================================================
--- stable/7/sys/sparc64/include/cpu.h	Thu Mar 19 13:08:24 2009	(r190038)
+++ stable/7/sys/sparc64/include/cpu.h	Thu Mar 19 13:09:53 2009	(r190039)
@@ -52,6 +52,7 @@
 extern	char btext[];
 extern	char etext[];
 
+void	cheetah_init(void);
 void	cpu_halt(void);
 void	cpu_reset(void);
 void	fork_trampoline(void);

Copied: stable/7/sys/sparc64/include/dcr.h (from r182768, head/sys/sparc64/include/dcr.h)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/7/sys/sparc64/include/dcr.h	Thu Mar 19 13:09:53 2009	(r190039, copy of r182768, head/sys/sparc64/include/dcr.h)
@@ -0,0 +1,66 @@
+/*-
+ * Copyright (c) 2008 Marius Strobl 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (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$
+ */
+
+#ifndef	_MACHINE_DCR_H_
+#define	_MACHINE_DCR_H_
+
+/*
+ * Definitions for the UltraSPARC-III Depatch Control Register (ASR 18).
+ */
+#define	DCR_MS			(1UL << 0)
+#define	DCR_IFPOE		(1UL << 1)
+#define	DCR_SI			(1UL << 3)
+#define	DCR_RPE			(1UL << 4)
+#define	DCR_BPE			(1UL << 5)
+
+#define	DCR_OBSDATA_SHIFT	6
+#define	DCR_OBSDATA_CT_BITS	8
+#define	DCR_OBSDATA_CT_MASK						\
+	(((1UL << DCR_OBSDATA_CT_BITS) - 1) << DCR_OBSDATA_SHIFT)
+
+/* The following bits are valid for the UltraSPARC-III+/IV+ only. */
+#define	DCR_IPE			(1UL << 5)
+
+#define	DCR_OBSDATA_CTP_BITS	6
+#define	DCR_OBSDATA_CTP_MASK						\
+	(((1UL << DCR_OBSDATA_CTP_BITS) - 1) << DCR_OBSDATA_SHIFT)
+
+#define	DCR_DPE			(1UL << 12)
+
+/* The following bits are valid for the UltraSPARC-IV+ only. */
+#define	DCR_BPM_SHIFT		13
+#define	DCR_BPM_BITS		2
+#define	DCR_BPM_MASK							\
+	(((1UL << DCR_BPM_BITS) - 1) << DCR_BPM_SHIFT)
+
+#define	DCR_JPE			(1UL << 15)
+#define	DCR_ITPE		(1UL << 16)
+#define	DCR_DTPE		(1UL << 17)
+#define	DCR_PPE			(1UL << 18)
+
+#endif	/* _MACHINE_DCR_H_ */

Modified: stable/7/sys/sparc64/sparc64/cheetah.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/cheetah.c	Thu Mar 19 13:08:24 2009	(r190038)
+++ stable/7/sys/sparc64/sparc64/cheetah.c	Thu Mar 19 13:09:53 2009	(r190039)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2003 Jake Burkholder.
+ * Copyright (c) 2005, 2008 Marius Strobl 
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,9 +40,60 @@ __FBSDID("$FreeBSD$");
 #include 
 
 #include 
+#include 
 #include 
+#include 
+#include 
 #include 
 #include 
+#include 
+#include 
+
+/* A FLUSH is required after changing LSU_IC (the address is ignored). */
+#define	CHEETAH_FLUSH_LSU_IC()	__asm __volatile("flush %%g0" : :)
+
+#define	CHEETAH_ICACHE_TAG_LOWER	0x30
+
+/*
+ * CPU-specific initialization
+ */
+void
+cheetah_init(void)
+{
+	register_t s;
+
+	/*
+	 * Disable interrupts for safety, this shouldn't be actually
+	 * necessary though.
+	 */
+	s = intr_disable();
+
+	/*
+	 * Ensure DCR_IFPOE is disabled as long as we haven't implemented
+	 * support for it (if ever) as most if not all firmware versions
+	 * apparently turn it on.  Not making use of DCR_IFPOE should also
+	 * avoid Cheetah erratum #109.
+	 */
+	wr(asr18, rd(asr18) & ~DCR_IFPOE, 0);
+
+	/* Ensure the TSB Extension Registers hold 0 as TSB_Base. */
+
+	stxa(AA_DMMU_TSB_PEXT_REG, ASI_DMMU, 0);
+	stxa(AA_IMMU_TSB_PEXT_REG, ASI_IMMU, 0);
+	membar(Sync);
+
+	stxa(AA_DMMU_TSB_SEXT_REG, ASI_DMMU, 0);
+	/*
+	 * NB: the secondary context was removed from the iMMU.
+	 */
+	membar(Sync);
+
+	stxa(AA_DMMU_TSB_NEXT_REG, ASI_DMMU, 0);
+	stxa(AA_IMMU_TSB_NEXT_REG, ASI_IMMU, 0);
+	membar(Sync);
+
+	intr_restore(s);
+}
 
 /*
  * Enable level 1 caches.
@@ -49,7 +101,15 @@ __FBSDID("$FreeBSD$");
 void
 cheetah_cache_enable(void)
 {
+	u_long lsu;
 
+	lsu = ldxa(0, ASI_LSU_CTL_REG);
+	if (cpu_impl == CPU_IMPL_ULTRASPARCIII) {
+		/* Disable P$ due to Cheetah erratum #18. */
+		lsu &= ~LSU_PE;
+	}
+	stxa(0, ASI_LSU_CTL_REG, lsu | LSU_IC | LSU_DC);
+	CHEETAH_FLUSH_LSU_IC();
 }
 
 /*
@@ -58,7 +118,22 @@ cheetah_cache_enable(void)
 void
 cheetah_cache_flush(void)
 {
+	u_long addr, lsu;
 
+	for (addr = 0; addr < PCPU_GET(cache.dc_size);
+	    addr += PCPU_GET(cache.dc_linesize))
+		stxa_sync(addr, ASI_DCACHE_TAG, 0);
+
+	/* The I$ must be disabled when flushing it so ensure it's off. */
+	lsu = ldxa(0, ASI_LSU_CTL_REG);
+	stxa(0, ASI_LSU_CTL_REG, lsu & ~(LSU_IC));
+	CHEETAH_FLUSH_LSU_IC();
+	for (addr = CHEETAH_ICACHE_TAG_LOWER;
+	    addr < PCPU_GET(cache.ic_size) * 2;
+	    addr += PCPU_GET(cache.ic_linesize) * 2)
+		stxa_sync(addr, ASI_ICACHE_TAG, 0);
+	stxa(0, ASI_LSU_CTL_REG, lsu);
+	CHEETAH_FLUSH_LSU_IC();
 }
 
 /*
@@ -87,6 +162,12 @@ cheetah_icache_page_inval(vm_paddr_t pa)
 
 }
 
+#define	cheetah_dmap_all() do {						\
+	stxa(TLB_DEMAP_ALL, ASI_DMMU_DEMAP, 0);				\
+	stxa(TLB_DEMAP_ALL, ASI_IMMU_DEMAP, 0);				\
+	flush(KERNBASE);						\
+} while (0)
+
 /*
  * Flush all non-locked mappings from the TLB.
  */
@@ -94,15 +175,20 @@ void
 cheetah_tlb_flush_nonlocked(void)
 {
 
-	panic("cheetah_tlb_flush_nonlocked");
+	cheetah_dmap_all();
 }
 
 /*
  * Flush all user mappings from the TLB.
  */
 void
-cheetah_tlb_flush_user(void)
+cheetah_tlb_flush_user()
 {
 
-	panic("cheetah_tlb_flush_user");
+	/*
+	 * Just use cheetah_dmap_all() and accept somes TLB misses
+	 * rather than searching all 1040 D-TLB and 144 I-TLB slots
+	 * for non-kernel mappings.
+	 */
+	cheetah_dmap_all();
 }

Modified: stable/7/sys/sparc64/sparc64/genassym.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 13:08:24 2009	(r190038)
+++ stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 13:09:53 2009	(r190039)
@@ -66,10 +66,13 @@ ASSYM(PCPU_PAGES, PCPU_PAGES);
 
 ASSYM(TAR_VPN_SHIFT, TAR_VPN_SHIFT);
 
-ASSYM(TLB_DEMAP_NUCLEUS, TLB_DEMAP_NUCLEUS);
-ASSYM(TLB_DEMAP_PRIMARY, TLB_DEMAP_PRIMARY);
+#ifdef SUN4U
+ASSYM(TLB_DEMAP_ALL, TLB_DEMAP_ALL);
+#endif
 ASSYM(TLB_DEMAP_CONTEXT, TLB_DEMAP_CONTEXT);
+ASSYM(TLB_DEMAP_NUCLEUS, TLB_DEMAP_NUCLEUS);
 ASSYM(TLB_DEMAP_PAGE, TLB_DEMAP_PAGE);
+ASSYM(TLB_DEMAP_PRIMARY, TLB_DEMAP_PRIMARY);
 
 ASSYM(INT_SHIFT, INT_SHIFT);
 ASSYM(PTR_SHIFT, PTR_SHIFT);

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:08:24 2009	(r190038)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:09:53 2009	(r190039)
@@ -255,6 +255,12 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	cpu_impl = VER_IMPL(rdpr(ver));
 
 	/*
+	 * Do CPU-specific Initialization.
+	 */
+	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
+		cheetah_init();
+
+	/*
 	 * Clear (S)TICK timer (including NPT).
 	 */
 	tick_clear();

Modified: stable/7/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 13:08:24 2009	(r190038)
+++ stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 13:09:53 2009	(r190039)
@@ -379,6 +379,8 @@ cpu_mp_bootstrap(struct pcpu *pc)
 	volatile struct cpu_start_args *csa;
 
 	csa = &cpu_start_args;
+	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
+		cheetah_init();
 	pmap_map_tsb();
 	/*
 	 * Flush all non-locked TLB entries possibly left over by the

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:11:02 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CD08210656C6;
	Thu, 19 Mar 2009 13:11:02 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B92168FC1C;
	Thu, 19 Mar 2009 13:11:02 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDB2EM062290;
	Thu, 19 Mar 2009 13:11:02 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDB2qB062288;
	Thu, 19 Mar 2009 13:11:02 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191311.n2JDB2qB062288@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 13:11:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190040 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:11:04 -0000

Author: marius
Date: Thu Mar 19 13:11:02 2009
New Revision: 190040
URL: http://svn.freebsd.org/changeset/base/190040

Log:
  MFC: r182769

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/mp_machdep.c

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:09:53 2009	(r190039)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:11:02 2009	(r190040)
@@ -374,6 +374,7 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	}
 
 	cache_init(pc);
+	cache_enable();
 	uma_set_align(pc->pc_cache.dc_linesize - 1);
 
 	cpu_block_copy = bcopy;

Modified: stable/7/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 13:09:53 2009	(r190039)
+++ stable/7/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 13:11:02 2009	(r190040)
@@ -381,6 +381,7 @@ cpu_mp_bootstrap(struct pcpu *pc)
 	csa = &cpu_start_args;
 	if (cpu_impl >= CPU_IMPL_ULTRASPARCIII)
 		cheetah_init();
+	cache_enable();
 	pmap_map_tsb();
 	/*
 	 * Flush all non-locked TLB entries possibly left over by the

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:17:19 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A3E9B106567E;
	Thu, 19 Mar 2009 13:17:19 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 877D88FC26;
	Thu, 19 Mar 2009 13:17:19 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDHJvB062520;
	Thu, 19 Mar 2009 13:17:19 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDHJvv062517;
	Thu, 19 Mar 2009 13:17:19 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191317.n2JDHJvv062517@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 13:17:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190041 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:17:23 -0000

Author: marius
Date: Thu Mar 19 13:17:19 2009
New Revision: 190041
URL: http://svn.freebsd.org/changeset/base/190041

Log:
  MFC: r182773
  
  Use the PROM provided SUNW,set-trap-table to take over the trap
  table. This is required in order to set obp-control-relinquished
  within the PROM, allowing to safely read the OFW translations node.
  Without this, f.e. a `ofwdump -ap` triggers a fatal reset error or
  worse things on machines based on USIII and beyond.
  In theory this should allow to remove touching %tba in cpu_setregs(),
  in practice we seem to currently face a chicken and egg problem when
  doing so however.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/trap.h
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/trap.c

Modified: stable/7/sys/sparc64/include/trap.h
==============================================================================
--- stable/7/sys/sparc64/include/trap.h	Thu Mar 19 13:11:02 2009	(r190040)
+++ stable/7/sys/sparc64/include/trap.h	Thu Mar 19 13:17:19 2009	(r190041)
@@ -90,6 +90,7 @@
 #define	T_KERNEL			64
 
 #ifndef LOCORE
+void sun4u_set_traptable(void *tba_addr);
 extern const char *trap_msg[];
 #endif
 

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:11:02 2009	(r190040)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 13:17:19 2009	(r190041)
@@ -437,6 +437,16 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 	cpu_setregs(pc);
 
 	/*
+	 * Take over the trap table via the PROM.  Using the PROM for this
+	 * is necessary in order to set obp-control-relinquished to true
+	 * within the PROM so obtaining /virtual-memory/translations doesn't
+	 * trigger a fatal reset error or worse things further down the road.
+	 * XXX it should be possible to use this soley instead of writing
+	 * %tba in cpu_setregs().  Doing so causes a hang however.
+	 */
+	sun4u_set_traptable(tl0_base);
+
+	/*
 	 * It's now safe to use the real DELAY().
 	 */
 	delay_func = delay_tick;

Modified: stable/7/sys/sparc64/sparc64/trap.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/trap.c	Thu Mar 19 13:11:02 2009	(r190040)
+++ stable/7/sys/sparc64/sparc64/trap.c	Thu Mar 19 13:17:19 2009	(r190041)
@@ -70,6 +70,8 @@ __FBSDID("$FreeBSD$");
 #endif
 #include 
 
+#include 
+
 #include 
 #include 
 #include 
@@ -227,6 +229,28 @@ int debugger_on_signal = 0;
 SYSCTL_INT(_debug, OID_AUTO, debugger_on_signal, CTLFLAG_RW,
     &debugger_on_signal, 0, "");
 
+/*
+ * SUNW,set-trap-table allows to take over %tba from the PROM, which
+ * will turn off interrupts and handle outstanding ones while doing so,
+ * in a safe way.
+ */
+void
+sun4u_set_traptable(void *tba_addr)
+{
+	static struct {
+		cell_t name;
+		cell_t nargs;
+		cell_t nreturns;
+		cell_t tba_addr;
+	} args = {
+		(cell_t)"SUNW,set-trap-table",
+		2,
+	};
+
+	args.tba_addr = (cell_t)tba_addr;
+	openfirmware(&args);
+}
+
 void
 trap(struct trapframe *tf)
 {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:18:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A997E106566B;
	Thu, 19 Mar 2009 13:18:28 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7E99C8FC17;
	Thu, 19 Mar 2009 13:18:28 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDIS9r062599;
	Thu, 19 Mar 2009 13:18:28 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDISH8062598;
	Thu, 19 Mar 2009 13:18:28 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200903191318.n2JDISH8062598@svn.freebsd.org>
From: Christian Brueffer 
Date: Thu, 19 Mar 2009 13:18:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190042 - stable/7/usr.sbin/sysinstall
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:18:29 -0000

Author: brueffer
Date: Thu Mar 19 13:18:28 2009
New Revision: 190042
URL: http://svn.freebsd.org/changeset/base/190042

Log:
  MFC: r186965
  
  Recognize et(4), igb(4), ixgbe(4) and nxge(4) devices.
  Correct some minor whitespace in the ae(4) entry.
  
  The iwn(4) entry was left out as the driver has not been merged.

Modified:
  stable/7/usr.sbin/sysinstall/   (props changed)
  stable/7/usr.sbin/sysinstall/devices.c

Modified: stable/7/usr.sbin/sysinstall/devices.c
==============================================================================
--- stable/7/usr.sbin/sysinstall/devices.c	Thu Mar 19 13:17:19 2009	(r190041)
+++ stable/7/usr.sbin/sysinstall/devices.c	Thu Mar 19 13:18:28 2009	(r190042)
@@ -93,7 +93,7 @@ static struct _devname {
     DISK("mfid%d",	"LSI MegaRAID SAS array",		4),
     FLOPPY("fd%d",	"floppy drive unit A",			4),
     SERIAL("cuad%d",	"%s on device %s (COM%d)",		16),
-    NETWORK("ae",	"Attansic/Atheros L2 FastEthernet"),
+    NETWORK("ae",	"Attansic/Atheros L2 Fast Ethernet"),
     NETWORK("age",	"Attansic/Atheros L1 Gigabit Ethernet"),
     NETWORK("ale",	"Atheros AR8121/AR8113/AR8114 PCIe Ethernet"),
     NETWORK("an",	"Aironet 4500/4800 802.11 wireless adapter"),
@@ -115,12 +115,15 @@ static struct _devname {
     NETWORK("ed",	"Novell NE1000/2000; 3C503; NE2000-compatible PCMCIA"),
     NETWORK("ep",	"3Com 3C509 Ethernet card/3C589 PCMCIA"),
     NETWORK("em",	"Intel(R) PRO/1000 Ethernet card"),
+    NETWORK("et",	"Agere ET1310 based PCI Express Gigabit Ethernet card"),
     NETWORK("ex",	"Intel EtherExpress Pro/10 Ethernet card"),
     NETWORK("fe",	"Fujitsu MB86960A/MB86965A Ethernet card"),
     NETWORK("gem",	"Apple GMAC or Sun ERI/GEM Ethernet adapter"),
     NETWORK("hme",	"Sun HME (Happy Meal Ethernet) Ethernet adapter"),
     NETWORK("ie",	"AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210"),
+    NETWORK("igb",	"Intel(R) PRO/1000 PCI Express Gigabit Ethernet card"),
     NETWORK("ixgb",	"Intel(R) PRO/10Gb Ethernet card"),
+    NETWORK("ixgbe",	"Intel(R) PRO/10Gb Ethernet card"),
     NETWORK("jme",	"JMicron JMC250 Gigabit/JMC260 Fast Ethernet"),
     NETWORK("kue",	"Kawasaki LSI USB Ethernet adapter"),
     NETWORK("le",	"AMD Am7900 LANCE or Am79C9xx PCnet Ethernet adapter"),
@@ -130,6 +133,7 @@ static struct _devname {
     NETWORK("nfe",	"NVIDIA nForce MCP Ethernet"),
     NETWORK("nge",	"NatSemi PCI Gigabit Ethernet card"),
     NETWORK("nve",	"NVIDIA nForce MCP Ethernet"),
+    NETWORK("nxge",	"Neterion Xframe 10GbE Server/Storage adapter"),
     NETWORK("pcn",	"AMD Am79c79x PCI Ethernet card"),
     NETWORK("ray",	"Raytheon Raylink 802.11 wireless adapter"),
     NETWORK("re",	"RealTek 8139C+/8169/8169S/8110S PCI Ethernet card"),

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:24:48 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D16D81065670;
	Thu, 19 Mar 2009 13:24:48 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BE8F08FC13;
	Thu, 19 Mar 2009 13:24:48 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDOmnj062787;
	Thu, 19 Mar 2009 13:24:48 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDOmIU062786;
	Thu, 19 Mar 2009 13:24:48 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191324.n2JDOmIU062786@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 13:24:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190043 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:24:49 -0000

Author: marius
Date: Thu Mar 19 13:24:48 2009
New Revision: 190043
URL: http://svn.freebsd.org/changeset/base/190043

Log:
  MFC: r182774
  
  When determining whether we trapped while in the PROM don't only
  check for addresses below the PROM range but also those above.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/exception.S

Modified: stable/7/sys/sparc64/sparc64/exception.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 13:18:28 2009	(r190042)
+++ stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 13:24:48 2009	(r190043)
@@ -2738,6 +2738,10 @@ ENTRY(tl1_ret)
 	cmp	%l1, %l5
 	bl,a,pt	%xcc, 1f
 	 nop
+	set	VM_MAX_PROM_ADDRESS, %l5
+	cmp	%l1, %l5
+	bg,a,pt	%xcc, 1f
+	 nop
 
 	wrpr	%g0, PSTATE_NORMAL, %pstate
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:48:43 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 84CA4106564A;
	Thu, 19 Mar 2009 13:48:43 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 72A9C8FC20;
	Thu, 19 Mar 2009 13:48:43 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDmhmP063386;
	Thu, 19 Mar 2009 13:48:43 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDmhBE063385;
	Thu, 19 Mar 2009 13:48:43 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191348.n2JDmhBE063385@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 13:48:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190045 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:48:44 -0000

Author: avg
Date: Thu Mar 19 13:48:43 2009
New Revision: 190045
URL: http://svn.freebsd.org/changeset/base/190045

Log:
  MFC 188815, 188815: fix incorrect error return when reading a large dir
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 13:38:20 2009	(r190044)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 13:48:43 2009	(r190045)
@@ -818,17 +818,16 @@ udf_readdir(struct vop_readdir_args *a)
 			error = udf_uiodir(&uiodir, dir.d_reclen, uio,
 			    ds->this_off);
 		}
-		if (error) {
-			printf("uiomove returned %d\n", error);
+		if (error)
 			break;
-		}
-
 	}
 
 	/* tell the calling layer whether we need to be called again */
 	*a->a_eofflag = uiodir.eofflag;
 	uio->uio_offset = ds->offset + ds->off;
 
+	if (error < 0)
+		error = 0;
 	if (!error)
 		error = ds->error;
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 13:53:42 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CDC6D1065691;
	Thu, 19 Mar 2009 13:53:42 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A102F8FC0C;
	Thu, 19 Mar 2009 13:53:42 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JDrgSM063514;
	Thu, 19 Mar 2009 13:53:42 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JDrggG063511;
	Thu, 19 Mar 2009 13:53:42 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903191353.n2JDrggG063511@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Thu, 19 Mar 2009 13:53:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190046 - in head/sys/boot/pc98: libpc98 loader
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 13:53:43 -0000

Author: nyan
Date: Thu Mar 19 13:53:42 2009
New Revision: 190046
URL: http://svn.freebsd.org/changeset/base/190046

Log:
  Reduce diffs against i386.

Modified:
  head/sys/boot/pc98/libpc98/Makefile
  head/sys/boot/pc98/loader/Makefile
  head/sys/boot/pc98/loader/main.c

Modified: head/sys/boot/pc98/libpc98/Makefile
==============================================================================
--- head/sys/boot/pc98/libpc98/Makefile	Thu Mar 19 13:48:43 2009	(r190045)
+++ head/sys/boot/pc98/libpc98/Makefile	Thu Mar 19 13:53:42 2009	(r190046)
@@ -5,8 +5,9 @@ INTERNALLIB=
 
 .PATH:	${.CURDIR}/../../i386/libi386
 
-SRCS=	bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c biossmap.c \
-	bootinfo.c bootinfo32.c comconsole.c devicename.c elf32_freebsd.c \
+SRCS=	bioscd.c biosdisk.c biosmem.c biospnp.c \
+	biospci.c biossmap.c bootinfo.c bootinfo32.c \
+	comconsole.c devicename.c elf32_freebsd.c \
 	i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
 	time.c vidconsole.c
 

Modified: head/sys/boot/pc98/loader/Makefile
==============================================================================
--- head/sys/boot/pc98/loader/Makefile	Thu Mar 19 13:48:43 2009	(r190045)
+++ head/sys/boot/pc98/loader/Makefile	Thu Mar 19 13:53:42 2009	(r190046)
@@ -18,6 +18,7 @@ CFLAGS+=	-DLOADER_TFTP_SUPPORT
 CFLAGS+=	-DLOADER_NFS_SUPPORT
 .endif
 
+# Include bcache code.
 HAVE_BCACHE=	yes
 
 # Enable PnP and ISA-PnP code.

Modified: head/sys/boot/pc98/loader/main.c
==============================================================================
--- head/sys/boot/pc98/loader/main.c	Thu Mar 19 13:48:43 2009	(r190045)
+++ head/sys/boot/pc98/loader/main.c	Thu Mar 19 13:53:42 2009	(r190046)
@@ -145,6 +145,14 @@ main(void)
 	    bc_add(initial_bootdev);
     }
 
+    archsw.arch_autoload = i386_autoload;
+    archsw.arch_getdev = i386_getdev;
+    archsw.arch_copyin = i386_copyin;
+    archsw.arch_copyout = i386_copyout;
+    archsw.arch_readin = i386_readin;
+    archsw.arch_isainb = isa_inb;
+    archsw.arch_isaoutb = isa_outb;
+
     /*
      * March through the device switch probing for things.
      */
@@ -163,14 +171,6 @@ main(void)
 
     extract_currdev();				/* set $currdev and $loaddev */
     setenv("LINES", "24", 1);			/* optional */
-    
-    archsw.arch_autoload = i386_autoload;
-    archsw.arch_getdev = i386_getdev;
-    archsw.arch_copyin = i386_copyin;
-    archsw.arch_copyout = i386_copyout;
-    archsw.arch_readin = i386_readin;
-    archsw.arch_isainb = isa_inb;
-    archsw.arch_isaoutb = isa_outb;
 
     interact();			/* doesn't return */
 
@@ -188,7 +188,8 @@ static void
 extract_currdev(void)
 {
     struct i386_devdesc	new_currdev;
-    int			major, biosdev = -1;
+    int			major;
+    int			biosdev = -1;
 
     /* Assume we are booting from a BIOS disk by default */
     new_currdev.d_dev = &biosdisk;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:00:24 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 408F51065673;
	Thu, 19 Mar 2009 14:00:24 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1389E8FC1A;
	Thu, 19 Mar 2009 14:00:24 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JE0NcD063737;
	Thu, 19 Mar 2009 14:00:23 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JE0Nti063736;
	Thu, 19 Mar 2009 14:00:23 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191400.n2JE0Nti063736@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:00:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190047 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:00:25 -0000

Author: avg
Date: Thu Mar 19 14:00:23 2009
New Revision: 190047
URL: http://svn.freebsd.org/changeset/base/190047

Log:
  MFC 189067,189363: udf_strategy: tiny optimization of logic, calculations; extra diagnostics
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 13:53:42 2009	(r190046)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:00:23 2009	(r190047)
@@ -404,7 +404,7 @@ udf_print(struct vop_print_args *ap)
 
 #define lblkno(udfmp, loc)	((loc) >> (udfmp)->bshift)
 #define blkoff(udfmp, loc)	((loc) & (udfmp)->bmask)
-#define lblktosize(imp, blk)	((blk) << (udfmp)->bshift)
+#define lblktosize(udfmp, blk)	((blk) << (udfmp)->bshift)
 
 static int
 udf_read(struct vop_read_args *ap)
@@ -968,34 +968,27 @@ udf_strategy(struct vop_strategy_args *a
 	struct buf *bp;
 	struct vnode *vp;
 	struct udf_node *node;
-	int maxsize;
-	daddr_t sector;
 	struct bufobj *bo;
-	int multiplier;
+	off_t offset;
+	uint32_t maxsize;
+	daddr_t sector;
+	int error;
 
 	bp = a->a_bp;
 	vp = a->a_vp;
 	node = VTON(vp);
 
 	if (bp->b_blkno == bp->b_lblkno) {
-		/*
-		 * Files that are embedded in the fentry don't translate well
-		 * to a block number.  Reject.
-		 */
-		if (udf_bmap_internal(node, bp->b_lblkno * node->udfmp->bsize,
-		    §or, &maxsize)) {
+		offset = lblktosize(node->udfmp, bp->b_lblkno);
+		error = udf_bmap_internal(node, offset, §or, &maxsize);
+		if (error) {
 			clrbuf(bp);
 			bp->b_blkno = -1;
+			bufdone(bp);
+			return (0);
 		}
-
 		/* bmap gives sector numbers, bio works with device blocks */
-		multiplier = node->udfmp->bsize / DEV_BSIZE;
-		bp->b_blkno = sector * multiplier;
-
-	}
-	if ((long)bp->b_blkno == -1) {
-		bufdone(bp);
-		return (0);
+		bp->b_blkno = sector << (node->udfmp->bshift - DEV_BSHIFT);
 	}
 	bo = node->udfmp->im_bo;
 	bp->b_iooffset = dbtob(bp->b_blkno);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:05:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4BFE61065678;
	Thu, 19 Mar 2009 14:05:00 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 378548FC15;
	Thu, 19 Mar 2009 14:05:00 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JE50FV063870;
	Thu, 19 Mar 2009 14:05:00 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JE50jL063869;
	Thu, 19 Mar 2009 14:05:00 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191405.n2JE50jL063869@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:05:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190048 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:05:01 -0000

Author: avg
Date: Thu Mar 19 14:04:59 2009
New Revision: 190048
URL: http://svn.freebsd.org/changeset/base/190048

Log:
  MFC 189068: udf_read: correctly read data from files with data embedded into fentry
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:00:23 2009	(r190047)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:04:59 2009	(r190048)
@@ -406,6 +406,14 @@ udf_print(struct vop_print_args *ap)
 #define blkoff(udfmp, loc)	((loc) & (udfmp)->bmask)
 #define lblktosize(udfmp, blk)	((blk) << (udfmp)->bshift)
 
+static inline int
+is_data_in_fentry(const struct udf_node *node)
+{
+	const struct file_entry *fentry = node->fentry;
+
+	return ((le16toh(fentry->icbtag.flags) & 0x7) == 3);
+}
+
 static int
 udf_read(struct vop_read_args *ap)
 {
@@ -413,7 +421,9 @@ udf_read(struct vop_read_args *ap)
 	struct uio *uio = ap->a_uio;
 	struct udf_node *node = VTON(vp);
 	struct udf_mnt *udfmp;
+	struct file_entry *fentry;
 	struct buf *bp;
+	uint8_t *data;
 	daddr_t lbn, rablock;
 	off_t diff, fsize;
 	int error = 0;
@@ -423,6 +433,22 @@ udf_read(struct vop_read_args *ap)
 		return (0);
 	if (uio->uio_offset < 0)
 		return (EINVAL);
+
+	if (is_data_in_fentry(node)) {
+		fentry = node->fentry;
+		data = &fentry->data[le32toh(fentry->l_ea)];
+		fsize = le32toh(fentry->l_ad);
+
+		n = uio->uio_resid;
+		diff = fsize - uio->uio_offset;
+		if (diff <= 0)
+			return (0);
+		if (diff < n)
+			n = diff;
+		error = uiomove(data + uio->uio_offset, (int)n, uio);
+		return (error);
+	}
+
 	fsize = le64toh(node->fentry->inf_len);
 	udfmp = node->udfmp;
 	do {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:07:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B4023106564A;
	Thu, 19 Mar 2009 14:07:27 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A1A628FC0C;
	Thu, 19 Mar 2009 14:07:27 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JE7R2V063975;
	Thu, 19 Mar 2009 14:07:27 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JE7RvG063974;
	Thu, 19 Mar 2009 14:07:27 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191407.n2JE7RvG063974@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:07:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190049 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:07:28 -0000

Author: avg
Date: Thu Mar 19 14:07:27 2009
New Revision: 190049
URL: http://svn.freebsd.org/changeset/base/190049

Log:
  MFC 189069: udf_map: return proper error code instead of leaking an internal one
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:04:59 2009	(r190048)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:07:27 2009	(r190049)
@@ -1039,8 +1039,19 @@ udf_bmap(struct vop_bmap_args *a)
 	if (a->a_runb)
 		*a->a_runb = 0;
 
-	error = udf_bmap_internal(node, a->a_bn * node->udfmp->bsize, &lsector,
-	    &max_size);
+	/*
+	 * UDF_INVALID_BMAP means data embedded into fentry, this is an internal
+	 * error that should not be propagated to calling code.
+	 * Most obvious mapping for this error is EOPNOTSUPP as we can not truly
+	 * translate block numbers in this case.
+	 * Incidentally, this return code will make vnode pager to use VOP_READ
+	 * to get data for mmap-ed pages and udf_read knows how to do the right
+	 * thing for this kind of files.
+	 */
+	error = udf_bmap_internal(node, a->a_bn << node->udfmp->bshift,
+	    &lsector, &max_size);
+	if (error == UDF_INVALID_BMAP)
+		return (EOPNOTSUPP);
 	if (error)
 		return (error);
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:09:21 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 46E04106564A;
	Thu, 19 Mar 2009 14:09:21 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1A5368FC1E;
	Thu, 19 Mar 2009 14:09:21 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JE9Lvf064066;
	Thu, 19 Mar 2009 14:09:21 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JE9KuW064064;
	Thu, 19 Mar 2009 14:09:20 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191409.n2JE9KuW064064@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:09:20 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190050 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:09:22 -0000

Author: avg
Date: Thu Mar 19 14:09:20 2009
New Revision: 190050
URL: http://svn.freebsd.org/changeset/base/190050

Log:
  MFC 189070: udf: add read-ahead support modeled after cd9660
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vfsops.c
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vfsops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vfsops.c	Thu Mar 19 14:07:27 2009	(r190049)
+++ stable/7/sys/fs/udf/udf_vfsops.c	Thu Mar 19 14:09:20 2009	(r190050)
@@ -334,6 +334,11 @@ udf_mountfs(struct vnode *devvp, struct 
 
 	bo = &devvp->v_bufobj;
 
+	if (devvp->v_rdev->si_iosize_max != 0)
+		mp->mnt_iosize_max = devvp->v_rdev->si_iosize_max;
+	if (mp->mnt_iosize_max > MAXPHYS)
+		mp->mnt_iosize_max = MAXPHYS;
+
 	/* XXX: should be M_WAITOK */
 	MALLOC(udfmp, struct udf_mnt *, sizeof(struct udf_mnt), M_UDFMOUNT,
 	    M_NOWAIT | M_ZERO);

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:07:27 2009	(r190049)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:09:20 2009	(r190050)
@@ -1028,6 +1028,7 @@ udf_bmap(struct vop_bmap_args *a)
 	struct udf_node *node;
 	uint32_t max_size;
 	daddr_t lsector;
+	int nblk;
 	int error;
 
 	node = VTON(a->a_vp);
@@ -1058,9 +1059,23 @@ udf_bmap(struct vop_bmap_args *a)
 	/* Translate logical to physical sector number */
 	*a->a_bnp = lsector << (node->udfmp->bshift - DEV_BSHIFT);
 
-	/* Punt on read-ahead for now */
-	if (a->a_runp)
-		*a->a_runp = 0;
+	/*
+	 * Determine maximum number of readahead blocks following the
+	 * requested block.
+	 */
+	if (a->a_runp) {
+		nblk = (max_size >> node->udfmp->bshift) - 1;
+		if (nblk <= 0)
+			*a->a_runp = 0;
+		else if (nblk >= (MAXBSIZE >> node->udfmp->bshift))
+			*a->a_runp = (MAXBSIZE >> node->udfmp->bshift) - 1;
+		else
+			*a->a_runp = nblk;
+	}
+
+	if (a->a_runb) {
+		*a->a_runb = 0;
+	}
 
 	return (0);
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:11:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 431BB1065673;
	Thu, 19 Mar 2009 14:11:04 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2DBC08FC21;
	Thu, 19 Mar 2009 14:11:04 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEB4Qq064242;
	Thu, 19 Mar 2009 14:11:04 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEB3RD064233;
	Thu, 19 Mar 2009 14:11:03 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191411.n2JEB3RD064233@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 14:11:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190051 - in stable/7/sys: . boot/sparc64/loader
	contrib/pf dev/ath/ath_hal dev/cxgb sparc64/include
	sparc64/sparc64 sun4v/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:11:05 -0000

Author: marius
Date: Thu Mar 19 14:11:03 2009
New Revision: 190051
URL: http://svn.freebsd.org/changeset/base/190051

Log:
  MFC: r182877, r188455, r188477
  
  USIII and beyond CPUs have stricter requirements when it comes
  to synchronization needed after stores to internal ASIs in order
  to make side-effects visible. This mainly requires the MEMBAR #Sync
  after such stores to be replaced with a FLUSH. We use KERNBASE in
  the kernel and the newly introduced PROMBASE for the loader as the
  addresses to FLUSH as these are guaranteed to not trap. Actually,
  the USII synchronization rules also already require a FLUSH in
  pretty much all of the cases changed.
  We're also hitting an additional USIII synchronization rule which
  requires stores to AA_IMMU_SFSR to be immediately followed by a DONE,
  FLUSH or RETRY. Doing so triggers a RED state exception though so
  leave the MEMBAR #Sync. Linux apparently also has gotten away with
  doing the same for quite some time now, apart from the fact that
  it's not clear to me why we need to clear the valid bit from the
  SFSR in the first place.
  
  Reviewed by:	nwhitehorn

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/sparc64/loader/main.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/vmparam.h
  stable/7/sys/sparc64/sparc64/exception.S
  stable/7/sys/sparc64/sparc64/mp_exception.S
  stable/7/sys/sparc64/sparc64/pmap.c
  stable/7/sys/sparc64/sparc64/support.S
  stable/7/sys/sparc64/sparc64/swtch.S
  stable/7/sys/sparc64/sparc64/tlb.c
  stable/7/sys/sun4v/include/vmparam.h

Modified: stable/7/sys/boot/sparc64/loader/main.c
==============================================================================
--- stable/7/sys/boot/sparc64/loader/main.c	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/boot/sparc64/loader/main.c	Thu Mar 19 14:11:03 2009	(r190051)
@@ -37,6 +37,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 #include "bootstrap.h"
 #include "libofw.h"
@@ -356,7 +357,7 @@ __elfN(exec)(struct preloaded_file *fp)
 		return (error);
 
 	printf("jumping to kernel entry at %#lx.\n", e->e_entry);
-#if LOADER_DEBUG
+#ifdef LOADER_DEBUG
 	pmap_print_tlb_sun4u();
 #endif
 
@@ -461,7 +462,7 @@ itlb_enter_sun4u(u_long vpn, u_long data
 	stxa(AA_IMMU_TAR, ASI_IMMU,
 	     TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
 	stxa(0, ASI_ITLB_DATA_IN_REG, data);
-	membar(Sync);
+	flush(PROMBASE);
 	wrpr(pstate, reg, 0);
 }
 
@@ -726,7 +727,7 @@ exit(int code)
 }
 
 #ifdef LOADER_DEBUG
-static const char *page_sizes[] = {
+static const char *const page_sizes[] = {
 	"  8k", " 64k", "512k", "  4m"
 };
 

Modified: stable/7/sys/sparc64/include/vmparam.h
==============================================================================
--- stable/7/sys/sparc64/include/vmparam.h	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/include/vmparam.h	Thu Mar 19 14:11:03 2009	(r190051)
@@ -40,7 +40,6 @@
  * $FreeBSD$
  */
 
-
 #ifndef	_MACHINE_VMPARAM_H_
 #define	_MACHINE_VMPARAM_H_
 
@@ -203,6 +202,7 @@
 #define	VM_MAXUSER_ADDRESS	(VM_MAX_USER_ADDRESS)
 
 #define	KERNBASE		(VM_MIN_KERNEL_ADDRESS)
+#define	PROMBASE		(VM_MIN_PROM_ADDRESS)
 #define	USRSTACK		(VM_MAX_USER_ADDRESS)
 
 /*

Modified: stable/7/sys/sparc64/sparc64/exception.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/exception.S	Thu Mar 19 14:11:03 2009	(r190051)
@@ -498,6 +498,11 @@ END(rsf_fatal)
 	wr	%g0, ASI_IMMU, %asi
 	rdpr	%tpc, %g3
 	ldxa	[%g0 + AA_IMMU_SFSR] %asi, %g4
+	/*
+	 * XXX in theory, a store to AA_IMMU_SFSR must be immediately
+	 * followed by a DONE, FLUSH or RETRY for USIII.  In practice,
+	 * this triggers a RED state exception though.
+	 */
 	stxa	%g0, [%g0 + AA_IMMU_SFSR] %asi
 	membar	#Sync
 	ba	%xcc, tl0_sfsr_trap
@@ -716,8 +721,9 @@ ENTRY(tl0_immu_miss_trap)
 	 * Put back the contents of the tag access register, in case we
 	 * faulted.
 	 */
+	sethi	%hi(KERNBASE), %g2
 	stxa	%g1, [%g0 + AA_IMMU_TAR] %asi
-	membar	#Sync
+	flush	%g2
 
 	/*
 	 * Switch to alternate globals.
@@ -1213,6 +1219,11 @@ END(tl0_fp_restore)
 	wr	%g0, ASI_IMMU, %asi
 	rdpr	%tpc, %g3
 	ldxa	[%g0 + AA_IMMU_SFSR] %asi, %g4
+	/*
+	 * XXX in theory, a store to AA_IMMU_SFSR must be immediately
+	 * followed by a DONE, FLUSH or RETRY for USIII.  In practice,
+	 * this triggers a RED state exception though.
+	 */
 	stxa	%g0, [%g0 + AA_IMMU_SFSR] %asi
 	membar	#Sync
 	ba	%xcc, tl1_insn_exceptn_trap

Modified: stable/7/sys/sparc64/sparc64/mp_exception.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_exception.S	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/mp_exception.S	Thu Mar 19 14:11:03 2009	(r190051)
@@ -199,9 +199,10 @@ ENTRY(tl_ipi_tlb_page_demap)
 	ldx	[%g5 + ITA_VA], %g2
 	or	%g2, %g3, %g2
 
+	sethi	%hi(KERNBASE), %g3
 	stxa	%g0, [%g2] ASI_DMMU_DEMAP
 	stxa	%g0, [%g2] ASI_IMMU_DEMAP
-	membar	#Sync
+	flush	%g3
 
 	IPI_DONE(%g5, %g1, %g2, %g3)
 	retry
@@ -234,13 +235,13 @@ ENTRY(tl_ipi_tlb_range_demap)
 	ldx	[%g5 + ITA_START], %g1
 	ldx	[%g5 + ITA_END], %g2
 
-	set	PAGE_SIZE, %g6
-
 1:	or	%g1, %g3, %g4
+	sethi	%hi(KERNBASE), %g6
 	stxa	%g0, [%g4] ASI_DMMU_DEMAP
 	stxa	%g0, [%g4] ASI_IMMU_DEMAP
-	membar	#Sync
+	flush	%g6
 
+	set	PAGE_SIZE, %g6
 	add	%g1, %g6, %g1
 	cmp	%g1, %g2
 	blt,a,pt %xcc, 1b
@@ -265,9 +266,10 @@ ENTRY(tl_ipi_tlb_context_demap)
 #endif
 
 	mov	TLB_DEMAP_PRIMARY | TLB_DEMAP_CONTEXT, %g1
+	sethi	%hi(KERNBASE), %g3
 	stxa	%g0, [%g1] ASI_DMMU_DEMAP
 	stxa	%g0, [%g1] ASI_IMMU_DEMAP
-	membar	#Sync
+	flush	%g3
 
 	IPI_DONE(%g5, %g1, %g2, %g3)
 	retry

Modified: stable/7/sys/sparc64/sparc64/pmap.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 14:11:03 2009	(r190051)
@@ -556,7 +556,7 @@ pmap_map_tsb(void)
 	 * FP block operations in the kernel).
 	 */
 	stxa(AA_DMMU_SCXR, ASI_DMMU, TLB_CTX_KERNEL);
-	membar(Sync);
+	flush(KERNBASE);
 
 	intr_restore(s);
 }
@@ -1961,7 +1961,7 @@ pmap_activate(struct thread *td)
 	stxa(AA_DMMU_TSB, ASI_DMMU, pm->pm_tsb);
 	stxa(AA_IMMU_TSB, ASI_IMMU, pm->pm_tsb);
 	stxa(AA_DMMU_PCXR, ASI_DMMU, context);
-	membar(Sync);
+	flush(KERNBASE);
 
 	mtx_unlock_spin(&sched_lock);
 }

Modified: stable/7/sys/sparc64/sparc64/support.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 14:11:03 2009	(r190051)
@@ -780,8 +780,9 @@ ENTRY(openfirmware_exit)
 	sub	%l0, SPOFF, %fp			! setup a stack in a locked page
 	sub	%l0, SPOFF + CCFSZ, %sp
 	mov	AA_DMMU_PCXR, %l3		! force primary DMMU context 0
+	sethi	%hi(KERNBASE), %l5
 	stxa	%g0, [%l3] ASI_DMMU
-	membar	#Sync
+	flush	%l5
 	wrpr	%g0, 0, %tl			! force trap level 0
 	call	%l6
 	 mov	%i0, %o0

Modified: stable/7/sys/sparc64/sparc64/swtch.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/swtch.S	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/swtch.S	Thu Mar 19 14:11:03 2009	(r190051)
@@ -237,8 +237,9 @@ ENTRY(cpu_switch)
 	mov	AA_IMMU_TSB, %i5
 	stxa	%i4, [%i5] ASI_IMMU
 	mov	AA_DMMU_PCXR, %i5
+	sethi	%hi(KERNBASE), %i4
 	stxa	%i3, [%i5] ASI_DMMU
-	membar	#Sync
+	flush	%i4
 
 	/*
 	 * Done, return and load the new process's window from the stack.

Modified: stable/7/sys/sparc64/sparc64/tlb.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/tlb.c	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sparc64/sparc64/tlb.c	Thu Mar 19 14:11:03 2009	(r190051)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 
 PMAP_STATS_VAR(tlb_ncontext_demap);
 PMAP_STATS_VAR(tlb_npage_demap);
@@ -85,7 +86,7 @@ tlb_context_demap(struct pmap *pm)
 		s = intr_disable();
 		stxa(TLB_DEMAP_PRIMARY | TLB_DEMAP_CONTEXT, ASI_DMMU_DEMAP, 0);
 		stxa(TLB_DEMAP_PRIMARY | TLB_DEMAP_CONTEXT, ASI_IMMU_DEMAP, 0);
-		membar(Sync);
+		flush(KERNBASE);
 		intr_restore(s);
 	}
 	ipi_wait(cookie);
@@ -111,7 +112,7 @@ tlb_page_demap(struct pmap *pm, vm_offse
 		s = intr_disable();
 		stxa(TLB_DEMAP_VA(va) | flags, ASI_DMMU_DEMAP, 0);
 		stxa(TLB_DEMAP_VA(va) | flags, ASI_IMMU_DEMAP, 0);
-		membar(Sync);
+		flush(KERNBASE);
 		intr_restore(s);
 	}
 	ipi_wait(cookie);
@@ -139,7 +140,7 @@ tlb_range_demap(struct pmap *pm, vm_offs
 		for (va = start; va < end; va += PAGE_SIZE) {
 			stxa(TLB_DEMAP_VA(va) | flags, ASI_DMMU_DEMAP, 0);
 			stxa(TLB_DEMAP_VA(va) | flags, ASI_IMMU_DEMAP, 0);
-			membar(Sync);
+			flush(KERNBASE);
 		}
 		intr_restore(s);
 	}

Modified: stable/7/sys/sun4v/include/vmparam.h
==============================================================================
--- stable/7/sys/sun4v/include/vmparam.h	Thu Mar 19 14:09:20 2009	(r190050)
+++ stable/7/sys/sun4v/include/vmparam.h	Thu Mar 19 14:11:03 2009	(r190051)
@@ -40,7 +40,6 @@
  * $FreeBSD$
  */
 
-
 #ifndef	_MACHINE_VMPARAM_H_
 #define	_MACHINE_VMPARAM_H_
 
@@ -203,6 +202,7 @@
 #define	VM_MAXUSER_ADDRESS	(VM_MAX_USER_ADDRESS)
 
 #define	KERNBASE		(VM_MIN_KERNEL_ADDRESS)
+#define	PROMBASE		(VM_MIN_PROM_ADDRESS)
 #define	USRSTACK		(VM_MAX_USER_ADDRESS)
 
 /*

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:12:08 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0B8ED106566B;
	Thu, 19 Mar 2009 14:12:08 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id ECF908FC14;
	Thu, 19 Mar 2009 14:12:07 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEC7Ei064323;
	Thu, 19 Mar 2009 14:12:07 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEC721064320;
	Thu, 19 Mar 2009 14:12:07 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191412.n2JEC721064320@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:12:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190052 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:12:09 -0000

Author: avg
Date: Thu Mar 19 14:12:07 2009
New Revision: 190052
URL: http://svn.freebsd.org/changeset/base/190052

Log:
  MFC 189082: udf_readatoffset: read through directory vnode, do not read > MAXBSIZE
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf.h
  stable/7/sys/fs/udf/udf_vfsops.c
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf.h
==============================================================================
--- stable/7/sys/fs/udf/udf.h	Thu Mar 19 14:11:03 2009	(r190051)
+++ stable/7/sys/fs/udf/udf.h	Thu Mar 19 14:12:07 2009	(r190052)
@@ -95,27 +95,12 @@ struct ifid {
 MALLOC_DECLARE(M_UDFFENTRY);
 
 static __inline int
-udf_readlblks(struct udf_mnt *udfmp, int sector, int size, struct buf **bp)
+udf_readdevblks(struct udf_mnt *udfmp, int sector, int size, struct buf **bp)
 {
 	return (RDSECTOR(udfmp->im_devvp, sector,
 			 (size + udfmp->bmask) & ~udfmp->bmask, bp));
 }
 
-static __inline int
-udf_readalblks(struct udf_mnt *udfmp, int lsector, int size, struct buf **bp)
-{
-	daddr_t rablock, lblk;
-	int rasize;
-
-	lblk = (lsector + udfmp->part_start) << (udfmp->bshift - DEV_BSHIFT);
-	rablock = (lblk + 1) << udfmp->bshift;
-	rasize = size;
-
-	return (breadn(udfmp->im_devvp, lblk,
-		       (size + udfmp->bmask) & ~udfmp->bmask,
-		       &rablock, &rasize, 1,  NOCRED, bp));
-}
-
 /*
  * Produce a suitable file number from an ICB.  The passed in ICB is expected
  * to be in little endian (meaning that it hasn't been swapped for big

Modified: stable/7/sys/fs/udf/udf_vfsops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vfsops.c	Thu Mar 19 14:11:03 2009	(r190051)
+++ stable/7/sys/fs/udf/udf_vfsops.c	Thu Mar 19 14:12:07 2009	(r190052)
@@ -476,7 +476,7 @@ udf_mountfs(struct vnode *devvp, struct 
 	 */
 	sector = le32toh(udfmp->root_icb.loc.lb_num) + udfmp->part_start;
 	size = le32toh(udfmp->root_icb.len);
-	if ((error = udf_readlblks(udfmp, sector, size, &bp)) != 0) {
+	if ((error = udf_readdevblks(udfmp, sector, size, &bp)) != 0) {
 		printf("Cannot read sector %d\n", sector);
 		goto bail;
 	}
@@ -795,7 +795,7 @@ udf_find_partmaps(struct udf_mnt *udfmp,
 		 * XXX If reading the first Sparing Table fails, should look
 		 * for another table.
 		 */
-		if ((error = udf_readlblks(udfmp, le32toh(pms->st_loc[0]),
+		if ((error = udf_readdevblks(udfmp, le32toh(pms->st_loc[0]),
 					   le32toh(pms->st_size), &bp)) != 0) {
 			if (bp != NULL)
 				brelse(bp);

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:11:03 2009	(r190051)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:12:07 2009	(r190052)
@@ -1282,16 +1282,20 @@ static int
 udf_readatoffset(struct udf_node *node, int *size, off_t offset,
     struct buf **bp, uint8_t **data)
 {
-	struct udf_mnt *udfmp;
-	struct file_entry *fentry = NULL;
+	struct udf_mnt *udfmp = node->udfmp;
+	struct vnode *vp = node->i_vnode;
+	struct file_entry *fentry;
 	struct buf *bp1;
 	uint32_t max_size;
 	daddr_t sector;
+	off_t off;
+	int adj_size;
 	int error;
 
-	udfmp = node->udfmp;
-
-	*bp = NULL;
+	/*
+	 * This call is made *not* only to detect UDF_INVALID_BMAP case,
+	 * max_size is used as an ad-hoc read-ahead hint for "normal" case.
+	 */
 	error = udf_bmap_internal(node, offset, §or, &max_size);
 	if (error == UDF_INVALID_BMAP) {
 		/*
@@ -1309,9 +1313,18 @@ udf_readatoffset(struct udf_node *node, 
 	/* Adjust the size so that it is within range */
 	if (*size == 0 || *size > max_size)
 		*size = max_size;
-	*size = min(*size, MAXBSIZE);
 
-	if ((error = udf_readlblks(udfmp, sector, *size + (offset & udfmp->bmask), bp))) {
+	/*
+	 * Because we will read starting at block boundary, we need to adjust
+	 * how much we need to read so that all promised data is in.
+	 * Also, we can't promise to read more than MAXBSIZE bytes starting
+	 * from block boundary, so adjust what we promise too.
+	 */
+	off = blkoff(udfmp, offset);
+	*size = min(*size, MAXBSIZE - off);
+	adj_size = (*size + off + udfmp->bmask) & ~udfmp->bmask;
+	*bp = NULL;
+	if ((error = bread(vp, lblkno(udfmp, offset), adj_size, NOCRED, bp))) {
 		printf("warning: udf_readlblks returned error %d\n", error);
 		/* note: *bp may be non-NULL */
 		return (error);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:13:19 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1F61110656C8;
	Thu, 19 Mar 2009 14:13:19 +0000 (UTC) (envelope-from dfr@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0D43C8FC2C;
	Thu, 19 Mar 2009 14:13:19 +0000 (UTC) (envelope-from dfr@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEDIbR064389;
	Thu, 19 Mar 2009 14:13:18 GMT (envelope-from dfr@svn.freebsd.org)
Received: (from dfr@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEDIFS064388;
	Thu, 19 Mar 2009 14:13:18 GMT (envelope-from dfr@svn.freebsd.org)
Message-Id: <200903191413.n2JEDIFS064388@svn.freebsd.org>
From: Doug Rabson 
Date: Thu, 19 Mar 2009 14:13:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190053 - head/sys/nfsserver
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:13:20 -0000

Author: dfr
Date: Thu Mar 19 14:13:18 2009
New Revision: 190053
URL: http://svn.freebsd.org/changeset/base/190053

Log:
  Fix an mbuf leak in the error path.
  
  Submitted by:	Rick Macklem 

Modified:
  head/sys/nfsserver/nfs_srvkrpc.c

Modified: head/sys/nfsserver/nfs_srvkrpc.c
==============================================================================
--- head/sys/nfsserver/nfs_srvkrpc.c	Thu Mar 19 14:12:07 2009	(r190052)
+++ head/sys/nfsserver/nfs_srvkrpc.c	Thu Mar 19 14:13:18 2009	(r190053)
@@ -397,6 +397,7 @@ nfssvc_program(struct svc_req *rqst, SVC
 #endif
 #endif
 			    inet_ntoa(sin->sin_addr), port);
+			m_freem(mreq);
 			svcerr_weakauth(rqst);
 			svc_freereq(rqst);
 			return;
@@ -405,6 +406,7 @@ nfssvc_program(struct svc_req *rqst, SVC
 
 	if (proc != nfsrv_null) {
 		if (!svc_getcred(rqst, &nd.nd_cr, &nd.nd_credflavor)) {
+			m_freem(mreq);
 			svcerr_weakauth(rqst);
 			svc_freereq(rqst);
 			return;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:14:21 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5E987106568A;
	Thu, 19 Mar 2009 14:14:21 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4B8C88FC14;
	Thu, 19 Mar 2009 14:14:21 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEELM3064454;
	Thu, 19 Mar 2009 14:14:21 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEEL09064453;
	Thu, 19 Mar 2009 14:14:21 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903191414.n2JEEL09064453@svn.freebsd.org>
From: Bruce M Simpson 
Date: Thu, 19 Mar 2009 14:14:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190054 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:14:22 -0000

Author: bms
Date: Thu Mar 19 14:14:21 2009
New Revision: 190054
URL: http://svn.freebsd.org/changeset/base/190054

Log:
  Cleanup: Nuke debug.mrtdebug, and replace it with KTR.

Modified:
  head/sys/netinet/ip_mroute.c

Modified: head/sys/netinet/ip_mroute.c
==============================================================================
--- head/sys/netinet/ip_mroute.c	Thu Mar 19 14:13:18 2009	(r190053)
+++ head/sys/netinet/ip_mroute.c	Thu Mar 19 14:14:21 2009	(r190054)
@@ -59,7 +59,6 @@
  * domain attachment (if_afdata) so we can track consumers of that service.
  * TODO: Deprecate routing socket path for SIOCGETSGCNT and SIOCGETVIFCNT,
  * move it to socket options.
- * TODO: Rototile log_debug to use KTR.
  * TODO: Cleanup LSRR removal further.
  * TODO: Push RSVP stubs into raw_ip.c.
  * TODO: Use bitstring.h for vif set.
@@ -79,6 +78,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -117,14 +117,9 @@ __FBSDID("$FreeBSD$");
 
 #include 
 
-#define		DEBUG_MFC	0x02
-#define		DEBUG_FORWARD	0x04
-#define		DEBUG_EXPIRE	0x08
-#define		DEBUG_XMIT	0x10
-#define		DEBUG_PIM	0x20
-static u_int	mrtdebug;
-SYSCTL_INT(_debug, OID_AUTO, mrtdebug, CTLFLAG_RW, &mrtdebug, 0,
-    "Enable/disable IPv4 multicast forwarding debugging flags");
+#ifndef KTR_IPMF
+#define KTR_IPMF KTR_SUBSYS
+#endif
 
 #define		VIFI_INVALID	((vifi_t) -1)
 #define		M_HASCL(m)	((m)->m_flags & M_EXT)
@@ -658,9 +653,8 @@ ip_mrouter_init(struct socket *so, int v
 {
     INIT_VNET_INET(curvnet);
 
-    if (mrtdebug)
-	log(LOG_DEBUG, "ip_mrouter_init: so_type = %d, pr_protocol = %d\n",
-	    so->so_type, so->so_proto->pr_protocol);
+    CTR3(KTR_IPMF, "%s: so_type %d, pr_protocol %d", __func__,
+        so->so_type, so->so_proto->pr_protocol);
 
     if (so->so_type != SOCK_RAW || so->so_proto->pr_protocol != IPPROTO_IGMP)
 	return EOPNOTSUPP;
@@ -694,8 +688,7 @@ ip_mrouter_init(struct socket *so, int v
 
     MROUTER_UNLOCK();
 
-    if (mrtdebug)
-	log(LOG_DEBUG, "ip_mrouter_init\n");
+    CTR1(KTR_IPMF, "%s: done", __func__);
 
     return 0;
 }
@@ -782,8 +775,7 @@ X_ip_mrouter_done(void)
 
     MROUTER_UNLOCK();
 
-    if (mrtdebug)
-	log(LOG_DEBUG, "ip_mrouter_done\n");
+    CTR1(KTR_IPMF, "%s: done", __func__);
 
     return 0;
 }
@@ -894,14 +886,12 @@ add_vif(struct vifctl *vifcp)
     }
 
     if ((vifcp->vifc_flags & VIFF_TUNNEL) != 0) {
-	log(LOG_ERR, "tunnels are no longer supported\n");
+	CTR1(KTR_IPMF, "%s: tunnels are no longer supported", __func__);
 	VIF_UNLOCK();
 	return EOPNOTSUPP;
     } else if (vifcp->vifc_flags & VIFF_REGISTER) {
 	ifp = &multicast_register_if;
-	if (mrtdebug)
-	    log(LOG_DEBUG, "Adding a register vif, ifp: %p\n",
-		    (void *)&multicast_register_if);
+	CTR2(KTR_IPMF, "%s: add register vif for ifp %p", __func__, ifp);
 	if (reg_vif_num == VIFI_INVALID) {
 	    if_initname(&multicast_register_if, "register_vif", 0);
 	    multicast_register_if.if_flags = IFF_LOOPBACK;
@@ -939,13 +929,9 @@ add_vif(struct vifctl *vifcp)
 
     VIF_UNLOCK();
 
-    if (mrtdebug)
-	log(LOG_DEBUG, "add_vif #%d, lcladdr %lx, %s %lx, thresh %x\n",
-	    vifcp->vifc_vifi,
-	    (u_long)ntohl(vifcp->vifc_lcl_addr.s_addr),
-	    (vifcp->vifc_flags & VIFF_TUNNEL) ? "rmtaddr" : "mask",
-	    (u_long)ntohl(vifcp->vifc_rmt_addr.s_addr),
-	    vifcp->vifc_threshold);
+    CTR4(KTR_IPMF, "%s: add vif %d laddr %s thresh %x", __func__,
+	(int)vifcp->vifc_vifi, inet_ntoa(&vifcp->vifc_lcl_addr),
+	(int)vifcp->vifc_threshold);
 
     return 0;
 }
@@ -976,8 +962,7 @@ del_vif_locked(vifi_t vifi)
 
     bzero((caddr_t)vifp, sizeof (*vifp));
 
-    if (mrtdebug)
-	log(LOG_DEBUG, "del_vif %d, numvifs %d\n", vifi, numvifs);
+    CTR2(KTR_IPMF, "%s: delete vif %d", __func__, (int)vifi);
 
     /* Adjust numvifs down */
     for (vifi = numvifs; vifi > 0; vifi--)
@@ -1074,12 +1059,10 @@ add_mfc(struct mfcctl2 *mfccp)
 
     /* If an entry already exists, just update the fields */
     if (rt) {
-	if (mrtdebug & DEBUG_MFC)
-	    log(LOG_DEBUG,"add_mfc update o %lx g %lx p %x\n",
-		(u_long)ntohl(mfccp->mfcc_origin.s_addr),
-		(u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-		mfccp->mfcc_parent);
-
+	CTR4(KTR_IPMF, "%s: update mfc orig %s group %lx parent %x",
+	    __func__, inet_ntoa(&mfccp->mfcc_origin),
+	    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
+	    mfccp->mfcc_parent);
 	update_mfc_params(rt, mfccp);
 	MFC_UNLOCK();
 	VIF_UNLOCK();
@@ -1095,22 +1078,14 @@ add_mfc(struct mfcctl2 *mfccp)
 	if (in_hosteq(rt->mfc_origin, mfccp->mfcc_origin) &&
 	    in_hosteq(rt->mfc_mcastgrp, mfccp->mfcc_mcastgrp) &&
 	    !TAILQ_EMPTY(&rt->mfc_stall)) {
-		if (nstl++) {
-			log(LOG_ERR, "add_mfc %s o %lx g %lx p %x dbx %p\n",
-			    "multiple kernel entries",
-			    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
-			    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-			    mfccp->mfcc_parent,
-			    (void *)TAILQ_FIRST(&rt->mfc_stall));
-		}
-
-		if (mrtdebug & DEBUG_MFC) {
-			log(LOG_DEBUG,"add_mfc o %lx g %lx p %x dbg %p\n",
-			    (u_long)ntohl(mfccp->mfcc_origin.s_addr),
-			    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-			    mfccp->mfcc_parent,
-			    (void *)TAILQ_FIRST(&rt->mfc_stall));
-		}
+		CTR5(KTR_IPMF,
+		    "%s: add mfc orig %s group %lx parent %x qh %p",
+		    __func__, inet_ntoa(&mfccp->mfcc_origin),
+		    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
+		    mfccp->mfcc_parent,
+		    TAILQ_FIRST(&rt->mfc_stall));
+		if (nstl++)
+			CTR1(KTR_IPMF, "%s: multiple matches", __func__);
 
 		init_mfc_params(rt, mfccp);
 		rt->mfc_expire = 0;	/* Don't clean this guy up */
@@ -1132,15 +1107,7 @@ add_mfc(struct mfcctl2 *mfccp)
      * It is possible that an entry is being inserted without an upcall
      */
     if (nstl == 0) {
-	/*
-	 * No mfc; make a new one
-	 */
-	if (mrtdebug & DEBUG_MFC)
-	    log(LOG_DEBUG,"add_mfc no upcall h %lu o %lx g %lx p %x\n",
-		hash, (u_long)ntohl(mfccp->mfcc_origin.s_addr),
-		(u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
-		mfccp->mfcc_parent);
-
+	CTR1(KTR_IPMF, "%s: adding mfc w/o upcall", __func__);
 	LIST_FOREACH(rt, &mfchashtbl[hash], mfc_hash) {
 		if (in_hosteq(rt->mfc_origin, mfccp->mfcc_origin) &&
 		    in_hosteq(rt->mfc_mcastgrp, mfccp->mfcc_mcastgrp)) {
@@ -1191,11 +1158,8 @@ del_mfc(struct mfcctl2 *mfccp)
     origin = mfccp->mfcc_origin;
     mcastgrp = mfccp->mfcc_mcastgrp;
 
-    if (mrtdebug & DEBUG_MFC) {
-	log(LOG_DEBUG,"del_mfc orig %lx mcastgrp %lx\n",
-	    (u_long)ntohl(origin.s_addr),
-	    (u_long)ntohl(mcastgrp.s_addr));
-    }
+    CTR3(KTR_IPMF, "%s: delete mfc orig %s group %lx", __func__,
+	inet_ntoa(origin), (u_long)ntohl(mcastgrp.s_addr));
 
     MFC_LOCK();
 
@@ -1260,10 +1224,8 @@ X_ip_mforward(struct ip *ip, struct ifne
     int error;
     vifi_t vifi;
 
-    if (mrtdebug & DEBUG_FORWARD)
-	log(LOG_DEBUG, "ip_mforward: src %lx, dst %lx, ifp %p\n",
-	    (u_long)ntohl(ip->ip_src.s_addr), (u_long)ntohl(ip->ip_dst.s_addr),
-	    (void *)ifp);
+    CTR3(KTR_IPMF, "ip_mforward: delete mfc orig %s group %lx ifp %p",
+	inet_ntoa(ip->ip_src), (u_long)ntohl(mcastgrp.s_addr), ifp);
 
     if (ip->ip_hl < (sizeof(struct ip) + TUNNEL_LEN) >> 2 ||
 		((u_char *)(ip + 1))[1] != IPOPT_LSRR ) {
@@ -1276,14 +1238,7 @@ X_ip_mforward(struct ip *ip, struct ifne
 	 * Packet arrived through a source-route tunnel.
 	 * Source-route tunnels are no longer supported.
 	 */
-	static int last_log;
-	if (last_log != time_uptime) {
-	    last_log = time_uptime;
-	    log(LOG_ERR,
-		"ip_mforward: received source-routed packet from %lx\n",
-		(u_long)ntohl(ip->ip_src.s_addr));
-	}
-	return 1;
+	return (1);
     }
 
     VIF_LOCK();
@@ -1333,10 +1288,8 @@ X_ip_mforward(struct ip *ip, struct ifne
 	++mrtstat.mrts_mfc_misses;
 
 	mrtstat.mrts_no_route++;
-	if (mrtdebug & (DEBUG_FORWARD | DEBUG_MFC))
-	    log(LOG_DEBUG, "ip_mforward: no rte s %lx g %lx\n",
-		(u_long)ntohl(ip->ip_src.s_addr),
-		(u_long)ntohl(ip->ip_dst.s_addr));
+	CTR2(KTR_IPMF, "ip_mforward: no mfc for (%s,%lx)",
+	    inet_ntoa(ip->ip_src), (u_long)ntohl(ip->ip_dst.s_addr));
 
 	/*
 	 * Allocate mbufs early so that we don't do extra work if we are
@@ -1390,6 +1343,7 @@ X_ip_mforward(struct ip *ip, struct ifne
 	    rt = (struct mfc *)malloc(sizeof(*rt), M_MRTABLE, M_NOWAIT);
 	    if (rt == NULL)
 		goto fail;
+
 	    /* Make a copy of the header to send to the user level process */
 	    mm = m_copy(mb0, 0, hlen);
 	    if (mm == NULL)
@@ -1409,7 +1363,7 @@ X_ip_mforward(struct ip *ip, struct ifne
 
 	    k_igmpsrc.sin_addr = ip->ip_src;
 	    if (socket_send(V_ip_mrouter, mm, &k_igmpsrc) < 0) {
-		log(LOG_WARNING, "ip_mforward: ip_mrouter socket queue full\n");
+		CTR0(KTR_IPMF, "ip_mforward: socket queue full");
 		++mrtstat.mrts_upq_sockfull;
 fail1:
 		free(rt, M_MRTABLE);
@@ -1502,11 +1456,9 @@ expire_upcalls(void *unused)
 		}
 
 		++mrtstat.mrts_cache_cleanups;
-		if (mrtdebug & DEBUG_EXPIRE) {
-		    log(LOG_DEBUG, "expire_upcalls: expiring (%lx %lx)\n",
-			(u_long)ntohl(rt->mfc_origin.s_addr),
-			(u_long)ntohl(rt->mfc_mcastgrp.s_addr));
-		}
+		CTR3(KTR_IPMF, "%s: expire (%lx, %lx)", __func__,
+		    (u_long)ntohl(rt->mfc_origin.s_addr),
+		    (u_long)ntohl(rt->mfc_mcastgrp.s_addr));
 
 		expire_mfc(rt);
 	    }
@@ -1548,10 +1500,8 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp
      */
     vifi = rt->mfc_parent;
     if ((vifi >= numvifs) || (viftable[vifi].v_ifp != ifp)) {
-	/* came in the wrong interface */
-	if (mrtdebug & DEBUG_FORWARD)
-	    log(LOG_DEBUG, "wrong if: ifp %p vifi %d vififp %p\n",
-		(void *)ifp, vifi, (void *)viftable[vifi].v_ifp);
+	CTR4(KTR_IPMF, "%s: rx on wrong ifp %p (vifi %d, v_ifp %p)",
+	    __func__, ifp, (int)vifi, viftable[vifi].v_ifp);
 	++mrtstat.mrts_wrong_if;
 	++rt->mfc_wrong_if;
 	/*
@@ -1596,8 +1546,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp
 
 		k_igmpsrc.sin_addr = im->im_src;
 		if (socket_send(V_ip_mrouter, mm, &k_igmpsrc) < 0) {
-		    log(LOG_WARNING,
-			"ip_mforward: ip_mrouter socket queue full\n");
+		    CTR1(KTR_IPMF, "%s: socket queue full", __func__);
 		    ++mrtstat.mrts_upq_sockfull;
 		    return ENOBUFS;
 		}
@@ -1736,10 +1685,8 @@ send_packet(struct vif *vifp, struct mbu
 	 * the loopback interface, thus preventing looping.
 	 */
 	error = ip_output(m, NULL, &vifp->v_route, IP_FORWARDING, &imo, NULL);
-	if (mrtdebug & DEBUG_XMIT) {
-	    log(LOG_DEBUG, "phyint_send on vif %td err %d\n",
-		vifp - viftable, error);
-	}
+	CTR3(KTR_IPMF, "%s: vif %td err %d", __func__,
+	    (ptrdiff_t)(vifp - viftable), error);
 }
 
 /*
@@ -2362,9 +2309,6 @@ pim_register_send(struct ip *ip, struct 
 {
     struct mbuf *mb_copy, *mm;
 
-    if (mrtdebug & DEBUG_PIM)
-	log(LOG_DEBUG, "pim_register_send: ");
-
     /*
      * Do not send IGMP_WHOLEPKT notifications to userland, if the
      * rendezvous point was unspecified, and we were told not to.
@@ -2490,9 +2434,7 @@ pim_register_send_upcall(struct ip *ip, 
     mrtstat.mrts_upcalls++;
 
     if (socket_send(V_ip_mrouter, mb_first, &k_igmpsrc) < 0) {
-	if (mrtdebug & DEBUG_PIM)
-	    log(LOG_WARNING,
-		"mcast: pim_register_send_upcall: ip_mrouter socket queue full");
+	CTR1(KTR_IPMF, "%s: socket queue full", __func__);
 	++mrtstat.mrts_upq_sockfull;
 	return ENOBUFS;
     }
@@ -2620,8 +2562,8 @@ pim_input(struct mbuf *m, int off)
      */
     if (datalen < PIM_MINLEN) {
 	pimstat.pims_rcv_tooshort++;
-	log(LOG_ERR, "pim_input: packet size too small %d from %lx\n",
-	    datalen, (u_long)ip->ip_src.s_addr);
+	CTR3(KTR_IPMF, "%s: short packet (%d) from %s",
+	    __func__, datalen, inet_ntoa(&ip->ip_src));
 	m_freem(m);
 	return;
     }
@@ -2641,9 +2583,10 @@ pim_input(struct mbuf *m, int off)
      */
     if ((m->m_flags & M_EXT || m->m_len < minlen) &&
 	(m = m_pullup(m, minlen)) == 0) {
-	log(LOG_ERR, "pim_input: m_pullup failure\n");
+	CTR1(KTR_IPMF, "%s: m_pullup() failed", __func__);
 	return;
     }
+
     /* m_pullup() may have given us a new mbuf so reset ip. */
     ip = mtod(m, struct ip *);
     ip_tos = ip->ip_tos;
@@ -2664,8 +2607,7 @@ pim_input(struct mbuf *m, int off)
 	/* do nothing, checksum okay */
     } else if (in_cksum(m, datalen)) {
 	pimstat.pims_rcv_badsum++;
-	if (mrtdebug & DEBUG_PIM)
-	    log(LOG_DEBUG, "pim_input: invalid checksum");
+	CTR1(KTR_IPMF, "%s: invalid checksum", __func__);
 	m_freem(m);
 	return;
     }
@@ -2673,8 +2615,8 @@ pim_input(struct mbuf *m, int off)
     /* PIM version check */
     if (PIM_VT_V(pim->pim_vt) < PIM_VERSION) {
 	pimstat.pims_rcv_badversion++;
-	log(LOG_ERR, "pim_input: incorrect version %d, expecting %d\n",
-	    PIM_VT_V(pim->pim_vt), PIM_VERSION);
+	CTR3(KTR_IPMF, "%s: bad version %d expect %d", __func__,
+	    (int)PIM_VT_V(pim->pim_vt), PIM_VERSION);
 	m_freem(m);
 	return;
     }
@@ -2698,9 +2640,8 @@ pim_input(struct mbuf *m, int off)
 	VIF_LOCK();
 	if ((reg_vif_num >= numvifs) || (reg_vif_num == VIFI_INVALID)) {
 	    VIF_UNLOCK();
-	    if (mrtdebug & DEBUG_PIM)
-		log(LOG_DEBUG,
-		    "pim_input: register vif not set: %d\n", reg_vif_num);
+	    CTR2(KTR_IPMF, "%s: register vif not set: %d", __func__,
+		(int)reg_vif_num);
 	    m_freem(m);
 	    return;
 	}
@@ -2714,9 +2655,7 @@ pim_input(struct mbuf *m, int off)
 	if (datalen < PIM_REG_MINLEN) {
 	    pimstat.pims_rcv_tooshort++;
 	    pimstat.pims_rcv_badregisters++;
-	    log(LOG_ERR,
-		"pim_input: register packet size too small %d from %lx\n",
-		datalen, (u_long)ip->ip_src.s_addr);
+	    CTR1(KTR_IPMF, "%s: register packet size too small", __func__);
 	    m_freem(m);
 	    return;
 	}
@@ -2724,21 +2663,13 @@ pim_input(struct mbuf *m, int off)
 	reghdr = (u_int32_t *)(pim + 1);
 	encap_ip = (struct ip *)(reghdr + 1);
 
-	if (mrtdebug & DEBUG_PIM) {
-	    log(LOG_DEBUG,
-		"pim_input[register], encap_ip: %lx -> %lx, encap_ip len %d\n",
-		(u_long)ntohl(encap_ip->ip_src.s_addr),
-		(u_long)ntohl(encap_ip->ip_dst.s_addr),
-		ntohs(encap_ip->ip_len));
-	}
+	CTR3(KTR_IPMF, "%s: register: encap ip src %s len %d",
+	    __func__, inet_ntoa(encap_ip->ip_src), ntohs(encap_ip->ip_len));
 
 	/* verify the version number of the inner packet */
 	if (encap_ip->ip_v != IPVERSION) {
 	    pimstat.pims_rcv_badregisters++;
-	    if (mrtdebug & DEBUG_PIM) {
-		log(LOG_DEBUG, "pim_input: invalid IP version (%d) "
-		    "of the inner packet\n", encap_ip->ip_v);
-	    }
+	    CTR1(KTR_IPMF, "%s: bad encap ip version", __func__);
 	    m_freem(m);
 	    return;
 	}
@@ -2746,11 +2677,8 @@ pim_input(struct mbuf *m, int off)
 	/* verify the inner packet is destined to a mcast group */
 	if (!IN_MULTICAST(ntohl(encap_ip->ip_dst.s_addr))) {
 	    pimstat.pims_rcv_badregisters++;
-	    if (mrtdebug & DEBUG_PIM)
-		log(LOG_DEBUG,
-		    "pim_input: inner packet of register is not "
-		    "multicast %lx\n",
-		    (u_long)ntohl(encap_ip->ip_dst.s_addr));
+	    CTR2(KTR_IPMF, "%s: bad encap ip dest %s", __func__,
+		inet_ntoa(encap_ip->ip_dst));
 	    m_freem(m);
 	    return;
 	}
@@ -2789,8 +2717,7 @@ pim_input(struct mbuf *m, int off)
 	 */
 	mcp = m_copy(m, 0, iphlen + PIM_REG_MINLEN);
 	if (mcp == NULL) {
-	    log(LOG_ERR,
-		"pim_input: pim register: could not copy register head\n");
+	    CTR1(KTR_IPMF, "%s: m_copy() failed", __func__);
 	    m_freem(m);
 	    return;
 	}
@@ -2805,14 +2732,13 @@ pim_input(struct mbuf *m, int off)
 	 */
 	m_adj(m, iphlen + PIM_MINLEN);
 
-	if (mrtdebug & DEBUG_PIM) {
-	    log(LOG_DEBUG,
-		"pim_input: forwarding decapsulated register: "
-		"src %lx, dst %lx, vif %d\n",
-		(u_long)ntohl(encap_ip->ip_src.s_addr),
-		(u_long)ntohl(encap_ip->ip_dst.s_addr),
-		reg_vif_num);
-	}
+	CTR4(KTR_IPMF,
+	    "%s: forward decap'd REGISTER: src %lx dst %lx vif %d",
+	    __func__,
+	    (u_long)ntohl(encap_ip->ip_src.s_addr),
+	    (u_long)ntohl(encap_ip->ip_dst.s_addr),
+	    (int)reg_vif_num);
+
 	/* NB: vifp was collected above; can it change on us? */
 	if_simloop(vifp, m, dst.sin_family, 0);
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:15:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F0975106566B;
	Thu, 19 Mar 2009 14:15:11 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D557F8FC15;
	Thu, 19 Mar 2009 14:15:11 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEFBCr064537;
	Thu, 19 Mar 2009 14:15:11 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEFBfU064531;
	Thu, 19 Mar 2009 14:15:11 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191415.n2JEFBfU064531@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 14:15:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190055 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:15:13 -0000

Author: marius
Date: Thu Mar 19 14:15:11 2009
New Revision: 190055
URL: http://svn.freebsd.org/changeset/base/190055

Log:
  MFC: r182878
  
  For cheetah-class CPUs ensure that the dt512_0 is set to hold 8k pages
  for all three contexts and configure the dt512_1 to hold 4MB pages for
  them (e.g. for direct mappings).
  This might allow for additional optimization by using the faulting
  page sizes provided by AA_DMMU_TAG_ACCESS_EXT for bypassing the page
  size walker for the dt512 in the superpage support code.
  
  Submitted by:	nwhitehorn (initial patch)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/asi.h
  stable/7/sys/sparc64/include/tlb.h
  stable/7/sys/sparc64/sparc64/cheetah.c
  stable/7/sys/sparc64/sparc64/genassym.c
  stable/7/sys/sparc64/sparc64/pmap.c
  stable/7/sys/sparc64/sparc64/swtch.S

Modified: stable/7/sys/sparc64/include/asi.h
==============================================================================
--- stable/7/sys/sparc64/include/asi.h	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/include/asi.h	Thu Mar 19 14:15:11 2009	(r190055)
@@ -140,6 +140,7 @@
 #define		AA_DMMU_TSB_PEXT_REG		0x48
 #define		AA_DMMU_TSB_SEXT_REG		0x50
 #define		AA_DMMU_TSB_NEXT_REG		0x58
+#define		AA_DMMU_TAG_ACCESS_EXT		0x60	/* US-III family */
 
 #define	ASI_DMMU_TSB_8KB_PTR_REG		0x59
 #define	ASI_DMMU_TSB_64KB_PTR_REG		0x5a

Modified: stable/7/sys/sparc64/include/tlb.h
==============================================================================
--- stable/7/sys/sparc64/include/tlb.h	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/include/tlb.h	Thu Mar 19 14:15:11 2009	(r190055)
@@ -51,6 +51,34 @@
 #define	TLB_TAR_VA(va)			((va) & ~TAR_CTX_MASK)
 #define	TLB_TAR_CTX(ctx)		((ctx) & TAR_CTX_MASK)
 
+#define	TLB_CXR_CTX_BITS		(13)
+#define	TLB_CXR_CTX_MASK						\
+	(((1UL << TLB_CXR_CTX_BITS) - 1) << TLB_CXR_CTX_SHIFT)
+#define	TLB_CXR_CTX_SHIFT		(0)
+#define	TLB_CXR_PGSZ_BITS		(3)
+#define	TLB_PCXR_PGSZ_MASK						\
+	((((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_PCXR_N_PGSZ0_SHIFT) |	\
+	(((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_PCXR_N_PGSZ1_SHIFT) |	\
+	(((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_PCXR_P_PGSZ0_SHIFT) |	\
+	(((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_PCXR_P_PGSZ1_SHIFT))
+#define	TLB_PCXR_N_PGSZ0_SHIFT		(61)
+#define	TLB_PCXR_N_PGSZ1_SHIFT		(58)
+#define	TLB_PCXR_P_PGSZ0_SHIFT		(16)
+#define	TLB_PCXR_P_PGSZ1_SHIFT		(19)
+#define	TLB_SCXR_PGSZ_MASK						\
+	((((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_SCXR_S_PGSZ0_SHIFT) |	\
+	(((1UL << TLB_CXR_PGSZ_BITS) - 1) << TLB_SCXR_S_PGSZ1_SHIFT))
+#define	TLB_SCXR_S_PGSZ1_SHIFT		(19)
+#define	TLB_SCXR_S_PGSZ0_SHIFT		(16)
+
+#define	TLB_TAE_PGSZ_BITS		(3)
+#define	TLB_TAE_PGSZ0_MASK						\
+	(((1UL << TLB_TAE_PGSZ_BITS) - 1) << TLB_TAE_PGSZ0_SHIFT)
+#define	TLB_TAE_PGSZ1_MASK						\
+	(((1UL << TLB_TAE_PGSZ_BITS) - 1) << TLB_TAE_PGSZ1_SHIFT)
+#define	TLB_TAE_PGSZ0_SHIFT		(16)
+#define	TLB_TAE_PGSZ1_SHIFT		(19)
+
 #define	TLB_DEMAP_ID_SHIFT		(4)
 #define	TLB_DEMAP_ID_PRIMARY		(0)
 #define	TLB_DEMAP_ID_SECONDARY		(1)
@@ -59,8 +87,7 @@
 #define	TLB_DEMAP_TYPE_SHIFT		(6)
 #define	TLB_DEMAP_TYPE_PAGE		(0)
 #define	TLB_DEMAP_TYPE_CONTEXT		(1)
-/* US-III and greater only */
-#define	TLB_DEMAP_TYPE_ALL		(2)
+#define	TLB_DEMAP_TYPE_ALL		(2)	/* USIII and beyond only */
 
 #define	TLB_DEMAP_VA(va)		((va) & ~PAGE_MASK)
 #define	TLB_DEMAP_ID(id)		((id) << TLB_DEMAP_ID_SHIFT)

Modified: stable/7/sys/sparc64/sparc64/cheetah.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/cheetah.c	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/sparc64/cheetah.c	Thu Mar 19 14:15:11 2009	(r190055)
@@ -92,6 +92,26 @@ cheetah_init(void)
 	stxa(AA_IMMU_TSB_NEXT_REG, ASI_IMMU, 0);
 	membar(Sync);
 
+	/*
+	 * Ensure that the dt512_0 is set to hold 8k pages for all three
+	 * contexts and configure the dt512_1 to hold 4MB pages for them
+	 * (e.g. for direct mappings).
+	 * NB: according to documentation, this requires a contex demap
+	 * _before_ changing the corresponding page size, but we hardly
+	 * can flush our locked pages here, so we use a demap all instead.
+	 */
+	stxa(TLB_DEMAP_ALL, ASI_DMMU_DEMAP, 0);
+	membar(Sync);
+	stxa(AA_DMMU_PCXR, ASI_DMMU,
+	    (TS_8K << TLB_PCXR_N_PGSZ0_SHIFT) |
+	    (TS_4M << TLB_PCXR_N_PGSZ1_SHIFT) |
+	    (TS_8K << TLB_PCXR_P_PGSZ0_SHIFT) |
+	    (TS_4M << TLB_PCXR_P_PGSZ1_SHIFT));
+	stxa(AA_DMMU_SCXR, ASI_DMMU,
+	    (TS_8K << TLB_SCXR_S_PGSZ0_SHIFT) |
+	    (TS_4M << TLB_SCXR_S_PGSZ1_SHIFT));
+	flush(KERNBASE);
+
 	intr_restore(s);
 }
 

Modified: stable/7/sys/sparc64/sparc64/genassym.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 14:15:11 2009	(r190055)
@@ -132,6 +132,7 @@ ASSYM(TD_W, TD_W);
 
 ASSYM(TS_MIN, TS_MIN);
 ASSYM(TS_MAX, TS_MAX);
+ASSYM(TLB_PCXR_PGSZ_MASK, TLB_PCXR_PGSZ_MASK);
 ASSYM(TLB_DIRECT_TO_TTE_MASK, TLB_DIRECT_TO_TTE_MASK);
 ASSYM(TV_SIZE_BITS, TV_SIZE_BITS);
 #endif

Modified: stable/7/sys/sparc64/sparc64/pmap.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 14:15:11 2009	(r190055)
@@ -545,7 +545,6 @@ pmap_map_tsb(void)
 		pa = tsb_kernel_phys + i;
 		data = TD_V | TD_4M | TD_PA(pa) | TD_L | TD_CP | TD_CV |
 		    TD_P | TD_W;
-		/* XXX - cheetah */
 		stxa(AA_DMMU_TAR, ASI_DMMU, TLB_TAR_VA(va) |
 		    TLB_TAR_CTX(TLB_CTX_KERNEL));
 		stxa_sync(0, ASI_DTLB_DATA_IN_REG, data);
@@ -555,7 +554,8 @@ pmap_map_tsb(void)
 	 * Set the secondary context to be the kernel context (needed for
 	 * FP block operations in the kernel).
 	 */
-	stxa(AA_DMMU_SCXR, ASI_DMMU, TLB_CTX_KERNEL);
+	stxa(AA_DMMU_SCXR, ASI_DMMU, (ldxa(AA_DMMU_SCXR, ASI_DMMU) &
+	    TLB_SCXR_PGSZ_MASK) | TLB_CTX_KERNEL);
 	flush(KERNBASE);
 
 	intr_restore(s);
@@ -1960,7 +1960,8 @@ pmap_activate(struct thread *td)
 
 	stxa(AA_DMMU_TSB, ASI_DMMU, pm->pm_tsb);
 	stxa(AA_IMMU_TSB, ASI_IMMU, pm->pm_tsb);
-	stxa(AA_DMMU_PCXR, ASI_DMMU, context);
+	stxa(AA_DMMU_PCXR, ASI_DMMU, (ldxa(AA_DMMU_PCXR, ASI_DMMU) &
+	    TLB_PCXR_PGSZ_MASK) | context);
 	flush(KERNBASE);
 
 	mtx_unlock_spin(&sched_lock);

Modified: stable/7/sys/sparc64/sparc64/swtch.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/swtch.S	Thu Mar 19 14:14:21 2009	(r190054)
+++ stable/7/sys/sparc64/sparc64/swtch.S	Thu Mar 19 14:15:11 2009	(r190055)
@@ -236,7 +236,11 @@ ENTRY(cpu_switch)
 	stxa	%i4, [%i5] ASI_DMMU
 	mov	AA_IMMU_TSB, %i5
 	stxa	%i4, [%i5] ASI_IMMU
+	setx	TLB_PCXR_PGSZ_MASK, %i5, %i4
 	mov	AA_DMMU_PCXR, %i5
+	ldxa	[%i5] ASI_DMMU, %i2
+	and	%i2, %i4, %i2
+	or	%i3, %i2, %i3
 	sethi	%hi(KERNBASE), %i4
 	stxa	%i3, [%i5] ASI_DMMU
 	flush	%i4

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:17:35 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 10B211065675;
	Thu, 19 Mar 2009 14:17:35 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id EE2B08FC1A;
	Thu, 19 Mar 2009 14:17:34 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEHY9I064643;
	Thu, 19 Mar 2009 14:17:34 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEHY9e064639;
	Thu, 19 Mar 2009 14:17:34 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191417.n2JEHY9e064639@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 14:17:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190056 - in stable/7/sys: . boot/sparc64/loader
	contrib/pf dev/ath/ath_hal dev/cxgb sparc64/sparc64 sun4v/include
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:17:36 -0000

Author: marius
Date: Thu Mar 19 14:17:34 2009
New Revision: 190056
URL: http://svn.freebsd.org/changeset/base/190056

Log:
  MFC: r182916, r188455 (partial)
  
  Work around Cheetah+ erratum 34 (USIII+ erratum #10) by relocating
  the locked entry in it16 slot 0, which typically is occupied by the
  PROM, and manually entering locked entries in slots != 0.
  
  Thanks to Hubert Feyrer for donating the Blade 2000 this change was
  developed on.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/sparc64/loader/main.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/genassym.c
  stable/7/sys/sparc64/sparc64/mp_locore.S
  stable/7/sys/sun4v/include/asi.h

Modified: stable/7/sys/boot/sparc64/loader/main.c
==============================================================================
--- stable/7/sys/boot/sparc64/loader/main.c	Thu Mar 19 14:15:11 2009	(r190055)
+++ stable/7/sys/boot/sparc64/loader/main.c	Thu Mar 19 14:17:34 2009	(r190056)
@@ -6,6 +6,31 @@
  * As long as the above copyright statement and this notice remain
  * unchanged, you can do what ever you want with this file.
  */
+/*-
+ * Copyright (c) 2008 Marius Strobl 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 
 #include 
 __FBSDID("$FreeBSD$");
@@ -65,6 +90,7 @@ static vm_offset_t dtlb_va_to_pa_sun4u(v
 static inline u_long itlb_get_data_sun4u(int slot);
 static void itlb_enter_sun4u(u_long vpn, u_long data);
 static vm_offset_t itlb_va_to_pa_sun4u(vm_offset_t);
+static void itlb_relocate_locked0_sun4u(void);
 extern vm_offset_t md_load(char *, vm_offset_t *);
 static int sparc64_autoload(void);
 static ssize_t sparc64_readin(const int, vm_offset_t, const size_t);
@@ -456,9 +482,32 @@ static void
 itlb_enter_sun4u(u_long vpn, u_long data)
 {
 	u_long reg;
+	int i;
 
 	reg = rdpr(pstate);
 	wrpr(pstate, reg & ~PSTATE_IE, 0);
+
+	if (cpu_impl == CPU_IMPL_ULTRASPARCIIIp) {
+		/*
+		 * Search an unused slot != 0 and explicitly enter the data
+		 * and tag there in order to avoid Cheetah+ erratum 34.
+		 */
+		for (i = 1; i < itlb_slot_max; i++) {
+			if ((itlb_get_data_sun4u(i) & TD_V) != 0)
+				continue;
+
+			stxa(AA_IMMU_TAR, ASI_IMMU,
+			     TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+			stxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG, data);
+			flush(PROMBASE);
+			break;
+		}
+		wrpr(pstate, reg, 0);
+		if (i == itlb_slot_max)
+			panic("%s: could not find an unused slot", __func__);
+		return;
+	}
+
 	stxa(AA_IMMU_TAR, ASI_IMMU,
 	     TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
 	stxa(0, ASI_ITLB_DATA_IN_REG, data);
@@ -466,6 +515,48 @@ itlb_enter_sun4u(u_long vpn, u_long data
 	wrpr(pstate, reg, 0);
 }
 
+static void
+itlb_relocate_locked0_sun4u(void)
+{
+	u_long data, pstate, tag;
+	int i;
+
+	if (cpu_impl != CPU_IMPL_ULTRASPARCIIIp)
+		return;
+
+	pstate = rdpr(pstate);
+	wrpr(pstate, pstate & ~PSTATE_IE, 0);
+
+	data = itlb_get_data_sun4u(0);
+	if ((data & (TD_V | TD_L)) != (TD_V | TD_L)) {
+		wrpr(pstate, pstate, 0);
+		return;
+	}
+
+	/* Flush the mapping of slot 0. */
+	tag = ldxa(TLB_DAR_SLOT(0), ASI_ITLB_TAG_READ_REG);
+	stxa(TLB_DEMAP_VA(TLB_TAR_VA(tag)) | TLB_DEMAP_PRIMARY |
+	    TLB_DEMAP_PAGE, ASI_IMMU_DEMAP, 0);
+	flush(0);	/* The USIII-family ignores the address. */
+
+	/*
+	 * Search a replacement slot != 0 and enter the data and tag
+	 * that formerly were in slot 0.
+	 */
+	for (i = 1; i < itlb_slot_max; i++) {
+		if ((itlb_get_data_sun4u(i) & TD_V) != 0)
+			continue;
+
+		stxa(AA_IMMU_TAR, ASI_IMMU, tag);
+		stxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG, data);
+		flush(0);	/* The USIII-family ignores the address. */
+		break;
+	}
+	wrpr(pstate, pstate, 0);
+	if (i == itlb_slot_max)
+		panic("%s: could not find a replacement slot", __func__);
+}
+
 static int
 mmu_mapin_sun4u(vm_offset_t va, vm_size_t len)
 {
@@ -603,6 +694,25 @@ tlb_init_sun4u(void)
 	    OF_getprop(child, "#itlb-entries", &itlb_slot_max,
 	    sizeof(itlb_slot_max)) == -1)
 		panic("%s: can't get TLB slot max.", __func__);
+
+	if (cpu_impl == CPU_IMPL_ULTRASPARCIIIp) {
+#ifdef LOADER_DEBUG
+		printf("pre fixup:\n");
+		pmap_print_tlb_sun4u();
+#endif
+
+		/*
+		 * Relocate the locked entry in it16 slot 0 (if existent)
+		 * as part of working around Cheetah+ erratum 34.
+		 */
+		itlb_relocate_locked0_sun4u();
+
+#ifdef LOADER_DEBUG
+		printf("post fixup:\n");
+		pmap_print_tlb_sun4u();
+#endif
+	}
+
 	dtlb_store = malloc(dtlb_slot_max * sizeof(*dtlb_store));
 	itlb_store = malloc(itlb_slot_max * sizeof(*itlb_store));
 	if (dtlb_store == NULL || itlb_store == NULL)

Modified: stable/7/sys/sparc64/sparc64/genassym.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 14:15:11 2009	(r190055)
+++ stable/7/sys/sparc64/sparc64/genassym.c	Thu Mar 19 14:17:34 2009	(r190056)
@@ -123,15 +123,18 @@ ASSYM(TTE_SHIFT, TTE_SHIFT);
 ASSYM(TTE_VPN, offsetof(struct tte, tte_vpn));
 ASSYM(TTE_DATA, offsetof(struct tte, tte_data));
 
+ASSYM(TD_V, TD_V);
 ASSYM(TD_EXEC, TD_EXEC);
 ASSYM(TD_REF, TD_REF);
 ASSYM(TD_SW, TD_SW);
+ASSYM(TD_L, TD_L);
 ASSYM(TD_CP, TD_CP);
 ASSYM(TD_CV, TD_CV);
 ASSYM(TD_W, TD_W);
 
 ASSYM(TS_MIN, TS_MIN);
 ASSYM(TS_MAX, TS_MAX);
+ASSYM(TLB_DAR_SLOT_SHIFT, TLB_DAR_SLOT_SHIFT);
 ASSYM(TLB_PCXR_PGSZ_MASK, TLB_PCXR_PGSZ_MASK);
 ASSYM(TLB_DIRECT_TO_TTE_MASK, TLB_DIRECT_TO_TTE_MASK);
 ASSYM(TV_SIZE_BITS, TV_SIZE_BITS);

Modified: stable/7/sys/sparc64/sparc64/mp_locore.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/mp_locore.S	Thu Mar 19 14:15:11 2009	(r190055)
+++ stable/7/sys/sparc64/sparc64/mp_locore.S	Thu Mar 19 14:17:34 2009	(r190056)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2002 Jake Burkholder.
+ * Copyright (c) 2008 Marius Strobl 
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,12 +43,78 @@ __FBSDID("$FreeBSD$");
 
 	.text
 	_ALIGN_TEXT
-1:	rd	%pc, %l0
-	ldx	[%l0 + (4f-1b)], %l1
-	add	%l0, (6f-1b), %l2
+	/*
+	 * Initialize misc. state to known values: interrupts disabled,
+	 * normal globals, no clean windows, PIL 0, and floating point
+	 * disabled.
+	 */
+1:	wrpr	%g0, PSTATE_NORMAL, %pstate
+	wrpr	%g0, 0, %cleanwin
+	wrpr	%g0, 0, %pil
+	wr	%g0, 0, %fprs
+
+	rdpr	%ver, %l7
+	srlx	%l7, VER_IMPL_SHIFT, %l7
+	sll	%l7, VER_IMPL_SIZE, %l7
+	srl	%l7, VER_IMPL_SIZE, %l7
+	cmp	%l7, CPU_IMPL_ULTRASPARCIIIp
+	bne	%icc, 3f
+	 nop
+
+	/*
+	 * Relocate the locked entry in it16 slot 0 (if existent)
+	 * as part of working around Cheetah+ erratum 34.
+	 */
+
+	setx	TD_V | TD_L, %l1, %l0
+	/*
+	 * We read ASI_DTLB_DATA_ACCESS_REG twice in order to work
+	 * around errata of USIII and beyond.
+	 */
+	ldxa	[%g0] ASI_ITLB_DATA_ACCESS_REG, %g0
+	ldxa	[%g0] ASI_ITLB_DATA_ACCESS_REG, %l6
+	and	%l6, %l0, %l1
+	cmp	%l0, %l1
+	bne	%xcc, 3f
+	 nop
+
+	/* Flush the mapping of slot 0. */
+	ldxa	[%g0] ASI_ITLB_TAG_READ_REG, %l5
+	srlx	%l5, TAR_VPN_SHIFT, %l0
+	sllx	%l0, TAR_VPN_SHIFT, %l0
+	or	%l0, TLB_DEMAP_PRIMARY | TLB_DEMAP_PAGE, %l0
+	stxa	%g0, [%l0] ASI_IMMU_DEMAP
+	/* The USIII-family ignores the address. */
+	flush	%g0
+
+	/*
+	 * Search a replacement slot != 0 and enter the data and tag
+	 * that formerly were in slot 0.
+	 */
+	mov	(1 << TLB_DAR_SLOT_SHIFT), %l4
+	setx	TD_V, %l1, %l0
+	/*
+	 * We read ASI_DTLB_DATA_ACCESS_REG twice in order to work
+	 * around errata of USIII and beyond.
+	 */
+2:	ldxa	[%l4] ASI_ITLB_DATA_ACCESS_REG, %g0
+	ldxa	[%l4] ASI_ITLB_DATA_ACCESS_REG, %l1
+	and	%l1, %l0, %l1
+	cmp	%l0, %l1
+	be,a	%xcc, 2b
+	 add	%l4, (1 << TLB_DAR_SLOT_SHIFT), %l4
+	wr	%g0, ASI_IMMU, %asi
+	stxa	%l5, [%g0 + AA_IMMU_TAR] %asi
+	stxa	%l6, [%l4] ASI_ITLB_DATA_ACCESS_REG
+	/* The USIII-family ignores the address. */
+	flush	%g0
+
+3:	rd	%pc, %l6
+	ldx	[%l6 + (9f-3b)], %l1
+	add	%l6, (11f-3b), %l2
 	clr	%l3
-2:	cmp	%l3, %l1
-	be	%xcc, 3f
+4:	cmp	%l3, %l1
+	be	%xcc, 8f
 	 nop
 	ldx	[%l2 + TTE_VPN], %l4
 	ldx	[%l2 + TTE_DATA], %l5
@@ -56,41 +123,64 @@ __FBSDID("$FreeBSD$");
 	wr	%g0, ASI_DMMU, %asi
 	stxa	%l4, [%g0 + AA_DMMU_TAR] %asi
 	stxa	%l5, [%g0] ASI_DTLB_DATA_IN_REG
-	wr	%g0, ASI_IMMU, %asi
+	membar	#Sync
+
+	cmp	%l7, CPU_IMPL_ULTRASPARCIIIp
+	bne	%icc, 6f
+	 wr	%g0, ASI_IMMU, %asi
+
+	/*
+	 * Search an unused slot != 0 and explicitly enter the data
+	 * and tag there in order to avoid Cheetah+ erratum 34.
+	 */
+	mov	(1 << TLB_DAR_SLOT_SHIFT), %l0
+	setx	TD_V, %o1, %o0
+	/*
+	 * We read ASI_DTLB_DATA_ACCESS_REG twice in order to work
+	 * around errata of USIII and beyond.
+	 */
+5:	ldxa	[%l0] ASI_ITLB_DATA_ACCESS_REG, %g0
+	ldxa	[%l0] ASI_ITLB_DATA_ACCESS_REG, %o1
+	and	%o1, %o0, %o1
+	cmp	%o0, %o1
+	be,a	%xcc, 5b
+	 add	%l0, (1 << TLB_DAR_SLOT_SHIFT), %l0
+	sethi	%hi(KERNBASE), %o0
+	stxa	%l4, [%g0 + AA_IMMU_TAR] %asi
+	stxa	%l5, [%l0] ASI_ITLB_DATA_ACCESS_REG
+	flush	%o0
+	ba	%xcc, 7f
+	 nop
+
+6:	sethi	%hi(KERNBASE), %l0
 	stxa	%l4, [%g0 + AA_IMMU_TAR] %asi
 	stxa	%l5, [%g0] ASI_ITLB_DATA_IN_REG
-	membar	#Sync
-	flush	%l4
-	add	%l2, 1 << TTE_SHIFT, %l2
+	flush	%l0
+7:	add	%l2, 1 << TTE_SHIFT, %l2
 	add	%l3, 1, %l3
-	ba	%xcc, 2b
+	ba	%xcc, 4b
 	 nop
-3:	ldx	[%l0 + (5f-1b)], %l1
+8:	ldx	[%l6 + (10f-3b)], %l1
 	jmpl	%l1, %g0
 	 nop
 	_ALIGN_DATA
-4:	.xword	0x0
-5:	.xword	0x0
-6:
+9:	.xword	0x0
+10:	.xword	0x0
+11:
 
 DATA(mp_tramp_code)
 	.xword	1b
 DATA(mp_tramp_code_len)
-	.xword	6b-1b
+	.xword	11b-1b
 DATA(mp_tramp_tlb_slots)
-	.xword	4b-1b
+	.xword	9b-1b
 DATA(mp_tramp_func)
-	.xword	5b-1b
+	.xword	10b-1b
 
 /*
  * void mp_startup(void)
  */
 ENTRY(mp_startup)
-	wrpr	%g0, PSTATE_NORMAL, %pstate
-	wrpr	%g0, 0, %cleanwin
-	wrpr	%g0, 0, %pil
-	wr	%g0, 0, %fprs
-
 	SET(cpu_start_args, %l1, %l0)
 
 	mov	CPU_TICKSYNC, %l1

Modified: stable/7/sys/sun4v/include/asi.h
==============================================================================
--- stable/7/sys/sun4v/include/asi.h	Thu Mar 19 14:15:11 2009	(r190055)
+++ stable/7/sys/sun4v/include/asi.h	Thu Mar 19 14:17:34 2009	(r190056)
@@ -162,6 +162,7 @@
 #define	ASI_ITLB_DATA_IN_REG			0x54
 #define	ASI_ITLB_DATA_ACCESS_REG		0x55
 #define	ASI_ITLB_TAG_READ_REG			0x56
+#define	ASI_IMMU_DEMAP				0x57
 #define	ASI_DMMU				0x58
 #define	ASI_DTLB_DATA_IN_REG			0x5c
 #define	ASI_DTLB_DATA_ACCESS_REG		0x5d

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:20:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6E1501065673;
	Thu, 19 Mar 2009 14:20:01 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5AA9D8FC20;
	Thu, 19 Mar 2009 14:20:01 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEK16G064743;
	Thu, 19 Mar 2009 14:20:01 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEK1DP064742;
	Thu, 19 Mar 2009 14:20:01 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191420.n2JEK1DP064742@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:20:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190057 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:20:02 -0000

Author: avg
Date: Thu Mar 19 14:20:00 2009
New Revision: 190057
URL: http://svn.freebsd.org/changeset/base/190057

Log:
  MFC 189111: udf_readatoffset: correctly hanlde data in fentry
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:17:34 2009	(r190056)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:20:00 2009	(r190057)
@@ -1305,6 +1305,12 @@ udf_readatoffset(struct udf_node *node, 
 		fentry = node->fentry;
 		*data = &fentry->data[le32toh(fentry->l_ea)];
 		*size = le32toh(fentry->l_ad);
+		if (offset >= *size)
+			*size = 0;
+		else {
+			*data += offset;
+			*size -= offset;
+		}
 		return (0);
 	} else if (error != 0) {
 		return (error);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:23:18 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1F9971065670;
	Thu, 19 Mar 2009 14:23:18 +0000 (UTC)
	(envelope-from ivoras@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E793E8FC1E;
	Thu, 19 Mar 2009 14:23:17 +0000 (UTC)
	(envelope-from ivoras@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JENH56064871;
	Thu, 19 Mar 2009 14:23:17 GMT (envelope-from ivoras@svn.freebsd.org)
Received: (from ivoras@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JENHUl064869;
	Thu, 19 Mar 2009 14:23:17 GMT (envelope-from ivoras@svn.freebsd.org)
Message-Id: <200903191423.n2JENHUl064869@svn.freebsd.org>
From: Ivan Voras 
Date: Thu, 19 Mar 2009 14:23:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190058 - head/sys/geom/part
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:23:18 -0000

Author: ivoras
Date: Thu Mar 19 14:23:17 2009
New Revision: 190058
URL: http://svn.freebsd.org/changeset/base/190058

Log:
  Make GEOM provider names starting with "/dev/" acceptable as well as their
  "raw" names. While there, change the formatting of extended MSDOS partitions
  so that the dot (".") is not used to separate two numbers (which kind of
  looks like the whole is a decimal number). Use "+" instead, which also
  hints that the second part of the name is the offset from the start of
  the partition in the first part of the name. Also change the offset from
  decimal to hexadecimal notation, simply for aesthetic reasons and future
  compatibility.
  
  GEOM_PART is the default in 8-CURRENT but not yet in 7-STABLE so this
  changeset can be MFC-ed without causing major problems from the second
  part.
  
  Reviewed by:	marcel
  Approved by:	gnn (mentor)
  MFC after:	2 weeks

Modified:
  head/sys/geom/part/g_part.c
  head/sys/geom/part/g_part_ebr.c

Modified: head/sys/geom/part/g_part.c
==============================================================================
--- head/sys/geom/part/g_part.c	Thu Mar 19 14:20:00 2009	(r190057)
+++ head/sys/geom/part/g_part.c	Thu Mar 19 14:23:17 2009	(r190058)
@@ -49,6 +49,10 @@ __FBSDID("$FreeBSD$");
 
 #include "g_part_if.h"
 
+#ifndef _PATH_DEV
+#define _PATH_DEV "/dev/"
+#endif
+
 static kobj_method_t g_part_null_methods[] = {
 	{ 0, 0 }
 };
@@ -273,12 +277,17 @@ g_part_new_provider(struct g_geom *gp, s
 }
 
 static int
-g_part_parm_geom(const char *p, struct g_geom **v)
+g_part_parm_geom(const char *rawname, struct g_geom **v)
 {
 	struct g_geom *gp;
+	const char *pname;
 
+	if (strncmp(rawname, _PATH_DEV, strlen(_PATH_DEV)) == 0)
+		pname = rawname + strlen(_PATH_DEV);
+	else
+		pname = rawname;
 	LIST_FOREACH(gp, &g_part_class.geom, geom) {
-		if (!strcmp(p, gp->name))
+		if (!strcmp(pname, gp->name))
 			break;
 	}
 	if (gp == NULL)
@@ -288,11 +297,14 @@ g_part_parm_geom(const char *p, struct g
 }
 
 static int
-g_part_parm_provider(const char *p, struct g_provider **v)
+g_part_parm_provider(const char *pname, struct g_provider **v)
 {
 	struct g_provider *pp;
 
-	pp = g_provider_by_name(p);
+	if (strncmp(pname, _PATH_DEV, strlen(_PATH_DEV)) == 0)
+		pp = g_provider_by_name(pname + strlen(_PATH_DEV));
+	else
+		pp = g_provider_by_name(pname);
 	if (pp == NULL)
 		return (EINVAL);
 	*v = pp;

Modified: head/sys/geom/part/g_part_ebr.c
==============================================================================
--- head/sys/geom/part/g_part_ebr.c	Thu Mar 19 14:20:00 2009	(r190057)
+++ head/sys/geom/part/g_part_ebr.c	Thu Mar 19 14:23:17 2009	(r190058)
@@ -343,7 +343,7 @@ g_part_ebr_name(struct g_part_table *tab
     char *buf, size_t bufsz)
 {
 
-	snprintf(buf, bufsz, ".%08u", entry->gpe_index);
+	snprintf(buf, bufsz, "+%08x", entry->gpe_index);
 	return (buf);
 }
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:26:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A3F8A106564A;
	Thu, 19 Mar 2009 14:26:00 +0000 (UTC)
	(envelope-from ivoras@gmail.com)
Received: from mail-bw0-f164.google.com (mail-bw0-f164.google.com
	[209.85.218.164])
	by mx1.freebsd.org (Postfix) with ESMTP id BEC028FC13;
	Thu, 19 Mar 2009 14:25:59 +0000 (UTC)
	(envelope-from ivoras@gmail.com)
Received: by bwz8 with SMTP id 8so489917bwz.43
	for ; Thu, 19 Mar 2009 07:25:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:mime-version:sender:received:in-reply-to
	:references:date:x-google-sender-auth:message-id:subject:from:to
	:content-type:content-transfer-encoding;
	bh=tO/E5gFxdmpPUcqw6g2kQ1yOUXGRBv2aznhFXBXyAq0=;
	b=ZyEB5++LLUFccPoWVT+hoaJHS9CggLj3a9rIzAhgwmROA57j/2HQun6t8TVHzNijFJ
	GZlRtJYuZ/tqnBv0IOSQT8RH+Kb2M+/7LX6EHOwKbolxnM94mskhssW0DJ2w99TnyCRs
	IGWfWITY06t2JYVNX4fM5GFFsnA/Emu4Jt+0o=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=mime-version:sender:in-reply-to:references:date
	:x-google-sender-auth:message-id:subject:from:to:content-type
	:content-transfer-encoding;
	b=FIfBIRH2fUlEe9Wr9ad4BOsyYpXmbOoEBhFEQy5fdCX5MS1ZLmR4ptdPogPALIhc/l
	QAi4OyQkmSVL7h35K0bgzNLLdCAuvvG+/wla45wMxR5fUIFb9KSkd1S83cUiO0lC/mFR
	IRgvjhF+pGRwaZlI/zjWt08EiI/vBN95rbeXs=
MIME-Version: 1.0
Sender: ivoras@gmail.com
Received: by 10.204.76.13 with SMTP id a13mr852221bkk.105.1237472758710; Thu, 
	19 Mar 2009 07:25:58 -0700 (PDT)
In-Reply-To: <200903191423.n2JENHUl064869@svn.freebsd.org>
References: <200903191423.n2JENHUl064869@svn.freebsd.org>
Date: Thu, 19 Mar 2009 15:25:58 +0100
X-Google-Sender-Auth: 5c71427f97e62c40
Message-ID: <9bbcef730903190725y716a1fd9w434dff8d9948d761@mail.gmail.com>
From: Ivan Voras 
To: src-committers@freebsd.org, svn-src-all@freebsd.org, 
	svn-src-head@freebsd.org
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Cc: 
Subject: Re: svn commit: r190058 - head/sys/geom/part
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:26:01 -0000

>
> +#ifndef _PATH_DEV
> +#define _PATH_DEV "/dev/"
> +#endif
> +

This is also about the second time I've needed _PATH_DEV for similar
purposes in the kernel, but paths.h is not in include/sys. Is there a
recommendation for this situation?

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:26:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 129E5106567A;
	Thu, 19 Mar 2009 14:26:16 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 003018FC29;
	Thu, 19 Mar 2009 14:26:16 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEQF5e064972;
	Thu, 19 Mar 2009 14:26:15 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEQFE8064971;
	Thu, 19 Mar 2009 14:26:15 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191426.n2JEQFE8064971@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:26:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190059 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:26:17 -0000

Author: avg
Date: Thu Mar 19 14:26:15 2009
New Revision: 190059
URL: http://svn.freebsd.org/changeset/base/190059

Log:
  MFC 189302: udf_readdir: do not advance offset if entry can not be uio-ed
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:23:17 2009	(r190058)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:26:15 2009	(r190059)
@@ -846,11 +846,11 @@ udf_readdir(struct vop_readdir_args *a)
 		}
 		if (error)
 			break;
+		uio->uio_offset = ds->offset + ds->off;
 	}
 
 	/* tell the calling layer whether we need to be called again */
 	*a->a_eofflag = uiodir.eofflag;
-	uio->uio_offset = ds->offset + ds->off;
 
 	if (error < 0)
 		error = 0;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:32:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E9730106564A;
	Thu, 19 Mar 2009 14:32:11 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D77EA8FC20;
	Thu, 19 Mar 2009 14:32:11 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEWBxj065155;
	Thu, 19 Mar 2009 14:32:11 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEWBjT065154;
	Thu, 19 Mar 2009 14:32:11 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191432.n2JEWBjT065154@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 14:32:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190060 - in stable/7/sys: . fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:32:12 -0000

Author: avg
Date: Thu Mar 19 14:32:11 2009
New Revision: 190060
URL: http://svn.freebsd.org/changeset/base/190060

Log:
  MFC 189364: udf: use truly unique directory cookie
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:26:15 2009	(r190059)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 14:32:11 2009	(r190060)
@@ -725,7 +725,7 @@ udf_getfid(struct udf_dirstream *ds)
 	 * Update the offset. Align on a 4 byte boundary because the
 	 * UDF spec says so.
 	 */
-	ds->this_off = ds->off;
+	ds->this_off = ds->offset + ds->off;
 	if (!ds->fid_fragment) {
 		ds->off += (total_fid_size + 3) & ~0x03;
 	} else {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 14:51:56 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BE8BB106570A;
	Thu, 19 Mar 2009 14:51:56 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A935B8FC08;
	Thu, 19 Mar 2009 14:51:56 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JEpuV0065619;
	Thu, 19 Mar 2009 14:51:56 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JEpu0h065617;
	Thu, 19 Mar 2009 14:51:56 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191451.n2JEpu0h065617@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 14:51:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190061 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 14:51:59 -0000

Author: marius
Date: Thu Mar 19 14:51:56 2009
New Revision: 190061
URL: http://svn.freebsd.org/changeset/base/190061

Log:
  MFC: r183152
  
  Clear any possibly pending PCI error bits left by the firmware. These
  could trigger an error interrupt that we can't actually to do anything
  against as soon as enabling the error handlers.
  While at it don't bother about writing only to the write-one-to-clear
  bits when clearing error bits.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/pci/psycho.c
  stable/7/sys/sparc64/pci/psychoreg.h

Modified: stable/7/sys/sparc64/pci/psycho.c
==============================================================================
--- stable/7/sys/sparc64/pci/psycho.c	Thu Mar 19 14:32:11 2009	(r190060)
+++ stable/7/sys/sparc64/pci/psycho.c	Thu Mar 19 14:51:56 2009	(r190061)
@@ -369,9 +369,6 @@ psycho_attach(device_t dev)
 		sc->sc_mtx = osc->sc_mtx;
 	}
 
-	/* Clear PCI AFSR. */
-	PCICTL_WRITE8(sc, PCR_AFS, PCIAFSR_ERRMASK);
-
 	csr = PSYCHO_READ8(sc, PSR_CS);
 	ver = PSYCHO_GCSR_VERS(csr);
 	sc->sc_ign = 0x1f; /* Hummingbird/Sabre IGN is always 0x1f. */
@@ -425,7 +422,7 @@ psycho_attach(device_t dev)
 		break;
 	}
 
-	csr |= PCICTL_SERR | PCICTL_ERRINTEN | PCICTL_ARB_4;
+	csr |= PCICTL_ERRINTEN | PCICTL_ARB_4;
 	csr &= ~(PCICTL_SBHINTEN | PCICTL_WAKEUPEN);
 #ifdef PSYCHO_DEBUG
 	device_printf(dev, "PCI CSR 0x%016llx -> 0x%016llx\n",
@@ -533,46 +530,7 @@ psycho_attach(device_t dev)
 				    "controller for INO %d", __func__, n);
 		}
 
-		/*
-		 * Establish handlers for interesting interrupts...
-		 *
-		 * XXX We need to remember these and remove this to support
-		 * hotplug on the UPA/FHC bus.
-		 *
-		 * XXX Not all controllers have these, but installing them
-		 * is better than trying to sort through this mess.
-		 */
-		psycho_set_intr(sc, 1, PSR_UE_INT_MAP, psycho_ue, NULL);
-		psycho_set_intr(sc, 2, PSR_CE_INT_MAP, psycho_ce, NULL);
-#ifdef DEBUGGER_ON_POWERFAIL
-		psycho_set_intr(sc, 3, PSR_POWER_INT_MAP, psycho_powerfail,
-		    NULL);
-#else
-		psycho_set_intr(sc, 3, PSR_POWER_INT_MAP, NULL,
-		    (driver_intr_t *)psycho_powerfail);
-#endif
-		/* Psycho-specific initialization */
 		if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
-			/*
-			 * Hummingbirds/Sabres do not have the following two
-			 * interrupts.
-			 */
-
-			/*
-			 * The spare hardware interrupt is used for the
-			 * over-temperature interrupt.
-			 */
-			psycho_set_intr(sc, 4, PSR_SPARE_INT_MAP,
-			    NULL, psycho_overtemp);
-#ifdef PSYCHO_MAP_WAKEUP
-			/*
-			 * psycho_wakeup() doesn't do anything useful right
-			 * now.
-			 */
-			psycho_set_intr(sc, 5, PSR_PWRMGT_INT_MAP,
-			    psycho_wakeup, NULL);
-#endif /* PSYCHO_MAP_WAKEUP */
-
 			/* Initialize the counter-timer. */
 			sparc64_counter_init(device_get_nameunit(dev),
 			    rman_get_bustag(sc->sc_mem_res),
@@ -612,14 +570,6 @@ psycho_attach(device_t dev)
 		iommu_reset(sc->sc_is);
 	}
 
-	/*
-	 * Register a PCI bus error interrupt handler according to which
-	 * half this is.  Hummingbird/Sabre don't have a PCI bus B error
-	 * interrupt but they are also only used for PCI bus A.
-	 */
-	psycho_set_intr(sc, 0, sc->sc_half == 0 ? PSR_PCIAERR_INT_MAP :
-	    PSR_PCIBERR_INT_MAP, psycho_pci_bus, NULL);
-
 	/* Allocate our tags. */
 	sc->sc_pci_memt = psycho_alloc_bus_tag(sc, PCI_MEMORY_BUS_SPACE);
 	sc->sc_pci_iot = psycho_alloc_bus_tag(sc, PCI_IO_BUS_SPACE);
@@ -643,11 +593,61 @@ psycho_attach(device_t dev)
 		    prop_array[0], prop_array[1], prop_array[0]);
 	sc->sc_pci_secbus = prop_array[0];
 
-	/* Clear PCI status error bits. */
+	/* Clear any pending PCI error bits. */
 	PCIB_WRITE_CONFIG(dev, sc->sc_pci_secbus, PCS_DEVICE, PCS_FUNC,
-	    PCIR_STATUS, PCIM_STATUS_PERR | PCIM_STATUS_RMABORT |
-	    PCIM_STATUS_RTABORT | PCIM_STATUS_STABORT |
-	    PCIM_STATUS_PERRREPORT, 2);
+	    PCIR_STATUS, PCIB_READ_CONFIG(dev, sc->sc_pci_secbus,
+	    PCS_DEVICE, PCS_FUNC, PCIR_STATUS, 2), 2);
+	PCICTL_WRITE8(sc, PCR_CS, PCICTL_READ8(sc, PCR_CS));
+	PCICTL_WRITE8(sc, PCR_AFS, PCICTL_READ8(sc, PCR_AFS));
+
+	if (osc == NULL) {
+		/*
+		 * Establish handlers for interesting interrupts...
+		 *
+		 * XXX We need to remember these and remove this to support
+		 * hotplug on the UPA/FHC bus.
+		 *
+		 * XXX Not all controllers have these, but installing them
+		 * is better than trying to sort through this mess.
+		 */
+		psycho_set_intr(sc, 1, PSR_UE_INT_MAP, psycho_ue, NULL);
+		psycho_set_intr(sc, 2, PSR_CE_INT_MAP, psycho_ce, NULL);
+#ifdef DEBUGGER_ON_POWERFAIL
+		psycho_set_intr(sc, 3, PSR_POWER_INT_MAP, psycho_powerfail,
+		    NULL);
+#else
+		psycho_set_intr(sc, 3, PSR_POWER_INT_MAP, NULL,
+		    (driver_intr_t *)psycho_powerfail);
+#endif
+		if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
+			/*
+			 * Hummingbirds/Sabres do not have the following two
+			 * interrupts.
+			 */
+
+			/*
+			 * The spare hardware interrupt is used for the
+			 * over-temperature interrupt.
+			 */
+			psycho_set_intr(sc, 4, PSR_SPARE_INT_MAP,
+			    NULL, psycho_overtemp);
+#ifdef PSYCHO_MAP_WAKEUP
+			/*
+			 * psycho_wakeup() doesn't do anything useful right
+			 * now.
+			 */
+			psycho_set_intr(sc, 5, PSR_PWRMGT_INT_MAP,
+			    psycho_wakeup, NULL);
+#endif /* PSYCHO_MAP_WAKEUP */
+		}
+	}
+	/*
+	 * Register a PCI bus error interrupt handler according to which
+	 * half this is.  Hummingbird/Sabre don't have a PCI bus B error
+	 * interrupt but they are also only used for PCI bus A.
+	 */
+	psycho_set_intr(sc, 0, sc->sc_half == 0 ? PSR_PCIAERR_INT_MAP :
+	    PSR_PCIBERR_INT_MAP, psycho_pci_bus, NULL);
 
 	/*
 	 * Set the latency timer register as this isn't always done by the
@@ -808,7 +808,7 @@ psycho_ce(void *arg)
 	device_printf(sc->sc_dev, "correctable DMA error AFAR %#lx "
 	    "AFSR %#lx\n", (u_long)afar, (u_long)afsr);
 	/* Clear the error bits that we caught. */
-	PSYCHO_WRITE8(sc, PSR_CE_AFS, afsr & CEAFSR_ERRMASK);
+	PSYCHO_WRITE8(sc, PSR_CE_AFS, afsr);
 	mtx_unlock_spin(sc->sc_mtx);
 	return (FILTER_HANDLED);
 }

Modified: stable/7/sys/sparc64/pci/psychoreg.h
==============================================================================
--- stable/7/sys/sparc64/pci/psychoreg.h	Thu Mar 19 14:32:11 2009	(r190060)
+++ stable/7/sys/sparc64/pci/psychoreg.h	Thu Mar 19 14:51:56 2009	(r190061)
@@ -265,10 +265,6 @@
 #define	CEAFSR_P_DRD	(1UL << 62)	/* Pri. error caused by DVMA read */
 #define	CEAFSR_P_PIO	(1UL << 63)	/* Pri. error caused by PIO access */
 
-#define	CEAFSR_ERRMASK							\
-	(CEAFSR_P_PIO | CEAFSR_P_DRD | CEAFSR_P_DWR |			\
-	CEAFSR_S_PIO | CEAFSR_S_DRD | CEAFSR_S_DWR)
-
 /* PCI asynchronous fault status register */
 #define	PCIAFSR_P_MA	(1UL << 63)	/* Pri. master abort */
 #define	PCIAFSR_P_TA	(1UL << 62)	/* Pri. target abort */
@@ -282,10 +278,6 @@
 #define	PCIAFSR_BLK	(1UL << 31)	/* failed pri. transfer was block r/w */
 #define	PCIAFSR_MID	(0x3eUL << 25)	/* UPA MID causing error transaction */
 
-#define	PCIAFSR_ERRMASK							\
-	(PCIAFSR_P_MA | PCIAFSR_P_TA | PCIAFSR_P_RTRY |	PCIAFSR_P_RERR |\
-	PCIAFSR_S_MA | PCIAFSR_S_TA | PCIAFSR_S_RTRY | PCIAFSR_S_RERR)
-
 /* PCI diagnostic register */
 #define	DIAG_RTRY_DIS	0x0000000000000040	/* dis. retry limit */
 #define	DIAG_ISYNC_DIS	0x0000000000000020	/* dis. DMA write / int sync */

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:01:25 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0586C1065670;
	Thu, 19 Mar 2009 15:01:25 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E6E288FC14;
	Thu, 19 Mar 2009 15:01:24 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JF1OSU065900;
	Thu, 19 Mar 2009 15:01:24 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JF1OQl065899;
	Thu, 19 Mar 2009 15:01:24 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191501.n2JF1OQl065899@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:01:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190062 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:01:26 -0000

Author: marius
Date: Thu Mar 19 15:01:24 2009
New Revision: 190062
URL: http://svn.freebsd.org/changeset/base/190062

Log:
  MFC: r183144
  
  - Add a missing prototype.
  - Remove a banal comment.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/intr_machdep.c

Modified: stable/7/sys/sparc64/sparc64/intr_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/intr_machdep.c	Thu Mar 19 14:51:56 2009	(r190061)
+++ stable/7/sys/sparc64/sparc64/intr_machdep.c	Thu Mar 19 15:01:24 2009	(r190062)
@@ -111,6 +111,7 @@ static struct mtx intrcnt_lock;
 static int assign_cpu;
 
 static void intr_assign_next_cpu(struct intr_vector *iv);
+static void intr_shuffle_irqs(void *arg __unused);
 #endif
 
 static int intr_assign_cpu(void *arg, u_char cpu);
@@ -520,7 +521,7 @@ intr_add_cpu(u_int cpu)
 
 /*
  * Distribute all the interrupt sources among the available CPUs once the
- * AP's have been launched.
+ * APs have been launched.
  */
 static void
 intr_shuffle_irqs(void *arg __unused)
@@ -533,7 +534,6 @@ intr_shuffle_irqs(void *arg __unused)
 	if (mp_ncpus == 1)
 		return;
 
-	/* Round-robin assign a CPU to each enabled source. */
 	sx_xlock(&intr_table_lock);
 	assign_cpu = 1;
 	for (i = 0; i < IV_MAX; i++) {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:08:36 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 95C031065670;
	Thu, 19 Mar 2009 15:08:36 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 67C6B8FC1E;
	Thu, 19 Mar 2009 15:08:36 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JF8at3066120;
	Thu, 19 Mar 2009 15:08:36 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JF8a5L066119;
	Thu, 19 Mar 2009 15:08:36 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191508.n2JF8a5L066119@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:08:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190063 - in stable/7/sys: . conf contrib/pf
	dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:08:37 -0000

Author: marius
Date: Thu Mar 19 15:08:35 2009
New Revision: 190063
URL: http://svn.freebsd.org/changeset/base/190063

Log:
  MFC: r183202, r183203, r183204
  
  Some of the assembly files depend on v9a/v9b-only instructions so
  compile these with -mcpu=ultrasparc (which is the hard-coded default
  of our system compiler), which allows the remainder of the kernel to
  be compiled with "only" -mcpu=v9 for reference and testing purposes.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/conf/files.sparc64
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/conf/files.sparc64
==============================================================================
--- stable/7/sys/conf/files.sparc64	Thu Mar 19 15:01:24 2009	(r190062)
+++ stable/7/sys/conf/files.sparc64	Thu Mar 19 15:08:35 2009	(r190063)
@@ -90,19 +90,22 @@ sparc64/sparc64/db_trace.c	optional	ddb
 sparc64/sparc64/db_hwwatch.c	optional	ddb
 sparc64/sparc64/dump_machdep.c	standard
 sparc64/sparc64/elf_machdep.c	standard
-sparc64/sparc64/exception.S	standard	no-obj
+sparc64/sparc64/exception.S	standard	no-obj			\
+	compile-with "${NORMAL_S} -mcpu=ultrasparc"
 sparc64/sparc64/eeprom.c	optional	eeprom ebus | eeprom fhc | \
 						eeprom sbus
 sparc64/sparc64/gdb_machdep.c	optional	gdb
 sparc64/sparc64/identcpu.c	standard
 sparc64/sparc64/in_cksum.c	optional	inet
-sparc64/sparc64/interrupt.S	standard	no-obj
+sparc64/sparc64/interrupt.S	standard	no-obj			\
+	compile-with "${NORMAL_S} -mcpu=ultrasparc"
 sparc64/sparc64/intr_machdep.c	standard
 sparc64/sparc64/iommu.c		standard
 sparc64/sparc64/locore.S	standard	no-obj
 sparc64/sparc64/machdep.c	standard
 sparc64/sparc64/mem.c		optional	mem
-sparc64/sparc64/mp_exception.S	optional	smp
+sparc64/sparc64/mp_exception.S	optional	smp			\
+	compile-with "${NORMAL_S} -mcpu=ultrasparc"
 sparc64/sparc64/mp_locore.S	optional	smp
 sparc64/sparc64/mp_machdep.c	optional	smp
 sparc64/sparc64/nexus.c		standard
@@ -115,7 +118,8 @@ sparc64/sparc64/rwindow.c	standard
 sparc64/sparc64/sc_machdep.c	optional	sc
 sparc64/sparc64/spitfire.c	standard
 sparc64/sparc64/stack_machdep.c	optional	ddb | stack
-sparc64/sparc64/support.S	standard
+sparc64/sparc64/support.S	standard				\
+	compile-with "${NORMAL_S} -mcpu=ultrasparc"
 sparc64/sparc64/sys_machdep.c	standard
 sparc64/sparc64/swtch.S		standard
 sparc64/sparc64/tick.c		standard

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:16:05 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ECEE2106568D;
	Thu, 19 Mar 2009 15:16:05 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D8B588FC0C;
	Thu, 19 Mar 2009 15:16:05 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFG5Z7066325;
	Thu, 19 Mar 2009 15:16:05 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFG5Vx066323;
	Thu, 19 Mar 2009 15:16:05 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191516.n2JFG5Vx066323@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:16:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190064 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/dc
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:16:07 -0000

Author: marius
Date: Thu Mar 19 15:16:05 2009
New Revision: 190064
URL: http://svn.freebsd.org/changeset/base/190064

Log:
  MFC: r183505
  
  cosmetic changes and style fixes

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/dc/dcphy.c
  stable/7/sys/dev/dc/pnphy.c

Modified: stable/7/sys/dev/dc/dcphy.c
==============================================================================
--- stable/7/sys/dev/dc/dcphy.c	Thu Mar 19 15:08:35 2009	(r190063)
+++ stable/7/sys/dev/dc/dcphy.c	Thu Mar 19 15:16:05 2009	(r190064)
@@ -35,9 +35,9 @@ __FBSDID("$FreeBSD$");
 
 /*
  * Pseudo-driver for internal NWAY support on DEC 21143 and workalike
- * controllers. Technically we're abusing the miibus code to handle
+ * controllers.  Technically we're abusing the miibus code to handle
  * media selection and NWAY support here since there is no MII
- * interface. However the logical operations are roughly the same,
+ * interface.  However the logical operations are roughly the same,
  * and the alternative is to create a fake MII interface in the driver,
  * which is harder to do.
  */
@@ -82,7 +82,7 @@ __FBSDID("$FreeBSD$");
 
 /*
  * This is the subsystem ID for the built-in 21143 ethernet
- * in several Compaq Presario systems. Apparently these are
+ * in several Compaq Presario systems.  Apparently these are
  * 10Mbps only, so we need to treat them specially.
  */
 #define COMPAQ_PRESARIO_ID	0xb0bb0e11
@@ -127,7 +127,7 @@ dcphy_probe(device_t dev)
 	 */
 	if (ma->mii_id1 != DC_VENDORID_DEC ||
 	    ma->mii_id2 != DC_DEVICEID_21143)
-		return(ENXIO);
+		return (ENXIO);
 
 	device_set_desc(dev, "Intel 21143 NWAY media interface");
 
@@ -171,20 +171,16 @@ dcphy_attach(device_t dev)
 	switch (pci_get_subdevice(brdev) << 16 | pci_get_subvendor(brdev)) {
 	case COMPAQ_PRESARIO_ID:
 		/* Example of how to only allow 10Mbps modes. */
-		sc->mii_capabilities = BMSR_ANEG|BMSR_10TFDX|BMSR_10THDX;
+		sc->mii_capabilities = BMSR_ANEG | BMSR_10TFDX | BMSR_10THDX;
 		break;
 	default:
-		if (dc_sc->dc_pmode == DC_PMODE_SIA) {
+		if (dc_sc->dc_pmode == DC_PMODE_SIA)
 			sc->mii_capabilities =
-			    BMSR_ANEG|BMSR_10TFDX|BMSR_10THDX;
-		} else {
-			ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP,
-			    sc->mii_inst), BMCR_LOOP|BMCR_S100);
-
+			    BMSR_ANEG | BMSR_10TFDX | BMSR_10THDX;
+		else
 			sc->mii_capabilities =
-			    BMSR_ANEG|BMSR_100TXFDX|BMSR_100TXHDX|
-			    BMSR_10TFDX|BMSR_10THDX;
-		}
+			    BMSR_ANEG | BMSR_100TXFDX | BMSR_100TXHDX |
+			    BMSR_10TFDX | BMSR_10THDX;
 		break;
 	}
 
@@ -195,7 +191,7 @@ dcphy_attach(device_t dev)
 #undef ADD
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
-	return(0);
+	return (0);
 }
 
 static int
@@ -213,9 +209,8 @@ dcphy_service(struct mii_softc *sc, stru
 		/*
 		 * If we're not polling our PHY instance, just return.
 		 */
-		if (IFM_INST(ife->ifm_media) != sc->mii_inst) {
+		if (IFM_INST(ife->ifm_media) != sc->mii_inst)
 			return (0);
-		}
 		break;
 
 	case MII_MEDIACHG:
@@ -223,9 +218,8 @@ dcphy_service(struct mii_softc *sc, stru
 		 * If the media indicates a different PHY instance,
 		 * isolate ourselves.
 		 */
-		if (IFM_INST(ife->ifm_media) != sc->mii_inst) {
+		if (IFM_INST(ife->ifm_media) != sc->mii_inst)
 			return (0);
-		}
 
 		/*
 		 * If the interface is not up, don't do anything.
@@ -236,8 +230,8 @@ dcphy_service(struct mii_softc *sc, stru
 		sc->mii_flags = 0;
 		mii->mii_media_active = IFM_NONE;
 		mode = CSR_READ_4(dc_sc, DC_NETCFG);
-		mode &= ~(DC_NETCFG_FULLDUPLEX|DC_NETCFG_PORTSEL|
-		    DC_NETCFG_PCS|DC_NETCFG_SCRAMBLER|DC_NETCFG_SPEEDSEL);
+		mode &= ~(DC_NETCFG_FULLDUPLEX | DC_NETCFG_PORTSEL |
+		    DC_NETCFG_PCS | DC_NETCFG_SCRAMBLER | DC_NETCFG_SPEEDSEL);
 
 		switch (IFM_SUBTYPE(ife->ifm_media)) {
 		case IFM_AUTO:
@@ -252,7 +246,7 @@ dcphy_service(struct mii_softc *sc, stru
 		case IFM_100_TX:
 			dcphy_reset(sc);
 			DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
-			mode |= DC_NETCFG_PORTSEL|DC_NETCFG_PCS|
+			mode |= DC_NETCFG_PORTSEL | DC_NETCFG_PCS |
 			    DC_NETCFG_SCRAMBLER;
 			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
 				mode |= DC_NETCFG_FULLDUPLEX;
@@ -278,7 +272,7 @@ dcphy_service(struct mii_softc *sc, stru
 			CSR_WRITE_4(dc_sc, DC_NETCFG, mode);
 			break;
 		default:
-			return(EINVAL);
+			return (EINVAL);
 		}
 		break;
 
@@ -366,7 +360,7 @@ dcphy_status(struct mii_softc *sc)
 			anlpar = tstat >> 16;
 			if (anlpar & ANLPAR_TX_FD &&
 			    sc->mii_capabilities & BMSR_100TXFDX)
-				mii->mii_media_active |= IFM_100_TX|IFM_FDX;
+				mii->mii_media_active |= IFM_100_TX | IFM_FDX;
 			else if (anlpar & ANLPAR_T4 &&
 			    sc->mii_capabilities & BMSR_100T4)
 				mii->mii_media_active |= IFM_100_T4;
@@ -374,7 +368,7 @@ dcphy_status(struct mii_softc *sc)
 			    sc->mii_capabilities & BMSR_100TXHDX)
 				mii->mii_media_active |= IFM_100_TX;
 			else if (anlpar & ANLPAR_10_FD)
-				mii->mii_media_active |= IFM_10_T|IFM_FDX;
+				mii->mii_media_active |= IFM_10_T | IFM_FDX;
 			else if (anlpar & ANLPAR_10)
 				mii->mii_media_active |= IFM_10_T;
 			else
@@ -384,10 +378,11 @@ dcphy_status(struct mii_softc *sc)
 				    DC_TCTL_AUTONEGENBL);
 			return;
 		}
+
 		/*
 		 * If the other side doesn't support NWAY, then the
 		 * best we can do is determine if we have a 10Mbps or
-		 * 100Mbps link. There's no way to know if the link 
+		 * 100Mbps link.  There's no way to know if the link
 		 * is full or half duplex, so we default to half duplex
 		 * and hope that the user is clever enough to manually
 		 * change the media settings if we're wrong.
@@ -404,15 +399,12 @@ dcphy_status(struct mii_softc *sc)
 	}
 
 skip:
-
 	if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_SPEEDSEL)
 		mii->mii_media_active |= IFM_10_T;
 	else
 		mii->mii_media_active |= IFM_100_TX;
 	if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
 		mii->mii_media_active |= IFM_FDX;
-
-	return;
 }
 
 static int
@@ -433,7 +425,7 @@ dcphy_auto(struct mii_softc *mii)
 	DC_SETBIT(sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL);
 	DC_SETBIT(sc, DC_10BTSTAT, DC_ASTAT_TXDISABLE);
 
-	return(EJUSTRETURN);
+	return (EJUSTRETURN);
 }
 
 static void
@@ -446,7 +438,4 @@ dcphy_reset(struct mii_softc *mii)
 	DC_CLRBIT(sc, DC_SIARESET, DC_SIA_RESET);
 	DELAY(1000);
 	DC_SETBIT(sc, DC_SIARESET, DC_SIA_RESET);
-
-	return;
 }
-

Modified: stable/7/sys/dev/dc/pnphy.c
==============================================================================
--- stable/7/sys/dev/dc/pnphy.c	Thu Mar 19 15:08:35 2009	(r190063)
+++ stable/7/sys/dev/dc/pnphy.c	Thu Mar 19 15:16:05 2009	(r190064)
@@ -35,8 +35,8 @@ __FBSDID("$FreeBSD$");
 
 /*
  * Pseudo-driver for media selection on the Lite-On PNIC 82c168
- * chip. The NWAY support on this chip is horribly broken, so we
- * only support manual mode selection. This is lame, but getting
+ * chip.  The NWAY support on this chip is horribly broken, so we
+ * only support manual mode selection.  This is lame, but getting
  * NWAY to work right is amazingly difficult.
  */
 
@@ -112,7 +112,7 @@ pnphy_probe(device_t dev)
 	 */
 	if (ma->mii_id1 != DC_VENDORID_LO ||
 	    ma->mii_id2 != DC_DEVICEID_82C168)
-		return(ENXIO);
+		return (ENXIO);
 
 	device_set_desc(dev, "PNIC 82c168 media interface");
 
@@ -143,7 +143,7 @@ pnphy_attach(device_t dev)
 #define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
 
 	sc->mii_capabilities =
-	    BMSR_100TXFDX|BMSR_100TXHDX|BMSR_10TFDX|BMSR_10THDX;
+	    BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX;
 	sc->mii_capabilities &= ma->mii_capmask;
 	device_printf(dev, " ");
 	mii_add_media(sc);
@@ -157,7 +157,7 @@ pnphy_attach(device_t dev)
 #undef ADD
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
-	return(0);
+	return (0);
 }
 
 static int
@@ -170,9 +170,8 @@ pnphy_service(struct mii_softc *sc, stru
 		/*
 		 * If we're not polling our PHY instance, just return.
 		 */
-		if (IFM_INST(ife->ifm_media) != sc->mii_inst) {
+		if (IFM_INST(ife->ifm_media) != sc->mii_inst)
 			return (0);
-		}
 		break;
 
 	case MII_MEDIACHG:
@@ -200,19 +199,19 @@ pnphy_service(struct mii_softc *sc, stru
 			 */
 			return (EINVAL);
 		case IFM_100_TX:
-			mii->mii_media_active = IFM_ETHER|IFM_100_TX;
+			mii->mii_media_active = IFM_ETHER | IFM_100_TX;
 			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
 				mii->mii_media_active |= IFM_FDX;
 			MIIBUS_STATCHG(sc->mii_dev);
-			return(0);
+			return (0);
 		case IFM_10_T:
-			mii->mii_media_active = IFM_ETHER|IFM_10_T;
+			mii->mii_media_active = IFM_ETHER | IFM_10_T;
 			if ((ife->ifm_media & IFM_GMASK) == IFM_FDX)
 				mii->mii_media_active |= IFM_FDX;
 			MIIBUS_STATCHG(sc->mii_dev);
-			return(0);
+			return (0);
 		default:
-			return(EINVAL);
+			return (EINVAL);
 		}
 		break;
 
@@ -263,6 +262,4 @@ pnphy_status(struct mii_softc *sc)
 		mii->mii_media_active |= IFM_100_TX;
 	if (CSR_READ_4(dc_sc, DC_NETCFG) & DC_NETCFG_FULLDUPLEX)
 		mii->mii_media_active |= IFM_FDX;
-
-	return;
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:21:04 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AFA221065674;
	Thu, 19 Mar 2009 15:21:04 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9BD778FC1C;
	Thu, 19 Mar 2009 15:21:04 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFL49p066470;
	Thu, 19 Mar 2009 15:21:04 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFL40i066469;
	Thu, 19 Mar 2009 15:21:04 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191521.n2JFL40i066469@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:21:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190065 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:21:05 -0000

Author: marius
Date: Thu Mar 19 15:21:04 2009
New Revision: 190065
URL: http://svn.freebsd.org/changeset/base/190065

Log:
  MFC: 183762
  
  Enable mpt(4) as some later models have on-board Fusion-MPT
  controllers and it's sufficient endian-clean since r189999.
  While at it, remove the commented out ncr(4) as it doesn't
  even use bus_dma(9), which isn't worth fixing though as sym(4)
  already supports a superset of the controllers driven by ncr(4).

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/conf/GENERIC

Modified: stable/7/sys/sparc64/conf/GENERIC
==============================================================================
--- stable/7/sys/sparc64/conf/GENERIC	Thu Mar 19 15:16:05 2009	(r190064)
+++ stable/7/sys/sparc64/conf/GENERIC	Thu Mar 19 15:21:04 2009	(r190065)
@@ -95,9 +95,8 @@ options 	AHC_REG_PRETTY_PRINT	# Print re
 					# output.  Adds ~128k to driver.
 device		isp		# Qlogic family
 device		ispfw		# Firmware module for Qlogic host adapters
-#device		mpt		# LSI-Logic MPT-Fusion
-#device		ncr		# NCR/Symbios Logic
-device		sym		# NCR/Symbios Logic (newer chipsets + those of `ncr')
+device		mpt		# LSI-Logic MPT-Fusion
+device		sym		# NCR/Symbios/LSI Logic 53C8XX/53C1010/53C1510D
 device		esp		# NCR53c9x (FEPS/FAS366)
 
 # SCSI peripherals

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:30:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A2E8D1065670;
	Thu, 19 Mar 2009 15:30:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8F4208FC0C;
	Thu, 19 Mar 2009 15:30:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFUjAx066725;
	Thu, 19 Mar 2009 15:30:45 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFUjlj066724;
	Thu, 19 Mar 2009 15:30:45 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191530.n2JFUjlj066724@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:30:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190066 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:30:46 -0000

Author: marius
Date: Thu Mar 19 15:30:45 2009
New Revision: 190066
URL: http://svn.freebsd.org/changeset/base/190066

Log:
  MFC: r185006
  
  Micro-optimize spitfire_block_{copy,zero}():
  - Predict the loop as taken as it's more likely that there's still
    data to copy and memory to zero respectively.
  - Don't waste the delay slot.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/support.S

Modified: stable/7/sys/sparc64/sparc64/support.S
==============================================================================
--- stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 15:21:04 2009	(r190065)
+++ stable/7/sys/sparc64/sparc64/support.S	Thu Mar 19 15:30:45 2009	(r190066)
@@ -647,7 +647,7 @@ ENTRY(spitfire_block_copy)
 	stda	%f32, [%o1] %asi
 	add	%o0, 64, %o0
 	sub	%o2, 64, %o2
-	ba	%xcc, 2b
+	ba,pt	%xcc, 2b
 	 add	%o1, 64, %o1
 
 3:	membar	#Sync
@@ -655,10 +655,8 @@ ENTRY(spitfire_block_copy)
 	stda	%f16, [%o1] %asi
 	membar	#Sync
 
-	wr	%g0, 0, %fprs
-
 	retl
-	 nop
+	 wr	%g0, 0, %fprs
 END(spitfire_block_copy)
 
 /*
@@ -704,14 +702,12 @@ ENTRY(spitfire_block_zero)
 	stda	%f0, [%o0 + 128] %asi
 	stda	%f0, [%o0 + 192] %asi
 	sub	%o1, 256, %o1
-	brnz	%o1, 1b
+	brnz,pt	%o1, 1b
 	 add	%o0, 256, %o0
 	membar	#Sync
 
-	wr	%g0, 0, %fprs
-
 	retl
-	 nop
+	 wr	%g0, 0, %fprs
 END(spitfire_block_zero)
 
 	.globl	fpu_fault_end
@@ -806,7 +802,6 @@ ENTRY(bintr)
 ENTRY(eintr)
 	nop
 
-
 /*
  * XXX including sys/gmon.h in genassym.c is not possible due to uintfptr_t
  * badness.

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:32:17 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 02821106566B;
	Thu, 19 Mar 2009 15:32:17 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C92F28FC21;
	Thu, 19 Mar 2009 15:32:16 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFWGsF066810;
	Thu, 19 Mar 2009 15:32:16 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFWGKI066809;
	Thu, 19 Mar 2009 15:32:16 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191532.n2JFWGKI066809@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:32:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190067 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:32:17 -0000

Author: marius
Date: Thu Mar 19 15:32:16 2009
New Revision: 190067
URL: http://svn.freebsd.org/changeset/base/190067

Log:
  MFC: r185007
  
  Use the spitfire VIS block copy/zero functions also with cheetah-
  class CPUs. In theory one could also use versions additionally
  taking advantage of the prefetch cache with cheetah-class CPUs,
  in my worldstone runs these either didn't provide extra speedup
  (USIII+) in comparison to the existing spitfire versions or were
  even slightly slower (USIIIi) though, so they aren't committed
  for now.
  The basic problem leading to the VIS-based copy/zero functions
  being initially disabled for cheetah-class CPUs was solved by
  letting cheetah_init() clear DCR_IFPOE.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/sparc64/machdep.c

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 15:30:45 2009	(r190066)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 15:32:16 2009	(r190067)
@@ -387,6 +387,12 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 		case CPU_IMPL_ULTRASPARCII:
 		case CPU_IMPL_ULTRASPARCIIi:
 		case CPU_IMPL_ULTRASPARCIIe:
+		case CPU_IMPL_ULTRASPARCIII:	/* NB: we've disabled P$. */
+		case CPU_IMPL_ULTRASPARCIIIp:
+		case CPU_IMPL_ULTRASPARCIIIi:
+		case CPU_IMPL_ULTRASPARCIV:
+		case CPU_IMPL_ULTRASPARCIVp:
+		case CPU_IMPL_ULTRASPARCIIIip:
 			cpu_block_copy = spitfire_block_copy;
 			cpu_block_zero = spitfire_block_zero;
 			break;
@@ -773,7 +779,7 @@ sparc64_shutdown_final(void *dummy, int 
 	/* Turn the power off? */
 	if ((howto & RB_POWEROFF) != 0)
 		cpu_shutdown(&args);
-	/* In case of halt, return to the firmware */
+	/* In case of halt, return to the firmware. */
 	if ((howto & RB_HALT) != 0)
 		cpu_halt();
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:35:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3D5A5106564A;
	Thu, 19 Mar 2009 15:35:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2A5288FC1F;
	Thu, 19 Mar 2009 15:35:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFZYwD066961;
	Thu, 19 Mar 2009 15:35:34 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFZYh5066959;
	Thu, 19 Mar 2009 15:35:34 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191535.n2JFZYh5066959@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 15:35:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190068 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/puc dev/uart
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:35:35 -0000

Author: jhb
Date: Thu Mar 19 15:35:33 2009
New Revision: 190068
URL: http://svn.freebsd.org/changeset/base/190068

Log:
  MFC: Add support for the single-port NetMos NM9835 serial adapter.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/puc/pucdata.c
  stable/7/sys/dev/uart/uart_bus_pci.c

Modified: stable/7/sys/dev/puc/pucdata.c
==============================================================================
--- stable/7/sys/dev/puc/pucdata.c	Thu Mar 19 15:32:16 2009	(r190067)
+++ stable/7/sys/dev/puc/pucdata.c	Thu Mar 19 15:35:33 2009	(r190068)
@@ -743,6 +743,18 @@ const struct puc_cfg puc_pci_devices[] =
 	    PUC_PORT_2P, 0x10, 8, 0,
 	}, 
 
+	/*
+	 * This is more specific than the generic NM9835 entry that follows, and
+	 * is placed here to _prevent_ puc from claiming this single port card.
+	 *
+	 * uart(4) will claim this device.
+	 */
+	{   0x9710, 0x9835, 0x1000, 1,
+	    "NetMos NM9835 based 1-port serial",
+	    DEFAULT_RCLK,
+	    PUC_PORT_1S, 0x10, 4, 0,
+	},
+
 	{   0x9710, 0x9835, 0xffff, 0,
 	    "NetMos NM9835 Dual UART and 1284 Printer port",
 	    DEFAULT_RCLK,

Modified: stable/7/sys/dev/uart/uart_bus_pci.c
==============================================================================
--- stable/7/sys/dev/uart/uart_bus_pci.c	Thu Mar 19 15:32:16 2009	(r190067)
+++ stable/7/sys/dev/uart/uart_bus_pci.c	Thu Mar 19 15:35:33 2009	(r190068)
@@ -109,6 +109,7 @@ static struct pci_id pci_ns8250_ids[] = 
 { 0x1415, 0x950b, 0xffff, 0, "Oxford Semiconductor OXCB950 Cardbus 16950 UART",
 	0x10, 16384000 },
 { 0x151f, 0x0000, 0xffff, 0, "TOPIC Semiconductor TP560 56k modem", 0x10 },
+{ 0x9710, 0x9835, 0x1000, 1, "NetMos NM9835 Serial Port", 0x10 },
 { 0xdeaf, 0x9051, 0xffff, 0, "Middle Digital PC Weasel Serial Port", 0x10 },
 { 0xffff, 0, 0xffff, 0, NULL, 0, 0}
 };

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:40:40 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 699C810656BF;
	Thu, 19 Mar 2009 15:40:40 +0000 (UTC) (envelope-from gnn@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 576838FC27;
	Thu, 19 Mar 2009 15:40:40 +0000 (UTC) (envelope-from gnn@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFeehg067128;
	Thu, 19 Mar 2009 15:40:40 GMT (envelope-from gnn@svn.freebsd.org)
Received: (from gnn@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFee5p067127;
	Thu, 19 Mar 2009 15:40:40 GMT (envelope-from gnn@svn.freebsd.org)
Message-Id: <200903191540.n2JFee5p067127@svn.freebsd.org>
From: "George V. Neville-Neil" 
Date: Thu, 19 Mar 2009 15:40:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-svnadmin@freebsd.org
X-SVN-Group: svnadmin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190069 - svnadmin/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:40:41 -0000

Author: gnn
Date: Thu Mar 19 15:40:39 2009
New Revision: 190069
URL: http://svn.freebsd.org/changeset/base/190069

Log:
  Re-add my lost mentees after the switch to svn from cvs.

Modified:
  svnadmin/conf/mentors

Modified: svnadmin/conf/mentors
==============================================================================
--- svnadmin/conf/mentors	Thu Mar 19 15:35:33 2009	(r190068)
+++ svnadmin/conf/mentors	Thu Mar 19 15:40:39 2009	(r190069)
@@ -15,11 +15,15 @@ cbzimmer	sam
 dchagin		kib
 eri		mlaier		Co-mentor: thompsa
 fabient		jkoshy
+ivoras		gnn
 jamie		bz		Co-mentor: brooks
+jinmei		gnn
+lstewart	gnn
 rdivacky	ed
 remko		imp
 sbruno		scottl
 sson		jb
 trasz		rwatson
+vanhu		gnn
 versus		dds
 zec		julian		Co-mentor: silby

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:40:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 01E651065693;
	Thu, 19 Mar 2009 15:40:44 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CD4578FC21;
	Thu, 19 Mar 2009 15:40:44 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFeicE067168;
	Thu, 19 Mar 2009 15:40:44 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFeiLb067165;
	Thu, 19 Mar 2009 15:40:44 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191540.n2JFeiLb067165@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 15:40:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190070 - in stable/7/sys: . boot/i386/libi386
	contrib/pf dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:40:49 -0000

Author: jhb
Date: Thu Mar 19 15:40:44 2009
New Revision: 190070
URL: http://svn.freebsd.org/changeset/base/190070

Log:
  MFC: Teach the BIOS CD driver to use bounce buffers when the destination
  address is > 1 MB.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/i386/libi386/bioscd.c
  stable/7/sys/boot/i386/libi386/biosdisk.c
  stable/7/sys/boot/i386/libi386/libi386.h
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/boot/i386/libi386/bioscd.c
==============================================================================
--- stable/7/sys/boot/i386/libi386/bioscd.c	Thu Mar 19 15:40:39 2009	(r190069)
+++ stable/7/sys/boot/i386/libi386/bioscd.c	Thu Mar 19 15:40:44 2009	(r190070)
@@ -173,9 +173,9 @@ bc_add(int biosdev)
 static void
 bc_print(int verbose)
 {
-	int i;
 	char line[80];
-    
+	int i;
+
 	for (i = 0; i < nbcinfo; i++) {
 		sprintf(line, "    cd%d: Device 0x%x\n", i,
 		    bcinfo[i].bc_sp.sp_devicespec);
@@ -235,7 +235,7 @@ bc_strategy(void *devdata, int rw, daddr
 	if (dblk % (BIOSCD_SECSIZE / DEV_BSIZE) != 0)
 		return (EINVAL);
 	dblk /= (BIOSCD_SECSIZE / DEV_BSIZE);
-	DEBUG("read %d from %d to %p", blks, dblk, buf);
+	DEBUG("read %d from %lld to %p", blks, dblk, buf);
 
 	if (rsize)
 		*rsize = 0;
@@ -244,9 +244,9 @@ bc_strategy(void *devdata, int rw, daddr
 		return (EIO);
 	}
 #ifdef BD_SUPPORT_FRAGS
-	DEBUG("bc_strategy: frag read %d from %d+%d to %p", 
+	DEBUG("frag read %d from %lld+%d to %p", 
 	    fragsize, dblk, blks, buf + (blks * BIOSCD_SECSIZE));
-	if (fragsize && bc_read(unit, dblk + blks, 1, fragsize)) {
+	if (fragsize && bc_read(unit, dblk + blks, 1, fragbuf)) {
 		DEBUG("frag read error");
 		return(EIO);
 	}
@@ -257,11 +257,15 @@ bc_strategy(void *devdata, int rw, daddr
 	return (0);
 }
 
+/* Max number of sectors to bounce-buffer at a time. */
+#define	CD_BOUNCEBUF	8
+
 static int
 bc_read(int unit, daddr_t dblk, int blks, caddr_t dest)
 {
-	u_int result, retry;
-	static unsigned short packet[8];
+	u_int maxfer, resid, result, retry, x;
+	caddr_t bbuf, p, xp;
+	static struct edd_packet packet;
 	int biosdev;
 #ifdef DISK_DEBUG
 	int error;
@@ -275,47 +279,77 @@ bc_read(int unit, daddr_t dblk, int blks
 	if (blks == 0)
 		return (0);
 
+	/* Decide whether we have to bounce */
+	if (VTOP(dest) >> 20 != 0) {
+		/* 
+		 * The destination buffer is above first 1MB of
+		 * physical memory so we have to arrange a suitable
+		 * bounce buffer.
+		 */
+		x = min(CD_BOUNCEBUF, (unsigned)blks);
+		bbuf = alloca(x * BIOSCD_SECSIZE);
+		maxfer = x;
+	} else {
+		bbuf = NULL;
+		maxfer = 0;
+	}
+	
 	biosdev = bc_unit2bios(unit);
-	/*
-	 * Loop retrying the operation a couple of times.  The BIOS
-	 * may also retry.
-	 */
-	for (retry = 0; retry < 3; retry++) {
-		/* If retrying, reset the drive */
-		if (retry > 0) {
+	resid = blks;
+	p = dest;
+
+	while (resid > 0) {
+		if (bbuf)
+			xp = bbuf;
+		else
+			xp = p;
+		x = resid;
+		if (maxfer > 0)
+			x = min(x, maxfer);
+
+		/*
+		 * Loop retrying the operation a couple of times.  The BIOS
+		 * may also retry.
+		 */
+		for (retry = 0; retry < 3; retry++) {
+			/* If retrying, reset the drive */
+			if (retry > 0) {
+				v86.ctl = V86_FLAGS;
+				v86.addr = 0x13;
+				v86.eax = 0;
+				v86.edx = biosdev;
+				v86int();
+			}
+
+			packet.len = 0x10;
+			packet.count = x;
+			packet.offset = VTOPOFF(xp);
+			packet.seg = VTOPSEG(xp);
+			packet.lba = dblk;
 			v86.ctl = V86_FLAGS;
 			v86.addr = 0x13;
-			v86.eax = 0;
+			v86.eax = 0x4200;
 			v86.edx = biosdev;
+			v86.ds = VTOPSEG(&packet);
+			v86.esi = VTOPOFF(&packet);
 			v86int();
+			result = (v86.efl & PSL_C);
+			if (result == 0)
+				break;
 		}
-	    
-		packet[0] = 0x10;
-		packet[1] = blks;
-		packet[2] = VTOPOFF(dest);
-		packet[3] = VTOPSEG(dest);
-		packet[4] = dblk & 0xffff;
-		packet[5] = dblk >> 16;
-		packet[6] = 0;
-		packet[7] = 0;
-		v86.ctl = V86_FLAGS;
-		v86.addr = 0x13;
-		v86.eax = 0x4200;
-		v86.edx = biosdev;
-		v86.ds = VTOPSEG(packet);
-		v86.esi = VTOPOFF(packet);
-		v86int();
-		result = (v86.efl & PSL_C);
-		if (result == 0)
-			break;
-	}
 	
 #ifdef DISK_DEBUG
-	error = (v86.eax >> 8) & 0xff;
+		error = (v86.eax >> 8) & 0xff;
 #endif
-	DEBUG("%d sectors from %ld to %p (0x%x) %s", blks, dblk, dest,
-	    VTOP(dest), result ? "failed" : "ok");
-	DEBUG("unit %d  status 0x%x",  unit, error);
+		DEBUG("%d sectors from %lld to %p (0x%x) %s", x, dblk, p,
+		    VTOP(p), result ? "failed" : "ok");
+		DEBUG("unit %d  status 0x%x", unit, error);
+		if (bbuf != NULL)
+			bcopy(bbuf, p, x * BIOSCD_SECSIZE);
+		p += (x * BIOSCD_SECSIZE);
+		dblk += x;
+		resid -= x;
+	}
 	
 /*	hexdump(dest, (blks * BIOSCD_SECSIZE)); */
 	return(0);

Modified: stable/7/sys/boot/i386/libi386/biosdisk.c
==============================================================================
--- stable/7/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 15:40:39 2009	(r190069)
+++ stable/7/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 15:40:44 2009	(r190070)
@@ -1109,14 +1109,6 @@ bd_realstrategy(void *devdata, int rw, d
 /* Max number of sectors to bounce-buffer if the request crosses a 64k boundary */
 #define FLOPPY_BOUNCEBUF	18
 
-struct edd_packet {
-    uint16_t	len;
-    uint16_t	count;
-    uint16_t	offset;
-    uint16_t	seg;
-    uint64_t	lba;
-};
-
 static int
 bd_edd_io(struct open_disk *od, daddr_t dblk, int blks, caddr_t dest, int write)
 {

Modified: stable/7/sys/boot/i386/libi386/libi386.h
==============================================================================
--- stable/7/sys/boot/i386/libi386/libi386.h	Thu Mar 19 15:40:39 2009	(r190069)
+++ stable/7/sys/boot/i386/libi386/libi386.h	Thu Mar 19 15:40:44 2009	(r190070)
@@ -52,6 +52,14 @@ struct i386_devdesc
     } d_kind;
 };
 
+struct edd_packet {
+    uint16_t	len;
+    uint16_t	count;
+    uint16_t	offset;
+    uint16_t	seg;
+    uint64_t	lba;
+};
+                 
 int	i386_getdev(void **vdev, const char *devspec, const char **path);
 char	*i386_fmtdev(void *vdev);
 int	i386_setcurrdev(struct env_var *ev, int flags, const void *value);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:44:13 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 86409106571C;
	Thu, 19 Mar 2009 15:44:13 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 72BE38FC0C;
	Thu, 19 Mar 2009 15:44:13 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFiDCZ067297;
	Thu, 19 Mar 2009 15:44:13 GMT (envelope-from vanhu@svn.freebsd.org)
Received: (from vanhu@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFiD63067296;
	Thu, 19 Mar 2009 15:44:13 GMT (envelope-from vanhu@svn.freebsd.org)
Message-Id: <200903191544.n2JFiD63067296@svn.freebsd.org>
From: VANHULLEBUS Yvan 
Date: Thu, 19 Mar 2009 15:44:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190071 - head/sys/netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:44:15 -0000

Author: vanhu
Date: Thu Mar 19 15:44:13 2009
New Revision: 190071
URL: http://svn.freebsd.org/changeset/base/190071

Log:
  Fixed style for some comments
  
  Approved by:	gnn(mentor)

Modified:
  head/sys/netipsec/key.c

Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c	Thu Mar 19 15:40:44 2009	(r190070)
+++ head/sys/netipsec/key.c	Thu Mar 19 15:44:13 2009	(r190071)
@@ -2687,7 +2687,9 @@ key_delsah(sah)
 			if (sav->refcnt == 0) {
 				/* sanity check */
 				KEY_CHKSASTATE(state, sav->state, __func__);
-				/* do NOT call KEY_FREESAV here: it will only delete the sav if refcnt == 1,
+				/* 
+				 * do NOT call KEY_FREESAV here:
+				 * it will only delete the sav if refcnt == 1,
 				 * where we already know that refcnt == 0
 				 */
 				key_delsav(sav);
@@ -4134,8 +4136,7 @@ key_flush_sad(time_t now)
 
 		/* if LARVAL entry doesn't become MATURE, delete it. */
 		LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_LARVAL], chain, nextsav) {
-			/* Need to also check refcnt for a larval SA ???
-			 */
+			/* Need to also check refcnt for a larval SA ??? */
 			if (now - sav->created > V_key_larval_lifetime)
 				KEY_FREESAV(&sav);
 		}

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:45:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 63F281065796;
	Thu, 19 Mar 2009 15:45:44 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3642C8FC15;
	Thu, 19 Mar 2009 15:45:44 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFjier067388;
	Thu, 19 Mar 2009 15:45:44 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFjiIN067387;
	Thu, 19 Mar 2009 15:45:44 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191545.n2JFjiIN067387@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:45:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190072 - stable/7/share/man/man9
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:45:46 -0000

Author: marius
Date: Thu Mar 19 15:45:43 2009
New Revision: 190072
URL: http://svn.freebsd.org/changeset/base/190072

Log:
  MFC: r179694
  
  Mark "highaddr" and "lowaddr" appropriately. Change "dma" to "DMA".
  
  Fix spelling mistage found by rodrigc@.
  
  Reviewed by:	rodrigc, danger

Modified:
  stable/7/share/man/man9/   (props changed)
  stable/7/share/man/man9/bus_dma.9

Modified: stable/7/share/man/man9/bus_dma.9
==============================================================================
--- stable/7/share/man/man9/bus_dma.9	Thu Mar 19 15:44:13 2009	(r190071)
+++ stable/7/share/man/man9/bus_dma.9	Thu Mar 19 15:45:43 2009	(r190072)
@@ -283,7 +283,7 @@ Client specified lock/mutex manipulation
 This will be called from
 within busdma whenever a client lock needs to be manipulated.
 In its current form, the function will be called immediately before
-the callback for a dma load operation that has been deferred with
+the callback for a DMA load operation that has been deferred with
 .Dv BUS_DMA_LOCK
 and immediately after with
 .Dv BUS_DMA_UNLOCK .
@@ -364,17 +364,26 @@ indicates that there are no boundary res
 Bounds of the window of bus address space that
 .Em cannot
 be directly accessed by the device.
-The window contains all addresses greater than lowaddr and
-less than or equal to highaddr.
-For example, a device incapable of DMA above 4GB, would specify
-a highaddr of
+The window contains all addresses greater than
+.Fa lowaddr
+and less than or equal to
+.Fa highaddr .
+For example, a device incapable of DMA above 4GB, would specify a
+.Fa highaddr
+of
 .Dv BUS_SPACE_MAXADDR
-and a lowaddr of
+and a
+.Fa lowaddr
+of
 .Dv BUS_SPACE_MAXADDR_32BIT .
-Similarly a device that can only dma to addresses bellow 16MB would
-specify a highaddr of
+Similarly a device that can only perform DMA to addresses below
+16MB would specify a
+.Fa highaddr
+of
 .Dv BUS_SPACE_MAXADDR
-and a lowaddr of
+and a
+.Fa lowaddr
+of
 .Dv BUS_SPACE_MAXADDR_24BIT .
 Some implementations requires that some region of device visible
 address space, overlapping available host memory, be outside the

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:46:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0225110656E9;
	Thu, 19 Mar 2009 15:46:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D93588FC16;
	Thu, 19 Mar 2009 15:46:33 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFkXm7067441;
	Thu, 19 Mar 2009 15:46:33 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFkXBa067438;
	Thu, 19 Mar 2009 15:46:33 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191546.n2JFkXBa067438@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 15:46:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190073 - in stable/6/sys: . boot/i386/libi386
	contrib/pf dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:46:35 -0000

Author: jhb
Date: Thu Mar 19 15:46:33 2009
New Revision: 190073
URL: http://svn.freebsd.org/changeset/base/190073

Log:
  MFC: Teach the BIOS CD driver to use bounce buffers when the destination
  address is > 1 MB.

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/boot/i386/libi386/bioscd.c
  stable/6/sys/boot/i386/libi386/biosdisk.c
  stable/6/sys/boot/i386/libi386/libi386.h
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/boot/i386/libi386/bioscd.c
==============================================================================
--- stable/6/sys/boot/i386/libi386/bioscd.c	Thu Mar 19 15:45:43 2009	(r190072)
+++ stable/6/sys/boot/i386/libi386/bioscd.c	Thu Mar 19 15:46:33 2009	(r190073)
@@ -173,9 +173,9 @@ bc_add(int biosdev)
 static void
 bc_print(int verbose)
 {
-	int i;
 	char line[80];
-    
+	int i;
+
 	for (i = 0; i < nbcinfo; i++) {
 		sprintf(line, "    cd%d: Device 0x%x\n", i,
 		    bcinfo[i].bc_sp.sp_devicespec);
@@ -235,7 +235,7 @@ bc_strategy(void *devdata, int rw, daddr
 	if (dblk % (BIOSCD_SECSIZE / DEV_BSIZE) != 0)
 		return (EINVAL);
 	dblk /= (BIOSCD_SECSIZE / DEV_BSIZE);
-	DEBUG("read %d from %d to %p", blks, dblk, buf);
+	DEBUG("read %d from %lld to %p", blks, dblk, buf);
 
 	if (rsize)
 		*rsize = 0;
@@ -244,9 +244,9 @@ bc_strategy(void *devdata, int rw, daddr
 		return (EIO);
 	}
 #ifdef BD_SUPPORT_FRAGS
-	DEBUG("bc_strategy: frag read %d from %d+%d to %p", 
+	DEBUG("frag read %d from %lld+%d to %p", 
 	    fragsize, dblk, blks, buf + (blks * BIOSCD_SECSIZE));
-	if (fragsize && bc_read(unit, dblk + blks, 1, fragsize)) {
+	if (fragsize && bc_read(unit, dblk + blks, 1, fragbuf)) {
 		DEBUG("frag read error");
 		return(EIO);
 	}
@@ -257,11 +257,15 @@ bc_strategy(void *devdata, int rw, daddr
 	return (0);
 }
 
+/* Max number of sectors to bounce-buffer at a time. */
+#define	CD_BOUNCEBUF	8
+
 static int
 bc_read(int unit, daddr_t dblk, int blks, caddr_t dest)
 {
-	u_int result, retry;
-	static unsigned short packet[8];
+	u_int maxfer, resid, result, retry, x;
+	caddr_t bbuf, p, xp;
+	static struct edd_packet packet;
 	int biosdev;
 #ifdef DISK_DEBUG
 	int error;
@@ -275,47 +279,77 @@ bc_read(int unit, daddr_t dblk, int blks
 	if (blks == 0)
 		return (0);
 
+	/* Decide whether we have to bounce */
+	if (VTOP(dest) >> 20 != 0) {
+		/* 
+		 * The destination buffer is above first 1MB of
+		 * physical memory so we have to arrange a suitable
+		 * bounce buffer.
+		 */
+		x = min(CD_BOUNCEBUF, (unsigned)blks);
+		bbuf = alloca(x * BIOSCD_SECSIZE);
+		maxfer = x;
+	} else {
+		bbuf = NULL;
+		maxfer = 0;
+	}
+	
 	biosdev = bc_unit2bios(unit);
-	/*
-	 * Loop retrying the operation a couple of times.  The BIOS
-	 * may also retry.
-	 */
-	for (retry = 0; retry < 3; retry++) {
-		/* If retrying, reset the drive */
-		if (retry > 0) {
+	resid = blks;
+	p = dest;
+
+	while (resid > 0) {
+		if (bbuf)
+			xp = bbuf;
+		else
+			xp = p;
+		x = resid;
+		if (maxfer > 0)
+			x = min(x, maxfer);
+
+		/*
+		 * Loop retrying the operation a couple of times.  The BIOS
+		 * may also retry.
+		 */
+		for (retry = 0; retry < 3; retry++) {
+			/* If retrying, reset the drive */
+			if (retry > 0) {
+				v86.ctl = V86_FLAGS;
+				v86.addr = 0x13;
+				v86.eax = 0;
+				v86.edx = biosdev;
+				v86int();
+			}
+
+			packet.len = 0x10;
+			packet.count = x;
+			packet.offset = VTOPOFF(xp);
+			packet.seg = VTOPSEG(xp);
+			packet.lba = dblk;
 			v86.ctl = V86_FLAGS;
 			v86.addr = 0x13;
-			v86.eax = 0;
+			v86.eax = 0x4200;
 			v86.edx = biosdev;
+			v86.ds = VTOPSEG(&packet);
+			v86.esi = VTOPOFF(&packet);
 			v86int();
+			result = (v86.efl & PSL_C);
+			if (result == 0)
+				break;
 		}
-	    
-		packet[0] = 0x10;
-		packet[1] = blks;
-		packet[2] = VTOPOFF(dest);
-		packet[3] = VTOPSEG(dest);
-		packet[4] = dblk & 0xffff;
-		packet[5] = dblk >> 16;
-		packet[6] = 0;
-		packet[7] = 0;
-		v86.ctl = V86_FLAGS;
-		v86.addr = 0x13;
-		v86.eax = 0x4200;
-		v86.edx = biosdev;
-		v86.ds = VTOPSEG(packet);
-		v86.esi = VTOPOFF(packet);
-		v86int();
-		result = (v86.efl & PSL_C);
-		if (result == 0)
-			break;
-	}
 	
 #ifdef DISK_DEBUG
-	error = (v86.eax >> 8) & 0xff;
+		error = (v86.eax >> 8) & 0xff;
 #endif
-	DEBUG("%d sectors from %ld to %p (0x%x) %s", blks, dblk, dest,
-	    VTOP(dest), result ? "failed" : "ok");
-	DEBUG("unit %d  status 0x%x",  unit, error);
+		DEBUG("%d sectors from %lld to %p (0x%x) %s", x, dblk, p,
+		    VTOP(p), result ? "failed" : "ok");
+		DEBUG("unit %d  status 0x%x", unit, error);
+		if (bbuf != NULL)
+			bcopy(bbuf, p, x * BIOSCD_SECSIZE);
+		p += (x * BIOSCD_SECSIZE);
+		dblk += x;
+		resid -= x;
+	}
 	
 /*	hexdump(dest, (blks * BIOSCD_SECSIZE)); */
 	return(0);

Modified: stable/6/sys/boot/i386/libi386/biosdisk.c
==============================================================================
--- stable/6/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 15:45:43 2009	(r190072)
+++ stable/6/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 15:46:33 2009	(r190073)
@@ -1105,14 +1105,6 @@ bd_realstrategy(void *devdata, int rw, d
 /* Max number of sectors to bounce-buffer if the request crosses a 64k boundary */
 #define FLOPPY_BOUNCEBUF	18
 
-struct edd_packet {
-    uint16_t	len;
-    uint16_t	count;
-    uint16_t	offset;
-    uint16_t	seg;
-    uint64_t	lba;
-};
-
 static int
 bd_edd_io(struct open_disk *od, daddr_t dblk, int blks, caddr_t dest, int write)
 {

Modified: stable/6/sys/boot/i386/libi386/libi386.h
==============================================================================
--- stable/6/sys/boot/i386/libi386/libi386.h	Thu Mar 19 15:45:43 2009	(r190072)
+++ stable/6/sys/boot/i386/libi386/libi386.h	Thu Mar 19 15:46:33 2009	(r190073)
@@ -57,6 +57,14 @@ struct i386_devdesc
     } d_kind;
 };
 
+struct edd_packet {
+    uint16_t	len;
+    uint16_t	count;
+    uint16_t	offset;
+    uint16_t	seg;
+    uint64_t	lba;
+};
+                 
 int	i386_getdev(void **vdev, const char *devspec, const char **path);
 char	*i386_fmtdev(void *vdev);
 int	i386_setcurrdev(struct env_var *ev, int flags, const void *value);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:49:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C7B4106566C;
	Thu, 19 Mar 2009 15:49:31 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 19CC08FC1A;
	Thu, 19 Mar 2009 15:49:31 +0000 (UTC) (envelope-from avg@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFnUmC067577;
	Thu, 19 Mar 2009 15:49:31 GMT (envelope-from avg@svn.freebsd.org)
Received: (from avg@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFnUku067576;
	Thu, 19 Mar 2009 15:49:30 GMT (envelope-from avg@svn.freebsd.org)
Message-Id: <200903191549.n2JFnUku067576@svn.freebsd.org>
From: Andriy Gapon 
Date: Thu, 19 Mar 2009 15:49:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190074 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb fs/udf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:49:31 -0000

Author: avg
Date: Thu Mar 19 15:49:30 2009
New Revision: 190074
URL: http://svn.freebsd.org/changeset/base/190074

Log:
  MFC 179060: udf: fix and speedup timestamp calculations
  
  markus and emax are notified
  
  Approved by:	jhb (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/fs/udf/udf_vnops.c

Modified: stable/7/sys/fs/udf/udf_vnops.c
==============================================================================
--- stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 15:46:33 2009	(r190073)
+++ stable/7/sys/fs/udf/udf_vnops.c	Thu Mar 19 15:49:30 2009	(r190074)
@@ -188,9 +188,9 @@ udf_open(struct vop_open_args *ap) {
 	return 0;
 }
 
-static int mon_lens[2][12] = {
-	{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
-	{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
+static const int mon_lens[2][12] = {
+	{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334},
+	{0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}
 };
 
 static int
@@ -206,25 +206,25 @@ udf_isaleapyear(int year)
 }
 
 /*
- * XXX This is just a rough hack.  Daylight savings isn't calculated and tv_nsec
- * is ignored.
  * Timezone calculation compliments of Julian Elischer .
  */
 static void
 udf_timetotimespec(struct timestamp *time, struct timespec *t)
 {
-	int i, lpyear, daysinyear, year;
+	int i, lpyear, daysinyear, year, startyear;
 	union {
 		uint16_t	u_tz_offset;
 		int16_t		s_tz_offset;
 	} tz;
 
-	t->tv_nsec = 0;
-
-	/* DirectCD seems to like using bogus year values */
+	/*
+	 * DirectCD seems to like using bogus year values.
+	 * Don't trust time->month as it will be used for an array index.
+	 */
 	year = le16toh(time->year);
-	if (year < 1970) {
+	if (year < 1970 || time->month < 1 || time->month > 12) {
 		t->tv_sec = 0;
+		t->tv_nsec = 0;
 		return;
 	}
 
@@ -232,25 +232,37 @@ udf_timetotimespec(struct timestamp *tim
 	t->tv_sec = time->second;
 	t->tv_sec += time->minute * 60;
 	t->tv_sec += time->hour * 3600;
-	t->tv_sec += time->day * 3600 * 24;
+	t->tv_sec += (time->day - 1) * 3600 * 24;
 
 	/* Calculate the month */
 	lpyear = udf_isaleapyear(year);
-	for (i = 1; i < time->month; i++)
-		t->tv_sec += mon_lens[lpyear][i] * 3600 * 24;
+	t->tv_sec += mon_lens[lpyear][time->month - 1] * 3600 * 24;
 
 	/* Speed up the calculation */
-	if (year > 1979)
+	startyear = 1970;
+	if (year > 2009) {
+		t->tv_sec += 1262304000;
+		startyear += 40;
+	} else if (year > 1999) {
+		t->tv_sec += 946684800;
+		startyear += 30;
+	} else if (year > 1989) {
+		t->tv_sec += 631152000;
+		startyear += 20;
+	} else if (year > 1979) {
 		t->tv_sec += 315532800;
-	if (year > 1989)
-		t->tv_sec += 315619200;
-	if (year > 1999)
-		t->tv_sec += 315532800;
-	for (i = 2000; i < year; i++) {
-		daysinyear = udf_isaleapyear(i) + 365 ;
-		t->tv_sec += daysinyear * 3600 * 24;
+		startyear += 10;
 	}
 
+	daysinyear = (year - startyear) * 365;
+	for (i = startyear; i < year; i++)
+		daysinyear += udf_isaleapyear(i);
+	t->tv_sec += daysinyear * 3600 * 24;
+
+	/* Calculate microseconds */
+	t->tv_nsec = time->centisec * 10000 + time->hund_usec * 100 +
+	    time->usec;
+
 	/*
 	 * Calculate the time zone.  The timezone is 12 bit signed 2's
 	 * complement, so we gotta do some extra magic to handle it right.
@@ -259,7 +271,7 @@ udf_timetotimespec(struct timestamp *tim
 	tz.u_tz_offset &= 0x0fff;
 	if (tz.u_tz_offset & 0x0800)
 		tz.u_tz_offset |= 0xf000;	/* extend the sign to 16 bits */
-	if ((time->type_tz & 0x1000) && (tz.s_tz_offset != -2047))
+	if ((le16toh(time->type_tz) & 0x1000) && (tz.s_tz_offset != -2047))
 		t->tv_sec -= tz.s_tz_offset * 60;
 
 	return;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:50:46 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1037D1065676;
	Thu, 19 Mar 2009 15:50:46 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F2ED88FC0A;
	Thu, 19 Mar 2009 15:50:45 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFojZT067665;
	Thu, 19 Mar 2009 15:50:45 GMT (envelope-from vanhu@svn.freebsd.org)
Received: (from vanhu@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFojsB067664;
	Thu, 19 Mar 2009 15:50:45 GMT (envelope-from vanhu@svn.freebsd.org)
Message-Id: <200903191550.n2JFojsB067664@svn.freebsd.org>
From: VANHULLEBUS Yvan 
Date: Thu, 19 Mar 2009 15:50:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190075 - head/sys/netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:50:46 -0000

Author: vanhu
Date: Thu Mar 19 15:50:45 2009
New Revision: 190075
URL: http://svn.freebsd.org/changeset/base/190075

Log:
  Fixed style for some comments
  
  Approved by:	gnn(mentor)

Modified:
  head/sys/netipsec/key.c

Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c	Thu Mar 19 15:49:30 2009	(r190074)
+++ head/sys/netipsec/key.c	Thu Mar 19 15:50:45 2009	(r190075)
@@ -4161,7 +4161,8 @@ key_flush_sad(time_t now)
 			if (sav->lft_s->addtime != 0 &&
 			    now - sav->created > sav->lft_s->addtime) {
 				key_sa_chgstate(sav, SADB_SASTATE_DYING);
-				/* Actually, only send expire message if SA has been used, as it
+				/* 
+				 * Actually, only send expire message if SA has been used, as it
 				 * was done before, but should we always send such message, and let IKE
 				 * daemon decide if it should be renegociated or not ?
 				 * XXX expire message will actually NOT be sent if SA is only used

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 15:59:30 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 57BE71065794;
	Thu, 19 Mar 2009 15:59:30 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 18DE58FC1A;
	Thu, 19 Mar 2009 15:59:30 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JFxTMO067944;
	Thu, 19 Mar 2009 15:59:29 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JFxT2I067943;
	Thu, 19 Mar 2009 15:59:29 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191559.n2JFxT2I067943@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 15:59:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190076 - stable/6/share/man/man9
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 15:59:31 -0000

Author: marius
Date: Thu Mar 19 15:59:29 2009
New Revision: 190076
URL: http://svn.freebsd.org/changeset/base/190076

Log:
  r167274, r179694, r182816, r182962, r185004
  
  - Some minor tweaks and updates to bus_dma(9) including some additional notes
    on the address filter and locking callback.
  - Mark "highaddr" and "lowaddr" appropriately. Change "dma" to "DMA".
  - Fix spelling mistage found by rodrigc@.
  - Document BUS_DMA_NOCACHE.
  - Remove unneeded comma.
  - For maximum flexibility, sparc64 supports BUS_DMA_COHERENT also
    with bus_dmamap_create() and not only bus_dmamem_alloc() so move
    the description of this flag up accordingly in order to document
    this fact. While at, it refine this description with an application
    example.

Modified:
  stable/6/share/man/man9/bus_dma.9

Modified: stable/6/share/man/man9/bus_dma.9
==============================================================================
--- stable/6/share/man/man9/bus_dma.9	Thu Mar 19 15:50:45 2009	(r190075)
+++ stable/6/share/man/man9/bus_dma.9	Thu Mar 19 15:59:29 2009	(r190076)
@@ -60,7 +60,7 @@
 .\" $FreeBSD$
 .\" $NetBSD: bus_dma.9,v 1.25 2002/10/14 13:43:16 wiz Exp $
 .\"
-.Dd August 31, 2006
+.Dd November 16, 2008
 .Dt BUS_DMA 9
 .Os
 .Sh NAME
@@ -153,7 +153,7 @@ for devices whose DMA address restrictio
 by a single window.
 The
 .Fa filtarg
-is client specified during tag creation to be passed to all
+argument is specified by the client during tag creation to be passed to all
 invocations of the callback.
 The
 .Fa testaddr
@@ -163,11 +163,12 @@ The filter function operates on the set 
 to
 .Ql trunc_page(testaddr) + PAGE_SIZE - 1 ,
 inclusive.
-The filter function should return zero for any mapping in this range
-that can be accommodated by the device and non-zero otherwise.
+The filter function should return zero if any mapping in this range
+can be accommodated by the device and non-zero otherwise.
 .It Vt bus_dma_segment_t
 A machine-dependent type that describes individual
 DMA segments.
+It contains the following fields:
 .Bd -literal
 	bus_addr_t	ds_addr;
 	bus_size_t	ds_len;
@@ -213,13 +214,13 @@ The
 .Fa segs
 and
 .Fa nseg
-parameters describe an array of
+arguments describe an array of
 .Vt bus_dma_segment_t
 structures that represent the mapping.
 This array is only valid within the scope of the callback function.
 The success or failure of the mapping is indicated by the
 .Fa error
-parameter.
+argument.
 More information on the use of callbacks can be found in the
 description of the individual dmamap load functions.
 .It Vt bus_dmamap_callback2_t
@@ -275,14 +276,14 @@ and prior to device access to host memor
 Perform any synchronization required after an update of host memory by the
 device and prior to CPU access to host memory.
 .It Dv BUS_DMASYNC_POSTWRITE
-Perform any synchronization required after the device access to host memory.
+Perform any synchronization required after device access to host memory.
 .El
 .It Vt bus_dma_lock_t
 Client specified lock/mutex manipulation method.
 This will be called from
 within busdma whenever a client lock needs to be manipulated.
 In its current form, the function will be called immediately before
-the callback for a dma load operation that has been deferred with
+the callback for a DMA load operation that has been deferred with
 .Dv BUS_DMA_LOCK
 and immediately after with
 .Dv BUS_DMA_UNLOCK .
@@ -295,14 +296,20 @@ This method is of the format:
 .Fn "lockfunc" "void *lockfunc_arg" "bus_dma_lock_op_t op"
 .El
 .Pp
+The
+.Fa lockfuncarg
+argument is specified by the client during tag creation to be passed to all
+invocations of the callback.
+The
+.Fa op
+argument specifies the lock operation to perform.
+.Pp
 Two
 .Vt lockfunc
 implementations are provided for convenience.
 .Fn busdma_lock_mutex
-performs standard mutex operations on the sleep mutex provided via the
+performs standard mutex operations on the sleep mutex provided via
 .Fa lockfuncarg .
-passed into
-.Fn bus_dma_tag_create .
 .Fn dflt_lock
 will generate a system panic if it is called.
 It is substituted into the tag when
@@ -310,7 +317,8 @@ It is substituted into the tag when
 is passed as
 .Dv NULL
 to
-.Fn bus_dma_tag_create .
+.Fn bus_dma_tag_create
+and is useful for tags that should not be used with deferred load operations.
 .It Vt bus_dma_lock_op_t
 Operations to be performed by the client-specified
 .Fn lockfunc .
@@ -355,17 +363,26 @@ indicates that there are no boundary res
 Bounds of the window of bus address space that
 .Em cannot
 be directly accessed by the device.
-The window contains all addresses greater than lowaddr and
-less than or equal to highaddr.
-For example, a device incapable of DMA above 4GB, would specify
-a highaddr of
+The window contains all addresses greater than
+.Fa lowaddr
+and less than or equal to
+.Fa highaddr .
+For example, a device incapable of DMA above 4GB, would specify a
+.Fa highaddr
+of
 .Dv BUS_SPACE_MAXADDR
-and a lowaddr of
+and a
+.Fa lowaddr
+of
 .Dv BUS_SPACE_MAXADDR_32BIT .
-Similarly a device that can only dma to addresses bellow 16MB would
-specify a highaddr of
+Similarly a device that can only perform DMA to addresses below
+16MB would specify a
+.Fa highaddr
+of
 .Dv BUS_SPACE_MAXADDR
-and a lowaddr of
+and a
+.Fa lowaddr
+of
 .Dv BUS_SPACE_MAXADDR_24BIT .
 Some implementations requires that some region of device visible
 address space, overlapping available host memory, be outside the
@@ -465,9 +482,23 @@ Arguments are as follows:
 .It Fa dmat
 DMA tag.
 .It Fa flags
-The value of this argument is currently undefined and should be
-specified as
-.Ql 0 .
+Are as follows:
+.Bl -tag -width ".Dv BUS_DMA_COHERENT"
+.It Dv BUS_DMA_COHERENT
+Attempt to map the memory loaded with this map such that cache sync
+operations are as cheap as possible.
+This flag is typically set on maps when the memory loaded with these will
+be accessed by both a CPU and a DMA engine, frequently such as control data
+and as opposed to streamable data such as receive and transmit buffers.
+Use of this flag does not remove the requirement of using
+.Fn bus_dmamap_sync ,
+but it may reduce the cost of performing these operations.
+For
+.Fn bus_dmamap_create ,
+the
+.Dv BUS_DMA_COHERENT
+flag is currently implemented on sparc64.
+.El
 .It Fa mapp
 Pointer to a
 .Vt bus_dmamap_t
@@ -529,6 +560,15 @@ Are as follows:
 .It Dv BUS_DMA_NOWAIT
 The load should not be deferred in case of insufficient mapping resources,
 and instead should return immediately with an appropriate error.
+.It Dv BUS_DMA_NOCACHE
+The allocated memory will not be cached in the processor caches.
+All memory accesses appear on the bus and are executed
+without reordering.
+On the amd64 and i386 architectures this flag results in the
+Strong Uncacheable PAT to be set for the allocated virtual address range.
+The
+.Dv BUS_DMA_NOCACHE
+flag is currently implemented on amd64, i386 and sparc64.
 .El
 .El
 .Pp
@@ -690,15 +730,16 @@ that is to be made available to a device
 To ensure that the data are visible via the device's mapping of that
 memory, the buffer must be loaded and a DMA sync operation of
 .Dv BUS_DMASYNC_PREWRITE
-must be performed.
-If later CPU modifies this buffer again, another
+must be performed after the CPU has updated the buffer and before the device
+access is initiated.
+If the CPU modifies this buffer again later, another
 .Dv BUS_DMASYNC_PREWRITE
-sync operation must be performed before an additional
-access to this memory by a device.
-Conversely, a device updates the memory that is to be read by a CPU.
+sync operation must be performed before an additional device
+access.
+Conversely, suppose a device updates memory that is to be read by a CPU.
 In this case, the buffer must be loaded, and a DMA sync operation of
 .Dv BUS_DMASYNC_PREREAD
-must be performed.
+must be performed before the device access is initiated.
 The CPU will only be able to see the results of this memory update
 once the DMA operation has completed and a
 .Dv BUS_DMASYNC_POSTREAD
@@ -710,7 +751,7 @@ appropriate synchronization operations, 
 Allocates memory that is mapped into KVA at the address returned
 in
 .Fa vaddr
-that is permanently loaded into the newly created
+and that is permanently loaded into the newly created
 .Vt bus_dmamap_t
 returned via
 .Fa mapp .
@@ -732,16 +773,15 @@ If resources are not available,
 .Dv ENOMEM
 is returned.
 .It Dv BUS_DMA_COHERENT
-Attempt to map this memory such that cache sync operations are
-as cheap as possible.
-This flag is typically set on memory that will be accessed by both
-a CPU and a DMA engine, frequently.
-Use of this flag does not remove the requirement of using
-bus_dmamap_sync, but it may reduce the cost of performing
-these operations.
-The
+Attempt to map this memory in a coherent fashion.
+See
+.Fn bus_dmamap_create
+above for a description of this flag.
+For
+.Fn bus_dmamem_alloc ,
+the
 .Dv BUS_DMA_COHERENT
-flag is currently implemented on sparc64 and arm.
+flag is currently implemented on arm and sparc64.
 .It Dv BUS_DMA_ZERO
 Causes the allocated memory to be set to all zeros.
 .El
@@ -753,7 +793,9 @@ where the resulting DMA map will be stor
 .Pp
 The size of memory to be allocated is
 .Fa maxsize
-as specified in
+as specified in the call to
+.Fn bus_dma_tag_create
+for
 .Fa dmat .
 .Pp
 The current implementation of
@@ -801,10 +843,10 @@ transaction,
 .Er ENOMEM
 is returned.
 All
-routines that are not of type,
-.Vt void ,
+routines that are not of type
+.Vt void
 will return 0 on success or an error
-code, as discussed above.
+code on failure as discussed above.
 .Pp
 All
 .Vt void
@@ -878,7 +920,7 @@ called with any non-sleepable locks held
 .El
 .Pp
 All other functions do not have a locking protocol and can thus be
-called with or without and system or driver locks held.
+called with or without any system or driver locks held.
 .Sh SEE ALSO
 .Xr devclass 9 ,
 .Xr device 9 ,

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:03:21 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 919BD1065674;
	Thu, 19 Mar 2009 16:03:21 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7C07C8FC16;
	Thu, 19 Mar 2009 16:03:21 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JG3L2Q068123;
	Thu, 19 Mar 2009 16:03:21 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JG3LMw068119;
	Thu, 19 Mar 2009 16:03:21 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191603.n2JG3LMw068119@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:03:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190077 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:03:22 -0000

Author: marius
Date: Thu Mar 19 16:03:21 2009
New Revision: 190077
URL: http://svn.freebsd.org/changeset/base/190077

Log:
  MFC: r185008, r188456
  
  - Allow the front-end to specify that iommu(4) should disable
    rerun of the streaming cache for silicon bug workarounds.
  - Announce the presence of a streaming cache on attach for
    informational purposes.
  - For performance reasons don't do unnecessary flushes of the
    streaming cache when coherent mappings are synced.
  - Fix some minor style issues.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/bus_private.h
  stable/7/sys/sparc64/include/iommureg.h
  stable/7/sys/sparc64/include/iommuvar.h
  stable/7/sys/sparc64/sparc64/iommu.c

Modified: stable/7/sys/sparc64/include/bus_private.h
==============================================================================
--- stable/7/sys/sparc64/include/bus_private.h	Thu Mar 19 15:59:29 2009	(r190076)
+++ stable/7/sys/sparc64/include/bus_private.h	Thu Mar 19 16:03:21 2009	(r190077)
@@ -66,9 +66,10 @@ struct bus_dmamap {
 	int			dm_flags;		/* (p) */
 };
 
-/* Flag values. */
-#define	DMF_LOADED	1	/* Map is loaded */
-#define	DMF_COHERENT	2	/* Coherent mapping requested */
+/* Flag values */
+#define	DMF_LOADED	(1 << 0)	/* Map is loaded. */
+#define	DMF_COHERENT	(1 << 1)	/* Coherent mapping requested. */
+#define	DMF_STREAMED	(1 << 2)	/* Streaming cache used. */
 
 int sparc64_dma_alloc_map(bus_dma_tag_t dmat, bus_dmamap_t *mapp);
 void sparc64_dma_free_map(bus_dma_tag_t dmat, bus_dmamap_t map);

Modified: stable/7/sys/sparc64/include/iommureg.h
==============================================================================
--- stable/7/sys/sparc64/include/iommureg.h	Thu Mar 19 15:59:29 2009	(r190076)
+++ stable/7/sys/sparc64/include/iommureg.h	Thu Mar 19 16:03:21 2009	(r190077)
@@ -54,7 +54,7 @@
 #define	ISR_PGFLUSH	0x0008	/* streaming buffer page flush */
 #define	ISR_FLUSHSYNC	0x0010	/* streaming buffer flush sync */
 
-/* streaming buffer diagnostics registers. */
+/* streaming buffer diagnostics registers */
 #define	ISD_DATA_DIAG	0x0000	/* streaming buffer data RAM diag 0..127 */
 #define	ISD_ERROR_DIAG	0x0400	/* streaming buffer error status diag 0..127 */
 #define	ISD_PG_TAG_DIAG	0x0800	/* streaming buffer page tag diag 0..15 */
@@ -63,6 +63,7 @@
 /* streaming buffer control register */
 #define STRBUF_EN		0x0000000000000001UL
 #define STRBUF_D		0x0000000000000002UL
+#define STRBUF_RR_DIS		0x0000000000000004UL
 
 #define	IOMMU_MAXADDR(bits)	((1UL << (bits)) - 1)
 
@@ -91,7 +92,7 @@
 #define IOMMUCR_EN		0x0000000000000001UL
 
 /*
- * Diagnostic register definitions.
+ * Diagnostic register definitions
  */
 #define	IOMMU_DTAG_VPNBITS	19
 #define	IOMMU_DTAG_VPNMASK	((1 << IOMMU_DTAG_VPNBITS) - 1)
@@ -126,10 +127,10 @@
 /* Writeable */
 #define IOTTE_W			0x0000000000000002UL
 
-/* log2 of the IOMMU TTE size. */
+/* log2 of the IOMMU TTE size */
 #define	IOTTE_SHIFT		3
 
-/* Streaming buffer line size. */
+/* Streaming buffer line size */
 #define	STRBUF_LINESZ		64
 
 /*

Modified: stable/7/sys/sparc64/include/iommuvar.h
==============================================================================
--- stable/7/sys/sparc64/include/iommuvar.h	Thu Mar 19 15:59:29 2009	(r190076)
+++ stable/7/sys/sparc64/include/iommuvar.h	Thu Mar 19 16:03:21 2009	(r190077)
@@ -45,12 +45,12 @@
 TAILQ_HEAD(iommu_maplruq_head, bus_dmamap);
 
 /*
- * Per-IOMMU state. The parenthesized comments indicate the locking strategy:
+ * Per-IOMMU state; the parenthesized comments indicate the locking strategy:
  *	i - protected by is_mtx.
  *	r - read-only after initialization.
  *	* - comment refers to pointer target / target hardware registers
  *	    (for bus_addr_t).
- * is_maplruq is also locked by is_mtx. Elements of is_tsb may only be
+ * is_maplruq is also locked by is_mtx.  Elements of is_tsb may only be
  * accessed from functions operating on the map owning the corresponding
  * resource, so the locking the user is required to do to protect the
  * map is sufficient.
@@ -81,7 +81,7 @@ struct iommu_state {
 	 */
 	volatile char		is_flush[STRBUF_FLUSHSYNC_NBYTES * 3 - 1];
 
-	/* copies of our parents state, to allow us to be self contained */
+	/* copies of our parent's state, to allow us to be self contained */
 	bus_space_tag_t		is_bustag;	/* (r) Our bus tag */
 	bus_space_handle_t	is_bushandle;	/* (r) */
 	bus_addr_t		is_iommu;	/* (r, *i) IOMMU registers */
@@ -96,6 +96,9 @@ struct iommu_state {
 	bus_addr_t		is_dva;		/* (r, *r) */
 	/* Tag compare diagnostics access */
 	bus_addr_t		is_dtcmp;	/* (r, *r) */
+	/* behavior flags */
+	u_int			is_flags;	/* (r) */
+#define	IOMMU_RERUN_DISABLE	(1 << 0)
 };
 
 /* interfaces for PCI/SBus code */

Modified: stable/7/sys/sparc64/sparc64/iommu.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/iommu.c	Thu Mar 19 15:59:29 2009	(r190076)
+++ stable/7/sys/sparc64/sparc64/iommu.c	Thu Mar 19 16:03:21 2009	(r190077)
@@ -119,8 +119,7 @@ __FBSDID("$FreeBSD$");
  * - When running out of DVMA space, return EINPROGRESS in the non-
  *   BUS_DMA_NOWAIT case and delay the callback until sufficient space
  *   becomes available.
- * - Use the streaming cache unless BUS_DMA_COHERENT is specified; do not
- *   flush the streaming cache when coherent mappings are synced.
+ * - Use the streaming cache unless BUS_DMA_COHERENT is specified.
  */
 
 #include "opt_iommu.h"
@@ -150,12 +149,12 @@ __FBSDID("$FreeBSD$");
 #include 
 
 /*
- * Tuning constants.
+ * Tuning constants
  */
 #define	IOMMU_MAX_PRE		(32 * 1024)
 #define	IOMMU_MAX_PRE_SEG	3
 
-/* Threshold for using the streaming buffer. */
+/* Threshold for using the streaming buffer */
 #define	IOMMU_STREAM_THRESH	128
 
 MALLOC_DEFINE(M_IOMMU, "dvmamem", "IOMMU DVMA Buffers");
@@ -309,9 +308,10 @@ iommu_init(const char *name, struct iomm
 		is->is_dvmabase = IOTSB_VSTART(is->is_tsbsize);
 
 	size = IOTSB_BASESZ << is->is_tsbsize;
-	printf("%s: DVMA map: %#lx to %#lx\n", name,
+	printf("%s: DVMA map: %#lx to %#lx%s\n", name,
 	    is->is_dvmabase, is->is_dvmabase +
-	    (size << (IO_PAGE_SHIFT - IOTTE_SHIFT)) - 1);
+	    (size << (IO_PAGE_SHIFT - IOTTE_SHIFT)) - 1,
+	    IOMMU_HAS_SB(is) ? ", streaming buffer" : "");
 
 	/*
 	 * Set up resource mamangement.
@@ -376,11 +376,13 @@ iommu_reset(struct iommu_state *is)
 
 	for (i = 0; i < 2; i++) {
 		if (is->is_sb[i] != 0) {
-			/* Enable diagnostics mode? */
-			IOMMU_WRITE8(is, is_sb[i], ISR_CTL, STRBUF_EN);
-
-			/* No streaming buffers? Disable them */
-			if (IOMMU_READ8(is, is_sb[i], ISR_CTL) == 0)
+			IOMMU_WRITE8(is, is_sb[i], ISR_CTL, STRBUF_EN |
+			    ((is->is_flags & IOMMU_RERUN_DISABLE) != 0 ?
+			    STRBUF_RR_DIS : 0));
+
+			/* No streaming buffers?  Disable them. */
+			if ((IOMMU_READ8(is, is_sb[i], ISR_CTL) &
+			    STRBUF_EN) == 0)
 				is->is_sb[i] = 0;
 		}
 	}
@@ -585,7 +587,7 @@ iommu_dvmamap_vunload(struct iommu_state
 	struct bus_dmamap_res *r;
 	int streamed = 0;
 
-	IS_LOCK_ASSERT(is);	/* for iommu_strbuf_sync() below. */
+	IS_LOCK_ASSERT(is);	/* for iommu_strbuf_sync() below */
 	SLIST_FOREACH(r, &map->dm_reslist, dr_link) {
 		streamed |= iommu_remove(is, BDR_START(r), r->dr_used);
 		r->dr_used = 0;
@@ -820,7 +822,7 @@ iommu_dvmamap_destroy(bus_dma_tag_t dt, 
 }
 
 /*
- * IOMMU DVMA operations, common to PCI and SBus.
+ * IOMMU DVMA operations, common to PCI and SBus
  */
 static int
 iommu_dvmamap_load_buffer(bus_dma_tag_t dt, struct iommu_state *is,
@@ -831,8 +833,8 @@ iommu_dvmamap_load_buffer(bus_dma_tag_t 
 	bus_size_t sgsize, esize;
 	vm_offset_t vaddr, voffs;
 	vm_paddr_t curaddr;
-	int error, sgcnt, firstpg, stream;
 	pmap_t pmap = NULL;
+	int error, firstpg, sgcnt;
 
 	KASSERT(buflen != 0, ("%s: buflen == 0!", __func__));
 	if (buflen > dt->dt_maxsize)
@@ -853,7 +855,9 @@ iommu_dvmamap_load_buffer(bus_dma_tag_t 
 
 	sgcnt = *segp;
 	firstpg = 1;
-	stream = iommu_use_streaming(is, map, buflen);
+	map->dm_flags &= ~DMF_STREAMED;
+	map->dm_flags |= iommu_use_streaming(is, map, buflen) != 0 ?
+	    DMF_STREAMED : 0;
 	for (; buflen > 0; ) {
 		/*
 		 * Get the physical address for this page.
@@ -874,7 +878,7 @@ iommu_dvmamap_load_buffer(bus_dma_tag_t 
 		vaddr += sgsize;
 
 		iommu_enter(is, trunc_io_page(dvmaddr), trunc_io_page(curaddr),
-		    stream, flags);
+		    (map->dm_flags & DMF_STREAMED) != 0, flags);
 
 		/*
 		 * Chop the chunk up into segments of at most maxsegsz, but try
@@ -1139,7 +1143,7 @@ iommu_dvmamap_sync(bus_dma_tag_t dt, bus
 	/* XXX This is probably bogus. */
 	if ((op & BUS_DMASYNC_PREREAD) != 0)
 		membar(Sync);
-	if (IOMMU_HAS_SB(is) &&
+	if ((map->dm_flags & DMF_STREAMED) != 0 &&
 	    ((op & BUS_DMASYNC_POSTREAD) != 0 ||
 	    (op & BUS_DMASYNC_PREWRITE) != 0)) {
 		IS_LOCK(is);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:11:15 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0EC6A10658CE;
	Thu, 19 Mar 2009 16:11:15 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 96FDD8FC24;
	Thu, 19 Mar 2009 16:11:14 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGBExY068396;
	Thu, 19 Mar 2009 16:11:14 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGBEh4068394;
	Thu, 19 Mar 2009 16:11:14 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191611.n2JGBEh4068394@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:11:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190078 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:11:23 -0000

Author: marius
Date: Thu Mar 19 16:11:14 2009
New Revision: 190078
URL: http://svn.freebsd.org/changeset/base/190078

Log:
  MFC: r185109
  
  Use the interrupt level right below PIL_FAST for executing interrupt
  filters instead of PIL_FAST and allow special filters and handlers
  for interrupts which need to be able to interrupt even filters, f.e.
  bus error interrupts, to be registered with the revived INTR_FAST
  at PIL_FAST.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/intr_machdep.h
  stable/7/sys/sparc64/sparc64/intr_machdep.c

Modified: stable/7/sys/sparc64/include/intr_machdep.h
==============================================================================
--- stable/7/sys/sparc64/include/intr_machdep.h	Thu Mar 19 16:03:21 2009	(r190077)
+++ stable/7/sys/sparc64/include/intr_machdep.h	Thu Mar 19 16:11:14 2009	(r190078)
@@ -47,8 +47,9 @@
 #define	PIL_AST		4	/* ast ipi */
 #define	PIL_STOP	5	/* stop cpu ipi */
 #define	PIL_PREEMPT	6	/* preempt idle thread cpu ipi */
+#define	PIL_FILTER	12	/* filter interrupts */
 #define	PIL_FAST	13	/* fast interrupts */
-#define	PIL_TICK	14
+#define	PIL_TICK	14	/* tick interrupts */
 
 #ifndef LOCORE
 

Modified: stable/7/sys/sparc64/sparc64/intr_machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/intr_machdep.c	Thu Mar 19 16:03:21 2009	(r190077)
+++ stable/7/sys/sparc64/sparc64/intr_machdep.c	Thu Mar 19 16:11:14 2009	(r190078)
@@ -89,7 +89,7 @@ struct intr_vector intr_vectors[IV_MAX];
 uint16_t intr_countp[IV_MAX];
 static u_long intr_stray_count[IV_MAX];
 
-static const char *pil_names[] = {
+static const char *const pil_names[] = {
 	"stray",
 	"low",		/* PIL_LOW */
 	"ithrd",	/* PIL_ITHREAD */
@@ -97,7 +97,8 @@ static const char *pil_names[] = {
 	"ast",		/* PIL_AST */
 	"stop",		/* PIL_STOP */
 	"preempt",	/* PIL_PREEMPT */
-	"stray", "stray", "stray", "stray", "stray", "stray",
+	"stray", "stray", "stray", "stray", "stray",
+	"filter",	/* PIL_FILTER */
 	"fast",		/* PIL_FAST */
 	"tick",		/* PIL_TICK */
 };
@@ -374,10 +375,16 @@ inthand_add(const char *name, int vec, d
 	struct intr_event *ie;
 	struct intr_handler *ih;
 	struct intr_vector *iv;
-	int error, fast;
+	int error, filter;
 
 	if (vec < 0 || vec >= IV_MAX)
 		return (EINVAL);
+	/*
+	 * INTR_FAST filters/handlers are special purpose only, allowing
+	 * them to be shared just would complicate things unnecessarily.
+	 */
+	if ((flags & INTR_FAST) != 0 && (flags & INTR_EXCL) == 0)
+		return (EINVAL);
 	sx_xlock(&intr_table_lock);
 	iv = &intr_vectors[vec];
 	ic = iv->iv_ic;
@@ -394,24 +401,25 @@ inthand_add(const char *name, int vec, d
 	ic->ic_disable(iv);
 	iv->iv_refcnt++;
 	if (iv->iv_refcnt == 1)
-		intr_setup(filt != NULL ? PIL_FAST : PIL_ITHREAD, intr_fast,
+		intr_setup((flags & INTR_FAST) != 0 ? PIL_FAST :
+		    filt != NULL ? PIL_FILTER : PIL_ITHREAD, intr_fast,
 		    vec, intr_execute_handlers, iv);
 	else if (filt != NULL) {
 		/*
-		 * Check if we need to upgrade from PIL_ITHREAD to PIL_FAST.
+		 * Check if we need to upgrade from PIL_ITHREAD to PIL_FILTER.
 		 * Given that apart from the on-board SCCs and UARTs shared
 		 * interrupts are rather uncommon on sparc64 this sould be
 		 * pretty rare in practice.
 		 */
-		fast = 0;
+		filter = 0;
 		TAILQ_FOREACH(ih, &ie->ie_handlers, ih_next) {
 			if (ih->ih_filter != NULL && ih->ih_filter != filt) {
-				fast = 1;
+				filter = 1;
 				break;
 			}
 		}
-		if (fast == 0)
-			intr_setup(PIL_FAST, intr_fast, vec,
+		if (filter == 0)
+			intr_setup(PIL_FILTER, intr_fast, vec,
 			    intr_execute_handlers, iv);
 	}
 	intr_stray_count[vec] = 0;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:14:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9E9E11065A4B;
	Thu, 19 Mar 2009 16:14:00 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7D4728FC16;
	Thu, 19 Mar 2009 16:14:00 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGE0bu068495;
	Thu, 19 Mar 2009 16:14:00 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGE03a068492;
	Thu, 19 Mar 2009 16:14:00 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191614.n2JGE03a068492@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:14:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190079 - in stable/7/sys: . contrib/pf dev/cxgb dev/isp
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:14:07 -0000

Author: marius
Date: Thu Mar 19 16:14:00 2009
New Revision: 190079
URL: http://svn.freebsd.org/changeset/base/190079

Log:
  MFC: r186140
  
  Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI
  controllers. Reading this register, for which there are indications
  that it doesn't really exist, returns 0 on at least some 12160
  and doing so on Sun Fire V880 causes a data access error exception.
  
  Reported and tested by:	Beat Gaetzi
  Approved by:		mjacob
  Obtained from:		OpenBSD (modulo setting isp_lvdmode)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/isp/isp.c

Modified: stable/7/sys/dev/isp/isp.c
==============================================================================
--- stable/7/sys/dev/isp/isp.c	Thu Mar 19 16:11:14 2009	(r190078)
+++ stable/7/sys/dev/isp/isp.c	Thu Mar 19 16:14:00 2009	(r190079)
@@ -335,6 +335,23 @@ isp_reset(ispsoftc_t *isp)
 		/*
 		 * XXX: Should probably do some bus sensing.
 		 */
+	} else if (IS_ULTRA3(isp)) {
+		sdparam *sdp = isp->isp_param;
+
+		isp->isp_clock = 100;
+
+		if (IS_10160(isp))
+			btype = "10160";
+		else if (IS_12160(isp))
+			btype = "12160";
+		else
+			btype = "";
+		sdp->isp_lvdmode = 1;
+
+		if (IS_DUALBUS(isp)) {
+			sdp++;
+			sdp->isp_lvdmode = 1;
+		}
 	} else if (IS_ULTRA2(isp)) {
 		static const char m[] = "bus %d is in %s Mode";
 		uint16_t l;
@@ -346,10 +363,6 @@ isp_reset(ispsoftc_t *isp)
 			btype = "1280";
 		else if (IS_1080(isp))
 			btype = "1080";
-		else if (IS_10160(isp))
-			btype = "10160";
-		else if (IS_12160(isp))
-			btype = "12160";
 		else
 			btype = "";
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:37:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 45A2C106578B;
	Thu, 19 Mar 2009 16:37:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2EC778FC0A;
	Thu, 19 Mar 2009 16:37:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGbVoo069066;
	Thu, 19 Mar 2009 16:37:31 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGbUIp069063;
	Thu, 19 Mar 2009 16:37:30 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191637.n2JGbUIp069063@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:37:30 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190080 - in stable/7/sys: . contrib/pf dev/cxgb
	sparc64/include sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:37:34 -0000

Author: marius
Date: Thu Mar 19 16:37:30 2009
New Revision: 190080
URL: http://svn.freebsd.org/changeset/base/190080

Log:
  MFC: r186682
  
  - Currently the PMAP code is laid out to let the kernel TSB cover the
    whole KVA space using one locked 4MB dTLB entry per GB of physical
    memory. On Cheetah-class machines only the dt16 can hold locked
    entries though, which would be completely consumed for the kernel
    TSB on machines with >= 16GB. Therefore limit the KVA space to use
    no more than half of the lockable dTLB slots, given that we need
    them also for other things.
  - Add sanity checks which ensure that we don't exhaust the (lockable)
    TLB slots.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/sparc64/include/tlb.h
  stable/7/sys/sparc64/sparc64/machdep.c
  stable/7/sys/sparc64/sparc64/pmap.c

Modified: stable/7/sys/sparc64/include/tlb.h
==============================================================================
--- stable/7/sys/sparc64/include/tlb.h	Thu Mar 19 16:14:00 2009	(r190079)
+++ stable/7/sys/sparc64/include/tlb.h	Thu Mar 19 16:37:30 2009	(r190080)
@@ -129,6 +129,8 @@ typedef void tlb_flush_user_t(void);
 struct pmap;
 struct tlb_entry;
 
+extern int dtlb_slots;
+extern int itlb_slots;
 extern int kernel_tlb_slots;
 extern struct tlb_entry *kernel_tlbs;
 

Modified: stable/7/sys/sparc64/sparc64/machdep.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 16:14:00 2009	(r190079)
+++ stable/7/sys/sparc64/sparc64/machdep.c	Thu Mar 19 16:37:30 2009	(r190080)
@@ -115,6 +115,8 @@ typedef int ofw_vec_t(void *);
 extern vm_offset_t ksym_start, ksym_end;
 #endif
 
+int dtlb_slots;
+int itlb_slots;
 struct tlb_entry *kernel_tlbs;
 int kernel_tlb_slots;
 
@@ -373,6 +375,19 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 		end = (vm_offset_t)_end;
 	}
 
+	/*
+	 * Determine the TLB slot maxima, which are expected to be
+	 * equal across all CPUs.
+	 * NB: for Cheetah-class CPUs, these properties only refer
+	 * to the t16s.
+	 */
+	if (OF_getprop(pc->pc_node, "#dtlb-entries", &dtlb_slots,
+	    sizeof(dtlb_slots)) == -1)
+		panic("sparc64_init: cannot determine number of dTLB slots");
+	if (OF_getprop(pc->pc_node, "#itlb-entries", &itlb_slots,
+	    sizeof(itlb_slots)) == -1)
+		panic("sparc64_init: cannot determine number of iTLB slots");
+
 	cache_init(pc);
 	cache_enable();
 	uma_set_align(pc->pc_cache.dc_linesize - 1);

Modified: stable/7/sys/sparc64/sparc64/pmap.c
==============================================================================
--- stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 16:14:00 2009	(r190079)
+++ stable/7/sys/sparc64/sparc64/pmap.c	Thu Mar 19 16:37:30 2009	(r190080)
@@ -334,13 +334,23 @@ pmap_bootstrap(vm_offset_t ekva)
 
 	/*
 	 * Calculate the size of kernel virtual memory, and the size and mask
-	 * for the kernel TSB.
+	 * for the kernel TSB based on the phsyical memory size but limited
+	 * by letting the kernel TSB take up no more than half of the dTLB
+	 * slots available for locked entries.
 	 */
 	virtsz = roundup(physsz, PAGE_SIZE_4M << (PAGE_SHIFT - TTE_SHIFT));
+	virtsz = MIN(virtsz,
+	    (dtlb_slots / 2 * PAGE_SIZE_4M) << (PAGE_SHIFT - TTE_SHIFT));
 	vm_max_kernel_address = VM_MIN_KERNEL_ADDRESS + virtsz;
 	tsb_kernel_size = virtsz >> (PAGE_SHIFT - TTE_SHIFT);
 	tsb_kernel_mask = (tsb_kernel_size >> TTE_SHIFT) - 1;
 
+	if (kernel_tlb_slots + PCPU_PAGES + tsb_kernel_size / PAGE_SIZE_4M +
+	    1 /* PROM page */ + 1 /* spare */ > dtlb_slots)
+		panic("pmap_bootstrap: insufficient dTLB entries");
+	if (kernel_tlb_slots + 1 /* PROM page */ + 1 /* spare */ > itlb_slots)
+		panic("pmap_bootstrap: insufficient iTLB entries");
+
 	/*
 	 * Allocate the kernel TSB and lock it in the TLB.
 	 */

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:39:59 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E231710656BF;
	Thu, 19 Mar 2009 16:39:59 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CEA458FC1F;
	Thu, 19 Mar 2009 16:39:59 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGdxvG069240;
	Thu, 19 Mar 2009 16:39:59 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGdxpH069239;
	Thu, 19 Mar 2009 16:39:59 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191639.n2JGdxpH069239@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:39:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190081 - in stable/6/sys: . contrib/pf dev/cxgb dev/isp
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:40:02 -0000

Author: marius
Date: Thu Mar 19 16:39:59 2009
New Revision: 190081
URL: http://svn.freebsd.org/changeset/base/190081

Log:
  MFC: r186140
  
  Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI
  controllers. Reading this register, for which there are indications
  that it doesn't really exist, returns 0 on at least some 12160
  and doing so on Sun Fire V880 causes a data access error exception.
  
  Reported and tested by:	Beat Gaetzi
  Approved by:		mjacob
  Obtained from:		OpenBSD (modulo setting isp_lvdmode)

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)
  stable/6/sys/dev/isp/isp.c

Modified: stable/6/sys/dev/isp/isp.c
==============================================================================
--- stable/6/sys/dev/isp/isp.c	Thu Mar 19 16:37:30 2009	(r190080)
+++ stable/6/sys/dev/isp/isp.c	Thu Mar 19 16:39:59 2009	(r190081)
@@ -335,6 +335,23 @@ isp_reset(ispsoftc_t *isp)
 		/*
 		 * XXX: Should probably do some bus sensing.
 		 */
+	} else if (IS_ULTRA3(isp)) {
+		sdparam *sdp = isp->isp_param;
+
+		isp->isp_clock = 100;
+
+		if (IS_10160(isp))
+			btype = "10160";
+		else if (IS_12160(isp))
+			btype = "12160";
+		else
+			btype = "";
+		sdp->isp_lvdmode = 1;
+
+		if (IS_DUALBUS(isp)) {
+			sdp++;
+			sdp->isp_lvdmode = 1;
+		}
 	} else if (IS_ULTRA2(isp)) {
 		static const char m[] = "bus %d is in %s Mode";
 		uint16_t l;
@@ -346,10 +363,6 @@ isp_reset(ispsoftc_t *isp)
 			btype = "1280";
 		else if (IS_1080(isp))
 			btype = "1080";
-		else if (IS_10160(isp))
-			btype = "10160";
-		else if (IS_12160(isp))
-			btype = "12160";
 		else
 			btype = "";
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:44:37 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 91D9710656E8;
	Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7EE5B8FC13;
	Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGib5Y069438;
	Thu, 19 Mar 2009 16:44:37 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGibK6069437;
	Thu, 19 Mar 2009 16:44:37 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191644.n2JGibK6069437@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190083 - in stable/6/sys: . contrib/pf dev/bge dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:44:39 -0000

Author: marius
Date: Thu Mar 19 16:44:37 2009
New Revision: 190083
URL: http://svn.freebsd.org/changeset/base/190083

Log:
  MFC: r188164, r188457
  
  - device_shutdown returns an int.
  - Don't reset the PHY probe retry counter within the loop so
    it will eventually terminate as intended. [1]
  
  Submitted by:	Helen Zhang [1]

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/bge/if_bge.c
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/dev/bge/if_bge.c
==============================================================================
--- stable/6/sys/dev/bge/if_bge.c	Thu Mar 19 16:44:37 2009	(r190082)
+++ stable/6/sys/dev/bge/if_bge.c	Thu Mar 19 16:44:37 2009	(r190083)
@@ -348,7 +348,7 @@ static void bge_init_locked(struct bge_s
 static void bge_init(void *);
 static void bge_stop(struct bge_softc *);
 static void bge_watchdog(struct bge_softc *);
-static void bge_shutdown(device_t);
+static int bge_shutdown(device_t);
 static int bge_ifmedia_upd_locked(struct ifnet *);
 static int bge_ifmedia_upd(struct ifnet *);
 static void bge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
@@ -2661,11 +2661,11 @@ bge_attach(device_t dev)
 		 * if we get a conflict with the ASF firmware accessing
 		 * the PHY.
 		 */
+		trys = 0;
 		BGE_CLRBIT(sc, BGE_MODE_CTL, BGE_MODECTL_STACKUP);
 again:
 		bge_asf_driver_up(sc);
 
-		trys = 0;
 		if (mii_phy_probe(dev, &sc->bge_miibus,
 		    bge_ifmedia_upd, bge_ifmedia_sts)) {
 			if (trys++ < 4) {
@@ -4223,17 +4223,18 @@ bge_stop(struct bge_softc *sc)
  * Stop all chip I/O so that the kernel's probe routines don't
  * get confused by errant DMAs when rebooting.
  */
-static void
+static int
 bge_shutdown(device_t dev)
 {
 	struct bge_softc *sc;
 
 	sc = device_get_softc(dev);
-
 	BGE_LOCK(sc);
 	bge_stop(sc);
 	bge_reset(sc);
 	BGE_UNLOCK(sc);
+
+	return (0);
 }
 
 static int

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:44:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A324510656ED;
	Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 756948FC1D;
	Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGiboe069436;
	Thu, 19 Mar 2009 16:44:37 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGib4g069434;
	Thu, 19 Mar 2009 16:44:37 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903191644.n2JGib4g069434@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 16:44:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190082 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/bge dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:44:40 -0000

Author: marius
Date: Thu Mar 19 16:44:37 2009
New Revision: 190082
URL: http://svn.freebsd.org/changeset/base/190082

Log:
  MFC: r188164, r188457
  
  - device_shutdown returns an int.
  - Don't reset the PHY probe retry counter within the loop so
    it will eventually terminate as intended. [1]
  
  Submitted by:	Helen Zhang [1]

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/bge/if_bge.c
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/dev/bge/if_bge.c
==============================================================================
--- stable/7/sys/dev/bge/if_bge.c	Thu Mar 19 16:39:59 2009	(r190081)
+++ stable/7/sys/dev/bge/if_bge.c	Thu Mar 19 16:44:37 2009	(r190082)
@@ -348,7 +348,7 @@ static void bge_init_locked(struct bge_s
 static void bge_init(void *);
 static void bge_stop(struct bge_softc *);
 static void bge_watchdog(struct bge_softc *);
-static void bge_shutdown(device_t);
+static int bge_shutdown(device_t);
 static int bge_ifmedia_upd_locked(struct ifnet *);
 static int bge_ifmedia_upd(struct ifnet *);
 static void bge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
@@ -2674,11 +2674,11 @@ bge_attach(device_t dev)
 		 * if we get a conflict with the ASF firmware accessing
 		 * the PHY.
 		 */
+		trys = 0;
 		BGE_CLRBIT(sc, BGE_MODE_CTL, BGE_MODECTL_STACKUP);
 again:
 		bge_asf_driver_up(sc);
 
-		trys = 0;
 		if (mii_phy_probe(dev, &sc->bge_miibus,
 		    bge_ifmedia_upd, bge_ifmedia_sts)) {
 			if (trys++ < 4) {
@@ -4280,17 +4280,18 @@ bge_stop(struct bge_softc *sc)
  * Stop all chip I/O so that the kernel's probe routines don't
  * get confused by errant DMAs when rebooting.
  */
-static void
+static int
 bge_shutdown(device_t dev)
 {
 	struct bge_softc *sc;
 
 	sc = device_get_softc(dev);
-
 	BGE_LOCK(sc);
 	bge_stop(sc);
 	bge_reset(sc);
 	BGE_UNLOCK(sc);
+
+	return (0);
 }
 
 static int

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:55:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4CEAE106568E;
	Thu, 19 Mar 2009 16:55:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3A06A8FC0A;
	Thu, 19 Mar 2009 16:55:27 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGtRYh069719;
	Thu, 19 Mar 2009 16:55:27 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGtRjm069718;
	Thu, 19 Mar 2009 16:55:27 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191655.n2JGtRjm069718@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 16:55:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190084 - in stable/7/sys: . boot/i386/libi386
	contrib/pf dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:55:28 -0000

Author: jhb
Date: Thu Mar 19 16:55:26 2009
New Revision: 190084
URL: http://svn.freebsd.org/changeset/base/190084

Log:
  MFC: Fix uninitialized pointer dereference.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/i386/libi386/devicename.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/boot/i386/libi386/devicename.c
==============================================================================
--- stable/7/sys/boot/i386/libi386/devicename.c	Thu Mar 19 16:44:37 2009	(r190083)
+++ stable/7/sys/boot/i386/libi386/devicename.c	Thu Mar 19 16:55:26 2009	(r190084)
@@ -150,6 +150,8 @@ i386_parsedev(struct i386_devdesc **dev,
 		    cp++;
 		}
 	    }
+	} else {
+		cp = np;
 	}
 	if (*cp && (*cp != ':')) {
 	    err = EINVAL;
@@ -173,6 +175,8 @@ i386_parsedev(struct i386_devdesc **dev,
 		err = EUNIT;
 		goto fail;
 	    }
+	} else {
+		cp = np;
 	}
 	if (*cp && (*cp != ':')) {
 	    err = EINVAL;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 16:55:42 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BADC41065709;
	Thu, 19 Mar 2009 16:55:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A5FCF8FC22;
	Thu, 19 Mar 2009 16:55:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JGtgwa069759;
	Thu, 19 Mar 2009 16:55:42 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JGtgYl069758;
	Thu, 19 Mar 2009 16:55:42 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191655.n2JGtgYl069758@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 16:55:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190085 - in stable/6/sys: . boot/i386/libi386
	contrib/pf dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 16:55:45 -0000

Author: jhb
Date: Thu Mar 19 16:55:42 2009
New Revision: 190085
URL: http://svn.freebsd.org/changeset/base/190085

Log:
  MFC: Fix uninitialized pointer dereference.

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/boot/i386/libi386/devicename.c
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/boot/i386/libi386/devicename.c
==============================================================================
--- stable/6/sys/boot/i386/libi386/devicename.c	Thu Mar 19 16:55:26 2009	(r190084)
+++ stable/6/sys/boot/i386/libi386/devicename.c	Thu Mar 19 16:55:42 2009	(r190085)
@@ -150,6 +150,8 @@ i386_parsedev(struct i386_devdesc **dev,
 		    cp++;
 		}
 	    }
+	} else {
+		cp = np;
 	}
 	if (*cp && (*cp != ':')) {
 	    err = EINVAL;
@@ -173,6 +175,8 @@ i386_parsedev(struct i386_devdesc **dev,
 		err = EUNIT;
 		goto fail;
 	    }
+	} else {
+		cp = np;
 	}
 	if (*cp && (*cp != ':')) {
 	    err = EINVAL;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:02:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6CE6B106564A;
	Thu, 19 Mar 2009 17:02:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 593B48FC1E;
	Thu, 19 Mar 2009 17:02:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JH2B4J069967;
	Thu, 19 Mar 2009 17:02:11 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JH2Bnx069962;
	Thu, 19 Mar 2009 17:02:11 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191702.n2JH2Bnx069962@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 17:02:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190086 - in stable/7/sys: . boot/i386/libi386
	boot/i386/loader contrib/pf dev/ath/ath_hal dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:02:12 -0000

Author: jhb
Date: Thu Mar 19 17:02:10 2009
New Revision: 190086
URL: http://svn.freebsd.org/changeset/base/190086

Log:
  MFC:
  - Make it possible to disable GPT support by setting LOADER_NO_GPT_SUPPORT
    in make.conf or src.conf.
  - When GPT is enabled (which it is by default), use memory above 1 MB and
    leave the memory from the end of the bss to the end of the 640k window
    purely for the stack.  The loader has grown and now it is much more
    common for the heap and stack to grow into each other when both are
    located in the 640k window.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/boot/i386/libi386/Makefile
  stable/7/sys/boot/i386/libi386/biosdisk.c
  stable/7/sys/boot/i386/libi386/devicename.c
  stable/7/sys/boot/i386/loader/Makefile
  stable/7/sys/boot/i386/loader/main.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)

Modified: stable/7/sys/boot/i386/libi386/Makefile
==============================================================================
--- stable/7/sys/boot/i386/libi386/Makefile	Thu Mar 19 16:55:42 2009	(r190085)
+++ stable/7/sys/boot/i386/libi386/Makefile	Thu Mar 19 17:02:10 2009	(r190086)
@@ -26,6 +26,10 @@ CFLAGS+= -DDISK_DEBUG
 CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
 .endif
 
+.if !defined(LOADER_NO_GPT_SUPPORT)
+CFLAGS+=	-DLOADER_GPT_SUPPORT
+.endif
+
 # Include simple terminal emulation (cons25-compatible)
 CFLAGS+= -DTERM_EMU
 

Modified: stable/7/sys/boot/i386/libi386/biosdisk.c
==============================================================================
--- stable/7/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 16:55:42 2009	(r190085)
+++ stable/7/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 17:02:10 2009	(r190086)
@@ -68,12 +68,14 @@ __FBSDID("$FreeBSD$");
 # define DEBUG(fmt, args...)
 #endif
 
+#ifdef LOADER_GPT_SUPPORT
 struct gpt_part {
     int		gp_index;
     uuid_t	gp_type;
     uint64_t	gp_start;
     uint64_t	gp_end;
 };
+#endif
 
 struct open_disk {
     int			od_dkunit;		/* disk unit number */
@@ -90,25 +92,31 @@ struct open_disk {
 #define BD_FLOPPY		0x0004
 #define BD_LABELOK		0x0008
 #define BD_PARTTABOK		0x0010
+#ifdef LOADER_GPT_SUPPORT
 #define	BD_GPTOK		0x0020
+#endif
     union {
 	struct {
 	    struct disklabel		mbr_disklabel;
 	    int				mbr_nslices;	/* slice count */
 	    struct dos_partition	mbr_slicetab[NEXTDOSPART];
 	} _mbr;
+#ifdef LOADER_GPT_SUPPORT
 	struct {
 	    int				gpt_nparts;		
 	    struct gpt_part		*gpt_partitions;
 	} _gpt;
+#endif
     } _data;
 };
 
 #define	od_disklabel		_data._mbr.mbr_disklabel
 #define	od_nslices		_data._mbr.mbr_nslices
 #define	od_slicetab		_data._mbr.mbr_slicetab
+#ifdef LOADER_GPT_SUPPORT
 #define	od_nparts		_data._gpt.gpt_nparts
 #define	od_partitions		_data._gpt.gpt_partitions
+#endif
 
 /*
  * List of BIOS devices, translation from disk unit number to
@@ -130,8 +138,10 @@ static int	bd_write(struct open_disk *od
 
 static int	bd_int13probe(struct bdinfo *bd);
 
+#ifdef LOADER_GPT_SUPPORT
 static void	bd_printgptpart(struct open_disk *od, struct gpt_part *gp,
 		    char *prefix, int verbose);
+#endif
 static void	bd_printslice(struct open_disk *od, struct dos_partition *dp,
 		    char *prefix, int verbose);
 static void	bd_printbsdslice(struct open_disk *od, daddr_t offset,
@@ -163,8 +173,10 @@ static void	bd_closedisk(struct open_dis
 static int	bd_open_mbr(struct open_disk *od, struct i386_devdesc *dev);
 static int	bd_bestslice(struct open_disk *od);
 static void	bd_checkextended(struct open_disk *od, int slicenum);
+#ifdef LOADER_GPT_SUPPORT
 static int	bd_open_gpt(struct open_disk *od, struct i386_devdesc *dev);
 static struct gpt_part *bd_best_gptpart(struct open_disk *od);
+#endif
 
 /*
  * Translate between BIOS device numbers and our private unit numbers.
@@ -286,6 +298,7 @@ bd_print(int verbose)
 	
 	if (!bd_opendisk(&od, &dev)) {
 
+#ifdef LOADER_GPT_SUPPORT
 	    /* Do we have a GPT table? */
 	    if (od->od_flags & BD_GPTOK) {
 		for (j = 0; j < od->od_nparts; j++) {
@@ -293,9 +306,10 @@ bd_print(int verbose)
 			od->od_partitions[j].gp_index);
 		    bd_printgptpart(od, &od->od_partitions[j], line, verbose);
 		}
-
+	    } else
+#endif
 	    /* Do we have a partition table? */
-	    } else if (od->od_flags & BD_PARTTABOK) {
+	    if (od->od_flags & BD_PARTTABOK) {
 		dptr = &od->od_slicetab[0];
 
 		/* Check for a "dedicated" disk */
@@ -316,6 +330,7 @@ bd_print(int verbose)
     }
 }
 
+#ifdef LOADER_GPT_SUPPORT
 static uuid_t efi = GPT_ENT_TYPE_EFI;
 static uuid_t freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT;
 static uuid_t freebsd_ufs = GPT_ENT_TYPE_FREEBSD_UFS;
@@ -368,6 +383,7 @@ bd_printgptpart(struct open_disk *od, st
 	    stats);
     pager_output(line);
 }
+#endif
 
 /*
  * Print information about slices on a disk.  For the size calculations we
@@ -569,8 +585,10 @@ bd_opendisk(struct open_disk **odp, stru
     }
 
     /* Determine disk layout. */
+#ifdef LOADER_GPT_SUPPORT
     error = bd_open_gpt(od, dev);
     if (error)
+#endif
 	error = bd_open_mbr(od, dev);
     
  out:
@@ -834,6 +852,7 @@ bd_bestslice(struct open_disk *od)
 	return (prefslice);
 }
 
+#ifdef LOADER_GPT_SUPPORT
 static int
 bd_open_gpt(struct open_disk *od, struct i386_devdesc *dev)
 {
@@ -1009,6 +1028,7 @@ bd_best_gptpart(struct open_disk *od)
     }
     return (prefpart);
 }
+#endif
 
 static int 
 bd_close(struct open_file *f)
@@ -1028,8 +1048,10 @@ bd_closedisk(struct open_disk *od)
     if (od->od_flags & BD_FLOPPY)
 	delay(3000000);
 #endif
+#ifdef LOADER_GPT_SUPPORT
     if (od->od_flags & BD_GPTOK)
 	free(od->od_partitions);
+#endif
     free(od);
 }
 

Modified: stable/7/sys/boot/i386/libi386/devicename.c
==============================================================================
--- stable/7/sys/boot/i386/libi386/devicename.c	Thu Mar 19 16:55:42 2009	(r190085)
+++ stable/7/sys/boot/i386/libi386/devicename.c	Thu Mar 19 17:02:10 2009	(r190086)
@@ -120,6 +120,7 @@ i386_parsedev(struct i386_devdesc **dev,
 		err = EUNIT;
 		goto fail;
 	    }
+#ifdef LOADER_GPT_SUPPORT
 	    if (*cp == 'p') {		/* got a GPT partition */
 		np = cp + 1;
 		slice = strtol(np, &cp, 10);
@@ -133,6 +134,7 @@ i386_parsedev(struct i386_devdesc **dev,
 		}
 		partition = 0xff;
 	    } else {
+#endif
 		if (*cp == 's') {		/* got a slice number */
 		    np = cp + 1;
 		    slice = strtol(np, &cp, 10);
@@ -149,7 +151,9 @@ i386_parsedev(struct i386_devdesc **dev,
 		    }
 		    cp++;
 		}
+#ifdef LOADER_GPT_SUPPORT
 	    }
+#endif
 	} else {
 		cp = np;
 	}
@@ -226,14 +230,18 @@ i386_fmtdev(void *vdev)
     case DEVT_DISK:
 	cp = buf;
 	cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_unit);
+#ifdef LOADER_GPT_SUPPORT
 	if (dev->d_kind.biosdisk.partition == 0xff) {
 	    cp += sprintf(cp, "p%d", dev->d_kind.biosdisk.slice);
 	} else {
+#endif
 	    if (dev->d_kind.biosdisk.slice > 0)
 		cp += sprintf(cp, "s%d", dev->d_kind.biosdisk.slice);
 	    if (dev->d_kind.biosdisk.partition >= 0)
 		cp += sprintf(cp, "%c", dev->d_kind.biosdisk.partition + 'a');
+#ifdef LOADER_GPT_SUPPORT
 	}
+#endif
 	strcat(cp, ":");
 	break;
 

Modified: stable/7/sys/boot/i386/loader/Makefile
==============================================================================
--- stable/7/sys/boot/i386/loader/Makefile	Thu Mar 19 16:55:42 2009	(r190085)
+++ stable/7/sys/boot/i386/loader/Makefile	Thu Mar 19 17:02:10 2009	(r190086)
@@ -42,6 +42,9 @@ CFLAGS+=	-DLOADER_BZIP2_SUPPORT
 .if !defined(LOADER_NO_GZIP_SUPPORT)
 CFLAGS+=	-DLOADER_GZIP_SUPPORT
 .endif
+.if !defined(LOADER_NO_GPT_SUPPORT)
+CFLAGS+=	-DLOADER_GPT_SUPPORT
+.endif
 
 # Always add MI sources 
 .PATH:		${.CURDIR}/../../common

Modified: stable/7/sys/boot/i386/loader/main.c
==============================================================================
--- stable/7/sys/boot/i386/loader/main.c	Thu Mar 19 16:55:42 2009	(r190085)
+++ stable/7/sys/boot/i386/loader/main.c	Thu Mar 19 17:02:10 2009	(r190086)
@@ -96,7 +96,7 @@ main(void)
      */
     bios_getmem();
 
-#if defined(LOADER_BZIP2_SUPPORT) || defined(LOADER_FIREWIRE_SUPPORT)
+#if defined(LOADER_BZIP2_SUPPORT) || defined(LOADER_FIREWIRE_SUPPORT) || defined(LOADER_GPT_SUPPORT)
     heap_top = PTOV(memtop_copyin);
     memtop_copyin -= 0x300000;
     heap_bottom = PTOV(memtop_copyin);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:06:05 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CE9C11065686;
	Thu, 19 Mar 2009 17:06:05 +0000 (UTC)
	(envelope-from rdivacky@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B852C8FC1B;
	Thu, 19 Mar 2009 17:06:05 +0000 (UTC)
	(envelope-from rdivacky@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JH65Tr070117;
	Thu, 19 Mar 2009 17:06:05 GMT
	(envelope-from rdivacky@svn.freebsd.org)
Received: (from rdivacky@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JH65B0070103;
	Thu, 19 Mar 2009 17:06:05 GMT
	(envelope-from rdivacky@svn.freebsd.org)
Message-Id: <200903191706.n2JH65B0070103@svn.freebsd.org>
From: Roman Divacky 
Date: Thu, 19 Mar 2009 17:06:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190087 - in stable/7/sys: . compat/ndis
	contrib/altq/altq contrib/pf dev/ath/ath_hal dev/cxgb dev/mca
	dev/nsp dev/stg dev/txp i386/i386 i386/isa netinet netipsec vm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:06:08 -0000

Author: rdivacky
Date: Thu Mar 19 17:06:04 2009
New Revision: 190087
URL: http://svn.freebsd.org/changeset/base/190087

Log:
  Merge r189004.
  
  Requested by:	yongari
  Approved by:	ed (mentor)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/compat/ndis/kern_ndis.c
  stable/7/sys/compat/ndis/subr_hal.c
  stable/7/sys/compat/ndis/subr_ndis.c
  stable/7/sys/compat/ndis/subr_ntoskrnl.c
  stable/7/sys/contrib/altq/altq/altq_subr.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/mca/mca_bus.c
  stable/7/sys/dev/nsp/nsp.c
  stable/7/sys/dev/stg/tmc18c30.c
  stable/7/sys/dev/txp/if_txp.c
  stable/7/sys/i386/i386/vm86.c
  stable/7/sys/i386/isa/npx.c
  stable/7/sys/netinet/sctp_input.c
  stable/7/sys/netipsec/key.c
  stable/7/sys/vm/vm_pager.c

Modified: stable/7/sys/compat/ndis/kern_ndis.c
==============================================================================
--- stable/7/sys/compat/ndis/kern_ndis.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/compat/ndis/kern_ndis.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -256,10 +256,8 @@ ndis_getdone_func(adapter, status)
 }
 
 static void
-ndis_resetdone_func(adapter, status, addressingreset)
-	ndis_handle		adapter;
-	ndis_status		status;
-	uint8_t			addressingreset;
+ndis_resetdone_func(ndis_handle adapter, ndis_status status,
+	uint8_t addressingreset)
 {
 	ndis_miniport_block	*block;
 	struct ndis_softc	*sc;

Modified: stable/7/sys/compat/ndis/subr_hal.c
==============================================================================
--- stable/7/sys/compat/ndis/subr_hal.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/compat/ndis/subr_hal.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -142,18 +142,14 @@ WRITE_PORT_ULONG(port, val)
 }
 
 static void
-WRITE_PORT_USHORT(port, val)
-	uint16_t		*port;
-	uint16_t		val;
+WRITE_PORT_USHORT(uint16_t *port, uint16_t val)
 {
 	bus_space_write_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
 	return;
 }
 
 static void
-WRITE_PORT_UCHAR(port, val)
-	uint8_t			*port;
-	uint8_t			val;
+WRITE_PORT_UCHAR(uint8_t *port, uint8_t val)
 {
 	bus_space_write_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val);
 	return;
@@ -378,9 +374,7 @@ KfAcquireSpinLock(lock)
 }
 
 void
-KfReleaseSpinLock(lock, newirql)
-	kspin_lock		*lock;
-	uint8_t			newirql;
+KfReleaseSpinLock(kspin_lock *lock, uint8_t newirql)
 {
 	KeReleaseSpinLockFromDpcLevel(lock);
 	KeLowerIrql(newirql);
@@ -407,8 +401,7 @@ KeQueryPerformanceCounter(freq)
 }
 
 uint8_t
-KfRaiseIrql(irql)
-	uint8_t			irql;
+KfRaiseIrql(uint8_t irql)
 {
 	uint8_t			oldirql;
 
@@ -428,8 +421,7 @@ KfRaiseIrql(irql)
 }
 
 void 
-KfLowerIrql(oldirql)
-	uint8_t			oldirql;
+KfLowerIrql(uint8_t oldirql)
 {
 	if (oldirql == DISPATCH_LEVEL)
 		return;
@@ -453,8 +445,7 @@ KeRaiseIrqlToDpcLevel(void)
 }
 
 static void
-_KeLowerIrql(oldirql)
-	uint8_t			oldirql;
+_KeLowerIrql(uint8_t oldirql)
 {
 	KeLowerIrql(oldirql);
 	return;

Modified: stable/7/sys/compat/ndis/subr_ndis.c
==============================================================================
--- stable/7/sys/compat/ndis/subr_ndis.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/compat/ndis/subr_ndis.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -891,10 +891,8 @@ NdisInitializeReadWriteLock(lock)
 }
 
 static void
-NdisAcquireReadWriteLock(lock, writeacc, state)
-	ndis_rw_lock		*lock;
-	uint8_t			writeacc;
-	ndis_lock_state		*state;
+NdisAcquireReadWriteLock(ndis_rw_lock *lock, uint8_t writeacc,
+    ndis_lock_state *state)
 {
 	if (writeacc == TRUE) {
 		KeAcquireSpinLock(&lock->nrl_spinlock, &state->nls_oldirql);
@@ -1077,13 +1075,9 @@ ndis_map_cb(arg, segs, nseg, error)
 }
 
 static void
-NdisMStartBufferPhysicalMapping(adapter, buf, mapreg, writedev, addrarray, arraysize)
-	ndis_handle		adapter;
-	ndis_buffer		*buf;
-	uint32_t		mapreg;
-	uint8_t			writedev;
-	ndis_paddr_unit		*addrarray;
-	uint32_t		*arraysize;
+NdisMStartBufferPhysicalMapping(ndis_handle adapter, ndis_buffer *buf,
+    uint32_t mapreg, uint8_t writedev, ndis_paddr_unit *addrarray,
+    uint32_t *arraysize)
 {
 	ndis_miniport_block	*block;
 	struct ndis_softc	*sc;
@@ -1399,12 +1393,8 @@ NdisQueryMapRegisterCount(bustype, cnt)
 }
 
 static ndis_status
-NdisMAllocateMapRegisters(adapter, dmachannel, dmasize, physmapneeded, maxmap)
-	ndis_handle		adapter;
-	uint32_t		dmachannel;
-	uint8_t			dmasize;
-	uint32_t		physmapneeded;
-	uint32_t		maxmap;
+NdisMAllocateMapRegisters(ndis_handle adapter, uint32_t dmachannel,
+    uint8_t dmasize, uint32_t physmapneeded, uint32_t maxmap)
 {
 	struct ndis_softc	*sc;
 	ndis_miniport_block	*block;
@@ -1482,12 +1472,8 @@ ndis_mapshared_cb(arg, segs, nseg, error
  */
 
 static void
-NdisMAllocateSharedMemory(adapter, len, cached, vaddr, paddr)
-	ndis_handle		adapter;
-	uint32_t		len;
-	uint8_t			cached;
-	void			**vaddr;
-	ndis_physaddr		*paddr;
+NdisMAllocateSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+    void **vaddr, ndis_physaddr *paddr)
 {
 	ndis_miniport_block	*block;
 	struct ndis_softc	*sc;
@@ -1605,11 +1591,8 @@ ndis_asyncmem_complete(dobj, arg)
 }
 
 static ndis_status
-NdisMAllocateSharedMemoryAsync(adapter, len, cached, ctx)
-	ndis_handle		adapter;
-	uint32_t		len;
-	uint8_t			cached;
-	void			*ctx;
+NdisMAllocateSharedMemoryAsync(ndis_handle adapter, uint32_t len,
+    uint8_t cached, void *ctx)
 {
 	ndis_miniport_block	*block;
 	struct ndis_allocwork	*w;
@@ -1642,12 +1625,8 @@ NdisMAllocateSharedMemoryAsync(adapter, 
 }
 
 static void
-NdisMFreeSharedMemory(adapter, len, cached, vaddr, paddr)
-	ndis_handle		adapter;
-	uint32_t		len;
-	uint8_t			cached;
-	void			*vaddr;
-	ndis_physaddr		paddr;
+NdisMFreeSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached,
+    void *vaddr, ndis_physaddr paddr)
 {
 	ndis_miniport_block	*block;
 	struct ndis_softc	*sc;
@@ -1754,10 +1733,8 @@ NdisMGetDmaAlignment(handle)
  */
 
 static ndis_status
-NdisMInitializeScatterGatherDma(adapter, is64, maxphysmap)
-	ndis_handle		adapter;
-	uint8_t			is64;
-	uint32_t		maxphysmap;
+NdisMInitializeScatterGatherDma(ndis_handle adapter, uint8_t is64,
+    uint32_t maxphysmap)
 {
 	struct ndis_softc	*sc;
 	ndis_miniport_block	*block;
@@ -2358,14 +2335,9 @@ ndis_intrhand(dpc, intr, sysarg1, sysarg
 }
 
 static ndis_status
-NdisMRegisterInterrupt(intr, adapter, ivec, ilevel, reqisr, shared, imode)
-	ndis_miniport_interrupt	*intr;
-	ndis_handle		adapter;
-	uint32_t		ivec;
-	uint32_t		ilevel;
-	uint8_t			reqisr;
-	uint8_t			shared;
-	ndis_interrupt_mode	imode;
+NdisMRegisterInterrupt(ndis_miniport_interrupt *intr, ndis_handle adapter,
+    uint32_t ivec, uint32_t ilevel, uint8_t reqisr, uint8_t shared,
+    ndis_interrupt_mode imode)
 {
 	ndis_miniport_block	*block;
 	ndis_miniport_characteristics *ch;

Modified: stable/7/sys/compat/ndis/subr_ntoskrnl.c
==============================================================================
--- stable/7/sys/compat/ndis/subr_ntoskrnl.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/compat/ndis/subr_ntoskrnl.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -445,10 +445,7 @@ ntoskrnl_memmove(dst, src, size)
 }
 
 static void *
-ntoskrnl_memchr(buf, ch, len)
-	void			*buf;
-	unsigned char		ch;
-	size_t			len;
+ntoskrnl_memchr(void *buf, unsigned char ch, size_t len)
 {
 	if (len != 0) {
 		unsigned char *p = buf;
@@ -519,10 +516,8 @@ ntoskrnl_tolower(c)
 }
 
 static uint8_t 
-RtlEqualUnicodeString(str1, str2, caseinsensitive)
-	unicode_string		*str1;
-	unicode_string		*str2;
-	uint8_t			caseinsensitive;
+RtlEqualUnicodeString(unicode_string *str1, unicode_string *str2,
+	uint8_t caseinsensitive)
 {
 	int			i;
 
@@ -594,10 +589,7 @@ ntoskrnl_unicode_to_ascii(unicode, ascii
 }
 
 uint32_t
-RtlUnicodeStringToAnsiString(dest, src, allocate)
-	ansi_string		*dest;
-	unicode_string		*src;
-	uint8_t			allocate;
+RtlUnicodeStringToAnsiString(ansi_string *dest, unicode_string *src, uint8_t allocate)
 {
 	if (dest == NULL || src == NULL)
 		return(STATUS_INVALID_PARAMETER);
@@ -625,10 +617,8 @@ RtlUnicodeStringToAnsiString(dest, src, 
 }
 
 uint32_t
-RtlAnsiStringToUnicodeString(dest, src, allocate)
-	unicode_string		*dest;
-	ansi_string		*src;
-	uint8_t			allocate;
+RtlAnsiStringToUnicodeString(unicode_string *dest, ansi_string *src,
+	uint8_t allocate)
 {
 	if (dest == NULL || src == NULL)
 		return(STATUS_INVALID_PARAMETER);
@@ -726,14 +716,9 @@ IoGetDriverObjectExtension(drv, clid)
 
 
 uint32_t
-IoCreateDevice(drv, devextlen, devname, devtype, devchars, exclusive, newdev)
-	driver_object		*drv;
-	uint32_t		devextlen;
-	unicode_string		*devname;
-	uint32_t		devtype;
-	uint32_t		devchars;
-	uint8_t			exclusive;
-	device_object		**newdev;
+IoCreateDevice(driver_object *drv, uint32_t devextlen, unicode_string *devname,
+	uint32_t devtype, uint32_t devchars, uint8_t exclusive,
+	device_object **newdev)
 {
 	device_object		*dev;
 
@@ -951,17 +936,9 @@ IoBuildAsynchronousFsdRequest(func, dobj
 }
 
 static irp *
-IoBuildDeviceIoControlRequest(iocode, dobj, ibuf, ilen, obuf, olen,
-    isinternal, event, status)
-	uint32_t		iocode;
-	device_object		*dobj;
-	void			*ibuf;
-	uint32_t		ilen;
-	void			*obuf;
-	uint32_t		olen;
-	uint8_t			isinternal;
-	nt_kevent		*event;
-	io_status_block		*status;
+IoBuildDeviceIoControlRequest(uint32_t iocode, device_object *dobj, void *ibuf,
+	uint32_t ilen, void *obuf, uint32_t olen, uint8_t isinternal,
+	nt_kevent *event, io_status_block *status)
 {
 	irp			*ip;
 	io_stack_location	*sl;
@@ -1047,9 +1024,7 @@ IoBuildDeviceIoControlRequest(iocode, do
 }
 
 static irp *
-IoAllocateIrp(stsize, chargequota)
-	uint8_t			stsize;
-	uint8_t			chargequota;
+IoAllocateIrp(uint8_t stsize, uint8_t chargequota)
 {
 	irp			*i;
 
@@ -1063,9 +1038,7 @@ IoAllocateIrp(stsize, chargequota)
 }
 
 static irp *
-IoMakeAssociatedIrp(ip, stsize)
-	irp			*ip;
-	uint8_t			stsize;
+IoMakeAssociatedIrp(irp *ip, uint8_t stsize)
 {
 	irp			*associrp;
 
@@ -1092,10 +1065,7 @@ IoFreeIrp(ip)
 }
 
 static void
-IoInitializeIrp(io, psize, ssize)
-	irp			*io;
-	uint16_t		psize;
-	uint8_t			ssize;
+IoInitializeIrp(irp *io, uint16_t psize, uint8_t ssize)
 {
 	bzero((char *)io, IoSizeOfIrp(ssize));
 	io->irp_size = psize;
@@ -1124,16 +1094,14 @@ IoReuseIrp(ip, status)
 }
 
 void
-IoAcquireCancelSpinLock(irql)
-	uint8_t			*irql;
+IoAcquireCancelSpinLock(uint8_t *irql)
 {
 	KeAcquireSpinLock(&ntoskrnl_cancellock, irql);
 	return;
 }
 
 void
-IoReleaseCancelSpinLock(irql)
-	uint8_t			irql;
+IoReleaseCancelSpinLock(uint8_t irql)
 {
 	KeReleaseSpinLock(&ntoskrnl_cancellock, irql);
 	return;
@@ -1182,9 +1150,7 @@ IofCallDriver(dobj, ip)
 }
 
 void
-IofCompleteRequest(ip, prioboost)
-	irp			*ip;
-	uint8_t			prioboost;
+IofCompleteRequest(irp *ip, uint8_t prioboost)
 {
 	uint32_t		i;
 	uint32_t		status;
@@ -1292,9 +1258,7 @@ KeAcquireInterruptSpinLock(iobj)
 }
 
 void
-KeReleaseInterruptSpinLock(iobj, irql)
-	kinterrupt		*iobj;
-	uint8_t			irql;
+KeReleaseInterruptSpinLock(kinterrupt *iobj, uint8_t irql)
 {
 	KeReleaseSpinLock(&ntoskrnl_intlock, irql);
 	return;
@@ -1332,19 +1296,9 @@ KeSynchronizeExecution(iobj, syncfunc, s
  */
 
 uint32_t
-IoConnectInterrupt(iobj, svcfunc, svcctx, lock, vector, irql,
-	syncirql, imode, shared, affinity, savefloat)
-	kinterrupt		**iobj;
-	void			*svcfunc;
-	void			*svcctx;
-	uint32_t		vector;
-	kspin_lock		*lock;
-	uint8_t			irql;
-	uint8_t			syncirql;
-	uint8_t			imode;
-	uint8_t			shared;
-	uint32_t		affinity;
-	uint8_t			savefloat;
+IoConnectInterrupt(kinterrupt **iobj, void *svcfunc, void *svcctx,
+	kspin_lock *lock, uint32_t vector, uint8_t irql, uint8_t syncirql,
+	uint8_t imode, uint8_t shared, uint32_t affinity, uint8_t savefloat)
 {
 	uint8_t			curirql;
 
@@ -1689,12 +1643,8 @@ KeTickCount(void)
  */
 
 uint32_t
-KeWaitForSingleObject(arg, reason, mode, alertable, duetime)
-	void			*arg;
-	uint32_t		reason;
-	uint32_t		mode;
-	uint8_t			alertable;
-	int64_t			*duetime;
+KeWaitForSingleObject(void *arg, uint32_t reason, uint32_t mode,
+    uint8_t alertable, int64_t *duetime)
 {
 	wait_block		w;
 	struct thread		*td = curthread;
@@ -1801,16 +1751,9 @@ KeWaitForSingleObject(arg, reason, mode,
 }
 
 static uint32_t
-KeWaitForMultipleObjects(cnt, obj, wtype, reason, mode,
-	alertable, duetime, wb_array)
-	uint32_t		cnt;
-	nt_dispatch_header	*obj[];
-	uint32_t		wtype;
-	uint32_t		reason;
-	uint32_t		mode;
-	uint8_t			alertable;
-	int64_t			*duetime;
-	wait_block		*wb_array;
+KeWaitForMultipleObjects(uint32_t cnt, nt_dispatch_header *obj[], uint32_t wtype,
+	uint32_t reason, uint32_t mode, uint8_t alertable, int64_t *duetime,
+	wait_block *wb_array)
 {
 	struct thread		*td = curthread;
 	wait_block		*whead, *w;
@@ -2011,9 +1954,7 @@ wait_done:
 }
 
 static void
-WRITE_REGISTER_USHORT(reg, val)
-	uint16_t		*reg;
-	uint16_t		val;
+WRITE_REGISTER_USHORT(uint16_t *reg, uint16_t val)
 {
 	bus_space_write_2(NDIS_BUS_SPACE_MEM, 0x0, (bus_size_t)reg, val);
 	return;
@@ -2043,16 +1984,13 @@ READ_REGISTER_ULONG(reg)
 }
 
 static uint8_t
-READ_REGISTER_UCHAR(reg)
-	uint8_t			*reg;
+READ_REGISTER_UCHAR(uint8_t *reg)
 {
 	return(bus_space_read_1(NDIS_BUS_SPACE_MEM, 0x0, (bus_size_t)reg));
 }
 
 static void
-WRITE_REGISTER_UCHAR(reg, val)
-	uint8_t			*reg;
-	uint8_t			val;
+WRITE_REGISTER_UCHAR(uint8_t *reg, uint8_t val)
 {
 	bus_space_write_1(NDIS_BUS_SPACE_MEM, 0x0, (bus_size_t)reg, val);
 	return;
@@ -2107,33 +2045,25 @@ _aullrem(a, b)
 }
 
 static int64_t
-_allshl(a, b)
-	int64_t			a;
-	uint8_t			b;
+_allshl(int64_t a, uint8_t b)
 {
 	return (a << b);
 }
 
 static uint64_t
-_aullshl(a, b)
-	uint64_t		a;
-	uint8_t			b;
+_aullshl(uint64_t a, uint8_t b)
 {
 	return (a << b);
 }
 
 static int64_t
-_allshr(a, b)
-	int64_t			a;
-	uint8_t			b;
+_allshr(int64_t a, uint8_t b)
 {
 	return (a >> b);
 }
 
 static uint64_t
-_aullshr(a, b)
-	uint64_t		a;
-	uint8_t			b;
+_aullshr(uint64_t a, uint8_t b)
 {
 	return (a >> b);
 }
@@ -2198,15 +2128,9 @@ ntoskrnl_findwrap(func)
 }
 
 static void
-ExInitializePagedLookasideList(lookaside, allocfunc, freefunc,
-    flags, size, tag, depth)
-	paged_lookaside_list	*lookaside;
-	lookaside_alloc_func	*allocfunc;
-	lookaside_free_func	*freefunc;
-	uint32_t		flags;
-	size_t			size;
-	uint32_t		tag;
-	uint16_t		depth;
+ExInitializePagedLookasideList(paged_lookaside_list *lookaside,
+	lookaside_alloc_func *allocfunc, lookaside_free_func *freefunc,
+	uint32_t flags, size_t size, uint32_t tag, uint16_t depth)
 {
 	bzero((char *)lookaside, sizeof(paged_lookaside_list));
 
@@ -2253,15 +2177,9 @@ ExDeletePagedLookasideList(lookaside)
 }
 
 static void
-ExInitializeNPagedLookasideList(lookaside, allocfunc, freefunc,
-    flags, size, tag, depth)
-	npaged_lookaside_list	*lookaside;
-	lookaside_alloc_func	*allocfunc;
-	lookaside_free_func	*freefunc;
-	uint32_t		flags;
-	size_t			size;
-	uint32_t		tag;
-	uint16_t		depth;
+ExInitializeNPagedLookasideList(npaged_lookaside_list *lookaside,
+	lookaside_alloc_func *allocfunc, lookaside_free_func *freefunc,
+	uint32_t flags, size_t size, uint32_t tag, uint16_t depth)
 {
 	bzero((char *)lookaside, sizeof(npaged_lookaside_list));
 
@@ -2479,12 +2397,8 @@ ExInterlockedAddLargeStatistic(addend, i
 };
 
 mdl *
-IoAllocateMdl(vaddr, len, secondarybuf, chargequota, iopkt)
-	void			*vaddr;
-	uint32_t		len;
-	uint8_t			secondarybuf;
-	uint8_t			chargequota;
-	irp			*iopkt;
+IoAllocateMdl(void *vaddr, uint32_t len, uint8_t secondarybuf,
+	uint8_t chargequota, irp *iopkt)
 {
 	mdl			*m;
 	int			zone = 0;
@@ -2633,23 +2547,15 @@ MmBuildMdlForNonPagedPool(m)
 }
 
 static void *
-MmMapLockedPages(buf, accessmode)
-	mdl			*buf;
-	uint8_t			accessmode;
+MmMapLockedPages(mdl *buf, uint8_t accessmode)
 {
 	buf->mdl_flags |= MDL_MAPPED_TO_SYSTEM_VA;
 	return(MmGetMdlVirtualAddress(buf));
 }
 
 static void *
-MmMapLockedPagesSpecifyCache(buf, accessmode, cachetype, vaddr,
-    bugcheck, prio)
-	mdl			*buf;
-	uint8_t			accessmode;
-	uint32_t		cachetype;
-	void			*vaddr;
-	uint32_t		bugcheck;
-	uint32_t		prio;
+MmMapLockedPagesSpecifyCache(mdl *buf, uint8_t accessmode, uint32_t cachetype,
+	void *vaddr, uint32_t bugcheck, uint32_t prio)
 {
 	return(MmMapLockedPages(buf, accessmode));
 }
@@ -3227,9 +3133,7 @@ srand(seed)
 }
 
 static uint8_t
-IoIsWdmVersionAvailable(major, minor)
-	uint8_t			major;
-	uint8_t			minor;
+IoIsWdmVersionAvailable(uint8_t major, uint8_t minor)
 {
 	if (major == WDM_MAJOR && minor == WDM_MINOR_WINXP)
 		return(TRUE);
@@ -3289,9 +3193,7 @@ KeInitializeMutex(kmutex, level)
 }
 
 static uint32_t
-KeReleaseMutex(kmutex, kwait)
-	kmutant			*kmutex;
-	uint8_t			kwait;
+KeReleaseMutex(kmutant *kmutex, uint8_t kwait)
 {
 	uint32_t		prevstate;
 
@@ -3323,10 +3225,7 @@ KeReadStateMutex(kmutex)
 }
 
 void
-KeInitializeEvent(kevent, type, state)
-	nt_kevent		*kevent;
-	uint32_t		type;
-	uint8_t			state;
+KeInitializeEvent(nt_kevent *kevent, uint32_t type, uint8_t state)
 {
 	InitializeListHead((&kevent->k_header.dh_waitlisthead));
 	kevent->k_header.dh_sigstate = state;
@@ -3353,10 +3252,7 @@ KeResetEvent(kevent)
 }
 
 uint32_t
-KeSetEvent(kevent, increment, kwait)
-	nt_kevent		*kevent;
-	uint32_t		increment;
-	uint8_t			kwait;
+KeSetEvent(nt_kevent *kevent, uint32_t increment, uint8_t kwait)
 {
 	uint32_t		prevstate;
 	wait_block		*w;
@@ -3458,14 +3354,8 @@ KeReadStateEvent(kevent)
  */
 
 static ndis_status
-ObReferenceObjectByHandle(handle, reqaccess, otype,
-    accessmode, object, handleinfo)
-	ndis_handle		handle;
-	uint32_t		reqaccess;
-	void			*otype;
-	uint8_t			accessmode;
-	void			**object;
-	void			**handleinfo;
+ObReferenceObjectByHandle(ndis_handle handle, uint32_t reqaccess, void *otype,
+	uint8_t accessmode, void **object, void **handleinfo)
 {
 	nt_objref		*nr;
 
@@ -4112,9 +4002,7 @@ KeSetImportanceDpc(dpc, imp)
 }
 
 void
-KeSetTargetProcessorDpc(dpc, cpu)
-	kdpc			*dpc;
-	uint8_t			cpu;
+KeSetTargetProcessorDpc(kdpc *dpc, uint8_t cpu)
 {
 	if (cpu > mp_ncpus)
 		return;

Modified: stable/7/sys/contrib/altq/altq/altq_subr.c
==============================================================================
--- stable/7/sys/contrib/altq/altq/altq_subr.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/contrib/altq/altq/altq_subr.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -812,10 +812,7 @@ read_dsfield(m, pktattr)
 }
 
 void
-write_dsfield(m, pktattr, dsfield)
-	struct mbuf *m;
-	struct altq_pktattr *pktattr;
-	u_int8_t dsfield;
+write_dsfield(struct mbuf *m, struct altq_pktattr *pktattr, u_int8_t dsfield)
 {
 	struct mbuf *m0;
 

Modified: stable/7/sys/dev/mca/mca_bus.c
==============================================================================
--- stable/7/sys/dev/mca/mca_bus.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/dev/mca/mca_bus.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -68,10 +68,7 @@ struct mca_device {
 
 /* Not supposed to use this function! */
 void
-mca_pos_set (dev, reg, data)
-	device_t	dev;
-	u_int8_t	reg;
-	u_int8_t	data;
+mca_pos_set (device_t dev, u_int8_t reg, u_int8_t data)
 {
 	struct mca_device *	m_dev = device_get_ivars(dev);
 	u_int8_t		slot = mca_get_slot(dev);
@@ -98,9 +95,7 @@ mca_pos_set (dev, reg, data)
 }
 
 u_int8_t
-mca_pos_get (dev, reg)
-	device_t	dev;
-	u_int8_t	reg;
+mca_pos_get (device_t dev, u_int8_t reg)
 {
 	u_int8_t	slot = mca_get_slot(dev);
 	u_int8_t	data = 0;
@@ -158,9 +153,7 @@ mca_pos_get (dev, reg)
 }
 
 const char *
-mca_match_id (id, mca_devs)
-	u_int16_t		id;
-	struct mca_ident *	mca_devs;
+mca_match_id (u_int16_t id, struct mca_ident *mca_devs)
 {
 	struct mca_ident *	m = mca_devs;
 	while(m->name != NULL) {
@@ -172,9 +165,7 @@ mca_match_id (id, mca_devs)
 }
 
 u_int8_t
-mca_pos_read (dev, reg)
-	device_t		dev;
-	u_int8_t		reg;
+mca_pos_read (device_t dev, u_int8_t reg)
 {
 	struct mca_device *	m_dev = device_get_ivars(dev);
 

Modified: stable/7/sys/dev/nsp/nsp.c
==============================================================================
--- stable/7/sys/dev/nsp/nsp.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/dev/nsp/nsp.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -218,11 +218,8 @@ nsp_cr_read_1(bst, bsh, ofs)
 }
 
 static __inline void 
-nsp_cr_write_1(bst, bsh, ofs, va)
-	bus_space_tag_t bst;
-	bus_space_handle_t bsh;
-	bus_addr_t ofs;
-	u_int8_t va;
+nsp_cr_write_1(bus_space_tag_t bst, bus_space_handle_t bsh, bus_addr_t ofs,
+    u_int8_t va)
 {
 
 	bus_space_write_1(bst, bsh, nsp_idxr, ofs);
@@ -230,9 +227,7 @@ nsp_cr_write_1(bst, bsh, ofs, va)
 }
 	
 static int
-nsp_expect_signal(sc, curphase, mask)
-	struct nsp_softc *sc;
-	u_int8_t curphase, mask;
+nsp_expect_signal(struct nsp_softc *sc, u_int8_t curphase, u_int8_t mask)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 	bus_space_tag_t bst = sc->sc_iot;
@@ -1224,10 +1219,7 @@ WriteLoop:
 }
 
 static int
-nsp_negate_signal(sc, mask, s)
-	struct nsp_softc *sc;
-	u_int8_t mask;
-	u_char *s;
+nsp_negate_signal(struct nsp_softc *sc, u_int8_t mask, u_char *s)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 	bus_space_tag_t bst = sc->sc_iot;
@@ -1354,10 +1346,8 @@ nsp_disconnected(sc, ti)
 static void nsp_error(struct nsp_softc *, u_char *, u_int8_t, u_int8_t, u_int8_t);
 
 static void
-nsp_error(sc, s, isrc, ph, irqphs)
-	struct nsp_softc *sc;
-	u_char *s;
-	u_int8_t isrc, ph, irqphs;
+nsp_error(struct nsp_softc * sc, u_char *s, u_int8_t isrc, u_int8_t ph,
+    u_int8_t irqphs)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 
@@ -1430,10 +1420,7 @@ nsp_ccb_nexus_establish(sc)
 }
 
 static int
-nsp_phase_match(sc, phase, stat)
-	struct nsp_softc *sc;
-	u_int8_t phase;
-	u_int8_t stat;
+nsp_phase_match(struct nsp_softc *sc, u_int8_t phase, u_int8_t stat)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 

Modified: stable/7/sys/dev/stg/tmc18c30.c
==============================================================================
--- stable/7/sys/dev/stg/tmc18c30.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/dev/stg/tmc18c30.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -191,9 +191,7 @@ struct scsi_low_funcs stgfuncs = {
  * hwfuncs
  ****************************************************/
 static __inline void 
-stghw_bcr_write_1(sc, bcv)
-	struct stg_softc *sc;
-	u_int8_t bcv;
+stghw_bcr_write_1(struct stg_softc *sc, u_int8_t bcv)
 {
 
 	bus_space_write_1(sc->sc_iot, sc->sc_ioh, tmc_bctl, bcv);
@@ -722,10 +720,7 @@ stg_pio_write(sc, ti, thold)
 }
 
 static int
-stg_negate_signal(sc, mask, s)
-	struct stg_softc *sc;
-	u_int8_t mask;
-	u_char *s;
+stg_negate_signal(struct stg_softc *sc, u_int8_t mask, u_char *s)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 	bus_space_tag_t bst = sc->sc_iot;
@@ -749,9 +744,7 @@ stg_negate_signal(sc, mask, s)
 }
 
 static int
-stg_expect_signal(sc, phase, mask)
-	struct stg_softc *sc;
-	u_int8_t phase, mask;
+stg_expect_signal(struct stg_softc *sc, u_int8_t phase, u_int8_t mask)
 {
 	struct scsi_low_softc *slp = &sc->sc_sclow;
 	bus_space_tag_t bst = sc->sc_iot;

Modified: stable/7/sys/dev/txp/if_txp.c
==============================================================================
--- stable/7/sys/dev/txp/if_txp.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/dev/txp/if_txp.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -1390,11 +1390,8 @@ oactive:
  * Handle simple commands sent to the typhoon
  */
 static int
-txp_command(sc, id, in1, in2, in3, out1, out2, out3, wait)
-	struct txp_softc *sc;
-	u_int16_t id, in1, *out1;
-	u_int32_t in2, in3, *out2, *out3;
-	int wait;
+txp_command(struct txp_softc *sc, u_int16_t id, u_int16_t in1, u_int32_t in2,
+    u_int32_t in3, u_int16_t *out1, u_int32_t *out2, u_int32_t *out3, int wait)
 {
 	struct txp_rsp_desc *rsp = NULL;
 
@@ -1415,14 +1412,9 @@ txp_command(sc, id, in1, in2, in3, out1,
 }
 
 static int
-txp_command2(sc, id, in1, in2, in3, in_extp, in_extn, rspp, wait)
-	struct txp_softc *sc;
-	u_int16_t id, in1;
-	u_int32_t in2, in3;
-	struct txp_ext_desc *in_extp;
-	u_int8_t in_extn;
-	struct txp_rsp_desc **rspp;
-	int wait;
+txp_command2(struct txp_softc *sc, u_int16_t id, u_int16_t in1, u_int32_t in2,
+    u_int32_t in3, struct txp_ext_desc *in_extp, u_int8_t in_extn,
+    struct txp_rsp_desc **rspp, int wait)
 {
 	struct txp_hostvar *hv = sc->sc_hostvar;
 	struct txp_cmd_desc *cmd;
@@ -1488,12 +1480,8 @@ txp_command2(sc, id, in1, in2, in3, in_e
 }
 
 static int
-txp_response(sc, ridx, id, seq, rspp)
-	struct txp_softc *sc;
-	u_int32_t ridx;
-	u_int16_t id;
-	u_int16_t seq;
-	struct txp_rsp_desc **rspp;
+txp_response(struct txp_softc *sc, u_int32_t ridx, u_int16_t id, u_int16_t seq,
+    struct txp_rsp_desc **rspp)
 {
 	struct txp_hostvar *hv = sc->sc_hostvar;
 	struct txp_rsp_desc *rsp;

Modified: stable/7/sys/i386/i386/vm86.c
==============================================================================
--- stable/7/sys/i386/i386/vm86.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/i386/i386/vm86.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -615,10 +615,7 @@ vm86_datacall(intnum, vmf, vmc)
 }
 
 vm_offset_t
-vm86_getaddr(vmc, sel, off)
-	struct vm86context *vmc;
-	u_short sel;
-	u_short off;
+vm86_getaddr(struct vm86context *vmc, u_short sel, u_short off)
 {
 	int i, page;
 	vm_offset_t addr;

Modified: stable/7/sys/i386/isa/npx.c
==============================================================================
--- stable/7/sys/i386/isa/npx.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/i386/isa/npx.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -452,8 +452,7 @@ npx_attach(dev)
  * Initialize floating point unit.
  */
 void
-npxinit(control)
-	u_short control;
+npxinit(u_short control)
 {
 	static union savefpu dummy;
 	register_t savecrit;

Modified: stable/7/sys/netinet/sctp_input.c
==============================================================================
--- stable/7/sys/netinet/sctp_input.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/netinet/sctp_input.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -5570,10 +5570,7 @@ sctp_print_mbuf_chain(struct mbuf *m)
 #endif
 
 void
-sctp_input_with_port(i_pak, off, port)
-	struct mbuf *i_pak;
-	int off;
-	uint16_t port;
+sctp_input_with_port(struct mbuf *i_pak, int off, uint16_t port)
 {
 #ifdef SCTP_MBUF_LOGGING
 	struct mbuf *mat;

Modified: stable/7/sys/netipsec/key.c
==============================================================================
--- stable/7/sys/netipsec/key.c	Thu Mar 19 17:02:10 2009	(r190086)
+++ stable/7/sys/netipsec/key.c	Thu Mar 19 17:06:04 2009	(r190087)
@@ -2406,10 +2406,7 @@ key_spddump(so, m, mhp)
 }
 
 static struct mbuf *
-key_setdumpsp(sp, type, seq, pid)
-	struct secpolicy *sp;
-	u_int8_t type;
-	u_int32_t seq, pid;
+key_setdumpsp(struct secpolicy *sp, u_int8_t type, u_int32_t seq, u_int32_t pid)
 {
 	struct mbuf *result = NULL, *m;
 	struct seclifetime lt;
@@ -3302,10 +3299,8 @@ key_mature(struct secasvar *sav)
  * subroutine for SADB_GET and SADB_DUMP.
  */
 static struct mbuf *
-key_setdumpsa(sav, type, satype, seq, pid)
-	struct secasvar *sav;
-	u_int8_t type, satype;
-	u_int32_t seq, pid;
+key_setdumpsa(struct secasvar *sav, u_int8_t type, u_int8_t satype,
+    u_int32_t seq, u_int32_t pid)
 {
 	struct mbuf *result = NULL, *tres = NULL, *m;
 	int i;
@@ -3443,12 +3438,8 @@ fail:
  * set data into sadb_msg.
  */
 static struct mbuf *
-key_setsadbmsg(type, tlen, satype, seq, pid, reserved)
-	u_int8_t type, satype;
-	u_int16_t tlen;
-	u_int32_t seq;
-	pid_t pid;
-	u_int16_t reserved;
+key_setsadbmsg(u_int8_t type, u_int16_t tlen, u_int8_t satype, u_int32_t seq,
+    pid_t pid, u_int16_t reserved)
 {
 	struct mbuf *m;
 	struct sadb_msg *p;
@@ -3523,11 +3514,7 @@ key_setsadbsa(sav)
  * set data into sadb_address.
  */
 static struct mbuf *
-key_setsadbaddr(exttype, saddr, prefixlen, ul_proto)
-	u_int16_t exttype;
-	const struct sockaddr *saddr;
-	u_int8_t prefixlen;
-	u_int16_t ul_proto;
+key_setsadbaddr(u_int16_t exttype, const struct sockaddr *saddr, u_int8_t prefixlen, u_int16_t ul_proto)
 {
 	struct mbuf *m;
 	struct sadb_address *p;
@@ -3574,9 +3561,7 @@ key_setsadbaddr(exttype, saddr, prefixle
  * set data into sadb_x_sa2.
  */
 static struct mbuf *
-key_setsadbxsa2(mode, seq, reqid)
-	u_int8_t mode;
-	u_int32_t seq, reqid;
+key_setsadbxsa2(u_int8_t mode, u_int32_t seq, u_int32_t reqid)
 {
 	struct mbuf *m;
 	struct sadb_x_sa2 *p;
@@ -3608,10 +3593,7 @@ key_setsadbxsa2(mode, seq, reqid)
  * set data into sadb_x_policy
  */
 static struct mbuf *
-key_setsadbxpolicy(type, dir, id)
-	u_int16_t type;
-	u_int8_t dir;
-	u_int32_t id;
+key_setsadbxpolicy(u_int16_t type, u_int8_t dir, u_int32_t id)
 {
 	struct mbuf *m;
 	struct sadb_x_policy *p;
@@ -4343,8 +4325,7 @@ key_randomfill(p, l)
  *	0: invalid satype.
  */
 static u_int16_t
-key_satype2proto(satype)
-	u_int8_t satype;
+key_satype2proto(u_int8_t satype)
 {
 	switch (satype) {
 	case SADB_SATYPE_UNSPEC:
@@ -4369,8 +4350,7 @@ key_satype2proto(satype)
  *	0: invalid protocol type.
  */
 static u_int8_t
-key_proto2satype(proto)
-	u_int16_t proto;
+key_proto2satype(u_int16_t proto)
 {
 	switch (proto) {
 	case IPPROTO_AH:
@@ -5229,11 +5209,8 @@ key_delete(so, m, mhp)
  * delete all SAs for src/dst.  Called from key_delete().
  */
 static int
-key_delete_all(so, m, mhp, proto)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:12:14 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7072C106564A;
	Thu, 19 Mar 2009 17:12:14 +0000 (UTC)
	(envelope-from rdivacky@vlk.vlakno.cz)
Received: from vlakno.cz (77-93-215-190.static.masterinter.net [77.93.215.190])
	by mx1.freebsd.org (Postfix) with ESMTP id 175298FC18;
	Thu, 19 Mar 2009 17:12:13 +0000 (UTC)
	(envelope-from rdivacky@vlk.vlakno.cz)
Received: from localhost (localhost [127.0.0.1])
	by vlakno.cz (Postfix) with ESMTP id A49A89CB071;
	Thu, 19 Mar 2009 18:11:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at vlakno.cz
Received: from vlakno.cz ([127.0.0.1])
	by localhost (lev.vlakno.cz [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id icvloOwrVP4f; Thu, 19 Mar 2009 18:11:47 +0100 (CET)
Received: from vlk.vlakno.cz (localhost [127.0.0.1])
	by vlakno.cz (Postfix) with ESMTP id E94C39CB124;
	Thu, 19 Mar 2009 18:11:46 +0100 (CET)
Received: (from rdivacky@localhost)
	by vlk.vlakno.cz (8.14.3/8.14.3/Submit) id n2JHBka3036857;
	Thu, 19 Mar 2009 18:11:46 +0100 (CET) (envelope-from rdivacky)
Date: Thu, 19 Mar 2009 18:11:46 +0100
From: Roman Divacky 
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Message-ID: <20090319171146.GA36774@freebsd.org>
References: <200903191706.n2JH65B0070103@svn.freebsd.org>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="opJtzjQTFsWo+cga"
Content-Disposition: inline
In-Reply-To: <200903191706.n2JH65B0070103@svn.freebsd.org>
User-Agent: Mutt/1.4.2.3i
Cc: 
Subject: Re: svn commit: r190087 - in stable/7/sys: . compat/ndis
	contrib/altq/altq contrib/pf dev/ath/ath_hal dev/cxgb dev/mca
	dev/nsp dev/stg dev/txp i386/i386 i386/isa netinet netipsec vm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:12:14 -0000


--opJtzjQTFsWo+cga
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 19, 2009 at 05:06:05PM +0000, Roman Divacky wrote:
> Author: rdivacky
> Date: Thu Mar 19 17:06:04 2009
> New Revision: 190087
> URL: http://svn.freebsd.org/changeset/base/190087
>=20
> Log:
>   Merge r189004.

sorry about the miserable commit message, this was merged

  Change the functions to ANSI in those cases where it breaks promotion
  to int rule. See ISO C Standard: SS6.7.5.3:15.

  Approved by:  kib (mentor)
  Reviewed by:  warner
  Tested by:    silence on -current


--opJtzjQTFsWo+cga
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (FreeBSD)

iEYEARECAAYFAknCfNIACgkQLVEj6D3CBExpSACfWMUFzQQe0c/dMRQhpLRFzrwY
M9EAn22A7EOqJKUxd0ykhremSVvLmKRD
=nLnk
-----END PGP SIGNATURE-----

--opJtzjQTFsWo+cga--

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:14:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7D89D1065670;
	Thu, 19 Mar 2009 17:14:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 69CE08FC0A;
	Thu, 19 Mar 2009 17:14:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JHE14q070309;
	Thu, 19 Mar 2009 17:14:01 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JHE1l4070303;
	Thu, 19 Mar 2009 17:14:01 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191714.n2JHE1l4070303@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 17:14:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190088 - in stable/6/sys: . boot/i386/libi386
	boot/i386/loader contrib/pf dev/cxgb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:14:02 -0000

Author: jhb
Date: Thu Mar 19 17:14:00 2009
New Revision: 190088
URL: http://svn.freebsd.org/changeset/base/190088

Log:
  MFC:
  - Make it possible to disable GPT support by setting LOADER_NO_GPT_SUPPORT
    in make.conf or src.conf.
  - When GPT is enabled (which it is by default), use memory above 1 MB and
    leave the memory from the end of the bss to the end of the 640k window
    purely for the stack.  The loader has grown and now it is much more
    common for the heap and stack to grow into each other when both are
    located in the 640k window.

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/boot/i386/libi386/Makefile
  stable/6/sys/boot/i386/libi386/biosdisk.c
  stable/6/sys/boot/i386/libi386/devicename.c
  stable/6/sys/boot/i386/loader/Makefile
  stable/6/sys/boot/i386/loader/main.c
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)

Modified: stable/6/sys/boot/i386/libi386/Makefile
==============================================================================
--- stable/6/sys/boot/i386/libi386/Makefile	Thu Mar 19 17:06:04 2009	(r190087)
+++ stable/6/sys/boot/i386/libi386/Makefile	Thu Mar 19 17:14:00 2009	(r190088)
@@ -26,6 +26,10 @@ CFLAGS+= -DDISK_DEBUG
 CFLAGS+= -DSMBIOS_SERIAL_NUMBERS
 .endif
 
+.if !defined(LOADER_NO_GPT_SUPPORT)
+CFLAGS+=	-DLOADER_GPT_SUPPORT
+.endif
+
 # Include simple terminal emulation (cons25-compatible)
 CFLAGS+= -DTERM_EMU
 

Modified: stable/6/sys/boot/i386/libi386/biosdisk.c
==============================================================================
--- stable/6/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 17:06:04 2009	(r190087)
+++ stable/6/sys/boot/i386/libi386/biosdisk.c	Thu Mar 19 17:14:00 2009	(r190088)
@@ -68,12 +68,14 @@ __FBSDID("$FreeBSD$");
 # define DEBUG(fmt, args...)
 #endif
 
+#ifdef LOADER_GPT_SUPPORT
 struct gpt_part {
     int		gp_index;
     uuid_t	gp_type;
     uint64_t	gp_start;
     uint64_t	gp_end;
 };
+#endif
 
 struct open_disk {
     int			od_dkunit;		/* disk unit number */
@@ -90,25 +92,31 @@ struct open_disk {
 #define BD_FLOPPY		0x0004
 #define BD_LABELOK		0x0008
 #define BD_PARTTABOK		0x0010
+#ifdef LOADER_GPT_SUPPORT
 #define	BD_GPTOK		0x0020
+#endif
     union {
 	struct {
 	    struct disklabel		mbr_disklabel;
 	    int				mbr_nslices;	/* slice count */
 	    struct dos_partition	mbr_slicetab[NEXTDOSPART];
 	} _mbr;
+#ifdef LOADER_GPT_SUPPORT
 	struct {
 	    int				gpt_nparts;		
 	    struct gpt_part		*gpt_partitions;
 	} _gpt;
+#endif
     } _data;
 };
 
 #define	od_disklabel		_data._mbr.mbr_disklabel
 #define	od_nslices		_data._mbr.mbr_nslices
 #define	od_slicetab		_data._mbr.mbr_slicetab
+#ifdef LOADER_GPT_SUPPORT
 #define	od_nparts		_data._gpt.gpt_nparts
 #define	od_partitions		_data._gpt.gpt_partitions
+#endif
 
 /*
  * List of BIOS devices, translation from disk unit number to
@@ -130,8 +138,10 @@ static int	bd_write(struct open_disk *od
 
 static int	bd_int13probe(struct bdinfo *bd);
 
+#ifdef LOADER_GPT_SUPPORT
 static void	bd_printgptpart(struct open_disk *od, struct gpt_part *gp,
 		    char *prefix, int verbose);
+#endif
 static void	bd_printslice(struct open_disk *od, struct dos_partition *dp,
 		    char *prefix, int verbose);
 static void	bd_printbsdslice(struct open_disk *od, daddr_t offset,
@@ -163,8 +173,10 @@ static void	bd_closedisk(struct open_dis
 static int	bd_open_mbr(struct open_disk *od, struct i386_devdesc *dev);
 static int	bd_bestslice(struct open_disk *od);
 static void	bd_checkextended(struct open_disk *od, int slicenum);
+#ifdef LOADER_GPT_SUPPORT
 static int	bd_open_gpt(struct open_disk *od, struct i386_devdesc *dev);
 static struct gpt_part *bd_best_gptpart(struct open_disk *od);
+#endif
 
 /*
  * Translate between BIOS device numbers and our private unit numbers.
@@ -286,6 +298,7 @@ bd_print(int verbose)
 	
 	if (!bd_opendisk(&od, &dev)) {
 
+#ifdef LOADER_GPT_SUPPORT
 	    /* Do we have a GPT table? */
 	    if (od->od_flags & BD_GPTOK) {
 		for (j = 0; j < od->od_nparts; j++) {
@@ -293,9 +306,10 @@ bd_print(int verbose)
 			od->od_partitions[j].gp_index);
 		    bd_printgptpart(od, &od->od_partitions[j], line, verbose);
 		}
-
+	    } else
+#endif
 	    /* Do we have a partition table? */
-	    } else if (od->od_flags & BD_PARTTABOK) {
+	    if (od->od_flags & BD_PARTTABOK) {
 		dptr = &od->od_slicetab[0];
 
 		/* Check for a "dedicated" disk */
@@ -316,6 +330,7 @@ bd_print(int verbose)
     }
 }
 
+#ifdef LOADER_GPT_SUPPORT
 static uuid_t efi = GPT_ENT_TYPE_EFI;
 static uuid_t freebsd_boot = GPT_ENT_TYPE_FREEBSD_BOOT;
 static uuid_t freebsd_ufs = GPT_ENT_TYPE_FREEBSD_UFS;
@@ -365,6 +380,7 @@ bd_printgptpart(struct open_disk *od, st
 	    stats);
     pager_output(line);
 }
+#endif
 
 /*
  * Print information about slices on a disk.  For the size calculations we
@@ -566,8 +582,10 @@ bd_opendisk(struct open_disk **odp, stru
     }
 
     /* Determine disk layout. */
+#ifdef LOADER_GPT_SUPPORT
     error = bd_open_gpt(od, dev);
     if (error)
+#endif
 	error = bd_open_mbr(od, dev);
     
  out:
@@ -831,6 +849,7 @@ bd_bestslice(struct open_disk *od)
 	return (prefslice);
 }
 
+#ifdef LOADER_GPT_SUPPORT
 static int
 bd_open_gpt(struct open_disk *od, struct i386_devdesc *dev)
 {
@@ -1005,6 +1024,7 @@ bd_best_gptpart(struct open_disk *od)
     }
     return (prefpart);
 }
+#endif
 
 static int 
 bd_close(struct open_file *f)
@@ -1024,8 +1044,10 @@ bd_closedisk(struct open_disk *od)
     if (od->od_flags & BD_FLOPPY)
 	delay(3000000);
 #endif
+#ifdef LOADER_GPT_SUPPORT
     if (od->od_flags & BD_GPTOK)
 	free(od->od_partitions);
+#endif
     free(od);
 }
 

Modified: stable/6/sys/boot/i386/libi386/devicename.c
==============================================================================
--- stable/6/sys/boot/i386/libi386/devicename.c	Thu Mar 19 17:06:04 2009	(r190087)
+++ stable/6/sys/boot/i386/libi386/devicename.c	Thu Mar 19 17:14:00 2009	(r190088)
@@ -120,6 +120,7 @@ i386_parsedev(struct i386_devdesc **dev,
 		err = EUNIT;
 		goto fail;
 	    }
+#ifdef LOADER_GPT_SUPPORT
 	    if (*cp == 'p') {		/* got a GPT partition */
 		np = cp + 1;
 		slice = strtol(np, &cp, 10);
@@ -133,6 +134,7 @@ i386_parsedev(struct i386_devdesc **dev,
 		}
 		partition = 0xff;
 	    } else {
+#endif
 		if (*cp == 's') {		/* got a slice number */
 		    np = cp + 1;
 		    slice = strtol(np, &cp, 10);
@@ -149,7 +151,9 @@ i386_parsedev(struct i386_devdesc **dev,
 		    }
 		    cp++;
 		}
+#ifdef LOADER_GPT_SUPPORT
 	    }
+#endif
 	} else {
 		cp = np;
 	}
@@ -229,14 +233,18 @@ i386_fmtdev(void *vdev)
     case DEVT_DISK:
 	cp = buf;
 	cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_kind.biosdisk.unit);
+#ifdef LOADER_GPT_SUPPORT
 	if (dev->d_kind.biosdisk.partition == 0xff) {
 	    cp += sprintf(cp, "p%d", dev->d_kind.biosdisk.slice);
 	} else {
+#endif
 	    if (dev->d_kind.biosdisk.slice > 0)
 		cp += sprintf(cp, "s%d", dev->d_kind.biosdisk.slice);
 	    if (dev->d_kind.biosdisk.partition >= 0)
 		cp += sprintf(cp, "%c", dev->d_kind.biosdisk.partition + 'a');
+#ifdef LOADER_GPT_SUPPORT
 	}
+#endif
 	strcat(cp, ":");
 	break;
 

Modified: stable/6/sys/boot/i386/loader/Makefile
==============================================================================
--- stable/6/sys/boot/i386/loader/Makefile	Thu Mar 19 17:06:04 2009	(r190087)
+++ stable/6/sys/boot/i386/loader/Makefile	Thu Mar 19 17:14:00 2009	(r190088)
@@ -31,6 +31,9 @@ CFLAGS+=	-DLOADER_BZIP2_SUPPORT
 .if !defined(LOADER_NO_GZIP_SUPPORT)
 CFLAGS+=	-DLOADER_GZIP_SUPPORT
 .endif
+.if !defined(LOADER_NO_GPT_SUPPORT)
+CFLAGS+=	-DLOADER_GPT_SUPPORT
+.endif
 
 # Always add MI sources 
 .PATH:		${.CURDIR}/../../common

Modified: stable/6/sys/boot/i386/loader/main.c
==============================================================================
--- stable/6/sys/boot/i386/loader/main.c	Thu Mar 19 17:06:04 2009	(r190087)
+++ stable/6/sys/boot/i386/loader/main.c	Thu Mar 19 17:14:00 2009	(r190088)
@@ -96,7 +96,7 @@ main(void)
      */
     bios_getmem();
 
-#ifdef LOADER_BZIP2_SUPPORT
+#if defined(LOADER_BZIP2_SUPPORT) || defined(LOADER_GPT_SUPPORT)
     heap_top = PTOV(memtop_copyin);
     memtop_copyin -= 0x300000;
     heap_bottom = PTOV(memtop_copyin);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:16:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4CC6A106566B;
	Thu, 19 Mar 2009 17:16:34 +0000 (UTC)
	(envelope-from garga@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3B9668FC19;
	Thu, 19 Mar 2009 17:16:34 +0000 (UTC)
	(envelope-from garga@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JHGXtH070393;
	Thu, 19 Mar 2009 17:16:33 GMT (envelope-from garga@svn.freebsd.org)
Received: (from garga@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JHGXoY070392;
	Thu, 19 Mar 2009 17:16:33 GMT (envelope-from garga@svn.freebsd.org)
Message-Id: <200903191716.n2JHGXoY070392@svn.freebsd.org>
From: Renato Botelho 
Date: Thu, 19 Mar 2009 17:16:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190089 - head/sys/dev/usb
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:16:34 -0000

Author: garga (ports committer)
Date: Thu Mar 19 17:16:33 2009
New Revision: 190089
URL: http://svn.freebsd.org/changeset/base/190089

Log:
  - Add Sun Type 7 keyboard
  - Rename Type 6 entry (following NetBSD)
  - Add Sun Type 7 Keyboard USB Hub
  
  PR:		usb/132811
  Reviewed by:	thompsa
  Approved by:	thompsa

Modified:
  head/sys/dev/usb/usbdevs

Modified: head/sys/dev/usb/usbdevs
==============================================================================
--- head/sys/dev/usb/usbdevs	Thu Mar 19 17:14:00 2009	(r190088)
+++ head/sys/dev/usb/usbdevs	Thu Mar 19 17:16:33 2009	(r190089)
@@ -2310,9 +2310,11 @@ product SUNTAC AS64LX		0x000b	SUNTAC U-C
 product SUNTAC AS144L4		0x0011	SUNTAC U-Cable type A4
 
 /* Sun Microsystems products */
-product SUN KEYBOARD		0x0005	Type 6 USB keyboard
+product SUN KEYBOARD_TYPE_6	0x0005	Type 6 USB keyboard
+product SUN KEYBOARD_TYPE_7	0x00a2	Type 7 USB keyboard
 /* XXX The above is a North American PC style keyboard possibly */
 product SUN MOUSE		0x0100	Type 6 USB mouse
+product SUN KBD_HUB		0x100e	Kbd Hub
 
 /* Super Top products */
 product	SUPERTOP IDE		0x6600	USB-IDE

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:42:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BEEAE10656C0;
	Thu, 19 Mar 2009 17:42:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AB59B8FC20;
	Thu, 19 Mar 2009 17:42:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JHgBZX070887;
	Thu, 19 Mar 2009 17:42:11 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JHgBbe070885;
	Thu, 19 Mar 2009 17:42:11 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191742.n2JHgBbe070885@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 17:42:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190090 - in stable/7/sys: . amd64/acpica contrib/pf
	dev/ath/ath_hal dev/cxgb i386/acpica
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:42:12 -0000

Author: jhb
Date: Thu Mar 19 17:42:11 2009
New Revision: 190090
URL: http://svn.freebsd.org/changeset/base/190090

Log:
  MFC: Ignore I/O APICs with a starting IRQ > 255.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/amd64/acpica/madt.c
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/i386/acpica/madt.c

Modified: stable/7/sys/amd64/acpica/madt.c
==============================================================================
--- stable/7/sys/amd64/acpica/madt.c	Thu Mar 19 17:16:33 2009	(r190089)
+++ stable/7/sys/amd64/acpica/madt.c	Thu Mar 19 17:42:11 2009	(r190090)
@@ -483,6 +483,10 @@ madt_parse_apics(ACPI_SUBTABLE_HEADER *e
 			    apic->Id);
 		if (ioapics[apic->Id].io_apic != NULL)
 			panic("%s: Double APIC ID %u", __func__, apic->Id);
+		if (apic->GlobalIrqBase >= FIRST_MSI_INT) {
+			printf("MADT: Ignoring bogus I/O APIC ID %u", apic->Id);
+			break;
+		}
 		ioapics[apic->Id].io_apic = ioapic_create(apic->Address,
 		    apic->Id, apic->GlobalIrqBase);
 		ioapics[apic->Id].io_vector = apic->GlobalIrqBase;

Modified: stable/7/sys/i386/acpica/madt.c
==============================================================================
--- stable/7/sys/i386/acpica/madt.c	Thu Mar 19 17:16:33 2009	(r190089)
+++ stable/7/sys/i386/acpica/madt.c	Thu Mar 19 17:42:11 2009	(r190090)
@@ -482,6 +482,10 @@ madt_parse_apics(ACPI_SUBTABLE_HEADER *e
 			    apic->Id);
 		if (ioapics[apic->Id].io_apic != NULL)
 			panic("%s: Double APIC ID %u", __func__, apic->Id);
+		if (apic->GlobalIrqBase >= FIRST_MSI_INT) {
+			printf("MADT: Ignoring bogus I/O APIC ID %u", apic->Id);
+			break;
+		}
 		ioapics[apic->Id].io_apic = ioapic_create(apic->Address,
 		    apic->Id, apic->GlobalIrqBase);
 		ioapics[apic->Id].io_vector = apic->GlobalIrqBase;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 17:46:52 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 27C45106574B;
	Thu, 19 Mar 2009 17:46:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 14B2A8FC0C;
	Thu, 19 Mar 2009 17:46:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JHkpoU071019;
	Thu, 19 Mar 2009 17:46:51 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JHkpoM071018;
	Thu, 19 Mar 2009 17:46:51 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191746.n2JHkpoM071018@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 17:46:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190091 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb isa
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 17:46:53 -0000

Author: jhb
Date: Thu Mar 19 17:46:51 2009
New Revision: 190091
URL: http://svn.freebsd.org/changeset/base/190091

Log:
  MFC: Allow syscons to work on amd64 and i386 without any hints.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/isa/syscons_isa.c

Modified: stable/7/sys/isa/syscons_isa.c
==============================================================================
--- stable/7/sys/isa/syscons_isa.c	Thu Mar 19 17:42:11 2009	(r190090)
+++ stable/7/sys/isa/syscons_isa.c	Thu Mar 19 17:46:51 2009	(r190091)
@@ -103,7 +103,9 @@ scprobe(device_t dev)
 static int
 scattach(device_t dev)
 {
-	return sc_attach_unit(device_get_unit(dev), device_get_flags(dev));
+
+	return (sc_attach_unit(device_get_unit(dev), device_get_flags(dev) |
+	    SC_AUTODETECT_KBD));
 }
 
 static int
@@ -240,8 +242,10 @@ sc_get_cons_priority(int *unit, int *fla
 			*flags = f;
 		}
 	}
-	if (*unit < 0)
-		return CN_DEAD;
+	if (*unit < 0) {
+		*unit = 0;
+		*flags = 0;
+	}
 #if 0
 	return ((*flags & SC_KERNEL_CONSOLE) ? CN_INTERNAL : CN_NORMAL);
 #endif

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 18:04:37 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 756D5106564A;
	Thu, 19 Mar 2009 18:04:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 627108FC16;
	Thu, 19 Mar 2009 18:04:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JI4bQI071403;
	Thu, 19 Mar 2009 18:04:37 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JI4bZ4071402;
	Thu, 19 Mar 2009 18:04:37 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191804.n2JI4bZ4071402@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 18:04:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190092 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 18:04:38 -0000

Author: jhb
Date: Thu Mar 19 18:04:37 2009
New Revision: 190092
URL: http://svn.freebsd.org/changeset/base/190092

Log:
  MFC: Honor the prefetchable flag in memory BARs.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/pci/pci.c

Modified: stable/7/sys/dev/pci/pci.c
==============================================================================
--- stable/7/sys/dev/pci/pci.c	Thu Mar 19 17:46:51 2009	(r190091)
+++ stable/7/sys/dev/pci/pci.c	Thu Mar 19 18:04:37 2009	(r190092)
@@ -2295,9 +2295,11 @@ pci_add_map(device_t pcib, device_t bus,
 	testval = PCIB_READ_CONFIG(pcib, b, s, f, reg, 4);
 	PCIB_WRITE_CONFIG(pcib, b, s, f, reg, map, 4);
 
-	if (PCI_BAR_MEM(map))
+	if (PCI_BAR_MEM(map)) {
 		type = SYS_RES_MEMORY;
-	else
+		if (map & PCIM_BAR_MEM_PREFETCH)
+			prefetch = 1;
+	} else
 		type = SYS_RES_IOPORT;
 	ln2size = pci_mapsize(testval);
 	ln2range = pci_maprange(testval);
@@ -3444,6 +3446,8 @@ pci_alloc_map(device_t dev, device_t chi
 	count = 1UL << mapsize;
 	if (RF_ALIGNMENT(flags) < mapsize)
 		flags = (flags & ~RF_ALIGNMENT_MASK) | RF_ALIGNMENT_LOG2(mapsize);
+	if (PCI_BAR_MEM(testval) && (testval & PCIM_BAR_MEM_PREFETCH))
+		flags |= RF_PREFETCHABLE;
 
 	/*
 	 * Allocate enough resource, and then write back the

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 18:34:58 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DFBDA106566C;
	Thu, 19 Mar 2009 18:34:58 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CD9788FC17;
	Thu, 19 Mar 2009 18:34:58 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JIYw43072120;
	Thu, 19 Mar 2009 18:34:58 GMT (envelope-from rpaulo@svn.freebsd.org)
Received: (from rpaulo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JIYw7M072119;
	Thu, 19 Mar 2009 18:34:58 GMT (envelope-from rpaulo@svn.freebsd.org)
Message-Id: <200903191834.n2JIYw7M072119@svn.freebsd.org>
From: Rui Paulo 
Date: Thu, 19 Mar 2009 18:34:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190093 - head/sys/net80211
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 18:34:59 -0000

Author: rpaulo
Date: Thu Mar 19 18:34:58 2009
New Revision: 190093
URL: http://svn.freebsd.org/changeset/base/190093

Log:
  Fix typo in comment.

Modified:
  head/sys/net80211/ieee80211_node.h

Modified: head/sys/net80211/ieee80211_node.h
==============================================================================
--- head/sys/net80211/ieee80211_node.h	Thu Mar 19 18:04:37 2009	(r190092)
+++ head/sys/net80211/ieee80211_node.h	Thu Mar 19 18:34:58 2009	(r190093)
@@ -69,7 +69,7 @@ struct ieee80211vap;
 /*
  * Information element ``blob''.  We use this structure
  * to capture management frame payloads that need to be
- * retained.  Information elemnts within the payload that
+ * retained.  Information elements within the payload that
  * we need to consult have references recorded.
  */
 struct ieee80211_ies {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 18:45:38 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1A403106566B;
	Thu, 19 Mar 2009 18:45:38 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 084898FC19;
	Thu, 19 Mar 2009 18:45:38 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JIjbjX072364;
	Thu, 19 Mar 2009 18:45:37 GMT (envelope-from rpaulo@svn.freebsd.org)
Received: (from rpaulo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JIjbDl072363;
	Thu, 19 Mar 2009 18:45:37 GMT (envelope-from rpaulo@svn.freebsd.org)
Message-Id: <200903191845.n2JIjbDl072363@svn.freebsd.org>
From: Rui Paulo 
Date: Thu, 19 Mar 2009 18:45:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190094 - head/sys/net80211
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 18:45:38 -0000

Author: rpaulo
Date: Thu Mar 19 18:45:37 2009
New Revision: 190094
URL: http://svn.freebsd.org/changeset/base/190094

Log:
  Remove leftover comment because we now use a flag to check for associd.
  
  Discussed with:	sam

Modified:
  head/sys/net80211/ieee80211_output.c

Modified: head/sys/net80211/ieee80211_output.c
==============================================================================
--- head/sys/net80211/ieee80211_output.c	Thu Mar 19 18:34:58 2009	(r190093)
+++ head/sys/net80211/ieee80211_output.c	Thu Mar 19 18:45:37 2009	(r190094)
@@ -205,7 +205,6 @@ ieee80211_start(struct ifnet *ifp)
 			m_freem(m);
 			continue;
 		}
-		/* XXX AUTH'd */
 		if (ni->ni_associd == 0 &&
 		    (ni->ni_flags & IEEE80211_NODE_ASSOCID)) {
 			IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_OUTPUT,

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 19:22:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 54E1E106566B;
	Thu, 19 Mar 2009 19:22:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 421FA8FC13;
	Thu, 19 Mar 2009 19:22:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JJMClH073185;
	Thu, 19 Mar 2009 19:22:12 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JJMCF5073184;
	Thu, 19 Mar 2009 19:22:12 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903191922.n2JJMCF5073184@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 19:22:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org
X-SVN-Group: stable-6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190095 - in stable/6/sys: . contrib/pf dev/cxgb dev/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 19:22:13 -0000

Author: jhb
Date: Thu Mar 19 19:22:11 2009
New Revision: 190095
URL: http://svn.freebsd.org/changeset/base/190095

Log:
  MFC: Honor the prefetchable flag in memory BARs.

Modified:
  stable/6/sys/   (props changed)
  stable/6/sys/contrib/pf/   (props changed)
  stable/6/sys/dev/cxgb/   (props changed)
  stable/6/sys/dev/pci/pci.c

Modified: stable/6/sys/dev/pci/pci.c
==============================================================================
--- stable/6/sys/dev/pci/pci.c	Thu Mar 19 18:45:37 2009	(r190094)
+++ stable/6/sys/dev/pci/pci.c	Thu Mar 19 19:22:11 2009	(r190095)
@@ -1706,9 +1706,11 @@ pci_add_map(device_t pcib, device_t bus,
 	testval = PCIB_READ_CONFIG(pcib, b, s, f, reg, 4);
 	PCIB_WRITE_CONFIG(pcib, b, s, f, reg, map, 4);
 
-	if (pci_maptype(map) & PCI_MAPMEM)
+	if (pci_maptype(map) & PCI_MAPMEM) {
 		type = SYS_RES_MEMORY;
-	else
+		if (pci_maptype(map) & PCI_MAPMEMP)
+			prefetch = 1;
+	} else
 		type = SYS_RES_IOPORT;
 	ln2size = pci_mapsize(testval);
 	ln2range = pci_maprange(testval);
@@ -2811,7 +2813,9 @@ pci_alloc_map(device_t dev, device_t chi
 	count = 1 << mapsize;
 	if (RF_ALIGNMENT(flags) < mapsize)
 		flags = (flags & ~RF_ALIGNMENT_MASK) | RF_ALIGNMENT_LOG2(mapsize);
-	
+	if (pci_maptype(testval) & PCI_MAPMEMP)
+		flags |= RF_PREFETCHABLE;
+
 	/*
 	 * Allocate enough resource, and then write back the
 	 * appropriate bar for that resource.

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 19:29:11 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9E13A1065673;
	Thu, 19 Mar 2009 19:29:11 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8A6918FC12;
	Thu, 19 Mar 2009 19:29:11 +0000 (UTC) (envelope-from sam@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JJTBxk073351;
	Thu, 19 Mar 2009 19:29:11 GMT (envelope-from sam@svn.freebsd.org)
Received: (from sam@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JJTAJp073345;
	Thu, 19 Mar 2009 19:29:10 GMT (envelope-from sam@svn.freebsd.org)
Message-Id: <200903191929.n2JJTAJp073345@svn.freebsd.org>
From: Sam Leffler 
Date: Thu, 19 Mar 2009 19:29:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190096 - in head/sys/dev/ath: . ath_hal ath_hal/ar5210
	ath_hal/ar5211 ath_hal/ar5212
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 19:29:12 -0000

Author: sam
Date: Thu Mar 19 19:29:10 2009
New Revision: 190096
URL: http://svn.freebsd.org/changeset/base/190096

Log:
  purge hal abi support; now that the hal is merged w/ the driver
  we cannot be out of sync
  
  MFC after:	1 week

Modified:
  head/sys/dev/ath/ath_hal/ah.h
  head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
  head/sys/dev/ath/if_ath.c
  head/sys/dev/ath/if_athvar.h

Modified: head/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.h	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/ath_hal/ah.h	Thu Mar 19 19:29:10 2009	(r190096)
@@ -598,8 +598,6 @@ struct ieee80211_channel;
  */
 struct ath_hal {
 	uint32_t	ah_magic;	/* consistency check magic number */
-	uint32_t	ah_abi;		/* HAL ABI version */
-#define	HAL_ABI_VERSION	0x08112800	/* YYMMDDnn */
 	uint16_t	ah_devid;	/* PCI device ID */
 	uint16_t	ah_subvendorid;	/* PCI subvendor ID */
 	HAL_SOFTC	ah_sc;		/* back pointer to driver/os state */

Modified: head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c	Thu Mar 19 19:29:10 2009	(r190096)
@@ -38,7 +38,6 @@ static void ar5210DisablePCIE(struct ath
 
 static const struct ath_hal_private ar5210hal = {{
 	.ah_magic			= AR5210_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5210GetRateTable,
 	.ah_detach			= ar5210Detach,

Modified: head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c	Thu Mar 19 19:29:10 2009	(r190096)
@@ -38,7 +38,6 @@ static void ar5211DisablePCIE(struct ath
 
 static const struct ath_hal_private ar5211hal = {{
 	.ah_magic			= AR5211_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5211GetRateTable,
 	.ah_detach			= ar5211Detach,

Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c	Thu Mar 19 19:29:10 2009	(r190096)
@@ -34,7 +34,6 @@ static void ar5212DisablePCIE(struct ath
 
 static const struct ath_hal_private ar5212hal = {{
 	.ah_magic			= AR5212_MAGIC,
-	.ah_abi				= HAL_ABI_VERSION,
 
 	.ah_getRateTable		= ar5212GetRateTable,
 	.ah_detach			= ar5212Detach,

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/if_ath.c	Thu Mar 19 19:29:10 2009	(r190096)
@@ -89,11 +89,6 @@ __FBSDID("$FreeBSD$");
 #endif
 
 /*
- * We require a HAL w/ the changes for split tx/rx MIC.
- */
-CTASSERT(HAL_ABI_VERSION > 0x06052200);
-
-/*
  * ATH_BCBUF determines the number of vap's that can transmit
  * beacons and also (currently) the number of vap's that can
  * have unique mac addresses/bssid.  When staggering beacons
@@ -380,13 +375,6 @@ ath_attach(u_int16_t devid, struct ath_s
 		error = ENXIO;
 		goto bad;
 	}
-	if (ah->ah_abi != HAL_ABI_VERSION) {
-		if_printf(ifp, "HAL ABI mismatch detected "
-			"(HAL:0x%x != driver:0x%x)\n",
-			ah->ah_abi, HAL_ABI_VERSION);
-		error = ENXIO;
-		goto bad;
-	}
 	sc->sc_ah = ah;
 	sc->sc_invalid = 0;	/* ready to go, enable interrupt handling */
 #ifdef	ATH_DEBUG
@@ -2689,17 +2677,8 @@ ath_calcrxfilter(struct ath_softc *sc)
 	u_int32_t rfilt;
 
 	rfilt = HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST;
-#if HAL_ABI_VERSION < 0x08011600
-	rfilt |= (ath_hal_getrxfilter(sc->sc_ah) &
-		(HAL_RX_FILTER_PHYRADAR | HAL_RX_FILTER_PHYERR));
-#elif HAL_ABI_VERSION < 0x08060100
-	if (ic->ic_opmode == IEEE80211_M_STA &&
-	    !sc->sc_needmib && !sc->sc_scanning)
-		rfilt |= HAL_RX_FILTER_PHYERR;
-#else
 	if (!sc->sc_needmib && !sc->sc_scanning)
 		rfilt |= HAL_RX_FILTER_PHYERR;
-#endif
 	if (ic->ic_opmode != IEEE80211_M_STA)
 		rfilt |= HAL_RX_FILTER_PROBEREQ;
 	if (ic->ic_opmode == IEEE80211_M_MONITOR || (ifp->if_flags & IFF_PROMISC))
@@ -6273,10 +6252,6 @@ ath_rate_setup(struct ath_softc *sc, u_i
 		break;
 	case IEEE80211_MODE_TURBO_A:
 		rt = ath_hal_getratetable(ah, HAL_MODE_108A);
-#if HAL_ABI_VERSION < 0x07013100
-		if (rt == NULL)		/* XXX bandaid for old hal's */
-			rt = ath_hal_getratetable(ah, HAL_MODE_TURBO);
-#endif
 		break;
 	case IEEE80211_MODE_TURBO_G:
 		rt = ath_hal_getratetable(ah, HAL_MODE_108G);

Modified: head/sys/dev/ath/if_athvar.h
==============================================================================
--- head/sys/dev/ath/if_athvar.h	Thu Mar 19 19:22:11 2009	(r190095)
+++ head/sys/dev/ath/if_athvar.h	Thu Mar 19 19:29:10 2009	(r190096)
@@ -462,16 +462,10 @@ void	ath_intr(void *);
 	((*(_ah)->ah_setChannel)((_ah), (_chan)))
 #define	ath_hal_calibrate(_ah, _chan, _iqcal) \
 	((*(_ah)->ah_perCalibration)((_ah), (_chan), (_iqcal)))
-#if HAL_ABI_VERSION >= 0x08111000
 #define	ath_hal_calibrateN(_ah, _chan, _lcal, _isdone) \
 	((*(_ah)->ah_perCalibrationN)((_ah), (_chan), 0x1, (_lcal), (_isdone)))
 #define	ath_hal_calreset(_ah, _chan) \
 	((*(_ah)->ah_resetCalValid)((_ah), (_chan)))
-#else
-#define	ath_hal_calibrateN(_ah, _chan, _lcal, _isdone) \
-	ath_hal_calibrate(_ah, _chan, _isdone)
-#define	ath_hal_calreset(_ah, _chan)	(0)
-#endif
 #define	ath_hal_setledstate(_ah, _state) \
 	((*(_ah)->ah_setLedState)((_ah), (_state)))
 #define	ath_hal_beaconinit(_ah, _nextb, _bperiod) \
@@ -545,19 +539,8 @@ void	ath_intr(void *);
 	(ath_hal_getcapability(_ah, HAL_CAP_CIPHER, _cipher, NULL) == HAL_OK)
 #define	ath_hal_getregdomain(_ah, _prd) \
 	(ath_hal_getcapability(_ah, HAL_CAP_REG_DMN, 0, (_prd)) == HAL_OK)
-#if HAL_ABI_VERSION < 0x08090100
-/* XXX wrong for anything but amd64 and i386 */
-#if defined(__LP64__)
-#define	ath_hal_setregdomain(_ah, _rd) \
-	(*(uint16_t *)(((uint8_t *)&(_ah)[1]) + 176) = (_rd))
-#else
-#define	ath_hal_setregdomain(_ah, _rd) \
-	(*(uint16_t *)(((uint8_t *)&(_ah)[1]) + 128) = (_rd))
-#endif
-#else
 #define	ath_hal_setregdomain(_ah, _rd) \
 	ath_hal_setcapability(_ah, HAL_CAP_REG_DMN, 0, _rd, NULL)
-#endif
 #define	ath_hal_getcountrycode(_ah, _pcc) \
 	(*(_pcc) = (_ah)->ah_countryCode)
 #define	ath_hal_gettkipmic(_ah) \
@@ -656,31 +639,6 @@ void	ath_intr(void *);
 	ath_hal_setcapability(_ah, HAL_CAP_INTMIT, 1, _v, NULL)
 #define	ath_hal_getchannoise(_ah, _c) \
 	((*(_ah)->ah_getChanNoise)((_ah), (_c)))
-#if HAL_ABI_VERSION < 0x05122200
-#define	HAL_TXQ_TXOKINT_ENABLE	TXQ_FLAG_TXOKINT_ENABLE
-#define	HAL_TXQ_TXERRINT_ENABLE	TXQ_FLAG_TXERRINT_ENABLE
-#define	HAL_TXQ_TXDESCINT_ENABLE TXQ_FLAG_TXDESCINT_ENABLE
-#define	HAL_TXQ_TXEOLINT_ENABLE	TXQ_FLAG_TXEOLINT_ENABLE
-#define	HAL_TXQ_TXURNINT_ENABLE	TXQ_FLAG_TXURNINT_ENABLE
-#endif
-#if HAL_ABI_VERSION < 0x06102501
-#define	ath_hal_ispublicsafetysku(ah) \
-	(((ah)->ah_regdomain == 0 && (ah)->ah_countryCode == 842) || \
-	 (ah)->ah_regdomain == 0x12)
-#endif
-#if HAL_ABI_VERSION < 0x06122400
-/* XXX yech, can't get to regdomain so just hack a compat shim */
-#define	ath_hal_isgsmsku(ah) \
-	((ah)->ah_countryCode == 843)
-#endif
-#if HAL_ABI_VERSION < 0x07050400
-/* compat shims so code compilers--it won't work though */
-#define	CHANNEL_HT20		0x10000
-#define	CHANNEL_HT40PLUS 	0x20000
-#define	CHANNEL_HT40MINUS 	0x40000
-#define	HAL_MODE_11NG_HT20	0x008000
-#define HAL_MODE_11NA_HT20  	0x010000
-#endif
 
 #define	ath_hal_setuprxdesc(_ah, _ds, _size, _intreq) \
 	((*(_ah)->ah_setupRxDesc)((_ah), (_ds), (_size), (_intreq)))

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:24:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5981E1065670;
	Thu, 19 Mar 2009 20:24:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 45E318FC19;
	Thu, 19 Mar 2009 20:24:31 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKOVuW074484;
	Thu, 19 Mar 2009 20:24:31 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKOVNd074483;
	Thu, 19 Mar 2009 20:24:31 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192024.n2JKOVNd074483@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:24:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190097 - head/usr.sbin/eeprom
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:24:32 -0000

Author: marius
Date: Thu Mar 19 20:24:30 2009
New Revision: 190097
URL: http://svn.freebsd.org/changeset/base/190097

Log:
  - Sprinkle const.
  - Remove incorrect __unused.

Modified:
  head/usr.sbin/eeprom/ofw_options.c

Modified: head/usr.sbin/eeprom/ofw_options.c
==============================================================================
--- head/usr.sbin/eeprom/ofw_options.c	Thu Mar 19 19:29:10 2009	(r190096)
+++ head/usr.sbin/eeprom/ofw_options.c	Thu Mar 19 20:24:30 2009	(r190097)
@@ -52,18 +52,18 @@ __FBSDID("$FreeBSD$");
 
 struct ofwo_extabent {
 	const char	*ex_prop;
-	int		(*ex_handler)(struct ofwo_extabent *, int, const void *,
-			    int, const char *);
+	int		(*ex_handler)(const struct ofwo_extabent *, int,
+			    const void *, int, const char *);
 };
 
-static int	ofwo_oemlogo(struct ofwo_extabent *, int, const void *, int,
-		    const char *);
-static int	ofwo_secmode(struct ofwo_extabent *, int, const void *, int,
-		    const char *);
-static int	ofwo_secpwd(struct ofwo_extabent *, int, const void *, int,
-		    const char *);
+static int	ofwo_oemlogo(const struct ofwo_extabent *, int, const void *,
+		    int, const char *);
+static int	ofwo_secmode(const struct ofwo_extabent *, int, const void *,
+		    int, const char *);
+static int	ofwo_secpwd(const struct ofwo_extabent *, int, const void *,
+		    int, const char *);
 
-static struct ofwo_extabent ofwo_extab[] = {
+static const struct ofwo_extabent const ofwo_extab[] = {
 	{ "oem-logo",			ofwo_oemlogo },
 	{ "security-mode",		ofwo_secmode },
 	{ "security-password",		ofwo_secpwd },
@@ -81,8 +81,8 @@ ofwo_printprop(const char *prop, const c
 }
 
 static int
-ofwo_oemlogo(struct ofwo_extabent *exent, int fd, const void *buf, int buflen,
-    const char *val)
+ofwo_oemlogo(const struct ofwo_extabent *exent, int fd, const void *buf,
+    int buflen, const char *val)
 {
 	int lfd;
 	char logo[OFWO_LOGO + 1];
@@ -117,8 +117,8 @@ ofwo_oemlogo(struct ofwo_extabent *exent
 }
 
 static int
-ofwo_secmode(struct ofwo_extabent *exent, int fd, const void *buf, int buflen,
-    const char *val)
+ofwo_secmode(const struct ofwo_extabent *exent, int fd, const void *buf,
+    int buflen, const char *val)
 {
 	int res;
 
@@ -145,8 +145,8 @@ ofwo_secmode(struct ofwo_extabent *exent
 }
 
 static int
-ofwo_secpwd(struct ofwo_extabent *exent, int fd __unused,
-    const void *buf __unused, __unused int buflen, const char *val)
+ofwo_secpwd(const struct ofwo_extabent *exent, int fd, const void *buf,
+    int buflen, const char *val)
 {
 	void *pbuf;
 	int len, pblen, rv;
@@ -246,14 +246,14 @@ ofwo_dump(void)
 	int fd, len, nlen, pblen;
 	phandle_t optnode;
 	char prop[OFWO_MAXPROP + 1];
-	struct ofwo_extabent *ex;
+	const struct ofwo_extabent *ex;
 
 	pblen = 0;
 	pbuf = NULL;
 	fd = ofw_open(O_RDONLY);
 	optnode = ofw_optnode(fd);
 	for (nlen = ofw_firstprop(fd, optnode, prop, sizeof(prop)); nlen != 0;
-	     nlen = ofw_nextprop(fd, optnode, prop, prop, sizeof(prop))) {
+	    nlen = ofw_nextprop(fd, optnode, prop, prop, sizeof(prop))) {
 		len = ofw_getprop_alloc(fd, optnode, prop, &pbuf, &pblen, 1);
 		if (len < 0)
 			continue;
@@ -277,7 +277,7 @@ ofwo_action(const char *prop, const char
 {
 	void *pbuf;
 	int fd, len, pblen, rv;
-	struct ofwo_extabent *ex;
+	const struct ofwo_extabent *ex;
 
 	pblen = 0;
 	rv = EX_OK;
@@ -300,7 +300,7 @@ ofwo_action(const char *prop, const char
 		rv = (*ex->ex_handler)(ex, fd, pbuf, len, val);
 	else if (val)
 		rv = ofwo_setstr(fd, pbuf, len, prop, val);
-	else 
+	else
 		ofwo_printprop(prop, (char *)pbuf, len);
 out:
 	if (pbuf != NULL)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:29:23 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8E025106566B;
	Thu, 19 Mar 2009 20:29:23 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 79F188FC25;
	Thu, 19 Mar 2009 20:29:23 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKTNRO074601;
	Thu, 19 Mar 2009 20:29:23 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKTN54074599;
	Thu, 19 Mar 2009 20:29:23 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192029.n2JKTN54074599@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:29:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190098 - in head/sys/sparc64: fhc sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:29:24 -0000

Author: marius
Date: Thu Mar 19 20:29:23 2009
New Revision: 190098
URL: http://svn.freebsd.org/changeset/base/190098

Log:
  - Failing to register as interrupt controller during attach shouldn't
    be fatal so just inform about this instead of panicing.
  - Sort device methods.
  - Take advantage of KOBJMETHOD_END.
  - Remove some redundant variables.

Modified:
  head/sys/sparc64/fhc/fhc.c
  head/sys/sparc64/sparc64/upa.c

Modified: head/sys/sparc64/fhc/fhc.c
==============================================================================
--- head/sys/sparc64/fhc/fhc.c	Thu Mar 19 20:24:30 2009	(r190097)
+++ head/sys/sparc64/fhc/fhc.c	Thu Mar 19 20:29:23 2009	(r190098)
@@ -90,14 +90,14 @@ static device_method_t fhc_methods[] = {
 	/* Bus interface */
 	DEVMETHOD(bus_print_child,	fhc_print_child),
 	DEVMETHOD(bus_probe_nomatch,	fhc_probe_nomatch),
-	DEVMETHOD(bus_setup_intr,	fhc_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_alloc_resource,	fhc_alloc_resource),
-	DEVMETHOD(bus_release_resource,	bus_generic_rl_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
-	DEVMETHOD(bus_get_resource_list, fhc_get_resource_list),
+	DEVMETHOD(bus_release_resource,	bus_generic_rl_release_resource),
+	DEVMETHOD(bus_setup_intr,	fhc_setup_intr),
+	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
+	DEVMETHOD(bus_get_resource_list, fhc_get_resource_list),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	fhc_get_devinfo),
@@ -107,7 +107,7 @@ static device_method_t fhc_methods[] = {
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ NULL, NULL }
+	KOBJMETHOD_END
 };
 
 static driver_t fhc_driver = {
@@ -165,9 +165,7 @@ fhc_attach(device_t dev)
 	int central;
 	int error;
 	int i;
-	int nintr;
-	int nreg;
-	int rid;
+	int j;
 
 	sc = device_get_softc(dev);
 	node = ofw_bus_get_node(dev);
@@ -177,9 +175,9 @@ fhc_attach(device_t dev)
 		central = 1;
 
 	for (i = 0; i < FHC_NREG; i++) {
-		rid = i;
+		j = i;
 		sc->sc_memres[i] = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
-		    &rid, RF_ACTIVE);
+		    &j, RF_ACTIVE);
 		if (sc->sc_memres[i] == NULL) {
 			device_printf(dev, "cannot allocate resource %d\n", i);
 			error = ENXIO;
@@ -239,7 +237,8 @@ fhc_attach(device_t dev)
 		/*
 		 * Hunt through all the interrupt mapping regs and register
 		 * our interrupt controller for the corresponding interrupt
-		 * vectors.
+		 * vectors.  We do this early in order to be able to catch
+		 * stray interrupts.
 		 */
 		for (i = FHC_FANFAIL; i <= FHC_TOD; i++) {
 			fica = malloc(sizeof(*fica), M_DEVBUF, M_NOWAIT);
@@ -259,11 +258,13 @@ fhc_attach(device_t dev)
 			 * the IGN and the IGN is constant for all devices
 			 * on that FireHose controller.
 			 */
-			if (intr_controller_register(INTMAP_VEC(sc->sc_ign,
+			j = intr_controller_register(INTMAP_VEC(sc->sc_ign,
 			    INTINO(bus_read_4(fica->fica_memres, FHC_IMAP))),
-			    &fhc_ic, fica) != 0)
-				panic("%s: could not register interrupt "
-				    "controller for map %d", __func__, i);
+			    &fhc_ic, fica);
+			if (j != 0)
+				device_printf(dev, "could not register "
+				    "interrupt controller for map %d (%d)\n",
+				    i, j);
 		}
 	} else {
 		snprintf(ledname, sizeof(ledname), "board%d", board);
@@ -276,9 +277,9 @@ fhc_attach(device_t dev)
 			free(fdi, M_DEVBUF);
 			continue;
 		}
-		nreg = OF_getprop_alloc(child, "reg", sizeof(*reg),
+		i = OF_getprop_alloc(child, "reg", sizeof(*reg),
 		    (void **)®);
-		if (nreg == -1) {
+		if (i == -1) {
 			device_printf(dev, "<%s>: incomplete\n",
 			    fdi->fdi_obdinfo.obd_name);
 			ofw_bus_gen_destroy_devinfo(&fdi->fdi_obdinfo);
@@ -286,19 +287,19 @@ fhc_attach(device_t dev)
 			continue;
 		}
 		resource_list_init(&fdi->fdi_rl);
-		for (i = 0; i < nreg; i++)
-			resource_list_add(&fdi->fdi_rl, SYS_RES_MEMORY, i,
-			    reg[i].sbr_offset, reg[i].sbr_offset +
-			    reg[i].sbr_size, reg[i].sbr_size);
+		for (j = 0; j < i; j++)
+			resource_list_add(&fdi->fdi_rl, SYS_RES_MEMORY, j,
+			    reg[j].sbr_offset, reg[j].sbr_offset +
+			    reg[j].sbr_size, reg[j].sbr_size);
 		free(reg, M_OFWPROP);
 		if (central == 1) {
-			nintr = OF_getprop_alloc(child, "interrupts",
+			i = OF_getprop_alloc(child, "interrupts",
 			    sizeof(*intr), (void **)&intr);
-			if (nintr != -1) {
-				for (i = 0; i < nintr; i++) {
-					iv = INTMAP_VEC(sc->sc_ign, intr[i]);
+			if (i != -1) {
+				for (j = 0; j < i; j++) {
+					iv = INTMAP_VEC(sc->sc_ign, intr[j]);
 					resource_list_add(&fdi->fdi_rl,
-					    SYS_RES_IRQ, i, iv, iv, 1);
+					    SYS_RES_IRQ, j, iv, iv, 1);
 				}
 				free(intr, M_OFWPROP);
 			}

Modified: head/sys/sparc64/sparc64/upa.c
==============================================================================
--- head/sys/sparc64/sparc64/upa.c	Thu Mar 19 20:24:30 2009	(r190097)
+++ head/sys/sparc64/sparc64/upa.c	Thu Mar 19 20:29:23 2009	(r190098)
@@ -144,7 +144,7 @@ static device_method_t upa_methods[] = {
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ NULL, NULL }
+	KOBJMETHOD_END
 };
 
 static devclass_t upa_devclass;
@@ -241,7 +241,7 @@ upa_attach(device_t dev)
 				    "pci108e,8001") == 0 &&
 				    ((bus_get_resource_start(children[j],
 				    SYS_RES_MEMORY, 0) >> 20) & 1) == 1) {
-				    	schizo = children[j];
+					schizo = children[j];
 					break;
 				}
 			}
@@ -287,9 +287,10 @@ upa_attach(device_t dev)
 		goto fail;
 	}
 
- 	/*
+	/*
 	 * Hunt through all the interrupt mapping regs and register our
 	 * interrupt controller for the corresponding interrupt vectors.
+	 * We do this early in order to be able to catch stray interrupts.
 	 */
 	for (i = UPA_INO_BASE; i <= UPA_INO_MAX; i++) {
 		imr = 0;
@@ -312,10 +313,11 @@ upa_attach(device_t dev)
 		device_printf(dev, "intr map (INO %d) IMR%d: %#lx\n",
 		    i, imr, (u_long)UPA_READ(sc, imr, 0x0));
 #endif
-		if (intr_controller_register(INTMAP_VEC(sc->sc_ign, i),
-		    &upa_ic, uica) != 0)
-			panic("%s: could not register interrupt controller "
-			    "for INO %d", __func__, i);
+		j = intr_controller_register(INTMAP_VEC(sc->sc_ign, i),
+		    &upa_ic, uica);
+		if (j != 0)
+			device_printf(dev, "could not register interrupt "
+			    "controller for INO %d (%d)\n", i, j);
 	}
 
 	/* Make sure the power level is appropriate for normal operation. */
@@ -345,13 +347,13 @@ upa_attach(device_t dev)
 			device_printf(dev,
 			    "could not determine upa-portid of child 0x%lx\n",
 			    (unsigned long)child);
-		    	continue;
+			continue;
 		}
 		if (portid > 1) {
 			device_printf(dev,
 			    "upa-portid %d of child 0x%lx invalid\n", portid,
 			    (unsigned long)child);
-		    	continue;
+			continue;
 		}
 		if ((udi = upa_setup_dinfo(dev, sc, child, portid)) == NULL)
 			continue;
@@ -493,12 +495,12 @@ upa_setup_intr(device_t dev, device_t ch
 	/*
 	 * Make sure the vector is fully specified and we registered
 	 * our interrupt controller for it.
- 	 */
+	 */
 	vec = rman_get_start(ires);
 	if (INTIGN(vec) != sc->sc_ign || intr_vectors[vec].iv_ic != &upa_ic) {
 		device_printf(dev, "invalid interrupt vector 0x%lx\n", vec);
- 		return (EINVAL);
- 	}
+		return (EINVAL);
+	}
 	return (bus_generic_setup_intr(dev, child, ires, flags, filt, func,
 	    arg, cookiep));
 }

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:31:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C491F1065673;
	Thu, 19 Mar 2009 20:31:55 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AEE6D8FC16;
	Thu, 19 Mar 2009 20:31:55 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKVthp074703;
	Thu, 19 Mar 2009 20:31:55 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKVttd074697;
	Thu, 19 Mar 2009 20:31:55 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192031.n2JKVttd074697@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:31:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190099 - in head/sys/sparc64: central ebus pci sbus
	sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:31:57 -0000

Author: marius
Date: Thu Mar 19 20:31:55 2009
New Revision: 190099
URL: http://svn.freebsd.org/changeset/base/190099

Log:
  - Sort device methods.
  - Take advantage of KOBJMETHOD_END.

Modified:
  head/sys/sparc64/central/central.c
  head/sys/sparc64/ebus/ebus.c
  head/sys/sparc64/pci/apb.c
  head/sys/sparc64/pci/ofw_pcib.c
  head/sys/sparc64/sbus/dma_sbus.c
  head/sys/sparc64/sparc64/nexus.c

Modified: head/sys/sparc64/central/central.c
==============================================================================
--- head/sys/sparc64/central/central.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/central/central.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -76,14 +76,14 @@ static device_method_t central_methods[]
 	/* Bus interface */
 	DEVMETHOD(bus_print_child,	central_print_child),
 	DEVMETHOD(bus_probe_nomatch,	central_probe_nomatch),
-	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_alloc_resource,	central_alloc_resource),
-	DEVMETHOD(bus_release_resource,	bus_generic_rl_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
-	DEVMETHOD(bus_get_resource_list, central_get_resource_list),
+	DEVMETHOD(bus_release_resource,	bus_generic_rl_release_resource),
+	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
+	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
+	DEVMETHOD(bus_get_resource_list, central_get_resource_list),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	central_get_devinfo),
@@ -93,7 +93,7 @@ static device_method_t central_methods[]
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ NULL, NULL }
+	KOBJMETHOD_END
 };
 
 static driver_t central_driver = {

Modified: head/sys/sparc64/ebus/ebus.c
==============================================================================
--- head/sys/sparc64/ebus/ebus.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/ebus/ebus.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -109,14 +109,14 @@ static device_method_t ebus_methods[] = 
 	/* Bus interface */
 	DEVMETHOD(bus_print_child,	ebus_print_child),
 	DEVMETHOD(bus_probe_nomatch,	ebus_probe_nomatch),
-	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_alloc_resource,	ebus_alloc_resource),
-	DEVMETHOD(bus_get_resource_list, ebus_get_resource_list),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
 	DEVMETHOD(bus_release_resource,	ebus_release_resource),
+	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
+	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
+	DEVMETHOD(bus_get_resource_list, ebus_get_resource_list),
 	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
@@ -127,7 +127,7 @@ static device_method_t ebus_methods[] = 
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t ebus_driver = {

Modified: head/sys/sparc64/pci/apb.c
==============================================================================
--- head/sys/sparc64/pci/apb.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/pci/apb.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -90,9 +90,9 @@ static device_method_t apb_methods[] = {
 	DEVMETHOD(bus_read_ivar,	pcib_read_ivar),
 	DEVMETHOD(bus_write_ivar,	pcib_write_ivar),
 	DEVMETHOD(bus_alloc_resource,	apb_alloc_resource),
-	DEVMETHOD(bus_release_resource,	bus_generic_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
+	DEVMETHOD(bus_release_resource,	bus_generic_release_resource),
 	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 
@@ -105,7 +105,7 @@ static device_method_t apb_methods[] = {
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_node,	ofw_pcib_gen_get_node),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static devclass_t pcib_devclass;

Modified: head/sys/sparc64/pci/ofw_pcib.c
==============================================================================
--- head/sys/sparc64/pci/ofw_pcib.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/pci/ofw_pcib.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -71,9 +71,9 @@ static device_method_t ofw_pcib_methods[
 	DEVMETHOD(bus_read_ivar,	pcib_read_ivar),
 	DEVMETHOD(bus_write_ivar,	pcib_write_ivar),
 	DEVMETHOD(bus_alloc_resource,	pcib_alloc_resource),
-	DEVMETHOD(bus_release_resource,	bus_generic_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
+	DEVMETHOD(bus_release_resource,	bus_generic_release_resource),
 	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 
@@ -86,7 +86,7 @@ static device_method_t ofw_pcib_methods[
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_node,	ofw_pcib_gen_get_node),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static devclass_t pcib_devclass;

Modified: head/sys/sparc64/sbus/dma_sbus.c
==============================================================================
--- head/sys/sparc64/sbus/dma_sbus.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/sbus/dma_sbus.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -122,14 +122,14 @@ static device_method_t dma_methods[] = {
 	/* Bus interface */
 	DEVMETHOD(bus_print_child,	dma_print_child),
 	DEVMETHOD(bus_probe_nomatch,	dma_probe_nomatch),
-	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_alloc_resource,	bus_generic_rl_alloc_resource),
-	DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
-	DEVMETHOD(bus_get_resource_list, dma_get_resource_list),
+	DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource),
+	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
+	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
+	DEVMETHOD(bus_get_resource_list, dma_get_resource_list),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	dma_get_devinfo),
@@ -139,7 +139,7 @@ static device_method_t dma_methods[] = {
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t dma_driver = {

Modified: head/sys/sparc64/sparc64/nexus.c
==============================================================================
--- head/sys/sparc64/sparc64/nexus.c	Thu Mar 19 20:29:23 2009	(r190098)
+++ head/sys/sparc64/sparc64/nexus.c	Thu Mar 19 20:31:55 2009	(r190099)
@@ -122,12 +122,12 @@ static device_method_t nexus_methods[] =
 	DEVMETHOD(bus_release_resource,	nexus_release_resource),
 	DEVMETHOD(bus_setup_intr,	nexus_setup_intr),
 	DEVMETHOD(bus_teardown_intr,	nexus_teardown_intr),
-#ifdef SMP
-	DEVMETHOD(bus_bind_intr,	nexus_bind_intr),
-#endif
 	DEVMETHOD(bus_set_resource,	bus_generic_rl_set_resource),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, nexus_get_resource_list),
+#ifdef SMP
+	DEVMETHOD(bus_bind_intr,	nexus_bind_intr),
+#endif
 	DEVMETHOD(bus_get_dma_tag,	nexus_get_dma_tag),
 
 	/* ofw_bus interface */
@@ -138,7 +138,7 @@ static device_method_t nexus_methods[] =
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static devclass_t nexus_devclass;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:33:27 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4999D106566B;
	Thu, 19 Mar 2009 20:33:27 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 341258FC0A;
	Thu, 19 Mar 2009 20:33:27 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKXRQ6074823;
	Thu, 19 Mar 2009 20:33:27 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKXQeF074801;
	Thu, 19 Mar 2009 20:33:26 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200903192033.n2JKXQeF074801@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 19 Mar 2009 20:33:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190100 - in head: . share/man/man4 share/man/man5
	sys/amd64/conf sys/arm/conf sys/boot/forth sys/conf
	sys/dev/usb/image sys/i386/conf sys/modules/usb
	sys/modules/usb/uscanner sys/pc98/...
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:33:27 -0000

Author: thompsa
Date: Thu Mar 19 20:33:26 2009
New Revision: 190100
URL: http://svn.freebsd.org/changeset/base/190100

Log:
  Remove the uscanner(4) driver, this follows the removal of the kernel scanner
  driver in Linux 2.6. uscanner was just a simple wrapper around a fifo and
  contained no logic, the default interface is now libusb (supported by sane).
  
  Reviewed by:	HPS

Deleted:
  head/share/man/man4/uscanner.4
  head/sys/dev/usb/image/uscanner.c
  head/sys/modules/usb/uscanner/Makefile
Modified:
  head/ObsoleteFiles.inc
  head/UPDATING
  head/share/man/man4/Makefile
  head/share/man/man4/usb.4
  head/share/man/man5/devfs.rules.5
  head/sys/amd64/conf/GENERIC
  head/sys/arm/conf/HL200
  head/sys/arm/conf/KB920X
  head/sys/boot/forth/loader.conf
  head/sys/conf/NOTES
  head/sys/conf/files
  head/sys/i386/conf/GENERIC
  head/sys/i386/conf/XBOX
  head/sys/modules/usb/Makefile
  head/sys/pc98/conf/GENERIC
  head/sys/powerpc/conf/GENERIC
  head/sys/sparc64/conf/GENERIC
  head/sys/sun4v/conf/GENERIC
  head/tools/tools/nanobsd/rescue/AMD64
  head/tools/tools/nanobsd/rescue/I386

Modified: head/ObsoleteFiles.inc
==============================================================================
--- head/ObsoleteFiles.inc	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/ObsoleteFiles.inc	Thu Mar 19 20:33:26 2009	(r190100)
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20090319: uscanner(4) has been removed
+OLD_FILES+=usr/share/man/man4/uscanner.4.gz
 # 20090313: k8temp(4) renamed to amdtemp(4)
 OLD_FILES+=usr/share/man/man4/k8temp.4.gz
 # 20090308: libusb.so.1 renamed

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/UPDATING	Thu Mar 19 20:33:26 2009	(r190100)
@@ -23,6 +23,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	ln -s aj /etc/malloc.conf.)
 
 20090319:
+	The uscanner(4) driver has been removed from the kernel. This follows
+	Linux removing theirs in 2.6 and making libusb the default interface
+	(supported by sane).
+
+20090319:
 	The multicast forwarding code has been cleaned up. netstat(1)
 	only relies on KVM now for printing bandwidth upcall meters.
 	The IPv4 and IPv6 modules are split into ip_mroute_mod and

Modified: head/share/man/man4/Makefile
==============================================================================
--- head/share/man/man4/Makefile	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/share/man/man4/Makefile	Thu Mar 19 20:33:26 2009	(r190100)
@@ -421,7 +421,6 @@ MAN=	aac.4 \
 	urio.4 \
 	${_urtw.4} \
 	usb.4 \
-	uscanner.4 \
 	uslcom.4 \
 	utopia.4 \
 	uvisor.4 \

Modified: head/share/man/man4/usb.4
==============================================================================
--- head/share/man/man4/usb.4	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/share/man/man4/usb.4	Thu Mar 19 20:33:26 2009	(r190100)
@@ -422,7 +422,6 @@ specifications can be found at:
 .Xr ums 4 ,
 .Xr uplcom 4 ,
 .Xr urio 4 ,
-.Xr uscanner 4 ,
 .Xr uvscom 4 ,
 .Xr usbdevs 8
 .Sh HISTORY

Modified: head/share/man/man5/devfs.rules.5
==============================================================================
--- head/share/man/man5/devfs.rules.5	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/share/man/man5/devfs.rules.5	Thu Mar 19 20:33:26 2009	(r190100)
@@ -101,12 +101,12 @@ The first line declares and starts a new
 and the number 10.
 .Pp
 To make all the
-.Xr uscanner 4
+.Xr ulpt 4
 devices accessible to their owner and the
 .Dq Li usb
 group, a similar rule may be used:
 .Pp
-.Dl "add path 'uscanner*' mode 0660 group usb"
+.Dl "add path 'ulpt*' mode 0660 group usb"
 .Sh SEE ALSO
 .Xr glob 3 ,
 .Xr devfs 5 ,

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/amd64/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -295,7 +295,6 @@ device		ums		# Mouse
 device		ural		# Ralink Technology RT2500USB wireless NICs
 device		rum		# Ralink Technology RT2501USB wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Serial devices
 device		uark		# Technologies ARK3116 based serial adapters
 device		ubsa		# Belkin F5U103 and compatible serial adapters

Modified: head/sys/arm/conf/HL200
==============================================================================
--- head/sys/arm/conf/HL200	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/arm/conf/HL200	Thu Mar 19 20:33:26 2009	(r190100)
@@ -103,7 +103,6 @@ device          umass           # Disks/
 device          ural            # Ralink Technology RT2500USB wireless NICs
 device          rum             # Ralink Technology RT2501USB wireless NICs
 device          urio            # Diamond Rio 500 MP3 player
-device          uscanner        # Scanners
 # USB Ethernet, requires miibus
 device		miibus
 device          aue             # ADMtek USB Ethernet

Modified: head/sys/arm/conf/KB920X
==============================================================================
--- head/sys/arm/conf/KB920X	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/arm/conf/KB920X	Thu Mar 19 20:33:26 2009	(r190100)
@@ -104,7 +104,6 @@ device          umass           # Disks/
 device          ural            # Ralink Technology RT2500USB wireless NICs
 device          rum             # Ralink Technology RT2501USB wireless NICs
 device          urio            # Diamond Rio 500 MP3 player
-device          uscanner        # Scanners
 # USB Ethernet, requires miibus
 device		miibus
 device          aue             # ADMtek USB Ethernet

Modified: head/sys/boot/forth/loader.conf
==============================================================================
--- head/sys/boot/forth/loader.conf	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/boot/forth/loader.conf	Thu Mar 19 20:33:26 2009	(r190100)
@@ -379,7 +379,6 @@ ulpt_load="NO"			# Printer
 ums_load="NO"			# Mouse
 umass_load="NO"			# Mass Storage Devices
 umodem_load="NO"		# Modems
-uscanner_load="NO"		# Scanners
 if_aue_load="NO"		# ADMtek USB ethernet
 if_axe_load="NO"		# ASIX Electronics AX88172 USB ethernet
 if_cue_load="NO"		# CATC USB ethernet

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/conf/NOTES	Thu Mar 19 20:33:26 2009	(r190100)
@@ -2413,8 +2413,6 @@ device		umodem
 device		ums
 # Diamond Rio 500 MP3 player
 device		urio
-# USB scanners
-device		uscanner
 #
 # USB serial support
 device		ucom

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/conf/files	Thu Mar 19 20:33:26 2009	(r190100)
@@ -1656,10 +1656,6 @@ dev/usb/template/usb_template_cdce.c	opt
 dev/usb/template/usb_template_msc.c	optional usb_template
 dev/usb/template/usb_template_mtp.c	optional usb_template
 #
-# USB image drivers
-#
-dev/usb/image/uscanner.c	optional uscanner
-#
 # USB END
 #
 dev/utopia/idtphy.c		optional utopia

Modified: head/sys/i386/conf/GENERIC
==============================================================================
--- head/sys/i386/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/i386/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -309,7 +309,6 @@ device		ural		# Ralink Technology RT2500
 device		rum		# Ralink Technology RT2501USB wireless NICs
 device		zyd		# ZyDAS zb1211/zb1211b wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Serial devices
 device		u3g		# USB-based 3G modems (Option, Huawei, Sierra)
 device		uark		# Technologies ARK3116 based serial adapters

Modified: head/sys/i386/conf/XBOX
==============================================================================
--- head/sys/i386/conf/XBOX	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/i386/conf/XBOX	Thu Mar 19 20:33:26 2009	(r190100)
@@ -91,7 +91,6 @@ device		ulpt		# Printer
 device		umass		# Disks/Mass storage - Requires scbus and da
 device		ums		# Mouse
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 
 device		miibus
 device		aue		# ADMtek USB Ethernet

Modified: head/sys/modules/usb/Makefile
==============================================================================
--- head/sys/modules/usb/Makefile	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/modules/usb/Makefile	Thu Mar 19 20:33:26 2009	(r190100)
@@ -29,7 +29,7 @@ SUBDIR = usb
 #SUBDIR += ubt bluetooth_ng ubtfw
 SUBDIR += ehci musb ohci uhci uss820dci ${_at91dci} ${_atmegadci}
 SUBDIR += rum ural zyd
-SUBDIR += uhid ukbd ums udbp ufm uscanner
+SUBDIR += uhid ukbd ums udbp ufm
 SUBDIR += ucom u3g uark ubsa ubser uchcom ucycom ufoma uftdi ugensa uipaq ulpt \
 	  umct umodem umoscom uplcom uslcom uvisor uvscom
 SUBDIR += uether aue axe cdce cue kue rue udav

Modified: head/sys/pc98/conf/GENERIC
==============================================================================
--- head/sys/pc98/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/pc98/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -265,7 +265,6 @@ device		bpf		# Berkeley packet filter
 #device		rum		# Ralink Technology RT2501USB wireless NICs
 #device		zyd		# ZyDAS zb1211/zb1211b wireless NICs
 #device		urio		# Diamond Rio 500 MP3 player
-#device		uscanner	# Scanners
 # USB Serial devices
 #device		uark		# Technologies ARK3116 based serial adapters
 #device		ubsa		# Belkin F5U103 and compatible serial adapters

Modified: head/sys/powerpc/conf/GENERIC
==============================================================================
--- head/sys/powerpc/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/powerpc/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -140,7 +140,6 @@ device		ulpt		# Printer
 device		umass		# Disks/Mass storage - Requires scbus and da0
 device		ums		# Mouse
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Ethernet
 device		aue		# ADMtek USB Ethernet
 device		axe		# ASIX Electronics USB Ethernet

Modified: head/sys/sparc64/conf/GENERIC
==============================================================================
--- head/sys/sparc64/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/sparc64/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -230,7 +230,6 @@ device		ukbd		# Keyboard
 #device		umass		# Disks/Mass storage - Requires scbus and da
 device		ums		# Mouse
 #device		urio		# Diamond Rio 500 MP3 player
-#device		uscanner	# Scanners
 # USB Ethernet, requires mii
 #device		aue		# ADMtek USB Ethernet
 #device		axe		# ASIX Electronics USB Ethernet

Modified: head/sys/sun4v/conf/GENERIC
==============================================================================
--- head/sys/sun4v/conf/GENERIC	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/sys/sun4v/conf/GENERIC	Thu Mar 19 20:33:26 2009	(r190100)
@@ -191,7 +191,6 @@ device		ulpt		# Printer
 #device		umass		# Disks/Mass storage - Requires scbus and da
 device		ums		# Mouse
 #device		urio		# Diamond Rio 500 MP3 player
-#device		uscanner	# Scanners
 # USB Ethernet, requires mii
 #device		aue		# ADMtek USB Ethernet
 #device		axe		# ASIX Electronics USB Ethernet

Modified: head/tools/tools/nanobsd/rescue/AMD64
==============================================================================
--- head/tools/tools/nanobsd/rescue/AMD64	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/tools/tools/nanobsd/rescue/AMD64	Thu Mar 19 20:33:26 2009	(r190100)
@@ -296,7 +296,6 @@ device		ums		# Mouse
 device		ural		# Ralink Technology RT2500USB wireless NICs
 device		rum		# Ralink Technology RT2501USB wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Serial devices
 device		ucom		# Generic com ttys
 device		uark		# Technologies ARK3116 based serial adapters

Modified: head/tools/tools/nanobsd/rescue/I386
==============================================================================
--- head/tools/tools/nanobsd/rescue/I386	Thu Mar 19 20:31:55 2009	(r190099)
+++ head/tools/tools/nanobsd/rescue/I386	Thu Mar 19 20:33:26 2009	(r190100)
@@ -310,7 +310,6 @@ device		ural		# Ralink Technology RT2500
 device		rum		# Ralink Technology RT2501USB wireless NICs
 device		zyd		# ZyDAS zb1211/zb1211b wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
-device		uscanner	# Scanners
 # USB Serial devices
 device		ucom		# Generic com ttys
 device		u3g		# USB-based 3G modems (Option, Huawei, Sierra)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:36:46 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 988B41065674;
	Thu, 19 Mar 2009 20:36:46 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6A42E8FC0A;
	Thu, 19 Mar 2009 20:36:46 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKak5c074935;
	Thu, 19 Mar 2009 20:36:46 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKaku6074931;
	Thu, 19 Mar 2009 20:36:46 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192036.n2JKaku6074931@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:36:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190101 - in head/sys/sparc64: pci sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:36:49 -0000

Author: marius
Date: Thu Mar 19 20:36:46 2009
New Revision: 190101
URL: http://svn.freebsd.org/changeset/base/190101

Log:
  Take advantage of KOBJMETHOD_END.

Modified:
  head/sys/sparc64/pci/ofw_pcibus.c
  head/sys/sparc64/sparc64/eeprom.c
  head/sys/sparc64/sparc64/rtc.c
  head/sys/sparc64/sparc64/sc_machdep.c

Modified: head/sys/sparc64/pci/ofw_pcibus.c
==============================================================================
--- head/sys/sparc64/pci/ofw_pcibus.c	Thu Mar 19 20:33:26 2009	(r190100)
+++ head/sys/sparc64/pci/ofw_pcibus.c	Thu Mar 19 20:36:46 2009	(r190101)
@@ -90,7 +90,7 @@ static device_method_t ofw_pcibus_method
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 struct ofw_pcibus_devinfo {

Modified: head/sys/sparc64/sparc64/eeprom.c
==============================================================================
--- head/sys/sparc64/sparc64/eeprom.c	Thu Mar 19 20:33:26 2009	(r190100)
+++ head/sys/sparc64/sparc64/eeprom.c	Thu Mar 19 20:36:46 2009	(r190101)
@@ -91,7 +91,7 @@ static device_method_t eeprom_methods[] 
 	DEVMETHOD(clock_gettime,	mk48txx_gettime),
 	DEVMETHOD(clock_settime,	mk48txx_settime),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t eeprom_driver = {

Modified: head/sys/sparc64/sparc64/rtc.c
==============================================================================
--- head/sys/sparc64/sparc64/rtc.c	Thu Mar 19 20:33:26 2009	(r190100)
+++ head/sys/sparc64/sparc64/rtc.c	Thu Mar 19 20:36:46 2009	(r190101)
@@ -89,7 +89,7 @@ static device_method_t rtc_ebus_methods[
 	DEVMETHOD(clock_gettime,	mc146818_gettime),
 	DEVMETHOD(clock_settime,	mc146818_settime),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t rtc_ebus_driver = {

Modified: head/sys/sparc64/sparc64/sc_machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/sc_machdep.c	Thu Mar 19 20:33:26 2009	(r190100)
+++ head/sys/sparc64/sparc64/sc_machdep.c	Thu Mar 19 20:36:46 2009	(r190101)
@@ -57,7 +57,7 @@ static device_method_t sc_methods[] = {
 	DEVMETHOD(device_probe,		sc_probe),
 	DEVMETHOD(device_attach,	sc_attach),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t sc_driver = {

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:38:02 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 61C32106571B;
	Thu, 19 Mar 2009 20:38:02 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1C8A78FC1A;
	Thu, 19 Mar 2009 20:38:02 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKc2uQ074999;
	Thu, 19 Mar 2009 20:38:02 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKc1Mc074998;
	Thu, 19 Mar 2009 20:38:02 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200903192038.n2JKc1Mc074998@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 19 Mar 2009 20:38:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190102 - in head/sys: dev/usb/image
	modules/usb/uscanner
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:38:17 -0000

Author: thompsa
Date: Thu Mar 19 20:38:01 2009
New Revision: 190102
URL: http://svn.freebsd.org/changeset/base/190102

Log:
  Remove empty dirs.

Deleted:
  head/sys/dev/usb/image/
  head/sys/modules/usb/uscanner/

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:38:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 78A55106574B;
	Thu, 19 Mar 2009 20:38:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 65BAB8FC16;
	Thu, 19 Mar 2009 20:38:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKcj70075049;
	Thu, 19 Mar 2009 20:38:45 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKcjkT075047;
	Thu, 19 Mar 2009 20:38:45 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192038.n2JKcjkT075047@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:38:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190103 - head/sys/sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:38:46 -0000

Author: marius
Date: Thu Mar 19 20:38:45 2009
New Revision: 190103
URL: http://svn.freebsd.org/changeset/base/190103

Log:
  Take advantage of KOBJMETHOD_END.

Modified:
  head/sys/sparc64/sparc64/jbusppm.c
  head/sys/sparc64/sparc64/schppm.c

Modified: head/sys/sparc64/sparc64/jbusppm.c
==============================================================================
--- head/sys/sparc64/sparc64/jbusppm.c	Thu Mar 19 20:38:01 2009	(r190102)
+++ head/sys/sparc64/sparc64/jbusppm.c	Thu Mar 19 20:38:45 2009	(r190103)
@@ -78,7 +78,7 @@ static device_method_t jbusppm_methods[]
 	DEVMETHOD(device_probe,		jbusppm_probe),
 	DEVMETHOD(device_attach,	jbusppm_attach),
 
-	{ NULL, NULL }
+	KOBJMETHOD_END
 };
 
 static devclass_t jbusppm_devclass;

Modified: head/sys/sparc64/sparc64/schppm.c
==============================================================================
--- head/sys/sparc64/sparc64/schppm.c	Thu Mar 19 20:38:01 2009	(r190102)
+++ head/sys/sparc64/sparc64/schppm.c	Thu Mar 19 20:38:45 2009	(r190103)
@@ -73,7 +73,7 @@ static device_method_t schppm_methods[] 
 	DEVMETHOD(device_probe,		schppm_probe),
 	DEVMETHOD(device_attach,	schppm_attach),
 
-	{ NULL, NULL }
+	KOBJMETHOD_END
 };
 
 static devclass_t schppm_devclass;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:40:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 12DB21065670;
	Thu, 19 Mar 2009 20:40:12 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F2EC38FC14;
	Thu, 19 Mar 2009 20:40:11 +0000 (UTC) (envelope-from imp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKeBdb075155;
	Thu, 19 Mar 2009 20:40:11 GMT (envelope-from imp@svn.freebsd.org)
Received: (from imp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKeBgK075153;
	Thu, 19 Mar 2009 20:40:11 GMT (envelope-from imp@svn.freebsd.org)
Message-Id: <200903192040.n2JKeBgK075153@svn.freebsd.org>
From: Warner Losh 
Date: Thu, 19 Mar 2009 20:40:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190104 - in stable/7/sys: . conf contrib/pf
	dev/ath/ath_hal dev/cxgb dev/pcn modules/pcn pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:40:12 -0000

Author: imp
Date: Thu Mar 19 20:40:11 2009
New Revision: 190104
URL: http://svn.freebsd.org/changeset/base/190104

Log:
  MFC: r181740
  
  Move pcn.

Added:
  stable/7/sys/dev/pcn/
     - copied from r181740, head/sys/dev/pcn/
Deleted:
  stable/7/sys/pci/if_pcn.c
  stable/7/sys/pci/if_pcnreg.h
Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/conf/files
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/modules/pcn/Makefile

Modified: stable/7/sys/conf/files
==============================================================================
--- stable/7/sys/conf/files	Thu Mar 19 20:38:45 2009	(r190103)
+++ stable/7/sys/conf/files	Thu Mar 19 20:40:11 2009	(r190104)
@@ -1041,6 +1041,7 @@ dev/pci/pci_pci.c		optional pci
 dev/pci/pci_user.c		optional pci
 dev/pci/pcib_if.m		standard
 dev/pci/vga_pci.c		optional pci
+dev/pcn/if_pcn.c		optional pcn pci
 dev/pdq/if_fea.c		optional fea eisa
 dev/pdq/if_fpa.c		optional fpa pci
 dev/pdq/pdq.c			optional nowerror fea eisa | fpa pci
@@ -2111,7 +2112,6 @@ pci/alpm.c			optional alpm pci
 pci/amdpm.c			optional amdpm pci | nfpm pci
 pci/amdsmb.c			optional amdsmb pci
 pci/if_mn.c			optional mn pci
-pci/if_pcn.c			optional pcn pci
 pci/if_rl.c			optional rl pci
 pci/if_ste.c			optional ste pci
 pci/if_tl.c			optional tl pci

Modified: stable/7/sys/modules/pcn/Makefile
==============================================================================
--- stable/7/sys/modules/pcn/Makefile	Thu Mar 19 20:38:45 2009	(r190103)
+++ stable/7/sys/modules/pcn/Makefile	Thu Mar 19 20:40:11 2009	(r190104)
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-.PATH: ${.CURDIR}/../../pci
+.PATH: ${.CURDIR}/../../dev/pcn
 
 KMOD=	if_pcn
 SRCS=	if_pcn.c device_if.h bus_if.h pci_if.h

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:40:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 346801065688;
	Thu, 19 Mar 2009 20:40:50 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 225838FC20;
	Thu, 19 Mar 2009 20:40:50 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKeoUU075201;
	Thu, 19 Mar 2009 20:40:50 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKeoYY075200;
	Thu, 19 Mar 2009 20:40:50 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192040.n2JKeoYY075200@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:40:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190105 - head/sys/sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:40:50 -0000

Author: marius
Date: Thu Mar 19 20:40:49 2009
New Revision: 190105
URL: http://svn.freebsd.org/changeset/base/190105

Log:
  There's no need to wrap kdb_enter() in #ifdef KDB as it's always available.

Modified:
  head/sys/sparc64/sparc64/machdep.c

Modified: head/sys/sparc64/sparc64/machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/machdep.c	Thu Mar 19 20:40:11 2009	(r190104)
+++ head/sys/sparc64/sparc64/machdep.c	Thu Mar 19 20:40:49 2009	(r190105)
@@ -496,10 +496,8 @@ sparc64_init(caddr_t mdp, u_long o1, u_l
 
 	kdb_init();
 
-#ifdef KDB
 	if (boothowto & RB_KDB)
 		kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
-#endif
 }
 
 void

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:43:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 82D1F1065692;
	Thu, 19 Mar 2009 20:43:01 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7086A8FC26;
	Thu, 19 Mar 2009 20:43:01 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKh1SL075273;
	Thu, 19 Mar 2009 20:43:01 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKh1R1075272;
	Thu, 19 Mar 2009 20:43:01 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192043.n2JKh1R1075272@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:43:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190106 - head/sys/sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:43:02 -0000

Author: marius
Date: Thu Mar 19 20:43:01 2009
New Revision: 190106
URL: http://svn.freebsd.org/changeset/base/190106

Log:
  - Remove the delay in cpu_mp_shutdown() which is no longer necessary since
    we have stopped using SUNW,stop-self with r186395.
  - There's no need to wrap kdb_active in #ifdef KDB as it's always available.

Modified:
  head/sys/sparc64/sparc64/mp_machdep.c

Modified: head/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 20:40:49 2009	(r190105)
+++ head/sys/sparc64/sparc64/mp_machdep.c	Thu Mar 19 20:43:01 2009	(r190106)
@@ -413,8 +413,6 @@ cpu_mp_shutdown(void)
 			break;
 		}
 	}
-	/* XXX: delay a bit to allow the CPUs to actually enter the PROM. */
-	DELAY(100000);
 	critical_exit();
 }
 
@@ -505,11 +503,7 @@ spitfire_ipi_send(u_int mid, u_long d0, 
 		 */
 		DELAY(2);
 	}
-	if (
-#ifdef KDB
-	    kdb_active ||
-#endif
-	    panicstr != NULL)
+	if (kdb_active != 0 || panicstr != NULL)
 		printf("%s: couldn't send IPI to module 0x%u\n",
 		    __func__, mid);
 	else
@@ -581,11 +575,7 @@ cheetah_ipi_selected(u_int cpus, u_long 
 		 */
 		DELAY(2 * mp_ncpus);
 	}
-	if (
-#ifdef KDB
-	    kdb_active ||
-#endif
-	    panicstr != NULL)
+	if (kdb_active != 0 || panicstr != NULL)
 		printf("%s: couldn't send IPI (cpus=0x%u ids=0x%lu)\n",
 		    __func__, cpus, ids);
 	else

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:46:51 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E0E461065670;
	Thu, 19 Mar 2009 20:46:51 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CD8B68FC13;
	Thu, 19 Mar 2009 20:46:51 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKkp22075396;
	Thu, 19 Mar 2009 20:46:51 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKkpsZ075392;
	Thu, 19 Mar 2009 20:46:51 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192046.n2JKkpsZ075392@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:46:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190107 - in head/sys: sparc64/include sparc64/sparc64
	sun4v/include sun4v/sun4v
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:46:53 -0000

Author: marius
Date: Thu Mar 19 20:46:51 2009
New Revision: 190107
URL: http://svn.freebsd.org/changeset/base/190107

Log:
  - There's no need to wrap kdb_active and kdb_trap() in #ifdef KDB as
    they're always available.
  - Remove unused variable. [1]
  - Add a missing const.
  - Sort includes.
  
  Submitted by:	Christoph Mallon [1]

Modified:
  head/sys/sparc64/include/trap.h
  head/sys/sparc64/sparc64/trap.c
  head/sys/sun4v/include/trap.h
  head/sys/sun4v/sun4v/trap.c

Modified: head/sys/sparc64/include/trap.h
==============================================================================
--- head/sys/sparc64/include/trap.h	Thu Mar 19 20:43:01 2009	(r190106)
+++ head/sys/sparc64/include/trap.h	Thu Mar 19 20:46:51 2009	(r190107)
@@ -91,7 +91,7 @@
 
 #ifndef LOCORE
 void sun4u_set_traptable(void *tba_addr);
-extern const char *trap_msg[];
+extern const char *const trap_msg[];
 #endif
 
 #endif

Modified: head/sys/sparc64/sparc64/trap.c
==============================================================================
--- head/sys/sparc64/sparc64/trap.c	Thu Mar 19 20:43:01 2009	(r190106)
+++ head/sys/sparc64/sparc64/trap.c	Thu Mar 19 20:46:51 2009	(r190107)
@@ -71,7 +71,6 @@ __FBSDID("$FreeBSD$");
 #include 
 
 #include 
-#include 
 
 #include 
 #include 
@@ -84,7 +83,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
@@ -114,7 +113,7 @@ extern char fas_nofault_end[];
 
 extern char *syscallnames[];
 
-const char *trap_msg[] = {
+const char *const trap_msg[] = {
 	"reserved",
 	"instruction access exception",
 	"instruction access error",
@@ -329,15 +328,12 @@ trap(struct trapframe *tf)
 		KASSERT((tf->tf_type & T_KERNEL) != 0,
 		    ("trap: kernel trap isn't"));
 
-#ifdef KDB
 		if (kdb_active) {
 			kdb_reenter();
 			return;
 		}
-#endif
 
 		switch (tf->tf_type & ~T_KERNEL) {
-#ifdef KDB
 		case T_BREAKPOINT:
 		case T_KSTACK_FAULT:
 			error = (kdb_trap(tf->tf_type, 0, tf) == 0);
@@ -349,7 +345,6 @@ trap(struct trapframe *tf)
 			error = db_watch_trap(tf);
 			break;
 #endif
-#endif
 		case T_DATA_MISS:
 		case T_DATA_PROTECTION:
 		case T_INSTRUCTION_MISS:
@@ -409,7 +404,6 @@ static int
 trap_pfault(struct thread *td, struct trapframe *tf)
 {
 	struct vmspace *vm;
-	struct pcb *pcb;
 	struct proc *p;
 	vm_offset_t va;
 	vm_prot_t prot;
@@ -429,7 +423,6 @@ trap_pfault(struct thread *td, struct tr
 
 	rv = KERN_SUCCESS;
 	ctx = TLB_TAR_CTX(tf->tf_tar);
-	pcb = td->td_pcb;
 	type = tf->tf_type & ~T_KERNEL;
 	va = TLB_TAR_VA(tf->tf_tar);
 
@@ -559,11 +552,6 @@ syscall(struct trapframe *tf)
 
 	PCPU_INC(cnt.v_syscall);
 
-	narg = 0;
-	error = 0;
-	reg = 0;
-	regcnt = REG_MAXARGS;
-
 	td->td_pticks = 0;
 	td->td_frame = tf;
 	if (td->td_ucred != p->p_ucred)
@@ -577,6 +565,8 @@ syscall(struct trapframe *tf)
 	tpc = tf->tf_tpc;
 	TF_DONE(tf);
 
+	reg = 0;
+	regcnt = REG_MAXARGS;
 	if (p->p_sysent->sv_prepsyscall) {
 		/*
 		 * The prep code is MP aware.

Modified: head/sys/sun4v/include/trap.h
==============================================================================
--- head/sys/sun4v/include/trap.h	Thu Mar 19 20:43:01 2009	(r190106)
+++ head/sys/sun4v/include/trap.h	Thu Mar 19 20:46:51 2009	(r190107)
@@ -144,7 +144,7 @@
 
 
 #ifndef LOCORE
-extern const char *trap_msg[];
+extern const char *const trap_msg[];
 extern void set_mmfsa_traptable(void *, uint64_t);
 extern void trap_init(void);
 #endif

Modified: head/sys/sun4v/sun4v/trap.c
==============================================================================
--- head/sys/sun4v/sun4v/trap.c	Thu Mar 19 20:43:01 2009	(r190106)
+++ head/sys/sun4v/sun4v/trap.c	Thu Mar 19 20:46:51 2009	(r190107)
@@ -81,7 +81,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -119,7 +118,7 @@ extern char fas_nofault_end[];
 
 extern char *syscallnames[];
 
-const char *trap_msg[] = {
+const char *const trap_msg[] = {
 	"reserved",
 	"instruction access exception",
 	"instruction access error",
@@ -390,21 +389,17 @@ trap(struct trapframe *tf, int64_t type,
 		    ("trap: kernel trap isn't - trap: %ld:%s: 0x%lx at 0x%lx on cpu=%d\n", 
 		     trapno, trap_msg[trapno], data, tf->tf_tpc, curcpu));
 
-#ifdef KDB
 		if (kdb_active) {
 			kdb_reenter();
 			return;
 		}
-#endif
 
 		switch (trapno) {
-#ifdef KDB
 		case T_BREAKPOINT:
 		case T_KSTACK_FAULT:
 			error = (kdb_trap(trapno, 0, tf) == 0);
 			TF_DONE(tf);
 			break;
-#endif
 		case T_DATA_MISS:
 		case T_DATA_PROTECTION:
 		case T_INSTRUCTION_MISS:
@@ -460,7 +455,6 @@ static int
 trap_pfault(struct thread *td, struct trapframe *tf, int64_t type, uint64_t data)
 {
 	struct vmspace *vm;
-	struct pcb *pcb;
 	struct proc *p;
 	vm_offset_t va;
 	vm_prot_t prot;
@@ -475,7 +469,6 @@ trap_pfault(struct thread *td, struct tr
 
 	rv = KERN_SUCCESS;
 	ctx = TLB_TAR_CTX(data);
-	pcb = td->td_pcb;
 	type = type & ~T_KERNEL;
 	va = TLB_TAR_VA(data);
 
@@ -603,11 +596,6 @@ syscall(struct trapframe *tf)
 
 	PCPU_INC(cnt.v_syscall);
 
-	narg = 0;
-	error = 0;
-	reg = 0;
-	regcnt = REG_MAXARGS;
-
 	td->td_pticks = 0;
 	td->td_frame = tf;
 	if (td->td_ucred != p->p_ucred)
@@ -621,6 +609,8 @@ syscall(struct trapframe *tf)
 	tpc = tf->tf_tpc;
 	TF_DONE(tf);
 
+	reg = 0;
+	regcnt = REG_MAXARGS;
 	if (p->p_sysent->sv_prepsyscall) {
 		/*
 		 * The prep code is MP aware.

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:48:48 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0FF94106564A;
	Thu, 19 Mar 2009 20:48:48 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D71BD8FC1A;
	Thu, 19 Mar 2009 20:48:47 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKmlWv075483;
	Thu, 19 Mar 2009 20:48:47 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKmlg9075482;
	Thu, 19 Mar 2009 20:48:47 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192048.n2JKmlg9075482@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:48:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190108 - head/sys/sparc64/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:48:49 -0000

Author: marius
Date: Thu Mar 19 20:48:47 2009
New Revision: 190108
URL: http://svn.freebsd.org/changeset/base/190108

Log:
  - Take advantage of KOBJMETHOD_END.
  - Hook up the streaming buffer (not used by iommu(4) by default, yet)
    if available and usable. [1]
  - Move the message regarding belated registration as interrupt control
    under bootverbose as this isn't something the user should worry about.
  
  Tested by:	Michael Moll [1]

Modified:
  head/sys/sparc64/pci/schizo.c

Modified: head/sys/sparc64/pci/schizo.c
==============================================================================
--- head/sys/sparc64/pci/schizo.c	Thu Mar 19 20:46:51 2009	(r190107)
+++ head/sys/sparc64/pci/schizo.c	Thu Mar 19 20:48:47 2009	(r190108)
@@ -148,7 +148,7 @@ static device_method_t schizo_methods[] 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_node,	schizo_get_node),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static devclass_t schizo_devclass;
@@ -449,14 +449,17 @@ schizo_attach(device_t dev)
 		tc_init(tc);
 	}
 
-	/* Set up the IOMMU.  Both Schizo and Tomatillo have one per PBM. */
+	/*
+	 * Set up the IOMMU.  Schizo, Tomatillo and XMITS all have
+	 * one per PBM.  Schizo and XMITS additionally have a streaming
+	 * buffer, in Schizo version < 5 (i.e. revision < 2.3) it's
+	 * affected by several errata and basically unusable though.
+	 */
 	sc->sc_is.is_pmaxaddr = IOMMU_MAXADDR(STX_IOMMU_BITS);
-	sc->sc_is.is_sb[0] = 0;
-	sc->sc_is.is_sb[1] = 0;
-#ifdef notyet
-	if (OF_getproplen(node, "no-streaming-cache") < 0)
+	sc->sc_is.is_sb[0] = sc->sc_is.is_sb[1] = 0;
+	if (OF_getproplen(node, "no-streaming-cache") < 0 &&
+	    !(sc->sc_mode == SCHIZO_MODE_SCZ && sc->sc_ver < 5))
 		sc->sc_is.is_sb[0] = STX_PCI_STRBUF;
-#endif
 
 #define	TSBCASE(x)							\
 	case (IOTSB_BASESZ << (x)) << (IO_PAGE_SHIFT - IOTTE_SHIFT):	\
@@ -1154,8 +1157,9 @@ schizo_setup_intr(device_t dev, device_t
 			    "controller for vector 0x%lx (%d)\n", vec, error);
 			return (error);
 		}
-		device_printf(dev, "belatedly registered as interrupt "
-		    "controller for vector 0x%lx\n", vec);
+		if (bootverbose)
+			device_printf(dev, "belatedly registered as "
+			    "interrupt controller for vector 0x%lx\n", vec);
 	} else {
 		device_printf(dev,
 		    "invalid interrupt controller for vector 0x%lx\n", vec);

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:52:46 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D76381065672;
	Thu, 19 Mar 2009 20:52:46 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C33118FC0C;
	Thu, 19 Mar 2009 20:52:46 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKqkRu075598;
	Thu, 19 Mar 2009 20:52:46 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKqkaY075596;
	Thu, 19 Mar 2009 20:52:46 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192052.n2JKqkaY075596@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:52:46 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190109 - head/sys/sparc64/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:52:48 -0000

Author: marius
Date: Thu Mar 19 20:52:46 2009
New Revision: 190109
URL: http://svn.freebsd.org/changeset/base/190109

Log:
  - Ensure we find no unexpected partner.
  - Failing to register as interrupt controller during attach shouldn't
    be fatal so just inform about this instead of panicing.
  - Disable rerun of the streaming cache as workaround for a silicon bug
    of certain Psycho versions.
  - Remove the comment regarding lack of newbus'ified bus_dma(9) as being
    able to associate a DMA tag with a device would allow to implement
    CDMA flushing/syncing in bus_dmamap_sync(9) but that would totally
    kill performance. Given that for devices not behind a PCI-PCI bridge
    the host-to-PCI bridges also only do CDMA flushing/syncing based on
    interrupts there's no additional disadvantage for polling(4) callbacks
    in the case schizo(4) has to do the CDMA flushing/syncing but rather a
    general problem.
  - Don't panic if the power failure, power management or over-temperature
    interrupts doesn't exist as these aren't mandatory and not available
    with all controllers (not even Psychos). [1]
  - Take advantage of KOBJMETHOD_END.
  - Remove some redundant variables.
  - Add missing const.
  
  PR:	131371 [1]

Modified:
  head/sys/sparc64/pci/psycho.c
  head/sys/sparc64/pci/psychovar.h

Modified: head/sys/sparc64/pci/psycho.c
==============================================================================
--- head/sys/sparc64/pci/psycho.c	Thu Mar 19 20:48:47 2009	(r190108)
+++ head/sys/sparc64/pci/psycho.c	Thu Mar 19 20:52:46 2009	(r190109)
@@ -83,7 +83,7 @@ static void psycho_set_intr(struct psych
     driver_filter_t, driver_intr_t);
 static int psycho_find_intrmap(struct psycho_softc *, u_int, bus_addr_t *,
     bus_addr_t *, u_long *);
-static driver_filter_t psycho_dmasync;
+static driver_filter_t psycho_dma_sync_stub;
 static void psycho_intr_enable(void *);
 static void psycho_intr_disable(void *);
 static void psycho_intr_assign(void *);
@@ -150,7 +150,7 @@ static device_method_t psycho_methods[] 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_node,	psycho_get_node),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static devclass_t psycho_devclass;
@@ -175,7 +175,7 @@ struct psycho_icarg {
 	bus_addr_t		pica_clr;
 };
 
-struct psycho_dmasync {
+struct psycho_dma_sync {
 	struct psycho_softc	*pds_sc;
 	driver_filter_t		*pds_handler;	/* handler to call */
 	void			*pds_arg;	/* argument for the handler */
@@ -232,14 +232,14 @@ struct psycho_desc {
 	const char	*pd_name;
 };
 
-static const struct psycho_desc psycho_compats[] = {
+static const struct psycho_desc const psycho_compats[] = {
 	{ "pci108e,8000", PSYCHO_MODE_PSYCHO,	"Psycho compatible" },
 	{ "pci108e,a000", PSYCHO_MODE_SABRE,	"Sabre compatible" },
 	{ "pci108e,a001", PSYCHO_MODE_SABRE,	"Hummingbird compatible" },
 	{ NULL,		  0,			NULL }
 };
 
-static const struct psycho_desc psycho_models[] = {
+static const struct psycho_desc const psycho_models[] = {
 	{ "SUNW,psycho",  PSYCHO_MODE_PSYCHO,	"Psycho" },
 	{ "SUNW,sabre",   PSYCHO_MODE_SABRE,	"Sabre" },
 	{ NULL,		  0,			NULL }
@@ -296,8 +296,8 @@ psycho_attach(device_t dev)
 	phandle_t child, node;
 	uint32_t dvmabase, prop, prop_array[2];
 	int32_t rev;
-	u_int ver;
-	int i, n, nrange, rid;
+	u_int rerun, ver;
+	int i, n;
 
 	node = ofw_bus_get_node(dev);
 	sc = device_get_softc(dev);
@@ -315,7 +315,7 @@ psycho_attach(device_t dev)
 	 * (2) the shared Psycho configuration registers
 	 */
 	if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
-		rid = 2;
+		i = 2;
 		sc->sc_pcictl =
 		    bus_get_resource_start(dev, SYS_RES_MEMORY, 0) -
 		    bus_get_resource_start(dev, SYS_RES_MEMORY, 2);
@@ -332,18 +332,18 @@ psycho_attach(device_t dev)
 			/* NOTREACHED */
 		}
 	} else {
-		rid = 0;
+		i = 0;
 		sc->sc_pcictl = PSR_PCICTL0;
 		sc->sc_half = 0;
 	}
-	sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+	sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &i,
 	    (sc->sc_mode == PSYCHO_MODE_PSYCHO ? RF_SHAREABLE : 0) |
 	    RF_ACTIVE);
 	if (sc->sc_mem_res == NULL)
 		panic("%s: could not allocate registers", __func__);
 
 	/*
-	 * Match other Psycho's that are already configured against
+	 * Match other Psychos that are already configured against
 	 * the base physical address.  This will be the same for a
 	 * pair of devices that share register space.
 	 */
@@ -363,6 +363,8 @@ psycho_attach(device_t dev)
 			panic("%s: could not malloc mutex", __func__);
 		mtx_init(sc->sc_mtx, "pcib_mtx", NULL, MTX_SPIN);
 	} else {
+		if (sc->sc_mode != PSYCHO_MODE_PSYCHO)
+			panic("%s: no partner expected", __func__);
 		if (mtx_initialized(osc->sc_mtx) == 0)
 			panic("%s: mutex not initialized", __func__);
 		sc->sc_mtx = osc->sc_mtx;
@@ -408,16 +410,17 @@ psycho_attach(device_t dev)
 	case 0:
 		dr |= DIAG_RTRY_DIS;
 		dr &= ~DIAG_DWSYNC_DIS;
-		/* XXX need to also disable rerun of the streaming buffers. */
+		rerun = 0;
 		break;
 	case 1:
 		csr &= ~PCICTL_ARB_PARK;
 		dr |= DIAG_RTRY_DIS | DIAG_DWSYNC_DIS;
-		/* XXX need to also disable rerun of the streaming buffers. */
+		rerun = 0;
 		break;
 	default:
 		dr |= DIAG_DWSYNC_DIS;
 		dr &= ~DIAG_RTRY_DIS;
+		rerun = 1;
 		break;
 	}
 
@@ -460,13 +463,12 @@ psycho_attach(device_t dev)
 	    rman_manage_region(&sc->sc_pci_mem_rman, 0, PSYCHO_MEM_SIZE) != 0)
 		panic("%s: failed to set up memory rman", __func__);
 
-	nrange = OF_getprop_alloc(node, "ranges", sizeof(*range),
-	    (void **)&range);
+	n = OF_getprop_alloc(node, "ranges", sizeof(*range), (void **)&range);
 	/*
 	 * Make sure that the expected ranges are present.  The
 	 * OFW_PCI_CS_MEM64 one is not currently used though.
 	 */
-	if (nrange != PSYCHO_NRANGE)
+	if (n != PSYCHO_NRANGE)
 		panic("%s: unsupported number of ranges", __func__);
 	/*
 	 * Find the addresses of the various bus spaces.
@@ -493,7 +495,8 @@ psycho_attach(device_t dev)
 		/*
 		 * Hunt through all the interrupt mapping regs and register
 		 * our interrupt controller for the corresponding interrupt
-		 * vectors.
+		 * vectors.  We do this early in order to be able to catch
+		 * stray interrupts.
 		 */
 		for (n = 0; n <= PSYCHO_MAX_INO; n++) {
 			if (psycho_find_intrmap(sc, n, &intrmap, &intrclr,
@@ -523,22 +526,23 @@ psycho_attach(device_t dev)
 			    INTMAP_ENABLE(INTMAP_VEC(sc->sc_ign, n),
 			    PCPU_GET(mid)));
 #endif
-			if (intr_controller_register(INTMAP_VEC(sc->sc_ign, n),
-			    &psycho_ic, pica) != 0)
-				panic("%s: could not register interrupt "
-				    "controller for INO %d", __func__, n);
+			i = intr_controller_register(INTMAP_VEC(sc->sc_ign, n),
+			    &psycho_ic, pica);
+			if (i != 0)
+				device_printf(dev, "could not register "
+				    "interrupt controller for INO %d (%d)\n",
+				    n, i);
 		}
 
-		if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
-			/* Initialize the counter-timer. */
+		if (sc->sc_mode == PSYCHO_MODE_PSYCHO)
 			sparc64_counter_init(device_get_nameunit(dev),
 			    rman_get_bustag(sc->sc_mem_res),
 			    rman_get_bushandle(sc->sc_mem_res), PSR_TC0);
-		}
 
 		/*
 		 * Set up IOMMU and PCI configuration if we're the first
-		 * of a pair of Psycho's to arrive here.
+		 * of a pair of Psychos to arrive here or a Hummingbird
+		 * or Sabre.
 		 *
 		 * We should calculate a TSB size based on amount of RAM
 		 * and number of bus controllers and number and type of
@@ -556,10 +560,10 @@ psycho_attach(device_t dev)
 		else
 			sc->sc_is->is_pmaxaddr =
 			    IOMMU_MAXADDR(PSYCHO_IOMMU_BITS);
-		sc->sc_is->is_sb[0] = 0;
-		sc->sc_is->is_sb[1] = 0;
+		sc->sc_is->is_sb[0] = sc->sc_is->is_sb[1] = 0;
 		if (OF_getproplen(node, "no-streaming-cache") < 0)
 			sc->sc_is->is_sb[0] = sc->sc_pcictl + PCR_STRBUF;
+		sc->sc_is->is_flags |= (rerun != 1) ? IOMMU_RERUN_DISABLE : 0;
 		psycho_iommu_init(sc, 3, dvmabase);
 	} else {
 		/* Just copy IOMMU state, config tag and address. */
@@ -694,12 +698,20 @@ psycho_set_intr(struct psycho_softc *sc,
 	rid = index;
 	sc->sc_irq_res[index] = bus_alloc_resource_any(sc->sc_dev, SYS_RES_IRQ,
 	    &rid, RF_ACTIVE);
+	if (sc->sc_irq_res[index] == NULL && intrmap >= PSR_POWER_INT_MAP) {
+		/*
+		 * These interrupts aren't mandatory and not available
+		 * with all controllers (not even Psychos).
+		 */
+		return;
+	}
 	if (sc->sc_irq_res[index] == NULL ||
 	    INTIGN(vec = rman_get_start(sc->sc_irq_res[index])) != sc->sc_ign ||
 	    INTVEC(PSYCHO_READ8(sc, intrmap)) != vec ||
 	    intr_vectors[vec].iv_ic != &psycho_ic ||
-	    bus_setup_intr(sc->sc_dev, sc->sc_irq_res[index], INTR_TYPE_MISC,
-	    filt, intr, sc, &sc->sc_ihand[index]) != 0)
+	    bus_setup_intr(sc->sc_dev, sc->sc_irq_res[index],
+	    INTR_TYPE_MISC | INTR_FAST, filt, intr, sc,
+	    &sc->sc_ihand[index]) != 0)
 		panic("%s: failed to set up interrupt %d", __func__, index);
 }
 
@@ -1065,9 +1077,9 @@ psycho_read_ivar(device_t dev, device_t 
 }
 
 static int
-psycho_dmasync(void *arg)
+psycho_dma_sync_stub(void *arg)
 {
-	struct psycho_dmasync *pds = arg;
+	struct psycho_dma_sync *pds = arg;
 
 	(void)PCIB_READ_CONFIG(pds->pds_ppb, pds->pds_bus, pds->pds_slot,
 	    pds->pds_func, PCIR_VENDOR, 2);
@@ -1125,7 +1137,7 @@ psycho_setup_intr(device_t dev, device_t
 	devclass_t pci_devclass;
 	device_t cdev, pdev, pcidev;
 	struct psycho_softc *sc;
-	struct psycho_dmasync *pds;
+	struct psycho_dma_sync *pds;
 	u_long vec;
 	int error;
 
@@ -1142,17 +1154,12 @@ psycho_setup_intr(device_t dev, device_t
 	}
 
 	/*
-	 * The Sabre-APB-combination has a bug where it does not drain
-	 * DMA write data for devices behind additional PCI-PCI bridges
-	 * underneath the APB PCI-PCI bridge.  The workaround is to do
-	 * a read on the farest PCI-PCI bridge followed by a read of the
-	 * PCI DMA write sync register of the Sabre.
-	 * XXX installing the wrapper for an affected device and the
-	 * actual workaround in psycho_dmasync() should be moved to
-	 * psycho(4)-specific bus_dma_tag_create() and bus_dmamap_sync()
-	 * methods, respectively, once DMA tag creation is newbus'ified,
-	 * so the workaround isn't only applied for interrupt handlers
-	 * but also for polling(4) callbacks.
+	 * The Sabre-APB-combination does not automatically flush DMA
+	 * write data for devices behind additional PCI-PCI bridges
+	 * underneath the APB PCI-PCI bridge.  The procedure for a
+	 * manual flush is to do a PIO read on the far side of the
+	 * farthest PCI-PCI bridge followed by a read of the PCI DMA
+	 * write sync register of the Sabre.
 	 */
 	if (sc->sc_mode == PSYCHO_MODE_SABRE) {
 		pds = malloc(sizeof(*pds), M_DEVBUF, M_NOWAIT | M_ZERO);
@@ -1191,20 +1198,20 @@ psycho_setup_intr(device_t dev, device_t
 			pds->pds_func = pci_get_function(pcidev);
 			if (bootverbose)
 				device_printf(dev, "installed DMA sync "
-				    "workaround for device %d.%d on bus %d\n",
+				    "wrapper for device %d.%d on bus %d\n",
 				    pds->pds_slot, pds->pds_func,
 				    pds->pds_bus);
 			if (intr == NULL) {
 				pds->pds_handler = filt;
 				error = bus_generic_setup_intr(dev, child,
-				    ires, flags, psycho_dmasync, intr, pds,
-				    cookiep);
+				    ires, flags, psycho_dma_sync_stub, intr,
+				    pds, cookiep);
 			} else {
 				pds->pds_handler = (driver_filter_t *)intr;
 				error = bus_generic_setup_intr(dev, child,
 				    ires, flags, filt,
-				    (driver_intr_t *)psycho_dmasync, pds,
-				    cookiep);
+				    (driver_intr_t *)psycho_dma_sync_stub,
+				    pds, cookiep);
 			}
 		} else
 			error = bus_generic_setup_intr(dev, child, ires,
@@ -1226,7 +1233,7 @@ psycho_teardown_intr(device_t dev, devic
     void *cookie)
 {
 	struct psycho_softc *sc;
-	struct psycho_dmasync *pds;
+	struct psycho_dma_sync *pds;
 	int error;
 
 	sc = device_get_softc(dev);
@@ -1314,8 +1321,8 @@ psycho_activate_resource(device_t bus, d
 		    type, rid, r));
 	if (type == SYS_RES_MEMORY) {
 		/*
-		 * Need to memory-map the device space, as some drivers depend
-		 * on the virtual address being set and useable.
+		 * Need to memory-map the device space, as some drivers
+		 * depend on the virtual address being set and usable.
 		 */
 		error = sparc64_bus_mem_map(rman_get_bustag(r),
 		    rman_get_bushandle(r), rman_get_size(r), 0, 0, &p);

Modified: head/sys/sparc64/pci/psychovar.h
==============================================================================
--- head/sys/sparc64/pci/psychovar.h	Thu Mar 19 20:48:47 2009	(r190108)
+++ head/sys/sparc64/pci/psychovar.h	Thu Mar 19 20:52:46 2009	(r190109)
@@ -49,8 +49,8 @@ struct psycho_softc {
 
 	phandle_t			sc_node;	/* Firmware node */
 	u_int				sc_mode;
-#define	PSYCHO_MODE_SABRE	1
-#define	PSYCHO_MODE_PSYCHO	2
+#define	PSYCHO_MODE_SABRE		0
+#define	PSYCHO_MODE_PSYCHO		1
 
 	/* Bus A or B of a psycho pair? */
 	u_int				sc_half;

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:54:15 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id DAA9910656BE;
	Thu, 19 Mar 2009 20:54:15 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C74718FC12;
	Thu, 19 Mar 2009 20:54:15 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKsFdw075663;
	Thu, 19 Mar 2009 20:54:15 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKsFPn075662;
	Thu, 19 Mar 2009 20:54:15 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192054.n2JKsFPn075662@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:54:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190110 - head/sys/sparc64/isa
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:54:17 -0000

Author: marius
Date: Thu Mar 19 20:54:15 2009
New Revision: 190110
URL: http://svn.freebsd.org/changeset/base/190110

Log:
  Sort include.

Modified:
  head/sys/sparc64/isa/ofw_isa.c

Modified: head/sys/sparc64/isa/ofw_isa.c
==============================================================================
--- head/sys/sparc64/isa/ofw_isa.c	Thu Mar 19 20:52:46 2009	(r190109)
+++ head/sys/sparc64/isa/ofw_isa.c	Thu Mar 19 20:54:15 2009	(r190110)
@@ -40,8 +40,8 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 
-#include 
 #include 
+#include 
 
 #include 
 #include 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 20:58:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 00C1B1065672;
	Thu, 19 Mar 2009 20:58:00 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E262F8FC20;
	Thu, 19 Mar 2009 20:57:59 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JKvxNl075779;
	Thu, 19 Mar 2009 20:57:59 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JKvxKP075778;
	Thu, 19 Mar 2009 20:57:59 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192057.n2JKvxKP075778@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 20:57:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190111 - head/sys/sparc64/isa
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 20:58:00 -0000

Author: marius
Date: Thu Mar 19 20:57:59 2009
New Revision: 190111
URL: http://svn.freebsd.org/changeset/base/190111

Log:
  Add device found in B100.

Modified:
  head/sys/sparc64/isa/isa.c

Modified: head/sys/sparc64/isa/isa.c
==============================================================================
--- head/sys/sparc64/isa/isa.c	Thu Mar 19 20:54:15 2009	(r190110)
+++ head/sys/sparc64/isa/isa.c	Thu Mar 19 20:57:59 2009	(r190111)
@@ -118,7 +118,7 @@ isa_init(device_t dev)
 static const struct {
 	const char	*name;
 	uint32_t	id;
-} ofw_isa_pnp_map[] = {
+} const ofw_isa_pnp_map[] = {
 	{ "SUNW,lomh",	0x0000ae4e }, /* SUN0000 */
 	{ "dma",	0x0002d041 }, /* PNP0200 */
 	{ "floppy",	0x0007d041 }, /* PNP0700 */
@@ -130,6 +130,7 @@ static const struct {
 	{ "rmc-comm",	0x0300ae4e }, /* SUN0003 */
 	{ "kb_ps2",	0x0303d041 }, /* PNP0303 */
 	{ "kdmouse",	0x030fd041 }, /* PNP0F03 */
+	{ "bscbus",	0x0400ae4e }, /* SUN0004 */
 	{ "power",	0x0c0cd041 }, /* PNP0C0C */
 	{ NULL,		0x0 }
 };

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 21:02:37 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 58A56106566C;
	Thu, 19 Mar 2009 21:02:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 457E68FC08;
	Thu, 19 Mar 2009 21:02:37 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JL2bPC075920;
	Thu, 19 Mar 2009 21:02:37 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JL2bdg075918;
	Thu, 19 Mar 2009 21:02:37 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192102.n2JL2bdg075918@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 21:02:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190112 - head/sys/sparc64/sbus
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 21:02:38 -0000

Author: marius
Date: Thu Mar 19 21:02:36 2009
New Revision: 190112
URL: http://svn.freebsd.org/changeset/base/190112

Log:
  - As suggested by OpenSolaris use up-burst-sizes for determining the
    supported burst sizes.
  - Add support for 64-bit burst sizes (required for SBus GEM).
  - Failing to register as interrupt controller during attach shouldn't
    be fatal so just inform about this instead of panicing.
  - Take advantage of KOBJMETHOD_END.
  - Remove some redundant variables.
  - Add missing const.

Modified:
  head/sys/sparc64/sbus/sbus.c
  head/sys/sparc64/sbus/sbusvar.h

Modified: head/sys/sparc64/sbus/sbus.c
==============================================================================
--- head/sys/sparc64/sbus/sbus.c	Thu Mar 19 20:57:59 2009	(r190111)
+++ head/sys/sparc64/sbus/sbus.c	Thu Mar 19 21:02:36 2009	(r190112)
@@ -190,7 +190,7 @@ static bus_deactivate_resource_t sbus_de
 static bus_get_dma_tag_t sbus_get_dma_tag;
 static ofw_bus_get_devinfo_t sbus_get_devinfo;
 
-static int sbus_inlist(const char *, const char **);
+static int sbus_inlist(const char *, const char *const *);
 static struct sbus_devinfo * sbus_setup_dinfo(device_t, struct sbus_softc *,
     phandle_t);
 static void sbus_destroy_dinfo(struct sbus_devinfo *);
@@ -217,16 +217,15 @@ static device_method_t sbus_methods[] = 
 	DEVMETHOD(bus_print_child,	sbus_print_child),
 	DEVMETHOD(bus_probe_nomatch,	sbus_probe_nomatch),
 	DEVMETHOD(bus_read_ivar,	sbus_read_ivar),
-	DEVMETHOD(bus_setup_intr, 	sbus_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_alloc_resource,	sbus_alloc_resource),
 	DEVMETHOD(bus_activate_resource,	sbus_activate_resource),
 	DEVMETHOD(bus_deactivate_resource,	sbus_deactivate_resource),
 	DEVMETHOD(bus_release_resource,	sbus_release_resource),
-	DEVMETHOD(bus_get_resource_list, sbus_get_resource_list),
+	DEVMETHOD(bus_setup_intr, 	sbus_setup_intr),
+	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
+	DEVMETHOD(bus_get_resource_list, sbus_get_resource_list),
 	DEVMETHOD(bus_get_dma_tag,	sbus_get_dma_tag),
-	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	sbus_get_devinfo),
@@ -236,7 +235,7 @@ static device_method_t sbus_methods[] = 
 	DEVMETHOD(ofw_bus_get_node,	ofw_bus_gen_get_node),
 	DEVMETHOD(ofw_bus_get_type,	ofw_bus_gen_get_type),
 
-	{ 0, 0 }
+	KOBJMETHOD_END
 };
 
 static driver_t sbus_driver = {
@@ -266,14 +265,14 @@ struct sbus_icarg {
 	bus_addr_t		sica_clr;
 };
 
-static const char *sbus_order_first[] = {
+static const char *const sbus_order_first[] = {
 	"auxio",
 	"dma",
 	NULL
 };
 
 static int
-sbus_inlist(const char *name, const char **list)
+sbus_inlist(const char *name, const char *const *list)
 {
 	int i;
 
@@ -313,32 +312,33 @@ sbus_attach(device_t dev)
 	bus_size_t size;
 	u_long vec;
 	phandle_t child, node;
-	int clock, i, intr, rid;
+	uint32_t prop;
+	int i, j;
 
 	sc = device_get_softc(dev);
 	sc->sc_dev = dev;
 	node = ofw_bus_get_node(dev);
 
-	rid = 0;
-	sc->sc_sysio_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+	i = 0;
+	sc->sc_sysio_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &i,
 	    RF_ACTIVE);
 	if (sc->sc_sysio_res == NULL)
 		panic("%s: cannot allocate device memory", __func__);
 
-	if (OF_getprop(node, "interrupts", &intr, sizeof(intr)) == -1)
+	if (OF_getprop(node, "interrupts", &prop, sizeof(prop)) == -1)
 		panic("%s: cannot get IGN", __func__);
-	sc->sc_ign = INTIGN(intr);
+	sc->sc_ign = INTIGN(prop);
 	sc->sc_cbustag = sbus_alloc_bustag(sc);
 
 	/*
 	 * Record clock frequency for synchronous SCSI.
 	 * IS THIS THE CORRECT DEFAULT??
 	 */
-	if (OF_getprop(node, "clock-frequency", &clock, sizeof(clock)) == -1)
-		clock = 25000000;
-	sc->sc_clockfreq = clock;
-	clock /= 1000;
-	device_printf(dev, "clock %d.%03d MHz\n", clock / 1000, clock % 1000);
+	if (OF_getprop(node, "clock-frequency", &prop, sizeof(prop)) == -1)
+		prop = 25000000;
+	sc->sc_clockfreq = prop;
+	prop /= 1000;
+	device_printf(dev, "clock %d.%03d MHz\n", prop / 1000, prop % 1000);
 
 	/*
 	 * Collect address translations from the OBP.
@@ -362,9 +362,9 @@ sbus_attach(device_t dev)
 		sc->sc_rd[i].rd_slot = range[i].cspace;
 		sc->sc_rd[i].rd_coffset = range[i].coffset;
 		sc->sc_rd[i].rd_cend = sc->sc_rd[i].rd_coffset + size;
-		rid = resource_list_add_next(rl, SYS_RES_MEMORY, phys,
+		j = resource_list_add_next(rl, SYS_RES_MEMORY, phys,
 		    phys + size - 1, size);
-		if ((res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid,
+		if ((res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &j,
 		    RF_ACTIVE)) == NULL)
 			panic("%s: cannot allocate decoded range", __func__);
 		sc->sc_rd[i].rd_bushandle = rman_get_bushandle(res);
@@ -381,11 +381,12 @@ sbus_attach(device_t dev)
 
 	/*
 	 * Get the SBus burst transfer size if burst transfers are supported.
-	 * XXX: is the default correct?
 	 */
-	if (OF_getprop(node, "burst-sizes", &sc->sc_burst,
+	if (OF_getprop(node, "up-burst-sizes", &sc->sc_burst,
 	    sizeof(sc->sc_burst)) == -1 || sc->sc_burst == 0)
-		sc->sc_burst = SBUS_BURST_DEF;
+		sc->sc_burst =
+		    (SBUS_BURST64_DEF << SBUS_BURST64_SHIFT) | SBUS_BURST_DEF;
+
 
 	/* initalise the IOMMU */
 
@@ -421,6 +422,7 @@ sbus_attach(device_t dev)
  	/*
 	 * Hunt through all the interrupt mapping regs and register our
 	 * interrupt controller for the corresponding interrupt vectors.
+	 * We do this early in order to be able to catch stray interrupts.
 	 */
 	for (i = 0; i <= SBUS_MAX_INO; i++) {
 		if (sbus_find_intrmap(sc, i, &intrmap, &intrclr) == 0)
@@ -439,31 +441,32 @@ sbus_attach(device_t dev)
 		    (u_long)intrmap, (u_long)SYSIO_READ8(sc, intrmap),
 		    (u_long)intrclr);
 #endif
-		if (intr_controller_register(INTMAP_VEC(sc->sc_ign, i),
-		    &sbus_ic, sica) != 0)
-			panic("%s: could not register interrupt controller "
-			    "for INO %d", __func__, i);
+		j = intr_controller_register(INTMAP_VEC(sc->sc_ign, i),
+		    &sbus_ic, sica);
+		if (j != 0)
+			device_printf(dev, "could not register interrupt "
+			    "controller for INO %d (%d)\n", i, j);
 	}
 
 	/* Enable the over-temperature and power-fail interrupts. */
-	rid = 4;
-	sc->sc_ot_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
+	i = 4;
+	sc->sc_ot_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &i,
 	    RF_ACTIVE);
 	if (sc->sc_ot_ires == NULL ||
 	    INTIGN(vec = rman_get_start(sc->sc_ot_ires)) != sc->sc_ign ||
 	    INTVEC(SYSIO_READ8(sc, SBR_THERM_INT_MAP)) != vec ||
 	    intr_vectors[vec].iv_ic != &sbus_ic ||
-	    bus_setup_intr(dev, sc->sc_ot_ires, INTR_TYPE_MISC,
+	    bus_setup_intr(dev, sc->sc_ot_ires, INTR_TYPE_MISC | INTR_FAST,
 	    NULL, sbus_overtemp, sc, &sc->sc_ot_ihand) != 0)
 		panic("%s: failed to set up temperature interrupt", __func__);
-	rid = 3;
-	sc->sc_pf_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
+	i = 3;
+	sc->sc_pf_ires = bus_alloc_resource_any(dev, SYS_RES_IRQ, &i,
 	    RF_ACTIVE);
 	if (sc->sc_pf_ires == NULL ||
 	    INTIGN(vec = rman_get_start(sc->sc_pf_ires)) != sc->sc_ign ||
 	    INTVEC(SYSIO_READ8(sc, SBR_POWER_INT_MAP)) != vec ||
 	    intr_vectors[vec].iv_ic != &sbus_ic ||
-	    bus_setup_intr(dev, sc->sc_pf_ires, INTR_TYPE_MISC,
+	    bus_setup_intr(dev, sc->sc_pf_ires, INTR_TYPE_MISC | INTR_FAST,
 	    NULL, sbus_pwrfail, sc, &sc->sc_pf_ihand) != 0)
 		panic("%s: failed to set up power fail interrupt", __func__);
 
@@ -849,8 +852,8 @@ sbus_activate_resource(device_t bus, dev
 	}
 	if (type == SYS_RES_MEMORY) {
 		/*
-		 * Need to memory-map the device space, as some drivers depend
-		 * on the virtual address being set and useable.
+		 * Need to memory-map the device space, as some drivers
+		 * depend on the virtual address being set and usable.
 		 */
 		error = sparc64_bus_mem_map(rman_get_bustag(r),
 		    rman_get_bushandle(r), rman_get_size(r), 0, 0, &p);

Modified: head/sys/sparc64/sbus/sbusvar.h
==============================================================================
--- head/sys/sparc64/sbus/sbusvar.h	Thu Mar 19 20:57:59 2009	(r190111)
+++ head/sys/sparc64/sbus/sbusvar.h	Thu Mar 19 21:02:36 2009	(r190112)
@@ -77,7 +77,7 @@
  */
 
 #ifndef _SPARC64_SBUS_SBUSVAR_H_
-#define _SPARC64_SBUS_SBUSVAR_H_
+#define	_SPARC64_SBUS_SBUSVAR_H_
 
 /*
  * Macros for probe order
@@ -88,18 +88,24 @@
 /*
  * PROM-reported DMA burst sizes for the SBus
  */
-#define SBUS_BURST_1	0x1
-#define SBUS_BURST_2	0x2
-#define SBUS_BURST_4	0x4
-#define SBUS_BURST_8	0x8
-#define SBUS_BURST_16	0x10
-#define SBUS_BURST_32	0x20
-#define SBUS_BURST_64	0x40
+#define	SBUS_BURST_1		(1 << 0)
+#define	SBUS_BURST_2		(1 << 1)
+#define	SBUS_BURST_4		(1 << 2)
+#define	SBUS_BURST_8		(1 << 3)
+#define	SBUS_BURST_16		(1 << 4)
+#define	SBUS_BURST_32		(1 << 5)
+#define	SBUS_BURST_64		(1 << 6)
+#define	SBUS_BURST_MASK		((1 << SBUS_BURST_SIZE) - 1)
+#define	SBUS_BURST_SIZE		16
+#define	SBUS_BURST64_MASK	(SBUS_BURST_MASK << SBUS_BURST64_SHIFT)
+#define	SBUS_BURST64_SHIFT	16
 
 /* Used if no burst sizes are specified for the bus. */
 #define	SBUS_BURST_DEF \
 	(SBUS_BURST_1 | SBUS_BURST_2 | SBUS_BURST_4 | SBUS_BURST_8 | 	\
-	SBUS_BURST_16)
+	SBUS_BURST_16 | SBUS_BURST_32 | SBUS_BURST_64)
+#define	SBUS_BURST64_DEF \
+	(SBUS_BURST_8 | SBUS_BURST_16 | SBUS_BURST_32 | SBUS_BURST_64)
 
 enum sbus_device_ivars {
 	SBUS_IVAR_BURSTSZ,
@@ -111,7 +117,7 @@ enum sbus_device_ivars {
 /*
  * Simplified accessors for sbus devices
  */
-#define SBUS_ACCESSOR(var, ivar, type) \
+#define	SBUS_ACCESSOR(var, ivar, type) \
 	__BUS_ACCESSOR(sbus, var, SBUS, ivar, type)
 
 SBUS_ACCESSOR(burstsz,		BURSTSZ,	int)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 21:12:44 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7799E106566C;
	Thu, 19 Mar 2009 21:12:44 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6526A8FC17;
	Thu, 19 Mar 2009 21:12:44 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JLCiGU076249;
	Thu, 19 Mar 2009 21:12:44 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JLCiGs076248;
	Thu, 19 Mar 2009 21:12:44 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192112.n2JLCiGs076248@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 21:12:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190113 - head/sys/sparc64/pci
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 21:12:45 -0000

Author: marius
Date: Thu Mar 19 21:12:44 2009
New Revision: 190113
URL: http://svn.freebsd.org/changeset/base/190113

Log:
  Bring the implementation of the pnpinfo string function more in
  line with the rest of this file.

Modified:
  head/sys/sparc64/pci/ofw_pcibus.c

Modified: head/sys/sparc64/pci/ofw_pcibus.c
==============================================================================
--- head/sys/sparc64/pci/ofw_pcibus.c	Thu Mar 19 21:02:36 2009	(r190112)
+++ head/sys/sparc64/pci/ofw_pcibus.c	Thu Mar 19 21:12:44 2009	(r190113)
@@ -68,8 +68,7 @@ static device_probe_t ofw_pcibus_probe;
 static device_attach_t ofw_pcibus_attach;
 static pci_assign_interrupt_t ofw_pcibus_assign_interrupt;
 static ofw_bus_get_devinfo_t ofw_pcibus_get_devinfo;
-static int ofw_pcibus_child_pnpinfo_str_method(device_t cbdev, device_t child, 
-    char *buf, size_t buflen);
+static bus_child_pnpinfo_str_t ofw_pcibus_pnpinfo_str;
 
 static device_method_t ofw_pcibus_methods[] = {
 	/* Device interface */
@@ -77,7 +76,7 @@ static device_method_t ofw_pcibus_method
 	DEVMETHOD(device_attach,	ofw_pcibus_attach),
 
 	/* Bus interface */
-	DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_child_pnpinfo_str_method),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_pcibus_pnpinfo_str),
 
 	/* PCI interface */
 	DEVMETHOD(pci_assign_interrupt, ofw_pcibus_assign_interrupt),
@@ -306,16 +305,15 @@ ofw_pcibus_get_devinfo(device_t bus, dev
 }
 
 static int
-ofw_pcibus_child_pnpinfo_str_method(device_t cbdev, device_t child, char *buf,
+ofw_pcibus_pnpinfo_str(device_t dev, device_t child, char *buf,
     size_t buflen)
 {
-	pci_child_pnpinfo_str_method(cbdev, child, buf, buflen);
 
+	pci_child_pnpinfo_str_method(dev, child, buf, buflen);
 	if (ofw_bus_get_node(child) != -1)  {
-		strlcat(buf, " ", buflen); /* Separate info */
-		ofw_bus_gen_child_pnpinfo_str(cbdev, child, buf, buflen);
+		strlcat(buf, " ", buflen); /* Separate info. */
+		ofw_bus_gen_child_pnpinfo_str(dev, child, buf, buflen);
 	}
 
 	return (0);
 }
-

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 21:14:45 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9B3C01065686;
	Thu, 19 Mar 2009 21:14:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 884E88FC08;
	Thu, 19 Mar 2009 21:14:45 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JLEjFD076327;
	Thu, 19 Mar 2009 21:14:45 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JLEjE1076322;
	Thu, 19 Mar 2009 21:14:45 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192114.n2JLEjE1076322@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 21:14:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190114 - in head/sys/sparc64: central fhc sbus sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 21:14:46 -0000

Author: marius
Date: Thu Mar 19 21:14:45 2009
New Revision: 190114
URL: http://svn.freebsd.org/changeset/base/190114

Log:
  Hook up the generic OFW pnpinfo string method.

Modified:
  head/sys/sparc64/central/central.c
  head/sys/sparc64/fhc/fhc.c
  head/sys/sparc64/sbus/dma_sbus.c
  head/sys/sparc64/sbus/sbus.c
  head/sys/sparc64/sparc64/upa.c

Modified: head/sys/sparc64/central/central.c
==============================================================================
--- head/sys/sparc64/central/central.c	Thu Mar 19 21:12:44 2009	(r190113)
+++ head/sys/sparc64/central/central.c	Thu Mar 19 21:14:45 2009	(r190114)
@@ -84,6 +84,7 @@ static device_method_t central_methods[]
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, central_get_resource_list),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	central_get_devinfo),

Modified: head/sys/sparc64/fhc/fhc.c
==============================================================================
--- head/sys/sparc64/fhc/fhc.c	Thu Mar 19 21:12:44 2009	(r190113)
+++ head/sys/sparc64/fhc/fhc.c	Thu Mar 19 21:14:45 2009	(r190114)
@@ -98,6 +98,7 @@ static device_method_t fhc_methods[] = {
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, fhc_get_resource_list),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	fhc_get_devinfo),

Modified: head/sys/sparc64/sbus/dma_sbus.c
==============================================================================
--- head/sys/sparc64/sbus/dma_sbus.c	Thu Mar 19 21:12:44 2009	(r190113)
+++ head/sys/sparc64/sbus/dma_sbus.c	Thu Mar 19 21:14:45 2009	(r190114)
@@ -130,6 +130,7 @@ static device_method_t dma_methods[] = {
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, dma_get_resource_list),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	dma_get_devinfo),

Modified: head/sys/sparc64/sbus/sbus.c
==============================================================================
--- head/sys/sparc64/sbus/sbus.c	Thu Mar 19 21:12:44 2009	(r190113)
+++ head/sys/sparc64/sbus/sbus.c	Thu Mar 19 21:14:45 2009	(r190114)
@@ -225,6 +225,7 @@ static device_method_t sbus_methods[] = 
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, sbus_get_resource_list),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 	DEVMETHOD(bus_get_dma_tag,	sbus_get_dma_tag),
 
 	/* ofw_bus interface */

Modified: head/sys/sparc64/sparc64/upa.c
==============================================================================
--- head/sys/sparc64/sparc64/upa.c	Thu Mar 19 21:12:44 2009	(r190113)
+++ head/sys/sparc64/sparc64/upa.c	Thu Mar 19 21:14:45 2009	(r190114)
@@ -135,6 +135,7 @@ static device_method_t upa_methods[] = {
 	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_resource,	bus_generic_rl_get_resource),
 	DEVMETHOD(bus_get_resource_list, upa_get_resource_list),
+	DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str),
 
 	/* ofw_bus interface */
 	DEVMETHOD(ofw_bus_get_devinfo,	upa_get_devinfo),

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 21:40:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9C74E1065673;
	Thu, 19 Mar 2009 21:40:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 703178FC12;
	Thu, 19 Mar 2009 21:40:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JLeCjl077229;
	Thu, 19 Mar 2009 21:40:12 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JLeCKE077228;
	Thu, 19 Mar 2009 21:40:12 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200903192140.n2JLeCKE077228@svn.freebsd.org>
From: John Baldwin 
Date: Thu, 19 Mar 2009 21:40:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190115 - stable/7/sys/dev/pcn
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 21:40:13 -0000

Author: jhb
Date: Thu Mar 19 21:40:12 2009
New Revision: 190115
URL: http://svn.freebsd.org/changeset/base/190115

Log:
  Remove empty mergeinfo.

Modified:
  stable/7/sys/dev/pcn/if_pcn.c   (props changed)
  stable/7/sys/dev/pcn/if_pcnreg.h   (props changed)

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 22:01:20 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F1CC11065672;
	Thu, 19 Mar 2009 22:01:19 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DEE8F8FC21;
	Thu, 19 Mar 2009 22:01:19 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JM1JF6077804;
	Thu, 19 Mar 2009 22:01:19 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JM1JRX077803;
	Thu, 19 Mar 2009 22:01:19 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200903192201.n2JM1JRX077803@svn.freebsd.org>
From: Christian Brueffer 
Date: Thu, 19 Mar 2009 22:01:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190116 - in stable/7/sys: . contrib/pf dev/cxgb dev/pcn
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 22:01:20 -0000

Author: brueffer
Date: Thu Mar 19 22:01:19 2009
New Revision: 190116
URL: http://svn.freebsd.org/changeset/base/190116

Log:
  MFC: r186715
  
  Call pcn_start_locked() instead of pcn_start() where the softc lock is
  already held.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/pcn/if_pcn.c

Modified: stable/7/sys/dev/pcn/if_pcn.c
==============================================================================
--- stable/7/sys/dev/pcn/if_pcn.c	Thu Mar 19 21:40:12 2009	(r190115)
+++ stable/7/sys/dev/pcn/if_pcn.c	Thu Mar 19 22:01:19 2009	(r190116)
@@ -1446,7 +1446,7 @@ pcn_watchdog(ifp)
 	pcn_init_locked(sc);
 
 	if (ifp->if_snd.ifq_head != NULL)
-		pcn_start(ifp);
+		pcn_start_locked(ifp);
 
 	PCN_UNLOCK(sc);
 

From owner-svn-src-all@FreeBSD.ORG  Thu Mar 19 22:34:56 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 57B53106566B;
	Thu, 19 Mar 2009 22:34:56 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 45E818FC13;
	Thu, 19 Mar 2009 22:34:56 +0000 (UTC)
	(envelope-from marius@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2JMYu5O078586;
	Thu, 19 Mar 2009 22:34:56 GMT (envelope-from marius@svn.freebsd.org)
Received: (from marius@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2JMYu2g078584;
	Thu, 19 Mar 2009 22:34:56 GMT (envelope-from marius@svn.freebsd.org)
Message-Id: <200903192234.n2JMYu2g078584@svn.freebsd.org>
From: Marius Strobl 
Date: Thu, 19 Mar 2009 22:34:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190117 - head/sys/dev/dc
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Thu, 19 Mar 2009 22:34:56 -0000

Author: marius
Date: Thu Mar 19 22:34:55 2009
New Revision: 190117
URL: http://svn.freebsd.org/changeset/base/190117

Log:
  - Set MIIF_NOLOOP and don't add IFM_LOOP as loopback apparently isn't
    supported with these pseudo-PHYs. The MIIF_NOLOOP flag currently triggers
    nothing but hopefully will be respected by mii_phy_setmedia() later on.
  - Don't add IFM_NONE as isolation isn't supported by these pseudo-PHYs.
  - Use mii_phy_add_media() instead of mii_add_media() so the latter can
    be eventually retired.

Modified:
  head/sys/dev/dc/dcphy.c
  head/sys/dev/dc/pnphy.c

Modified: head/sys/dev/dc/dcphy.c
==============================================================================
--- head/sys/dev/dc/dcphy.c	Thu Mar 19 22:01:19 2009	(r190116)
+++ head/sys/dev/dc/dcphy.c	Thu Mar 19 22:34:55 2009	(r190117)
@@ -154,13 +154,12 @@ dcphy_attach(device_t dev)
 	sc->mii_service = dcphy_service;
 	sc->mii_pdata = mii;
 
-	sc->mii_flags |= MIIF_NOISOLATE;
-	mii->mii_instance++;
-
-#define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
+	/*
+	 * Apparently, we can neither isolate nor do loopback.
+	 */
+	sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP;
 
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
-	    BMCR_ISO);
+	mii->mii_instance++;
 
 	/*dcphy_reset(sc);*/
 	dc_sc = mii->mii_ifp->if_softc;
@@ -186,9 +185,8 @@ dcphy_attach(device_t dev)
 
 	sc->mii_capabilities &= ma->mii_capmask;
 	device_printf(dev, " ");
-	mii_add_media(sc);
+	mii_phy_add_media(sc);
 	printf("\n");
-#undef ADD
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
 	return (0);

Modified: head/sys/dev/dc/pnphy.c
==============================================================================
--- head/sys/dev/dc/pnphy.c	Thu Mar 19 22:01:19 2009	(r190116)
+++ head/sys/dev/dc/pnphy.c	Thu Mar 19 22:34:55 2009	(r190117)
@@ -137,24 +137,19 @@ pnphy_attach(device_t dev)
 	sc->mii_service = pnphy_service;
 	sc->mii_pdata = mii;
 
-	sc->mii_flags |= MIIF_NOISOLATE;
-	mii->mii_instance++;
+	/*
+	 * Apparently, we can neither isolate nor do loopback.
+	 */
+	sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP;
 
-#define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)
+	mii->mii_instance++;
 
 	sc->mii_capabilities =
 	    BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX;
 	sc->mii_capabilities &= ma->mii_capmask;
 	device_printf(dev, " ");
-	mii_add_media(sc);
+	mii_phy_add_media(sc);
 	printf("\n");
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_NONE, 0, sc->mii_inst),
-	    BMCR_ISO);
-
-	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst),
-	    BMCR_LOOP|BMCR_S100);
-
-#undef ADD
 
 	MIIBUS_MEDIAINIT(sc->mii_dev);
 	return (0);

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 00:06:53 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D90271065675;
	Fri, 20 Mar 2009 00:06:53 +0000 (UTC) (envelope-from xcllnt@mac.com)
Received: from asmtpout021.mac.com (asmtpout021.mac.com [17.148.16.96])
	by mx1.freebsd.org (Postfix) with ESMTP id C2D6A8FC14;
	Fri, 20 Mar 2009 00:06:53 +0000 (UTC) (envelope-from xcllnt@mac.com)
MIME-version: 1.0
Content-transfer-encoding: 7BIT
Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Received: from andyhong-t61.jnpr.net (natint3.juniper.net [66.129.224.36])
	by asmtp021.mac.com
	(Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008;
	32bit)) with ESMTPSA id <0KGS004MD2ZGB560@asmtp021.mac.com>; Thu,
	19 Mar 2009 17:06:53 -0700 (PDT)
Message-id: <31910B64-3437-4C1D-8234-FC6A1C3D4F8B@mac.com>
From: Marcel Moolenaar 
To: Marius Strobl 
In-reply-to: <200903192040.n2JKeoYY075200@svn.freebsd.org>
Date: Thu, 19 Mar 2009 17:06:52 -0700
References: <200903192040.n2JKeoYY075200@svn.freebsd.org>
X-Mailer: Apple Mail (2.930.3)
Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org,
	src-committers@freebsd.org
Subject: Re: svn commit: r190105 - head/sys/sparc64/sparc64
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 00:06:54 -0000


On Mar 19, 2009, at 1:40 PM, Marius Strobl wrote:

> Author: marius
> Date: Thu Mar 19 20:40:49 2009
> New Revision: 190105
> URL: http://svn.freebsd.org/changeset/base/190105
>
> Log:
>  There's no need to wrap kdb_enter() in #ifdef KDB as it's always  
> available.

That's not quite how it works.

option KDB is used to build the kernel with debugging features
that could impact performance, security and/or functionality.
In this case it's not so much a matter of whether kdb_enter()
is defined or not, but rather whether the kernel should respect
-d.

-- 
Marcel Moolenaar
xcllnt@mac.com




From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 00:34:51 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 50EF41065675;
	Fri, 20 Mar 2009 00:34:51 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3CA088FC14;
	Fri, 20 Mar 2009 00:34:51 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K0YpFe080886;
	Fri, 20 Mar 2009 00:34:51 GMT (envelope-from csjp@svn.freebsd.org)
Received: (from csjp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K0Ypq3080883;
	Fri, 20 Mar 2009 00:34:51 GMT (envelope-from csjp@svn.freebsd.org)
Message-Id: <200903200034.n2K0Ypq3080883@svn.freebsd.org>
From: "Christian S.J. Peron" 
Date: Fri, 20 Mar 2009 00:34:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190118 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb kern security/audit sys
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 00:34:52 -0000

Author: csjp
Date: Fri Mar 20 00:34:50 2009
New Revision: 190118
URL: http://svn.freebsd.org/changeset/base/190118

Log:
  MFC r181060
  
  - Add vn_fullpath_global()
  - Fix issues in auditing pathnames within chroot/jail envs

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/vfs_cache.c
  stable/7/sys/security/audit/audit_bsm_klib.c
  stable/7/sys/sys/vnode.h

Modified: stable/7/sys/kern/vfs_cache.c
==============================================================================
--- stable/7/sys/kern/vfs_cache.c	Thu Mar 19 22:34:55 2009	(r190117)
+++ stable/7/sys/kern/vfs_cache.c	Fri Mar 20 00:34:50 2009	(r190118)
@@ -790,6 +790,32 @@ vn_fullpath(struct thread *td, struct vn
 }
 
 /*
+ * This function is similar to vn_fullpath, but it attempts to lookup the
+ * pathname relative to the global root mount point.  This is required for the
+ * auditing sub-system, as audited pathnames must be absolute, relative to the
+ * global root mount point.
+ */
+int
+vn_fullpath_global(struct thread *td, struct vnode *vn,
+    char **retbuf, char **freebuf)
+{
+	char *buf;
+	int error;
+
+	if (disablefullpath)
+		return (ENODEV);
+	if (vn == NULL)
+		return (EINVAL);
+	buf = malloc(MAXPATHLEN, M_TEMP, M_WAITOK);
+	error = vn_fullpath1(td, vn, rootvnode, buf, retbuf, MAXPATHLEN);
+	if (!error)
+		*freebuf = buf;
+	else
+		free(buf, M_TEMP);
+	return (error);
+}
+
+/*
  * The magic behind kern___getcwd() and vn_fullpath().
  */
 static int

Modified: stable/7/sys/security/audit/audit_bsm_klib.c
==============================================================================
--- stable/7/sys/security/audit/audit_bsm_klib.c	Thu Mar 19 22:34:55 2009	(r190117)
+++ stable/7/sys/security/audit/audit_bsm_klib.c	Fri Mar 20 00:34:50 2009	(r190118)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -483,73 +484,110 @@ auditon_command_event(int cmd)
  * directory is NULL, we could use 'rootvnode' to obtain the root directory,
  * but this results in a volfs name written to the audit log. So we will
  * leave the filename starting with '/' in the audit log in this case.
- *
- * XXXRW: Since we combine two paths here, ideally a buffer of size
- * MAXPATHLEN * 2 would be passed in.
  */
 void
 audit_canon_path(struct thread *td, char *path, char *cpath)
 {
-	char *bufp;
-	char *retbuf, *freebuf;
-	struct vnode *vnp;
+	struct vnode *cvnp, *rvnp;
+	char *rbuf, *fbuf, *copy;
 	struct filedesc *fdp;
-	int cisr, error, vfslocked;
+	struct sbuf sbf;
+	int error, cwir, locked;
 
-	WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL,
-	    "audit_canon_path() at %s:%d", __FILE__, __LINE__);
+	WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "%s: at %s:%d",
+	    __func__,  __FILE__, __LINE__);
 
+	copy = path;
+	rvnp = cvnp = NULL;
 	fdp = td->td_proc->p_fd;
-	bufp = path;
-	cisr = 0;
 	FILEDESC_SLOCK(fdp);
-	if (*(path) == '/') {
-		while (*(bufp) == '/')
-			bufp++;			/* Skip leading '/'s. */
-		/*
-		 * If no process root, or it is the same as the system root,
-		 * audit the path as passed in with a single '/'.
-		 */
-		if ((fdp->fd_rdir == NULL) ||
-		    (fdp->fd_rdir == rootvnode)) {
-			vnp = NULL;
-			bufp--;			/* Restore one '/'. */
-		} else {
-			vnp = fdp->fd_rdir;	/* Use process root. */
-			vref(vnp);
-		}
-	} else {
-		vnp = fdp->fd_cdir;	/* Prepend the current dir. */
-		cisr = (fdp->fd_rdir == fdp->fd_cdir);
-		vref(vnp);
-		bufp = path;
+	/*
+	 * Make sure that we handle the chroot(2) case.  If there is an
+	 * alternate root directory, prepend it to the audited pathname.
+	 */
+	if (fdp->fd_rdir != NULL && fdp->fd_rdir != rootvnode) {
+		rvnp = fdp->fd_rdir;
+		vhold(rvnp);
+	}
+	/*
+	 * If the supplied path is relative, make sure we capture the current
+	 * working directory so we can prepend it to the supplied relative
+	 * path.
+	 */
+	if (*path != '/') {
+		cvnp = fdp->fd_cdir;
+		vhold(cvnp);
 	}
+	cwir = (fdp->fd_rdir == fdp->fd_cdir);
 	FILEDESC_SUNLOCK(fdp);
-	if (vnp != NULL) {
+	/*
+	 * NB: We require that the supplied array be at least MAXPATHLEN bytes
+	 * long.  If this is not the case, then we can run into serious trouble.
+	 */
+	(void) sbuf_new(&sbf, cpath, MAXPATHLEN, SBUF_FIXEDLEN);
+	/*
+	 * Strip leading forward slashes.
+	 */
+	while (*copy == '/')
+		copy++;
+	/*
+	 * Make sure we handle chroot(2) and prepend the global path to these
+	 * environments.
+	 *
+	 * NB: vn_fullpath(9) on FreeBSD is less reliable than vn_getpath(9)
+	 * on Darwin.  As a result, this may need some additional attention
+	 * in the future.
+	 */
+	if (rvnp != NULL) {
 		/*
-		 * XXX: vn_fullpath() on FreeBSD is "less reliable" than
-		 * vn_getpath() on Darwin, so this will need more attention
-		 * in the future.  Also, the question and string bounding
-		 * here seems a bit questionable and will also require
-		 * attention.
+		 * Although unlikely, it is possible for filesystems to define
+		 * their own VOP_LOCK, so strictly speaking, we need to
+		 * conditionally pickup Giant around calls to vn_lock(9)
 		 */
-		vfslocked = VFS_LOCK_GIANT(vnp->v_mount);
-		vn_lock(vnp, LK_EXCLUSIVE | LK_RETRY, td);
-		error = vn_fullpath(td, vnp, &retbuf, &freebuf);
-		if (error == 0) {
-			/* Copy and free buffer allocated by vn_fullpath().
-			 * If the current working directory was the same as
-			 * the root directory, and the path was a relative
-			 * pathname, do not separate the two components with
-			 * the '/' character.
-			 */
-			snprintf(cpath, MAXPATHLEN, "%s%s%s", retbuf,
-			    cisr ? "" : "/", bufp);
-			free(freebuf, M_TEMP);
-		} else
+		locked = VFS_LOCK_GIANT(rvnp->v_mount);
+		vn_lock(rvnp, LK_EXCLUSIVE | LK_RETRY, td);
+		vdrop(rvnp);
+		error = vn_fullpath_global(td, rvnp, &rbuf, &fbuf);
+		VOP_UNLOCK(rvnp, 0, td);
+		VFS_UNLOCK_GIANT(locked);
+		if (error) {
 			cpath[0] = '\0';
-		vput(vnp);
-		VFS_UNLOCK_GIANT(vfslocked);
-	} else
-		strlcpy(cpath, bufp, MAXPATHLEN);
+			if (cvnp != NULL)
+				vdrop(cvnp);
+			return;
+		}
+		(void) sbuf_cat(&sbf, rbuf);
+		free(fbuf, M_TEMP);
+	}
+	if (cvnp != NULL) {
+		locked = VFS_LOCK_GIANT(cvnp->v_mount);
+		vn_lock(cvnp, LK_EXCLUSIVE | LK_RETRY, td);
+		vdrop(cvnp);
+		error = vn_fullpath(td, cvnp, &rbuf, &fbuf);
+		VOP_UNLOCK(cvnp, 0, td);
+		VFS_UNLOCK_GIANT(locked);
+		if (error) {
+			cpath[0] = '\0';
+			return;
+		}
+		(void) sbuf_cat(&sbf, rbuf);
+		free(fbuf, M_TEMP);
+	}
+	if (cwir == 0 || (cwir != 0 && cvnp == NULL))
+		(void) sbuf_cat(&sbf, "/");
+	/*
+	 * Now that we have processed any alternate root and relative path
+	 * names, add the supplied pathname.
+	 */
+        (void) sbuf_cat(&sbf, copy);
+	/*
+	 * One or more of the previous sbuf operations could have resulted in
+	 * the supplied buffer being overflowed.  Check to see if this is the
+	 * case.
+	 */
+	if (sbuf_overflowed(&sbf) != 0) {
+		cpath[0] = '\0';
+		return;
+	}
+	sbuf_finish(&sbf);
 }

Modified: stable/7/sys/sys/vnode.h
==============================================================================
--- stable/7/sys/sys/vnode.h	Thu Mar 19 22:34:55 2009	(r190117)
+++ stable/7/sys/sys/vnode.h	Fri Mar 20 00:34:50 2009	(r190118)
@@ -581,6 +581,8 @@ int	speedup_syncer(void);
 	vn_fullpath(FIRST_THREAD_IN_PROC(p), (p)->p_textvp, rb, rfb)
 int	vn_fullpath(struct thread *td, struct vnode *vn,
 	    char **retbuf, char **freebuf);
+int	vn_fullpath_global(struct thread *td, struct vnode *vn,
+	    char **retbuf, char **freebuf);
 int	vaccess(enum vtype type, mode_t file_mode, uid_t file_uid,
 	    gid_t file_gid, mode_t acc_mode, struct ucred *cred,
 	    int *privused);

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 00:38:16 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2B2D0106564A;
	Fri, 20 Mar 2009 00:38:15 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 1829C8FC15;
	Fri, 20 Mar 2009 00:38:15 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K0cEJx081014;
	Fri, 20 Mar 2009 00:38:14 GMT (envelope-from csjp@svn.freebsd.org)
Received: (from csjp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K0cENJ081013;
	Fri, 20 Mar 2009 00:38:14 GMT (envelope-from csjp@svn.freebsd.org)
Message-Id: <200903200038.n2K0cENJ081013@svn.freebsd.org>
From: "Christian S.J. Peron" 
Date: Fri, 20 Mar 2009 00:38:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190119 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb security/audit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 00:38:17 -0000

Author: csjp
Date: Fri Mar 20 00:38:14 2009
New Revision: 190119
URL: http://svn.freebsd.org/changeset/base/190119

Log:
  MFC r182090
  
  - use sbuf_putc instead of sbuf_cat

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/security/audit/audit_bsm_klib.c

Modified: stable/7/sys/security/audit/audit_bsm_klib.c
==============================================================================
--- stable/7/sys/security/audit/audit_bsm_klib.c	Fri Mar 20 00:34:50 2009	(r190118)
+++ stable/7/sys/security/audit/audit_bsm_klib.c	Fri Mar 20 00:38:14 2009	(r190119)
@@ -574,7 +574,7 @@ audit_canon_path(struct thread *td, char
 		free(fbuf, M_TEMP);
 	}
 	if (cwir == 0 || (cwir != 0 && cvnp == NULL))
-		(void) sbuf_cat(&sbf, "/");
+		(void) sbuf_putc(&sbf, '/');
 	/*
 	 * Now that we have processed any alternate root and relative path
 	 * names, add the supplied pathname.

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 00:55:38 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E9427106566C;
	Fri, 20 Mar 2009 00:55:38 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BB8F78FC1D;
	Fri, 20 Mar 2009 00:55:38 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K0tc0f081443;
	Fri, 20 Mar 2009 00:55:38 GMT (envelope-from csjp@svn.freebsd.org)
Received: (from csjp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K0tcb2081442;
	Fri, 20 Mar 2009 00:55:38 GMT (envelope-from csjp@svn.freebsd.org)
Message-Id: <200903200055.n2K0tcb2081442@svn.freebsd.org>
From: "Christian S.J. Peron" 
Date: Fri, 20 Mar 2009 00:55:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190120 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb security/audit
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 00:55:39 -0000

Author: csjp
Date: Fri Mar 20 00:55:38 2009
New Revision: 190120
URL: http://svn.freebsd.org/changeset/base/190120

Log:
  MFC r184660
  
  - Dont hold Giant around vn_fullpath and vn_fullpath_global

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/security/audit/audit_bsm_klib.c

Modified: stable/7/sys/security/audit/audit_bsm_klib.c
==============================================================================
--- stable/7/sys/security/audit/audit_bsm_klib.c	Fri Mar 20 00:38:14 2009	(r190119)
+++ stable/7/sys/security/audit/audit_bsm_klib.c	Fri Mar 20 00:55:38 2009	(r190120)
@@ -492,7 +492,7 @@ audit_canon_path(struct thread *td, char
 	char *rbuf, *fbuf, *copy;
 	struct filedesc *fdp;
 	struct sbuf sbf;
-	int error, cwir, locked;
+	int error, cwir;
 
 	WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "%s: at %s:%d",
 	    __func__,  __FILE__, __LINE__);
@@ -539,17 +539,8 @@ audit_canon_path(struct thread *td, char
 	 * in the future.
 	 */
 	if (rvnp != NULL) {
-		/*
-		 * Although unlikely, it is possible for filesystems to define
-		 * their own VOP_LOCK, so strictly speaking, we need to
-		 * conditionally pickup Giant around calls to vn_lock(9)
-		 */
-		locked = VFS_LOCK_GIANT(rvnp->v_mount);
-		vn_lock(rvnp, LK_EXCLUSIVE | LK_RETRY, td);
-		vdrop(rvnp);
 		error = vn_fullpath_global(td, rvnp, &rbuf, &fbuf);
-		VOP_UNLOCK(rvnp, 0, td);
-		VFS_UNLOCK_GIANT(locked);
+		vdrop(rvnp);
 		if (error) {
 			cpath[0] = '\0';
 			if (cvnp != NULL)
@@ -560,12 +551,8 @@ audit_canon_path(struct thread *td, char
 		free(fbuf, M_TEMP);
 	}
 	if (cvnp != NULL) {
-		locked = VFS_LOCK_GIANT(cvnp->v_mount);
-		vn_lock(cvnp, LK_EXCLUSIVE | LK_RETRY, td);
-		vdrop(cvnp);
 		error = vn_fullpath(td, cvnp, &rbuf, &fbuf);
-		VOP_UNLOCK(cvnp, 0, td);
-		VFS_UNLOCK_GIANT(locked);
+		vdrop(cvnp);
 		if (error) {
 			cpath[0] = '\0';
 			return;

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 01:15:50 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E0033106564A;
	Fri, 20 Mar 2009 01:15:50 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CD3328FC19;
	Fri, 20 Mar 2009 01:15:50 +0000 (UTC)
	(envelope-from csjp@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K1FopD081909;
	Fri, 20 Mar 2009 01:15:50 GMT (envelope-from csjp@svn.freebsd.org)
Received: (from csjp@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K1ForV081908;
	Fri, 20 Mar 2009 01:15:50 GMT (envelope-from csjp@svn.freebsd.org)
Message-Id: <200903200115.n2K1ForV081908@svn.freebsd.org>
From: "Christian S.J. Peron" 
Date: Fri, 20 Mar 2009 01:15:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190121 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 01:15:51 -0000

Author: csjp
Date: Fri Mar 20 01:15:50 2009
New Revision: 190121
URL: http://svn.freebsd.org/changeset/base/190121

Log:
  MFC r182120
  
  - Avoid printing warning message for vnodes that have dead fileops
    when MAC is enabled

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/vfs_subr.c

Modified: stable/7/sys/kern/vfs_subr.c
==============================================================================
--- stable/7/sys/kern/vfs_subr.c	Fri Mar 20 00:55:38 2009	(r190120)
+++ stable/7/sys/kern/vfs_subr.c	Fri Mar 20 01:15:50 2009	(r190121)
@@ -949,7 +949,7 @@ alloc:
 	mac_init_vnode(vp);
 	if (mp != NULL && (mp->mnt_flag & MNT_MULTILABEL) == 0)
 		mac_associate_vnode_singlelabel(mp, vp);
-	else if (mp == NULL)
+	else if (mp == NULL && vops != &dead_vnodeops)
 		printf("NULL mp in getnewvnode()\n");
 #endif
 	if (mp != NULL) {

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 03:10:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BC8B910656E8;
	Fri, 20 Mar 2009 03:10:12 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id A97A98FC20;
	Fri, 20 Mar 2009 03:10:12 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K3ACf8084324;
	Fri, 20 Mar 2009 03:10:12 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K3ACos084323;
	Fri, 20 Mar 2009 03:10:12 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903200310.n2K3ACos084323@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Fri, 20 Mar 2009 03:10:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190122 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb pc98/cbus
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 03:10:13 -0000

Author: nyan
Date: Fri Mar 20 03:10:12 2009
New Revision: 190122
URL: http://svn.freebsd.org/changeset/base/190122

Log:
  MFC: r189445
  
    Allow syscons to work without any hints.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/pc98/cbus/syscons_cbus.c

Modified: stable/7/sys/pc98/cbus/syscons_cbus.c
==============================================================================
--- stable/7/sys/pc98/cbus/syscons_cbus.c	Fri Mar 20 01:15:50 2009	(r190121)
+++ stable/7/sys/pc98/cbus/syscons_cbus.c	Fri Mar 20 03:10:12 2009	(r190122)
@@ -205,8 +205,10 @@ sc_get_cons_priority(int *unit, int *fla
 			*flags = f;
 		}
 	}
-	if (*unit < 0)
-		return CN_DEAD;
+	if (*unit < 0) {
+		*unit = 0;
+		*flags = 0;
+	}
 	return CN_INTERNAL;
 }
 

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 04:48:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 44E571065690;
	Fri, 20 Mar 2009 04:48:28 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 32A8A8FC0C;
	Fri, 20 Mar 2009 04:48:28 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K4mSfs086166;
	Fri, 20 Mar 2009 04:48:28 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K4mSYO086165;
	Fri, 20 Mar 2009 04:48:28 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200448.n2K4mSYO086165@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 04:48:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190123 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 04:48:29 -0000

Author: rnoland
Date: Fri Mar 20 04:48:27 2009
New Revision: 190123
URL: http://svn.freebsd.org/changeset/base/190123

Log:
  Adjust the flags to bus_dmamem around here too.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/ati_pcigart.c

Modified: head/sys/dev/drm/ati_pcigart.c
==============================================================================
--- head/sys/dev/drm/ati_pcigart.c	Fri Mar 20 03:10:12 2009	(r190122)
+++ head/sys/dev/drm/ati_pcigart.c	Fri Mar 20 04:48:27 2009	(r190123)
@@ -75,18 +75,15 @@ drm_ati_alloc_pcigart_table(struct drm_d
 	    NULL, NULL, /* filtfunc, filtfuncargs */
 	    gart_info->table_size, 1, /* maxsize, nsegs */
 	    gart_info->table_size, /* maxsegsize */
-	    BUS_DMA_ALLOCNOW, NULL, NULL, /* flags, lockfunc, lockfuncargs */
+	    0, NULL, NULL, /* flags, lockfunc, lockfuncargs */
 	    &dmah->tag);
 	if (ret != 0) {
 		free(dmah, DRM_MEM_DMA);
 		return ENOMEM;
 	}
 
-	flags = BUS_DMA_NOWAIT | BUS_DMA_ZERO;
-	if (gart_info->gart_reg_if == DRM_ATI_GART_IGP)
-	    flags |= BUS_DMA_NOCACHE;
-	
-	ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, flags, &dmah->map);
+	ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr,
+	    BUS_DMA_WAITOK | BUS_DMA_ZERO, &dmah->map);
 	if (ret != 0) {
 		bus_dma_tag_destroy(dmah->tag);
 		free(dmah, DRM_MEM_DMA);
@@ -94,8 +91,12 @@ drm_ati_alloc_pcigart_table(struct drm_d
 	}
 	DRM_LOCK();
 
+	flags = BUS_DMA_NOWAIT;
+	if (gart_info->gart_reg_if == DRM_ATI_GART_IGP)
+	    flags |= BUS_DMA_NOCACHE;
+	
 	ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr,
-	    gart_info->table_size, drm_ati_alloc_pcigart_table_cb, dmah, 0);
+	    gart_info->table_size, drm_ati_alloc_pcigart_table_cb, dmah, flags);
 	if (ret != 0) {
 		bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map);
 		bus_dma_tag_destroy(dmah->tag);

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 04:49:49 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 50D561065670;
	Fri, 20 Mar 2009 04:49:49 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3F13F8FC0A;
	Fri, 20 Mar 2009 04:49:49 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K4nn08086229;
	Fri, 20 Mar 2009 04:49:49 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K4nnOt086228;
	Fri, 20 Mar 2009 04:49:49 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200449.n2K4nnOt086228@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 04:49:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190124 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 04:49:49 -0000

Author: rnoland
Date: Fri Mar 20 04:49:48 2009
New Revision: 190124
URL: http://svn.freebsd.org/changeset/base/190124

Log:
  Add a couple of radeon pci ids.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/drm_pciids.h

Modified: head/sys/dev/drm/drm_pciids.h
==============================================================================
--- head/sys/dev/drm/drm_pciids.h	Fri Mar 20 04:48:27 2009	(r190123)
+++ head/sys/dev/drm/drm_pciids.h	Fri Mar 20 04:49:48 2009	(r190124)
@@ -320,6 +320,8 @@
 	{0x1002, 0x9612, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon HD 3200 Graphics"}, \
 	{0x1002, 0x9613, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3100 Graphics"}, \
 	{0x1002, 0x9614, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3300 Graphics"}, \
+	{0x1002, 0x9615, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3200 Graphics"}, \
+	{0x1002, 0x9616, CHIP_RS780|RADEON_NEW_MEMMAP|RADEON_IS_IGP, "ATI Radeon 3000 Graphics"}, \
 	{0x1002, 0x9440, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4800 Series"}, \
 	{0x1002, 0x9441, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4870 X2"}, \
 	{0x1002, 0x9442, CHIP_RV770|RADEON_NEW_MEMMAP, "ATI Radeon 4800 Series"}, \

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 04:53:12 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F0678106564A;
	Fri, 20 Mar 2009 04:53:12 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DECE98FC18;
	Fri, 20 Mar 2009 04:53:12 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K4rCQl086319;
	Fri, 20 Mar 2009 04:53:12 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K4rCdY086318;
	Fri, 20 Mar 2009 04:53:12 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200453.n2K4rCdY086318@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 04:53:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190125 - head/sys/dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 04:53:13 -0000

Author: rnoland
Date: Fri Mar 20 04:53:12 2009
New Revision: 190125
URL: http://svn.freebsd.org/changeset/base/190125

Log:
  Only issue the wakeup and store the counter if vblank is enabled on
  the pipe.
  
  MFC after:	3 days

Modified:
  head/sys/dev/drm/drm_irq.c

Modified: head/sys/dev/drm/drm_irq.c
==============================================================================
--- head/sys/dev/drm/drm_irq.c	Fri Mar 20 04:49:48 2009	(r190124)
+++ head/sys/dev/drm/drm_irq.c	Fri Mar 20 04:53:12 2009	(r190125)
@@ -210,10 +210,12 @@ int drm_irq_uninstall(struct drm_device 
 	*/
 	DRM_SPINLOCK(&dev->vbl_lock);
 	for (crtc = 0; crtc < dev->num_crtcs; crtc++) {
-		DRM_WAKEUP(&dev->vblank[crtc].queue);
-		dev->vblank[crtc].enabled = 0;
-		dev->vblank[crtc].last =
-		    dev->driver->get_vblank_counter(dev, crtc);
+		if (dev->vblank[crtc].enabled) {
+			DRM_WAKEUP(&dev->vblank[crtc].queue);
+			dev->vblank[crtc].enabled = 0;
+			dev->vblank[crtc].last =
+		    	    dev->driver->get_vblank_counter(dev, crtc);
+		}
 	}
 	DRM_SPINUNLOCK(&dev->vbl_lock);
 

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:21:29 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F0168106564A;
	Fri, 20 Mar 2009 05:21:29 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DE0558FC15;
	Fri, 20 Mar 2009 05:21:29 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5LTOI086921;
	Fri, 20 Mar 2009 05:21:29 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5LTlB086920;
	Fri, 20 Mar 2009 05:21:29 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903200521.n2K5LTlB086920@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Fri, 20 Mar 2009 05:21:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190126 - head/sys/boot/pc98/libpc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:21:30 -0000

Author: nyan
Date: Fri Mar 20 05:21:29 2009
New Revision: 190126
URL: http://svn.freebsd.org/changeset/base/190126

Log:
  MFi386: the part of r179825 to reduce diffs against i386.

Modified:
  head/sys/boot/pc98/libpc98/time.c

Modified: head/sys/boot/pc98/libpc98/time.c
==============================================================================
--- head/sys/boot/pc98/libpc98/time.c	Fri Mar 20 04:53:12 2009	(r190125)
+++ head/sys/boot/pc98/libpc98/time.c	Fri Mar 20 05:21:29 2009	(r190126)
@@ -33,23 +33,21 @@ __FBSDID("$FreeBSD$");
 #include "bootstrap.h"
 #include "libi386.h"
 
+static int	bios_seconds(void);
+
 /*
- * Return the time in seconds since the beginning of the day.
- *
- * If we pass midnight, don't wrap back to 0.
+ * Return the BIOS time-of-day value.
  *
  * XXX uses undocumented BCD support from libstand.
  */
-
-time_t
-time(time_t *t)
+static int
+bios_seconds(void)
 {
-    static time_t	lasttime, now;
     int			hr, minute, sec;
     unsigned char	bios_time[6];
-
+    
     v86.ctl = 0;
-    v86.addr = 0x1c;            /* int 0x1c, function 0 */
+    v86.addr = 0x1c;		/* int 0x1c, function 0 */
     v86.eax = 0x0000;
     v86.es  = VTOPSEG(bios_time);
     v86.ebx = VTOPOFF(bios_time);
@@ -59,7 +57,20 @@ time(time_t *t)
     minute = bcd2bin(bios_time[4]);
     sec = bcd2bin(bios_time[5]);
     
-    now = hr * 3600 + minute * 60 + sec;
+    return (hr * 3600 + minute * 60 + sec);
+}
+
+/*
+ * Return the time in seconds since the beginning of the day.
+ */
+time_t
+time(time_t *t)
+{
+    static time_t lasttime;
+    time_t now;
+
+    now = bios_seconds();
+
     if (now < lasttime)
 	now += 24 * 3600;
     lasttime = now;

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:33:59 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 381B3106564A;
	Fri, 20 Mar 2009 05:33:59 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2632C8FC19;
	Fri, 20 Mar 2009 05:33:59 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5XwRX087220;
	Fri, 20 Mar 2009 05:33:58 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5Xwch087219;
	Fri, 20 Mar 2009 05:33:58 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903200533.n2K5Xwch087219@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Fri, 20 Mar 2009 05:33:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190127 - head/sys/boot/pc98/libpc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:33:59 -0000

Author: nyan
Date: Fri Mar 20 05:33:58 2009
New Revision: 190127
URL: http://svn.freebsd.org/changeset/base/190127

Log:
  Merge the missing changes from i386.
  Teach the loader about the FAT partitions.

Modified:
  head/sys/boot/pc98/libpc98/biosdisk.c

Modified: head/sys/boot/pc98/libpc98/biosdisk.c
==============================================================================
--- head/sys/boot/pc98/libpc98/biosdisk.c	Fri Mar 20 05:21:29 2009	(r190126)
+++ head/sys/boot/pc98/libpc98/biosdisk.c	Fri Mar 20 05:33:58 2009	(r190127)
@@ -269,17 +269,8 @@ bd_print(int verbose)
 
 		/* Check for a "dedicated" disk */
 		for (j = 0; j < od->od_nslices; j++) {
-		    switch(dptr[j].dp_mid) {
-		    case DOSMID_386BSD:
-		        sprintf(line, "      disk%ds%d", i, j + 1);
-			bd_printbsdslice(od,
-			    dptr[j].dp_scyl * od->od_hds * od->od_sec +
-			    dptr[j].dp_shd * od->od_sec + dptr[j].dp_ssect,
-			    line, verbose);
-			break;
-		    default:
-			break;
-		    }
+		    sprintf(line, "      disk%ds%d", i, j + 1);
+		    bd_printslice(od, &dptr[j], line, verbose);
 		}
 	    }
 	    bd_closedisk(od);
@@ -311,6 +302,52 @@ display_size(uint64_t size)
 }
 
 /*
+ * Print information about slices on a disk.  For the size calculations we
+ * assume a 512 byte sector.
+ */
+static void
+bd_printslice(struct open_disk *od, struct pc98_partition *dp, char *prefix,
+	int verbose)
+{
+	int cylsecs, start, size;
+	char stats[80];
+	char line[80];
+
+	cylsecs = od->od_hds * od->od_sec;
+	start = dp->dp_scyl * cylsecs + dp->dp_shd * od->od_sec + dp->dp_ssect;
+	size = (dp->dp_ecyl - dp->dp_scyl + 1) * cylsecs;
+
+	if (verbose)
+		sprintf(stats, " %s (%d - %d)", display_size(size),
+		    start, start + size);
+	else
+		stats[0] = '\0';
+
+	switch(dp->dp_mid & PC98_MID_MASK) {
+	case PC98_MID_386BSD:
+		bd_printbsdslice(od, start, prefix, verbose);
+		return;
+	case 0x00:				/* unused partition */
+		return;
+	case 0x01:
+		sprintf(line, "%s: FAT-12%s\n", prefix, stats);
+		break;
+	case 0x11:
+	case 0x20:
+	case 0x21:
+	case 0x22:
+	case 0x23:
+	case 0x24:
+		sprintf(line, "%s: FAT-16%s\n", prefix, stats);
+		break;
+	default:
+		sprintf(line, "%s: Unknown fs: 0x%x %s\n", prefix, dp->dp_mid,
+		    stats);
+	}
+	pager_output(line);
+}
+
+/*
  * Print out each valid partition in the disklabel of a FreeBSD slice.
  * For size calculations, we assume a 512 byte sector size.
  */
@@ -349,7 +386,7 @@ bd_printbsdslice(struct open_disk *od, d
 
 	    /* Only print out statistics in verbose mode */
 	    if (verbose)
-		sprintf(line, "  %s%c: %s %s (%d - %d)\n", prefix, 'a' + i,
+	        sprintf(line, "  %s%c: %s %s (%d - %d)\n", prefix, 'a' + i,
 		    (lp->d_partitions[i].p_fstype == FS_SWAP) ? "swap " : 
 		    (lp->d_partitions[i].p_fstype == FS_VINUM) ? "vinum" :
 		    "FFS  ",

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:42:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0374F106566B;
	Fri, 20 Mar 2009 05:42:28 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E490C8FC0A;
	Fri, 20 Mar 2009 05:42:27 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5gRAc087419;
	Fri, 20 Mar 2009 05:42:27 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5gRmp087418;
	Fri, 20 Mar 2009 05:42:27 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200542.n2K5gRmp087418@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:42:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190128 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:42:28 -0000

Author: rnoland
Date: Fri Mar 20 05:42:27 2009
New Revision: 190128
URL: http://svn.freebsd.org/changeset/base/190128

Log:
  Merge 189908
  
  Use flsl() here rather than ffsl()
  
  I discovered that we were computing page_order differently than linux.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_bufs.c

Modified: stable/7/sys/dev/drm/drm_bufs.c
==============================================================================
--- stable/7/sys/dev/drm/drm_bufs.c	Fri Mar 20 05:33:58 2009	(r190127)
+++ stable/7/sys/dev/drm/drm_bufs.c	Fri Mar 20 05:42:27 2009	(r190128)
@@ -1106,7 +1106,7 @@ int drm_order(unsigned long size)
 	if (size == 0)
 		return 0;
 
-	order = ffsl(size) - 1;
+	order = flsl(size) - 1;
 	if (size & ~(1ul << order))
 		++order;
 

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:43:25 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3447B106566B;
	Fri, 20 Mar 2009 05:43:25 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 218B18FC1F;
	Fri, 20 Mar 2009 05:43:25 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5hPoO087483;
	Fri, 20 Mar 2009 05:43:25 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5hPWM087482;
	Fri, 20 Mar 2009 05:43:25 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200543.n2K5hPWM087482@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:43:25 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190129 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:43:25 -0000

Author: rnoland
Date: Fri Mar 20 05:43:24 2009
New Revision: 190129
URL: http://svn.freebsd.org/changeset/base/190129

Log:
  Merge 189909
  
  Change the logic around to match ati_pcigart.

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/r600_cp.c

Modified: stable/7/sys/dev/drm/r600_cp.c
==============================================================================
--- stable/7/sys/dev/drm/r600_cp.c	Fri Mar 20 05:42:27 2009	(r190128)
+++ stable/7/sys/dev/drm/r600_cp.c	Fri Mar 20 05:43:24 2009	(r190129)
@@ -174,7 +174,6 @@ int r600_page_table_init(struct drm_devi
 		if (entry->busaddr[i] == 0) {
 			DRM_ERROR("unable to map PCIGART pages!\n");
 			r600_page_table_cleanup(dev, gart_info);
-			ret = -EINVAL;
 			goto done;
 		}
 #endif
@@ -193,6 +192,7 @@ int r600_page_table_init(struct drm_devi
 			entry_addr += ATI_PCIGART_PAGE_SIZE;
 		}
 	}
+	ret = 1;
 #ifdef __linux__
 done:
 #endif
@@ -2100,7 +2100,7 @@ int r600_do_init_cp(struct drm_device *d
 			  dev_priv->gart_info.addr,
 			  dev_priv->pcigart_offset);
 
-		if (r600_page_table_init(dev)) {
+		if (!r600_page_table_init(dev)) {
 			DRM_ERROR("Failed to init GART table\n");
 			r600_do_cleanup_cp(dev);
 			return -EINVAL;

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:44:31 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8F9B9106566B;
	Fri, 20 Mar 2009 05:44:31 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6246E8FC1D;
	Fri, 20 Mar 2009 05:44:31 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5iVJ3087564;
	Fri, 20 Mar 2009 05:44:31 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5iV8F087563;
	Fri, 20 Mar 2009 05:44:31 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200544.n2K5iV8F087563@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:44:31 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190130 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:44:32 -0000

Author: rnoland
Date: Fri Mar 20 05:44:31 2009
New Revision: 190130
URL: http://svn.freebsd.org/changeset/base/190130

Log:
  Merge 189910
  
  Cast register maps and offsets to vm_offset_t

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drmP.h

Modified: stable/7/sys/dev/drm/drmP.h
==============================================================================
--- stable/7/sys/dev/drm/drmP.h	Fri Mar 20 05:43:24 2009	(r190129)
+++ stable/7/sys/dev/drm/drmP.h	Fri Mar 20 05:44:31 2009	(r190130)
@@ -240,17 +240,23 @@ typedef u_int8_t u8;
 #endif
 
 #define DRM_READ8(map, offset)						\
-	*(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset))
+	*(volatile u_int8_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset))
 #define DRM_READ16(map, offset)						\
-	*(volatile u_int16_t *) (((unsigned long)(map)->handle) + (offset))
+	*(volatile u_int16_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset))
 #define DRM_READ32(map, offset)						\
-	*(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset))
+	*(volatile u_int32_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset))
 #define DRM_WRITE8(map, offset, val)					\
-	*(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset)) = val
+	*(volatile u_int8_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset)) = val
 #define DRM_WRITE16(map, offset, val)					\
-	*(volatile u_int16_t *) (((unsigned long)(map)->handle) + (offset)) = val
+	*(volatile u_int16_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset)) = val
 #define DRM_WRITE32(map, offset, val)					\
-	*(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset)) = val
+	*(volatile u_int32_t *)(((vm_offset_t)(map)->handle) +		\
+	    (vm_offset_t)(offset)) = val
 
 #define DRM_VERIFYAREA_READ( uaddr, size )		\
 	(!useracc(__DECONST(caddr_t, uaddr), size, VM_PROT_READ))

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:45:28 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6301C10656D2;
	Fri, 20 Mar 2009 05:45:28 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id F1ED88FC1B;
	Fri, 20 Mar 2009 05:45:26 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5jQqv087640;
	Fri, 20 Mar 2009 05:45:26 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5jQLo087639;
	Fri, 20 Mar 2009 05:45:26 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200545.n2K5jQLo087639@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:45:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190131 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:45:32 -0000

Author: rnoland
Date: Fri Mar 20 05:45:26 2009
New Revision: 190131
URL: http://svn.freebsd.org/changeset/base/190131

Log:
  Merge 189911
  
  We can have more than 3 pci resources

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drmP.h

Modified: stable/7/sys/dev/drm/drmP.h
==============================================================================
--- stable/7/sys/dev/drm/drmP.h	Fri Mar 20 05:44:31 2009	(r190130)
+++ stable/7/sys/dev/drm/drmP.h	Fri Mar 20 05:45:26 2009	(r190131)
@@ -613,7 +613,7 @@ struct drm_driver_info {
 };
 
 /* Length for the array of resource pointers for drm_get_resource_*. */
-#define DRM_MAX_PCI_RESOURCE	3
+#define DRM_MAX_PCI_RESOURCE	6
 
 /** 
  * DRM device functions structure

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:46:26 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3E9861065688;
	Fri, 20 Mar 2009 05:46:26 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2A19F8FC1C;
	Fri, 20 Mar 2009 05:46:26 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5kQhG087704;
	Fri, 20 Mar 2009 05:46:26 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5kQwK087703;
	Fri, 20 Mar 2009 05:46:26 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200546.n2K5kQwK087703@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:46:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190132 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:46:27 -0000

Author: rnoland
Date: Fri Mar 20 05:46:25 2009
New Revision: 190132
URL: http://svn.freebsd.org/changeset/base/190132

Log:
  Merge 189912
  
  Minor code cleanup

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_bufs.c

Modified: stable/7/sys/dev/drm/drm_bufs.c
==============================================================================
--- stable/7/sys/dev/drm/drm_bufs.c	Fri Mar 20 05:45:26 2009	(r190131)
+++ stable/7/sys/dev/drm/drm_bufs.c	Fri Mar 20 05:46:25 2009	(r190132)
@@ -216,7 +216,7 @@ int drm_addmap(struct drm_device * dev, 
 			DRM_LOCK();
 			return EINVAL;
 		}
-		map->offset = map->offset + dev->sg->handle;
+		map->offset += dev->sg->handle;
 		break;
 	case _DRM_CONSISTENT:
 		/* Unfortunately, we don't get any alignment specification from

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:47:49 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 685D2106564A;
	Fri, 20 Mar 2009 05:47:49 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 55C6B8FC17;
	Fri, 20 Mar 2009 05:47:49 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5lnwf087799;
	Fri, 20 Mar 2009 05:47:49 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5lnkE087798;
	Fri, 20 Mar 2009 05:47:49 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200547.n2K5lnkE087798@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:47:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190133 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:47:50 -0000

Author: rnoland
Date: Fri Mar 20 05:47:49 2009
New Revision: 190133
URL: http://svn.freebsd.org/changeset/base/190133

Log:
  Merge 189913
  
  Add list_for_each_prev to our linux compatibility.
  
  We need this for nouveau

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_linux_list.h

Modified: stable/7/sys/dev/drm/drm_linux_list.h
==============================================================================
--- stable/7/sys/dev/drm/drm_linux_list.h	Fri Mar 20 05:46:25 2009	(r190132)
+++ stable/7/sys/dev/drm/drm_linux_list.h	Fri Mar 20 05:47:49 2009	(r190133)
@@ -67,6 +67,10 @@ list_del(struct list_head *entry) {
 #define list_for_each(entry, head)				\
     for (entry = (head)->next; entry != head; entry = (entry)->next)
 
+#define list_for_each_prev(entry, head) \
+        for (entry = (head)->prev; entry != (head); \
+                entry = entry->prev)
+
 #define list_for_each_safe(entry, temp, head)			\
     for (entry = (head)->next, temp = (entry)->next;		\
 	entry != head; 						\

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:50:42 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id AE8D11065670;
	Fri, 20 Mar 2009 05:50:42 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9BE608FC0A;
	Fri, 20 Mar 2009 05:50:42 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5ogNR087908;
	Fri, 20 Mar 2009 05:50:42 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5oggQ087907;
	Fri, 20 Mar 2009 05:50:42 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200550.n2K5oggQ087907@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:50:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190134 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:50:43 -0000

Author: rnoland
Date: Fri Mar 20 05:50:42 2009
New Revision: 190134
URL: http://svn.freebsd.org/changeset/base/190134

Log:
  Merge 189914,189916
  
  Improve the debugging output of drm_mmap
  Cast to (unsigned long) to make printf happy on i386

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_vm.c

Modified: stable/7/sys/dev/drm/drm_vm.c
==============================================================================
--- stable/7/sys/dev/drm/drm_vm.c	Fri Mar 20 05:47:49 2009	(r190133)
+++ stable/7/sys/dev/drm/drm_vm.c	Fri Mar 20 05:50:42 2009	(r190134)
@@ -86,8 +86,14 @@ int drm_mmap(struct cdev *kdev, vm_offse
 	}
 
 	if (map == NULL) {
+		DRM_DEBUG("Can't find map, requested offset = %016lx\n",
+		    (unsigned long)offset);
+		TAILQ_FOREACH(map, &dev->maplist, link) {
+			DRM_DEBUG("map offset = %016lx, handle = %016lx\n",
+			    (unsigned long)map->offset,
+			    (unsigned long)map->handle);
+		}
 		DRM_UNLOCK();
-		DRM_DEBUG("can't find map\n");
 		return -1;
 	}
 	if (((map->flags&_DRM_RESTRICTED) && !DRM_SUSER(DRM_CURPROC))) {

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 05:51:56 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 22106106564A;
	Fri, 20 Mar 2009 05:51:55 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0F40D8FC14;
	Fri, 20 Mar 2009 05:51:55 +0000 (UTC)
	(envelope-from rnoland@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K5psBc087975;
	Fri, 20 Mar 2009 05:51:54 GMT (envelope-from rnoland@svn.freebsd.org)
Received: (from rnoland@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K5ps4R087974;
	Fri, 20 Mar 2009 05:51:54 GMT (envelope-from rnoland@svn.freebsd.org)
Message-Id: <200903200551.n2K5ps4R087974@svn.freebsd.org>
From: Robert Noland 
Date: Fri, 20 Mar 2009 05:51:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
X-SVN-Group: stable-7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190135 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
	dev/cxgb dev/drm
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 05:51:57 -0000

Author: rnoland
Date: Fri Mar 20 05:51:54 2009
New Revision: 190135
URL: http://svn.freebsd.org/changeset/base/190135

Log:
  Merge 189915
  
  Add support for matching solely on vendor id.
  
  We will use this method with nouveau

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/dev/drm/drm_drv.c

Modified: stable/7/sys/dev/drm/drm_drv.c
==============================================================================
--- stable/7/sys/dev/drm/drm_drv.c	Fri Mar 20 05:50:42 2009	(r190134)
+++ stable/7/sys/dev/drm/drm_drv.c	Fri Mar 20 05:51:54 2009	(r190135)
@@ -182,7 +182,10 @@ int drm_probe(device_t kdev, drm_pci_id_
 
 	id_entry = drm_find_description(vendor, device, idlist);
 	if (id_entry != NULL) {
-		device_set_desc(kdev, id_entry->name);
+		if (!device_get_desc(kdev)) {
+			DRM_DEBUG("desc : %s\n", device_get_desc(kdev));
+			device_set_desc(kdev, id_entry->name);
+		}
 		return 0;
 	}
 
@@ -290,7 +293,8 @@ drm_pci_id_list_t *drm_find_description(
 	
 	for (i = 0; idlist[i].vendor != 0; i++) {
 		if ((idlist[i].vendor == vendor) &&
-		    (idlist[i].device == device)) {
+		    ((idlist[i].device == device) ||
+		    (idlist[i].device == 0))) {
 			return &idlist[i];
 		}
 	}

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 09:12:01 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CEE55106566C;
	Fri, 20 Mar 2009 09:12:01 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BDB008FC12;
	Fri, 20 Mar 2009 09:12:01 +0000 (UTC)
	(envelope-from vanhu@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K9C1PQ091836;
	Fri, 20 Mar 2009 09:12:01 GMT (envelope-from vanhu@svn.freebsd.org)
Received: (from vanhu@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K9C1g3091835;
	Fri, 20 Mar 2009 09:12:01 GMT (envelope-from vanhu@svn.freebsd.org)
Message-Id: <200903200912.n2K9C1g3091835@svn.freebsd.org>
From: VANHULLEBUS Yvan 
Date: Fri, 20 Mar 2009 09:12:01 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190138 - head/sys/netipsec
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 09:12:02 -0000

Author: vanhu
Date: Fri Mar 20 09:12:01 2009
New Revision: 190138
URL: http://svn.freebsd.org/changeset/base/190138

Log:
  Spelling fix in a comment
  
  Approved by:	gnn(mentor)

Modified:
  head/sys/netipsec/key.c

Modified: head/sys/netipsec/key.c
==============================================================================
--- head/sys/netipsec/key.c	Fri Mar 20 09:02:40 2009	(r190137)
+++ head/sys/netipsec/key.c	Fri Mar 20 09:12:01 2009	(r190138)
@@ -4164,7 +4164,7 @@ key_flush_sad(time_t now)
 				/* 
 				 * Actually, only send expire message if SA has been used, as it
 				 * was done before, but should we always send such message, and let IKE
-				 * daemon decide if it should be renegociated or not ?
+				 * daemon decide if it should be renegotiated or not ?
 				 * XXX expire message will actually NOT be sent if SA is only used
 				 * after soft lifetime has been reached, see below (DYING state)
 				 */

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 09:25:22 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 736F91065676;
	Fri, 20 Mar 2009 09:25:22 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 565808FC1D;
	Fri, 20 Mar 2009 09:25:22 +0000 (UTC)
	(envelope-from brueffer@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2K9PMCP092206;
	Fri, 20 Mar 2009 09:25:22 GMT
	(envelope-from brueffer@svn.freebsd.org)
Received: (from brueffer@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2K9PMMN092201;
	Fri, 20 Mar 2009 09:25:22 GMT
	(envelope-from brueffer@svn.freebsd.org)
Message-Id: <200903200925.n2K9PMMN092201@svn.freebsd.org>
From: Christian Brueffer 
Date: Fri, 20 Mar 2009 09:25:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190139 - in head/release/doc: en_US.ISO8859-1/hardware
	ja_JP.eucJP/hardware/common ru_RU.KOI8-R/hardware/common
	share/misc zh_CN.GB2312/hardware
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 09:25:23 -0000

Author: brueffer
Date: Fri Mar 20 09:25:21 2009
New Revision: 190139
URL: http://svn.freebsd.org/changeset/base/190139

Log:
  uscanner(4) has been removed, delete it from the hardware notes to
  fix the build.

Modified:
  head/release/doc/en_US.ISO8859-1/hardware/article.sgml
  head/release/doc/ja_JP.eucJP/hardware/common/dev.sgml
  head/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml
  head/release/doc/share/misc/dev.archlist.txt
  head/release/doc/zh_CN.GB2312/hardware/article.sgml

Modified: head/release/doc/en_US.ISO8859-1/hardware/article.sgml
==============================================================================
--- head/release/doc/en_US.ISO8859-1/hardware/article.sgml	Fri Mar 20 09:12:01 2009	(r190138)
+++ head/release/doc/en_US.ISO8859-1/hardware/article.sgml	Fri Mar 20 09:25:21 2009	(r190139)
@@ -1468,8 +1468,6 @@
 
       &hwlist.umct;
 
-      &hwlist.uscanner;
-
       &hwlist.umass;
 
       [&arch.amd64;, &arch.i386;, &arch.pc98;] Audio Devices

Modified: head/release/doc/ja_JP.eucJP/hardware/common/dev.sgml
==============================================================================
--- head/release/doc/ja_JP.eucJP/hardware/common/dev.sgml	Fri Mar 20 09:12:01 2009	(r190138)
+++ head/release/doc/ja_JP.eucJP/hardware/common/dev.sgml	Fri Mar 20 09:25:21 2009	(r190139)
@@ -802,8 +802,6 @@
 
     &hwlist.umct;
 
-    &hwlist.uscanner;
-
     &hwlist.umass;
 
     ¥ª¡¼¥Ç¥£¥ª¥Ç¥Ð¥¤¥¹ (&man.uaudio.4; ¥É¥é¥¤¥Ð)

Modified: head/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml
==============================================================================
--- head/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml	Fri Mar 20 09:12:01 2009	(r190138)
+++ head/release/doc/ru_RU.KOI8-R/hardware/common/dev.sgml	Fri Mar 20 09:25:21 2009	(r190139)
@@ -816,8 +816,6 @@
 
     &hwlist.umct;
 
-    &hwlist.uscanner;
-
     &hwlist.umass;
 
     áÕÄÉÏ ÕÓÔÒÏÊÓÔ×Á (ÄÒÁÊ×ÅÒ &man.uaudio.4;)

Modified: head/release/doc/share/misc/dev.archlist.txt
==============================================================================
--- head/release/doc/share/misc/dev.archlist.txt	Fri Mar 20 09:12:01 2009	(r190138)
+++ head/release/doc/share/misc/dev.archlist.txt	Fri Mar 20 09:25:21 2009	(r190139)
@@ -162,7 +162,6 @@ umodem	i386,pc98,amd64
 uplcom	i386,pc98,amd64
 ural	i386,amd64
 urio	i386,pc98,amd64,powerpc
-uscanner	i386,pc98,amd64,powerpc
 uvisor	i386,pc98,amd64
 uvscom	i386,pc98,amd64
 vge	i386,pc98,amd64

Modified: head/release/doc/zh_CN.GB2312/hardware/article.sgml
==============================================================================
--- head/release/doc/zh_CN.GB2312/hardware/article.sgml	Fri Mar 20 09:12:01 2009	(r190138)
+++ head/release/doc/zh_CN.GB2312/hardware/article.sgml	Fri Mar 20 09:25:21 2009	(r190139)
@@ -1210,8 +1210,6 @@
 
     &hwlist.umct;
 
-    &hwlist.uscanner;
-
     &hwlist.umass;
 
     [&arch.amd64;, &arch.i386;, &arch.pc98;] ÉùÒôÉ豸 (&man.uaudio.4; Çý¶¯³ÌÐò)

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 10:04:00 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C3E20106564A;
	Fri, 20 Mar 2009 10:04:00 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B24368FC0A;
	Fri, 20 Mar 2009 10:04:00 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KA40pt093038;
	Fri, 20 Mar 2009 10:04:00 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KA40Do093037;
	Fri, 20 Mar 2009 10:04:00 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201004.n2KA40Do093037@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 10:04:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190140 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 10:04:01 -0000

Author: kib
Date: Fri Mar 20 10:04:00 2009
New Revision: 190140
URL: http://svn.freebsd.org/changeset/base/190140

Log:
  Remove unneeded braces to reduce used vertical screen space.

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 09:25:21 2009	(r190139)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 10:04:00 2009	(r190140)
@@ -957,9 +957,8 @@ vn_fullpath1(struct thread *td, struct v
 			vp = ncp->nc_dvp;
 		} else {
 			error = vn_vptocnp(&vp, &bp, buf, &buflen);
-			if (error) {
+			if (error)
 				return (error);
-			}
 		}
 		*--bp = '/';
 		buflen--;
@@ -1022,9 +1021,8 @@ vn_fullpath1(struct thread *td, struct v
 			numfullpathfail4++;
 			CACHE_RUNLOCK();
 			return (ENOMEM);
-		} else {
+		} else
 			*--bp = '/';
-		}
 	}
 	numfullpathfound++;
 	CACHE_RUNLOCK();

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 10:47:17 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F2CE5106564A;
	Fri, 20 Mar 2009 10:47:16 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E0DEB8FC0A;
	Fri, 20 Mar 2009 10:47:16 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KAlGSt099826;
	Fri, 20 Mar 2009 10:47:16 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KAlGej099825;
	Fri, 20 Mar 2009 10:47:16 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201047.n2KAlGej099825@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 10:47:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190141 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 10:47:17 -0000

Author: kib
Date: Fri Mar 20 10:47:16 2009
New Revision: 190141
URL: http://svn.freebsd.org/changeset/base/190141

Log:
  When ktracing namei operations, log a result of the __getcwd().
  
  MFC after:	1 week

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 10:04:00 2009	(r190140)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 10:47:16 2009	(r190141)
@@ -35,6 +35,8 @@
 #include 
 __FBSDID("$FreeBSD$");
 
+#include "opt_ktrace.h"
+
 #include 
 #include 
 #include 
@@ -50,6 +52,9 @@ __FBSDID("$FreeBSD$");
 #include 
 #include 
 #include 
+#ifdef KTRACE
+#include 
+#endif
 
 #include 
 
@@ -807,6 +812,10 @@ kern___getcwd(struct thread *td, u_char 
 			bcopy(bp, buf, strlen(bp) + 1);
 		else
 			error = copyout(bp, buf, strlen(bp) + 1);
+#ifdef KTRACE
+	if (KTRPOINT(curthread, KTR_NAMEI))
+		ktrnamei(bp);
+#endif
 	}
 	free(tmpbuf, M_TEMP);
 	return (error);

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 10:59:07 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3F6E51065673;
	Fri, 20 Mar 2009 10:59:07 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2D85B8FC0C;
	Fri, 20 Mar 2009 10:59:07 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KAx678000184;
	Fri, 20 Mar 2009 10:59:06 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KAx61l000183;
	Fri, 20 Mar 2009 10:59:06 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201059.n2KAx61l000183@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 10:59:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190142 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 10:59:08 -0000

Author: kib
Date: Fri Mar 20 10:59:06 2009
New Revision: 190142
URL: http://svn.freebsd.org/changeset/base/190142

Log:
  The nc_nlen member of the struct namecache contains the length of the cached
  name, not the length + 1.
  
  PR:	132620, 132542
  Reported by:	bf2006a yahoo com
  Tested by:	bf2006a, pho
  Reviewed by:	marcus

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 10:47:16 2009	(r190141)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 10:59:06 2009	(r190142)
@@ -997,7 +997,7 @@ vn_fullpath1(struct thread *td, struct v
 		ncp = TAILQ_FIRST(&vp->v_cache_dst);
 		if (ncp != NULL) {
 			MPASS(vp->v_dd == NULL || ncp->nc_dvp == vp->v_dd);
-			buflen -= ncp->nc_nlen - 1;
+			buflen -= ncp->nc_nlen;
 			for (i = ncp->nc_nlen - 1; i >= 0 && bp != buf; i--)
 				*--bp = ncp->nc_name[i];
 			if (bp == buf) {

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 11:00:39 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9EE0B106566C;
	Fri, 20 Mar 2009 11:00:39 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 8D1ED8FC13;
	Fri, 20 Mar 2009 11:00:39 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KB0dMH000272;
	Fri, 20 Mar 2009 11:00:39 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KB0dwg000271;
	Fri, 20 Mar 2009 11:00:39 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201100.n2KB0dwg000271@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 11:00:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190143 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 11:00:40 -0000

Author: kib
Date: Fri Mar 20 11:00:39 2009
New Revision: 190143
URL: http://svn.freebsd.org/changeset/base/190143

Log:
  Do not forget to adjust buflen for the first resolution of the path
  from namecache.
  While there, compare pointers for equiality.
  
  Reviewed by:	marcus
  Tested by:	pho

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 10:59:06 2009	(r190142)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 11:00:39 2009	(r190143)
@@ -956,7 +956,8 @@ vn_fullpath1(struct thread *td, struct v
 	if (vp->v_type != VDIR) {
 		ncp = TAILQ_FIRST(&vp->v_cache_dst);
 		if (ncp != NULL) {
-			for (i = ncp->nc_nlen - 1; i >= 0 && bp > buf; i--)
+			buflen -= ncp->nc_nlen;
+			for (i = ncp->nc_nlen - 1; i >= 0 && bp != buf; i--)
 				*--bp = ncp->nc_name[i];
 			if (bp == buf) {
 				numfullpathfail4++;

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 11:03:55 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D19D1106566B;
	Fri, 20 Mar 2009 11:03:55 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C02198FC1C;
	Fri, 20 Mar 2009 11:03:55 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KB3ti2000362;
	Fri, 20 Mar 2009 11:03:55 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KB3t8B000361;
	Fri, 20 Mar 2009 11:03:55 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201103.n2KB3t8B000361@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 11:03:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190144 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 11:03:56 -0000

Author: kib
Date: Fri Mar 20 11:03:55 2009
New Revision: 190144
URL: http://svn.freebsd.org/changeset/base/190144

Log:
  Remove unneeded braces to reduce used vertical screen space.
  The location was missed in r190140.

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 11:00:39 2009	(r190143)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 11:03:55 2009	(r190144)
@@ -1010,9 +1010,8 @@ vn_fullpath1(struct thread *td, struct v
 			vp = ncp->nc_dvp;
 		} else {
 			error = vn_vptocnp(&vp, &bp, buf, &buflen);
-			if (error) {
+			if (error)
 				break;
-			}
 		}
 		*--bp = '/';
 		buflen--;

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 11:08:57 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CC650106566B;
	Fri, 20 Mar 2009 11:08:57 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BA6428FC08;
	Fri, 20 Mar 2009 11:08:57 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KB8vwO000503;
	Fri, 20 Mar 2009 11:08:57 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KB8vHN000502;
	Fri, 20 Mar 2009 11:08:57 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200903201108.n2KB8vHN000502@svn.freebsd.org>
From: Konstantin Belousov 
Date: Fri, 20 Mar 2009 11:08:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190145 - head/sys/kern
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 11:08:58 -0000

Author: kib
Date: Fri Mar 20 11:08:57 2009
New Revision: 190145
URL: http://svn.freebsd.org/changeset/base/190145

Log:
  Do not underflow the buffer and then report the problem. Check for the
  condition before the buffer write.
  Also, since buflen is unsigned, previous check was ignored.
  
  Reviewed by:	marcus
  Tested by:	pho

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c	Fri Mar 20 11:03:55 2009	(r190144)
+++ head/sys/kern/vfs_cache.c	Fri Mar 20 11:08:57 2009	(r190145)
@@ -970,13 +970,13 @@ vn_fullpath1(struct thread *td, struct v
 			if (error)
 				return (error);
 		}
-		*--bp = '/';
-		buflen--;
-		if (buflen < 0) {
+		if (buflen <= 0) {
 			numfullpathfail4++;
 			CACHE_RUNLOCK();
 			return (ENOMEM);
 		}
+		*--bp = '/';
+		buflen--;
 		slash_prefixed = 1;
 	}
 	while (vp != rdir && vp != rootvnode) {
@@ -1013,14 +1013,14 @@ vn_fullpath1(struct thread *td, struct v
 			if (error)
 				break;
 		}
-		*--bp = '/';
-		buflen--;
-		if (buflen < 0) {
+		if (buflen <= 0) {
 			numfullpathfail4++;
 			CACHE_RUNLOCK();
 			error = ENOMEM;
 			break;
 		}
+		*--bp = '/';
+		buflen--;
 		slash_prefixed = 1;
 	}
 	if (error)

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 12:26:43 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5199D1065674;
	Fri, 20 Mar 2009 12:26:43 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3E4398FC1B;
	Fri, 20 Mar 2009 12:26:43 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KCQgNn002040;
	Fri, 20 Mar 2009 12:26:42 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KCQgBb002039;
	Fri, 20 Mar 2009 12:26:42 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903201226.n2KCQgBb002039@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Fri, 20 Mar 2009 12:26:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190146 - head/sys/boot/pc98/libpc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 12:26:44 -0000

Author: nyan
Date: Fri Mar 20 12:26:42 2009
New Revision: 190146
URL: http://svn.freebsd.org/changeset/base/190146

Log:
  MFi386: r189749
  
    Teach the BIOS CD driver to use bounce buffers when the destination
    address is > 1 MB.

Modified:
  head/sys/boot/pc98/libpc98/bioscd.c

Modified: head/sys/boot/pc98/libpc98/bioscd.c
==============================================================================
--- head/sys/boot/pc98/libpc98/bioscd.c	Fri Mar 20 11:08:57 2009	(r190145)
+++ head/sys/boot/pc98/libpc98/bioscd.c	Fri Mar 20 12:26:42 2009	(r190146)
@@ -170,9 +170,9 @@ bc_add(int biosdev)
 static void
 bc_print(int verbose)
 {
-	int i;
 	char line[80];
-    
+	int i;
+
 	for (i = 0; i < nbcinfo; i++) {
 		sprintf(line, "    cd%d: Device 0x%x\n", i,
 		    bcinfo[i].bc_sp.sp_devicespec);
@@ -232,7 +232,7 @@ bc_strategy(void *devdata, int rw, daddr
 	if (dblk % (BIOSCD_SECSIZE / DEV_BSIZE) != 0)
 		return (EINVAL);
 	dblk /= (BIOSCD_SECSIZE / DEV_BSIZE);
-	DEBUG("read %d from %d to %p", blks, dblk, buf);
+	DEBUG("read %d from %lld to %p", blks, dblk, buf);
 
 	if (rsize)
 		*rsize = 0;
@@ -241,9 +241,9 @@ bc_strategy(void *devdata, int rw, daddr
 		return (EIO);
 	}
 #ifdef BD_SUPPORT_FRAGS
-	DEBUG("bc_strategy: frag read %d from %d+%d to %p", 
+	DEBUG("frag read %d from %lld+%d to %p", 
 	    fragsize, dblk, blks, buf + (blks * BIOSCD_SECSIZE));
-	if (fragsize && bc_read(unit, dblk + blks, 1, fragsize)) {
+	if (fragsize && bc_read(unit, dblk + blks, 1, fragbuf)) {
 		DEBUG("frag read error");
 		return(EIO);
 	}
@@ -254,11 +254,14 @@ bc_strategy(void *devdata, int rw, daddr
 	return (0);
 }
 
+/* Max number of sectors to bounce-buffer at a time. */
+#define	CD_BOUNCEBUF	8
+
 static int
 bc_read(int unit, daddr_t dblk, int blks, caddr_t dest)
 {
-	u_int result, retry;
-	static unsigned short packet[8];
+	u_int maxfer, resid, result, retry, x;
+	caddr_t bbuf, p, xp;
 	int biosdev;
 #ifdef DISK_DEBUG
 	int error;
@@ -272,40 +275,73 @@ bc_read(int unit, daddr_t dblk, int blks
 	if (blks == 0)
 		return (0);
 
+	/* Decide whether we have to bounce */
+	if (VTOP(dest) >> 20 != 0) {
+		/* 
+		 * The destination buffer is above first 1MB of
+		 * physical memory so we have to arrange a suitable
+		 * bounce buffer.
+		 */
+		x = min(CD_BOUNCEBUF, (unsigned)blks);
+		bbuf = alloca(x * BIOSCD_SECSIZE);
+		maxfer = x;
+	} else {
+		bbuf = NULL;
+		maxfer = 0;
+	}
+	
 	biosdev = bc_unit2bios(unit);
-	/*
-	 * Loop retrying the operation a couple of times.  The BIOS
-	 * may also retry.
-	 */
-	for (retry = 0; retry < 3; retry++) {
-		/* If retrying, reset the drive */
-		if (retry > 0) {
+	resid = blks;
+	p = dest;
+
+	while (resid > 0) {
+		if (bbuf)
+			xp = bbuf;
+		else
+			xp = p;
+		x = resid;
+		if (maxfer > 0)
+			x = min(x, maxfer);
+
+		/*
+		 * Loop retrying the operation a couple of times.  The BIOS
+		 * may also retry.
+		 */
+		for (retry = 0; retry < 3; retry++) {
+			/* If retrying, reset the drive */
+			if (retry > 0) {
+				v86.ctl = V86_FLAGS;
+				v86.addr = 0x1b;
+				v86.eax = 0x0300 | biosdev;
+				v86int();
+			}
+
 			v86.ctl = V86_FLAGS;
 			v86.addr = 0x1b;
-			v86.eax = 0x0300 | biosdev;
+			v86.eax = 0x0600 | (biosdev & 0x7f);
+			v86.ebx = blks * BIOSCD_SECSIZE;
+			v86.ecx = dblk & 0xffff;
+			v86.edx = (dblk >> 16) & 0xffff;
+			v86.ebp = VTOPOFF(dest);
+			v86.es = VTOPSEG(dest);
 			v86int();
+			result = (v86.efl & PSL_C);
+			if (result == 0)
+				break;
 		}
-
-		v86.ctl = V86_FLAGS;
-		v86.addr = 0x1b;
-		v86.eax = 0x0600 | (biosdev & 0x7f);
-		v86.ebx = blks * BIOSCD_SECSIZE;
-		v86.ecx = dblk & 0xffff;
-		v86.edx = (dblk >> 16) & 0xffff;
-		v86.ebp = VTOPOFF(dest);
-		v86.es = VTOPSEG(dest);
-		v86int();
-		result = (v86.efl & PSL_C);
-		if (result == 0)
-			break;
-	}
 	
 #ifdef DISK_DEBUG
-	error = (v86.eax >> 8) & 0xff;
+		error = (v86.eax >> 8) & 0xff;
 #endif
-	DEBUG("%d sectors from %ld to %p (0x%x) %s", blks, dblk, dest,
-	    VTOP(dest), result ? "failed" : "ok");
-	DEBUG("unit %d  status 0x%x",  unit, error);
+		DEBUG("%d sectors from %lld to %p (0x%x) %s", x, dblk, p,
+		    VTOP(p), result ? "failed" : "ok");
+		DEBUG("unit %d  status 0x%x", unit, error);
+		if (bbuf != NULL)
+			bcopy(bbuf, p, x * BIOSCD_SECSIZE);
+		p += (x * BIOSCD_SECSIZE);
+		dblk += x;
+		resid -= x;
+	}
 	
 /*	hexdump(dest, (blks * BIOSCD_SECSIZE)); */
 	return(0);

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 13:03:33 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EB005106564A;
	Fri, 20 Mar 2009 13:03:33 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D87DC8FC12;
	Fri, 20 Mar 2009 13:03:33 +0000 (UTC)
	(envelope-from nyan@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KD3Xnr002780;
	Fri, 20 Mar 2009 13:03:33 GMT (envelope-from nyan@svn.freebsd.org)
Received: (from nyan@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KD3X9b002779;
	Fri, 20 Mar 2009 13:03:33 GMT (envelope-from nyan@svn.freebsd.org)
Message-Id: <200903201303.n2KD3X9b002779@svn.freebsd.org>
From: Takahashi Yoshihiro 
Date: Fri, 20 Mar 2009 13:03:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190147 - head/sys/boot/pc98/libpc98
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 13:03:34 -0000

Author: nyan
Date: Fri Mar 20 13:03:33 2009
New Revision: 190147
URL: http://svn.freebsd.org/changeset/base/190147

Log:
  Oops, fix the previous change.

Modified:
  head/sys/boot/pc98/libpc98/bioscd.c

Modified: head/sys/boot/pc98/libpc98/bioscd.c
==============================================================================
--- head/sys/boot/pc98/libpc98/bioscd.c	Fri Mar 20 12:26:42 2009	(r190146)
+++ head/sys/boot/pc98/libpc98/bioscd.c	Fri Mar 20 13:03:33 2009	(r190147)
@@ -319,11 +319,11 @@ bc_read(int unit, daddr_t dblk, int blks
 			v86.ctl = V86_FLAGS;
 			v86.addr = 0x1b;
 			v86.eax = 0x0600 | (biosdev & 0x7f);
-			v86.ebx = blks * BIOSCD_SECSIZE;
+			v86.ebx = x * BIOSCD_SECSIZE;
 			v86.ecx = dblk & 0xffff;
 			v86.edx = (dblk >> 16) & 0xffff;
-			v86.ebp = VTOPOFF(dest);
-			v86.es = VTOPSEG(dest);
+			v86.ebp = VTOPOFF(xp);
+			v86.es = VTOPSEG(xp);
 			v86int();
 			result = (v86.efl & PSL_C);
 			if (result == 0)

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 13:13:53 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 00D9D106564A;
	Fri, 20 Mar 2009 13:13:53 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7977B8FC14;
	Fri, 20 Mar 2009 13:13:51 +0000 (UTC) (envelope-from bms@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KDDpx6003014;
	Fri, 20 Mar 2009 13:13:51 GMT (envelope-from bms@svn.freebsd.org)
Received: (from bms@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KDDp0n003013;
	Fri, 20 Mar 2009 13:13:51 GMT (envelope-from bms@svn.freebsd.org)
Message-Id: <200903201313.n2KDDp0n003013@svn.freebsd.org>
From: Bruce M Simpson 
Date: Fri, 20 Mar 2009 13:13:51 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
X-SVN-Group: head
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190148 - head/sys/netinet
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 13:13:53 -0000

Author: bms
Date: Fri Mar 20 13:13:50 2009
New Revision: 190148
URL: http://svn.freebsd.org/changeset/base/190148

Log:
  Fix brainos introduced during mechanical KTR change.
  
  Pointy hat to:	bms

Modified:
  head/sys/netinet/ip_mroute.c

Modified: head/sys/netinet/ip_mroute.c
==============================================================================
--- head/sys/netinet/ip_mroute.c	Fri Mar 20 13:03:33 2009	(r190147)
+++ head/sys/netinet/ip_mroute.c	Fri Mar 20 13:13:50 2009	(r190148)
@@ -77,6 +77,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -930,7 +931,7 @@ add_vif(struct vifctl *vifcp)
     VIF_UNLOCK();
 
     CTR4(KTR_IPMF, "%s: add vif %d laddr %s thresh %x", __func__,
-	(int)vifcp->vifc_vifi, inet_ntoa(&vifcp->vifc_lcl_addr),
+	(int)vifcp->vifc_vifi, inet_ntoa(vifcp->vifc_lcl_addr),
 	(int)vifcp->vifc_threshold);
 
     return 0;
@@ -1060,7 +1061,7 @@ add_mfc(struct mfcctl2 *mfccp)
     /* If an entry already exists, just update the fields */
     if (rt) {
 	CTR4(KTR_IPMF, "%s: update mfc orig %s group %lx parent %x",
-	    __func__, inet_ntoa(&mfccp->mfcc_origin),
+	    __func__, inet_ntoa(mfccp->mfcc_origin),
 	    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
 	    mfccp->mfcc_parent);
 	update_mfc_params(rt, mfccp);
@@ -1080,7 +1081,7 @@ add_mfc(struct mfcctl2 *mfccp)
 	    !TAILQ_EMPTY(&rt->mfc_stall)) {
 		CTR5(KTR_IPMF,
 		    "%s: add mfc orig %s group %lx parent %x qh %p",
-		    __func__, inet_ntoa(&mfccp->mfcc_origin),
+		    __func__, inet_ntoa(mfccp->mfcc_origin),
 		    (u_long)ntohl(mfccp->mfcc_mcastgrp.s_addr),
 		    mfccp->mfcc_parent,
 		    TAILQ_FIRST(&rt->mfc_stall));
@@ -1225,7 +1226,7 @@ X_ip_mforward(struct ip *ip, struct ifne
     vifi_t vifi;
 
     CTR3(KTR_IPMF, "ip_mforward: delete mfc orig %s group %lx ifp %p",
-	inet_ntoa(ip->ip_src), (u_long)ntohl(mcastgrp.s_addr), ifp);
+	inet_ntoa(ip->ip_src), (u_long)ntohl(ip->ip_dst.s_addr), ifp);
 
     if (ip->ip_hl < (sizeof(struct ip) + TUNNEL_LEN) >> 2 ||
 		((u_char *)(ip + 1))[1] != IPOPT_LSRR ) {
@@ -2563,7 +2564,7 @@ pim_input(struct mbuf *m, int off)
     if (datalen < PIM_MINLEN) {
 	pimstat.pims_rcv_tooshort++;
 	CTR3(KTR_IPMF, "%s: short packet (%d) from %s",
-	    __func__, datalen, inet_ntoa(&ip->ip_src));
+	    __func__, datalen, inet_ntoa(ip->ip_src));
 	m_freem(m);
 	return;
     }

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 13:26:34 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 84BFC106564A;
	Fri, 20 Mar 2009 13:26:34 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5873D8FC14;
	Fri, 20 Mar 2009 13:26:34 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KDQY0s003325;
	Fri, 20 Mar 2009 13:26:34 GMT (envelope-from rpaulo@svn.freebsd.org)
Received: (from rpaulo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KDQYek003324;
	Fri, 20 Mar 2009 13:26:34 GMT (envelope-from rpaulo@svn.freebsd.org)
Message-Id: <200903201326.n2KDQYek003324@svn.freebsd.org>
From: Rui Paulo 
Date: Fri, 20 Mar 2009 13:26:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-svnadmin@freebsd.org
X-SVN-Group: svnadmin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190149 - svnadmin/conf
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 13:26:35 -0000

Author: rpaulo
Date: Fri Mar 20 13:26:33 2009
New Revision: 190149
URL: http://svn.freebsd.org/changeset/base/190149

Log:
  Add vendor/tcpdump.

Modified:
  svnadmin/conf/paths

Modified: svnadmin/conf/paths
==============================================================================
--- svnadmin/conf/paths	Fri Mar 20 13:13:50 2009	(r190148)
+++ svnadmin/conf/paths	Fri Mar 20 13:26:33 2009	(r190149)
@@ -69,3 +69,4 @@
 ^vendor-crypto/openssl
 ^vendor-sys/pf
 ^vendor-sys/ath
+^vendor/tcpdump

From owner-svn-src-all@FreeBSD.ORG  Fri Mar 20 13:27:54 2009
Return-Path: 
Delivered-To: svn-src-all@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4F25C1065673;
	Fri, 20 Mar 2009 13:27:54 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 333C08FC08;
	Fri, 20 Mar 2009 13:27:54 +0000 (UTC)
	(envelope-from rpaulo@FreeBSD.org)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2KDRskE003406;
	Fri, 20 Mar 2009 13:27:54 GMT (envelope-from rpaulo@svn.freebsd.org)
Received: (from rpaulo@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2KDRrt6003396;
	Fri, 20 Mar 2009 13:27:53 GMT (envelope-from rpaulo@svn.freebsd.org)
Message-Id: <200903201327.n2KDRrt6003396@svn.freebsd.org>
From: Rui Paulo 
Date: Fri, 20 Mar 2009 13:27:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-vendor@freebsd.org
X-SVN-Group: vendor
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r190150 - in vendor/tcpdump: 3.2.1 3.2.1/contrib
	3.2.1/lbl 3.3 3.3/contrib 3.3/lbl 3.4 3.4/contrib 3.4/lbl 3.5
	3.5/contrib 3.5/lbl 3.5/missing 3.6.2 3.6.2/contrib 3.6.2/lbl
	3.6.2/missin...
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the entire src tree \(except for "
	user" and " projects" \)" 
List-Unsubscribe: ,
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: ,
	
X-List-Received-Date: Fri, 20 Mar 2009 13:27:55 -0000

Author: rpaulo
Date: Fri Mar 20 13:27:51 2009
New Revision: 190150
URL: http://svn.freebsd.org/changeset/base/190150

Log:
  Flatten vendor/tcpdump and remove keyword expansion.

Added:
  vendor/tcpdump/3.2.1/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.2.1/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/FILES
  vendor/tcpdump/3.2.1/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.2.1/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.2.1/README
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/README
  vendor/tcpdump/3.2.1/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/VERSION
  vendor/tcpdump/3.2.1/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.2.1/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.2.1/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.2.1/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.2.1/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.2.1/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.2.1/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.2.1/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/config.guess
  vendor/tcpdump/3.2.1/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/config.sub
  vendor/tcpdump/3.2.1/configure
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/configure
  vendor/tcpdump/3.2.1/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/configure.in
  vendor/tcpdump/3.2.1/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.2.1/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.2.1/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/extract.h
  vendor/tcpdump/3.2.1/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.2.1/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.2.1/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/install-sh
  vendor/tcpdump/3.2.1/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/interface.h
  vendor/tcpdump/3.2.1/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.2.1/lbl/
     - copied from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/lbl/
  vendor/tcpdump/3.2.1/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/llc.h
  vendor/tcpdump/3.2.1/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.2.1/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.2.1/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/makemib
  vendor/tcpdump/3.2.1/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/mib.h
  vendor/tcpdump/3.2.1/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/mkdep
  vendor/tcpdump/3.2.1/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.2.1/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.2.1/nfsv2.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/nfsv2.h
  vendor/tcpdump/3.2.1/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.2.1/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.2.1/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.2.1/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.2.1/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.2.1/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.2.1/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.2.1/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.2.1/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.2.1/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.2.1/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.2.1/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.2.1/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.2.1/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.2.1/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.2.1/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.2.1/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.2.1/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.2.1/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.2.1/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.2.1/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.2.1/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.2.1/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.2.1/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.2.1/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.2.1/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.2.1/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.2.1/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.2.1/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.2.1/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.2.1/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.2.1/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.2.1/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.2.1/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.2.1/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.2.1/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.2.1/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.2.1/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.2.1/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.2.1/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.2.1/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.2.1/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/util.c
  vendor/tcpdump/3.2.1/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.3/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.3/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/FILES
  vendor/tcpdump/3.3/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.3/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.3/README
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/README
  vendor/tcpdump/3.3/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/VERSION
  vendor/tcpdump/3.3/acsite.m4
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/acsite.m4
  vendor/tcpdump/3.3/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.3/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.3/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.3/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.3/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.3/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.3/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/config.guess
  vendor/tcpdump/3.3/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/config.sub
  vendor/tcpdump/3.3/configure
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/configure
  vendor/tcpdump/3.3/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/configure.in
  vendor/tcpdump/3.3/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.3/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.3/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/extract.h
  vendor/tcpdump/3.3/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.3/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.3/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/install-sh
  vendor/tcpdump/3.3/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/interface.h
  vendor/tcpdump/3.3/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.3/lbl/
     - copied from r190147, vendor/tcpdump/3.3/contrib/tcpdump/lbl/
  vendor/tcpdump/3.3/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/llc.h
  vendor/tcpdump/3.3/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.3/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.3/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/makemib
  vendor/tcpdump/3.3/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/mib.h
  vendor/tcpdump/3.3/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/mkdep
  vendor/tcpdump/3.3/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.3/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.3/nfsv2.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/nfsv2.h
  vendor/tcpdump/3.3/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.3/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.3/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.3/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.3/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.3/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.3/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.3/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.3/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.3/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.3/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.3/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.3/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.3/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.3/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.3/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.3/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.3/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.3/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.3/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.3/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.3/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.3/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.3/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.3/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.3/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.3/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.3/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.3/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.3/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.3/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.3/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.3/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.3/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.3/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.3/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.3/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.3/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.3/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.3/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.3/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.3/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.3/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/util.c
  vendor/tcpdump/3.3/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.3/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.4/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.4/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/FILES
  vendor/tcpdump/3.4/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.4/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.4/README
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/README
  vendor/tcpdump/3.4/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/VERSION
  vendor/tcpdump/3.4/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.4/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.4/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.4/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.4/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.4/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.4/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.4/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/config.guess
  vendor/tcpdump/3.4/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/config.sub
  vendor/tcpdump/3.4/configure
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/configure
  vendor/tcpdump/3.4/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/configure.in
  vendor/tcpdump/3.4/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.4/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.4/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/extract.h
  vendor/tcpdump/3.4/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.4/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.4/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.4/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.4/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/install-sh
  vendor/tcpdump/3.4/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/interface.h
  vendor/tcpdump/3.4/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.4/lbl/
     - copied from r190147, vendor/tcpdump/3.4/contrib/tcpdump/lbl/
  vendor/tcpdump/3.4/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/llc.h
  vendor/tcpdump/3.4/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.4/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.4/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/makemib
  vendor/tcpdump/3.4/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/mib.h
  vendor/tcpdump/3.4/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/mkdep
  vendor/tcpdump/3.4/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.4/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.4/nfsv2.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/nfsv2.h
  vendor/tcpdump/3.4/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.4/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.4/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.4/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.4/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.4/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.4/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.4/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.4/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.4/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.4/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.4/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.4/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.4/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.4/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.4/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.4/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.4/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.4/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.4/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.4/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.4/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.4/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.4/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.4/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.4/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.4/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.4/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.4/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.4/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.4/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.4/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.4/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.4/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.4/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.4/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.4/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.4/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.4/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.4/savestr.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/savestr.c
  vendor/tcpdump/3.4/savestr.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/savestr.h
  vendor/tcpdump/3.4/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.4/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.4/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.4/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.4/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.4/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.4/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.4/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/util.c
  vendor/tcpdump/3.4/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.4/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.5/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.5/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/FILES
  vendor/tcpdump/3.5/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.5/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.5/README
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/README
  vendor/tcpdump/3.5/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/VERSION
  vendor/tcpdump/3.5/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.5/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.5/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.5/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.5/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.5/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.5/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.5/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.5/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/config.guess
  vendor/tcpdump/3.5/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.5/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/config.sub
  vendor/tcpdump/3.5/configure
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/configure
  vendor/tcpdump/3.5/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/configure.in
  vendor/tcpdump/3.5/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.5/dhcp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/dhcp6.h
  vendor/tcpdump/3.5/dhcp6opt.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/dhcp6opt.h
  vendor/tcpdump/3.5/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.5/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/extract.h
  vendor/tcpdump/3.5/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.5/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.5/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.5/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.5/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/install-sh
  vendor/tcpdump/3.5/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/interface.h
  vendor/tcpdump/3.5/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.5/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.5/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.5/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.5/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/lane.h
  vendor/tcpdump/3.5/lbl/
     - copied from r190147, vendor/tcpdump/3.5/contrib/tcpdump/lbl/
  vendor/tcpdump/3.5/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/llc.h
  vendor/tcpdump/3.5/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.5/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.5/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/makemib
  vendor/tcpdump/3.5/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/mib.h
  vendor/tcpdump/3.5/missing/
     - copied from r190147, vendor/tcpdump/3.5/contrib/tcpdump/missing/
  vendor/tcpdump/3.5/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/mkdep
  vendor/tcpdump/3.5/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.5/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.5/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.5/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.5/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.5/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.5/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.5/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.5/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.5/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.5/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.5/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.5/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.5/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.5/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.5/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.5/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.5/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.5/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.5/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.5/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.5/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.5/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.5/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.5/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.5/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.5/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.5/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.5/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.5/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.5/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.5/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.5/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.5/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.5/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.5/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.5/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.5/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.5/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.5/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.5/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.5/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.5/print-lcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/3.5/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.5/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.5/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.5/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.5/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.5/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.5/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.5/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.5/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.5/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.5/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.5/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.5/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.5/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.5/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.5/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.5/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.5/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.5/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.5/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.5/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.5/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.5/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.5/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.5/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.5/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.5/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.5/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/rx.h
  vendor/tcpdump/3.5/savestr.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/savestr.c
  vendor/tcpdump/3.5/savestr.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/savestr.h
  vendor/tcpdump/3.5/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.5/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.5/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.5/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/smb.h
  vendor/tcpdump/3.5/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.5/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.5/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.5/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.5/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.5/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/util.c
  vendor/tcpdump/3.5/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.5/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.6.2/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.6.2/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.6.2/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/FILES
  vendor/tcpdump/3.6.2/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.6.2/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.6.2/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.6.2/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.6.2/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.6.2/README
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/README
  vendor/tcpdump/3.6.2/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/TODO
  vendor/tcpdump/3.6.2/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/VERSION
  vendor/tcpdump/3.6.2/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.6.2/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.6.2/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.6.2/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.6.2/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ah.h
  vendor/tcpdump/3.6.2/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.6.2/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.6.2/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.6.2/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.6.2/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.6.2/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/config.guess
  vendor/tcpdump/3.6.2/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.6.2/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/config.sub
  vendor/tcpdump/3.6.2/configure
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/configure
  vendor/tcpdump/3.6.2/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/configure.in
  vendor/tcpdump/3.6.2/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.6.2/dhcp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/dhcp6.h
  vendor/tcpdump/3.6.2/dhcp6opt.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/dhcp6opt.h
  vendor/tcpdump/3.6.2/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/esp.h
  vendor/tcpdump/3.6.2/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ether.h
  vendor/tcpdump/3.6.2/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.6.2/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/extract.h
  vendor/tcpdump/3.6.2/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.6.2/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.6.2/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.6.2/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.6.2/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.6.2/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/install-sh
  vendor/tcpdump/3.6.2/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/interface.h
  vendor/tcpdump/3.6.2/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ip.h
  vendor/tcpdump/3.6.2/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.6.2/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.6.2/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.6.2/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.6.2/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.6.2/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/lane.h
  vendor/tcpdump/3.6.2/lbl/
     - copied from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/lbl/
  vendor/tcpdump/3.6.2/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/llc.h
  vendor/tcpdump/3.6.2/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.6.2/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.6.2/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/makemib
  vendor/tcpdump/3.6.2/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/mib.h
  vendor/tcpdump/3.6.2/missing/
     - copied from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/missing/
  vendor/tcpdump/3.6.2/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/mkdep
  vendor/tcpdump/3.6.2/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.6.2/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.6.2/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.6.2/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.6.2/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.6.2/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.6.2/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.6.2/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.6.2/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.6.2/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.6.2/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.6.2/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.6.2/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.6.2/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.6.2/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.6.2/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.6.2/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.6.2/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.6.2/print-bxxp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-bxxp.c
  vendor/tcpdump/3.6.2/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.6.2/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.6.2/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.6.2/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.6.2/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.6.2/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.6.2/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.6.2/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.6.2/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.6.2/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.6.2/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.6.2/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.6.2/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.6.2/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.6.2/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.6.2/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.6.2/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.6.2/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.6.2/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.6.2/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.6.2/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.6.2/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.6.2/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.6.2/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.6.2/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.6.2/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.6.2/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.6.2/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.6.2/print-lcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/3.6.2/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.6.2/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.6.2/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.6.2/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.6.2/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.6.2/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.6.2/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.6.2/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.6.2/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.6.2/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.6.2/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.6.2/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.6.2/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.6.2/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.6.2/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.6.2/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.6.2/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.6.2/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.6.2/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.6.2/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.6.2/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.6.2/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.6.2/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.6.2/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.6.2/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.6.2/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.6.2/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.6.2/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.6.2/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.6.2/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.6.2/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.6.2/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.6.2/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.6.2/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/rx.h
  vendor/tcpdump/3.6.2/savestr.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/savestr.c
  vendor/tcpdump/3.6.2/savestr.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/savestr.h
  vendor/tcpdump/3.6.2/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.6.2/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.6.2/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.6.2/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.6.2/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/slip.h
  vendor/tcpdump/3.6.2/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/sll.h
  vendor/tcpdump/3.6.2/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/smb.h
  vendor/tcpdump/3.6.2/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.6.2/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.6.2/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.6.2/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.6.2/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.6.2/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.6.2/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/timed.h
  vendor/tcpdump/3.6.2/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/token.h
  vendor/tcpdump/3.6.2/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/udp.h
  vendor/tcpdump/3.6.2/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/util.c
  vendor/tcpdump/3.6.2/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.2/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.6.3/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.6.3/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.6.3/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/FILES
  vendor/tcpdump/3.6.3/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.6.3/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.6.3/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.6.3/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.6.3/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.6.3/README
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/README
  vendor/tcpdump/3.6.3/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/TODO
  vendor/tcpdump/3.6.3/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/VERSION
  vendor/tcpdump/3.6.3/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.6.3/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.6.3/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.6.3/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.6.3/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ah.h
  vendor/tcpdump/3.6.3/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.6.3/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.6.3/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.6.3/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.6.3/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.6.3/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/config.guess
  vendor/tcpdump/3.6.3/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.6.3/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/config.sub
  vendor/tcpdump/3.6.3/configure
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/configure
  vendor/tcpdump/3.6.3/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/configure.in
  vendor/tcpdump/3.6.3/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.6.3/dhcp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/dhcp6.h
  vendor/tcpdump/3.6.3/dhcp6opt.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/dhcp6opt.h
  vendor/tcpdump/3.6.3/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/esp.h
  vendor/tcpdump/3.6.3/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ether.h
  vendor/tcpdump/3.6.3/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.6.3/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/extract.h
  vendor/tcpdump/3.6.3/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.6.3/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.6.3/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.6.3/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.6.3/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.6.3/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/install-sh
  vendor/tcpdump/3.6.3/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/interface.h
  vendor/tcpdump/3.6.3/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ip.h
  vendor/tcpdump/3.6.3/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.6.3/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.6.3/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.6.3/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.6.3/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.6.3/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/lane.h
  vendor/tcpdump/3.6.3/lbl/
     - copied from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/lbl/
  vendor/tcpdump/3.6.3/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/llc.h
  vendor/tcpdump/3.6.3/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.6.3/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.6.3/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/makemib
  vendor/tcpdump/3.6.3/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/mib.h
  vendor/tcpdump/3.6.3/missing/
     - copied from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/missing/
  vendor/tcpdump/3.6.3/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/mkdep
  vendor/tcpdump/3.6.3/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.6.3/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.6.3/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.6.3/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.6.3/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.6.3/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.6.3/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.6.3/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.6.3/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.6.3/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.6.3/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.6.3/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.6.3/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.6.3/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.6.3/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.6.3/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.6.3/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.6.3/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.6.3/print-bxxp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-bxxp.c
  vendor/tcpdump/3.6.3/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.6.3/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.6.3/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.6.3/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.6.3/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.6.3/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.6.3/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.6.3/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.6.3/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.6.3/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.6.3/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.6.3/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.6.3/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.6.3/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.6.3/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.6.3/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.6.3/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.6.3/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.6.3/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.6.3/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.6.3/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.6.3/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.6.3/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.6.3/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.6.3/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.6.3/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.6.3/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.6.3/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.6.3/print-lcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/3.6.3/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.6.3/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.6.3/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.6.3/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.6.3/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.6.3/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.6.3/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.6.3/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.6.3/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.6.3/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.6.3/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.6.3/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.6.3/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.6.3/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.6.3/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.6.3/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.6.3/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.6.3/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.6.3/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.6.3/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.6.3/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.6.3/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.6.3/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.6.3/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.6.3/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.6.3/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.6.3/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.6.3/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.6.3/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.6.3/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.6.3/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.6.3/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.6.3/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.6.3/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/rx.h
  vendor/tcpdump/3.6.3/savestr.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/savestr.c
  vendor/tcpdump/3.6.3/savestr.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/savestr.h
  vendor/tcpdump/3.6.3/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.6.3/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.6.3/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.6.3/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.6.3/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/slip.h
  vendor/tcpdump/3.6.3/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/sll.h
  vendor/tcpdump/3.6.3/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/smb.h
  vendor/tcpdump/3.6.3/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.6.3/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.6.3/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.6.3/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.6.3/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.6.3/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.6.3/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/timed.h
  vendor/tcpdump/3.6.3/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/token.h
  vendor/tcpdump/3.6.3/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/udp.h
  vendor/tcpdump/3.6.3/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/util.c
  vendor/tcpdump/3.6.3/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.6.3/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.7.1/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.7.1/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.7.1/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/FILES
  vendor/tcpdump/3.7.1/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.7.1/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.7.1/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.7.1/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.7.1/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.7.1/README
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/README
  vendor/tcpdump/3.7.1/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/TODO
  vendor/tcpdump/3.7.1/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/VERSION
  vendor/tcpdump/3.7.1/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.7.1/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.7.1/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.7.1/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.7.1/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ah.h
  vendor/tcpdump/3.7.1/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.7.1/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.7.1/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.7.1/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.7.1/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.7.1/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.7.1/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/config.guess
  vendor/tcpdump/3.7.1/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.7.1/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/config.sub
  vendor/tcpdump/3.7.1/configure
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/configure
  vendor/tcpdump/3.7.1/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/configure.in
  vendor/tcpdump/3.7.1/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.7.1/dhcp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/dhcp6.h
  vendor/tcpdump/3.7.1/dhcp6opt.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/dhcp6opt.h
  vendor/tcpdump/3.7.1/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/esp.h
  vendor/tcpdump/3.7.1/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ether.h
  vendor/tcpdump/3.7.1/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.7.1/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/extract.h
  vendor/tcpdump/3.7.1/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.7.1/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.7.1/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.7.1/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.7.1/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.7.1/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.7.1/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/install-sh
  vendor/tcpdump/3.7.1/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/interface.h
  vendor/tcpdump/3.7.1/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ip.h
  vendor/tcpdump/3.7.1/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.7.1/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.7.1/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.7.1/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.7.1/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.7.1/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/lane.h
  vendor/tcpdump/3.7.1/lbl/
     - copied from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/lbl/
  vendor/tcpdump/3.7.1/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/llc.h
  vendor/tcpdump/3.7.1/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.7.1/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.7.1/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/makemib
  vendor/tcpdump/3.7.1/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/mib.h
  vendor/tcpdump/3.7.1/missing/
     - copied from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/missing/
  vendor/tcpdump/3.7.1/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/mkdep
  vendor/tcpdump/3.7.1/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.7.1/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.7.1/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.7.1/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.7.1/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.7.1/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.7.1/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.7.1/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.7.1/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.7.1/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.7.1/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.7.1/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.7.1/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.7.1/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.7.1/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.7.1/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.7.1/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.7.1/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.7.1/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.7.1/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.7.1/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.7.1/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.7.1/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.7.1/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.7.1/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.7.1/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.7.1/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.7.1/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.7.1/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.7.1/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.7.1/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.7.1/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.7.1/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.7.1/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.7.1/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.7.1/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.7.1/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.7.1/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.7.1/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.7.1/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.7.1/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.7.1/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.7.1/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.7.1/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.7.1/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.7.1/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.7.1/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.7.1/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.7.1/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.7.1/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.7.1/print-lcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/3.7.1/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.7.1/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.7.1/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.7.1/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.7.1/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.7.1/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.7.1/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.7.1/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.7.1/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.7.1/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.7.1/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.7.1/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.7.1/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.7.1/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.7.1/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.7.1/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.7.1/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.7.1/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.7.1/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.7.1/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.7.1/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.7.1/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.7.1/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.7.1/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.7.1/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.7.1/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.7.1/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.7.1/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.7.1/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.7.1/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.7.1/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.7.1/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.7.1/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.7.1/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.7.1/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.7.1/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.7.1/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.7.1/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.7.1/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.7.1/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/rx.h
  vendor/tcpdump/3.7.1/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.7.1/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.7.1/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.7.1/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.7.1/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.7.1/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.7.1/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/slip.h
  vendor/tcpdump/3.7.1/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/sll.h
  vendor/tcpdump/3.7.1/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/smb.h
  vendor/tcpdump/3.7.1/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.7.1/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.7.1/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.7.1/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.7.1/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.7.1/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.7.1/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.7.1/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/timed.h
  vendor/tcpdump/3.7.1/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/token.h
  vendor/tcpdump/3.7.1/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/udp.h
  vendor/tcpdump/3.7.1/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/util.c
  vendor/tcpdump/3.7.1/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.1/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.7.2/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.7.2/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.7.2/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/FILES
  vendor/tcpdump/3.7.2/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.7.2/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.7.2/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.7.2/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.7.2/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.7.2/README
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/README
  vendor/tcpdump/3.7.2/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/TODO
  vendor/tcpdump/3.7.2/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/VERSION
  vendor/tcpdump/3.7.2/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.7.2/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.7.2/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.7.2/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.7.2/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ah.h
  vendor/tcpdump/3.7.2/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.7.2/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.7.2/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.7.2/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.7.2/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.7.2/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.7.2/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/config.guess
  vendor/tcpdump/3.7.2/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.7.2/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/config.sub
  vendor/tcpdump/3.7.2/configure
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/configure
  vendor/tcpdump/3.7.2/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/configure.in
  vendor/tcpdump/3.7.2/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.7.2/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/esp.h
  vendor/tcpdump/3.7.2/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ether.h
  vendor/tcpdump/3.7.2/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.7.2/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/extract.h
  vendor/tcpdump/3.7.2/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.7.2/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.7.2/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.7.2/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.7.2/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.7.2/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.7.2/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/install-sh
  vendor/tcpdump/3.7.2/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/interface.h
  vendor/tcpdump/3.7.2/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ip.h
  vendor/tcpdump/3.7.2/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.7.2/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.7.2/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.7.2/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.7.2/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.7.2/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/lane.h
  vendor/tcpdump/3.7.2/lbl/
     - copied from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/lbl/
  vendor/tcpdump/3.7.2/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/llc.h
  vendor/tcpdump/3.7.2/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.7.2/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.7.2/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/makemib
  vendor/tcpdump/3.7.2/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/mib.h
  vendor/tcpdump/3.7.2/missing/
     - copied from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/missing/
  vendor/tcpdump/3.7.2/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/mkdep
  vendor/tcpdump/3.7.2/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.7.2/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.7.2/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.7.2/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.7.2/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.7.2/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.7.2/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.7.2/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.7.2/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.7.2/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.7.2/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.7.2/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.7.2/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.7.2/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.7.2/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.7.2/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.7.2/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.7.2/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.7.2/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.7.2/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.7.2/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.7.2/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.7.2/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.7.2/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.7.2/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.7.2/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.7.2/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.7.2/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.7.2/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.7.2/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.7.2/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.7.2/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.7.2/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.7.2/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.7.2/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.7.2/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.7.2/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.7.2/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.7.2/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.7.2/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.7.2/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.7.2/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.7.2/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.7.2/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.7.2/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.7.2/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.7.2/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.7.2/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.7.2/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.7.2/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.7.2/print-lcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/3.7.2/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.7.2/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.7.2/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.7.2/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.7.2/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.7.2/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.7.2/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.7.2/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.7.2/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.7.2/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.7.2/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.7.2/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.7.2/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.7.2/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.7.2/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.7.2/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.7.2/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.7.2/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.7.2/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.7.2/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.7.2/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.7.2/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.7.2/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.7.2/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.7.2/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.7.2/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.7.2/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.7.2/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.7.2/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.7.2/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.7.2/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.7.2/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.7.2/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.7.2/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.7.2/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.7.2/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.7.2/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.7.2/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.7.2/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.7.2/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/rx.h
  vendor/tcpdump/3.7.2/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.7.2/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.7.2/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.7.2/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.7.2/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.7.2/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.7.2/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/slip.h
  vendor/tcpdump/3.7.2/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/sll.h
  vendor/tcpdump/3.7.2/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/smb.h
  vendor/tcpdump/3.7.2/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.7.2/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.7.2/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.7.2/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.7.2/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.7.2/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.7.2/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.7.2/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/timed.h
  vendor/tcpdump/3.7.2/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/token.h
  vendor/tcpdump/3.7.2/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/udp.h
  vendor/tcpdump/3.7.2/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/util.c
  vendor/tcpdump/3.7.2/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.7.2/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.8.3/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.8.3/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.8.3/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/FILES
  vendor/tcpdump/3.8.3/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.8.3/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.8.3/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.8.3/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.8.3/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.8.3/README
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/README
  vendor/tcpdump/3.8.3/Readme.Win32
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/3.8.3/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/TODO
  vendor/tcpdump/3.8.3/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/VERSION
  vendor/tcpdump/3.8.3/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.8.3/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.8.3/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.8.3/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.8.3/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ah.h
  vendor/tcpdump/3.8.3/aodv.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/aodv.h
  vendor/tcpdump/3.8.3/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.8.3/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.8.3/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.8.3/atm.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/atm.h
  vendor/tcpdump/3.8.3/atmuni31.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/3.8.3/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.8.3/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.8.3/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.8.3/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/config.guess
  vendor/tcpdump/3.8.3/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.8.3/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/config.sub
  vendor/tcpdump/3.8.3/configure
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/configure
  vendor/tcpdump/3.8.3/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/configure.in
  vendor/tcpdump/3.8.3/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.8.3/enc.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/enc.h
  vendor/tcpdump/3.8.3/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/esp.h
  vendor/tcpdump/3.8.3/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ether.h
  vendor/tcpdump/3.8.3/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.8.3/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/extract.h
  vendor/tcpdump/3.8.3/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.8.3/gmpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/gmpls.c
  vendor/tcpdump/3.8.3/gmpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/gmpls.h
  vendor/tcpdump/3.8.3/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.8.3/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.8.3/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.8.3/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.8.3/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.8.3/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/install-sh
  vendor/tcpdump/3.8.3/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/interface.h
  vendor/tcpdump/3.8.3/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ip.h
  vendor/tcpdump/3.8.3/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.8.3/ipfc.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ipfc.h
  vendor/tcpdump/3.8.3/ipproto.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ipproto.h
  vendor/tcpdump/3.8.3/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.8.3/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.8.3/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.8.3/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.8.3/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/lane.h
  vendor/tcpdump/3.8.3/lbl/
     - copied from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/lbl/
  vendor/tcpdump/3.8.3/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/llc.h
  vendor/tcpdump/3.8.3/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.8.3/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.8.3/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/makemib
  vendor/tcpdump/3.8.3/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/mib.h
  vendor/tcpdump/3.8.3/missing/
     - copied from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/missing/
  vendor/tcpdump/3.8.3/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/mkdep
  vendor/tcpdump/3.8.3/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.8.3/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.8.3/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.8.3/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.8.3/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.8.3/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.8.3/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.8.3/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.8.3/oui.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/oui.c
  vendor/tcpdump/3.8.3/oui.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/oui.h
  vendor/tcpdump/3.8.3/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.8.3/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.8.3/pcap-missing.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/3.8.3/pf.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/pf.h
  vendor/tcpdump/3.8.3/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.8.3/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.8.3/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.8.3/print-aodv.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/3.8.3/print-ap1394.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/3.8.3/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.8.3/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.8.3/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.8.3/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.8.3/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.8.3/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.8.3/print-bfd.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/3.8.3/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.8.3/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.8.3/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.8.3/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.8.3/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.8.3/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.8.3/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.8.3/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.8.3/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.8.3/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.8.3/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.8.3/print-enc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-enc.c
  vendor/tcpdump/3.8.3/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.8.3/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.8.3/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.8.3/print-fr.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-fr.c
  vendor/tcpdump/3.8.3/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.8.3/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.8.3/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.8.3/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.8.3/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.8.3/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.8.3/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.8.3/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.8.3/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.8.3/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.8.3/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.8.3/print-ipfc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/3.8.3/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.8.3/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.8.3/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.8.3/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.8.3/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.8.3/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.8.3/print-ldp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/3.8.3/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.8.3/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.8.3/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.8.3/print-mobility.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/3.8.3/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.8.3/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.8.3/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.8.3/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.8.3/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.8.3/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.8.3/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.8.3/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.8.3/print-pflog.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/3.8.3/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.8.3/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.8.3/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.8.3/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.8.3/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.8.3/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.8.3/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.8.3/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.8.3/print-rsvp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/3.8.3/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.8.3/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.8.3/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.8.3/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.8.3/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.8.3/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.8.3/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.8.3/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.8.3/print-sunatm.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/3.8.3/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.8.3/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.8.3/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.8.3/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.8.3/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.8.3/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.8.3/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.8.3/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.8.3/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.8.3/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.8.3/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.8.3/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.8.3/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/rx.h
  vendor/tcpdump/3.8.3/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.8.3/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.8.3/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.8.3/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.8.3/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.8.3/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.8.3/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/slip.h
  vendor/tcpdump/3.8.3/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/sll.h
  vendor/tcpdump/3.8.3/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/smb.h
  vendor/tcpdump/3.8.3/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.8.3/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.8.3/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.8.3/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.8.3/tcpdump-stdinc.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/3.8.3/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.8.3/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.8.3/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.8.3/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/timed.h
  vendor/tcpdump/3.8.3/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/token.h
  vendor/tcpdump/3.8.3/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/udp.h
  vendor/tcpdump/3.8.3/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/util.c
  vendor/tcpdump/3.8.3/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.8.3/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.9.1-096/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.9.1-096/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.9.1-096/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/FILES
  vendor/tcpdump/3.9.1-096/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.9.1-096/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.9.1-096/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.9.1-096/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.9.1-096/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.9.1-096/README
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/README
  vendor/tcpdump/3.9.1-096/Readme.Win32
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/3.9.1-096/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/TODO
  vendor/tcpdump/3.9.1-096/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/VERSION
  vendor/tcpdump/3.9.1-096/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.9.1-096/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.9.1-096/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.9.1-096/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.9.1-096/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ah.h
  vendor/tcpdump/3.9.1-096/aodv.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/aodv.h
  vendor/tcpdump/3.9.1-096/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.9.1-096/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.9.1-096/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.9.1-096/atm.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/atm.h
  vendor/tcpdump/3.9.1-096/atmuni31.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/3.9.1-096/bgp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/bgp.h
  vendor/tcpdump/3.9.1-096/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.9.1-096/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.9.1-096/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.9.1-096/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/config.guess
  vendor/tcpdump/3.9.1-096/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.9.1-096/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/config.sub
  vendor/tcpdump/3.9.1-096/configure
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/configure
  vendor/tcpdump/3.9.1-096/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/configure.in
  vendor/tcpdump/3.9.1-096/cpack.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/cpack.c
  vendor/tcpdump/3.9.1-096/cpack.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/cpack.h
  vendor/tcpdump/3.9.1-096/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.9.1-096/decode_prefix.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/decode_prefix.h
  vendor/tcpdump/3.9.1-096/enc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/enc.h
  vendor/tcpdump/3.9.1-096/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/esp.h
  vendor/tcpdump/3.9.1-096/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ether.h
  vendor/tcpdump/3.9.1-096/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.9.1-096/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/extract.h
  vendor/tcpdump/3.9.1-096/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.9.1-096/gmpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/gmpls.c
  vendor/tcpdump/3.9.1-096/gmpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/gmpls.h
  vendor/tcpdump/3.9.1-096/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.9.1-096/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.9.1-096/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.9.1-096/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.9.1-096/ieee802_11_radio.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ieee802_11_radio.h
  vendor/tcpdump/3.9.1-096/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.9.1-096/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/install-sh
  vendor/tcpdump/3.9.1-096/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/interface.h
  vendor/tcpdump/3.9.1-096/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ip.h
  vendor/tcpdump/3.9.1-096/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.9.1-096/ipfc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ipfc.h
  vendor/tcpdump/3.9.1-096/ipproto.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ipproto.c
  vendor/tcpdump/3.9.1-096/ipproto.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ipproto.h
  vendor/tcpdump/3.9.1-096/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.9.1-096/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.9.1-096/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.9.1-096/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.9.1-096/l2vpn.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/l2vpn.c
  vendor/tcpdump/3.9.1-096/l2vpn.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/l2vpn.h
  vendor/tcpdump/3.9.1-096/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/lane.h
  vendor/tcpdump/3.9.1-096/lbl/
     - copied from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/lbl/
  vendor/tcpdump/3.9.1-096/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/llc.h
  vendor/tcpdump/3.9.1-096/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.9.1-096/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.9.1-096/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/makemib
  vendor/tcpdump/3.9.1-096/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/mib.h
  vendor/tcpdump/3.9.1-096/missing/
     - copied from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/missing/
  vendor/tcpdump/3.9.1-096/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/mkdep
  vendor/tcpdump/3.9.1-096/mpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/mpls.h
  vendor/tcpdump/3.9.1-096/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.9.1-096/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.9.1-096/netdissect.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/netdissect.h
  vendor/tcpdump/3.9.1-096/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.9.1-096/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.9.1-096/nlpid.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/nlpid.c
  vendor/tcpdump/3.9.1-096/nlpid.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/nlpid.h
  vendor/tcpdump/3.9.1-096/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.9.1-096/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.9.1-096/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.9.1-096/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.9.1-096/oui.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/oui.c
  vendor/tcpdump/3.9.1-096/oui.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/oui.h
  vendor/tcpdump/3.9.1-096/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.9.1-096/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.9.1-096/pcap-missing.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/3.9.1-096/pf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/pf.h
  vendor/tcpdump/3.9.1-096/pmap_prot.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/pmap_prot.h
  vendor/tcpdump/3.9.1-096/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.9.1-096/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.9.1-096/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.9.1-096/print-aodv.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/3.9.1-096/print-ap1394.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/3.9.1-096/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.9.1-096/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.9.1-096/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.9.1-096/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.9.1-096/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.9.1-096/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.9.1-096/print-bfd.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/3.9.1-096/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.9.1-096/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.9.1-096/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.9.1-096/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.9.1-096/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.9.1-096/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.9.1-096/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.9.1-096/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.9.1-096/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.9.1-096/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.9.1-096/print-eap.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-eap.c
  vendor/tcpdump/3.9.1-096/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.9.1-096/print-eigrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-eigrp.c
  vendor/tcpdump/3.9.1-096/print-enc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-enc.c
  vendor/tcpdump/3.9.1-096/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.9.1-096/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.9.1-096/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.9.1-096/print-fr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-fr.c
  vendor/tcpdump/3.9.1-096/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.9.1-096/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.9.1-096/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.9.1-096/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.9.1-096/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.9.1-096/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.9.1-096/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.9.1-096/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.9.1-096/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.9.1-096/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.9.1-096/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.9.1-096/print-ipfc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/3.9.1-096/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.9.1-096/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.9.1-096/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.9.1-096/print-juniper.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-juniper.c
  vendor/tcpdump/3.9.1-096/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.9.1-096/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.9.1-096/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.9.1-096/print-ldp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/3.9.1-096/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.9.1-096/print-lmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-lmp.c
  vendor/tcpdump/3.9.1-096/print-lspping.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-lspping.c
  vendor/tcpdump/3.9.1-096/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.9.1-096/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.9.1-096/print-mobility.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/3.9.1-096/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.9.1-096/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.9.1-096/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.9.1-096/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.9.1-096/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.9.1-096/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.9.1-096/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.9.1-096/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.9.1-096/print-pflog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/3.9.1-096/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.9.1-096/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.9.1-096/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.9.1-096/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.9.1-096/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.9.1-096/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.9.1-096/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.9.1-096/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.9.1-096/print-rsvp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/3.9.1-096/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.9.1-096/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.9.1-096/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.9.1-096/print-sip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sip.c
  vendor/tcpdump/3.9.1-096/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.9.1-096/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.9.1-096/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.9.1-096/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.9.1-096/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.9.1-096/print-sunatm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/3.9.1-096/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.9.1-096/print-symantec.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-symantec.c
  vendor/tcpdump/3.9.1-096/print-syslog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-syslog.c
  vendor/tcpdump/3.9.1-096/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.9.1-096/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.9.1-096/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.9.1-096/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.9.1-096/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.9.1-096/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.9.1-096/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.9.1-096/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.9.1-096/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.9.1-096/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.9.1-096/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.9.1-096/rpc_auth.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/rpc_auth.h
  vendor/tcpdump/3.9.1-096/rpc_msg.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/rpc_msg.h
  vendor/tcpdump/3.9.1-096/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/rx.h
  vendor/tcpdump/3.9.1-096/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.9.1-096/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.9.1-096/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.9.1-096/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.9.1-096/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.9.1-096/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.9.1-096/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/slip.h
  vendor/tcpdump/3.9.1-096/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/sll.h
  vendor/tcpdump/3.9.1-096/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/smb.h
  vendor/tcpdump/3.9.1-096/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.9.1-096/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.9.1-096/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.9.1-096/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.9.1-096/tcpdump-stdinc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/3.9.1-096/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.9.1-096/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.9.1-096/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.9.1-096/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/timed.h
  vendor/tcpdump/3.9.1-096/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/token.h
  vendor/tcpdump/3.9.1-096/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/udp.h
  vendor/tcpdump/3.9.1-096/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/util.c
  vendor/tcpdump/3.9.1-096/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1-096/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.9.1/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.9.1/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.9.1/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/FILES
  vendor/tcpdump/3.9.1/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.9.1/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.9.1/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.9.1/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.9.1/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.9.1/README
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/README
  vendor/tcpdump/3.9.1/Readme.Win32
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/3.9.1/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/TODO
  vendor/tcpdump/3.9.1/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/VERSION
  vendor/tcpdump/3.9.1/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.9.1/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.9.1/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.9.1/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.9.1/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ah.h
  vendor/tcpdump/3.9.1/aodv.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/aodv.h
  vendor/tcpdump/3.9.1/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.9.1/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.9.1/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.9.1/atm.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/atm.h
  vendor/tcpdump/3.9.1/atmuni31.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/3.9.1/bgp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/bgp.h
  vendor/tcpdump/3.9.1/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.9.1/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.9.1/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.9.1/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/config.guess
  vendor/tcpdump/3.9.1/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.9.1/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/config.sub
  vendor/tcpdump/3.9.1/configure
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/configure
  vendor/tcpdump/3.9.1/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/configure.in
  vendor/tcpdump/3.9.1/cpack.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/cpack.c
  vendor/tcpdump/3.9.1/cpack.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/cpack.h
  vendor/tcpdump/3.9.1/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.9.1/decode_prefix.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/decode_prefix.h
  vendor/tcpdump/3.9.1/enc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/enc.h
  vendor/tcpdump/3.9.1/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/esp.h
  vendor/tcpdump/3.9.1/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ether.h
  vendor/tcpdump/3.9.1/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.9.1/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/extract.h
  vendor/tcpdump/3.9.1/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.9.1/gmpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/gmpls.c
  vendor/tcpdump/3.9.1/gmpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/gmpls.h
  vendor/tcpdump/3.9.1/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.9.1/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.9.1/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.9.1/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.9.1/ieee802_11_radio.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ieee802_11_radio.h
  vendor/tcpdump/3.9.1/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.9.1/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/install-sh
  vendor/tcpdump/3.9.1/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/interface.h
  vendor/tcpdump/3.9.1/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ip.h
  vendor/tcpdump/3.9.1/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.9.1/ipfc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ipfc.h
  vendor/tcpdump/3.9.1/ipproto.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ipproto.c
  vendor/tcpdump/3.9.1/ipproto.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ipproto.h
  vendor/tcpdump/3.9.1/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.9.1/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.9.1/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.9.1/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.9.1/l2vpn.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/l2vpn.c
  vendor/tcpdump/3.9.1/l2vpn.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/l2vpn.h
  vendor/tcpdump/3.9.1/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/lane.h
  vendor/tcpdump/3.9.1/lbl/
     - copied from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/lbl/
  vendor/tcpdump/3.9.1/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/llc.h
  vendor/tcpdump/3.9.1/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.9.1/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.9.1/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/makemib
  vendor/tcpdump/3.9.1/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/mib.h
  vendor/tcpdump/3.9.1/missing/
     - copied from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/missing/
  vendor/tcpdump/3.9.1/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/mkdep
  vendor/tcpdump/3.9.1/mpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/mpls.h
  vendor/tcpdump/3.9.1/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.9.1/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.9.1/netdissect.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/netdissect.h
  vendor/tcpdump/3.9.1/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.9.1/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.9.1/nlpid.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/nlpid.c
  vendor/tcpdump/3.9.1/nlpid.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/nlpid.h
  vendor/tcpdump/3.9.1/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.9.1/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.9.1/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.9.1/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.9.1/oui.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/oui.c
  vendor/tcpdump/3.9.1/oui.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/oui.h
  vendor/tcpdump/3.9.1/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.9.1/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.9.1/pcap-missing.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/3.9.1/pcap_dump_ftell.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/pcap_dump_ftell.c
  vendor/tcpdump/3.9.1/pf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/pf.h
  vendor/tcpdump/3.9.1/pmap_prot.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/pmap_prot.h
  vendor/tcpdump/3.9.1/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.9.1/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.9.1/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.9.1/print-aodv.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/3.9.1/print-ap1394.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/3.9.1/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.9.1/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.9.1/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.9.1/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.9.1/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.9.1/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.9.1/print-bfd.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/3.9.1/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.9.1/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.9.1/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.9.1/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.9.1/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.9.1/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.9.1/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.9.1/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.9.1/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.9.1/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.9.1/print-eap.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-eap.c
  vendor/tcpdump/3.9.1/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.9.1/print-eigrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-eigrp.c
  vendor/tcpdump/3.9.1/print-enc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-enc.c
  vendor/tcpdump/3.9.1/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.9.1/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.9.1/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.9.1/print-fr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-fr.c
  vendor/tcpdump/3.9.1/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.9.1/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.9.1/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.9.1/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.9.1/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.9.1/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.9.1/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.9.1/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.9.1/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.9.1/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.9.1/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.9.1/print-ipfc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/3.9.1/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.9.1/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.9.1/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.9.1/print-juniper.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-juniper.c
  vendor/tcpdump/3.9.1/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.9.1/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.9.1/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.9.1/print-ldp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/3.9.1/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.9.1/print-lmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-lmp.c
  vendor/tcpdump/3.9.1/print-lspping.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-lspping.c
  vendor/tcpdump/3.9.1/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.9.1/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.9.1/print-mobility.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/3.9.1/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.9.1/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.9.1/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.9.1/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.9.1/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.9.1/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.9.1/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.9.1/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.9.1/print-pflog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/3.9.1/print-pgm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-pgm.c
  vendor/tcpdump/3.9.1/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.9.1/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.9.1/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.9.1/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.9.1/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.9.1/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.9.1/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.9.1/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.9.1/print-rsvp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/3.9.1/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.9.1/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.9.1/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.9.1/print-sip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sip.c
  vendor/tcpdump/3.9.1/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.9.1/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.9.1/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.9.1/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.9.1/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.9.1/print-sunatm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/3.9.1/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.9.1/print-symantec.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-symantec.c
  vendor/tcpdump/3.9.1/print-syslog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-syslog.c
  vendor/tcpdump/3.9.1/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.9.1/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.9.1/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.9.1/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.9.1/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.9.1/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.9.1/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.9.1/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.9.1/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.9.1/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.9.1/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.9.1/rpc_auth.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/rpc_auth.h
  vendor/tcpdump/3.9.1/rpc_msg.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/rpc_msg.h
  vendor/tcpdump/3.9.1/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/rx.h
  vendor/tcpdump/3.9.1/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.9.1/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.9.1/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.9.1/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.9.1/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.9.1/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.9.1/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/slip.h
  vendor/tcpdump/3.9.1/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/sll.h
  vendor/tcpdump/3.9.1/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/smb.h
  vendor/tcpdump/3.9.1/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.9.1/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.9.1/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.9.1/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.9.1/tcpdump-stdinc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/3.9.1/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.9.1/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.9.1/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.9.1/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/timed.h
  vendor/tcpdump/3.9.1/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/token.h
  vendor/tcpdump/3.9.1/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/udp.h
  vendor/tcpdump/3.9.1/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/util.c
  vendor/tcpdump/3.9.1/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.9.1a/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.1a/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.9.4/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.9.4/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.9.4/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/FILES
  vendor/tcpdump/3.9.4/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.9.4/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.9.4/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.9.4/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.9.4/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.9.4/README
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/README
  vendor/tcpdump/3.9.4/Readme.Win32
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/3.9.4/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/TODO
  vendor/tcpdump/3.9.4/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/VERSION
  vendor/tcpdump/3.9.4/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.9.4/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.9.4/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.9.4/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.9.4/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ah.h
  vendor/tcpdump/3.9.4/aodv.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/aodv.h
  vendor/tcpdump/3.9.4/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.9.4/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.9.4/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.9.4/atm.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/atm.h
  vendor/tcpdump/3.9.4/atmuni31.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/3.9.4/bgp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/bgp.h
  vendor/tcpdump/3.9.4/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.9.4/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.9.4/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.9.4/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/config.guess
  vendor/tcpdump/3.9.4/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.9.4/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/config.sub
  vendor/tcpdump/3.9.4/configure
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/configure
  vendor/tcpdump/3.9.4/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/configure.in
  vendor/tcpdump/3.9.4/cpack.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/cpack.c
  vendor/tcpdump/3.9.4/cpack.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/cpack.h
  vendor/tcpdump/3.9.4/dccp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/dccp.h
  vendor/tcpdump/3.9.4/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.9.4/decode_prefix.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/decode_prefix.h
  vendor/tcpdump/3.9.4/enc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/enc.h
  vendor/tcpdump/3.9.4/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/esp.h
  vendor/tcpdump/3.9.4/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ether.h
  vendor/tcpdump/3.9.4/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.9.4/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/extract.h
  vendor/tcpdump/3.9.4/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.9.4/gmpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/gmpls.c
  vendor/tcpdump/3.9.4/gmpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/gmpls.h
  vendor/tcpdump/3.9.4/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.9.4/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.9.4/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.9.4/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.9.4/ieee802_11_radio.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ieee802_11_radio.h
  vendor/tcpdump/3.9.4/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.9.4/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/install-sh
  vendor/tcpdump/3.9.4/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/interface.h
  vendor/tcpdump/3.9.4/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ip.h
  vendor/tcpdump/3.9.4/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.9.4/ipfc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ipfc.h
  vendor/tcpdump/3.9.4/ipproto.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ipproto.c
  vendor/tcpdump/3.9.4/ipproto.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ipproto.h
  vendor/tcpdump/3.9.4/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.9.4/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.9.4/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.9.4/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.9.4/l2vpn.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/l2vpn.c
  vendor/tcpdump/3.9.4/l2vpn.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/l2vpn.h
  vendor/tcpdump/3.9.4/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/lane.h
  vendor/tcpdump/3.9.4/lbl/
     - copied from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/lbl/
  vendor/tcpdump/3.9.4/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/llc.h
  vendor/tcpdump/3.9.4/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.9.4/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.9.4/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/makemib
  vendor/tcpdump/3.9.4/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/mib.h
  vendor/tcpdump/3.9.4/missing/
     - copied from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/missing/
  vendor/tcpdump/3.9.4/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/mkdep
  vendor/tcpdump/3.9.4/mpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/mpls.h
  vendor/tcpdump/3.9.4/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.9.4/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.9.4/netdissect.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/netdissect.h
  vendor/tcpdump/3.9.4/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.9.4/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.9.4/nlpid.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/nlpid.c
  vendor/tcpdump/3.9.4/nlpid.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/nlpid.h
  vendor/tcpdump/3.9.4/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.9.4/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.9.4/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.9.4/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.9.4/oui.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/oui.c
  vendor/tcpdump/3.9.4/oui.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/oui.h
  vendor/tcpdump/3.9.4/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.9.4/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.9.4/pcap-missing.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/3.9.4/pcap_dump_ftell.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/pcap_dump_ftell.c
  vendor/tcpdump/3.9.4/pf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/pf.h
  vendor/tcpdump/3.9.4/pmap_prot.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/pmap_prot.h
  vendor/tcpdump/3.9.4/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.9.4/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.9.4/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.9.4/print-aodv.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/3.9.4/print-ap1394.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/3.9.4/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.9.4/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.9.4/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.9.4/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.9.4/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.9.4/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.9.4/print-bfd.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/3.9.4/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.9.4/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.9.4/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.9.4/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.9.4/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.9.4/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.9.4/print-dccp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-dccp.c
  vendor/tcpdump/3.9.4/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.9.4/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.9.4/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.9.4/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.9.4/print-eap.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-eap.c
  vendor/tcpdump/3.9.4/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.9.4/print-eigrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-eigrp.c
  vendor/tcpdump/3.9.4/print-enc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-enc.c
  vendor/tcpdump/3.9.4/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.9.4/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.9.4/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.9.4/print-fr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-fr.c
  vendor/tcpdump/3.9.4/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.9.4/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.9.4/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.9.4/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.9.4/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.9.4/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.9.4/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.9.4/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.9.4/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.9.4/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.9.4/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.9.4/print-ipfc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/3.9.4/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.9.4/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.9.4/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.9.4/print-juniper.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-juniper.c
  vendor/tcpdump/3.9.4/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.9.4/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.9.4/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.9.4/print-ldp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/3.9.4/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.9.4/print-lmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-lmp.c
  vendor/tcpdump/3.9.4/print-lspping.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-lspping.c
  vendor/tcpdump/3.9.4/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.9.4/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.9.4/print-mobility.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/3.9.4/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.9.4/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.9.4/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.9.4/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.9.4/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.9.4/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.9.4/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.9.4/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.9.4/print-pflog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/3.9.4/print-pgm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-pgm.c
  vendor/tcpdump/3.9.4/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.9.4/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.9.4/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.9.4/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.9.4/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.9.4/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.9.4/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.9.4/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.9.4/print-rsvp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/3.9.4/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.9.4/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.9.4/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.9.4/print-sip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sip.c
  vendor/tcpdump/3.9.4/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.9.4/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.9.4/print-slow.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-slow.c
  vendor/tcpdump/3.9.4/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.9.4/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.9.4/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.9.4/print-sunatm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/3.9.4/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.9.4/print-symantec.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-symantec.c
  vendor/tcpdump/3.9.4/print-syslog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-syslog.c
  vendor/tcpdump/3.9.4/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.9.4/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.9.4/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.9.4/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.9.4/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.9.4/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.9.4/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.9.4/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.9.4/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.9.4/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.9.4/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.9.4/rpc_auth.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/rpc_auth.h
  vendor/tcpdump/3.9.4/rpc_msg.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/rpc_msg.h
  vendor/tcpdump/3.9.4/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/rx.h
  vendor/tcpdump/3.9.4/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.9.4/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.9.4/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.9.4/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.9.4/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.9.4/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.9.4/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/slip.h
  vendor/tcpdump/3.9.4/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/sll.h
  vendor/tcpdump/3.9.4/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/smb.h
  vendor/tcpdump/3.9.4/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.9.4/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.9.4/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.9.4/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.9.4/tcpdump-stdinc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/3.9.4/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.9.4/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.9.4/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.9.4/tests/
     - copied from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/tests/
  vendor/tcpdump/3.9.4/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/timed.h
  vendor/tcpdump/3.9.4/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/token.h
  vendor/tcpdump/3.9.4/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/udp.h
  vendor/tcpdump/3.9.4/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/util.c
  vendor/tcpdump/3.9.4/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.4/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/3.9.8/CHANGES
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/CHANGES
  vendor/tcpdump/3.9.8/CREDITS
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/CREDITS
  vendor/tcpdump/3.9.8/FILES
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/FILES
  vendor/tcpdump/3.9.8/INSTALL
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/INSTALL
  vendor/tcpdump/3.9.8/LICENSE
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/LICENSE
  vendor/tcpdump/3.9.8/Makefile-devel-adds
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/3.9.8/Makefile.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/Makefile.in
  vendor/tcpdump/3.9.8/PLATFORMS
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/3.9.8/README
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/README
  vendor/tcpdump/3.9.8/Readme.Win32
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/3.9.8/TODO
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/TODO
  vendor/tcpdump/3.9.8/VERSION
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/VERSION
  vendor/tcpdump/3.9.8/acconfig.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/acconfig.h
  vendor/tcpdump/3.9.8/aclocal.m4
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/3.9.8/addrtoname.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/3.9.8/addrtoname.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/3.9.8/af.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/af.c
  vendor/tcpdump/3.9.8/af.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/af.h
  vendor/tcpdump/3.9.8/ah.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ah.h
  vendor/tcpdump/3.9.8/aodv.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/aodv.h
  vendor/tcpdump/3.9.8/appletalk.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/appletalk.h
  vendor/tcpdump/3.9.8/arcnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/arcnet.h
  vendor/tcpdump/3.9.8/atime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/atime.awk
  vendor/tcpdump/3.9.8/atm.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/atm.h
  vendor/tcpdump/3.9.8/atmuni31.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/3.9.8/bgp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/bgp.h
  vendor/tcpdump/3.9.8/bootp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/bootp.h
  vendor/tcpdump/3.9.8/bpf_dump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/3.9.8/chdlc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/chdlc.h
  vendor/tcpdump/3.9.8/config.guess
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/config.guess
  vendor/tcpdump/3.9.8/config.h.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/config.h.in
  vendor/tcpdump/3.9.8/config.sub
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/config.sub
  vendor/tcpdump/3.9.8/configure
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/configure
  vendor/tcpdump/3.9.8/configure.in
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/configure.in
  vendor/tcpdump/3.9.8/cpack.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/cpack.c
  vendor/tcpdump/3.9.8/cpack.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/cpack.h
  vendor/tcpdump/3.9.8/dccp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/dccp.h
  vendor/tcpdump/3.9.8/decnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/decnet.h
  vendor/tcpdump/3.9.8/decode_prefix.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/decode_prefix.h
  vendor/tcpdump/3.9.8/enc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/enc.h
  vendor/tcpdump/3.9.8/esp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/esp.h
  vendor/tcpdump/3.9.8/ether.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ether.h
  vendor/tcpdump/3.9.8/ethertype.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ethertype.h
  vendor/tcpdump/3.9.8/extract.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/extract.h
  vendor/tcpdump/3.9.8/fddi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/fddi.h
  vendor/tcpdump/3.9.8/gmpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/gmpls.c
  vendor/tcpdump/3.9.8/gmpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/gmpls.h
  vendor/tcpdump/3.9.8/gmt2local.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/3.9.8/gmt2local.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/3.9.8/icmp6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/icmp6.h
  vendor/tcpdump/3.9.8/ieee802_11.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/3.9.8/ieee802_11_radio.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ieee802_11_radio.h
  vendor/tcpdump/3.9.8/igrp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/igrp.h
  vendor/tcpdump/3.9.8/install-sh
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/install-sh
  vendor/tcpdump/3.9.8/interface.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/interface.h
  vendor/tcpdump/3.9.8/ip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ip.h
  vendor/tcpdump/3.9.8/ip6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ip6.h
  vendor/tcpdump/3.9.8/ipfc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ipfc.h
  vendor/tcpdump/3.9.8/ipproto.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ipproto.c
  vendor/tcpdump/3.9.8/ipproto.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ipproto.h
  vendor/tcpdump/3.9.8/ipsec_doi.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/3.9.8/ipx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ipx.h
  vendor/tcpdump/3.9.8/isakmp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/isakmp.h
  vendor/tcpdump/3.9.8/l2tp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/l2tp.h
  vendor/tcpdump/3.9.8/l2vpn.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/l2vpn.c
  vendor/tcpdump/3.9.8/l2vpn.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/l2vpn.h
  vendor/tcpdump/3.9.8/lane.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/lane.h
  vendor/tcpdump/3.9.8/lbl/
     - copied from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/lbl/
  vendor/tcpdump/3.9.8/llc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/llc.h
  vendor/tcpdump/3.9.8/machdep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/machdep.c
  vendor/tcpdump/3.9.8/machdep.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/machdep.h
  vendor/tcpdump/3.9.8/makemib
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/makemib
  vendor/tcpdump/3.9.8/mib.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/mib.h
  vendor/tcpdump/3.9.8/missing/
     - copied from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/missing/
  vendor/tcpdump/3.9.8/mkdep
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/mkdep
  vendor/tcpdump/3.9.8/mpls.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/mpls.h
  vendor/tcpdump/3.9.8/nameser.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/nameser.h
  vendor/tcpdump/3.9.8/netbios.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/netbios.h
  vendor/tcpdump/3.9.8/netdissect.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/netdissect.h
  vendor/tcpdump/3.9.8/nfs.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/nfs.h
  vendor/tcpdump/3.9.8/nfsfh.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/3.9.8/nlpid.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/nlpid.c
  vendor/tcpdump/3.9.8/nlpid.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/nlpid.h
  vendor/tcpdump/3.9.8/ntp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ntp.h
  vendor/tcpdump/3.9.8/oakley.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/oakley.h
  vendor/tcpdump/3.9.8/ospf.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ospf.h
  vendor/tcpdump/3.9.8/ospf6.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ospf6.h
  vendor/tcpdump/3.9.8/oui.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/oui.c
  vendor/tcpdump/3.9.8/oui.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/oui.h
  vendor/tcpdump/3.9.8/packetdat.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/3.9.8/parsenfsfh.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/3.9.8/pcap-missing.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/3.9.8/pcap_dump_ftell.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/pcap_dump_ftell.c
  vendor/tcpdump/3.9.8/pmap_prot.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/pmap_prot.h
  vendor/tcpdump/3.9.8/ppp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/ppp.h
  vendor/tcpdump/3.9.8/print-802_11.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/3.9.8/print-ah.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ah.c
  vendor/tcpdump/3.9.8/print-aodv.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/3.9.8/print-ap1394.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/3.9.8/print-arcnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/3.9.8/print-arp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-arp.c
  vendor/tcpdump/3.9.8/print-ascii.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/3.9.8/print-atalk.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/3.9.8/print-atm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-atm.c
  vendor/tcpdump/3.9.8/print-beep.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-beep.c
  vendor/tcpdump/3.9.8/print-bfd.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/3.9.8/print-bgp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/3.9.8/print-bootp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/3.9.8/print-cdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/3.9.8/print-chdlc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/3.9.8/print-cip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-cip.c
  vendor/tcpdump/3.9.8/print-cnfp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/3.9.8/print-dccp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-dccp.c
  vendor/tcpdump/3.9.8/print-decnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/3.9.8/print-dhcp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/3.9.8/print-domain.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-domain.c
  vendor/tcpdump/3.9.8/print-dvmrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/3.9.8/print-eap.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-eap.c
  vendor/tcpdump/3.9.8/print-egp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-egp.c
  vendor/tcpdump/3.9.8/print-eigrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-eigrp.c
  vendor/tcpdump/3.9.8/print-enc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-enc.c
  vendor/tcpdump/3.9.8/print-esp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-esp.c
  vendor/tcpdump/3.9.8/print-ether.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ether.c
  vendor/tcpdump/3.9.8/print-fddi.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/3.9.8/print-fr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-fr.c
  vendor/tcpdump/3.9.8/print-frag6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/3.9.8/print-gre.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-gre.c
  vendor/tcpdump/3.9.8/print-hsrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/3.9.8/print-icmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/3.9.8/print-icmp6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/3.9.8/print-igmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/3.9.8/print-igrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/3.9.8/print-ip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ip.c
  vendor/tcpdump/3.9.8/print-ip6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/3.9.8/print-ip6opts.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/3.9.8/print-ipcomp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/3.9.8/print-ipfc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/3.9.8/print-ipx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/3.9.8/print-isakmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/3.9.8/print-isoclns.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/3.9.8/print-juniper.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-juniper.c
  vendor/tcpdump/3.9.8/print-krb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-krb.c
  vendor/tcpdump/3.9.8/print-l2tp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/3.9.8/print-lane.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-lane.c
  vendor/tcpdump/3.9.8/print-ldp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/3.9.8/print-llc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-llc.c
  vendor/tcpdump/3.9.8/print-lmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-lmp.c
  vendor/tcpdump/3.9.8/print-lspping.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-lspping.c
  vendor/tcpdump/3.9.8/print-lwres.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/3.9.8/print-mobile.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/3.9.8/print-mobility.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/3.9.8/print-mpls.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/3.9.8/print-msdp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/3.9.8/print-netbios.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/3.9.8/print-nfs.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/3.9.8/print-ntp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/3.9.8/print-null.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-null.c
  vendor/tcpdump/3.9.8/print-olsr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-olsr.c
  vendor/tcpdump/3.9.8/print-ospf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/3.9.8/print-ospf6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/3.9.8/print-pflog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/3.9.8/print-pgm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-pgm.c
  vendor/tcpdump/3.9.8/print-pim.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-pim.c
  vendor/tcpdump/3.9.8/print-ppp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/3.9.8/print-pppoe.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/3.9.8/print-pptp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/3.9.8/print-radius.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-radius.c
  vendor/tcpdump/3.9.8/print-raw.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-raw.c
  vendor/tcpdump/3.9.8/print-rip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-rip.c
  vendor/tcpdump/3.9.8/print-ripng.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/3.9.8/print-rsvp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/3.9.8/print-rt6.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/3.9.8/print-rx.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-rx.c
  vendor/tcpdump/3.9.8/print-sctp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/3.9.8/print-sip.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sip.c
  vendor/tcpdump/3.9.8/print-sl.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sl.c
  vendor/tcpdump/3.9.8/print-sll.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sll.c
  vendor/tcpdump/3.9.8/print-slow.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-slow.c
  vendor/tcpdump/3.9.8/print-smb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-smb.c
  vendor/tcpdump/3.9.8/print-snmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/3.9.8/print-stp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-stp.c
  vendor/tcpdump/3.9.8/print-sunatm.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/3.9.8/print-sunrpc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/3.9.8/print-symantec.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-symantec.c
  vendor/tcpdump/3.9.8/print-syslog.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-syslog.c
  vendor/tcpdump/3.9.8/print-tcp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/3.9.8/print-telnet.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/3.9.8/print-tftp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/3.9.8/print-timed.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-timed.c
  vendor/tcpdump/3.9.8/print-token.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-token.c
  vendor/tcpdump/3.9.8/print-udp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-udp.c
  vendor/tcpdump/3.9.8/print-vjc.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/3.9.8/print-vrrp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/3.9.8/print-wb.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-wb.c
  vendor/tcpdump/3.9.8/print-zephyr.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/3.9.8/route6d.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/route6d.h
  vendor/tcpdump/3.9.8/rpc_auth.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/rpc_auth.h
  vendor/tcpdump/3.9.8/rpc_msg.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/rpc_msg.h
  vendor/tcpdump/3.9.8/rx.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/rx.h
  vendor/tcpdump/3.9.8/sctpConstants.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/3.9.8/sctpHeader.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/3.9.8/send-ack.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/3.9.8/setsignal.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/setsignal.c
  vendor/tcpdump/3.9.8/setsignal.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/setsignal.h
  vendor/tcpdump/3.9.8/slcompress.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/slcompress.h
  vendor/tcpdump/3.9.8/slip.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/slip.h
  vendor/tcpdump/3.9.8/sll.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/sll.h
  vendor/tcpdump/3.9.8/smb.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/smb.h
  vendor/tcpdump/3.9.8/smbutil.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/smbutil.c
  vendor/tcpdump/3.9.8/stime.awk
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/stime.awk
  vendor/tcpdump/3.9.8/strcasecmp.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/3.9.8/tcp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tcp.h
  vendor/tcpdump/3.9.8/tcpdump-stdinc.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/3.9.8/tcpdump.1
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/3.9.8/tcpdump.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/3.9.8/telnet.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/telnet.h
  vendor/tcpdump/3.9.8/tests/
     - copied from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tests/
  vendor/tcpdump/3.9.8/tftp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/tftp.h
  vendor/tcpdump/3.9.8/timed.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/timed.h
  vendor/tcpdump/3.9.8/token.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/token.h
  vendor/tcpdump/3.9.8/udp.h
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/udp.h
  vendor/tcpdump/3.9.8/util.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/util.c
  vendor/tcpdump/3.9.8/vfprintf.c
     - copied unchanged from r190147, vendor/tcpdump/3.9.8/contrib/tcpdump/vfprintf.c
  vendor/tcpdump/dist/CHANGES   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/CHANGES
  vendor/tcpdump/dist/CREDITS   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/CREDITS
  vendor/tcpdump/dist/FILES   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/FILES
  vendor/tcpdump/dist/INSTALL   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/INSTALL
  vendor/tcpdump/dist/LICENSE   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/LICENSE
  vendor/tcpdump/dist/Makefile-devel-adds   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/Makefile-devel-adds
  vendor/tcpdump/dist/Makefile.in   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/Makefile.in
  vendor/tcpdump/dist/PLATFORMS   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/PLATFORMS
  vendor/tcpdump/dist/README   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/README
  vendor/tcpdump/dist/Readme.Win32   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/Readme.Win32
  vendor/tcpdump/dist/TODO   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/TODO
  vendor/tcpdump/dist/VERSION   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/VERSION
  vendor/tcpdump/dist/acconfig.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/acconfig.h
  vendor/tcpdump/dist/aclocal.m4   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/aclocal.m4
  vendor/tcpdump/dist/acsite.m4   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/acsite.m4
  vendor/tcpdump/dist/addrtoname.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/addrtoname.c
  vendor/tcpdump/dist/addrtoname.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/addrtoname.h
  vendor/tcpdump/dist/af.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/af.c
  vendor/tcpdump/dist/af.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/af.h
  vendor/tcpdump/dist/ah.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ah.h
  vendor/tcpdump/dist/aodv.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/aodv.h
  vendor/tcpdump/dist/appletalk.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/appletalk.h
  vendor/tcpdump/dist/arcnet.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/arcnet.h
  vendor/tcpdump/dist/atime.awk   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/atime.awk
  vendor/tcpdump/dist/atm.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/atm.h
  vendor/tcpdump/dist/atmuni31.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/atmuni31.h
  vendor/tcpdump/dist/bgp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/bgp.h
  vendor/tcpdump/dist/bootp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/bootp.h
  vendor/tcpdump/dist/bpf_dump.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/bpf_dump.c
  vendor/tcpdump/dist/chdlc.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/chdlc.h
  vendor/tcpdump/dist/config.guess   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/config.guess
  vendor/tcpdump/dist/config.h.in   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/config.h.in
  vendor/tcpdump/dist/config.sub   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/config.sub
  vendor/tcpdump/dist/configure   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/configure
  vendor/tcpdump/dist/configure.in   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/configure.in
  vendor/tcpdump/dist/cpack.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/cpack.c
  vendor/tcpdump/dist/cpack.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/cpack.h
  vendor/tcpdump/dist/dccp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/dccp.h
  vendor/tcpdump/dist/decnet.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/decnet.h
  vendor/tcpdump/dist/decode_prefix.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/decode_prefix.h
  vendor/tcpdump/dist/dhcp6.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/dhcp6.h
  vendor/tcpdump/dist/dhcp6opt.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/dhcp6opt.h
  vendor/tcpdump/dist/enc.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/enc.h
  vendor/tcpdump/dist/esp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/esp.h
  vendor/tcpdump/dist/ether.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ether.h
  vendor/tcpdump/dist/ethertype.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ethertype.h
  vendor/tcpdump/dist/extract.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/extract.h
  vendor/tcpdump/dist/fddi.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/fddi.h
  vendor/tcpdump/dist/gmpls.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/gmpls.c
  vendor/tcpdump/dist/gmpls.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/gmpls.h
  vendor/tcpdump/dist/gmt2local.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/gmt2local.c
  vendor/tcpdump/dist/gmt2local.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/gmt2local.h
  vendor/tcpdump/dist/icmp6.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/icmp6.h
  vendor/tcpdump/dist/ieee802_11.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ieee802_11.h
  vendor/tcpdump/dist/ieee802_11_radio.h   (contents, props changed)
     - copied, changed from r190147, vendor/tcpdump/dist/contrib/tcpdump/ieee802_11_radio.h
  vendor/tcpdump/dist/igrp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/igrp.h
  vendor/tcpdump/dist/install-sh   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/install-sh
  vendor/tcpdump/dist/interface.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/interface.h
  vendor/tcpdump/dist/ip.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ip.h
  vendor/tcpdump/dist/ip6.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ip6.h
  vendor/tcpdump/dist/ipfc.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ipfc.h
  vendor/tcpdump/dist/ipproto.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ipproto.c
  vendor/tcpdump/dist/ipproto.h   (contents, props changed)
     - copied, changed from r190147, vendor/tcpdump/dist/contrib/tcpdump/ipproto.h
  vendor/tcpdump/dist/ipsec_doi.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ipsec_doi.h
  vendor/tcpdump/dist/ipx.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ipx.h
  vendor/tcpdump/dist/isakmp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/isakmp.h
  vendor/tcpdump/dist/l2tp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/l2tp.h
  vendor/tcpdump/dist/l2vpn.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/l2vpn.c
  vendor/tcpdump/dist/l2vpn.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/l2vpn.h
  vendor/tcpdump/dist/lane.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/lane.h
  vendor/tcpdump/dist/lbl/
     - copied from r190147, vendor/tcpdump/dist/contrib/tcpdump/lbl/
  vendor/tcpdump/dist/llc.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/llc.h
  vendor/tcpdump/dist/machdep.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/machdep.c
  vendor/tcpdump/dist/machdep.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/machdep.h
  vendor/tcpdump/dist/makemib   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/makemib
  vendor/tcpdump/dist/mib.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/mib.h
  vendor/tcpdump/dist/missing/
     - copied from r190147, vendor/tcpdump/dist/contrib/tcpdump/missing/
  vendor/tcpdump/dist/mkdep   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/mkdep
  vendor/tcpdump/dist/mpls.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/mpls.h
  vendor/tcpdump/dist/nameser.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nameser.h
  vendor/tcpdump/dist/netbios.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/netbios.h
  vendor/tcpdump/dist/netdissect.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/netdissect.h
  vendor/tcpdump/dist/nfs.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nfs.h
  vendor/tcpdump/dist/nfsfh.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nfsfh.h
  vendor/tcpdump/dist/nfsv2.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nfsv2.h
  vendor/tcpdump/dist/nlpid.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nlpid.c
  vendor/tcpdump/dist/nlpid.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/nlpid.h
  vendor/tcpdump/dist/ntp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ntp.h
  vendor/tcpdump/dist/oakley.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/oakley.h
  vendor/tcpdump/dist/ospf.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ospf.h
  vendor/tcpdump/dist/ospf6.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ospf6.h
  vendor/tcpdump/dist/oui.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/oui.c
  vendor/tcpdump/dist/oui.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/oui.h
  vendor/tcpdump/dist/packetdat.awk   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/packetdat.awk
  vendor/tcpdump/dist/parsenfsfh.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/parsenfsfh.c
  vendor/tcpdump/dist/pcap-missing.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/pcap-missing.h
  vendor/tcpdump/dist/pcap_dump_ftell.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/pcap_dump_ftell.c
  vendor/tcpdump/dist/pf.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/pf.h
  vendor/tcpdump/dist/pmap_prot.h   (contents, props changed)
     - copied, changed from r190147, vendor/tcpdump/dist/contrib/tcpdump/pmap_prot.h
  vendor/tcpdump/dist/ppp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/ppp.h
  vendor/tcpdump/dist/print-802_11.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-802_11.c
  vendor/tcpdump/dist/print-ah.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ah.c
  vendor/tcpdump/dist/print-aodv.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-aodv.c
  vendor/tcpdump/dist/print-ap1394.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ap1394.c
  vendor/tcpdump/dist/print-arcnet.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-arcnet.c
  vendor/tcpdump/dist/print-arp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-arp.c
  vendor/tcpdump/dist/print-ascii.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ascii.c
  vendor/tcpdump/dist/print-atalk.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-atalk.c
  vendor/tcpdump/dist/print-atm.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-atm.c
  vendor/tcpdump/dist/print-beep.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-beep.c
  vendor/tcpdump/dist/print-bfd.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-bfd.c
  vendor/tcpdump/dist/print-bgp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-bgp.c
  vendor/tcpdump/dist/print-bootp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-bootp.c
  vendor/tcpdump/dist/print-bxxp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-bxxp.c
  vendor/tcpdump/dist/print-cdp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-cdp.c
  vendor/tcpdump/dist/print-chdlc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-chdlc.c
  vendor/tcpdump/dist/print-cip.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-cip.c
  vendor/tcpdump/dist/print-cnfp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-cnfp.c
  vendor/tcpdump/dist/print-dccp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-dccp.c
  vendor/tcpdump/dist/print-decnet.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-decnet.c
  vendor/tcpdump/dist/print-dhcp6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-dhcp6.c
  vendor/tcpdump/dist/print-domain.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-domain.c
  vendor/tcpdump/dist/print-dvmrp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-dvmrp.c
  vendor/tcpdump/dist/print-eap.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-eap.c
  vendor/tcpdump/dist/print-egp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-egp.c
  vendor/tcpdump/dist/print-eigrp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-eigrp.c
  vendor/tcpdump/dist/print-enc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-enc.c
  vendor/tcpdump/dist/print-esp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-esp.c
  vendor/tcpdump/dist/print-ether.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ether.c
  vendor/tcpdump/dist/print-fddi.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-fddi.c
  vendor/tcpdump/dist/print-fr.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-fr.c
  vendor/tcpdump/dist/print-frag6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-frag6.c
  vendor/tcpdump/dist/print-gre.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-gre.c
  vendor/tcpdump/dist/print-hsrp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-hsrp.c
  vendor/tcpdump/dist/print-icmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-icmp.c
  vendor/tcpdump/dist/print-icmp6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-icmp6.c
  vendor/tcpdump/dist/print-igmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-igmp.c
  vendor/tcpdump/dist/print-igrp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-igrp.c
  vendor/tcpdump/dist/print-ip.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ip.c
  vendor/tcpdump/dist/print-ip6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ip6.c
  vendor/tcpdump/dist/print-ip6opts.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ip6opts.c
  vendor/tcpdump/dist/print-ipcomp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ipcomp.c
  vendor/tcpdump/dist/print-ipfc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ipfc.c
  vendor/tcpdump/dist/print-ipx.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ipx.c
  vendor/tcpdump/dist/print-isakmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-isakmp.c
  vendor/tcpdump/dist/print-isoclns.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-isoclns.c
  vendor/tcpdump/dist/print-juniper.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-juniper.c
  vendor/tcpdump/dist/print-krb.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-krb.c
  vendor/tcpdump/dist/print-l2tp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-l2tp.c
  vendor/tcpdump/dist/print-lane.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-lane.c
  vendor/tcpdump/dist/print-lcp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-lcp.c
  vendor/tcpdump/dist/print-ldp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ldp.c
  vendor/tcpdump/dist/print-llc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-llc.c
  vendor/tcpdump/dist/print-lmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-lmp.c
  vendor/tcpdump/dist/print-lspping.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-lspping.c
  vendor/tcpdump/dist/print-lwres.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-lwres.c
  vendor/tcpdump/dist/print-mobile.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-mobile.c
  vendor/tcpdump/dist/print-mobility.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-mobility.c
  vendor/tcpdump/dist/print-mpls.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-mpls.c
  vendor/tcpdump/dist/print-msdp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-msdp.c
  vendor/tcpdump/dist/print-netbios.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-netbios.c
  vendor/tcpdump/dist/print-nfs.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-nfs.c
  vendor/tcpdump/dist/print-ntp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ntp.c
  vendor/tcpdump/dist/print-null.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-null.c
  vendor/tcpdump/dist/print-olsr.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-olsr.c
  vendor/tcpdump/dist/print-ospf.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ospf.c
  vendor/tcpdump/dist/print-ospf6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ospf6.c
  vendor/tcpdump/dist/print-pflog.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-pflog.c
  vendor/tcpdump/dist/print-pgm.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-pgm.c
  vendor/tcpdump/dist/print-pim.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-pim.c
  vendor/tcpdump/dist/print-ppp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ppp.c
  vendor/tcpdump/dist/print-pppoe.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-pppoe.c
  vendor/tcpdump/dist/print-pptp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-pptp.c
  vendor/tcpdump/dist/print-radius.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-radius.c
  vendor/tcpdump/dist/print-raw.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-raw.c
  vendor/tcpdump/dist/print-rip.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-rip.c
  vendor/tcpdump/dist/print-ripng.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-ripng.c
  vendor/tcpdump/dist/print-rsvp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-rsvp.c
  vendor/tcpdump/dist/print-rt6.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-rt6.c
  vendor/tcpdump/dist/print-rx.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-rx.c
  vendor/tcpdump/dist/print-sctp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sctp.c
  vendor/tcpdump/dist/print-sip.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sip.c
  vendor/tcpdump/dist/print-sl.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sl.c
  vendor/tcpdump/dist/print-sll.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sll.c
  vendor/tcpdump/dist/print-slow.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-slow.c
  vendor/tcpdump/dist/print-smb.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-smb.c
  vendor/tcpdump/dist/print-snmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-snmp.c
  vendor/tcpdump/dist/print-stp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-stp.c
  vendor/tcpdump/dist/print-sunatm.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sunatm.c
  vendor/tcpdump/dist/print-sunrpc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-sunrpc.c
  vendor/tcpdump/dist/print-symantec.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-symantec.c
  vendor/tcpdump/dist/print-syslog.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-syslog.c
  vendor/tcpdump/dist/print-tcp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-tcp.c
  vendor/tcpdump/dist/print-telnet.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-telnet.c
  vendor/tcpdump/dist/print-tftp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-tftp.c
  vendor/tcpdump/dist/print-timed.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-timed.c
  vendor/tcpdump/dist/print-token.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-token.c
  vendor/tcpdump/dist/print-udp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-udp.c
  vendor/tcpdump/dist/print-vjc.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-vjc.c
  vendor/tcpdump/dist/print-vrrp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-vrrp.c
  vendor/tcpdump/dist/print-wb.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-wb.c
  vendor/tcpdump/dist/print-zephyr.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/print-zephyr.c
  vendor/tcpdump/dist/route6d.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/route6d.h
  vendor/tcpdump/dist/rpc_auth.h   (contents, props changed)
     - copied, changed from r190147, vendor/tcpdump/dist/contrib/tcpdump/rpc_auth.h
  vendor/tcpdump/dist/rpc_msg.h   (contents, props changed)
     - copied, changed from r190147, vendor/tcpdump/dist/contrib/tcpdump/rpc_msg.h
  vendor/tcpdump/dist/rx.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/rx.h
  vendor/tcpdump/dist/savestr.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/savestr.c
  vendor/tcpdump/dist/savestr.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/savestr.h
  vendor/tcpdump/dist/sctpConstants.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/sctpConstants.h
  vendor/tcpdump/dist/sctpHeader.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/sctpHeader.h
  vendor/tcpdump/dist/send-ack.awk   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/send-ack.awk
  vendor/tcpdump/dist/setsignal.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/setsignal.c
  vendor/tcpdump/dist/setsignal.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/setsignal.h
  vendor/tcpdump/dist/slcompress.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/slcompress.h
  vendor/tcpdump/dist/slip.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/slip.h
  vendor/tcpdump/dist/sll.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/sll.h
  vendor/tcpdump/dist/smb.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/smb.h
  vendor/tcpdump/dist/smbutil.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/smbutil.c
  vendor/tcpdump/dist/stime.awk   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/stime.awk
  vendor/tcpdump/dist/strcasecmp.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/strcasecmp.c
  vendor/tcpdump/dist/tcp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/tcp.h
  vendor/tcpdump/dist/tcpdump-stdinc.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/tcpdump-stdinc.h
  vendor/tcpdump/dist/tcpdump.1   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/tcpdump.1
  vendor/tcpdump/dist/tcpdump.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/tcpdump.c
  vendor/tcpdump/dist/telnet.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/telnet.h
  vendor/tcpdump/dist/tests/
     - copied from r190147, vendor/tcpdump/dist/contrib/tcpdump/tests/
  vendor/tcpdump/dist/tftp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/tftp.h
  vendor/tcpdump/dist/timed.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/timed.h
  vendor/tcpdump/dist/token.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/token.h
  vendor/tcpdump/dist/udp.h   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/udp.h
  vendor/tcpdump/dist/util.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/util.c
  vendor/tcpdump/dist/vfprintf.c   (props changed)
     - copied unchanged from r190147, vendor/tcpdump/dist/contrib/tcpdump/vfprintf.c
Deleted:
  vendor/tcpdump/3.2.1/contrib/
  vendor/tcpdump/3.3/contrib/
  vendor/tcpdump/3.4/contrib/
  vendor/tcpdump/3.5/contrib/
  vendor/tcpdump/3.6.2/contrib/
  vendor/tcpdump/3.6.3/contrib/
  vendor/tcpdump/3.7.1/contrib/
  vendor/tcpdump/3.7.2/contrib/
  vendor/tcpdump/3.8.3/contrib/
  vendor/tcpdump/3.9.1-096/contrib/
  vendor/tcpdump/3.9.1/contrib/
  vendor/tcpdump/3.9.1a/contrib/
  vendor/tcpdump/3.9.4/contrib/
  vendor/tcpdump/3.9.8/contrib/
  vendor/tcpdump/dist/contrib/
Modified:
  vendor/tcpdump/dist/lbl/gnuc.h   (props changed)
  vendor/tcpdump/dist/lbl/os-osf4.h   (props changed)
  vendor/tcpdump/dist/lbl/os-solaris2.h   (props changed)
  vendor/tcpdump/dist/lbl/os-sunos4.h   (props changed)
  vendor/tcpdump/dist/lbl/os-ultrix4.h   (props changed)
  vendor/tcpdump/dist/missing/addrinfo.h   (props changed)
  vendor/tcpdump/dist/missing/addrsize.h   (props changed)
  vendor/tcpdump/dist/missing/bittypes.h   (props changed)
  vendor/tcpdump/dist/missing/cdecl_ext.h   (props changed)
  vendor/tcpdump/dist/missing/datalinks.c   (props changed)
  vendor/tcpdump/dist/missing/dlnames.c   (props changed)
  vendor/tcpdump/dist/missing/getaddrinfo.c   (props changed)
  vendor/tcpdump/dist/missing/getnameinfo.c   (props changed)
  vendor/tcpdump/dist/missing/inet_aton.c   (props changed)
  vendor/tcpdump/dist/missing/inet_ntop.c   (props changed)
  vendor/tcpdump/dist/missing/inet_pton.c   (props changed)
  vendor/tcpdump/dist/missing/resolv6.h   (props changed)
  vendor/tcpdump/dist/missing/resolv_ext.h   (props changed)
  vendor/tcpdump/dist/missing/snprintf.c   (props changed)
  vendor/tcpdump/dist/missing/sockstorage.h   (props changed)
  vendor/tcpdump/dist/missing/strdup.c   (props changed)
  vendor/tcpdump/dist/missing/strlcat.c   (props changed)
  vendor/tcpdump/dist/missing/strlcpy.c   (props changed)
  vendor/tcpdump/dist/missing/strsep.c   (props changed)
  vendor/tcpdump/dist/tests/.cvsignore   (props changed)
  vendor/tcpdump/dist/tests/02-sunrise-sunset-esp.puu   (props changed)
  vendor/tcpdump/dist/tests/08-sunrise-sunset-aes.puu   (props changed)
  vendor/tcpdump/dist/tests/08-sunrise-sunset-esp2.puu   (props changed)
  vendor/tcpdump/dist/tests/alltests.sh   (props changed)
  vendor/tcpdump/dist/tests/bgp_vpn_attrset.out   (props changed)
  vendor/tcpdump/dist/tests/bgp_vpn_attrset.sh   (props changed)
  vendor/tcpdump/dist/tests/eapon1.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/eapon1.out   (props changed)
  vendor/tcpdump/dist/tests/eapon1.puu   (props changed)
  vendor/tcpdump/dist/tests/eapon1.sh   (props changed)
  vendor/tcpdump/dist/tests/eapon2.puu   (props changed)
  vendor/tcpdump/dist/tests/esp-secrets.txt   (props changed)
  vendor/tcpdump/dist/tests/esp0.out   (props changed)
  vendor/tcpdump/dist/tests/esp0.sh   (props changed)
  vendor/tcpdump/dist/tests/esp1.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/esp1.out   (props changed)
  vendor/tcpdump/dist/tests/esp1.sh   (props changed)
  vendor/tcpdump/dist/tests/esp2.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/esp2.out   (props changed)
  vendor/tcpdump/dist/tests/esp2.sh   (props changed)
  vendor/tcpdump/dist/tests/esp3.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/esp3.sh   (props changed)
  vendor/tcpdump/dist/tests/esp4.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/esp4.sh   (props changed)
  vendor/tcpdump/dist/tests/esp5.gdbinit   (props changed)
  vendor/tcpdump/dist/tests/esp5.out   (props changed)
  vendor/tcpdump/dist/tests/esp5.sh   (props changed)
  vendor/tcpdump/dist/tests/espudp1.out   (props changed)
  vendor/tcpdump/dist/tests/espudp1.puu   (props changed)
  vendor/tcpdump/dist/tests/espudp1.sh   (props changed)
  vendor/tcpdump/dist/tests/isakmp-delete-segfault.puu   (props changed)
  vendor/tcpdump/dist/tests/isakmp-identification-segfault.puu   (props changed)
  vendor/tcpdump/dist/tests/isakmp-pointer-loop.puu   (props changed)
  vendor/tcpdump/dist/tests/isakmp1.out   (props changed)
  vendor/tcpdump/dist/tests/isakmp1.sh   (props changed)
  vendor/tcpdump/dist/tests/isakmp2.out   (props changed)
  vendor/tcpdump/dist/tests/isakmp2.sh   (props changed)
  vendor/tcpdump/dist/tests/isakmp3.out   (props changed)
  vendor/tcpdump/dist/tests/isakmp3.sh   (props changed)
  vendor/tcpdump/dist/tests/isakmp4.out   (props changed)
  vendor/tcpdump/dist/tests/isakmp4.sh   (props changed)
  vendor/tcpdump/dist/tests/isakmp4500.puu   (props changed)
  vendor/tcpdump/dist/tests/lmp.out   (props changed)
  vendor/tcpdump/dist/tests/lmp.puu   (props changed)
  vendor/tcpdump/dist/tests/lmp.sh   (props changed)
  vendor/tcpdump/dist/tests/mpls-ldp-hello.out   (props changed)
  vendor/tcpdump/dist/tests/mpls-ldp-hello.puu   (props changed)
  vendor/tcpdump/dist/tests/mpls-ldp-hello.sh   (props changed)
  vendor/tcpdump/dist/tests/ospf-gmpls.out   (props changed)
  vendor/tcpdump/dist/tests/ospf-gmpls.puu   (props changed)
  vendor/tcpdump/dist/tests/ospf-gmpls.sh   (props changed)
  vendor/tcpdump/dist/tests/print-A.out   (props changed)
  vendor/tcpdump/dist/tests/print-AA.out   (props changed)
  vendor/tcpdump/dist/tests/print-X.out   (props changed)
  vendor/tcpdump/dist/tests/print-XX.out   (props changed)
  vendor/tcpdump/dist/tests/print-capX.out   (props changed)
  vendor/tcpdump/dist/tests/print-capXX.out   (props changed)
  vendor/tcpdump/dist/tests/print-flags.puu   (props changed)
  vendor/tcpdump/dist/tests/print-flags.sh   (props changed)
  vendor/tcpdump/dist/tests/print-x.out   (props changed)
  vendor/tcpdump/dist/tests/print-xx.out   (props changed)

Copied: vendor/tcpdump/3.2.1/CHANGES (from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/CHANGES)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/tcpdump/3.2.1/CHANGES	Fri Mar 20 13:27:51 2009	(r190150, copy of r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/CHANGES)
@@ -0,0 +1,402 @@
+@(#) $Header: CHANGES,v 1.42 96/07/23 14:36:37 leres Exp $ (LBL)
+
+v3.2.1 Sun Jul 14 03:02:26 PDT 1996
+
+- Added rfc1716 icmp codes as suggested by Martin Fredriksson
+  (martin@msp.se)
+
+- Print mtu for icmp unreach need frag packets. Thanks to John
+  Hawkinson (jhawk@mit.edu)
+
+- Decode icmp router discovery messages. Thanks to Jeffrey Honig
+  (jch@bsdi.com)
+
+- Added a printer entry for DLT_IEEE802 as suggested by Tak Kushida
+  (kushida@trl.ibm.co.jp)
+
+- Check igmp checksum if possible. Thanks to John Hawkinson.
+
+- Made changes for SINIX. Thanks to Andrej Borsenkow
+  (borsenkow.msk@sni.de)
+
+- Use autoconf's idea of the top level directory in install targets.
+  Thanks to John Hawkinson.
+
+- Avoid infinite loop in tcp options printing code. Thanks to Jeffrey
+  Mogul (mogul@pa.dec.com)
+
+- Avoid using -lsocket in IRIX 5.2 and earlier since it breaks snoop.
+  Thanks to John Hawkinson.
+
+- Added some more packet truncation checks.
+
+- On systems that have it, use sigset() instead of signal() since
+  signal() has different semantics on these systems.
+
+- Fixed some more alignment problems on the alpha.
+
+- Add code to massage unprintable characters in the domain and ipx
+  printers. Thanks to John Hawkinson.
+
+- Added explicit netmask support. Thanks to Steve Nuchia
+  (steve@research.oknet.com)
+
+- Add "sca" keyword (for DEC cluster services) as suggested by Terry
+  Kennedy (terry@spcvxa.spc.edu)
+
+- Add "atalk" keyword as suggested by John Hawkinson.
+
+- Added an igrp printer. Thanks to Francis Dupont
+  (francis.dupont@inria.fr)
+
+- Print IPX net numbers in hex a la Novell Netware. Thanks to Terry
+  Kennedy (terry@spcvxa.spc.edu)
+
+- Fixed snmp extended tag field parsing bug. Thanks to Pascal Hennequin
+  (pascal.hennequin@hugo.int-evry.fr)
+
+- Added some ETHERTYPEs missing on some systems.
+
+- Added truncated packet macros and various checks.
+
+- Fixed endian problems with the DECnet printer.
+
+- Use $CC when checking gcc version. Thanks to Carl Lindberg
+  (carl_lindberg@blacksmith.com)
+
+- Fixes for AIX (although this system is not yet supported). Thanks to
+  John Hawkinson.
+
+- Fix bugs in the autoconf misaligned accesses code fragment.
+
+- Include sys/param.h to get BYTE_ORDER in a few places. Thanks to
+  Pavlin Ivanov Radoslavov (pavlin@cs.titech.ac.jp)
+
+v3.2 Sun Jun 23 02:28:10 PDT 1996
+
+- Print new icmp unreachable codes as suggested by Martin Fredriksson
+  (martin@msp.se). Also print code value when unknown for icmp redirect
+  and time exceeded.
+
+- Fix an alignment endian bug in getname(). Thanks to John Hawkinson.
+
+- Define "new" domain record types if not found in arpa/nameserv.h.
+  Resulted from a suggestion from John Hawkinson (jhawk@mit.edu). Also
+  fixed an endian bug when printing mx record and added some new record
+  types.
+
+- Added RIP V2 support. Thanks to Jeffrey Honig (jch@bsdi.com)
+
+- Added T/TCP options printing. As suggested by Richard Stevens
+  (rstevens@noao.edu)
+
+- Use autoconf to detect architectures that can't handle misaligned
+  accesses.
+
+v3.1 Thu Jun 13 20:59:32 PDT 1996
+
+- Changed u_int32/int32 to u_int32_t/int32_t to be consistent with bsd
+  and bind (as suggested by Charles Hannum).
+
+- Port to GNU autoconf.
+
+- Add support for printing DVMRP and PIM traffic thanks to
+  Havard Eidnes (Havard.Eidnes@runit.sintef.no).
+
+- Fix AppleTalk, IPX and DECnet byte order problems due to wrong endian
+  define being referenced. Reported by Terry Kennedy.
+
+- Minor fixes to the man page thanks to Mark Andrews.
+
+- Endian fixes to RTP and vat packet dumpers, thanks to Bruce Mah
+  (bmah@cs.berkeley.edu).
+
+- Added support for new dns types, thanks to Rainer Orth.
+
+- Fixed tftp_print() to print the block number for ACKs.
+
+- Document -dd and -ddd. Resulted from a bug report from Charlie Slater
+  (cslater@imatek.com).
+
+- Check return status from malloc/calloc/etc.
+
+- Check return status from pcap_loop() so we can print an error and
+  exit with a bad status if there were problems.
+
+- Bail if ip option length is <= 0. Resulted from a bug report from
+  Darren Reed (darrenr@vitruvius.arbld.unimelb.edu.au).
+
+- Print out a little more information for sun rpc packets.
+
+- Add suport for Kerberos 4 thanks to John Hawkinson (jhawk@mit.edu).
+
+- Fixed the Fix EXTRACT_SHORT() and EXTRACT_LONG() macros (which were
+  wrong on little endian machines).
+
+- Fixed alignment bug in ipx_decode(). Thanks to Matt Crawford
+  (crawdad@fnal.gov).
+
+- Fix ntp_print() to not print garbage when the stratum is
+  "unspecified." Thanks to Deus Ex Machina (root@belle.bork.com).
+
+- Rewrote tcp options printer code to check for truncation. Added
+  selective acknowledgment case.
+
+- Fixed an endian bug in the ospf printer. Thanks to Jeffrey C Honig
+  (jch@bsdi.com)
+
+- Fix rip printer to handle 4.4 BSD sockaddr struct which only uses one
+  octet for the sa_family member. Thanks to Yoshitaka Tokugawa
+  (toku@dit.co.jp)
+
+- Don't checksum ip header if we don't have all of it. Thanks to John
+  Hawkinson (jhawk@mit.edu).
+ 
+- Print out hostnames if possible in egp printer. Thanks to Jeffrey
+  Honig (jhc@bsdi.com)
+
+
+v3.1a1 Wed May  3 19:21:11 PDT 1995
+
+- Include time.h when SVR4 is defined to avoid problems under Solaris
+  2.3.
+
+- Fix etheraddr_string() in the ETHER_SERVICE to return the saved
+  strings, not the local buffer. Thanks to Stefan Petri
+  (petri@ibr.cs.tu-bs.de).
+
+- Detect when pcap raises the snaplen (e.g. with snit). Print a warning
+  that the selected value was not used. Thanks to Pascal Hennequin
+  (Pascal.Hennequin@hugo.int-evry.fr).
+
+- Add a truncated packet test to print-nfs.c. Thanks to Pascal Hennequin.
+
+- BYTEORDER -> BYTE_ORDER Thanks to Terry Kennedy (terry@spcvxa.spc.edu).
+
+v3.0.3 Sun Oct  1 18:35:00 GMT 1995
+
+- Although there never was a 3.0.3 release, the linux boys cleverly
+  "released" one in late 1995.
+
+v3.0.2 Thu Apr 20 21:28:16 PDT 1995
+
+- Change configuration to not use gcc v2 flags with gcc v1.
+
+- Redo gmt2local() so that it works under BSDI (which seems to return
+  an empty timezone struct from gettimeofday()). Based on report from
+  Terry Kennedy (terry@spcvxa.spc.edu).
+
+- Change configure to recognize IP[0-9]* as "mips" SGI hardware. Based
+  on report from Mark Andrews (mandrews@alias.com).
+
+- Don't pass cc flags to gcc. Resulted from a bug report from Rainer
+  Orth (ro@techfak.uni-bielefeld.de).
+
+- Fixed printout of connection id for uncompressed tcp slip packets.
+  Resulted from a bug report from Richard Stevens (rstevens@noao.edu).
+
+- Hack around deficiency in Ultrix's make.
+
+- Add ETHERTYPE_TRAIL define which is missing from irix5.
+
+v3.0.1 Wed Aug 31 22:42:26 PDT 1994
+
+- Fix problems with gcc2 vs. malloc() and read() prototypes under SunOS 4.
+
+v3.0 Mon Jun 20 19:23:27 PDT 1994
+
+- Added support for printing tcp option timestamps thanks to
+  Mark Andrews (mandrews@alias.com).
+
+- Reorganize protocol dumpers to take const pointers to packets so they
+  never change the contents (i.e., they used to do endian conversions
+  in place).  Previously, whenever more than one pass was taken over
+  the packet, the packet contents would be dumped incorrectly (i.e.,
+  the output form -x would be wrong on little endian machines because
+  the protocol dumpers would modify the data).  Thanks to Charles Hannum
+  (mycroft@gnu.ai.mit.edu) for reporting this problem.
+
+- Added support for decnet protocol dumping thanks to Jeff Mogul
+  (mogul@pa.dec.com).
+
+- Fix bug that caused length of packet to be incorrectly printed
+  (off by ether header size) for unknown ethernet types thanks
+  to Greg Miller (gmiller@kayak.mitre.org).
+
+- Added support for IPX protocol dumping thanks to Brad Parker
+  (brad@fcr.com).
+
+- Added check to verify IP header checksum under -v thanks to
+  Brad Parker (brad@fcr.com).
+
+- Move packet capture code to new libpcap library (which is
+  packaged separately).
+
+- Prototype everything and assume an ansi compiler.
+
+- print-arp.c: Print hardware ethernet addresses if they're not
+  what we expect.
+
+- print-bootp.c: Decode the cmu vendor field. Add RFC1497 tags.
+  Many helpful suggestions from Gordon Ross (gwr@jericho.mc.com).
+
+- print-fddi.c: Improvements. Thanks to Jeffrey Mogul
+  (mogul@pa.dec.com).
+
+- print-icmp.c: Byte swap netmask before printing. Thanks to
+  Richard Stevens (rstevens@noao.edu). Print icmp type when unknown.
+
+- print-ip.c: Print the inner ip datagram of ip-in-ip encapsulated packets.
+  By default, only the inner packet is dumped, appended with the token
+  "(encap)".  Under -v, both the inner and output packets are dumped
+  (on the same line).  Note that the filter applies to the original packet,
+  not the encapsulated packet.  So if you run tcpdump on a net with an
+  IP Multicast tunnel, you cannot filter out the datagrams using the
+  conventional syntax.  (You can filter away all the ip-in-ip traffic
+  with "not ip proto 4".)
+
+- print-nfs.c: Keep pending rpc's in circular table. Add generic
+  nfs header and remove os dependences. Thanks to Jeffrey Mogul.
+
+- print-ospf.c: Improvements. Thanks to Jeffrey Mogul.
+
+- tcpdump.c: Add -T flag allows interpretation of "vat", "wb", "rpc"
+  (sunrpc) and rtp packets. Added "inbound" and "outbound" keywords
+  Add && and || operators
+
+v2.2.1 Tue Jun 6 17:57:22 PDT 1992
+
+- Fix bug with -c flag.
+
+v2.2 Fri May 22 17:19:41 PDT 1992
+
+- savefile.c: Remove hack that shouldn't have been exported. Add
+  truncate checks.
+
+- Added the 'icmp' keyword.  For example, 'icmp[0] != 8 and icmp[0] != 0'
+  matches non-echo/reply ICMP packets.
+
+- Many improvements to filter code optimizer.
+
+- Added 'multicast' keyword and extended the 'broadcast' keyword can now be
+  so that protocol qualifications are allowed. For example, "ip broadcast"
+  and "ether multicast" are valid filters.
+
+- Added support for monitoring the loopback interface (i.e. 'tcpdump -i lo').
+  Jeffrey Honig (jch@MITCHELL.CIT.CORNELL.EDU) contributed the kernel
+  patches to netinet/if_loop.c.
+
+- Added support for the Ungermann-Bass Ethernet on IBM/PC-RTs running AOS.
+  Contact Jeffrey Honig (jch@MITCHELL.CIT.CORNELL.EDU) for the diffs.
+
+- Added EGP and OSPF printers, thanks to Jeffrey Honig.
+
+v2.1 Tue Jan 28 11:00:14 PST 1992
+
+- Internal release (never publically exported).
+
+v2.0.1 Sun Jan 26 21:10:10 PDT
+
+- Various byte ordering fixes.
+
+- Add truncation checks.
+
+- inet.c: Support BSD style SIOCGIFCONF.
+
+- nametoaddr.c: Handle multi addresses for single host.
+
+- optimize.c: Rewritten.
+
+- pcap-bpf.c: don't choke when we get ptraced. only set promiscuous
+  for broadcast nets.
+
+- print-atal.c: Fix an alignment bug (thanks to
+  stanonik@nprdc.navy.mil) Add missing printf() argument.
+
+- print-bootp.c: First attempt at decoding the vendor buffer.
+
+- print-domain.c: Fix truncation checks.
+
+- print-icmp.c: Calculate length of packets from the ip header.
+
+- print-ip.c: Print frag id in decimal (so it's easier to match up
+  with non-frags). Add support for ospf, egp and igmp.
+
+- print-nfs.c: Lots of changes.
+
+- print-ntp.c: Make some verbose output depend on -v.
+
+- print-snmp.c: New version from John LoVerso.
+
+- print-tcp.c: Print rfc1072 tcp options.
+
+- tcpdump.c: Print "0x" prefix for %x formats. Always print 6 digits
+  (microseconds) worth of precision. Fix uid bugs.
+
+- A packet dumper has been added (thanks to Jeff Mogul of DECWRL).
+  With this option, you can create an architecture independent binary
+  trace file in real time, without the overhead of the packet printer.
+  At a later time, the packets can be filtered (again) and printed.
+
+- BSD is supported.  You must have BPF in your kernel.
+  Since the filtering is now done in the kernel, fewer packets are
+  dropped.  In fact, with BPF and the packet dumper option, a measly
+  Sun 3/50 can keep up with a busy network.
+
+- Compressed SLIP packets can now be dumped, provided you use our
+  SLIP software and BPF.  These packets are dumped as any other IP
+  packet; the compressed headers are dumped with the '-e' option.
+
+- Machines with little-endian byte ordering are supported (thanks to
+  Jeff Mogul).
+
+- Ultrix 4.0 is supported (also thanks to Jeff Mogul).
+
+- IBM RT and Stanford Enetfilter support has been added by
+  Rayan Zachariassen .  Tcpdump has been tested under
+  both the vanilla Enetfilter interface, and the extended interface
+  (#ifdef'd by IBMRTPC) present in the MERIT version of the Enetfilter.
+
+- TFTP packets are now printed (requests only).
+
+- BOOTP packets are now printed.
+
+- SNMP packets are now printed. (thanks to John LoVerso of Xylogics).
+
+- Sparc architectures, including the Sparcstation-1, are now
+  supported thanks to Steve McCanne and Craig Leres.
+
+- SunOS 4 is now supported thanks to Micky Liu of Columbia
+  University (micky@cunixc.cc.columbia.edu).
+
+- IP options are now printed.
+
+- RIP packets are now printed.
+
+- There's a -v flag that prints out more information than the
+  default (e.g., it will enable printing of IP ttl, tos and id)
+  and -q flag that prints out less (e.g., it will disable
+  interpretation of AppleTalk-in-UDP).
+
+- The grammar has undergone substantial changes (if you have an
+  earlier version of tcpdump, you should re-read the manual
+  entry).
+
+  The most useful change is the addition of an expression
+  syntax that lets you filter on arbitrary fields or values in the
+  packet.  E.g., "ip[0] > 0x45" would print only packets with IP
+  options, "tcp[13] & 3 != 0" would print only TCP SYN and FIN
+  packets.
+
+  The most painful change is that concatenation no longer means
+  "and" -- e.g., you have to say "host foo and port bar" instead
+  of "host foo port bar".  The up side to this down is that
+  repeated qualifiers can be omitted, making most filter
+  expressions shorter.  E.g., you can now say "ip host foo and
+  (bar or baz)" to look at ip traffic between hosts foo and bar or
+  between hosts foo and baz.  [The old way of saying this was "ip
+  host foo and (ip host bar or ip host baz)".]
+
+v2.0 Sun Jan 13 12:20:40 PST 1991
+
+- Initial public release.

Copied: vendor/tcpdump/3.2.1/FILES (from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/FILES)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/tcpdump/3.2.1/FILES	Fri Mar 20 13:27:51 2009	(r190150, copy of r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/FILES)
@@ -0,0 +1,80 @@
+CHANGES
+FILES
+INSTALL
+Makefile.in
+README
+VERSION
+aclocal.m4
+addrtoname.c
+addrtoname.h
+appletalk.h
+atime.awk
+bootp.h
+bpf_dump.c
+config.guess
+config.sub
+configure
+configure.in
+decnet.h
+ethertype.h
+extract.h
+fddi.h
+igrp.h
+install-sh
+interface.h
+ipx.h
+lbl/gnuc.h
+lbl/os-solaris2.h
+lbl/os-sunos4.h
+llc.h
+machdep.c
+machdep.h
+makemib
+mib.h
+mkdep
+netbios.h
+nfsfh.h
+nfsv2.h
+ntp.h
+ospf.h
+packetdat.awk
+parsenfsfh.c
+print-arp.c
+print-atalk.c
+print-atm.c
+print-bootp.c
+print-decnet.c
+print-domain.c
+print-dvmrp.c
+print-egp.c
+print-ether.c
+print-fddi.c
+print-icmp.c
+print-igrp.c
+print-ip.c
+print-ipx.c
+print-isoclns.c
+print-krb.c
+print-llc.c
+print-netbios.c
+print-nfs.c
+print-ntp.c
+print-null.c
+print-ospf.c
+print-pim.c
+print-ppp.c
+print-rip.c
+print-sl.c
+print-snmp.c
+print-sunrpc.c
+print-tcp.c
+print-tftp.c
+print-udp.c
+print-wb.c
+send-ack.awk
+stime.awk
+strcasecmp.c
+tcpdump.1
+tcpdump.c
+util.c
+vfprintf.c

Copied: vendor/tcpdump/3.2.1/INSTALL (from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/INSTALL)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/tcpdump/3.2.1/INSTALL	Fri Mar 20 13:27:51 2009	(r190150, copy of r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/INSTALL)
@@ -0,0 +1,116 @@
+@(#) $Header: INSTALL,v 1.25 96/07/21 04:02:01 leres Exp $ (LBL)
+
+If you have not built libpcap, do so first.  See the README
+file in this directory for the ftp location.
+
+You will need an ANSI C compiler to build tcpdump. The configure script
+will abort if your compiler is not ANSI compliant. If this happens, use
+the GNU C compiler, available via anonymous ftp:
+
+	ftp://prep.ai.mit.edu/pub/gnu/gcc-*.tar.gz
+
+After libpcap has been built (either install it with "make install" and
+"make install-incl" or make sure both the libpcap and tcpdump source
+trees are in the same directory), edit the BINDEST and MANDEST paths in
+Makefile.in and run ./configure (a shell script).  "configure" will
+determine your system attributes and generate an appropriate Makefile
+from Makefile.in.  Now build tcpdump by running "make".
+
+If everything builds ok, su and type "make install" (and optionally
+"make install-man). This will install tcpdump and the manual entry. By
+default, tcpdump is installed with group execute permissions. The group
+used depends on your os. In addition, BPF packet access is controlled
+by permissions to /dev/bpf0. In any case, DO NOT give untrusted users
+the capability of running tcpdump. Tcpdump can capture any traffic on
+your net, including passwords.
+
+Note that tcpdump is shipped with some systems, for example, DEC/OSF
+and BSD/386.  Remember to remove or rename the installed binary
+when upgrading.
+
+If your system is not one which we have tested tcpdump on, you may have
+to modify the configure script and Makefile.in. Please send us patches
+for any modifications you need to make. However, we are not interested
+in ascii packet printer patches. We believe adding this feature would
+make it too easy for crackers who do not have the programming skills
+needed to write a password sniffer to grab clear text passwords.
+
+FILES
+-----
+CHANGES         - description of differences between releases
+FILES		- list of files exported as part of the distribution
+INSTALL         - this file
+Makefile.in	- compilation rules (input to the configure script)
+README		- description of distribution
+VERSION		- version of this release
+aclocal.m4	- autoconf macros
+addrtoname.c	- address to hostname routines
+addrtoname.h	- address to hostname definitions
+appletalk.h	- AppleTalk definitions
+atime.awk	- tcp ack awk script
+bootp.h		- BOOTP definitions
+bpf_dump.c	- bpf instruction pretty-printer routine
+config.guess	- autoconf support
+config.sub	- autoconf support
+configure	- configure script (run this first)
+configure.in	- configure script source
+decnet.h	- DECnet definitions
+ethertype.h	- ethernet definitions
+extract.h	- alignment definitions
+fddi.h		- FDDI definitions
+igrp.h		- Interior Gateway Routing Protoco definitions
+install-sh	- BSD style install script
+interface.h	- globals, prototypes and definitions
+ipx.h		- IPX definitions
+lbl/gnuc.h	- gcc macros and defines
+lbl/os-*.h	- os dependent defines and prototypes
+llc.h		- LLC definitions
+machdep.c	- machine dependent routines
+machdep.h	- machine dependent definitions
+makemib		- mib to header script
+mib.h		- mib definitions
+mkdep		- construct Makefile dependency list
+netbios.h	- NETBIOS definitions
+nfsfh.h		- NFS file handle definitions
+nfsv2.h		- NFS V2 definitions
+ntp.h		- NTP definitions
+ospf.h		- OSPF definitions
+packetdat.awk	- tcp chunk summary awk script
+parsenfsfh.c	- NFS file parser routines
+print-arp.c	- ARP printer routines
+print-atalk.c	- AppleTalk printer routines
+print-atm.c	- atm printer routines
+print-bootp.c	- BOOTP printer routines
+print-decnet.c	- DECnet printer routines
+print-domain.c	- Domain Name System printer routines
+print-egp.c	- EGP printer routines
+print-ether.c	- ethernet printer routines
+print-fddi.c	- FDDI printer routines
+print-icmp.c	- ICMP printer routines
+print-igrp.c	- Interior Gateway Routing Protoco printer routines
+print-ip.c	- ip printer routines
+print-ipx.c	- IPX printer routines
+print-isoclns.c	- isoclns printer routines
+print-krb.c	- Kerberos printer routines
+print-llc.c	- llc printer routines
+print-netbios.c	- netbios printer routines
+print-nfs.c	- NFS printer routines
+print-ntp.c	- NTP printer routines
+print-null.c	- null printer routines
+print-ospf.c	- ospf printer routines
+print-pim.c	- Protocol Independent Multicast printer routines
+print-ppp.c	- PPP printer routines
+print-rip.c	- RIP printer routines
+print-sl.c	- CSLIP printer routines
+print-snmp.c	- SNMP printer routines
+print-sunrpc.c	- Sun RPC printer routines
+print-tcp.c	- TCP printer routines
+print-tftp.c	- TFTP printer routines
+print-udp.c	- UDP printer routines
+print-wb.c	- white board printer routines
+send-ack.awk	- unidirectional tcp send/ack awk script
+stime.awk	- tcp send awk script
+tcpdump.1	- manual entry
+tcpdump.c	- main program
+util.c		- utility routines
+vfprintf.c	- emulation routine

Copied: vendor/tcpdump/3.2.1/Makefile.in (from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/Makefile.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/tcpdump/3.2.1/Makefile.in	Fri Mar 20 13:27:51 2009	(r190150, copy of r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/Makefile.in)
@@ -0,0 +1,140 @@
+#  Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+# 	The Regents of the University of California.  All rights reserved.
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that: (1) source code distributions
+#  retain the above copyright notice and this paragraph in its entirety, (2)
+#  distributions including binary code include the above copyright notice and
+#  this paragraph in its entirety in the documentation or other materials
+#  provided with the distribution, and (3) all advertising materials mentioning
+#  features or use of this software display the following acknowledgement:
+#  ``This product includes software developed by the University of California,
+#  Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
+#  the University nor the names of its contributors may be used to endorse
+#  or promote products derived from this software without specific prior
+#  written permission.
+#  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+#  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+#
+# @(#) $Header: Makefile.in,v 1.195 96/07/16 23:52:06 leres Exp $ (LBL)
+
+#
+# Various configurable paths (remember to edit Makefile.in, not Makefile)
+#
+
+# Top level hierarchy
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+# Pathname of directory to install the binary
+BINDEST = @sbindir@
+# Pathname of directory to install the man page
+MANDEST = @mandir@
+
+#
+# You shouldn't need to edit anything below here.
+#
+
+CC = @CC@
+CCOPT = @V_CCOPT@
+INCLS = -I. @V_INCLS@
+DEFS = @DEFS@ -DPPP -DHAVE_FDDI
+
+# Standard CFLAGS
+CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
+
+# Standard LIBS
+LIBS = @LIBS@
+
+INSTALL = @INSTALL@
+
+# Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
+# Also, gcc does not remove the .o before forking 'as', which can be a
+# problem if you don't own the file but can write to the directory.
+.c.o:
+	@rm -f $@
+	$(CC) $(CFLAGS) -c $*.c
+
+CSRC =	tcpdump.c addrtoname.c \
+	print-ether.c print-ip.c print-arp.c print-tcp.c \
+	print-udp.c print-atalk.c print-domain.c print-tftp.c \
+	print-bootp.c print-nfs.c print-icmp.c print-igrp.c \
+	print-sl.c print-ppp.c print-rip.c print-snmp.c \
+	print-ntp.c print-null.c print-egp.c print-ospf.c \
+	print-fddi.c print-llc.c print-sunrpc.c print-wb.c \
+	print-decnet.c print-isoclns.c print-ipx.c \
+	print-atm.c print-dvmrp.c print-pim.c print-krb.c \
+	util.c machdep.c bpf_dump.c parsenfsfh.c
+LOCALSRC =
+GENSRC = version.c
+
+SRC =	$(CSRC) $(GENSRC) $(LOCALSRC)
+
+# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
+# hack the extra indirection
+OBJ =	$(CSRC:.c=.o) $(GENSRC:.c=.o) $(LOCALSRC:.c=.o) @LIBOBJS@
+HDR =   addrtoname.h appletalk.h bootp.h decnet.h \
+	ethertype.h extract.h fddi.h interface.h igrp.h ipx.h \
+	llc.h machdep.h mib.h nfsfh.h nfsv2.h ntp.h ospf.h
+
+TAGHDR = \
+	/usr/include/arpa/tftp.h \
+	/usr/include/net/slip.h \
+	/usr/include/netinet/if_ether.h \
+	/usr/include/netinet/in.h \
+	/usr/include/netinet/ip_icmp.h \
+	/usr/include/netinet/tcp.h \
+	/usr/include/netinet/udp.h \
+	/usr/include/protocols/routed.h
+
+TAGFILES = $(SRC) $(HDR) $(TAGHDR)
+
+CLEANFILES = $(OBJ) tcpdump $(GENSRC)
+
+tcpdump: $(OBJ) @V_PCAPDEP@
+	@rm -f $@
+	$(CC) $(CFLAGS) -o $@ $(OBJ) $(LIBS)
+
+version.o: version.c
+version.c: VERSION
+	@rm -f $@
+	sed -e 's/.*/char version[] = "&";/' VERSION > $@
+
+install: force
+	$(INSTALL) -m 550 -o bin -g @V_GROUP@ tcpdump $(DESTDIR)$(BINDEST)
+
+install-man: force
+	$(INSTALL) -m 444 -o bin -g bin tcpdump.1 $(DESTDIR)$(MANDEST)/man1
+
+lint:	$(GENSRC) force
+	lint -hbxn $(SRC) | \
+	    grep -v 'struct/union .* never defined' | \
+	    grep -v 'possible pointer alignment problem'
+
+clean:
+	rm -f $(CLEANFILES)
+
+distclean:
+	rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
+	    gnuc.h os-proto.h
+
+tags:	$(TAGFILES)
+	ctags -wtd $(TAGFILES)
+
+tar:	force
+	@cwd=`pwd` ; dir=`basename $$cwd` ; name=tcpdump-`cat VERSION` ; \
+	    list="" ; tar="tar chFFf" ; \
+	    for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \
+	    echo \
+	    "rm -f ../$$name; ln -s $$dir ../$$name" ; \
+	     rm -f ../$$name; ln -s $$dir ../$$name ; \
+	    echo \
+	    "(cd .. ; $$tar - [lots of files]) | compress > /tmp/$$name.tar.Z" ; \
+	     (cd .. ; $$tar - $$list) | compress > /tmp/$$name.tar.Z ; \
+	    echo \
+	    "rm -f ../$$name" ; \
+	     rm -f ../$$name
+
+force:	/tmp
+depend:	$(GENSRC) force
+	./mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC)

Copied: vendor/tcpdump/3.2.1/README (from r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/README)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/tcpdump/3.2.1/README	Fri Mar 20 13:27:51 2009	(r190150, copy of r190147, vendor/tcpdump/3.2.1/contrib/tcpdump/README)
@@ -0,0 +1,203 @@
+@(#) $Header: README,v 1.49 96/07/15 18:28:23 leres Exp $ (LBL)
+
+TCPDUMP 3.2.1
+Lawrence Berkeley National Laboratory
+Network Research Group
+tcpdump@ee.lbl.gov
+ftp://ftp.ee.lbl.gov/tcpdump.tar.Z
+
+This directory contains source code for tcpdump, a tool for network
+monitoring and data acquisition.  The original distribution is
+available via anonymous ftp to ftp.ee.lbl.gov, in tcpdump.tar.Z.
+
+Tcpdump now uses libcap, a system-independent interface for user-level
+packet capture.  Before building tcpdump, you must first retrieve and
+build libpcap, also from LBL, in:
+
+	ftp://ftp.ee.lbl.gov/libpcap.tar.Z
+
+Once libpcap is built (either install it or make sure it's in
+../libpcap), you can build tcpdump using the procedure in the INSTALL
+file.
+
+The program is loosely based on SMI's "etherfind" although none
+of the etherfind code remains.  It was originally written by Van
+Jacobson as part of an ongoing research project to investigate and
+improve tcp and internet gateway performance.  The parts of the
+program originally taken from Sun's etherfind were later re-written
+by Steven McCanne of LBL.  To insure that there would be no vestige
+of proprietary code in tcpdump, Steve wrote these pieces from the
+specification given by the manual entry, with no access to the
+source of tcpdump or etherfind.
+
+Over the past few years, tcpdump has been steadily improved
+by the excellent contributions from the Internet community
+(just browse through the CHANGES file).  We are grateful for
+all the input.
+
+Richard Stevens gives an excellent treatment of the Internet
+protocols in his book ``TCP/IP Illustrated, Volume 1''.
+If you want to learn more about tcpdump and how to interpret
+its output, pick up this book.
+
+Some tools for viewing and analyzing tcpdump trace files are available
+from the Internet Traffic Archive:
+
+	http://town.hall.org/Archives/pub/ITA/
+
+Problems, bugs, questions, desirable enhancements, source code
+contributions, etc., should be sent to the email address
+"tcpdump@ee.lbl.gov".
+
+ - Steve McCanne
+   Craig Leres
+   Van Jacobson
+-------------------------------------
+This directory also contains some short awk programs intended as
+examples of ways to reduce tcpdump data when you're tracking
+particular network problems:
+
+send-ack.awk
+	Simplifies the tcpdump trace for an ftp (or other unidirectional
+	tcp transfer).  Since we assume that one host only sends and
+	the other only acks, all address information is left off and
+	we just note if the packet is a "send" or an "ack".
+
+	There is one output line per line of the original trace.
+	Field 1 is the packet time in decimal seconds, relative
+	to the start of the conversation.  Field 2 is delta-time
+	from last packet.  Field 3 is packet type/direction.
+	"Send" means data going from sender to receiver, "ack"
+	means an ack going from the receiver to the sender.  A
+	preceding "*" indicates that the data is a retransmission.
+	A preceding "-" indicates a hole in the sequence space
+	(i.e., missing packet(s)), a "#" means an odd-size (not max
+	seg size) packet.  Field 4 has the packet flags
+	(same format as raw trace).  Field 5 is the sequence
+	number (start seq. num for sender, next expected seq number
+	for acks).  The number in parens following an ack is
+	the delta-time from the first send of the packet to the
+	ack.  A number in parens following a send is the
+	delta-time from the first send of the packet to the
+	current send (on duplicate packets only).  Duplicate
+	sends or acks have a number in square brackets showing
+	the number of duplicates so far.
+
+	Here is a short sample from near the start of an ftp:
+		3.00    0.20   send . 512
+		3.20    0.20    ack . 1024  (0.20)
+		3.20    0.00   send P 1024
+		3.40    0.20    ack . 1536  (0.20)
+		3.80    0.40 * send . 0  (3.80) [2]
+		3.82    0.02 *  ack . 1536  (0.62) [2]
+	Three seconds into the conversation, bytes 512 through 1023
+	were sent.  200ms later they were acked.  Shortly thereafter
+	bytes 1024-1535 were sent and again acked after 200ms.
+	Then, for no apparent reason, 0-511 is retransmitted, 3.8
+	seconds after its initial send (the round trip time for this
+	ftp was 1sec, +-500ms).  Since the receiver is expecting
+	1536, 1536 is re-acked when 0 arrives.
+
+packetdat.awk
+	Computes chunk summary data for an ftp (or similar
+	unidirectional tcp transfer). [A "chunk" refers to
+	a chunk of the sequence space -- essentially the packet
+	sequence number divided by the max segment size.]
+
+	A summary line is printed showing the number of chunks,
+	the number of packets it took to send that many chunks
+	(if there are no lost or duplicated packets, the number
+	of packets should equal the number of chunks) and the
+	number of acks.
+
+	Following the summary line is one line of information
+	per chunk.  The line contains eight fields:
+	   1 - the chunk number
+	   2 - the start sequence number for this chunk
+	   3 - time of first send
+	   4 - time of last send
+	   5 - time of first ack
+	   6 - time of last ack
+	   7 - number of times chunk was sent
+	   8 - number of times chunk was acked
+	(all times are in decimal seconds, relative to the start
+	of the conversation.)
+
+	As an example, here is the first part of the output for
+	an ftp trace:
+
+	# 134 chunks.  536 packets sent.  508 acks.
+	1       1       0.00    5.80    0.20    0.20    4       1
+	2       513     0.28    6.20    0.40    0.40    4       1
+	3       1025    1.16    6.32    1.20    1.20    4       1
+	4       1561    1.86    15.00   2.00    2.00    6       1
+	5       2049    2.16    15.44   2.20    2.20    5       1
+	6       2585    2.64    16.44   2.80    2.80    5       1
+	7       3073    3.00    16.66   3.20    3.20    4       1
+	8       3609    3.20    17.24   3.40    5.82    4       11
+	9       4097    6.02    6.58    6.20    6.80    2       5
+
+	This says that 134 chunks were transferred (about 70K
+	since the average packet size was 512 bytes).  It took
+	536 packets to transfer the data (i.e., on the average
+	each chunk was transmitted four times).  Looking at,
+	say, chunk 4, we see it represents the 512 bytes of
+	sequence space from 1561 to 2048.  It was first sent
+	1.86 seconds into the conversation.  It was last
+	sent 15 seconds into the conversation and was sent
+	a total of 6 times (i.e., it was retransmitted every
+	2 seconds on the average).  It was acked once, 140ms
+	after it first arrived.
+
+stime.awk
+atime.awk
+	Output one line per send or ack, respectively, in the form
+