Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2004 21:18:06 -0700 (PDT)
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 50563 for review
Message-ID:  <200404070418.i374I6Aq077168@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=50563

Change 50563 by imp@imp_pacopaco on 2004/04/06 21:17:36

	IFC @50555

Affected files ...

.. //depot/projects/power/sys/amd64/amd64/db_interface.c#4 integrate
.. //depot/projects/power/sys/amd64/amd64/identcpu.c#5 integrate
.. //depot/projects/power/sys/amd64/include/cpufunc.h#6 integrate
.. //depot/projects/power/sys/conf/options#10 integrate
.. //depot/projects/power/sys/dev/bge/if_bge.c#7 integrate
.. //depot/projects/power/sys/dev/pccbb/pccbb.c#9 integrate
.. //depot/projects/power/sys/dev/usb/if_rue.c#6 integrate
.. //depot/projects/power/sys/kern/kern_condvar.c#4 integrate
.. //depot/projects/power/sys/kern/kern_mutex.c#5 integrate
.. //depot/projects/power/sys/kern/kern_timeout.c#5 integrate
.. //depot/projects/power/sys/kern/subr_turnstile.c#4 integrate
.. //depot/projects/power/sys/netipsec/key.c#4 integrate
.. //depot/projects/power/sys/sys/callout.h#2 integrate
.. //depot/projects/power/sys/sys/condvar.h#4 integrate
.. //depot/projects/power/sys/sys/turnstile.h#3 integrate
.. //depot/projects/power/sys/ufs/ffs/ffs_softdep.c#5 integrate
.. //depot/projects/power/sys/vm/device_pager.c#4 integrate
.. //depot/projects/power/sys/vm/pmap.h#5 integrate
.. //depot/projects/power/sys/vm/swap_pager.h#2 integrate
.. //depot/projects/power/sys/vm/vm.h#2 integrate
.. //depot/projects/power/sys/vm/vm_contig.c#6 integrate
.. //depot/projects/power/sys/vm/vm_extern.h#5 integrate
.. //depot/projects/power/sys/vm/vm_glue.c#5 integrate
.. //depot/projects/power/sys/vm/vm_init.c#3 integrate
.. //depot/projects/power/sys/vm/vm_kern.c#8 integrate
.. //depot/projects/power/sys/vm/vm_kern.h#2 integrate
.. //depot/projects/power/sys/vm/vm_map.c#6 integrate
.. //depot/projects/power/sys/vm/vm_map.h#5 integrate
.. //depot/projects/power/sys/vm/vm_meter.c#3 integrate
.. //depot/projects/power/sys/vm/vm_mmap.c#7 integrate
.. //depot/projects/power/sys/vm/vm_object.c#8 integrate
.. //depot/projects/power/sys/vm/vm_object.h#3 integrate
.. //depot/projects/power/sys/vm/vm_page.c#8 integrate
.. //depot/projects/power/sys/vm/vm_page.h#6 integrate
.. //depot/projects/power/sys/vm/vm_pageout.h#3 integrate
.. //depot/projects/power/sys/vm/vm_pager.c#4 integrate
.. //depot/projects/power/sys/vm/vm_pager.h#4 integrate
.. //depot/projects/power/sys/vm/vm_param.h#2 integrate
.. //depot/projects/power/sys/vm/vm_unix.c#3 integrate
.. //depot/projects/power/sys/vm/vnode_pager.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/cat/cat.1#3 integrate
.. //depot/user/imp/freebsd-imp/bin/cat/cat.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/chflags/chflags.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/chflags/chflags.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/chmod/chmod.1#6 integrate
.. //depot/user/imp/freebsd-imp/bin/chmod/chmod.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/cp/cp.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/cp/cp.c#7 integrate
.. //depot/user/imp/freebsd-imp/bin/cp/extern.h#4 integrate
.. //depot/user/imp/freebsd-imp/bin/cp/utils.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.1#3 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.2#2 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.3#2 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.4#2 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.a#2 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/csh.g#3 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/USD.doc/tabs#2 integrate
.. //depot/user/imp/freebsd-imp/bin/csh/host.defs#2 integrate
.. //depot/user/imp/freebsd-imp/bin/date/date.1#6 integrate
.. //depot/user/imp/freebsd-imp/bin/date/date.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/date/extern.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/date/netdate.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/args.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/conv.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/conv_tab.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/dd.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/dd.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/dd.h#5 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/extern.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/misc.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/dd/position.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/df/df.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/df/df.c#14 integrate
.. //depot/user/imp/freebsd-imp/bin/domainname/domainname.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/domainname/domainname.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/echo/echo.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/echo/echo.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/ed/cbc.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/hostname/hostname.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/hostname/hostname.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/kill/kill.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/kill/kill.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/ln/ln.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/ln/ln.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/ln/symlink.7#2 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/cmp.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/extern.h#5 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/ls.1#12 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/ls.c#11 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/ls.h#4 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/print.c#14 integrate
.. //depot/user/imp/freebsd-imp/bin/ls/util.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/mkdir/mkdir.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/mkdir/mkdir.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/mv/mv.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/mv/mv.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/ar_io.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/ar_subs.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/buf_subs.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/cache.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/cache.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/cpio.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/cpio.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/extern.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/file_subs.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/ftree.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/ftree.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/gen_subs.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/options.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/options.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/pat_rep.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/pat_rep.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/pax.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/pax.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/pax.h#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/sel_subs.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/sel_subs.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/tables.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/tables.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/tar.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/tar.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/pax/tty_subs.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/extern.h#7 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/fmt.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/keyword.c#10 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/nlist.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/print.c#11 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/ps.1#16 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/ps.c#12 integrate
.. //depot/user/imp/freebsd-imp/bin/ps/ps.h#5 integrate
.. //depot/user/imp/freebsd-imp/bin/pwd/pwd.1#4 integrate
.. //depot/user/imp/freebsd-imp/bin/pwd/pwd.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/rcp/extern.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/rcp/rcp.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/rcp/util.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/realpath/realpath.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/realpath/realpath.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/rm/rm.1#3 integrate
.. //depot/user/imp/freebsd-imp/bin/rm/rm.c#6 integrate
.. //depot/user/imp/freebsd-imp/bin/rmdir/rmdir.1#3 integrate
.. //depot/user/imp/freebsd-imp/bin/rmdir/rmdir.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/alias.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/alias.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/arith.h#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/arith.y#6 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/arith_lex.l#6 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/bltin/bltin.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/bltin/echo.1#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/bltin/echo.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/builtins.def#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/cd.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/cd.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/error.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/error.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/eval.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/eval.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/exec.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/exec.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/expand.c#9 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/expand.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/cmv#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/dirs#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/kill#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/login#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/newgrp#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/popd#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/pushd#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/funcs/suspend#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/histedit.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/init.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/input.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/input.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/jobs.c#10 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/jobs.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mail.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mail.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/main.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/main.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/memalloc.c#7 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/memalloc.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/miscbltin.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mkbuiltins#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mkinit.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mknodes.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mksyntax.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mktokens#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/myhistedit.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mystring.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/mystring.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/nodes.c.pat#7 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/nodetypes#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/options.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/options.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/output.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/output.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/parser.c#7 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/parser.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/redir.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/redir.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/sh.1#9 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/shell.h#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/show.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/show.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/trap.c#4 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/trap.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/var.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/sh/var.h#3 integrate
.. //depot/user/imp/freebsd-imp/bin/sleep/sleep.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sleep/sleep.c#5 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/cchar.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/extern.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/gfmt.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/key.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/modes.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/print.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/stty.1#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/stty.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/stty.h#2 integrate
.. //depot/user/imp/freebsd-imp/bin/stty/util.c#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sync/sync.8#2 integrate
.. //depot/user/imp/freebsd-imp/bin/sync/sync.c#3 integrate
.. //depot/user/imp/freebsd-imp/bin/test/test.1#2 integrate
.. //depot/user/imp/freebsd-imp/etc/rc.d/ramdisk#3 integrate
.. //depot/user/imp/freebsd-imp/etc/rc.d/ramdisk-own#2 integrate
.. //depot/user/imp/freebsd-imp/lib/libarchive/archive_entry.c#5 integrate
.. //depot/user/imp/freebsd-imp/lib/libarchive/archive_entry.h#4 integrate
.. //depot/user/imp/freebsd-imp/lib/libarchive/archive_private.h#5 integrate
.. //depot/user/imp/freebsd-imp/lib/libarchive/archive_read_extract.c#4 integrate
.. //depot/user/imp/freebsd-imp/lib/libarchive/archive_write_set_format_pax.c#5 integrate
.. //depot/user/imp/freebsd-imp/share/man/man9/suser.9#3 integrate
.. //depot/user/imp/freebsd-imp/share/man/man9/sysctl_ctx_init.9#2 integrate
.. //depot/user/imp/freebsd-imp/share/man/man9/timeout.9#3 integrate
.. //depot/user/imp/freebsd-imp/sys/amd64/amd64/db_interface.c#6 integrate
.. //depot/user/imp/freebsd-imp/sys/amd64/amd64/identcpu.c#9 integrate
.. //depot/user/imp/freebsd-imp/sys/amd64/include/cpufunc.h#11 integrate
.. //depot/user/imp/freebsd-imp/sys/dev/pccbb/pccbb.c#36 integrate
.. //depot/user/imp/freebsd-imp/sys/kern/kern_timeout.c#12 integrate
.. //depot/user/imp/freebsd-imp/sys/netipsec/key.c#11 integrate
.. //depot/user/imp/freebsd-imp/sys/sys/callout.h#2 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/device_pager.c#12 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/pmap.h#19 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/swap_pager.h#10 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm.h#3 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_contig.c#21 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_extern.h#12 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_glue.c#30 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_init.c#8 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_kern.c#23 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_kern.h#4 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_map.c#47 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_map.h#15 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_meter.c#11 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_mmap.c#28 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_object.c#64 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_object.h#21 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_page.c#49 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_page.h#16 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_pageout.h#9 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_pager.c#11 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_pager.h#11 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_param.h#4 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vm_unix.c#5 integrate
.. //depot/user/imp/freebsd-imp/sys/vm/vnode_pager.h#2 integrate
.. //depot/user/imp/freebsd-imp/usr.bin/tar/write.c#2 integrate
.. //depot/user/imp/newcard/amd64/amd64/db_interface.c#6 integrate
.. //depot/user/imp/newcard/amd64/amd64/identcpu.c#9 integrate
.. //depot/user/imp/newcard/amd64/include/cpufunc.h#11 integrate
.. //depot/user/imp/newcard/dev/pccbb/pccbb.c#93 integrate
.. //depot/user/imp/newcard/kern/kern_timeout.c#14 integrate
.. //depot/user/imp/newcard/netipsec/key.c#11 integrate
.. //depot/user/imp/newcard/sys/callout.h#3 integrate
.. //depot/user/imp/newcard/vm/device_pager.c#13 integrate
.. //depot/user/imp/newcard/vm/pmap.h#21 integrate
.. //depot/user/imp/newcard/vm/swap_pager.h#12 integrate
.. //depot/user/imp/newcard/vm/vm.h#4 integrate
.. //depot/user/imp/newcard/vm/vm_contig.c#25 integrate
.. //depot/user/imp/newcard/vm/vm_extern.h#15 integrate
.. //depot/user/imp/newcard/vm/vm_glue.c#36 integrate
.. //depot/user/imp/newcard/vm/vm_init.c#10 integrate
.. //depot/user/imp/newcard/vm/vm_kern.c#27 integrate
.. //depot/user/imp/newcard/vm/vm_kern.h#5 integrate
.. //depot/user/imp/newcard/vm/vm_map.c#52 integrate
.. //depot/user/imp/newcard/vm/vm_map.h#18 integrate
.. //depot/user/imp/newcard/vm/vm_meter.c#13 integrate
.. //depot/user/imp/newcard/vm/vm_mmap.c#30 integrate
.. //depot/user/imp/newcard/vm/vm_object.c#72 integrate
.. //depot/user/imp/newcard/vm/vm_object.h#24 integrate
.. //depot/user/imp/newcard/vm/vm_page.c#60 integrate
.. //depot/user/imp/newcard/vm/vm_page.h#23 integrate
.. //depot/user/imp/newcard/vm/vm_pageout.h#10 integrate
.. //depot/user/imp/newcard/vm/vm_pager.c#12 integrate
.. //depot/user/imp/newcard/vm/vm_pager.h#12 integrate
.. //depot/user/imp/newcard/vm/vm_param.h#4 integrate
.. //depot/user/imp/newcard/vm/vm_unix.c#7 integrate
.. //depot/user/imp/newcard/vm/vnode_pager.h#3 integrate
.. //depot/user/imp/pc98/amd64/amd64/db_interface.c#6 integrate
.. //depot/user/imp/pc98/amd64/amd64/identcpu.c#9 integrate
.. //depot/user/imp/pc98/amd64/include/cpufunc.h#11 integrate
.. //depot/user/imp/pc98/dev/pccbb/pccbb.c#27 integrate
.. //depot/user/imp/pc98/kern/kern_timeout.c#11 integrate
.. //depot/user/imp/pc98/netipsec/key.c#7 integrate
.. //depot/user/imp/pc98/sys/callout.h#2 integrate
.. //depot/user/imp/pc98/vm/device_pager.c#8 integrate
.. //depot/user/imp/pc98/vm/pmap.h#11 integrate
.. //depot/user/imp/pc98/vm/swap_pager.h#7 integrate
.. //depot/user/imp/pc98/vm/vm.h#2 integrate
.. //depot/user/imp/pc98/vm/vm_contig.c#17 integrate
.. //depot/user/imp/pc98/vm/vm_extern.h#10 integrate
.. //depot/user/imp/pc98/vm/vm_glue.c#22 integrate
.. //depot/user/imp/pc98/vm/vm_init.c#7 integrate
.. //depot/user/imp/pc98/vm/vm_kern.c#17 integrate
.. //depot/user/imp/pc98/vm/vm_kern.h#3 integrate
.. //depot/user/imp/pc98/vm/vm_map.c#29 integrate
.. //depot/user/imp/pc98/vm/vm_map.h#11 integrate
.. //depot/user/imp/pc98/vm/vm_meter.c#4 integrate
.. //depot/user/imp/pc98/vm/vm_mmap.c#23 integrate
.. //depot/user/imp/pc98/vm/vm_object.c#39 integrate
.. //depot/user/imp/pc98/vm/vm_object.h#11 integrate
.. //depot/user/imp/pc98/vm/vm_page.c#26 integrate
.. //depot/user/imp/pc98/vm/vm_page.h#10 integrate
.. //depot/user/imp/pc98/vm/vm_pageout.h#6 integrate
.. //depot/user/imp/pc98/vm/vm_pager.c#9 integrate
.. //depot/user/imp/pc98/vm/vm_pager.h#10 integrate
.. //depot/user/imp/pc98/vm/vm_param.h#2 integrate
.. //depot/user/imp/pc98/vm/vm_unix.c#5 integrate
.. //depot/user/imp/pc98/vm/vnode_pager.h#2 integrate

