From owner-p4-projects@FreeBSD.ORG Tue Dec 27 00:07:39 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EA2716A422; Tue, 27 Dec 2005 00:07:38 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4F68616A420 for ; Tue, 27 Dec 2005 00:07:38 +0000 (GMT) (envelope-from soc-andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8325F43D45 for ; Tue, 27 Dec 2005 00:07:37 +0000 (GMT) (envelope-from soc-andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBR07bsR060713 for ; Tue, 27 Dec 2005 00:07:37 GMT (envelope-from soc-andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBR07bfS060708 for perforce@freebsd.org; Tue, 27 Dec 2005 00:07:37 GMT (envelope-from soc-andrew@freebsd.org) Date: Tue, 27 Dec 2005 00:07:37 GMT Message-Id: <200512270007.jBR07bfS060708@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-andrew@freebsd.org using -f From: soc-andrew To: Perforce Change Reviews Cc: Subject: PERFORCE change 88746 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Dec 2005 00:07:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=88746 Change 88746 by soc-andrew@soc-andrew_serv on 2005/12/27 00:07:15 Rename posix to POSIX to reduce the diff to the BSDInstaller cvs Affected files ... .. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/install/500_install_os.lua#6 edit .. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/package.lua#5 edit .. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/target_system.lua#9 edit .. //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/uinav.lua#4 edit Differences ... ==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/install/500_install_os.lua#6 (text+ko) ==== @@ -90,7 +90,7 @@ "-C ${root}${base}/usr", replacements = { base = base, - uname = posix.uname("%r") + uname = POSIX.uname("%r") } } end ==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/package.lua#5 (text+ko) ==== @@ -225,7 +225,7 @@ else local tmp_dir = App.conf.dir.root .. ts:get_base() .. "tmp" - local link = posix.readlink(tmp_dir) + local link = POSIX.readlink(tmp_dir) if link ~= nil then pkg_tmp = FileName.remove_leading_slash(link) elseif FileName.is_dir(tmp_dir) then @@ -446,7 +446,7 @@ local dir_name = App.expand("${root}${base}var/db/pkg", { base = ts:get_base() }) - local dir = posix.dir(dir_name) + local dir = POSIX.dir(dir_name) if dir then local i, filename for i, filename in ipairs(dir) do @@ -464,7 +464,7 @@ -- the given directory. -- method.enumerate_archives_in = function(self, dir_name) - local dir = posix.dir(dir_name) + local dir = POSIX.dir(dir_name) if dir then local i, filename for i, filename in ipairs(dir) do ==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/target_system.lua#9 (text+ko) ==== @@ -350,7 +350,7 @@ -- local add_copy_command = function(src, dest) local filename = App.expand("${root}" .. src) - local link = posix.readlink(filename) + local link = POSIX.readlink(filename) if link ~= nil then cmds:add{ cmdline = "${root}${LN} -s ${link} ${root}${base}${dest}", @@ -422,7 +422,7 @@ dir = dir, dest = dest, dist_suffix = App.conf.dist_suffix, - uname = posix.uname("%r") + uname = POSIX.uname("%r") }, log_mode = CmdChain.LOG_QUIET -- don't spam log } ==== //depot/projects/soc2005/bsdinstaller/src/contrib/bsdinstaller/backend/lua/lib/uinav.lua#4 (text+ko) ==== @@ -285,7 +285,7 @@ from_dir = FileName.dirname(App.get_current_script()) end - filenames = posix.dir(from_dir) + filenames = POSIX.dir(from_dir) table.sort(filenames) for i, filename in ipairs(filenames) do From owner-p4-projects@FreeBSD.ORG Wed Dec 28 16:17:44 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 20FA216A422; Wed, 28 Dec 2005 16:17:44 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D18CC16A41F for ; Wed, 28 Dec 2005 16:17:43 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 810D343D62 for ; Wed, 28 Dec 2005 16:17:43 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBSGHhqW048566 for ; Wed, 28 Dec 2005 16:17:43 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBSGHhS2048563 for perforce@freebsd.org; Wed, 28 Dec 2005 16:17:43 GMT (envelope-from jhb@freebsd.org) Date: Wed, 28 Dec 2005 16:17:43 GMT Message-Id: <200512281617.jBSGHhS2048563@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88838 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Dec 2005 16:17:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=88838 Change 88838 by jhb@jhb_slimer on 2005/12/28 16:17:15 Implement msleep_spin() which is a stripped down version of msleep() (no PCATCH or PDROP and no priority at all) that works with spin mutexes. Add a test event to crash.ko as well. Affected files ... .. //depot/projects/smpng/sys/kern/kern_synch.c#93 edit .. //depot/projects/smpng/sys/modules/crash/crash.c#26 edit .. //depot/projects/smpng/sys/sys/systm.h#68 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_synch.c#93 (text+ko) ==== @@ -241,6 +241,88 @@ return (rval); } +int +msleep_spin(ident, mtx, wmesg, timo) + void *ident; + struct mtx *mtx; + const char *wmesg; + int timo; +{ + struct thread *td; + struct proc *p; + int rval; + WITNESS_SAVE_DECL(mtx); + + td = curthread; + p = td->td_proc; + KASSERT(mtx != NULL, ("sleeping without a mutex")); + KASSERT(p != NULL, ("msleep1")); + KASSERT(ident != NULL && TD_IS_RUNNING(td), ("msleep")); + + if (cold) { + /* + * During autoconfiguration, just return; + * don't run any other threads or panic below, + * in case this is the idle thread and already asleep. + * XXX: this used to do "s = splhigh(); splx(safepri); + * splx(s);" to give interrupts a chance, but there is + * no way to give interrupts a chance now. + */ + return (0); + } + + sleepq_lock(ident); + CTR5(KTR_PROC, "msleep_spin: thread %p (pid %ld, %s) on %s (%p)", + (void *)td, (long)p->p_pid, p->p_comm, wmesg, ident); + + DROP_GIANT(); + mtx_assert(mtx, MA_OWNED | MA_NOTRECURSED); + WITNESS_SAVE(&mtx->mtx_object, mtx); + mtx_unlock_spin(mtx); + + /* + * We put ourselves on the sleep queue and start our timeout. + */ + sleepq_add(ident, mtx, wmesg, SLEEPQ_MSLEEP); + if (timo) + sleepq_set_timeout(ident, timo); + + /* + * Can't call ktrace with any spin locks held so it can lock the + * ktrace_mtx lock, and WITNESS_WARN considers it an error to hold + * any spin lock. Thus, we have to drop the sleepq spin lock while + * we handle those requests. This is safe since we have placed our + * thread on the sleep queue already. + */ +#ifdef KTRACE + if (KTRPOINT(td, KTR_CSW)) { + sleepq_release(ident); + ktrcsw(1, 0); + sleepq_lock(ident); + } +#endif +#ifdef WITNESS + sleepq_release(ident); + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "Sleeping on \"%s\"", + wmesg); + sleepq_lock(ident); +#endif + if (timo) + rval = sleepq_timedwait(ident); + else { + sleepq_wait(ident); + rval = 0; + } +#ifdef KTRACE + if (KTRPOINT(td, KTR_CSW)) + ktrcsw(0, 0); +#endif + PICKUP_GIANT(); + mtx_lock_spin(mtx); + WITNESS_RESTORE(&mtx->mtx_object, mtx); + return (rval); +} + /* * Make all threads sleeping on the specified identifier runnable. */ ==== //depot/projects/smpng/sys/modules/crash/crash.c#26 (text+ko) ==== @@ -84,6 +84,31 @@ /* Events. */ static void +msleep_spin_callout(void *dummy) +{ + + wakeup(&test1_mtx); +} + +static void +msleep_spin_test(void) +{ + int error; + + bzero(&test1_mtx, sizeof(test1_mtx)); + mtx_init(&test1_mtx, "test1", NULL, MTX_SPIN); + error = msleep_spin(&test1_mtx, &test1_mtx, "spincr", 5); + printf("msleep_spin returned %d\n", error); + kdb_enter("timed out"); + timeout(msleep_spin_callout, NULL, 5); + error = msleep_spin(&test1_mtx, &test1_mtx, "spincr2", 0); + printf("msleep_spin returned %d\n", error); + kdb_enter("awoke from spin"); + mtx_destroy(&test1_mtx); +} +CRASH_EVENT("msleep_spin", msleep_spin_test); + +static void ddblock_test(void) { ==== //depot/projects/smpng/sys/sys/systm.h#68 (text+ko) ==== @@ -295,6 +295,7 @@ */ int msleep(void *chan, struct mtx *mtx, int pri, const char *wmesg, int timo); +int msleep_spin(void *chan, struct mtx *mtx, const char *wmesg, int timo); #define tsleep(chan, pri, wmesg, timo) msleep(chan, NULL, pri, wmesg, timo) void wakeup(void *chan) __nonnull(1); void wakeup_one(void *chan) __nonnull(1); From owner-p4-projects@FreeBSD.ORG Thu Dec 29 00:37:59 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 34CD116A422; Thu, 29 Dec 2005 00:37:59 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E754816A41F for ; Thu, 29 Dec 2005 00:37:58 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F269B43D78 for ; Thu, 29 Dec 2005 00:37:55 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBT0btBB084060 for ; Thu, 29 Dec 2005 00:37:55 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBT0bteq084057 for perforce@freebsd.org; Thu, 29 Dec 2005 00:37:55 GMT (envelope-from imp@freebsd.org) Date: Thu, 29 Dec 2005 00:37:55 GMT Message-Id: <200512290037.jBT0bteq084057@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 88855 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 00:38:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=88855 Change 88855 by imp@imp_harmony on 2005/12/29 00:37:53 IFC @88854 Affected files ... .. //depot/projects/arm/src/sys/alpha/alpha/elf_machdep.c#3 integrate .. //depot/projects/arm/src/sys/alpha/linux/linux_sysvec.c#4 integrate .. //depot/projects/arm/src/sys/amd64/amd64/db_trace.c#5 integrate .. //depot/projects/arm/src/sys/amd64/amd64/elf_machdep.c#4 integrate .. //depot/projects/arm/src/sys/amd64/linux32/linux32_sysvec.c#4 integrate .. //depot/projects/arm/src/sys/arm/arm/elf_machdep.c#2 integrate .. //depot/projects/arm/src/sys/compat/ia32/ia32_sysvec.c#3 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/arm/src/sys/compat/linux/linux_socket.c#5 integrate .. //depot/projects/arm/src/sys/contrib/pf/net/pf.c#5 integrate .. //depot/projects/arm/src/sys/contrib/pf/net/pf_norm.c#4 integrate .. //depot/projects/arm/src/sys/contrib/pf/net/pfvar.h#4 integrate .. //depot/projects/arm/src/sys/dev/aac/aac.c#3 integrate .. //depot/projects/arm/src/sys/dev/acpica/Osd/OsdSynch.c#3 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-all.h#5 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-pci.h#5 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-queue.c#4 integrate .. //depot/projects/arm/src/sys/dev/ata/ata-raid.c#6 integrate .. //depot/projects/arm/src/sys/dev/cardbus/cardbus.c#5 integrate .. //depot/projects/arm/src/sys/dev/dc/if_dc.c#4 integrate .. //depot/projects/arm/src/sys/dev/em/if_em.c#10 integrate .. //depot/projects/arm/src/sys/dev/firewire/sbp.c#2 integrate .. //depot/projects/arm/src/sys/dev/hwpmc/hwpmc_mod.c#3 integrate .. //depot/projects/arm/src/sys/dev/hwpmc/hwpmc_piv.c#3 integrate .. //depot/projects/arm/src/sys/dev/md/md.c#3 integrate .. //depot/projects/arm/src/sys/dev/pccard/pccard.c#3 integrate .. //depot/projects/arm/src/sys/dev/pccbb/pccbb.c#3 integrate .. //depot/projects/arm/src/sys/dev/pccbb/pccbbreg.h#3 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/arm/src/sys/dev/sound/pci/emu10k1.c#3 integrate .. //depot/projects/arm/src/sys/dev/ti/if_ti.c#3 integrate .. //depot/projects/arm/src/sys/dev/ti/if_tireg.h#3 integrate .. //depot/projects/arm/src/sys/dev/usb/uhid.c#2 integrate .. //depot/projects/arm/src/sys/dev/usb/usb_quirks.c#4 integrate .. //depot/projects/arm/src/sys/dev/usb/usb_quirks.h#3 integrate .. //depot/projects/arm/src/sys/dev/usb/usbdevs#6 integrate .. //depot/projects/arm/src/sys/fs/procfs/procfs_status.c#3 integrate .. //depot/projects/arm/src/sys/i386/i386/elf_machdep.c#2 integrate .. //depot/projects/arm/src/sys/i386/i386/genassym.c#3 integrate .. //depot/projects/arm/src/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/arm/src/sys/i386/i386/swtch.s#3 integrate .. //depot/projects/arm/src/sys/i386/i386/sys_machdep.c#3 integrate .. //depot/projects/arm/src/sys/i386/include/pcpu.h#4 integrate .. //depot/projects/arm/src/sys/i386/linux/linux_sysvec.c#4 integrate .. //depot/projects/arm/src/sys/ia64/ia64/elf_machdep.c#4 integrate .. //depot/projects/arm/src/sys/kern/imgact_elf.c#5 integrate .. //depot/projects/arm/src/sys/kern/kern_malloc.c#3 integrate .. //depot/projects/arm/src/sys/kern/kern_switch.c#4 integrate .. //depot/projects/arm/src/sys/kern/sched_ule.c#5 integrate .. //depot/projects/arm/src/sys/net/if_media.c#2 integrate .. //depot/projects/arm/src/sys/netatm/atm_sys.h#2 integrate .. //depot/projects/arm/src/sys/netgraph/netflow/ng_netflow.c#3 integrate .. //depot/projects/arm/src/sys/nfsclient/nfs_vnops.c#6 integrate .. //depot/projects/arm/src/sys/pc98/pc98/machdep.c#3 integrate .. //depot/projects/arm/src/sys/powerpc/powerpc/elf_machdep.c#2 integrate .. //depot/projects/arm/src/sys/sparc64/conf/GENERIC#8 integrate .. //depot/projects/arm/src/sys/sparc64/sparc64/elf_machdep.c#3 integrate .. //depot/projects/arm/src/sys/sys/_timeval.h#2 integrate .. //depot/projects/arm/src/sys/sys/imgact_elf.h#3 integrate .. //depot/projects/arm/src/sys/sys/ktrace.h#3 integrate Differences ... ==== //depot/projects/arm/src/sys/alpha/alpha/elf_machdep.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/elf_machdep.c,v 1.20 2005/12/18 04:52:34 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/elf_machdep.c,v 1.21 2005/12/26 21:23:56 sobomax Exp $"); #include #include @@ -85,6 +85,7 @@ "/libexec/ld-elf.so.1", &elf64_freebsd_sysvec, NULL, + 0, }; SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY, @@ -99,6 +100,7 @@ "/usr/libexec/ld-elf.so.1", &elf64_freebsd_sysvec, NULL, + 0, }; SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, ==== //depot/projects/arm/src/sys/alpha/linux/linux_sysvec.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.97 2005/12/15 16:30:41 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.98 2005/12/26 21:23:56 sobomax Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -208,6 +208,7 @@ "/lib/ld-linux.so.1", &elf_linux_sysvec, NULL, + BI_CAN_EXEC_DYN, }; static Elf64_Brandinfo linux_glibc2brand = { @@ -218,6 +219,7 @@ "/lib/ld-linux.so.2", &elf_linux_sysvec, NULL, + BI_CAN_EXEC_DYN, }; Elf64_Brandinfo *linux_brandlist[] = { ==== //depot/projects/arm/src/sys/amd64/amd64/db_trace.c#5 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.72 2005/12/23 21:33:55 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.73 2005/12/27 23:23:47 pjd Exp $"); #include #include @@ -199,8 +199,8 @@ static void decode_syscall(int, struct thread *); static char * watchtype_str(int type); -int amd64_set_watch(int watchnum, unsigned int watchaddr, int size, int access, - struct dbreg * d); +int amd64_set_watch(int watchnum, unsigned long watchaddr, int size, + int access, struct dbreg * d); int amd64_clr_watch(int watchnum, struct dbreg * d); /* @@ -526,7 +526,7 @@ int amd64_set_watch(watchnum, watchaddr, size, access, d) int watchnum; - unsigned int watchaddr; + unsigned long watchaddr; int size; int access; struct dbreg * d; ==== //depot/projects/arm/src/sys/amd64/amd64/elf_machdep.c#4 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.24 2005/12/18 04:52:35 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.25 2005/12/26 21:23:56 sobomax Exp $"); #include #include @@ -82,6 +82,7 @@ "/libexec/ld-elf.so.1", &elf64_freebsd_sysvec, NULL, + 0, }; SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY, @@ -96,6 +97,7 @@ "/usr/libexec/ld-elf.so.1", &elf64_freebsd_sysvec, NULL, + 0, }; SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, ==== //depot/projects/arm/src/sys/amd64/linux32/linux32_sysvec.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.13 2005/12/15 16:30:41 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.14 2005/12/26 21:23:57 sobomax Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -1026,6 +1026,7 @@ "/lib/ld-linux.so.1", &elf_linux_sysvec, NULL, + BI_CAN_EXEC_DYN, }; static Elf32_Brandinfo linux_glibc2brand = { @@ -1036,6 +1037,7 @@ "/lib/ld-linux.so.2", &elf_linux_sysvec, NULL, + BI_CAN_EXEC_DYN, }; Elf32_Brandinfo *linux_brandlist[] = { ==== //depot/projects/arm/src/sys/arm/arm/elf_machdep.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/elf_machdep.c,v 1.5 2004/11/04 18:48:52 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/elf_machdep.c,v 1.6 2005/12/26 21:23:56 sobomax Exp $"); #include #include @@ -82,6 +82,7 @@ "/libexec/ld-elf.so.1", &elf32_freebsd_sysvec, NULL, + 0, }; SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_ANY, @@ -96,6 +97,7 @@ "/usr/libexec/ld-elf.so.1", &elf32_freebsd_sysvec, NULL, + 0, }; SYSINIT(oelf32, SI_SUB_EXEC, SI_ORDER_ANY, ==== //depot/projects/arm/src/sys/compat/ia32/ia32_sysvec.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.21 2005/11/02 21:18:07 ps Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.22 2005/12/26 21:23:56 sobomax Exp $"); #include "opt_compat.h" @@ -137,6 +137,7 @@ "/libexec/ld-elf.so.1", &ia32_freebsd_sysvec, "/libexec/ld-elf32.so.1", + 0, }; SYSINIT(ia32, SI_SUB_EXEC, SI_ORDER_ANY, @@ -151,6 +152,7 @@ "/usr/libexec/ld-elf.so.1", &ia32_freebsd_sysvec, "/libexec/ld-elf32.so.1", + 0, }; SYSINIT(oia32, SI_SUB_EXEC, SI_ORDER_ANY, ==== //depot/projects/arm/src/sys/compat/linux/linux_misc.c#4 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.171 2005/10/14 12:43:44 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.172 2005/12/28 07:08:54 trhodes Exp $"); #include "opt_mac.h" @@ -501,8 +501,8 @@ utv.tv_usec = ltv.tv_usec; #ifdef DEBUG if (ldebug(select)) - printf(LMSG("incoming timeout (%ld/%ld)"), - utv.tv_sec, utv.tv_usec); + printf(LMSG("incoming timeout (%jd/%ld)"), + (intmax_t)utv.tv_sec, utv.tv_usec); #endif if (itimerfix(&utv)) { @@ -558,8 +558,8 @@ timevalclear(&utv); #ifdef DEBUG if (ldebug(select)) - printf(LMSG("outgoing timeout (%ld/%ld)"), - utv.tv_sec, utv.tv_usec); + printf(LMSG("outgoing timeout (%jd/%ld)"), + (intmax_t)utv.tv_sec, utv.tv_usec); #endif ltv.tv_sec = utv.tv_sec; ltv.tv_usec = utv.tv_usec; @@ -958,10 +958,10 @@ B2L_ITIMERVAL(&aitv, &ls); #ifdef DEBUG if (ldebug(setitimer)) { - printf("setitimer: value: sec: %ld, usec: %ld\n", - aitv.it_value.tv_sec, aitv.it_value.tv_usec); - printf("setitimer: interval: sec: %ld, usec: %ld\n", - aitv.it_interval.tv_sec, aitv.it_interval.tv_usec); + printf("setitimer: value: sec: %jd, usec: %ld\n", + (intmax_t)aitv.it_value.tv_sec, aitv.it_value.tv_usec); + printf("setitimer: interval: sec: %jd, usec: %ld\n", + (intmax_t)aitv.it_interval.tv_sec, aitv.it_interval.tv_usec); } #endif error = kern_setitimer(td, uap->which, &aitv, &oitv); ==== //depot/projects/arm/src/sys/compat/linux/linux_socket.c#5 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.61 2005/09/28 07:03:02 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.62 2005/12/27 00:17:11 glebius Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -154,7 +154,7 @@ sin6->sin6_scope_id = 0; } else { log(LOG_DEBUG, - "obsolete pre-RFC2553 sockaddr_in6 rejected"); + "obsolete pre-RFC2553 sockaddr_in6 rejected\n"); error = EINVAL; goto out; } ==== //depot/projects/arm/src/sys/contrib/pf/net/pf.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.39 2005/12/20 00:33:33 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.40 2005/12/25 23:52:00 mlaier Exp $ */ /* $OpenBSD: pf.c,v 1.483 2005/03/15 17:38:43 dhartmei Exp $ */ /* @@ -742,6 +742,9 @@ int bad = 0; (*state)->src_node->conn++; +#ifdef __FreeBSD__ + (*state)->local_flags |= PFSTATE_SRC_CONN; +#endif pf_add_threshold(&(*state)->src_node->conn_rate); if ((*state)->rule.ptr->max_src_conn && @@ -1074,8 +1077,12 @@ if (s->src_node != NULL) { if (s->proto == IPPROTO_TCP) { +#ifdef __FreeBSD__ + if (s->local_flags & PFSTATE_SRC_CONN) +#else if (s->src.state == PF_TCPS_PROXY_DST || s->timeout >= PFTM_TCP_ESTABLISHED) +#endif --s->src_node->conn; } if (--s->src_node->states <= 0) { ==== //depot/projects/arm/src/sys/contrib/pf/net/pf_norm.c#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pf_norm.c,v 1.13 2005/12/05 11:58:31 ru Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pf_norm.c,v 1.14 2005/12/25 22:57:08 mlaier Exp $ */ /* $OpenBSD: pf_norm.c,v 1.97 2004/09/21 16:59:12 aaron Exp $ */ /* @@ -75,6 +75,8 @@ #include #ifndef __FreeBSD__ +#include + struct pf_frent { LIST_ENTRY(pf_frent) fr_next; struct ip *fr_ip; @@ -1815,8 +1817,9 @@ SEQ_LT(tsecr, dst->scrub->pfss_tsval0)? '3' : ' ')); #ifdef __FreeBSD__ DPFPRINTF((" tsval: %u tsecr: %u +ticks: %u " - "idle: %lus %lums\n", - tsval, tsecr, tsval_from_last, delta_ts.tv_sec, + "idle: %jus %lums\n", + tsval, tsecr, tsval_from_last, + (uintmax_t)delta_ts.tv_sec, delta_ts.tv_usec / 1000)); DPFPRINTF((" src->tsval: %u tsecr: %u\n", src->scrub->pfss_tsval, src->scrub->pfss_tsecr)); ==== //depot/projects/arm/src/sys/contrib/pf/net/pfvar.h#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.13 2005/12/20 00:33:33 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.14 2005/12/25 23:52:00 mlaier Exp $ */ /* $OpenBSD: pfvar.h,v 1.213 2005/03/03 07:13:39 dhartmei Exp $ */ /* @@ -793,6 +793,7 @@ #ifdef __FreeBSD__ u_int8_t local_flags; #define PFSTATE_EXPIRING 0x01 +#define PFSTATE_SRC_CONN 0x02 #else u_int8_t pad; #endif ==== //depot/projects/arm/src/sys/dev/aac/aac.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.116 2005/11/13 17:26:36 schweikh Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.117 2005/12/28 21:18:55 scottl Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -281,6 +281,7 @@ mtx_init(&sc->aac_io_lock, "AAC I/O lock", NULL, MTX_DEF); mtx_init(&sc->aac_container_lock, "AAC container lock", NULL, MTX_DEF); TAILQ_INIT(&sc->aac_container_tqh); + TAILQ_INIT(&sc->aac_ev_cmfree); /* Initialize the local AIF queue pointers */ sc->aac_aifq_head = sc->aac_aifq_tail = AAC_AIFQ_LENGTH; ==== //depot/projects/arm/src/sys/dev/acpica/Osd/OsdSynch.c#3 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.25 2005/11/01 22:44:07 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/Osd/OsdSynch.c,v 1.26 2005/12/24 22:22:17 trhodes Exp $"); #include @@ -257,8 +257,8 @@ tmo = 1; if (acpi_semaphore_debug) { - printf("%s: Wakeup timeleft(%lu, %lu), tmo %u, sem %p, thread %d\n", - __func__, timelefttv.tv_sec, timelefttv.tv_usec, tmo, as, + printf("%s: Wakeup timeleft(%jd, %lu), tmo %u, sem %p, thread %d\n", + __func__, (intmax_t)timelefttv.tv_sec, timelefttv.tv_usec, tmo, as, AcpiOsGetThreadId()); } } ==== //depot/projects/arm/src/sys/dev/ata/ata-all.h#5 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.108 2005/11/29 20:08:26 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.109 2005/12/27 16:49:33 sos Exp $ */ /* ATA register defines */ @@ -323,6 +323,7 @@ }; /* structure used for composite atomic operations */ +#define MAX_COMPOSITES 32 /* u_int32_t bits */ struct ata_composite { struct mtx lock; /* control lock */ u_int32_t rd_needed; /* needed read subdisks */ @@ -330,7 +331,7 @@ u_int32_t wr_needed; /* needed write subdisks */ u_int32_t wr_depend; /* write depends on subdisks */ u_int32_t wr_done; /* done write subdisks */ - struct ata_request *request[32]; /* size must match maps above */ + struct ata_request *request[MAX_COMPOSITES]; u_int32_t residual; /* bytes still to transfer */ caddr_t data_1; caddr_t data_2; ==== //depot/projects/arm/src/sys/dev/ata/ata-chipset.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.141 2005/12/16 08:12:13 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.145 2005/12/28 11:55:43 sos Exp $"); #include "opt_ata.h" #include @@ -98,6 +98,12 @@ static void ata_intel_new_setmode(device_t dev, int mode); static int ata_ite_chipinit(device_t dev); static void ata_ite_setmode(device_t dev, int mode); +static int ata_marvell_chipinit(device_t dev); +static int ata_marvell_allocate(device_t dev); +static void ata_marvell_intr(void *data); +static void ata_marvell_dmainit(device_t dev); +static int ata_marvell_command(struct ata_request *request); +static void ata_marvell_reset(device_t dev); static int ata_national_chipinit(device_t dev); static void ata_national_setmode(device_t dev, int mode); static int ata_nvidia_chipinit(device_t dev); @@ -2081,6 +2087,449 @@ /* + * Marvell chipset support functions + */ +#define ATA_MV_HOST_BASE(ch) \ + ((ch->unit & 3) * 0x0100) + (ch->unit > 3 ? 0x30000 : 0x20000) +#define ATA_MV_EDMA_BASE(ch) \ + ((ch->unit & 3) * 0x2000) + (ch->unit > 3 ? 0x30000 : 0x20000) + +int +ata_marvell_ident(device_t dev) +{ + struct ata_pci_controller *ctlr = device_get_softc(dev); + struct ata_chip_id *idx; + static struct ata_chip_id ids[] = + {{ ATA_M88SX5040, 0, 4, MV5XXX, ATA_SA150, "88SX5040" }, + { ATA_M88SX5041, 0, 4, MV5XXX, ATA_SA150, "88SX5041" }, + { ATA_M88SX5080, 0, 8, MV5XXX, ATA_SA150, "88SX5080" }, + { ATA_M88SX5081, 0, 8, MV5XXX, ATA_SA150, "88SX5081" }, + { ATA_M88SX6041, 0, 4, MV6XXX, ATA_SA300, "88SX6041" }, + { ATA_M88SX6081, 0, 8, MV6XXX, ATA_SA300, "88SX6081" }, + { 0, 0, 0, 0, 0, 0}}; + char buffer[64]; + + if (!(idx = ata_match_chip(dev, ids))) + return ENXIO; + + sprintf(buffer, "Marvell %s %s controller", + idx->text, ata_mode2str(idx->max_dma)); + device_set_desc_copy(dev, buffer); + ctlr->chip = idx; + ctlr->chipinit = ata_marvell_chipinit; + return 0; +} + +static int +ata_marvell_chipinit(device_t dev) +{ + struct ata_pci_controller *ctlr = device_get_softc(dev); + int rid = ATA_IRQ_RID; + + if (!(ctlr->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, + RF_SHAREABLE | RF_ACTIVE))) { + device_printf(dev, "unable to map interrupt\n"); + return ENXIO; + } + + ctlr->r_type1 = SYS_RES_MEMORY; + ctlr->r_rid1 = PCIR_BAR(0); + if (!(ctlr->r_res1 = bus_alloc_resource_any(dev, ctlr->r_type1, + &ctlr->r_rid1, RF_ACTIVE))) + return ENXIO; + + /* mask all host controller interrupts */ + ATA_OUTL(ctlr->r_res1, 0x01d64, 0x00000000); + + /* mask all PCI interrupts */ + ATA_OUTL(ctlr->r_res1, 0x01d5c, 0x00000000); + + ctlr->reset = ata_marvell_reset; + ctlr->dmainit = ata_marvell_dmainit; + ctlr->allocate = ata_marvell_allocate; + ctlr->setmode = ata_sata_setmode; + ctlr->channels = ctlr->chip->cfg1; + + if ((bus_setup_intr(dev, ctlr->r_irq, ATA_INTR_FLAGS, + ata_marvell_intr, ctlr, &ctlr->handle))) { + device_printf(dev, "unable to setup interrupt\n"); + return ENXIO; + } + + /* clear host controller interrupts */ + ATA_OUTL(ctlr->r_res1, 0x20014, 0x00000000); + if (ctlr->chip->cfg1 > 4) + ATA_OUTL(ctlr->r_res1, 0x30014, 0x00000000); + + /* clear PCI interrupts */ + ATA_OUTL(ctlr->r_res1, 0x01d58, 0x00000000); + + /* unmask PCI interrupts we want */ + ATA_OUTL(ctlr->r_res1, 0x01d5c, 0x007fffff); + + /* unmask host controller interrupts we want */ + ATA_OUTL(ctlr->r_res1, 0x01d64, 0x000000ff/*HC0*/ | 0x0001fe00/*HC1*/ | + /*(1<<19) | (1<<20) | (1<<21) |*/(1<<22) | (1<<24) | (0x7f << 25)); + + pci_write_config(dev, PCIR_COMMAND, + pci_read_config(dev, PCIR_COMMAND, 2) & ~0x0400, 2); + return 0; +} + +static int +ata_marvell_allocate(device_t dev) +{ + struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev)); + struct ata_channel *ch = device_get_softc(dev); + bus_addr_t wordp = ch->dma->work_bus; + int i; + + /* set legacy ATA resources */ + for (i = ATA_DATA; i <= ATA_COMMAND; i++) { + ch->r_io[i].res = ctlr->r_res1; + ch->r_io[i].offset = 0x02100 + (i << 2) + ATA_MV_EDMA_BASE(ch); + } + ch->r_io[ATA_CONTROL].res = ctlr->r_res1; + ch->r_io[ATA_CONTROL].offset = 0x02120 + ATA_MV_EDMA_BASE(ch); + ch->r_io[ATA_IDX_ADDR].res = ctlr->r_res1; + ata_default_registers(dev); + + /* set SATA resources */ + switch (ctlr->chip->cfg2) { + case MV5XXX: + ch->r_io[ATA_SSTATUS].res = ctlr->r_res1; + ch->r_io[ATA_SSTATUS].offset = 0x00100 + ATA_MV_HOST_BASE(ch); + ch->r_io[ATA_SERROR].res = ctlr->r_res1; + ch->r_io[ATA_SERROR].offset = 0x00104 + ATA_MV_HOST_BASE(ch); + ch->r_io[ATA_SCONTROL].res = ctlr->r_res1; + ch->r_io[ATA_SCONTROL].offset = 0x00108 + ATA_MV_HOST_BASE(ch); + break; + case MV6XXX: + ch->r_io[ATA_SSTATUS].res = ctlr->r_res1; + ch->r_io[ATA_SSTATUS].offset = 0x02300 + ATA_MV_EDMA_BASE(ch); + ch->r_io[ATA_SERROR].res = ctlr->r_res1; + ch->r_io[ATA_SERROR].offset = 0x02304 + ATA_MV_EDMA_BASE(ch); + ch->r_io[ATA_SCONTROL].res = ctlr->r_res1; + ch->r_io[ATA_SCONTROL].offset = 0x02308 + ATA_MV_EDMA_BASE(ch); + ch->r_io[ATA_SACTIVE].res = ctlr->r_res1; + ch->r_io[ATA_SACTIVE].offset = 0x02350 + ATA_MV_EDMA_BASE(ch); + break; + } + + ch->flags |= ATA_NO_SLAVE; + ch->flags |= ATA_USE_16BIT; /* XXX SOS needed ? */ + ata_generic_hw(dev); + ch->hw.command = ata_marvell_command; + + /* disable the EDMA machinery */ + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000002); + DELAY(100000); /* SOS should poll for disabled */ + + /* set configuration to non-queued 128b read transfers stop on error */ + ATA_OUTL(ctlr->r_res1, 0x02000 + ATA_MV_EDMA_BASE(ch), (1<<11) | (1<<13)); + + /* request queue base high */ + ATA_OUTL(ctlr->r_res1, 0x02010 + ATA_MV_EDMA_BASE(ch), (wordp >> 16) >> 16); + + /* request queue in ptr */ + ATA_OUTL(ctlr->r_res1, 0x02014 + ATA_MV_EDMA_BASE(ch), wordp & 0xffffffff); + + /* request queue out ptr */ + ATA_OUTL(ctlr->r_res1, 0x02018 + ATA_MV_EDMA_BASE(ch), 0x0); + + /* response queue base high */ + wordp += 1024; + ATA_OUTL(ctlr->r_res1, 0x0201c + ATA_MV_EDMA_BASE(ch), (wordp >> 16) >> 16); + + /* response queue in ptr */ + ATA_OUTL(ctlr->r_res1, 0x02020 + ATA_MV_EDMA_BASE(ch), 0x0); + + /* response queue out ptr */ + ATA_OUTL(ctlr->r_res1, 0x02024 + ATA_MV_EDMA_BASE(ch), wordp & 0xffffffff); + + /* clear SATA error register */ + ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR)); + + /* clear any outstanding error interrupts */ + ATA_OUTL(ctlr->r_res1, 0x02008 + ATA_MV_EDMA_BASE(ch), 0x0); + + /* unmask all error interrupts */ + ATA_OUTL(ctlr->r_res1, 0x0200c + ATA_MV_EDMA_BASE(ch), ~0x0); + + /* enable EDMA machinery */ + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000001); + return 0; +} + +struct ata_marvell_response { + u_int16_t tag; + u_int8_t edma_status; + u_int8_t dev_status; + u_int32_t timestamp; +}; + +static void +ata_marvell_intr(void *data) +{ + struct ata_pci_controller *ctlr = data; + struct ata_channel *ch; + struct ata_request *request; + struct ata_marvell_response *response; + u_int32_t cause, icr0 = 0, icr1 = 0; + int unit; + + cause = ATA_INL(ctlr->r_res1, 0x01d60); + if ((icr0 = ATA_INL(ctlr->r_res1, 0x20014))) + ATA_OUTL(ctlr->r_res1, 0x20014, ~icr0); + if (ctlr->channels > 4) { + if ((icr1 = ATA_INL(ctlr->r_res1, 0x30014))) + ATA_OUTL(ctlr->r_res1, 0x30014, ~icr1); + } + + for (unit = 0; unit < ctlr->channels; unit++) { + u_int32_t icr; + int shift; + + if (!(ch = ctlr->interrupt[unit].argument)) + continue; + + mtx_lock(&ch->state_mtx); + shift = unit << 1; + if (ch->unit < 4) + icr = icr0; + else { + icr = icr1; + shift++; + } + + /* do we have any errors flagged ? */ + if (cause & (1 << shift)) { + /* clear SATA error register */ + ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR)); + + /* clear any outstanding error interrupts */ + ATA_OUTL(ctlr->r_res1, 0x02008 + ATA_MV_EDMA_BASE(ch), 0x0); + } + + /* EDMA interrupt */ + if ((icr & (0x0001 << (unit & 3))) && (request = ch->running)) { + u_int32_t rsp_in, rsp_out; + int slot; + + request->dmastat = ch->dma->stop(request->dev); + ch->dma->unload(ch->dev); + callout_stop(&request->callout); + + /* get response ptr's */ + rsp_in = ATA_INL(ctlr->r_res1, 0x02020 + ATA_MV_EDMA_BASE(ch)); + rsp_out = ATA_INL(ctlr->r_res1, 0x02024 + ATA_MV_EDMA_BASE(ch)); + slot = (((rsp_in & ~0xffffff00) >> 3)) & 0x1f; + rsp_out &= 0xffffff00; + rsp_out += (slot << 3); + response = (struct ata_marvell_response *) + (u_int8_t *)(ch->dma->work) + 1024 + (slot << 3); + + /* record status for this request */ + request->status = response->dev_status; + request->error = 0; + + /* ack response */ + ATA_OUTL(ctlr->r_res1, 0x02024 + ATA_MV_EDMA_BASE(ch), rsp_out); + + /* update progress */ + if (!(request->status & ATA_S_ERROR) && + !(request->flags & ATA_R_TIMEOUT)) + request->donecount = request->bytecount; + + /* finish up this request */ + ch->running = NULL; + if (ch->state == ATA_ACTIVE) + ch->state = ATA_IDLE; + mtx_unlock(&ch->state_mtx); + ATA_LOCKING(ch->dev, ATA_LF_UNLOCK); + ata_finish(request); + } + + /* legacy ATA interrupt */ + else if (icr & (0x0100 << (unit & 3))) { + mtx_unlock(&ch->state_mtx); + ctlr->interrupt[unit].function(ch); + } + + /* no device action to handle */ + else { + mtx_unlock(&ch->state_mtx); + } + } +} + +struct ata_marvell_dma_prdentry { + u_int32_t addrlo; + u_int32_t count; + u_int32_t addrhi; + u_int32_t reserved; +}; + +static void +ata_marvell_dmasetprd(void *xsc, bus_dma_segment_t *segs, int nsegs, int error) +{ + struct ata_dmasetprd_args *args = xsc; + struct ata_marvell_dma_prdentry *prd = args->dmatab; + int i; + + if ((args->error = error)) + return; + + for (i = 0; i < nsegs; i++) { + prd[i].addrlo = htole32(segs[i].ds_addr); + prd[i].addrhi = 0; + prd[i].count = htole32(segs[i].ds_len); + } + prd[i - 1].count |= htole32(ATA_DMA_EOT); +} + +static int +ata_marvell_dmastart(device_t dev) +{ + struct ata_channel *ch = device_get_softc(device_get_parent(dev)); + + ch->flags |= ATA_DMA_ACTIVE; + return 0; +} + +static int +ata_marvell_dmastop(device_t dev) +{ + struct ata_channel *ch = device_get_softc(device_get_parent(dev)); + + ch->flags &= ~ATA_DMA_ACTIVE; + + /* get status XXX SOS */ + return 0; +} + +static void +ata_marvell_dmainit(device_t dev) +{ + struct ata_channel *ch = device_get_softc(dev); + + ata_dmainit(dev); + if (ch->dma) { + ch->dma->start = ata_marvell_dmastart; + ch->dma->stop = ata_marvell_dmastop; + ch->dma->setprd = ata_marvell_dmasetprd; + } +} + +static int +ata_marvell_command(struct ata_request *request) +{ + struct ata_pci_controller *ctlr=device_get_softc(GRANDPARENT(request->dev)); + struct ata_channel *ch = device_get_softc(device_get_parent(request->dev)); + u_int32_t req_in; + u_int8_t *bytep; + u_int16_t *wordp; + u_int32_t *quadp; + int i, tag = 0x07; + int slot; + + /* only DMA R/W goes through the EMDA machine */ + if (request->u.ata.command != ATA_READ_DMA && + request->u.ata.command != ATA_READ_DMA48 && + request->u.ata.command != ATA_WRITE_DMA && + request->u.ata.command != ATA_WRITE_DMA48) { + + /* disable the EDMA machinery */ + if (ATA_INL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch)) & 0x00000001) + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000002); + return ata_generic_command(request); + } + + /* get next free request queue slot */ + req_in = ATA_INL(ctlr->r_res1, 0x02014 + ATA_MV_EDMA_BASE(ch)); + slot = (((req_in & ~0xfffffc00) >> 5) + 0) & 0x1f; + bytep = (u_int8_t *)(ch->dma->work); + bytep += (slot << 5); + wordp = (u_int16_t *)bytep; + quadp = (u_int32_t *)bytep; + + /* fill in this request */ + quadp[0] = (long)ch->dma->sg_bus & 0xffffffff; + quadp[1] = (ch->dma->sg_bus & 0xffffffff00000000) >> 32; + wordp[4] = (request->flags & ATA_R_READ ? 0x01 : 0x00) | (tag<<1); + + i = 10; + bytep[i++] = (request->u.ata.count >> 8) & 0xff; + bytep[i++] = 0x10 | ATA_COUNT; + bytep[i++] = request->u.ata.count & 0xff; + bytep[i++] = 0x10 | ATA_COUNT; + + bytep[i++] = (request->u.ata.lba >> 24) & 0xff; + bytep[i++] = 0x10 | ATA_SECTOR; + bytep[i++] = request->u.ata.lba & 0xff; + bytep[i++] = 0x10 | ATA_SECTOR; + + bytep[i++] = (request->u.ata.lba >> 32) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_LSB; + bytep[i++] = (request->u.ata.lba >> 8) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_LSB; + + bytep[i++] = (request->u.ata.lba >> 40) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_MSB; + bytep[i++] = (request->u.ata.lba >> 16) & 0xff; + bytep[i++] = 0x10 | ATA_CYL_MSB; + + bytep[i++] = ATA_D_LBA | ATA_D_IBM | ((request->u.ata.lba >> 24) & 0xf); + bytep[i++] = 0x10 | ATA_DRIVE; + bytep[i++] = request->u.ata.command; + bytep[i++] = 0x90 | ATA_COMMAND; + + /* enable EDMA machinery if needed */ + if (!(ATA_INL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch)) & 0x00000001)) { + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000001); + while (!(ATA_INL(ctlr->r_res1, + 0x02028 + ATA_MV_EDMA_BASE(ch)) & 0x00000001)) + DELAY(10); + } + + /* tell EDMA it has a new request */ + slot = (((req_in & ~0xfffffc00) >> 5) + 1) & 0x1f; + req_in &= 0xfffffc00; + req_in += (slot << 5); + ATA_OUTL(ctlr->r_res1, 0x02014 + ATA_MV_EDMA_BASE(ch), req_in); + + return 0; +} + +static void +ata_marvell_reset(device_t dev) +{ + struct ata_pci_controller *ctlr = device_get_softc(device_get_parent(dev)); + struct ata_channel *ch = device_get_softc(dev); + + /* disable the EDMA machinery */ + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000002); + while ((ATA_INL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch)) & 0x00000001)) + DELAY(10); + + /* clear SATA error register */ + ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR)); + + /* clear any outstanding error interrupts */ + ATA_OUTL(ctlr->r_res1, 0x02008 + ATA_MV_EDMA_BASE(ch), 0x0); + + /* unmask all error interrupts */ + ATA_OUTL(ctlr->r_res1, 0x0200c + ATA_MV_EDMA_BASE(ch), ~0x0); + + /* enable channel and test for devices */ + ata_sata_phy_enable(ch); + + /* enable EDMA machinery */ + ATA_OUTL(ctlr->r_res1, 0x02028 + ATA_MV_EDMA_BASE(ch), 0x00000001); +} + + +/* * National chipset support functions */ int ==== //depot/projects/arm/src/sys/dev/ata/ata-pci.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.107 2005/10/31 15:41:18 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.109 2005/12/27 18:22:11 sos Exp $"); #include "opt_ata.h" #include @@ -58,6 +58,7 @@ /* misc defines */ #define IOMASK 0xfffffffc +#define ATA_PROBE_OK -10 /* prototypes */ static void ata_pci_dmainit(device_t); @@ -80,73 +81,77 @@ switch (pci_get_vendor(dev)) { case ATA_ACARD_ID: if (!ata_acard_ident(dev)) - return 0; + return ATA_PROBE_OK; break; case ATA_ACER_LABS_ID: if (!ata_ali_ident(dev)) - return 0; + return ATA_PROBE_OK; break; case ATA_AMD_ID: if (!ata_amd_ident(dev)) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Dec 29 16:12:22 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BD11916A423; Thu, 29 Dec 2005 16:12:21 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5C8AB16A420 for ; Thu, 29 Dec 2005 16:12:21 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9ED1143D5E for ; Thu, 29 Dec 2005 16:12:07 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTGC3bv056397 for ; Thu, 29 Dec 2005 16:12:03 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTGC3Um056394 for perforce@freebsd.org; Thu, 29 Dec 2005 16:12:03 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 16:12:03 GMT Message-Id: <200512291612.jBTGC3Um056394@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88882 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 16:12:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=88882 Change 88882 by jhb@jhb_slimer on 2005/12/29 16:11:02 WITNESS_SAVE/RESTORE doesn't work yet for spin locks. Affected files ... .. //depot/projects/smpng/sys/kern/kern_synch.c#94 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_synch.c#94 (text+ko) ==== @@ -251,7 +251,9 @@ struct thread *td; struct proc *p; int rval; +#if 0 WITNESS_SAVE_DECL(mtx); +#endif td = curthread; p = td->td_proc; @@ -277,7 +279,9 @@ DROP_GIANT(); mtx_assert(mtx, MA_OWNED | MA_NOTRECURSED); +#if 0 WITNESS_SAVE(&mtx->mtx_object, mtx); +#endif mtx_unlock_spin(mtx); /* @@ -319,7 +323,9 @@ #endif PICKUP_GIANT(); mtx_lock_spin(mtx); +#if 0 WITNESS_RESTORE(&mtx->mtx_object, mtx); +#endif return (rval); } From owner-p4-projects@FreeBSD.ORG Thu Dec 29 18:35:18 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 38D2616A429; Thu, 29 Dec 2005 18:35:17 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D98A516A423 for ; Thu, 29 Dec 2005 18:35:16 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 351BE43D5D for ; Thu, 29 Dec 2005 18:35:05 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTIZ0bt069661 for ; Thu, 29 Dec 2005 18:35:00 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTIZ0Am069658 for perforce@freebsd.org; Thu, 29 Dec 2005 18:35:00 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 18:35:00 GMT Message-Id: <200512291835.jBTIZ0Am069658@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88893 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 18:35:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=88893 Change 88893 by jhb@jhb_slimer on 2005/12/29 18:34:03 Actually lock the mutex, duh. Affected files ... .. //depot/projects/smpng/sys/modules/crash/crash.c#27 edit Differences ... ==== //depot/projects/smpng/sys/modules/crash/crash.c#27 (text+ko) ==== @@ -97,6 +97,7 @@ bzero(&test1_mtx, sizeof(test1_mtx)); mtx_init(&test1_mtx, "test1", NULL, MTX_SPIN); + mtx_lock_spin(&test1_mtx); error = msleep_spin(&test1_mtx, &test1_mtx, "spincr", 5); printf("msleep_spin returned %d\n", error); kdb_enter("timed out"); @@ -104,6 +105,7 @@ error = msleep_spin(&test1_mtx, &test1_mtx, "spincr2", 0); printf("msleep_spin returned %d\n", error); kdb_enter("awoke from spin"); + mtx_unlock_spin(&test1_mtx); mtx_destroy(&test1_mtx); } CRASH_EVENT("msleep_spin", msleep_spin_test); From owner-p4-projects@FreeBSD.ORG Thu Dec 29 19:36:25 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4D3816A422; Thu, 29 Dec 2005 19:36:24 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BAD3316A41F for ; Thu, 29 Dec 2005 19:36:24 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B600543D60 for ; Thu, 29 Dec 2005 19:36:23 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTJaNPF072223 for ; Thu, 29 Dec 2005 19:36:23 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTJaNVi072220 for perforce@freebsd.org; Thu, 29 Dec 2005 19:36:23 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 19:36:23 GMT Message-Id: <200512291936.jBTJaNVi072220@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88897 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 19:36:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=88897 Change 88897 by jhb@jhb_slimer on 2005/12/29 19:35:53 Support spinlocks in witness_save and witness_restore and turn that part of msleep_spin() back on. Affected files ... .. //depot/projects/smpng/sys/kern/kern_synch.c#95 edit .. //depot/projects/smpng/sys/kern/subr_witness.c#144 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_synch.c#95 (text+ko) ==== @@ -251,9 +251,7 @@ struct thread *td; struct proc *p; int rval; -#if 0 WITNESS_SAVE_DECL(mtx); -#endif td = curthread; p = td->td_proc; @@ -279,9 +277,7 @@ DROP_GIANT(); mtx_assert(mtx, MA_OWNED | MA_NOTRECURSED); -#if 0 WITNESS_SAVE(&mtx->mtx_object, mtx); -#endif mtx_unlock_spin(mtx); /* @@ -323,9 +319,7 @@ #endif PICKUP_GIANT(); mtx_lock_spin(mtx); -#if 0 WITNESS_RESTORE(&mtx->mtx_object, mtx); -#endif return (rval); } ==== //depot/projects/smpng/sys/kern/subr_witness.c#144 (text+ko) ==== @@ -1805,15 +1805,20 @@ void witness_save(struct lock_object *lock, const char **filep, int *linep) { + struct lock_list_entry *lock_list; struct lock_instance *instance; KASSERT(!witness_cold, ("%s: witness_cold", __func__)); if (lock->lo_witness == NULL || witness_watch == 0 || panicstr != NULL) return; - if ((lock->lo_class->lc_flags & LC_SLEEPLOCK) == 0) - panic("%s: lock (%s) %s is not a sleep lock", __func__, - lock->lo_class->lc_name, lock->lo_name); - instance = find_instance(curthread->td_sleeplocks, lock); + if (lock->lo_class->lc_flags & LC_SLEEPLOCK) + lock_list = curthread->td_sleeplocks; + else { + if (witness_skipspin) + return; + lock_list = PCPU_GET(spinlocks); + } + instance = find_instance(lock_list, lock); if (instance == NULL) panic("%s: lock (%s) %s not locked", __func__, lock->lo_class->lc_name, lock->lo_name); @@ -1824,15 +1829,20 @@ void witness_restore(struct lock_object *lock, const char *file, int line) { + struct lock_list_entry *lock_list; struct lock_instance *instance; KASSERT(!witness_cold, ("%s: witness_cold", __func__)); if (lock->lo_witness == NULL || witness_watch == 0 || panicstr != NULL) return; - if ((lock->lo_class->lc_flags & LC_SLEEPLOCK) == 0) - panic("%s: lock (%s) %s is not a sleep lock", __func__, - lock->lo_class->lc_name, lock->lo_name); - instance = find_instance(curthread->td_sleeplocks, lock); + if (lock->lo_class->lc_flags & LC_SLEEPLOCK) + lock_list = curthread->td_sleeplocks; + else { + if (witness_skipspin) + return; + lock_list = PCPU_GET(spinlocks); + } + instance = find_instance(lock_list, lock); if (instance == NULL) panic("%s: lock (%s) %s not locked", __func__, lock->lo_class->lc_name, lock->lo_name); From owner-p4-projects@FreeBSD.ORG Thu Dec 29 20:06:17 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC6B016A422; Thu, 29 Dec 2005 20:06:16 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BE45D16A41F for ; Thu, 29 Dec 2005 20:06:16 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AA17643D70 for ; Thu, 29 Dec 2005 20:06:00 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTK5xv2073611 for ; Thu, 29 Dec 2005 20:05:59 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTK5xIf073608 for perforce@freebsd.org; Thu, 29 Dec 2005 20:05:59 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 20:05:59 GMT Message-Id: <200512292005.jBTK5xIf073608@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88898 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 20:06:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=88898 Change 88898 by jhb@jhb_slimer on 2005/12/29 20:05:30 You can't call printf while holding the witness mutex or you can trigger a deadlock (which I've reproduced several times today ;-P) with the spin locks used in console drivers. Fix the one printf I recently added which had this bug. Affected files ... .. //depot/projects/smpng/sys/kern/subr_witness.c#145 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_witness.c#145 (text+ko) ==== @@ -1409,18 +1409,8 @@ return (w); } } - /* - * We issue a warning for any spin locks not defined in the static - * order list as a way to discourage their use (folks should really - * be using non-spin mutexes most of the time). However, several - * 3rd part device drivers use spin locks because that is all they - * have available on Windows and Linux and they think that normal - * mutexes are insufficient. - */ - if ((lock_class->lc_flags & LC_SPINLOCK) && witness_spin_warn) - printf("WITNESS: spin lock %s not in order list", description); if ((w = witness_get()) == NULL) - return (NULL); + goto out; w->w_name = description; w->w_class = lock_class; w->w_refcount = 1; @@ -1437,6 +1427,17 @@ lock_class->lc_name); } mtx_unlock_spin(&w_mtx); +out: + /* + * We issue a warning for any spin locks not defined in the static + * order list as a way to discourage their use (folks should really + * be using non-spin mutexes most of the time). However, several + * 3rd part device drivers use spin locks because that is all they + * have available on Windows and Linux and they think that normal + * mutexes are insufficient. + */ + if ((lock_class->lc_flags & LC_SPINLOCK) && witness_spin_warn) + printf("WITNESS: spin lock %s not in order list", description); return (w); } @@ -1988,7 +1989,7 @@ FOREACH_THREAD_IN_PROC(p, td) { if (!witness_thread_has_locks(td)) continue; - printf("Process %d (%s) thread %p (%d)\n", p->p_pid, + db_printf("Process %d (%s) thread %p (%d)\n", p->p_pid, p->p_comm, td, td->td_tid); witness_list(td); } From owner-p4-projects@FreeBSD.ORG Thu Dec 29 20:43:47 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A43C816A422; Thu, 29 Dec 2005 20:43:46 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6274316A41F for ; Thu, 29 Dec 2005 20:43:46 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1625243D75 for ; Thu, 29 Dec 2005 20:43:46 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTKhjUE075002 for ; Thu, 29 Dec 2005 20:43:45 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTKhjah074999 for perforce@freebsd.org; Thu, 29 Dec 2005 20:43:45 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 20:43:45 GMT Message-Id: <200512292043.jBTKhjah074999@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88900 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 20:43:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=88900 Change 88900 by jhb@jhb_slimer on 2005/12/29 20:42:54 Missing a \n in that printf. Affected files ... .. //depot/projects/smpng/sys/kern/subr_witness.c#146 edit Differences ... ==== //depot/projects/smpng/sys/kern/subr_witness.c#146 (text+ko) ==== @@ -1437,7 +1437,8 @@ * mutexes are insufficient. */ if ((lock_class->lc_flags & LC_SPINLOCK) && witness_spin_warn) - printf("WITNESS: spin lock %s not in order list", description); + printf("WITNESS: spin lock %s not in order list\n", + description); return (w); } From owner-p4-projects@FreeBSD.ORG Thu Dec 29 20:48:03 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66BD816A423; Thu, 29 Dec 2005 20:48:02 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 28EBA16A41F for ; Thu, 29 Dec 2005 20:48:02 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2D6FA43D62 for ; Thu, 29 Dec 2005 20:48:01 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBTKlpuV082513 for ; Thu, 29 Dec 2005 20:47:51 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBTKlpYA082510 for perforce@freebsd.org; Thu, 29 Dec 2005 20:47:51 GMT (envelope-from jhb@freebsd.org) Date: Thu, 29 Dec 2005 20:47:51 GMT Message-Id: <200512292047.jBTKlpYA082510@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 88902 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Dec 2005 20:48:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=88902 Change 88902 by jhb@jhb_slimer on 2005/12/29 20:46:58 Mismerge. Affected files ... .. //depot/projects/smpng/sys/kern/kern_sx.c#31 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_sx.c#31 (text+ko) ==== @@ -38,8 +38,6 @@ #include "opt_ddb.h" -#include "opt_ddb.h" - #include #include #include