From owner-p4-projects@FreeBSD.ORG Fri Dec 8 17:52:42 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DAA6816A415; Fri, 8 Dec 2006 17:52:41 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AF66D16A403 for ; Fri, 8 Dec 2006 17:52:41 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7ECCE43CAE for ; Fri, 8 Dec 2006 17:51:42 +0000 (GMT) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kB8Hqfap017647 for ; Fri, 8 Dec 2006 17:52:41 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kB8HqdWZ017635 for perforce@freebsd.org; Fri, 8 Dec 2006 17:52:39 GMT (envelope-from mjacob@freebsd.org) Date: Fri, 8 Dec 2006 17:52:39 GMT Message-Id: <200612081752.kB8HqdWZ017635@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 111293 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: Fri, 08 Dec 2006 17:52:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=111293 Change 111293 by mjacob@newisp on 2006/12/08 17:52:04 IFC Affected files ... .. //depot/projects/newisp/amd64/amd64/machdep.c#9 integrate .. //depot/projects/newisp/amd64/amd64/minidump_machdep.c#2 integrate .. //depot/projects/newisp/amd64/amd64/pmap.c#5 integrate .. //depot/projects/newisp/amd64/include/pmap.h#4 integrate .. //depot/projects/newisp/arm/at91/kb920x_machdep.c#6 integrate .. //depot/projects/newisp/arm/at91/uart_dev_at91usart.c#2 integrate .. //depot/projects/newisp/arm/sa11x0/assabet_machdep.c#4 integrate .. //depot/projects/newisp/arm/xscale/i80321/ep80219_machdep.c#5 integrate .. //depot/projects/newisp/arm/xscale/i80321/iq31244_machdep.c#4 integrate .. //depot/projects/newisp/arm/xscale/ixp425/avila_machdep.c#2 integrate .. //depot/projects/newisp/arm/xscale/ixp425/files.ixp425#2 integrate .. //depot/projects/newisp/boot/i386/btx/btx/btx.S#4 integrate .. //depot/projects/newisp/ddb/db_ps.c#3 integrate .. //depot/projects/newisp/dev/bce/if_bce.c#10 integrate .. //depot/projects/newisp/dev/dc/if_dc.c#5 integrate .. //depot/projects/newisp/dev/dc/if_dcreg.h#3 integrate .. //depot/projects/newisp/dev/firewire/fwdev.c#2 integrate .. //depot/projects/newisp/dev/gem/if_gem.c#3 integrate .. //depot/projects/newisp/dev/gem/if_gemvar.h#2 integrate .. //depot/projects/newisp/dev/hme/if_hme.c#3 integrate .. //depot/projects/newisp/dev/hme/if_hmevar.h#2 integrate .. //depot/projects/newisp/dev/ipmi/ipmi.c#5 integrate .. //depot/projects/newisp/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/newisp/dev/le/am7990.c#2 integrate .. //depot/projects/newisp/dev/le/am79900.c#2 integrate .. //depot/projects/newisp/dev/le/lance.c#2 integrate .. //depot/projects/newisp/dev/le/lancevar.h#2 integrate .. //depot/projects/newisp/dev/mpt/mpt.c#9 integrate .. //depot/projects/newisp/dev/mpt/mpt.h#10 integrate .. //depot/projects/newisp/dev/mpt/mpt_cam.c#21 integrate .. //depot/projects/newisp/dev/mpt/mpt_debug.c#3 integrate .. //depot/projects/newisp/dev/mpt/mpt_raid.c#7 integrate .. //depot/projects/newisp/dev/nve/if_nvereg.h#2 integrate .. //depot/projects/newisp/dev/ral/rt2560.c#2 integrate .. //depot/projects/newisp/dev/ral/rt2661.c#2 integrate .. //depot/projects/newisp/dev/sound/pcm/channel.c#5 integrate .. //depot/projects/newisp/dev/sound/pcm/dsp.c#7 integrate .. //depot/projects/newisp/fs/procfs/procfs_status.c#3 integrate .. //depot/projects/newisp/i386/i386/machdep.c#8 integrate .. //depot/projects/newisp/ia64/ia64/machdep.c#5 integrate .. //depot/projects/newisp/isofs/cd9660/cd9660_node.h#2 integrate .. //depot/projects/newisp/kern/init_main.c#6 integrate .. //depot/projects/newisp/kern/kern_clock.c#3 integrate .. //depot/projects/newisp/kern/kern_fork.c#5 integrate .. //depot/projects/newisp/kern/kern_idle.c#4 integrate .. //depot/projects/newisp/kern/kern_intr.c#4 integrate .. //depot/projects/newisp/kern/kern_kse.c#3 integrate .. //depot/projects/newisp/kern/kern_poll.c#3 integrate .. //depot/projects/newisp/kern/kern_proc.c#6 integrate .. //depot/projects/newisp/kern/kern_resource.c#6 integrate .. //depot/projects/newisp/kern/kern_subr.c#3 integrate .. //depot/projects/newisp/kern/kern_switch.c#3 integrate .. //depot/projects/newisp/kern/kern_thr.c#7 integrate .. //depot/projects/newisp/kern/kern_thread.c#4 integrate .. //depot/projects/newisp/kern/kern_umtx.c#12 integrate .. //depot/projects/newisp/kern/ksched.c#2 integrate .. //depot/projects/newisp/kern/sched_4bsd.c#6 integrate .. //depot/projects/newisp/kern/sched_ule.c#4 integrate .. //depot/projects/newisp/kern/subr_trap.c#5 integrate .. //depot/projects/newisp/kern/tty.c#8 integrate .. //depot/projects/newisp/kern/vfs_export.c#3 integrate .. //depot/projects/newisp/net/if_ethersubr.c#4 integrate .. //depot/projects/newisp/net/if_ppp.c#6 integrate .. //depot/projects/newisp/net/if_pppvar.h#3 integrate .. //depot/projects/newisp/net/ppp_tty.c#3 integrate .. //depot/projects/newisp/nfsclient/bootp_subr.c#3 integrate .. //depot/projects/newisp/nfsclient/nfs_diskless.c#2 integrate .. //depot/projects/newisp/nfsclient/nfs_vfsops.c#5 integrate .. //depot/projects/newisp/nfsclient/nfsdiskless.h#2 integrate .. //depot/projects/newisp/pc98/pc98/machdep.c#6 integrate .. //depot/projects/newisp/pci/if_xl.c#3 integrate .. //depot/projects/newisp/pci/if_xlreg.h#3 integrate .. //depot/projects/newisp/powerpc/powerpc/intr_machdep.c#2 integrate .. //depot/projects/newisp/powerpc/powerpc/machdep.c#3 integrate .. //depot/projects/newisp/sparc64/sparc64/machdep.c#4 integrate .. //depot/projects/newisp/sun4v/mdesc/mdesc_vdevfindval.c#2 integrate .. //depot/projects/newisp/sun4v/sun4v/machdep.c#5 integrate .. //depot/projects/newisp/sun4v/sun4v/mp_machdep.c#3 integrate .. //depot/projects/newisp/sun4v/sun4v/uio_machdep.c#2 integrate .. //depot/projects/newisp/sun4v/sun4v/vnex.c#3 integrate .. //depot/projects/newisp/sys/proc.h#6 integrate .. //depot/projects/newisp/sys/rtprio.h#4 integrate .. //depot/projects/newisp/sys/runq.h#2 integrate .. //depot/projects/newisp/sys/sched.h#4 integrate .. //depot/projects/newisp/vm/vm_glue.c#3 integrate .. //depot/projects/newisp/vm/vm_page.c#7 integrate .. //depot/projects/newisp/vm/vm_zeroidle.c#3 integrate Differences ... ==== //depot/projects/newisp/amd64/amd64/machdep.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.664 2006/11/19 20:54:57 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.666 2006/12/06 18:27:17 sobomax Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -514,6 +514,7 @@ * help lock contention somewhat, and this is critical for HTT. -Peter */ static int cpu_idle_hlt = 1; +TUNABLE_INT("machdep.cpu_idle_hlt", &cpu_idle_hlt); SYSCTL_INT(_machdep, OID_AUTO, cpu_idle_hlt, CTLFLAG_RW, &cpu_idle_hlt, 0, "Idle loop HLT enable"); @@ -1121,11 +1122,7 @@ * This may be done better later if it gets more high level * components in it. If so just link td->td_proc here. */ -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif preload_metadata = (caddr_t)(uintptr_t)(modulep + KERNBASE); preload_bootstrap_relocate(KERNBASE); ==== //depot/projects/newisp/amd64/amd64/minidump_machdep.c#2 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.1 2006/04/21 04:24:50 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.2 2006/12/05 11:31:33 ru Exp $"); #include #include @@ -215,7 +215,7 @@ j = ((va >> PDRSHIFT) & ((1ul << NPDEPGSHIFT) - 1)); if ((pd[j] & (PG_PS | PG_V)) == (PG_PS | PG_V)) { /* This is an entire 2M page. */ - pa = pd[j] & PG_FRAME & ~PDRMASK; + pa = pd[j] & PG_PS_FRAME; for (k = 0; k < NPTEPG; k++) { if (is_dumpable(pa)) dump_add_page(pa); @@ -326,7 +326,7 @@ j = ((va >> PDRSHIFT) & ((1ul << NPDEPGSHIFT) - 1)); if ((pd[j] & (PG_PS | PG_V)) == (PG_PS | PG_V)) { /* This is a single 2M block. Generate a fake PTP */ - pa = pd[j] & PG_FRAME & ~PDRMASK; + pa = pd[j] & PG_PS_FRAME; for (k = 0; k < NPTEPG; k++) { fakept[k] = (pa + (k * PAGE_SIZE)) | PG_V | PG_RW | PG_A | PG_M; } ==== //depot/projects/newisp/amd64/amd64/pmap.c#5 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.576 2006/11/23 21:37:04 ru Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.577 2006/12/05 11:31:33 ru Exp $"); /* * Manages physical address maps. @@ -947,9 +947,7 @@ pde = *pdep; if (pde) { if ((pde & PG_PS) != 0) { - KASSERT((pde & PG_FRAME & PDRMASK) == 0, - ("pmap_extract: bad pde")); - rtval = (pde & PG_FRAME) | (va & PDRMASK); + rtval = (pde & PG_PS_FRAME) | (va & PDRMASK); PMAP_UNLOCK(pmap); return rtval; } @@ -982,9 +980,7 @@ if (pdep != NULL && (pde = *pdep)) { if (pde & PG_PS) { if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) { - KASSERT((pde & PG_FRAME & PDRMASK) == 0, - ("pmap_extract_and_hold: bad pde")); - m = PHYS_TO_VM_PAGE((pde & PG_FRAME) | + m = PHYS_TO_VM_PAGE((pde & PG_PS_FRAME) | (va & PDRMASK)); vm_page_hold(m); } @@ -1013,7 +1009,7 @@ } else { pde = vtopde(va); if (*pde & PG_PS) { - pa = (*pde & ~(NBPDR - 1)) | (va & (NBPDR - 1)); + pa = (*pde & PG_PS_FRAME) | (va & PDRMASK); } else { pa = *vtopte(va); pa = (pa & PG_FRAME) | (va & PAGE_MASK); ==== //depot/projects/newisp/amd64/include/pmap.h#4 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.137 2006/11/19 20:54:57 alc Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.138 2006/12/05 11:31:33 ru Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -71,6 +71,7 @@ #define PG_W PG_AVAIL1 /* "Wired" pseudoflag */ #define PG_MANAGED PG_AVAIL2 #define PG_FRAME (0x000ffffffffff000ul) +#define PG_PS_FRAME (0x000fffffffe00000ul) #define PG_PROT (PG_RW|PG_U) /* all protection bits . */ #define PG_N (PG_NC_PWT|PG_NC_PCD) /* Non-cacheable */ ==== //depot/projects/newisp/arm/at91/kb920x_machdep.c#6 (text) ==== @@ -48,7 +48,7 @@ #include "opt_at91.h" #include -__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.19 2006/11/11 20:57:52 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.20 2006/12/06 06:34:53 julian Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -455,11 +455,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/newisp/arm/at91/uart_dev_at91usart.c#2 (text) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.9 2006/07/20 21:03:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.10 2006/12/07 00:24:15 cognet Exp $"); #include "opt_comconsole.h" @@ -323,7 +323,10 @@ static int at91_usart_bus_attach(struct uart_softc *sc) { - int err, i; +#ifndef SKYEYE_WORKAROUNDS + int err; + int i; +#endif uint32_t cr; struct at91_usart_softc *atsc; @@ -345,6 +348,7 @@ sc->sc_rxfifosz = USART_BUFFER_SIZE; sc->sc_hwiflow = 0; +#ifndef SKYEYE_WORKAROUNDS /* * Allocate DMA tags and maps */ @@ -374,6 +378,7 @@ atsc->ping = &atsc->ping_pong[0]; atsc->pong = &atsc->ping_pong[1]; } +#endif /* * Prime the pump with the RX buffer. We use two 64 byte bounce @@ -407,9 +412,13 @@ WR4(&sc->sc_bas, USART_IER, USART_CSR_RXRDY); } WR4(&sc->sc_bas, USART_IER, USART_CSR_RXBRK); +#ifndef SKYEYE_WORKAROUNDS errout:; // XXX bad return (err); +#else + return (0); +#endif } static int ==== //depot/projects/newisp/arm/sa11x0/assabet_machdep.c#4 (text+ko) ==== @@ -47,7 +47,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.20 2006/11/11 20:57:52 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.21 2006/12/06 06:34:54 julian Exp $"); #include "opt_md.h" @@ -422,11 +422,7 @@ /* Set stack for exception handlers */ -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/newisp/arm/xscale/i80321/ep80219_machdep.c#5 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/ep80219_machdep.c,v 1.4 2006/11/17 00:53:39 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/ep80219_machdep.c,v 1.5 2006/12/06 06:34:54 julian Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -429,11 +429,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/newisp/arm/xscale/i80321/iq31244_machdep.c#4 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.25 2006/11/17 00:53:39 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.26 2006/12/06 06:34:54 julian Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -427,11 +427,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/newisp/arm/xscale/ixp425/avila_machdep.c#2 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.1 2006/11/19 23:55:23 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.2 2006/12/06 06:34:54 julian Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -493,11 +493,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); -#ifdef KSE - proc_linkup(&proc0, &ksegrp0, &thread0); -#else proc_linkup(&proc0, &thread0); -#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/newisp/arm/xscale/ixp425/files.ixp425#2 (text+ko) ==== @@ -1,4 +1,4 @@ -#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.1 2006/11/19 23:55:23 sam Exp $ +#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.2 2006/12/07 00:49:33 sam Exp $ arm/arm/cpufunc_asm_xscale.S standard arm/arm/irq_dispatch.S standard arm/xscale/ixp425/ixp425.c standard @@ -18,7 +18,11 @@ # # NPE-based Ethernet support (requires qmgr also). Note the # firmware images must be downloaded from the Intel web site. +# The URL seems to change frequently; try this as a starting +# place: # +# http://www.intel.com/design/network/products/npfamily/download_ixp400.htm +# arm/xscale/ixp425/if_npe.c optional npe arm/xscale/ixp425/ixp425_npe.c optional npe ixp425_npe_fw.c optional npe_fw \ @@ -31,10 +35,15 @@ # get known values for reference in the _fw.c file. # IxNpeMicrocode.fwo optional npe_fw \ - dependency "$S/arm/xscale/ixp425/IxNpeMicrocode.dat" \ - compile-with "ln -sf $S/arm/xscale/ixp425/IxNpeMicrocode.dat ${.OBJDIR}; ${LD} -b binary -d -warn-common -r -d -o ${.TARGET} IxNpeMicrocode.dat" \ + dependency "IxNpeMicrocode.dat" \ + compile-with "${LD} -b binary -d -warn-common -r -d -o ${.TARGET} IxNpeMicrocode.dat" \ no-implicit-rule \ - clean "IxNpeMicrocode.dat IxNpeMicrocode.fwo" + clean "IxNpeMicrocode.fwo" +IxNpeMicrocode.dat optional npe_fw \ + dependency ".PHONY" \ + compile-with "if [ -e $S/arm/xscale/ixp425/IxNpeMicrocode.dat ]; then ln -sf $S/arm/xscale/ixp425/IxNpeMicrocode.dat .; else echo 'WARNING, no IxNpeMicrocode.dat file; you must obtain this from the Intel web site'; false; fi" \ + no-obj no-implicit-rule \ + clean "IxNpeMicrocode.dat" # # Q-Manager support # ==== //depot/projects/newisp/boot/i386/btx/btx/btx.S#4 (text+ko) ==== @@ -12,7 +12,7 @@ * warranties of merchantability and fitness for a particular * purpose. * - * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.43 2006/10/05 15:30:51 jhb Exp $ + * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.44 2006/12/06 17:45:35 jhb Exp $ */ /* @@ -499,6 +499,8 @@ je v86cli # Yes cmpb $0xfb,%al # STI? je v86sti # Yes + cmpb $0xcc,%al # INT3? + je v86mon.7 # Yes, ignore movzwl 0x38(%ebp),%ebx # Load V86 SS shll $0x4,%ebx # To offset pushl %ebx # Save ==== //depot/projects/newisp/ddb/db_ps.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ddb/db_ps.c,v 1.64 2006/10/26 21:42:17 jb Exp $"); +__FBSDID("$FreeBSD: src/sys/ddb/db_ps.c,v 1.65 2006/12/06 06:34:54 julian Exp $"); #include #include @@ -292,12 +292,7 @@ td = kdb_thread; db_printf("Thread %d at %p:\n", td->td_tid, td); -#ifdef KSE - db_printf(" proc (pid %d): %p ", td->td_proc->p_pid, td->td_proc); - db_printf(" ksegrp: %p\n", td->td_ksegrp); -#else db_printf(" proc (pid %d): %p\n", td->td_proc->p_pid, td->td_proc); -#endif if (td->td_name[0] != '\0') db_printf(" name: %s\n", td->td_name); db_printf(" flags: %#x ", td->td_flags); ==== //depot/projects/newisp/dev/bce/if_bce.c#10 (text) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.21 2006/11/16 06:28:54 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.22 2006/12/06 22:53:22 jhb Exp $"); /* * The following controllers are supported by this driver: @@ -4566,7 +4566,7 @@ /* Try to defrag the mbuf if there are too many segments. */ DBPRINT(sc, BCE_WARN, "%s(): fragmented mbuf (%d pieces)\n", - __FUNCTION__, map_arg.maxsegs); + __FUNCTION__, nsegs); m0 = m_defrag(*m_head, M_DONTWAIT); if (m0 == NULL) { @@ -4619,7 +4619,7 @@ DBPRINT(sc, BCE_INFO_SEND, "%s(): Start: prod = 0x%04X, chain_prod = %04X, " "prod_bseq = 0x%08X\n", - __FUNCTION__, *prod, chain_prod, prod_bseq); + __FUNCTION__, prod, chain_prod, prod_bseq); /* * Cycle through each mbuf segment that makes up @@ -4646,7 +4646,7 @@ /* Set the END flag on the last TX buffer descriptor. */ txbd->tx_bd_flags |= htole16(TX_BD_FLAGS_END); - DBRUN(BCE_INFO_SEND, bce_dump_tx_chain(sc, debug_prod, nseg)); + DBRUN(BCE_INFO_SEND, bce_dump_tx_chain(sc, debug_prod, nsegs)); DBPRINT(sc, BCE_INFO_SEND, "%s(): End: prod = 0x%04X, chain_prod = %04X, " @@ -6163,7 +6163,7 @@ else /* Normal tx_bd entry. */ BCE_PRINTF(sc, "tx_bd[0x%04X]: haddr = 0x%08X:%08X, nbytes = 0x%08X, " - "vlan tag= 0x%4X, "flags = 0x%04X\n", idx, + "vlan tag= 0x%4X, flags = 0x%04X\n", idx, txbd->tx_bd_haddr_hi, txbd->tx_bd_haddr_lo, txbd->tx_bd_mss_nbytes, txbd->tx_bd_vlan_tag, txbd->tx_bd_flags); ==== //depot/projects/newisp/dev/dc/if_dc.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.188 2006/11/02 00:05:15 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/dc/if_dc.c,v 1.189 2006/12/06 01:56:38 marius Exp $"); /* * DEC "tulip" clone ethernet driver. Supports the DEC/Intel 21143 @@ -247,7 +247,7 @@ static void dc_init(void *); static void dc_init_locked(struct dc_softc *); static void dc_stop(struct dc_softc *); -static void dc_watchdog(struct ifnet *); +static void dc_watchdog(void *); static void dc_shutdown(device_t); static int dc_ifmedia_upd(struct ifnet *); static void dc_ifmedia_sts(struct ifnet *, struct ifmediareq *); @@ -1138,7 +1138,7 @@ */ DELAY(10000); - ifp->if_timer = 5; + sc->dc_wdog_timer = 5; } static void @@ -1340,7 +1340,7 @@ */ DELAY(1000); - ifp->if_timer = 5; + sc->dc_wdog_timer = 5; } static void @@ -2077,9 +2077,10 @@ } /* Allocate a busdma tag and DMA safe memory for TX/RX descriptors. */ - error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, sizeof(struct dc_list_data), 1, - sizeof(struct dc_list_data), 0, NULL, NULL, &sc->dc_ltag); + error = bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + sizeof(struct dc_list_data), 1, sizeof(struct dc_list_data), + 0, NULL, NULL, &sc->dc_ltag); if (error) { device_printf(dev, "failed to allocate busdma tag\n"); error = ENXIO; @@ -2105,9 +2106,10 @@ * Allocate a busdma tag and DMA safe memory for the multicast * setup frame. */ - error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, DC_SFRAME_LEN + DC_MIN_FRAMELEN, 1, - DC_SFRAME_LEN + DC_MIN_FRAMELEN, 0, NULL, NULL, &sc->dc_stag); + error = bus_dma_tag_create(bus_get_dma_tag(dev), PAGE_SIZE, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + DC_SFRAME_LEN + DC_MIN_FRAMELEN, 1, DC_SFRAME_LEN + DC_MIN_FRAMELEN, + 0, NULL, NULL, &sc->dc_stag); if (error) { device_printf(dev, "failed to allocate busdma tag\n"); error = ENXIO; @@ -2129,8 +2131,9 @@ } /* Allocate a busdma tag for mbufs. */ - error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, DC_TX_LIST_CNT, MCLBYTES, + error = bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + MCLBYTES, DC_TX_LIST_CNT, MCLBYTES, 0, NULL, NULL, &sc->dc_mtag); if (error) { device_printf(dev, "failed to allocate busdma tag\n"); @@ -2172,12 +2175,9 @@ } ifp->if_softc = sc; if_initname(ifp, device_get_name(dev), device_get_unit(dev)); - /* XXX: bleah, MTU gets overwritten in ether_ifattach() */ - ifp->if_mtu = ETHERMTU; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = dc_ioctl; ifp->if_start = dc_start; - ifp->if_watchdog = dc_watchdog; ifp->if_init = dc_init; IFQ_SET_MAXLEN(&ifp->if_snd, DC_TX_LIST_CNT - 1); ifp->if_snd.ifq_drv_maxlen = DC_TX_LIST_CNT - 1; @@ -2256,6 +2256,7 @@ #endif callout_init_mtx(&sc->dc_stat_ch, &sc->dc_mtx, 0); + callout_init_mtx(&sc->dc_wdog_ch, &sc->dc_mtx, 0); /* * Call MI attach routine. @@ -2309,6 +2310,7 @@ dc_stop(sc); DC_UNLOCK(sc); callout_drain(&sc->dc_stat_ch); + callout_drain(&sc->dc_wdog_ch); ether_ifdetach(ifp); } if (sc->dc_miibus) @@ -2869,7 +2871,7 @@ sc->dc_cdata.dc_tx_cons = idx; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } - ifp->if_timer = (sc->dc_cdata.dc_tx_cnt == 0) ? 0 : 5; + sc->dc_wdog_timer = (sc->dc_cdata.dc_tx_cnt == 0) ? 0 : 5; } static void @@ -3338,7 +3340,7 @@ /* * Set a timeout in case the chip goes out to lunch. */ - ifp->if_timer = 5; + sc->dc_wdog_timer = 5; } } @@ -3525,6 +3527,9 @@ else callout_reset(&sc->dc_stat_ch, hz, dc_tick, sc); } + + sc->dc_wdog_timer = 0; + callout_reset(&sc->dc_wdog_ch, hz, dc_watchdog, sc); } /* @@ -3659,16 +3664,21 @@ } static void -dc_watchdog(struct ifnet *ifp) +dc_watchdog(void *xsc) { - struct dc_softc *sc; + struct dc_softc *sc = xsc; + struct ifnet *ifp; - sc = ifp->if_softc; + DC_LOCK_ASSERT(sc); - DC_LOCK(sc); + if (sc->dc_wdog_timer == 0 || --sc->dc_wdog_timer != 0) { + callout_reset(&sc->dc_wdog_ch, hz, dc_watchdog, sc); + return; + } + ifp = sc->dc_ifp; ifp->if_oerrors++; - if_printf(ifp, "watchdog timeout\n"); + device_printf(sc->dc_dev, "watchdog timeout\n"); dc_stop(sc); dc_reset(sc); @@ -3676,8 +3686,6 @@ if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) dc_start_locked(ifp); - - DC_UNLOCK(sc); } /* @@ -3696,11 +3704,12 @@ DC_LOCK_ASSERT(sc); ifp = sc->dc_ifp; - ifp->if_timer = 0; ld = sc->dc_ldata; cd = &sc->dc_cdata; callout_stop(&sc->dc_stat_ch); + callout_stop(&sc->dc_wdog_ch); + sc->dc_wdog_timer = 0; ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); ==== //depot/projects/newisp/dev/dc/if_dcreg.h#3 (text+ko) ==== @@ -29,7 +29,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.52 2006/09/15 15:16:10 glebius Exp $ + * $FreeBSD: src/sys/dev/dc/if_dcreg.h,v 1.53 2006/12/06 01:56:38 marius Exp $ */ /* @@ -749,9 +749,8 @@ struct dc_list_data *dc_ldata; struct dc_chain_data dc_cdata; struct callout dc_stat_ch; -#ifdef SRM_MEDIA - int dc_srm_media; -#endif + struct callout dc_wdog_ch; + int dc_wdog_timer; struct mtx dc_mtx; #ifdef DEVICE_POLLING int rxcycles; /* ... when polling */ ==== //depot/projects/newisp/dev/firewire/fwdev.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/firewire/fwdev.c,v 1.47 2005/08/08 19:55:30 rwatson Exp $ + * $FreeBSD: src/sys/dev/firewire/fwdev.c,v 1.48 2006/12/06 09:13:24 cperciva Exp $ * */ @@ -712,7 +712,7 @@ else len = fwdev->rommax - CSRROMOFF + 4; } - if (crom_buf->len < len) + if (crom_buf->len < len && crom_buf->len >= 0) len = crom_buf->len; else crom_buf->len = len; ==== //depot/projects/newisp/dev/gem/if_gem.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/gem/if_gem.c,v 1.39 2006/09/03 00:27:41 jmg Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/gem/if_gem.c,v 1.40 2006/12/06 02:04:25 marius Exp $"); /* * Driver for Sun GEM ethernet controllers. @@ -83,16 +83,16 @@ static void gem_txdma_callback(void *, bus_dma_segment_t *, int, bus_size_t, int); static void gem_tick(void *); -static void gem_watchdog(struct ifnet *); +static int gem_watchdog(struct gem_softc *); static void gem_init(void *); -static void gem_init_locked(struct gem_softc *sc); -static void gem_init_regs(struct gem_softc *sc); +static void gem_init_locked(struct gem_softc *); +static void gem_init_regs(struct gem_softc *); static int gem_ringsize(int sz); static int gem_meminit(struct gem_softc *); static int gem_load_txmbuf(struct gem_softc *, struct mbuf *); static void gem_mifinit(struct gem_softc *); -static int gem_bitwait(struct gem_softc *sc, bus_addr_t r, - u_int32_t clr, u_int32_t set); +static int gem_bitwait(struct gem_softc *, bus_addr_t, u_int32_t, + u_int32_t); static int gem_reset_rx(struct gem_softc *); static int gem_reset_tx(struct gem_softc *); static int gem_disable_rx(struct gem_softc *); @@ -268,11 +268,9 @@ ifp->if_softc = sc; if_initname(ifp, device_get_name(sc->sc_dev), device_get_unit(sc->sc_dev)); - ifp->if_mtu = ETHERMTU; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_start = gem_start; ifp->if_ioctl = gem_ioctl; - ifp->if_watchdog = gem_watchdog; ifp->if_init = gem_init; ifp->if_snd.ifq_maxlen = GEM_TXQUEUELEN; /* @@ -544,6 +542,9 @@ GEM_LOCK_ASSERT(sc, MA_OWNED); mii_tick(sc->sc_mii); + if (gem_watchdog(sc) == EJUSTRETURN) + return; + callout_reset(&sc->sc_tick_ch, hz, gem_tick, sc); } @@ -657,7 +658,7 @@ * Mark the interface down and cancel the watchdog timer. */ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); - ifp->if_timer = 0; + sc->sc_wdog_timer = 0; } /* @@ -982,11 +983,11 @@ bus_space_write_4(t, h, GEM_RX_KICK, GEM_NRXDESC-4); /* Start the one second timer. */ + sc->sc_wdog_timer = 0; callout_reset(&sc->sc_tick_ch, hz, gem_tick, sc); ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - ifp->if_timer = 0; sc->sc_ifflags = ifp->if_flags; } @@ -1223,10 +1224,10 @@ #endif /* Set a watchdog timer in case the chip flakes out. */ - ifp->if_timer = 5; + sc->sc_wdog_timer = 5; #ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: gem_start: watchdog %d", - device_get_name(sc->sc_dev), ifp->if_timer); + device_get_name(sc->sc_dev), sc->sc_wdog_timer); #endif } } @@ -1355,13 +1356,12 @@ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; gem_start_locked(ifp); - if (STAILQ_EMPTY(&sc->sc_txdirtyq)) - ifp->if_timer = 0; + sc->sc_wdog_timer = STAILQ_EMPTY(&sc->sc_txdirtyq) ? 0 : 5; } #ifdef GEM_DEBUG CTR2(KTR_GEM, "%s: gem_tint: watchdog %d", - device_get_name(sc->sc_dev), ifp->if_timer); + device_get_name(sc->sc_dev), sc->sc_wdog_timer); #endif } @@ -1616,14 +1616,13 @@ GEM_UNLOCK(sc); } +static int +gem_watchdog(sc) + struct gem_softc *sc; +{ -static void -gem_watchdog(ifp) - struct ifnet *ifp; -{ - struct gem_softc *sc = ifp->if_softc; + GEM_LOCK_ASSERT(sc, MA_OWNED); - GEM_LOCK(sc); #ifdef GEM_DEBUG CTR3(KTR_GEM, "gem_watchdog: GEM_RX_CONFIG %x GEM_MAC_RX_STATUS %x " "GEM_MAC_RX_CONFIG %x", @@ -1637,12 +1636,15 @@ bus_space_read_4(sc->sc_bustag, sc->sc_h, GEM_MAC_TX_CONFIG)); #endif + if (sc->sc_wdog_timer == 0 || --sc->sc_wdog_timer != 0) + return (0); + device_printf(sc->sc_dev, "device timeout\n"); - ++ifp->if_oerrors; + ++sc->sc_ifp->if_oerrors; /* Try to get more packets going. */ gem_init_locked(sc); - GEM_UNLOCK(sc); + return (EJUSTRETURN); } /* ==== //depot/projects/newisp/dev/gem/if_gemvar.h#2 (text+ko) ==== @@ -25,7 +25,7 @@ * * from: NetBSD: gemvar.h,v 1.8 2002/05/15 02:36:12 matt Exp * - * $FreeBSD: src/sys/dev/gem/if_gemvar.h,v 1.11 2005/07/24 18:45:15 marius Exp $ + * $FreeBSD: src/sys/dev/gem/if_gemvar.h,v 1.12 2006/12/06 02:04:25 marius Exp $ */ #ifndef _IF_GEMVAR_H @@ -130,6 +130,7 @@ u_char sc_enaddr[6]; struct callout sc_tick_ch; /* tick callout */ struct callout sc_rx_ch; /* delayed rx callout */ + int sc_wdog_timer; /* watchdog timer */ /* The following bus handles are to be provided by the bus front-end */ bus_space_tag_t sc_bustag; /* bus tag */ ==== //depot/projects/newisp/dev/hme/if_hme.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.51 2006/12/04 01:53:40 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.52 2006/12/06 02:07:19 marius Exp $"); /* * HME Ethernet module driver. @@ -104,7 +104,7 @@ static void hme_stop(struct hme_softc *); static int hme_ioctl(struct ifnet *, u_long, caddr_t); static void hme_tick(void *); -static void hme_watchdog(struct ifnet *); +static int hme_watchdog(struct hme_softc *); static void hme_init(void *); static void hme_init_locked(struct hme_softc *); static int hme_add_rxbuf(struct hme_softc *, unsigned int, int); @@ -214,9 +214,10 @@ */ size = 4096; - error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, size, HME_NTXDESC + HME_NRXDESC + 1, - BUS_SPACE_MAXSIZE_32BIT, 0, NULL, NULL, &sc->sc_pdmatag); + error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, size, + HME_NTXDESC + HME_NRXDESC + 1, BUS_SPACE_MAXSIZE_32BIT, 0, + NULL, NULL, &sc->sc_pdmatag); if (error) goto fail_ifnet; @@ -290,12 +291,10 @@ ifp->if_softc = sc; if_initname(ifp, device_get_name(sc->sc_dev), device_get_unit(sc->sc_dev)); - ifp->if_mtu = ETHERMTU; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_start = hme_start; ifp->if_ioctl = hme_ioctl; ifp->if_init = hme_init; - ifp->if_watchdog = hme_watchdog; IFQ_SET_MAXLEN(&ifp->if_snd, HME_NTXQ); ifp->if_snd.ifq_drv_maxlen = HME_NTXQ; IFQ_SET_READY(&ifp->if_snd); @@ -467,6 +466,9 @@ mii_tick(sc->sc_mii); + if (hme_watchdog(sc) == EJUSTRETURN) + return; + callout_reset(&sc->sc_tick_ch, hz, hme_tick, sc); } @@ -477,6 +479,7 @@ int n; callout_stop(&sc->sc_tick_ch); + sc->sc_wdog_timer = 0; sc->sc_ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); /* Mask all interrupts */ @@ -876,11 +879,11 @@ hme_mediachange_locked(sc); /* Start the one second timer. */ + sc->sc_wdog_timer = 0; callout_reset(&sc->sc_tick_ch, hz, hme_tick, sc); ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - ifp->if_timer = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<<