Differences ...

==== //depot/projects/power/sys/amd64/amd64/db_interface.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.77 2004/02/05 17:35:28 kan Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.78 2004/04/07 00:41:05 peter Exp $");
 
 /*
  * Interface to new debugger.
@@ -57,18 +57,6 @@
 
 static jmp_buf	db_global_jmpbuf;
 
-static __inline u_short
-rss(void)
-{
-	u_short ss;
-#ifdef __GNUC__
-	__asm __volatile("mov %%ss,%0" : "=r" (ss));
-#else
-	ss = 0; /* XXXX Fix for other compilers. */
-#endif
-	return ss;
-}
-
 /*
  *  kdb_trap - field a TRACE or BPT trap
  */

==== //depot/projects/power/sys/amd64/amd64/identcpu.c#5 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.130 2004/03/25 03:38:31 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.131 2004/04/07 00:44:15 peter Exp $");
 
 #include "opt_cpu.h"
 
@@ -338,6 +338,21 @@
 }
 
 static void
+print_AMD_l2_assoc(int i)
+{
+	switch (i & 0x0f) {
+	case 0: printf(", disabled/not present\n"); break;
+	case 1: printf(", direct mapped\n"); break;
+	case 2: printf(", 2-way associative\n"); break;
+	case 4: printf(", 4-way associative\n"); break;
+	case 6: printf(", 8-way associative\n"); break;
+	case 8: printf(", 16-way associative\n"); break;
+	case 15: printf(", fully associative\n"); break;
+	default: printf(", reserved configuration\n"); break;
+	}
+}
+
+static void
 print_AMD_info(void)
 {
 
@@ -345,24 +360,59 @@
 		u_int regs[4];
 
 		do_cpuid(0x80000005, regs);
-		printf("Data TLB: %d entries", (regs[1] >> 16) & 0xff);
+		printf("L1 2MB data TLB: %d entries", (regs[0] >> 16) & 0xff);
+		print_AMD_assoc(regs[0] >> 24);
+
+		printf("L1 2MB instruction TLB: %d entries", regs[0] & 0xff);
+		print_AMD_assoc((regs[0] >> 8) & 0xff);
+
+		printf("L1 4KB data TLB: %d entries", (regs[1] >> 16) & 0xff);
 		print_AMD_assoc(regs[1] >> 24);
-		printf("Instruction TLB: %d entries", regs[1] & 0xff);
+
+		printf("L1 4KB instruction TLB: %d entries", regs[1] & 0xff);
 		print_AMD_assoc((regs[1] >> 8) & 0xff);
+
 		printf("L1 data cache: %d kbytes", regs[2] >> 24);
 		printf(", %d bytes/line", regs[2] & 0xff);
 		printf(", %d lines/tag", (regs[2] >> 8) & 0xff);
 		print_AMD_assoc((regs[2] >> 16) & 0xff);
+
 		printf("L1 instruction cache: %d kbytes", regs[3] >> 24);
 		printf(", %d bytes/line", regs[3] & 0xff);
 		printf(", %d lines/tag", (regs[3] >> 8) & 0xff);
 		print_AMD_assoc((regs[3] >> 16) & 0xff);
-		if (cpu_exthigh >= 0x80000006) {	/* K6-III only */
+
+		if (cpu_exthigh >= 0x80000006) {
 			do_cpuid(0x80000006, regs);
-			printf("L2 internal cache: %d kbytes", regs[2] >> 16);
+			if ((regs[0] >> 16) != 0) {
+				printf("L2 2MB data TLB: %d entries",
+				    (regs[0] >> 16) & 0xfff);
+				print_AMD_l2_assoc(regs[0] >> 28);
+				printf("L2 2MB instruction TLB: %d entries",
+				    regs[0] & 0xfff);
+				print_AMD_l2_assoc((regs[0] >> 28) & 0xf);
+			} else {
+				printf("L2 2MB unified TLB: %d entries",
+				    regs[0] & 0xfff);
+				print_AMD_l2_assoc((regs[0] >> 28) & 0xf);
+			}
+			if ((regs[1] >> 16) != 0) {
+				printf("L2 4KB data TLB: %d entries",
+				    (regs[1] >> 16) & 0xfff);
+				print_AMD_l2_assoc(regs[1] >> 28);
+
+				printf("L2 4KB instruction TLB: %d entries",
+				    (regs[1] >> 16) & 0xfff);
+				print_AMD_l2_assoc((regs[1] >> 28) & 0xf);
+			} else {
+				printf("L2 4KB unified TLB: %d entries",
+				    (regs[1] >> 16) & 0xfff);
+				print_AMD_l2_assoc((regs[1] >> 28) & 0xf);
+			}
+			printf("L2 unified cache: %d kbytes", regs[2] >> 16);
 			printf(", %d bytes/line", regs[2] & 0xff);
 			printf(", %d lines/tag", (regs[2] >> 8) & 0x0f);
-			print_AMD_assoc((regs[2] >> 12) & 0x0f);	
+			print_AMD_l2_assoc((regs[2] >> 12) & 0x0f);	
 		}
 	}
 }

