CVS commit: src/lib/libc/stdlib
Module Name:src Committed By: yamt Date: Mon Jun 1 06:37:40 UTC 2009 Modified Files: src/lib/libc/stdlib: qsort.c Log Message: qsort: remove the "switch to insertion sort" optimization because it causes catastrophic performance for certain inputs. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/lib/libc/stdlib/qsort.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/stdlib/qsort.c diff -u src/lib/libc/stdlib/qsort.c:1.19 src/lib/libc/stdlib/qsort.c:1.20 --- src/lib/libc/stdlib/qsort.c:1.19 Fri Jan 30 23:38:44 2009 +++ src/lib/libc/stdlib/qsort.c Mon Jun 1 06:37:40 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: qsort.c,v 1.19 2009/01/30 23:38:44 lukem Exp $ */ +/* $NetBSD: qsort.c,v 1.20 2009/06/01 06:37:40 yamt Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)qsort.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: qsort.c,v 1.19 2009/01/30 23:38:44 lukem Exp $"); +__RCSID("$NetBSD: qsort.c,v 1.20 2009/06/01 06:37:40 yamt Exp $"); #endif #endif /* LIBC_SCCS and not lint */ @@ -103,13 +103,12 @@ { char *pa, *pb, *pc, *pd, *pl, *pm, *pn; size_t d, r; - int swaptype, swap_cnt, cmp_result; + int swaptype, cmp_result; _DIAGASSERT(a != NULL); _DIAGASSERT(cmp != NULL); loop: SWAPINIT(a, es); - swap_cnt = 0; if (n < 7) { for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; @@ -136,7 +135,6 @@ for (;;) { while (pb <= pc && (cmp_result = cmp(pb, a)) <= 0) { if (cmp_result == 0) { -swap_cnt = 1; swap(pa, pb); pa += es; } @@ -144,7 +142,6 @@ } while (pb <= pc && (cmp_result = cmp(pc, a)) >= 0) { if (cmp_result == 0) { -swap_cnt = 1; swap(pc, pd); pd -= es; } @@ -153,17 +150,9 @@ if (pb > pc) break; swap(pb, pc); - swap_cnt = 1; pb += es; pc -= es; } - if (swap_cnt == 0) { /* Switch to insertion sort */ - for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) - for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; - pl -= es) -swap(pl, pl - es); - return; - } pn = (char *) a + n * es; r = min(pa - (char *) a, pb - pa);
CVS commit: src/lib/libc/compat/gen
Module Name:src Committed By: yamt Date: Mon Jun 1 06:04:37 UTC 2009 Modified Files: src/lib/libc/compat/gen: compat_getpwent.c Log Message: fix NULL dereferences in the compat versions of getpwent, getpwnam, and getpwuid. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/lib/libc/compat/gen/compat_getpwent.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/lib/libc/compat/gen/compat_getpwent.c diff -u src/lib/libc/compat/gen/compat_getpwent.c:1.2 src/lib/libc/compat/gen/compat_getpwent.c:1.3 --- src/lib/libc/compat/gen/compat_getpwent.c:1.2 Sun Jan 11 02:46:25 2009 +++ src/lib/libc/compat/gen/compat_getpwent.c Mon Jun 1 06:04:37 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_getpwent.c,v 1.2 2009/01/11 02:46:25 christos Exp $ */ +/* $NetBSD: compat_getpwent.c,v 1.3 2009/06/01 06:04:37 yamt Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: compat_getpwent.c,v 1.2 2009/01/11 02:46:25 christos Exp $"); +__RCSID("$NetBSD: compat_getpwent.c,v 1.3 2009/06/01 06:04:37 yamt Exp $"); #endif /* LIBC_SCCS and not lint */ #define __LIBC12_SOURCE__ @@ -81,6 +81,10 @@ cvt(struct passwd *p) { struct passwd50 *q = (void *)p; + + if (q == NULL) { + return NULL; + } q->pw_change = (int32_t)p->pw_change; q->pw_class = p->pw_class; q->pw_gecos = p->pw_gecos;
CVS commit: src/games/tetris
Module Name:src Committed By: dholland Date: Mon Jun 1 04:03:26 UTC 2009 Modified Files: src/games/tetris: scores.c Log Message: Don't use a variable-size array here. There's not really that much point. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/games/tetris/scores.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/games/tetris/scores.c diff -u src/games/tetris/scores.c:1.16 src/games/tetris/scores.c:1.17 --- src/games/tetris/scores.c:1.16 Mon May 25 08:33:57 2009 +++ src/games/tetris/scores.c Mon Jun 1 04:03:26 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: scores.c,v 1.16 2009/05/25 08:33:57 dholland Exp $ */ +/* $NetBSD: scores.c,v 1.17 2009/06/01 04:03:26 dholland Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -586,7 +586,7 @@ putscores(int sd) { struct highscore_header header; - struct highscore_ondisk buf[nscores]; + struct highscore_ondisk buf[MAXHISCORES]; int i; if (sd == -1) {
CVS commit: src/sys/arch/sparc64/include
Module Name:src Committed By: macallan Date: Mon Jun 1 01:14:07 UTC 2009 Modified Files: src/sys/arch/sparc64/include: bus.h Log Message: #define BUS_SPACE_MAP_LARGE 0 so SBus framebuffer drivers compile again To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/sys/arch/sparc64/include/bus.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc64/include/bus.h diff -u src/sys/arch/sparc64/include/bus.h:1.58 src/sys/arch/sparc64/include/bus.h:1.59 --- src/sys/arch/sparc64/include/bus.h:1.58 Mon Apr 28 20:23:36 2008 +++ src/sys/arch/sparc64/include/bus.h Mon Jun 1 01:14:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bus.h,v 1.58 2008/04/28 20:23:36 martin Exp $ */ +/* $NetBSD: bus.h,v 1.59 2009/06/01 01:14:06 macallan Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc. @@ -307,7 +307,8 @@ #define BUS_SPACE_MAP_BUS2 0x0200 #define BUS_SPACE_MAP_BUS3 0x0400 #define BUS_SPACE_MAP_BUS4 0x0800 - +/* sparc uses this, it's not supposed to do anything on sparc64 */ +#define BUS_SPACE_MAP_LARGE 0 /* flags for bus_space_barrier() */ #define BUS_SPACE_BARRIER_READ 0x01 /* force read barrier */
CVS commit: src/sys/arch/amiga/dev
Module Name:src Committed By: phx Date: Sun May 31 23:07:19 UTC 2009 Modified Files: src/sys/arch/amiga/dev: par.c Log Message: Fixed format string from %x to %llx for dev_t. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/sys/arch/amiga/dev/par.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/amiga/dev/par.c diff -u src/sys/arch/amiga/dev/par.c:1.36 src/sys/arch/amiga/dev/par.c:1.37 --- src/sys/arch/amiga/dev/par.c:1.36 Wed Oct 17 19:53:17 2007 +++ src/sys/arch/amiga/dev/par.c Sun May 31 23:07:18 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: par.c,v 1.36 2007/10/17 19:53:17 garbled Exp $ */ +/* $NetBSD: par.c,v 1.37 2009/05/31 23:07:18 phx Exp $ */ /* * Copyright (c) 1982, 1990 The Regents of the University of California. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: par.c,v 1.36 2007/10/17 19:53:17 garbled Exp $"); +__KERNEL_RCSID(0, "$NetBSD: par.c,v 1.37 2009/05/31 23:07:18 phx Exp $"); /* * parallel port interface @@ -156,7 +156,7 @@ return(ENXIO); #ifdef DEBUG if (pardebug & PDB_FOLLOW) { - printf("paropen(%x, %x): flags %x, ", + printf("paropen(%llx, %x): flags %x, ", dev, flags, sc->sc_flags); printf ("port = $%x\n", ((ciab.pra ^ CIAB_PRA_SEL) & (CIAB_PRA_SEL|CIAB_PRA_BUSY|CIAB_PRA_POUT))); @@ -191,7 +191,7 @@ #ifdef DEBUG if (pardebug & PDB_FOLLOW) -printf("parclose(%x, %x): flags %x\n", +printf("parclose(%llx, %x): flags %x\n", dev, flags, sc->sc_flags); #endif sc->sc_flags &= ~(PARF_OPEN|PARF_OREAD|PARF_OWRITE); @@ -232,7 +232,7 @@ #ifdef DEBUG if (pardebug & PDB_FOLLOW) - printf("parread(%x, %p)\n", dev, uio); + printf("parread(%llx, %p)\n", dev, uio); #endif return (parrw(dev, uio)); } @@ -244,7 +244,7 @@ #ifdef DEBUG if (pardebug & PDB_FOLLOW) - printf("parwrite(%x, %p)\n", dev, uio); + printf("parwrite(%llx, %p)\n", dev, uio); #endif return (parrw(dev, uio)); } @@ -271,7 +271,7 @@ #ifdef DEBUG if (pardebug & (PDB_FOLLOW|PDB_IO)) -printf("parrw(%x, %p, %c): burst %d, timo %d, resid %x\n", +printf("parrw(%llx, %p, %c): burst %d, timo %d, resid %x\n", dev, uio, uio->uio_rw == UIO_READ ? 'R' : 'W', sc->sc_burst, sc->sc_timo, uio->uio_resid); #endif
CVS commit: src/sys/kern
Module Name:src Committed By: yamt Date: Sun May 31 22:15:13 UTC 2009 Modified Files: src/sys/kern: sys_descrip.c Log Message: do_posix_fadvise: turn some KASSERTs into CTASSERTs. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/sys/kern/sys_descrip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/kern/sys_descrip.c diff -u src/sys/kern/sys_descrip.c:1.13 src/sys/kern/sys_descrip.c:1.14 --- src/sys/kern/sys_descrip.c:1.13 Sun May 24 21:41:26 2009 +++ src/sys/kern/sys_descrip.c Sun May 31 22:15:13 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_descrip.c,v 1.13 2009/05/24 21:41:26 ad Exp $ */ +/* $NetBSD: sys_descrip.c,v 1.14 2009/05/31 22:15:13 yamt Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: sys_descrip.c,v 1.13 2009/05/24 21:41:26 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_descrip.c,v 1.14 2009/05/31 22:15:13 yamt Exp $"); #include #include @@ -614,6 +614,9 @@ { file_t *fp; int error; + CTASSERT(POSIX_FADV_NORMAL == UVM_ADV_NORMAL); + CTASSERT(POSIX_FADV_RANDOM == UVM_ADV_RANDOM); + CTASSERT(POSIX_FADV_SEQUENTIAL == UVM_ADV_SEQUENTIAL); if ((fp = fd_getfile(fd)) == NULL) { return EBADF; @@ -632,9 +635,6 @@ case POSIX_FADV_NORMAL: case POSIX_FADV_RANDOM: case POSIX_FADV_SEQUENTIAL: - KASSERT(POSIX_FADV_NORMAL == UVM_ADV_NORMAL); - KASSERT(POSIX_FADV_RANDOM == UVM_ADV_RANDOM); - KASSERT(POSIX_FADV_SEQUENTIAL == UVM_ADV_SEQUENTIAL); /* * We ignore offset and size. must lock the file to
CVS commit: src/sys/arch/sparc/sparc
Module Name:src Committed By: mrg Date: Sun May 31 20:28:51 UTC 2009 Modified Files: src/sys/arch/sparc/sparc: pmap.c Log Message: make sure to initialise the cpuinfo sz in all cases. noted by martin. To generate a diff of this commit: cvs rdiff -u -r1.330 -r1.331 src/sys/arch/sparc/sparc/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc/sparc/pmap.c diff -u src/sys/arch/sparc/sparc/pmap.c:1.330 src/sys/arch/sparc/sparc/pmap.c:1.331 --- src/sys/arch/sparc/sparc/pmap.c:1.330 Sun May 31 20:09:44 2009 +++ src/sys/arch/sparc/sparc/pmap.c Sun May 31 20:28:51 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.330 2009/05/31 20:09:44 mrg Exp $ */ +/* $NetBSD: pmap.c,v 1.331 2009/05/31 20:28:51 mrg Exp $ */ /* * Copyright (c) 1996 @@ -56,7 +56,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.330 2009/05/31 20:09:44 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.331 2009/05/31 20:28:51 mrg Exp $"); #include "opt_ddb.h" #include "opt_kgdb.h" @@ -3636,6 +3636,7 @@ * NOTE: we're using the cache properties of the boot CPU to * determine the alignment (XXX). */ + sz = sizeof(struct cpu_info); if (sparc_ncpus > 1) { if (CACHEINFO.c_totalsize > align) { /* Need a power of two */ @@ -3643,7 +3644,6 @@ align <<= 1; align >>= 1; } - sz = sizeof(struct cpu_info); sz = (sz + PAGE_SIZE - 1) & -PAGE_SIZE; cpuinfo_len = sz + align - PAGE_SIZE;
CVS commit: [jym-xensuspend] src/sys/arch
Module Name:src Committed By: jym Date: Sun May 31 20:15:37 UTC 2009 Modified Files: src/sys/arch/x86/include [jym-xensuspend]: pmap.h src/sys/arch/x86/x86 [jym-xensuspend]: pmap.c src/sys/arch/xen/include [jym-xensuspend]: xenbus.h src/sys/arch/xen/include/amd64 [jym-xensuspend]: hypercalls.h src/sys/arch/xen/include/i386 [jym-xensuspend]: hypercalls.h src/sys/arch/xen/x86 [jym-xensuspend]: x86_xpmap.c xen_bus_dma.c src/sys/arch/xen/xen [jym-xensuspend]: evtchn.c if_xennet_xenbus.c xbd_xenbus.c xen_machdep.c xencons.c xennetback_xenbus.c src/sys/arch/xen/xenbus [jym-xensuspend]: xenbus_probe.c Log Message: Modifications for the Xen suspend/migrate/resume branch: - introduce xenbus_device_{suspend,resume}() functions. These are routines used to suspend/resume MI parts of the Xenbus device interfaces, like updating frontend/backend devices' paths found in XenStore. - introduce HYPERVISOR_sysctl(), an hypercall used only by Xentools to obtain information from hypervisor (listing VMs, printing console, etc.). I use it to query xenconsole from ddb(), as a last resort in case of a panic() in dom0 (xm being not available). Currently unused in the branch; could be, if requested. - disable the rwlock(9) used to protect code that could use transient MFNs. It could trigger nasty context switches in place it should not to. - fix some bugs in the xennet/xbd suspend/resume pmf(9) handlers. - following XenSource's design, talk_to_otherend() is now called watch_otherend(), and free_otherend_details() is used by Xenbus device suspend/resume routines. - some slight modifications in pmap regarding APDP. Introduce an inline function (pmap_unmap_apdp_pde()) that clears APDP entry for the current pmap. - similarly, implement pmap_unmap_all_apdp_pdes() that iterates through all pmaps and tears down APDP, as Xen does not handle them properly. TODO/XXX: - pmap_unmap_apdp_pde() does not handle APDP shadow entry of PAE. It will, once I figure out how PAE uses it. - revisit the pmap locking issue regarding transient MFNs. As NetBSD does not use kernel preemption and MP for Xen, this could be skipped momentarily. See http://mail-index.netbsd.org/port-xen/2009/04/27/msg004903.html for details. - fix a bug regarding grant tables which could technically DoS a dom0 if ridiculously high consumer/producer indexes are passed down in the ring during a resume. All in all, once the grant table index issue and APDP PAE are fixed, next step is to torture test this branch. Tested under i386 PAE and non-PAE, Xen3 dom0 and domU. amd64 is only compile tested. To generate a diff of this commit: cvs rdiff -u -r1.21.2.1 -r1.21.2.2 src/sys/arch/x86/include/pmap.h cvs rdiff -u -r1.77.2.2 -r1.77.2.3 src/sys/arch/x86/x86/pmap.c cvs rdiff -u -r1.11 -r1.11.6.1 src/sys/arch/xen/include/xenbus.h cvs rdiff -u -r1.5 -r1.5.4.1 src/sys/arch/xen/include/amd64/hypercalls.h cvs rdiff -u -r1.8 -r1.8.4.1 src/sys/arch/xen/include/i386/hypercalls.h cvs rdiff -u -r1.12.4.2 -r1.12.4.3 src/sys/arch/xen/x86/x86_xpmap.c cvs rdiff -u -r1.14.2.1 -r1.14.2.2 src/sys/arch/xen/x86/xen_bus_dma.c cvs rdiff -u -r1.42.2.2 -r1.42.2.3 src/sys/arch/xen/xen/evtchn.c cvs rdiff -u -r1.33.2.2 -r1.33.2.3 src/sys/arch/xen/xen/if_xennet_xenbus.c cvs rdiff -u -r1.38.2.2 -r1.38.2.3 src/sys/arch/xen/xen/xbd_xenbus.c cvs rdiff -u -r1.4.12.2 -r1.4.12.3 src/sys/arch/xen/xen/xen_machdep.c cvs rdiff -u -r1.31.2.1 -r1.31.2.2 src/sys/arch/xen/xen/xencons.c cvs rdiff -u -r1.27.2.2 -r1.27.2.3 src/sys/arch/xen/xen/xennetback_xenbus.c cvs rdiff -u -r1.27.2.1 -r1.27.2.2 src/sys/arch/xen/xenbus/xenbus_probe.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/x86/include/pmap.h diff -u src/sys/arch/x86/include/pmap.h:1.21.2.1 src/sys/arch/x86/include/pmap.h:1.21.2.2 --- src/sys/arch/x86/include/pmap.h:1.21.2.1 Wed May 13 17:18:44 2009 +++ src/sys/arch/x86/include/pmap.h Sun May 31 20:15:36 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.21.2.1 2009/05/13 17:18:44 jym Exp $ */ +/* $NetBSD: pmap.h,v 1.21.2.2 2009/05/31 20:15:36 jym Exp $ */ /* * @@ -400,6 +400,7 @@ int pmap_enter_ma(struct pmap *, vaddr_t, paddr_t, paddr_t, vm_prot_t, u_int, int); bool pmap_extract_ma(pmap_t, vaddr_t, paddr_t *); +void pmap_unmap_all_apdp_pdes(void); paddr_t vtomach(vaddr_t); #define vtomfn(va) (vtomach(va) >> PAGE_SHIFT) Index: src/sys/arch/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.77.2.2 src/sys/arch/x86/x86/pmap.c:1.77.2.3 --- src/sys/arch/x86/x86/pmap.c:1.77.2.2 Wed May 13 17:18:45 2009 +++ src/sys/arch/x86/x86/pmap.c Sun May 31 20:15:36 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.77.2.2 2009/05/13 17:18:45 jym Exp $ */ +/* $NetBSD: pmap.c,v 1.77.2.3 2009/05/31 20:15:36 jym Exp $ */ /* * Copyright (c) 2007 Manuel Bouyer. @@ -154,7 +154,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: pma
CVS commit: src/sys/arch/sparc/sparc
Module Name:src Committed By: mrg Date: Sun May 31 20:09:44 UTC 2009 Modified Files: src/sys/arch/sparc/sparc: cpu.c cpuvar.h pmap.c Log Message: - bump the size of cpus[] by one, so we have a NULL pointer at the end, from tsutsui - for MP kernels, copy the loop to find the bootcpu in mainbus_attach() into getcacheinfo_obp() so we can get cache properties on the bootcpu before calling main() - in getcpuinfo(), move the call of getmid() before the call to getcacheinfo() so that the above change to getcacheinfo_obp() can work - move the struct cpu_info setup to the end of the initial kernel page setup and don't access this space until after we have switched to the kernel pagetables - revive most of the old CPUINFO_VA alignment/congruency code from the old alloc_cpuinfo_global_va() function, and ensure that all cpuinfo structures are sanely aligned. this makes hypersparc work again - introduce a new way to free the wasted pages back to UVM, as we can't simply uvm_unmap() them this early in bootstrap i believe that the first used cpuinfo_data page is still being wasted, but i haven't checked. To generate a diff of this commit: cvs rdiff -u -r1.216 -r1.217 src/sys/arch/sparc/sparc/cpu.c cvs rdiff -u -r1.78 -r1.79 src/sys/arch/sparc/sparc/cpuvar.h cvs rdiff -u -r1.329 -r1.330 src/sys/arch/sparc/sparc/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc/sparc/cpu.c diff -u src/sys/arch/sparc/sparc/cpu.c:1.216 src/sys/arch/sparc/sparc/cpu.c:1.217 --- src/sys/arch/sparc/sparc/cpu.c:1.216 Sat May 30 01:19:29 2009 +++ src/sys/arch/sparc/sparc/cpu.c Sun May 31 20:09:44 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.216 2009/05/30 01:19:29 mrg Exp $ */ +/* $NetBSD: cpu.c,v 1.217 2009/05/31 20:09:44 mrg Exp $ */ /* * Copyright (c) 1996 @@ -52,7 +52,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.216 2009/05/30 01:19:29 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.217 2009/05/31 20:09:44 mrg Exp $"); #include "opt_multiprocessor.h" #include "opt_lockdebug.h" @@ -102,7 +102,7 @@ extern char machine_model[]; int sparc_ncpus; /* # of CPUs detected by PROM */ -struct cpu_info *cpus[_MAXNCPU]; /* we only support 4 CPUs. */ +struct cpu_info *cpus[_MAXNCPU+1]; /* we only support 4 CPUs. */ /* The CPU configuration driver. */ static void cpu_mainbus_attach(struct device *, struct device *, void *); @@ -1123,6 +1123,35 @@ struct cacheinfo *ci = &sc->cacheinfo; int i, l; +#if defined(MULTIPROCESSOR) + /* + * We really really want the cache info early for MP systems, + * so figure out the boot node, if we can. + * + * XXX this loop stolen from mainbus_attach() + */ + if (node == 0 && CPU_ISSUN4M && bootmid != 0) { + const char *cp; + char namebuf[32]; + int mid, node2; + + for (node2 = firstchild(findroot()); + node2; + node2 = nextsibling(node2)) { + cp = prom_getpropstringA(node2, "device_type", + namebuf, sizeof namebuf); + if (strcmp(cp, "cpu") != 0) +continue; + + mid = prom_getpropint(node2, "mid", -1); + if (mid == bootmid) { +node = node2; +break; + } + } + } +#endif + if (node == 0) /* Bootstrapping */ return; @@ -1862,6 +1891,9 @@ if (sc->cacheinfo.c_vactype == VAC_UNKNOWN) sc->cacheinfo.c_vactype = mp->minfo->vactype; + if (sc->master && mp->minfo->getmid != NULL) + bootmid = mp->minfo->getmid(); + mp->minfo->getcacheinfo(sc, node); if (node && sc->hz == 0 && !CPU_ISSUN4/*XXX*/) { @@ -1875,9 +1907,6 @@ } } - if (sc->master && mp->minfo->getmid != NULL) - bootmid = mp->minfo->getmid(); - /* * Copy CPU/MMU/Cache specific routines into cpu_info. */ Index: src/sys/arch/sparc/sparc/cpuvar.h diff -u src/sys/arch/sparc/sparc/cpuvar.h:1.78 src/sys/arch/sparc/sparc/cpuvar.h:1.79 --- src/sys/arch/sparc/sparc/cpuvar.h:1.78 Wed May 27 02:19:49 2009 +++ src/sys/arch/sparc/sparc/cpuvar.h Sun May 31 20:09:44 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: cpuvar.h,v 1.78 2009/05/27 02:19:49 mrg Exp $ */ +/* $NetBSD: cpuvar.h,v 1.79 2009/05/31 20:09:44 mrg Exp $ */ /* * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -325,6 +325,12 @@ /*bus_space_handle_t*/ long ci_mxccregs; u_int ci_tt; /* Last trap (if tracing) */ + + /* + * Start/End VA's of this cpu_info region; we upload the other pages + * in this region that aren't part of the cpu_info to uvm. + */ + vaddr_t ci_free_sva1, ci_free_eva1, ci_free_sva2, ci_free_eva2; }; /* Index: src/sys/arch/sparc/sparc/pmap.c diff -u src/sys/arch/sparc/sparc/pmap.c:1.329 src/sys/arch/sparc/sparc/pmap.c:1.330 --- src/sys/arch/sparc/sparc/pmap.c:1.329 Wed May 27 02:19:50 2009 +++ src/sys/arch/sparc/sparc/pmap.c Sun May 31 20:09:44 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.329 2009/05/27 02:19:50 mrg Exp $ */ +/* $NetBSD: pmap.c,v 1.330 2009/05/31 20:09:44 mrg Exp $ */ /* * Copyright
CVS commit: src/sys/arch/evbarm/g42xxeb
Module Name:src Committed By: he Date: Sun May 31 17:47:26 UTC 2009 Modified Files: src/sys/arch/evbarm/g42xxeb: gb225_pcic.c Log Message: Adapt to changes in sa11x0 code, with struct device * -> device_t changes. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/g42xxeb/gb225_pcic.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/evbarm/g42xxeb/gb225_pcic.c diff -u src/sys/arch/evbarm/g42xxeb/gb225_pcic.c:1.7 src/sys/arch/evbarm/g42xxeb/gb225_pcic.c:1.8 --- src/sys/arch/evbarm/g42xxeb/gb225_pcic.c:1.7 Sat Dec 15 00:39:15 2007 +++ src/sys/arch/evbarm/g42xxeb/gb225_pcic.c Sun May 31 17:47:26 2009 @@ -120,7 +120,7 @@ { struct opcic_softc *sc = (struct opcic_softc *)(so->ss.sc); struct opio_softc *osc = - (struct opio_softc *) device_parent(&sc->sc_pc.sc_dev); + device_private(device_parent(sc->sc_pc.sc_dev)); return bus_space_read_1(osc->sc_iot, osc->sc_ioh, GB225_CFDET + 2 * so->ss.socket); @@ -184,7 +184,7 @@ paa.iosize = 0x400; sc->sc_socket[i].ss.pcmcia = - (struct device *)config_found_ia(&sc->sc_pc.sc_dev, + config_found_ia(sc->sc_pc.sc_dev, "pcmciabus", &paa, opcic_print); #ifndef DONT_USE_CARD_DETECT_INTR @@ -284,9 +284,9 @@ struct opcic_socket *so = (struct opcic_socket *)__so; struct opcic_softc *sc = (struct opcic_softc *)so->ss.sc; struct opio_softc *psc = - (struct opio_softc *) device_parent(&sc->sc_pc.sc_dev); + device_private(device_parent(sc->sc_pc.sc_dev)); struct obio_softc *bsc = - (struct obio_softc *) device_parent(&psc->sc_dev); + device_private(device_parent(&psc->sc_dev)); switch (which) { case SAPCIC_CONTROL_RESET: @@ -317,7 +317,7 @@ struct opcic_socket *so = (struct opcic_socket *)__so; struct opcic_softc *sc = (struct opcic_softc *)so->ss.sc; struct opio_softc *psc = - (struct opio_softc *) device_parent(&sc->sc_pc.sc_dev); + device_private(device_parent(sc->sc_pc.sc_dev)); int shift, save; volatile uint8_t *p; @@ -352,9 +352,9 @@ { struct opcic_softc *sc = (struct opcic_softc *)so->sc; struct opio_softc *psc = - (struct opio_softc *) device_parent(&sc->sc_pc.sc_dev); + device_private(device_parent(sc->sc_pc.sc_dev)); struct obio_softc *bsc = - (struct obio_softc *) device_parent(&psc->sc_dev); + device_private(device_parent(&psc->sc_dev)); int irq; DPRINTF(("opcic_intr_establish %d\n", so->socket)); @@ -369,7 +369,7 @@ { struct opcic_softc *sc = (struct opcic_softc *)so->sc; struct opio_softc *psc = - (struct opio_softc *) device_parent(&sc->sc_pc.sc_dev); + device_private(device_parent(sc->sc_pc.sc_dev)); struct obio_softc *bsc = (struct obio_softc *) device_parent(&psc->sc_dev); int (* func)(void *) = ((struct obio_handler *)ih)->func;
CVS commit: src/sys/arch/sparc/dev
Module Name:src Committed By: martin Date: Sun May 31 17:09:03 UTC 2009 Modified Files: src/sys/arch/sparc/dev: zs.c Log Message: Properly initialize child attach args to zero - we could end up with various devices having different ideas about being console otherwise. To generate a diff of this commit: cvs rdiff -u -r1.115 -r1.116 src/sys/arch/sparc/dev/zs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/sparc/dev/zs.c diff -u src/sys/arch/sparc/dev/zs.c:1.115 src/sys/arch/sparc/dev/zs.c:1.116 --- src/sys/arch/sparc/dev/zs.c:1.115 Fri May 22 03:51:30 2009 +++ src/sys/arch/sparc/dev/zs.c Sun May 31 17:09:03 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: zs.c,v 1.115 2009/05/22 03:51:30 mrg Exp $ */ +/* $NetBSD: zs.c,v 1.116 2009/05/31 17:09:03 martin Exp $ */ /*- * Copyright (c) 1996 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: zs.c,v 1.115 2009/05/22 03:51:30 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: zs.c,v 1.116 2009/05/31 17:09:03 martin Exp $"); #include "opt_ddb.h" #include "opt_kgdb.h" @@ -401,6 +401,7 @@ int ch0_is_cons = 0; #endif + memset(&zsc_args, 0, sizeof zsc_args); if (zsd == NULL) { aprint_error(": configuration incomplete\n"); return; @@ -424,6 +425,7 @@ int hwflags; zsc_args.channel = channel; + zsc_args.hwflags = 0; cs = &zsc->zsc_cs_store[channel]; zsc->zsc_cs[channel] = cs;
CVS commit: [jym-xensuspend] src/sys/arch
Module Name:src Committed By: jym Date: Sun May 31 14:32:35 UTC 2009 Modified Files: src/sys/arch/amd64/amd64 [jym-xensuspend]: bios32.c src/sys/arch/amd64/conf [jym-xensuspend]: GENERIC src/sys/arch/amd64/include [jym-xensuspend]: elf_machdep.h src/sys/arch/i386 [jym-xensuspend]: Makefile src/sys/arch/i386/i386 [jym-xensuspend]: bios32.c gdt.c src/sys/arch/i386/include [jym-xensuspend]: elf_machdep.h segments.h src/sys/arch/i386/pci [jym-xensuspend]: glxsb.c src/sys/arch/x86/include [jym-xensuspend]: cacheinfo.h specialreg.h src/sys/arch/x86/x86 [jym-xensuspend]: cpu_topology.c ioapic.c sys_machdep.c src/sys/arch/xen [jym-xensuspend]: Makefile Log Message: Sync with HEAD. To generate a diff of this commit: cvs rdiff -u -r1.14.2.1 -r1.14.2.2 src/sys/arch/amd64/amd64/bios32.c cvs rdiff -u -r1.237.2.1 -r1.237.2.2 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.2 -r1.2.8.1 src/sys/arch/amd64/include/elf_machdep.h cvs rdiff -u -r1.36 -r1.36.4.1 src/sys/arch/i386/Makefile cvs rdiff -u -r1.22.14.1 -r1.22.14.2 src/sys/arch/i386/i386/bios32.c cvs rdiff -u -r1.45.14.1 -r1.45.14.2 src/sys/arch/i386/i386/gdt.c cvs rdiff -u -r1.9 -r1.9.138.1 src/sys/arch/i386/include/elf_machdep.h cvs rdiff -u -r1.50.8.1 -r1.50.8.2 src/sys/arch/i386/include/segments.h cvs rdiff -u -r1.6.14.1 -r1.6.14.2 src/sys/arch/i386/pci/glxsb.c cvs rdiff -u -r1.9.12.1 -r1.9.12.2 src/sys/arch/x86/include/cacheinfo.h cvs rdiff -u -r1.31.8.1 -r1.31.8.2 src/sys/arch/x86/include/specialreg.h cvs rdiff -u -r1.1.4.2 -r1.1.4.3 src/sys/arch/x86/x86/cpu_topology.c cvs rdiff -u -r1.38.10.1 -r1.38.10.2 src/sys/arch/x86/x86/ioapic.c cvs rdiff -u -r1.16.4.1 -r1.16.4.2 src/sys/arch/x86/x86/sys_machdep.c cvs rdiff -u -r1.5 -r1.5.8.1 src/sys/arch/xen/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/amd64/amd64/bios32.c diff -u src/sys/arch/amd64/amd64/bios32.c:1.14.2.1 src/sys/arch/amd64/amd64/bios32.c:1.14.2.2 --- src/sys/arch/amd64/amd64/bios32.c:1.14.2.1 Wed May 13 17:16:08 2009 +++ src/sys/arch/amd64/amd64/bios32.c Sun May 31 14:32:32 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: bios32.c,v 1.14.2.1 2009/05/13 17:16:08 jym Exp $ */ +/* $NetBSD: bios32.c,v 1.14.2.2 2009/05/31 14:32:32 jym Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bios32.c,v 1.14.2.1 2009/05/13 17:16:08 jym Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bios32.c,v 1.14.2.2 2009/05/31 14:32:32 jym Exp $"); #include #include @@ -306,7 +306,7 @@ if (i == indx) { if (va + len < end) { ret = dest; - memcpy( ret, va, len); + memcpy(ret, va, len); ret[len - 1] = '\0'; } } Index: src/sys/arch/amd64/conf/GENERIC diff -u src/sys/arch/amd64/conf/GENERIC:1.237.2.1 src/sys/arch/amd64/conf/GENERIC:1.237.2.2 --- src/sys/arch/amd64/conf/GENERIC:1.237.2.1 Wed May 13 17:16:08 2009 +++ src/sys/arch/amd64/conf/GENERIC Sun May 31 14:32:33 2009 @@ -1,4 +1,4 @@ -# $NetBSD: GENERIC,v 1.237.2.1 2009/05/13 17:16:08 jym Exp $ +# $NetBSD: GENERIC,v 1.237.2.2 2009/05/31 14:32:33 jym Exp $ # # GENERIC machine description file # @@ -22,7 +22,7 @@ options INCLUDE_CONFIG_FILE # embed config file in kernel binary -#ident "GENERIC-$Revision: 1.237.2.1 $" +#ident "GENERIC-$Revision: 1.237.2.2 $" maxusers 64 # estimated number of users @@ -783,9 +783,13 @@ umodem* at uhub? port ? configuration ? ucom* at umodem? +# Huawei E220 3G/HSDPA modem +uhmodem* at uhub? port ? configuration ? interface ? +ucom* at uhmodem? portno ? + # USB Mass Storage umass* at uhub? port ? configuration ? interface ? -#wd* at umass? +wd* at umass? # USB audio uaudio* at uhub? port ? configuration ? Index: src/sys/arch/amd64/include/elf_machdep.h diff -u src/sys/arch/amd64/include/elf_machdep.h:1.2 src/sys/arch/amd64/include/elf_machdep.h:1.2.8.1 --- src/sys/arch/amd64/include/elf_machdep.h:1.2 Sun Oct 26 00:08:15 2008 +++ src/sys/arch/amd64/include/elf_machdep.h Sun May 31 14:32:33 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: elf_machdep.h,v 1.2 2008/10/26 00:08:15 mrg Exp $ */ +/* $NetBSD: elf_machdep.h,v 1.2.8.1 2009/05/31 14:32:33 jym Exp $ */ #ifdef __x86_64__ @@ -36,6 +36,16 @@ #define R_X86_64_8 14 #define R_X86_64_PC8 15 +/* TLS relocations */ +#define R_X86_64_DTPMOD64 16 +#define R_X86_64_DTPOFF64 17 +#define R_X86_64_TPOFF64 18 +#define R_X86_64_TLSGD 19 +#define R_X86_64_TLSLD 20 +#define R_X86_64_DTPOFF32 21 +#define R_X86_64_GOTTPOFF 22 +#define R_X86_64_TPOFF32 23 + #define R_TYPE(name) __CONCAT(R_X86_64_,name) #else /* __x86_64__ */ Index: src/sys/arch/i386/Makefile diff -u src/sys/arch/i386/Makefile:1.36 src/sys/arch/i386/Makefile:1.36.4.1 --- src/sys/arch/i386/Makefile:1.36 Thu Nov 6 00:41:52 2008 +++ src/sys/arch/i386/Makefile Sun May 31 14:32:33 2009 @@ -1,4 +1,4 @@ -# $NetBSD: Makef
CVS commit: src/sys/dev/ic
Module Name:src Committed By: he Date: Sun May 31 14:11:18 UTC 2009 Modified Files: src/sys/dev/ic: smc90cx6.c Log Message: Don't include anymore since it has been removed (at least from the amiga port) and appears to no longer be required. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/sys/dev/ic/smc90cx6.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ic/smc90cx6.c diff -u src/sys/dev/ic/smc90cx6.c:1.59 src/sys/dev/ic/smc90cx6.c:1.60 --- src/sys/dev/ic/smc90cx6.c:1.59 Sat Mar 14 15:36:17 2009 +++ src/sys/dev/ic/smc90cx6.c Sun May 31 14:11:17 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: smc90cx6.c,v 1.59 2009/03/14 15:36:17 dsl Exp $ */ +/* $NetBSD: smc90cx6.c,v 1.60 2009/05/31 14:11:17 he Exp $ */ /*- * Copyright (c) 1994, 1995, 1998 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.59 2009/03/14 15:36:17 dsl Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smc90cx6.c,v 1.60 2009/05/31 14:11:17 he Exp $"); /* #define BAHSOFTCOPY */ #define BAHRETRANSMIT /**/ @@ -77,7 +77,6 @@ #include #include -#include #include #include
CVS commit: src/sys/arch/mips/alchemy
Module Name:src Committed By: martin Date: Sun May 31 11:34:01 UTC 2009 Modified Files: src/sys/arch/mips/alchemy: au_icu.c Log Message: Per discussion with also block the interrupts from icu 1 for splvm(), even if we don't currently support any handlers for gpio interrupts. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/arch/mips/alchemy/au_icu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/mips/alchemy/au_icu.c diff -u src/sys/arch/mips/alchemy/au_icu.c:1.24 src/sys/arch/mips/alchemy/au_icu.c:1.25 --- src/sys/arch/mips/alchemy/au_icu.c:1.24 Sun May 31 09:39:10 2009 +++ src/sys/arch/mips/alchemy/au_icu.c Sun May 31 11:34:01 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: au_icu.c,v 1.24 2009/05/31 09:39:10 martin Exp $ */ +/* $NetBSD: au_icu.c,v 1.25 2009/05/31 11:34:01 martin Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: au_icu.c,v 1.24 2009/05/31 09:39:10 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: au_icu.c,v 1.25 2009/05/31 11:34:01 martin Exp $"); #include "opt_ddb.h" @@ -100,7 +100,9 @@ MIPS_SOFT_INT_MASK_0| MIPS_SOFT_INT_MASK_1| MIPS_INT_MASK_0| - MIPS_INT_MASK_1, /* 3: IPL_VM */ + MIPS_INT_MASK_1| + MIPS_INT_MASK_2| + MIPS_INT_MASK_3, /* 3: IPL_VM */ MIPS_SOFT_INT_MASK_0| MIPS_SOFT_INT_MASK_1| MIPS_INT_MASK_0|
CVS commit: src/sys/arch/evbmips/conf
Module Name:src Committed By: martin Date: Sun May 31 11:09:01 UTC 2009 Modified Files: src/sys/arch/evbmips/conf: ALCHEMY Log Message: For consistency add COMPAT_50 To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/evbmips/conf/ALCHEMY Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/evbmips/conf/ALCHEMY diff -u src/sys/arch/evbmips/conf/ALCHEMY:1.23 src/sys/arch/evbmips/conf/ALCHEMY:1.24 --- src/sys/arch/evbmips/conf/ALCHEMY:1.23 Fri Mar 6 20:31:48 2009 +++ src/sys/arch/evbmips/conf/ALCHEMY Sun May 31 11:09:01 2009 @@ -1,11 +1,11 @@ -# $NetBSD: ALCHEMY,v 1.23 2009/03/06 20:31:48 joerg Exp $ +# $NetBSD: ALCHEMY,v 1.24 2009/05/31 11:09:01 martin Exp $ # # Kernel config for the Alchemy Semiconductor (AMD) PB1000, PB1500, # DBAu1000 and DBAu1500 evaluation boards. include "arch/evbmips/conf/std.alchemy" -#ident "ALCHEMY-$Revision: 1.23 $" +#ident "ALCHEMY-$Revision: 1.24 $" maxusers 32 @@ -61,6 +61,7 @@ options COMPAT_20 # NetBSD 2.0 binary compatibility options COMPAT_30 # NetBSD 3.0 compatibility. options COMPAT_40 # NetBSD 4.0 compatibility. +options COMPAT_50 # NetBSD 5.0 compatibility. #options EXEC_ECOFF # exec ECOFF binaries #options COMPAT_ULTRIX # binary compatibility with Ultrix options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
CVS commit: src/sys/arch/mips/alchemy
Module Name:src Committed By: martin Date: Sun May 31 09:39:10 UTC 2009 Modified Files: src/sys/arch/mips/alchemy: au_icu.c Log Message: Block MIPS_INT_MASK_1 for splvm() too - if_aumac.c establishes it's interrupt handler at icu 0 req 1, which needs to be blocked by splvm(). To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/mips/alchemy/au_icu.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/mips/alchemy/au_icu.c diff -u src/sys/arch/mips/alchemy/au_icu.c:1.23 src/sys/arch/mips/alchemy/au_icu.c:1.24 --- src/sys/arch/mips/alchemy/au_icu.c:1.23 Mon Apr 28 20:23:27 2008 +++ src/sys/arch/mips/alchemy/au_icu.c Sun May 31 09:39:10 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: au_icu.c,v 1.23 2008/04/28 20:23:27 martin Exp $ */ +/* $NetBSD: au_icu.c,v 1.24 2009/05/31 09:39:10 martin Exp $ */ /*- * Copyright (c) 2006 Itronix Inc. @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: au_icu.c,v 1.23 2008/04/28 20:23:27 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: au_icu.c,v 1.24 2009/05/31 09:39:10 martin Exp $"); #include "opt_ddb.h" @@ -99,7 +99,8 @@ MIPS_SOFT_INT_MASK_0, /* 2: IPL_SOFTNET */ MIPS_SOFT_INT_MASK_0| MIPS_SOFT_INT_MASK_1| - MIPS_INT_MASK_0, /* 3: IPL_VM */ + MIPS_INT_MASK_0| + MIPS_INT_MASK_1, /* 3: IPL_VM */ MIPS_SOFT_INT_MASK_0| MIPS_SOFT_INT_MASK_1| MIPS_INT_MASK_0|