svn commit: r206546 - head/sys/kern
Author: kib Date: Tue Apr 13 08:45:55 2010 New Revision: 206546 URL: http://svn.freebsd.org/changeset/base/206546 Log: Remove XXX comment. Add another comment, describing why f_vnode assignment is useful. MFC after:3 days Modified: head/sys/kern/vfs_syscalls.c Modified: head/sys/kern/vfs_syscalls.c == --- head/sys/kern/vfs_syscalls.cTue Apr 13 06:48:37 2010 (r206545) +++ head/sys/kern/vfs_syscalls.cTue Apr 13 08:45:55 2010 (r206546) @@ -1124,7 +1124,12 @@ kern_openat(struct thread *td, int fd, c NDFREE(nd, NDF_ONLY_PNBUF); vp = nd.ni_vp; - fp-f_vnode = vp; /* XXX Does devfs need this? */ + /* +* Store the vnode, for any f_type. Typically, the vnode use +* count is decremented by direct call to vn_closefile() for +* files that switched type in the cdevsw fdopen() method. +*/ + fp-f_vnode = vp; /* * If the file wasn't claimed by devfs bind it to the normal * vnode operations here. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206548 - head/bin/ps
Author: kib Date: Tue Apr 13 08:54:53 2010 New Revision: 206548 URL: http://svn.freebsd.org/changeset/base/206548 Log: Update the list of the process flags for P_WKILLED. MFC after:4 weeks Modified: head/bin/ps/ps.1 Modified: head/bin/ps/ps.1 == --- head/bin/ps/ps.1Tue Apr 13 08:52:20 2010(r206547) +++ head/bin/ps/ps.1Tue Apr 13 08:54:53 2010(r206548) @@ -29,7 +29,7 @@ .\ @(#)ps.1 8.3 (Berkeley) 4/18/94 .\ $FreeBSD$ .\ -.Dd March 17, 2010 +.Dd April 13, 2010 .Dt PS 1 .Os .Sh NAME @@ -298,6 +298,7 @@ the include file .It Dv P_WAITED Ta No 0x01000 Someone is waiting for us .It Dv P_WEXIT Ta No 0x02000Working on exiting .It Dv P_EXEC Ta No 0x04000 Process called exec +.It Dv P_WKILLED Ta No 0x08000 Killed, shall go to kernel/user boundary ASAP .It Dv P_CONTINUED Ta No 0x1Proc has continued from a stopped state .It Dv P_STOPPED_SIG Ta No 0x2 Stopped due to SIGSTOP/SIGTSTP .It Dv P_STOPPED_TRACE Ta No 0x4Stopped because of tracing ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206550 - head/sbin/geom/class/sched
Author: luigi Date: Tue Apr 13 09:52:42 2010 New Revision: 206550 URL: http://svn.freebsd.org/changeset/base/206550 Log: use correct .PATH, remove unused CFLAGS Modified: head/sbin/geom/class/sched/Makefile Modified: head/sbin/geom/class/sched/Makefile == --- head/sbin/geom/class/sched/Makefile Tue Apr 13 08:56:03 2010 (r206549) +++ head/sbin/geom/class/sched/Makefile Tue Apr 13 09:52:42 2010 (r206550) @@ -1,9 +1,8 @@ # GEOM_LIBRARY_PATH # $FreeBSD$ -.PATH: /usr/src/sbin/geom/misc - -CFLAGS += -I/usr/src/sbin/geom +.PATH: ${.CURDIR}/../../misc +#CFLAGS += -I/usr/src/sbin/geom CLASS=sched ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r206553 - in head/sys: amd64/amd64 amd64/ia32 i386/i386
On Tue, Apr 13, 2010 at 10:12:58AM +, Konstantin Belousov wrote: Author: kib Date: Tue Apr 13 10:12:58 2010 New Revision: 206553 URL: http://svn.freebsd.org/changeset/base/206553 Log: Change printf() calls to uprintf() for sigreturn() and trap() complaints about inacessible or wrong mcontext, and for dreaded kernel trap with interrupts disabled situation. The later is changed when trap is generated from user mode (shall never be ?). Normalize the messages to include both pid and thread name. MFC after: 1 week I think that printfs from sigreturn should be changed to signal delivery or even a call to trap_fatal(), but this is for other commit. Anyway, the current situation where messages could be found in daily periodic run (sigreturn pid 23334: cs=0x, so what ? pid is long time gone) is not very useful for noting the issue. pgpriHZZQhAIc.pgp Description: PGP signature
svn commit: r206555 - head/sys/dev/aac
Author: emaste Date: Tue Apr 13 12:10:55 2010 New Revision: 206555 URL: http://svn.freebsd.org/changeset/base/206555 Log: Use enums in the aac_command_status_table rather than duplicating the same values in two places. Suggested by: Garrett Cooper Modified: head/sys/dev/aac/aac_tables.h Modified: head/sys/dev/aac/aac_tables.h == --- head/sys/dev/aac/aac_tables.h Tue Apr 13 10:23:03 2010 (r206554) +++ head/sys/dev/aac/aac_tables.h Tue Apr 13 12:10:55 2010 (r206555) @@ -34,42 +34,42 @@ * relevant only to FSA operations. */ static struct aac_code_lookup aac_command_status_table[] = { - {OK, 0}, - {operation not permitted, 1}, - {not found, 2}, - {I/O error, 5}, - {device not configured, 6}, - {too big, 7}, - {permission denied, 13}, - {file exists, 17}, - {cross-device link, 18}, - {operation not supported by device, 19}, - {not a directory, 20}, - {is a directory, 21}, - {invalid argument,22}, - {file too large, 27}, - {no space on device, 28}, - {readonly filesystem, 30}, - {too many links, 31}, - {operation would block, 35}, - {file name too long, 63}, - {directory not empty, 66}, - {quota exceeded, 69}, - {stale file handle, 70}, - {too many levels of remote in path, 71}, - {device busy (spinning up), 72}, - {bad file handle, 10001}, - {not sync,10002}, - {bad cookie, 10003}, - {operation not supported, 10004}, - {too small, 10005}, - {server fault,10006}, - {bad type,10007}, - {jukebox, 10008}, - {not mounted, 10009}, - {in maintenance mode, 10010}, - {stale ACL, 10011}, - {bus reset - command aborted, 20001}, + {OK, ST_OK}, + {operation not permitted, ST_PERM}, + {not found, ST_NOENT}, + {I/O error, ST_IO}, + {device not configured, ST_NXIO}, + {too big, ST_E2BIG}, + {permission denied, ST_ACCES}, + {file exists, ST_EXIST}, + {cross-device link, ST_XDEV}, + {operation not supported by device, ST_NODEV}, + {not a directory, ST_NOTDIR}, + {is a directory, ST_ISDIR}, + {invalid argument,ST_INVAL}, + {file too large, ST_FBIG}, + {no space on device, ST_NOSPC}, + {readonly filesystem, ST_ROFS}, + {too many links, ST_MLINK}, + {operation would block, ST_WOULDBLOCK}, + {file name too long, ST_NAMETOOLONG}, + {directory not empty, ST_NOTEMPTY}, + {quota exceeded, ST_DQUOT}, + {stale file handle, ST_STALE}, + {too many levels of remote in path, ST_REMOTE}, + {device busy (spinning up), ST_NOT_READY}, + {bad file handle, ST_BADHANDLE}, + {not sync,ST_NOT_SYNC}, + {bad cookie, ST_BAD_COOKIE}, + {operation not supported, ST_NOTSUPP}, + {too small, ST_TOOSMALL}, + {server fault,ST_SERVERFAULT}, + {bad type,ST_BADTYPE}, + {jukebox, ST_JUKEBOX}, + {not mounted, ST_NOTMOUNTED}, + {in maintenance mode, ST_MAINTMODE}, + {stale ACL, ST_STALEACL}, + {bus reset - command aborted, ST_BUS_RESET}, {NULL, 0}, {unknown command status, 0} }; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206558 - head/sys/ia64/ia64
Author: marcel Date: Tue Apr 13 15:55:18 2010 New Revision: 206558 URL: http://svn.freebsd.org/changeset/base/206558 Log: Change the (generic) argument to ia64_store_mca_state() from the cpuid to the struct pcpu of the CPU. We casting between pointer types only then. Modified: head/sys/ia64/ia64/mp_machdep.c Modified: head/sys/ia64/ia64/mp_machdep.c == --- head/sys/ia64/ia64/mp_machdep.c Tue Apr 13 15:53:04 2010 (r206557) +++ head/sys/ia64/ia64/mp_machdep.c Tue Apr 13 15:55:18 2010 (r206558) @@ -152,13 +152,15 @@ cpu_topo(void) static void ia64_store_mca_state(void* arg) { - unsigned int ncpu = (unsigned int)(uintptr_t)arg; - struct thread* td; + struct pcpu *pc = arg; + struct thread *td = curthread; - /* ia64_mca_save_state() is CPU-sensitive, so bind ourself to our target CPU */ - td = curthread; + /* +* ia64_mca_save_state() is CPU-sensitive, so bind ourself to our +* target CPU. +*/ thread_lock(td); - sched_bind(td, ncpu); + sched_bind(td, pc-pc_cpuid); thread_unlock(td); /* @@ -362,8 +364,7 @@ cpu_mp_unleash(void *dummy) SLIST_FOREACH(pc, cpuhead, pc_allcpu) { cpus++; if (pc-pc_md.awake) { - kproc_create(ia64_store_mca_state, - (void*)((uintptr_t)pc-pc_cpuid), NULL, 0, 0, + kproc_create(ia64_store_mca_state, pc, NULL, 0, 0, mca %u, pc-pc_cpuid); smp_cpus++; } ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206563 - head/sys/dev/mii
Author: yongari Date: Tue Apr 13 20:07:52 2010 New Revision: 206563 URL: http://svn.freebsd.org/changeset/base/206563 Log: Add Agere ET1011 PHY which is found on Belkin F5D5055 USB controller. Unlike Agere ET1011C, Agere ET1011 does not seem to need special DSP programming to workaround silicon bug. Modified: head/sys/dev/mii/miidevs head/sys/dev/mii/truephy.c Modified: head/sys/dev/mii/miidevs == --- head/sys/dev/mii/miidevsTue Apr 13 19:58:32 2010(r206562) +++ head/sys/dev/mii/miidevsTue Apr 13 20:07:52 2010(r206563) @@ -102,6 +102,7 @@ oui xxREALTEK 0x000732 */ /* Agere Systems PHYs */ +model AGERE ET1011 0x0001 ET1011 10/100/1000baseT PHY model AGERE ET1011C0x0004 ET1011C 10/100/1000baseT PHY /* Altima Communications PHYs */ Modified: head/sys/dev/mii/truephy.c == --- head/sys/dev/mii/truephy.c Tue Apr 13 19:58:32 2010(r206562) +++ head/sys/dev/mii/truephy.c Tue Apr 13 20:07:52 2010(r206563) @@ -76,6 +76,7 @@ static device_method_t truephy_methods[] }; static const struct mii_phydesc truephys[] = { + MII_PHY_DESC(AGERE, ET1011), MII_PHY_DESC(AGERE, ET1011C), MII_PHY_END }; @@ -161,7 +162,10 @@ truephy_attach(device_t dev) mii-mii_instance++; - truephy_reset(sc); + if (MII_MODEL(ma-mii_id2) == MII_MODEL_AGERE_ET1011) + mii_phy_reset(sc); + else + truephy_reset(sc); sc-mii_capabilities = PHY_READ(sc, MII_BMSR) ma-mii_capmask; if (sc-mii_capabilities BMSR_EXTSTAT) { ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206568 - head/usr.bin/calendar/calendars
Author: edwin Date: Tue Apr 13 20:50:59 2010 New Revision: 206568 URL: http://svn.freebsd.org/changeset/base/206568 Log: Allerheilingen - Allerheiligen Submitted by: Ronald Klop ronald at realworks dot nl Modified: head/usr.bin/calendar/calendars/calendar.dutch Modified: head/usr.bin/calendar/calendars/calendar.dutch == --- head/usr.bin/calendar/calendars/calendar.dutch Tue Apr 13 20:47:11 2010(r206567) +++ head/usr.bin/calendar/calendars/calendar.dutch Tue Apr 13 20:50:59 2010(r206568) @@ -18,7 +18,7 @@ mei/01Dag van de Arbeid mei/04 Dodenherdenking mei/05 Bevrijdingsdag okt/04 Dierendag -nov/01 Allerheilingen +nov/01 Allerheiligen nov/02 Allerzielen nov/11 Sint Maarten nov/11 Elfde-van-de-elfde ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206570 - in head/sys/ia64: ia64 include
Author: marcel Date: Tue Apr 13 22:20:12 2010 New Revision: 206570 URL: http://svn.freebsd.org/changeset/base/206570 Log: Populate the sysctl tree with any MCA records we collected. The sequence number is used as the name of a sysctl node, under which we add the MCA records using the CPU id as the leaf name. Add the hw.mca.inject sysctl to provide a way to inject MC errors and trigger machine checks. PR: ia64/113102 Modified: head/sys/ia64/ia64/mca.c head/sys/ia64/include/mca.h Modified: head/sys/ia64/ia64/mca.c == --- head/sys/ia64/ia64/mca.cTue Apr 13 21:32:06 2010(r206569) +++ head/sys/ia64/ia64/mca.cTue Apr 13 22:20:12 2010(r206570) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Marcel Moolenaar + * Copyright (c) 2002-2010 Marcel Moolenaar * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,6 +37,7 @@ #include vm/vm.h #include vm/vm_kern.h #include machine/mca.h +#include machine/pal.h #include machine/sal.h #include machine/smp.h @@ -44,19 +45,19 @@ MALLOC_DEFINE(M_MCA, MCA, Machine Che struct mca_info { STAILQ_ENTRY(mca_info) mi_link; - charmi_name[32]; + u_long mi_seqnr; + u_int mi_cpuid; size_t mi_recsz; charmi_record[0]; }; -static STAILQ_HEAD(, mca_info) mca_records = -STAILQ_HEAD_INITIALIZER(mca_records); +STAILQ_HEAD(mca_info_list, mca_info); -int64_tmca_info_size[SAL_INFO_TYPES]; -vm_offset_tmca_info_block; -struct mtx mca_info_block_lock; +static int64_t mca_info_size[SAL_INFO_TYPES]; +static vm_offset_t mca_info_block; +static struct mtx mca_info_block_lock; -SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RW, 0, MCA container); +SYSCTL_NODE(_hw, OID_AUTO, mca, CTLFLAG_RW, NULL, MCA container); static int mca_count; /* Number of records stored. */ static int mca_first; /* First (lowest) record ID. */ @@ -69,6 +70,32 @@ SYSCTL_INT(_hw_mca, OID_AUTO, first, CTL SYSCTL_INT(_hw_mca, OID_AUTO, last, CTLFLAG_RD, mca_last, 0, Last record id); +static struct mtx mca_sysctl_lock; + +static int +mca_sysctl_inject(SYSCTL_HANDLER_ARGS) +{ + struct ia64_pal_result res; + u_int val; + int error; + + val = 0; + error = sysctl_wire_old_buffer(req, sizeof(u_int)); + if (!error) + error = sysctl_handle_int(oidp, val, 0, req); + + if (error != 0 || req-newptr == NULL) + return (error); + + /* For example: val=137 causes a fatal CPU error. */ + res = ia64_call_pal_stacked(PAL_MC_ERROR_INJECT, val, 0, 0); + printf(%s: %#lx, %#lx, %#lx, %#lx\n, __func__, res.pal_status, + res.pal_result[0], res.pal_result[1], res.pal_result[2]); + return (0); +} +SYSCTL_PROC(_hw_mca, OID_AUTO, inject, CTLTYPE_INT | CTLFLAG_RW, NULL, 0, +mca_sysctl_inject, I, set to trigger a MCA); + static int mca_sysctl_handler(SYSCTL_HANDLER_ARGS) { @@ -85,27 +112,8 @@ mca_sysctl_handler(SYSCTL_HANDLER_ARGS) return (error); } -void -ia64_mca_populate(void) -{ - struct mca_info *rec; - - mtx_lock_spin(mca_info_block_lock); - while (!STAILQ_EMPTY(mca_records)) { - rec = STAILQ_FIRST(mca_records); - STAILQ_REMOVE_HEAD(mca_records, mi_link); - mtx_unlock_spin(mca_info_block_lock); - (void)SYSCTL_ADD_PROC(NULL, SYSCTL_STATIC_CHILDREN(_hw_mca), - OID_AUTO, rec-mi_name, CTLTYPE_OPAQUE | CTLFLAG_RD, - rec-mi_record, rec-mi_recsz, mca_sysctl_handler, S,MCA, - Error record); - mtx_lock_spin(mca_info_block_lock); - } - mtx_unlock_spin(mca_info_block_lock); -} - -void -ia64_mca_save_state(int type) +static void +ia64_mca_collect_state(int type, struct mca_info_list *reclst) { struct ia64_sal_result result; struct mca_record_header *hdr; @@ -123,13 +131,13 @@ ia64_mca_save_state(int type) if (mca_info_block == 0) return; - mtx_lock_spin(mca_info_block_lock); while (1) { + mtx_lock_spin(mca_info_block_lock); result = ia64_sal_entry(SAL_GET_STATE_INFO, type, 0, mca_info_block, 0, 0, 0, 0); if (result.sal_status 0) { mtx_unlock_spin(mca_info_block_lock); - return; + break; } hdr = (struct mca_record_header *)mca_info_block; @@ -142,9 +150,10 @@ ia64_mca_save_state(int type) M_NOWAIT | M_ZERO); if (rec == NULL) /* XXX: Not sure what to do. */ - return; + break; - sprintf(rec-mi_name, %lld, (long long)seqnr); +
svn commit: r206571 - head/sbin/mca
Author: marcel Date: Tue Apr 13 22:27:39 2010 New Revision: 206571 URL: http://svn.freebsd.org/changeset/base/206571 Log: The sequence number is now a node under which the MCA records are hung by CPU id. When showing the MCA record, print the MIB as a comment. PR: ia64/113102 Modified: head/sbin/mca/mca.c Modified: head/sbin/mca/mca.c == --- head/sbin/mca/mca.c Tue Apr 13 22:20:12 2010(r206570) +++ head/sbin/mca/mca.c Tue Apr 13 22:27:39 2010(r206571) @@ -53,10 +53,12 @@ __FBSDID($FreeBSD$); #defineBCD(x) ((x 4) * 10 + (x 15)) +#defineHW_MCA_MAX_CPUID255 + static char hw_mca_count[] = hw.mca.count; static char hw_mca_first[] = hw.mca.first; static char hw_mca_last[] = hw.mca.last; -static char hw_mca_recid[] = hw.mca.%d; +static char hw_mca_recid[] = hw.mca.%lu.%u; static char default_dumpfile[] = /var/log/mca.log; @@ -372,10 +374,13 @@ show_section(struct mca_section_header * } static void -show(char *data) +show(char *data, const char *mib) { size_t reclen, seclen; + if (mib != NULL) + printf(!-- MIB: %s --\n, mib); + printf(record\n); reclen = show_header((void*)data) - sizeof(struct mca_record_header); data += sizeof(struct mca_record_header); @@ -402,7 +407,7 @@ showall(char *buf, size_t buflen) if (buflen reclen) return; - show(buf); + show(buf, NULL); buf += reclen; buflen -= reclen; @@ -442,7 +447,7 @@ main(int argc, char **argv) char *buf; size_t len; int ch, error, fd; - int count, first, last; + int count, first, last, cpuid; while ((ch = getopt(argc, argv, df:)) != -1) { switch(ch) { @@ -481,12 +486,19 @@ main(int argc, char **argv) if (error) err(1, hw_mca_last); + cpuid = 0; while (count first = last) { - sprintf(mib, hw_mca_recid, first); - len = 0; - error = sysctlbyname(mib, NULL, len, NULL, 0); - if (error == ENOENT) { + do { + sprintf(mib, hw_mca_recid, first, cpuid); + len = 0; + error = sysctlbyname(mib, NULL, len, NULL, 0); + if (error != ENOENT) + break; + cpuid++; + } while (cpuid = HW_MCA_MAX_CPUID); + if (error == ENOENT cpuid HW_MCA_MAX_CPUID) { first++; + cpuid = 0; continue; } if (error) @@ -503,11 +515,15 @@ main(int argc, char **argv) if (fl_dump) dump(buf); else - show(buf); + show(buf, mib); free(buf); - first++; count--; + if (cpuid == HW_MCA_MAX_CPUID) { + first++; + cpuid = 0; + } else + cpuid++; } } else { fd = open(file, O_RDONLY); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206582 - head/sys/mips/mips
Author: neel Date: Wed Apr 14 01:29:31 2010 New Revision: 206582 URL: http://svn.freebsd.org/changeset/base/206582 Log: Revert the vm_machdep.c part of r205072. This causes a panic in vm_thread_dispose() when it tries to add this kstack to the kstack cache. This happens only when 'td_kstack' is not (PAGE_SIZE * 2) bytes aligned and we have unmapped the page at that address in cpu_thread_alloc. Pointed out by: nwhitehorn@ Modified: head/sys/mips/mips/vm_machdep.c Modified: head/sys/mips/mips/vm_machdep.c == --- head/sys/mips/mips/vm_machdep.c Wed Apr 14 01:24:09 2010 (r206581) +++ head/sys/mips/mips/vm_machdep.c Wed Apr 14 01:29:31 2010 (r206582) @@ -214,16 +214,6 @@ cpu_thread_swapin(struct thread *td) { pt_entry_t *pte; int i; - vm_offset_t unused_kstack_page; - - /* -* Unmap the unused kstack page. -*/ - unused_kstack_page = td-td_kstack; - if (td-td_md.md_realstack == td-td_kstack) - unused_kstack_page += (KSTACK_PAGES - 1) * PAGE_SIZE; - - pmap_kremove(unused_kstack_page); /* * The kstack may be at a different physical address now. @@ -249,19 +239,13 @@ cpu_thread_swapout(struct thread *td) void cpu_thread_alloc(struct thread *td) { - vm_offset_t unused_kstack_page; pt_entry_t *pte; int i; - if (td-td_kstack (1 PAGE_SHIFT)) { + if (td-td_kstack (1 PAGE_SHIFT)) td-td_md.md_realstack = td-td_kstack + PAGE_SIZE; - unused_kstack_page = td-td_kstack; - } else { + else td-td_md.md_realstack = td-td_kstack; - unused_kstack_page = td-td_kstack + - (KSTACK_PAGES - 1) * PAGE_SIZE; - } - pmap_kremove(unused_kstack_page); td-td_pcb = (struct pcb *)(td-td_md.md_realstack + (td-td_kstack_pages - 1) * PAGE_SIZE) - 1; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
svn commit: r206584 - head/sys/mips/mips
Author: neel Date: Wed Apr 14 01:57:53 2010 New Revision: 206584 URL: http://svn.freebsd.org/changeset/base/206584 Log: Destroy the pmap 'pm_mutex' in pmap_release() otherwise we will panic subsequently in pmap_pinit() with the following signature: panic: lock pmap 0xc7878bc8 already initialized This bug was uncovered by the changes made to vm_map.c in r206140. Modified: head/sys/mips/mips/pmap.c Modified: head/sys/mips/mips/pmap.c == --- head/sys/mips/mips/pmap.c Wed Apr 14 01:43:25 2010(r206583) +++ head/sys/mips/mips/pmap.c Wed Apr 14 01:57:53 2010(r206584) @@ -1263,6 +1263,7 @@ pmap_release(pmap_t pmap) ptdpg-wire_count--; atomic_subtract_int(cnt.v_wire_count, 1); vm_page_free_zero(ptdpg); + PMAP_LOCK_DESTROY(pmap); } /* ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org