==== //depot/projects/power/sys/amd64/include/cpufunc.h#6 (text+ko) ====

@@ -27,7 +27,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.143 2004/04/05 23:55:14 imp Exp $
+ * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.144 2004/04/07 00:41:05 peter Exp $
  */
 
 /*
@@ -498,6 +498,14 @@
 	return (sel);
 }
 
+static __inline u_int
+rss(void)
+{
+	u_int sel;
+	__asm __volatile("movl %%ss,%0" : "=rm" (sel));
+	return (sel);
+}
+
 static __inline void
 load_ds(u_int sel)
 {

==== //depot/projects/power/sys/conf/options#10 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.438 2004/03/31 18:46:13 vkashyap Exp $
+# $FreeBSD: src/sys/conf/options,v 1.439 2004/04/06 19:12:24 jhb Exp $
 #
 #        On the handling of kernel options
 #
@@ -97,6 +97,7 @@
 MAC_TEST	opt_dontuse.h
 MD_ROOT		opt_md.h
 MD_ROOT_SIZE	opt_md.h
+MUTEX_WAKE_ALL
 NSWBUF_MIN	opt_swap.h
 PANIC_REBOOT_WAIT_TIME	opt_panic.h
 PPS_SYNC	opt_ntp.h

==== //depot/projects/power/sys/dev/bge/if_bge.c#7 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.65 2004/03/17 17:50:28 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.66 2004/04/06 18:28:15 ps Exp $");
 
 /*
  * Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
@@ -2553,6 +2553,10 @@
 	pci_write_config(dev, BGE_PCI_CMD, command, 4);
 	bge_writereg_ind(sc, BGE_MISC_CFG, (65 << 1));
 
+	/* Enable memory arbiter. */
+	if (sc->bge_asicrev != BGE_ASICREV_BCM5705)
+		CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
+
 	/*
 	 * Prevent PXE restart: write a magic number to the
 	 * general communications memory at 0xB50.
@@ -2590,10 +2594,6 @@
 		DELAY(10);
 	}
 
-	/* Enable memory arbiter. */
-	if (sc->bge_asicrev != BGE_ASICREV_BCM5705)
-		CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE);
-
 	/* Fix up byte swapping */
 	CSR_WRITE_4(sc, BGE_MODE_CTL, BGE_MODECTL_BYTESWAP_NONFRAME|
 	    BGE_MODECTL_BYTESWAP_DATA);

==== //depot/projects/power/sys/dev/pccbb/pccbb.c#9 (text+ko) ====

@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.103 2004/03/17 17:50:38 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.106 2004/04/06 22:50:50 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1322,7 +1322,9 @@
 	struct cbb_softc *sc = device_get_softc(brdev);
 	int voltage;
 
+	/* Don't enable OE */
 	exca_clrb(&sc->exca, EXCA_PWRCTL, EXCA_PWRCTL_OE);
+
 	/* Prefer lowest voltage supported */
 	voltage = cbb_detect_voltage(brdev);
 	cbb_power(brdev, CARD_OFF);
@@ -1584,6 +1586,7 @@
 	struct cbb_softc *sc = device_get_softc(brdev);
 	int tmp;
 	struct resource *res;
+	u_long align;
 
 	switch (type) {
 	case SYS_RES_IRQ:
@@ -1608,10 +1611,13 @@
 			start = cbb_start_mem;
 		if (end < start)
 			end = start;
-		/* This is now suspect: */
-		if (RF_ALIGNMENT(flags) < CBB_MEMALIGN_BITS)
-			flags = (flags & ~RF_ALIGNMENT_MASK) |
-			    rman_make_alignment_flags(CBB_MEMALIGN);
+		if (count < CBB_MEMALIGN)
+			align = CBB_MEMALIGN;
+		else
+			align = count;
+		if (align > (1 << RF_ALIGNMENT(flags)))
+			flags = (flags & ~RF_ALIGNMENT_MASK) | 
+			    rman_make_alignment_flags(align);
 		break;
 	}
 

==== //depot/projects/power/sys/dev/usb/if_rue.c#6 (text+ko) ====

@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/if_rue.c,v 1.9 2004/03/14 07:12:23 mdodd Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/if_rue.c,v 1.10 2004/04/06 19:32:00 iedowse Exp $");
 
 /*
  * RealTek RTL8150 USB to fast ethernet controller driver.
@@ -776,14 +776,14 @@
 	struct mbuf	*m_new = NULL;
 
 	if (m == NULL) {
-		MGETHDR(m_new, M_NOWAIT, MT_DATA);
+		MGETHDR(m_new, M_DONTWAIT, MT_DATA);
 		if (m_new == NULL) {
 			printf("rue%d: no memory for rx list "
 				"-- packet dropped!\n", sc->rue_unit);
 			return (ENOBUFS);
 		}
 
-		MCLGET(m_new, M_NOWAIT);
+		MCLGET(m_new, M_DONTWAIT);
 		if (!(m_new->m_flags & M_EXT)) {
 			printf("rue%d: no memory for rx list "
 				"-- packet dropped!\n", sc->rue_unit);

==== //depot/projects/power/sys/kern/kern_condvar.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_condvar.c,v 1.47 2004/03/12 19:06:18 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_condvar.c,v 1.48 2004/04/06 19:17:46 jhb Exp $");
 
 #include "opt_ktrace.h"
 
@@ -65,6 +65,7 @@
 {
 
 	cvp->cv_description = desc;
+	cvp->cv_waiters = 0;
 }
 
 /*
@@ -119,6 +120,7 @@
 
 	sq = sleepq_lookup(cvp);
 
+	cvp->cv_waiters++;
 	DROP_GIANT();
 	mtx_unlock(mp);
 
@@ -175,6 +177,7 @@
 
 	/* XXX: Missing the threading checks from msleep! */
 
+	cvp->cv_waiters++;
 	DROP_GIANT();
 	mtx_unlock(mp);
 
@@ -241,6 +244,7 @@
 
 	sq = sleepq_lookup(cvp);
 
+	cvp->cv_waiters++;
 	DROP_GIANT();
 	mtx_unlock(mp);
 
@@ -299,6 +303,7 @@
 
 	sq = sleepq_lookup(cvp);
 
+	cvp->cv_waiters++;
 	DROP_GIANT();
 	mtx_unlock(mp);
 
@@ -341,7 +346,10 @@
 cv_signal(struct cv *cvp)
 {
 
-	sleepq_signal(cvp, SLEEPQ_CONDVAR, -1);
+	if (cvp->cv_waiters > 0) {
+		cvp->cv_waiters--;
+		sleepq_signal(cvp, SLEEPQ_CONDVAR, -1);
+	}
 }
 
 /*
@@ -352,5 +360,8 @@
 cv_broadcastpri(struct cv *cvp, int pri)
 {
 
-	sleepq_broadcast(cvp, SLEEPQ_CONDVAR, pri);
+	if (cvp->cv_waiters > 0) {
+		cvp->cv_waiters = 0;
+		sleepq_broadcast(cvp, SLEEPQ_CONDVAR, pri);
+	}
 }

==== //depot/projects/power/sys/kern/kern_mutex.c#5 (text+ko) ====

@@ -34,10 +34,11 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_mutex.c,v 1.137 2004/01/28 22:11:53 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_mutex.c,v 1.138 2004/04/06 19:12:24 jhb Exp $");
 
 #include "opt_adaptive_mutexes.h"
 #include "opt_ddb.h"
+#include "opt_mutex_wake_all.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -469,6 +470,9 @@
 			continue;
 		}
 
+#ifdef MUTEX_WAKE_ALL
+		MPASS(v != MTX_CONTESTED);
+#else
 		/*
 		 * The mutex was marked contested on release. This means that
 		 * there are other threads blocked on it.  Grab ownership of
@@ -481,6 +485,7 @@
 			turnstile_claim(ts);
 			break;
 		}
+#endif
 
 		/*
 		 * If the mutex isn't already contested and a failure occurs
@@ -643,6 +648,10 @@
 #endif
 	/* XXX */
 	td1 = turnstile_head(ts);
+#ifdef MUTEX_WAKE_ALL
+	turnstile_broadcast(ts);
+	_release_lock_quick(m);
+#else
 	if (turnstile_signal(ts)) {
 		_release_lock_quick(m);
 		if (LOCK_LOG_TEST(&m->mtx_object, opts))
@@ -653,6 +662,7 @@
 			CTR1(KTR_LOCK, "_mtx_unlock_sleep: %p still contested",
 			    m);
 	}
+#endif
 	turnstile_unpend(ts);
 
 	/*

==== //depot/projects/power/sys/kern/kern_timeout.c#5 (text+ko) ====

@@ -35,11 +35,12 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.85 2004/04/05 21:03:35 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.86 2004/04/06 23:08:48 cperciva Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/callout.h>
+#include <sys/condvar.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
@@ -71,6 +72,32 @@
 #endif
 
 static struct callout *nextsoftcheck;	/* Next callout to be checked. */
+/*
+ * Locked by callout_lock:
+ *   curr_callout    - If a callout is in progress, it is curr_callout.
+ *                     If curr_callout is non-NULL, threads waiting on
+ *                     callout_wait will be woken up as soon as the 
+ *                     relevant callout completes.
+ *   wakeup_needed   - If a thread is waiting on callout_wait, then
+ *                     wakeup_needed is nonzero.  Increased only when
+ *                     cutt_callout is non-NULL.
+ *   wakeup_ctr      - Incremented every time a thread wants to wait
+ *                     for a callout to complete.  Modified only when
+ *                     curr_callout is non-NULL.
+ */
+static struct callout *curr_callout;
+static int wakeup_needed;
+static int wakeup_ctr;
+/*
+ * Locked by callout_wait_lock:
+ *   callout_wait    - If wakeup_needed is set, callout_wait will be
+ *                     triggered after the current callout finishes.
+ *   wakeup_done_ctr - Set to the current value of wakeup_ctr after
+ *                     callout_wait is triggered.
+ */
+static struct mtx callout_wait_lock;
+static struct cv callout_wait;
+static int wakeup_done_ctr;
 
 /*
  * kern_timeout_callwheel_alloc() - kernel low level callwheel initialization 
@@ -122,6 +149,12 @@
 #ifdef DIAGNOSTIC
 	mtx_init(&dont_sleep_in_callout, "dont_sleep_in_callout", NULL, MTX_DEF);
 #endif
+	mtx_init(&callout_wait_lock, "callout_wait_lock", NULL, MTX_DEF);
+	cv_init(&callout_wait, "callout_wait");
+	curr_callout = NULL;
+	wakeup_needed = 0;
+	wakeup_ctr = 0;
+	wakeup_done_ctr = 0;
 }
 
 /*
@@ -150,6 +183,7 @@
 	int depth;
 	int mpcalls;
 	int gcalls;
+	int wakeup_cookie;
 #ifdef DIAGNOSTIC
 	struct bintime bt1, bt2;
 	struct timespec ts2;
@@ -208,6 +242,7 @@
 					c->c_flags =
 					    (c->c_flags & ~CALLOUT_PENDING);
 				}
+				curr_callout = c;
 				mtx_unlock_spin(&callout_lock);
 				if (!(c_flags & CALLOUT_MPSAFE)) {
 					mtx_lock(&Giant);
@@ -241,6 +276,21 @@
 				if (!(c_flags & CALLOUT_MPSAFE))
 					mtx_unlock(&Giant);
 				mtx_lock_spin(&callout_lock);
+				curr_callout = NULL;
+				if (wakeup_needed) {
+					/*
+					 * There might be someone waiting
+					 * for the callout to complete.
+					 */
+					wakeup_cookie = wakeup_ctr;
+					mtx_unlock_spin(&callout_lock);
+					mtx_lock(&callout_wait_lock);
+					cv_broadcast(&callout_wait);
+					wakeup_done_ctr = wakeup_cookie;
+					mtx_unlock(&callout_wait_lock);
+					mtx_lock_spin(&callout_lock);
+					wakeup_needed = 0;
+				};
 				steps = 0;
 				c = nextsoftcheck;
 			}
@@ -344,6 +394,17 @@
 {
 
 	mtx_lock_spin(&callout_lock);
+
+	if (c == curr_callout && wakeup_needed) {
+		/*
+		 * We're being asked to reschedule a callout which is
+		 * currently in progress, and someone has called
+		 * callout_drain to kill that callout.  Don't reschedule.
+		 */
+		mtx_unlock_spin(&callout_lock);
+		return;
+	};
+
 	if (c->c_flags & CALLOUT_PENDING)
 		callout_stop(c);
 
@@ -364,18 +425,46 @@
 	mtx_unlock_spin(&callout_lock);
 }
 
+/* For binary compatibility */
+#undef callout_stop
 int
 callout_stop(c)
 	struct	callout *c;
 {
 
+	return(_callout_stop_safe(c, 0));
+}
+
+int
+_callout_stop_safe(c, safe)
+	struct	callout *c;
+	int	safe;
+{
+	int wakeup_cookie;
+
 	mtx_lock_spin(&callout_lock);
 	/*
 	 * Don't attempt to delete a callout that's not on the queue.
 	 */
 	if (!(c->c_flags & CALLOUT_PENDING)) {
 		c->c_flags &= ~CALLOUT_ACTIVE;
-		mtx_unlock_spin(&callout_lock);
+		if (c == curr_callout && safe) {
+			/* We need to wait until the callout is finished */
+			wakeup_needed = 1;
+			wakeup_cookie = wakeup_ctr++;
+			mtx_unlock_spin(&callout_lock);
+			mtx_lock(&callout_wait_lock);
+			/*
+			 * Check to make sure that softclock() didn't
+			 * do the wakeup in between our dropping
+			 * callout_lock and picking up callout_wait_lock
+			 */
+			if (wakeup_cookie - wakeup_done_ctr > 0)
+				cv_wait(&callout_wait, &callout_wait_lock);
+
+			mtx_unlock(&callout_wait_lock);
+		} else
+			mtx_unlock_spin(&callout_lock);
 		return (0);
 	}
 	c->c_flags &= ~(CALLOUT_ACTIVE | CALLOUT_PENDING);

==== //depot/projects/power/sys/kern/subr_turnstile.c#4 (text+ko) ====

@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/subr_turnstile.c,v 1.141 2004/03/12 19:05:46 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/subr_turnstile.c,v 1.142 2004/04/06 19:07:21 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -234,7 +234,7 @@
 		 * finish waking this thread up.  We can detect this case
 		 * by checking to see if this thread has been given a
 		 * turnstile by either turnstile_signal() or
-		 * turnstile_wakeup().  In this case, treat the thread as
+		 * turnstile_broadcast().  In this case, treat the thread as
 		 * if it was already running.
 		 */
 		if (td->td_turnstile != NULL) {
@@ -567,7 +567,7 @@
  * the turnstile chain locked.
  */
 void
-turnstile_wakeup(struct turnstile *ts)
+turnstile_broadcast(struct turnstile *ts)
 {
 	struct turnstile_chain *tc;
 	struct turnstile *ts1;

==== //depot/projects/power/sys/netipsec/key.c#4 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netipsec/key.c,v 1.11 2004/02/16 17:09:53 guido Exp $	*/
+/*	$FreeBSD: src/sys/netipsec/key.c,v 1.12 2004/04/07 00:19:02 pjd Exp $	*/
 /*	$KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $	*/
 
 /*
@@ -1316,7 +1316,7 @@
 	struct secpolicy *newsp;
 
 	IPSEC_ASSERT(xpl0 != NULL, ("null xpl0"));
-	IPSEC_ASSERT(len >= sizeof(*xpl0), ("policy too short: %u", len));
+	IPSEC_ASSERT(len >= sizeof(*xpl0), ("policy too short: %zu", len));
 
 	if (len != PFKEY_EXTLEN(xpl0)) {
 		ipseclog((LOG_DEBUG, "%s: Invalid msg length.\n", __func__));

==== //depot/projects/power/sys/sys/callout.h#2 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)callout.h	8.2 (Berkeley) 1/21/94
- * $FreeBSD: src/sys/sys/callout.h,v 1.24 2002/03/19 20:18:36 alfred Exp $
+ * $FreeBSD: src/sys/sys/callout.h,v 1.25 2004/04/06 23:08:48 cperciva Exp $
  */
 
 #ifndef _SYS_CALLOUT_H_
@@ -81,6 +81,9 @@
 #define	callout_pending(c)	((c)->c_flags & CALLOUT_PENDING)
 void	callout_reset(struct callout *, int, void (*)(void *), void *);
 int	callout_stop(struct callout *);
+#define	callout_stop(c)		_callout_stop_safe(c, 0)
+#define	callout_drain(c)	_callout_stop_safe(c, 1)
+int	_callout_stop_safe(struct callout *, int);
 
 #endif
 

==== //depot/projects/power/sys/sys/condvar.h#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/sys/condvar.h,v 1.10 2004/02/27 18:52:44 jhb Exp $
+ * $FreeBSD: src/sys/sys/condvar.h,v 1.11 2004/04/06 19:17:46 jhb Exp $
  */
 
 #ifndef	_SYS_CONDVAR_H_
@@ -38,10 +38,14 @@
 TAILQ_HEAD(cv_waitq, thread);
 
 /*
- * Condition variable.

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404070418.i374I6Aq077168>