Date: Wed, 12 Jul 2006 08:46:19 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 101341 for review Message-ID: <200607120846.k6C8kJoE098683@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=101341 Change 101341 by jb@jb_freebsd2 on 2006/07/12 08:46:04 IFC Affected files ... .. //depot/projects/dtrace/src/MAINTAINERS#9 integrate .. //depot/projects/dtrace/src/UPDATING#4 integrate .. //depot/projects/dtrace/src/bin/dd/Makefile#3 integrate .. //depot/projects/dtrace/src/contrib/wpa_supplicant/Makefile#3 edit .. //depot/projects/dtrace/src/etc/rc.d/dhclient#3 integrate .. //depot/projects/dtrace/src/games/fortune/datfiles/Makefile#3 integrate .. //depot/projects/dtrace/src/games/fortune/datfiles/fortunes#8 integrate .. //depot/projects/dtrace/src/lib/libthr/sys/thr_error.c#4 integrate .. //depot/projects/dtrace/src/sbin/ifconfig/ifclone.c#3 integrate .. //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.c#3 integrate .. //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.h#3 integrate .. //depot/projects/dtrace/src/sbin/ifconfig/ifvlan.c#3 integrate .. //depot/projects/dtrace/src/share/man/man9/mac.9#3 integrate .. //depot/projects/dtrace/src/share/man/man9/mutex.9#3 integrate .. //depot/projects/dtrace/src/sys/amd64/amd64/identcpu.c#4 integrate .. //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#10 integrate .. //depot/projects/dtrace/src/sys/amd64/include/specialreg.h#4 integrate .. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_proto.h#5 integrate .. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_syscall.h#5 integrate .. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_sysent.c#5 integrate .. //depot/projects/dtrace/src/sys/amd64/linux32/syscalls.master#5 integrate .. //depot/projects/dtrace/src/sys/arm/arm/pmap.c#8 integrate .. //depot/projects/dtrace/src/sys/arm/at91/kb920x_machdep.c#5 integrate .. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate .. //depot/projects/dtrace/src/sys/compat/linux/linux_file.c#4 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_proto.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_syscall.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_syscallnames.c#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_sysent.c#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/svr4_util.h#3 integrate .. //depot/projects/dtrace/src/sys/compat/svr4/syscalls.master#3 integrate .. //depot/projects/dtrace/src/sys/conf/NOTES#11 integrate .. //depot/projects/dtrace/src/sys/contrib/pf/net/if_pflog.c#3 integrate .. //depot/projects/dtrace/src/sys/contrib/pf/net/if_pfsync.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/asr/MAINTAINER#3 delete .. //depot/projects/dtrace/src/sys/dev/fdc/fdc.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/dtrace/src/sys/dev/isp/isp_freebsd.h#6 integrate .. //depot/projects/dtrace/src/sys/dev/isp/isp_pci.c#6 integrate .. //depot/projects/dtrace/src/sys/dev/isp/isp_sbus.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/isp/isp_target.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/ispfw/asm_1040.h#3 integrate .. //depot/projects/dtrace/src/sys/dev/ispfw/asm_1080.h#3 integrate .. //depot/projects/dtrace/src/sys/dev/ispfw/asm_12160.h#3 integrate .. //depot/projects/dtrace/src/sys/dev/ispfw/ispfw.c#4 integrate .. //depot/projects/dtrace/src/sys/dev/sound/midi/sequencer.c#3 integrate .. //depot/projects/dtrace/src/sys/geom/mirror/g_mirror.c#6 integrate .. //depot/projects/dtrace/src/sys/geom/raid3/g_raid3.c#9 integrate .. //depot/projects/dtrace/src/sys/i386/conf/GENERIC#12 integrate .. //depot/projects/dtrace/src/sys/i386/conf/PAE#4 integrate .. //depot/projects/dtrace/src/sys/i386/i386/identcpu.c#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_proto.h#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_syscall.h#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_sysent.c#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_util.h#3 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_xenix.c#4 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/imgact_coff.c#3 integrate .. //depot/projects/dtrace/src/sys/i386/ibcs2/syscalls.master#4 integrate .. //depot/projects/dtrace/src/sys/i386/include/i4b_ioctl.h#3 integrate .. //depot/projects/dtrace/src/sys/i386/include/specialreg.h#4 integrate .. //depot/projects/dtrace/src/sys/i386/linux/linux_proto.h#5 integrate .. //depot/projects/dtrace/src/sys/i386/linux/linux_syscall.h#5 integrate .. //depot/projects/dtrace/src/sys/i386/linux/linux_sysent.c#5 integrate .. //depot/projects/dtrace/src/sys/i386/linux/syscalls.master#5 integrate .. //depot/projects/dtrace/src/sys/i4b/layer4/i4b_l4mgmt.c#3 integrate .. //depot/projects/dtrace/src/sys/ia64/conf/GENERIC#4 integrate .. //depot/projects/dtrace/src/sys/kern/init_sysent.c#6 integrate .. //depot/projects/dtrace/src/sys/kern/kern_environment.c#4 integrate .. //depot/projects/dtrace/src/sys/kern/kern_linker.c#16 integrate .. //depot/projects/dtrace/src/sys/kern/kern_thr.c#4 integrate .. //depot/projects/dtrace/src/sys/kern/subr_hints.c#3 integrate .. //depot/projects/dtrace/src/sys/kern/syscalls.c#5 integrate .. //depot/projects/dtrace/src/sys/kern/syscalls.master#5 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_domain.c#4 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_socket.c#5 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_socket2.c#5 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_syscalls.c#5 integrate .. //depot/projects/dtrace/src/sys/kern/uipc_usrreq.c#6 integrate .. //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#4 integrate .. //depot/projects/dtrace/src/sys/modules/ispfw/Makefile#3 integrate .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1000/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1040/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1040_it/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1080/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1080_it/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_12160/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_12160_it/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2100/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2200/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2300/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2322/Makefile#1 branch .. //depot/projects/dtrace/src/sys/modules/ispfw/ispfw/Makefile#1 branch .. //depot/projects/dtrace/src/sys/net/if.c#4 integrate .. //depot/projects/dtrace/src/sys/net/if_bridge.c#7 integrate .. //depot/projects/dtrace/src/sys/net/if_clone.c#3 integrate .. //depot/projects/dtrace/src/sys/net/if_clone.h#3 integrate .. //depot/projects/dtrace/src/sys/net/if_disc.c#3 integrate .. //depot/projects/dtrace/src/sys/net/if_enc.c#3 integrate .. //depot/projects/dtrace/src/sys/net/if_faith.c#3 integrate .. //depot/projects/dtrace/src/sys/net/if_gif.c#4 integrate .. //depot/projects/dtrace/src/sys/net/if_gre.c#4 integrate .. //depot/projects/dtrace/src/sys/net/if_loop.c#4 integrate .. //depot/projects/dtrace/src/sys/net/if_ppp.c#3 integrate .. //depot/projects/dtrace/src/sys/net/if_stf.c#4 integrate .. //depot/projects/dtrace/src/sys/net/if_vlan.c#3 integrate .. //depot/projects/dtrace/src/sys/netinet/ip_carp.c#4 integrate .. //depot/projects/dtrace/src/sys/pc98/conf/GENERIC#5 integrate .. //depot/projects/dtrace/src/sys/posix4/ksched.c#6 integrate .. //depot/projects/dtrace/src/sys/posix4/p1003_1b.c#4 integrate .. //depot/projects/dtrace/src/sys/posix4/posix4.h#3 integrate .. //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_oea.c#4 integrate .. //depot/projects/dtrace/src/sys/security/mac_biba/mac_biba.c#3 integrate .. //depot/projects/dtrace/src/sys/sparc64/conf/GENERIC#6 integrate .. //depot/projects/dtrace/src/sys/sys/protosw.h#4 integrate .. //depot/projects/dtrace/src/sys/sys/sockio.h#3 integrate .. //depot/projects/dtrace/src/sys/sys/syscall.h#5 integrate .. //depot/projects/dtrace/src/sys/sys/syscall.mk#5 integrate .. //depot/projects/dtrace/src/sys/sys/syscallsubr.h#4 integrate .. //depot/projects/dtrace/src/sys/sys/sysproto.h#5 integrate .. //depot/projects/dtrace/src/sys/sys/systm.h#5 integrate .. //depot/projects/dtrace/src/sys/sys/thr.h#3 integrate .. //depot/projects/dtrace/src/sys/ufs/ffs/ffs_vfsops.c#8 integrate .. //depot/projects/dtrace/src/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/dtrace/src/sys/vm/vm_meter.c#5 integrate .. //depot/projects/dtrace/src/tools/regression/fifo/fifo_create/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/fifo/fifo_io/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/fifo/fifo_misc/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/fifo/fifo_open/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/file/ftruncate/Makefile#1 branch .. //depot/projects/dtrace/src/tools/regression/file/ftruncate/ftruncate.c#1 branch .. //depot/projects/dtrace/src/tools/regression/lib/libc/resolv/Makefile#3 edit .. //depot/projects/dtrace/src/tools/regression/netinet/msocket_ifnet_remove/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/netinet/tcpdrop/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/netinet/tcpsockclosebeforeaccept/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/netinet/tcpsocktimewait/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/netipx/ipxdgramloopback/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/netipx/spxabort/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/netipx/spxloopback/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/listen_backlog/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/rtsocket/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/sendfile/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/socketpair/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/unix_bindconnect/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/unix_passfd/Makefile#3 integrate .. //depot/projects/dtrace/src/tools/regression/sockets/unix_socket/Makefile#2 integrate .. //depot/projects/dtrace/src/tools/regression/ufs/uprintf/Makefile#3 integrate .. //depot/projects/dtrace/src/usr.bin/csup/Makefile#2 edit .. //depot/projects/dtrace/src/usr.sbin/i4b/isdnd/controller.c#4 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdnd/main.c#4 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdndebug/main.c#3 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdnmonitor/main.c#3 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdnphone/main.c#3 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdntelctl/main.c#3 integrate .. //depot/projects/dtrace/src/usr.sbin/i4b/isdntest/main.c#4 integrate Differences ... ==== //depot/projects/dtrace/src/MAINTAINERS#9 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.137 2006/07/04 02:01:48 brooks Exp $ +$FreeBSD: src/MAINTAINERS,v 1.139 2006/07/11 06:09:54 mjacob Exp $ Please note that the content of this file is strictly advisory. No locks listed here are valid. The only strict review requirements @@ -51,7 +51,6 @@ pass(4) ken Pre-commit review requested. ch(4) ken Pre-commit review requested. isp(4) mjacob Pre-commit review requested. -mpt(4) mjacob Pre-commit review requested. em(4) tackerman Pre-commit review requested. tdfx(4) cokane Just keep me informed of changes, try not to break it. sendmail gshapiro Pre-commit review requested. @@ -135,11 +134,7 @@ List below generated with: $ cd /usr/src; find */* -type f|xargs egrep 'MAINTAINER[ <tab>]*=' -bin/dd/Makefile:MAINTAINER= green@FreeBSD.org -games/fortune/datfiles/Makefile:MAINTAINER= jkh -gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch sys/modules/3dfx/Makefile:MAINTAINER= cokane@FreeBSD.org sys/modules/urio/Makefile:MAINTAINER= Iwasa Kazmi <kzmi@ca2.so-net.ne.jp> tools/tools/sysdoc/Makefile:MAINTAINER= trhodes@FreeBSD.org -usr.bin/locate/Makefile:MAINTAINER= wosch usr.sbin/zic/Makefile:MAINTAINER= wollman@FreeBSD.org ==== //depot/projects/dtrace/src/UPDATING#4 (text+ko) ==== @@ -21,6 +21,12 @@ developers choose to disable these features on build machines to maximize performance. +20060709: + The interface version of the i4b kernel part has changed. So + after updating the kernel sources and compiling a new kernel, + the i4b user space tools in "/usr/src/usr.sbin/i4b" must also + be rebuilt, and vice versa. + 20060627: The XBOX kernel now defaults to the nfe(4) driver instead of the nve(4) driver. Please update your configuration @@ -585,4 +591,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.450 2006/06/27 20:22:32 rink Exp $ +$FreeBSD: src/UPDATING,v 1.451 2006/07/09 21:16:06 twinterg Exp $ ==== //depot/projects/dtrace/src/bin/dd/Makefile#3 (text+ko) ==== @@ -1,7 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/dd/Makefile,v 1.18 2004/04/09 07:13:27 njl Exp $ - -MAINTAINER= green@FreeBSD.org +# $FreeBSD: src/bin/dd/Makefile,v 1.19 2006/07/09 21:47:37 markm Exp $ PROG= dd SRCS= args.c conv.c conv_tab.c dd.c misc.c position.c ==== //depot/projects/dtrace/src/contrib/wpa_supplicant/Makefile#3 (text+ko) ==== @@ -281,8 +281,7 @@ # PC/SC interface for smartcards (USIM, GSM SIM) CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC OBJS += pcsc_funcs.o -# -lpthread may not be needed depending on how pcsc-lite was configured -LIBS += -lpcsclite -lpthread +LIBS += -lpcsclite endif ifndef CONFIG_TLS ==== //depot/projects/dtrace/src/etc/rc.d/dhclient#3 (text+ko) ==== @@ -1,7 +1,7 @@ #!/bin/sh # # $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $ -# $FreeBSD: src/etc/rc.d/dhclient,v 1.21 2005/07/26 00:37:19 brooks Exp $ +# $FreeBSD: src/etc/rc.d/dhclient,v 1.22 2006/07/09 06:54:24 stefanf Exp $ # # PROVIDE: dhclient @@ -18,7 +18,7 @@ dhclient_start() { - # prevent unnecessicary restarts + # prevent unnecessary restarts # XXX: should use a pidfile if [ -x /usr/bin/pgrep ]; then pids=`/usr/bin/pgrep -f "dhclient: $ifn(\$| .*)"` ==== //depot/projects/dtrace/src/games/fortune/datfiles/Makefile#3 (text+ko) ==== @@ -1,15 +1,10 @@ # @(#)Makefile 8.2 (Berkeley) 4/19/94 -# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.33 2005/02/03 00:20:36 ru Exp $ +# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.34 2006/07/09 20:26:36 markm Exp $ FILES= fortunes freebsd-tips murphy startrek zippy BLDS= fortunes.dat murphy.dat startrek.dat zippy.dat \ fortunes-o fortunes-o.dat freebsd-tips.dat -# Pass all new entries by ${MAINTAINER} to preserve some semblance of -# humor in the fortune files. What's funny to you on 6 beers may not -# be funny to anyone else. -MAINTAINER= jkh - # TO AVOID INSTALLING THE POTENTIALLY OFFENSIVE FORTUNES, COMMENT OUT THE # THREE LINES AND UNCOMMENT THE FOURTH LINE. ==== //depot/projects/dtrace/src/games/fortune/datfiles/fortunes#8 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.221 2006/06/20 08:34:36 phk Exp $ +$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.223 2006/07/10 16:53:32 phk Exp $ % ======================================================================= @@ -29705,6 +29705,10 @@ remember. -- Eugene McCarthy % +It is difficult to get a man to understand something when his salary +depends upon his not understanding it. + -- Upton Sinclair +% It is difficult to legislate morality in the absence of moral legislators. % It is difficult to produce a television documentary that is both ==== //depot/projects/dtrace/src/lib/libthr/sys/thr_error.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libthr/sys/thr_error.c,v 1.2 2005/04/02 01:20:00 davidxu Exp $ + * $FreeBSD: src/lib/libthr/sys/thr_error.c,v 1.3 2006/07/12 03:44:05 davidxu Exp $ */ #include <pthread.h> @@ -52,5 +52,6 @@ if (curthread != NULL && curthread != _thr_initial) return (&curthread->error); } else - return (&errno); + } + return (&errno); } ==== //depot/projects/dtrace/src/sbin/ifconfig/ifclone.c#3 (text+ko) ==== @@ -29,7 +29,7 @@ #ifndef lint static const char rcsid[] = - "$FreeBSD: src/sbin/ifconfig/ifclone.c,v 1.1 2004/12/08 19:18:07 sam Exp $"; + "$FreeBSD: src/sbin/ifconfig/ifclone.c,v 1.2 2006/07/09 06:10:23 sam Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -88,48 +88,62 @@ free(buf); } +static clone_callback_func *clone_cb = NULL; + void -clone_create(void) +clone_setcallback(clone_callback_func *p) { - int s; + if (clone_cb != NULL && clone_cb != p) + errx(1, "conflicting device create parameters"); + clone_cb = p; +} - s = socket(AF_INET, SOCK_DGRAM, 0); - if (s == -1) - err(1, "socket(AF_INET,SOCK_DGRAM)"); +/* + * Do the actual clone operation. Any parameters must have been + * setup by now. If a callback has been setup to do the work + * then defer to it; otherwise do a simple create operation with + * no parameters. + */ +static void +ifclonecreate(int s, void *arg) +{ + struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); (void) strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); - if (ioctl(s, SIOCIFCREATE, &ifr) < 0) - err(1, "SIOCIFCREATE"); + if (clone_cb == NULL) { + /* NB: no parameters */ + if (ioctl(s, SIOCIFCREATE2, &ifr) < 0) + err(1, "SIOCIFCREATE2"); + } else { + clone_cb(s, &ifr); + } /* - * If we get a different name back then we put in, we probably - * want to print it out, but we might change our mind later so - * we just signal our intrest and leave the printout for later. + * If we get a different name back than we put in, print it. */ - if (strcmp(name, ifr.ifr_name) != 0) { - printname = 1; + if (strncmp(name, ifr.ifr_name, sizeof(name)) != 0) { strlcpy(name, ifr.ifr_name, sizeof(name)); + printf("%s\n", name); } +} - close(s); +static +DECL_CMD_FUNC(clone_create, arg, d) +{ + callback_register(ifclonecreate, NULL); } -static void -clone_destroy(const char *val, int d, int s, const struct afswtch *rafp) +static +DECL_CMD_FUNC(clone_destroy, arg, d) { - (void) strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); if (ioctl(s, SIOCIFDESTROY, &ifr) < 0) err(1, "SIOCIFDESTROY"); - /* - * If we create and destroy an interface in the same command, - * there isn't any reason to print it's name. - */ - printname = 0; } static struct cmd clone_cmds[] = { + DEF_CMD("create", 0, clone_create), DEF_CMD("destroy", 0, clone_destroy), DEF_CMD("unplumb", 0, clone_destroy), }; ==== //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)ifconfig.c 8.2 (Berkeley) 2/16/94"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.119 2006/03/12 14:00:15 glebius Exp $"; + "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.120 2006/07/09 06:10:23 sam Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -92,7 +92,6 @@ int supmedia = 0; int printkeys = 0; /* Print keying material for interfaces. */ -int printname = 0; /* Print the name of the created interface. */ static int ifconfig(int argc, char *const *argv, const struct afswtch *afp); static void status(const struct afswtch *afp, int addrcount, @@ -234,21 +233,20 @@ /* check and maybe load support for this interface */ ifmaybeload(name); - /* - * NOTE: We must special-case the `create' command right - * here as we would otherwise fail when trying to find - * the interface. - */ - if (argc > 0 && (strcmp(argv[0], "create") == 0 || - strcmp(argv[0], "plumb") == 0)) { - clone_create(); - argc--, argv++; - if (argc == 0) - goto end; - } ifindex = if_nametoindex(name); - if (ifindex == 0) + if (ifindex == 0) { + /* + * NOTE: We must special-case the `create' command + * right here as we would otherwise fail when trying + * to find the interface. + */ + if (argc > 0 && (strcmp(argv[0], "create") == 0 || + strcmp(argv[0], "plumb") == 0)) { + ifconfig(argc, argv, NULL); + exit(0); + } errx(1, "interface %s does not exist", name); + } } /* Check for address family */ @@ -356,9 +354,6 @@ if (namesonly && need_nl > 0) putchar('\n'); -end: - if (printname) - printf("%s\n", name); exit (0); } @@ -782,12 +777,6 @@ } strlcpy(name, newname, sizeof(name)); free(newname); - - /* - * Even if we just created the interface, we don't need to print - * its name because we just nailed it down separately. - */ - printname = 0; } /* ==== //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * * so there! * - * $FreeBSD: src/sbin/ifconfig/ifconfig.h,v 1.17 2005/07/14 18:33:21 rwatson Exp $ + * $FreeBSD: src/sbin/ifconfig/ifconfig.h,v 1.18 2006/07/09 06:10:23 sam Exp $ */ #define __constructor __attribute__((constructor)) @@ -127,7 +127,6 @@ extern int allmedia; extern int supmedia; extern int printkeys; -extern int printname; extern int flags; extern int newaddr; extern int verbose; @@ -140,4 +139,5 @@ void ifmaybeload(char *name); -void clone_create(void); +typedef void clone_callback_func(int, struct ifreq *); +void clone_setcallback(clone_callback_func *); ==== //depot/projects/dtrace/src/sbin/ifconfig/ifvlan.c#3 (text+ko) ==== @@ -56,95 +56,119 @@ #ifndef lint static const char rcsid[] = - "$FreeBSD: src/sbin/ifconfig/ifvlan.c,v 1.11 2006/03/09 14:58:09 yar Exp $"; + "$FreeBSD: src/sbin/ifconfig/ifvlan.c,v 1.12 2006/07/09 06:10:23 sam Exp $"; #endif -static struct vlanreq __vreq; -static int __have_dev = 0; -static int __have_tag = 0; + +#define NOTAG ((u_short) -1) + +static struct vlanreq params = { + .vlr_tag = NOTAG, +}; + +static int +getvlan(int s, struct ifreq *ifr, struct vlanreq *vreq) +{ + bzero((char *)vreq, sizeof(*vreq)); + ifr->ifr_data = (caddr_t)vreq; -static void vlan_set(int); + return ioctl(s, SIOCGETVLAN, (caddr_t)ifr); +} static void vlan_status(int s) { struct vlanreq vreq; - bzero((char *)&vreq, sizeof(vreq)); - ifr.ifr_data = (caddr_t)&vreq; + if (getvlan(s, &ifr, &vreq) != -1) + printf("\tvlan: %d parent interface: %s\n", + vreq.vlr_tag, vreq.vlr_parent[0] == '\0' ? + "<none>" : vreq.vlr_parent); +} - if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1) - return; +static void +vlan_create(int s, struct ifreq *ifr) +{ + if (params.vlr_tag != NOTAG || params.vlr_parent[0] != '\0') { + /* + * One or both parameters were specified, make sure both. + */ + if (params.vlr_tag == NOTAG) + errx(1, "must specify a tag for vlan create"); + if (params.vlr_parent[0] == '\0') + errx(1, "must specify a parent device for vlan create"); + ifr->ifr_data = (caddr_t) ¶ms; + } + if (ioctl(s, SIOCIFCREATE2, ifr) < 0) + err(1, "SIOCIFCREATE2"); +} - printf("\tvlan: %d parent interface: %s\n", - vreq.vlr_tag, vreq.vlr_parent[0] == '\0' ? - "<none>" : vreq.vlr_parent); +static void +vlan_cb(int s, void *arg) +{ + if ((params.vlr_tag != NOTAG) ^ (params.vlr_parent[0] != '\0')) + errx(1, "both vlan and vlandev must be specified"); } static void -setvlantag(const char *val, int d, int s, const struct afswtch *afp) +vlan_set(int s, struct ifreq *ifr) +{ + if (params.vlr_tag != NOTAG && params.vlr_parent[0] != '\0') { + ifr->ifr_data = (caddr_t) ¶ms; + if (ioctl(s, SIOCSETVLAN, (caddr_t)ifr) == -1) + err(1, "SIOCSETVLAN"); + } +} + +static +DECL_CMD_FUNC(setvlantag, val, d) { - char *endp; - u_long ul; + struct vlanreq vreq; + u_long ul; + char *endp; ul = strtoul(val, &endp, 0); if (*endp != '\0') errx(1, "invalid value for vlan"); - __vreq.vlr_tag = ul; + params.vlr_tag = ul; /* check if the value can be represented in vlr_tag */ - if (__vreq.vlr_tag != ul) + if (params.vlr_tag != ul) errx(1, "value for vlan out of range"); - /* the kernel will do more specific checks on vlr_tag */ - __have_tag = 1; - vlan_set(s); /* try setting vlan params in kernel */ + + if (getvlan(s, &ifr, &vreq) != -1) + vlan_set(s, &ifr); + else + clone_setcallback(vlan_create); } -static void -setvlandev(const char *val, int d, int s, const struct afswtch *afp) +static +DECL_CMD_FUNC(setvlandev, val, d) { + struct vlanreq vreq; + + strlcpy(params.vlr_parent, val, sizeof(params.vlr_parent)); - strncpy(__vreq.vlr_parent, val, sizeof(__vreq.vlr_parent)); - __have_dev = 1; - vlan_set(s); /* try setting vlan params in kernel */ + if (getvlan(s, &ifr, &vreq) != -1) + vlan_set(s, &ifr); + else + clone_setcallback(vlan_create); } -static void -unsetvlandev(const char *val, int d, int s, const struct afswtch *afp) +static +DECL_CMD_FUNC(unsetvlandev, val, d) { + struct vlanreq vreq; - if (val != NULL) - warnx("argument to -vlandev is useless and hence deprecated"); + bzero((char *)&vreq, sizeof(struct vlanreq)); + ifr.ifr_data = (caddr_t)&vreq; - bzero((char *)&__vreq, sizeof(__vreq)); - ifr.ifr_data = (caddr_t)&__vreq; -#if 0 /* this code will be of use when we can alter vlan or vlandev only */ if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1) err(1, "SIOCGETVLAN"); - bzero((char *)&__vreq.vlr_parent, sizeof(__vreq.vlr_parent)); - __vreq.vlr_tag = 0; /* XXX clear parent only (no kernel support now) */ -#endif + bzero((char *)&vreq.vlr_parent, sizeof(vreq.vlr_parent)); + vreq.vlr_tag = 0; + if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1) err(1, "SIOCSETVLAN"); - __have_dev = __have_tag = 0; -} - -static void -vlan_cb(int s, void *arg) -{ - - if (__have_tag ^ __have_dev) - errx(1, "both vlan and vlandev must be specified"); -} - -static void -vlan_set(int s) -{ - - if (__have_tag && __have_dev) { - ifr.ifr_data = (caddr_t)&__vreq; - if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1) - err(1, "SIOCSETVLAN"); - } } static struct cmd vlan_cmds[] = { ==== //depot/projects/dtrace/src/share/man/man9/mac.9#3 (text+ko) ==== @@ -31,9 +31,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/mac.9,v 1.15 2005/06/28 20:15:18 hmp Exp $ +.\" $FreeBSD: src/share/man/man9/mac.9,v 1.17 2006/07/11 16:26:40 joel Exp $ .\" -.Dd February 16, 2002 +.Dd July 10, 2006 .Dt MAC 9 .Os .Sh NAME @@ -152,7 +152,7 @@ policies. .Sh ENTRY POINTS System service and module authors should reference the -.%T "FreeBSD Developer's Handbook" +.%T "FreeBSD Architecture Handbook" for information on the MAC Framework APIs. .Sh SEE ALSO .Xr acl 3 , @@ -172,8 +172,8 @@ .Xr vaccess_acl_posix1e 9 , .Xr VFS 9 .Rs -.%T "The FreeBSD Developers' Handbook" -.%O "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/" +.%T "The FreeBSD Architecture Handbook" +.%O "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/arch-handbook/" .Re .Sh HISTORY The ==== //depot/projects/dtrace/src/share/man/man9/mutex.9#3 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" from BSDI $Id: mutex.4,v 1.1.2.3 1998/04/27 22:53:13 ewv Exp $ -.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.49 2006/02/01 20:30:55 glebius Exp $ +.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.50 2006/07/09 09:46:43 maxim Exp $ .\" .Dd February 1, 2006 .Dt MUTEX 9 @@ -91,7 +91,7 @@ .Ft void .Fn mtx_assert "struct mtx *mutex" "int what" .In sys/kernel.h -.Fn MTX_SYSINIT "name" "struct mutex *mtx" "const char *description" "int opts" +.Fn MTX_SYSINIT "name" "struct mtx *mtx" "const char *description" "int opts" .Sh DESCRIPTION Mutexes are the most basic and primary method of thread synchronization. The major design considerations for mutexes are: ==== //depot/projects/dtrace/src/sys/amd64/amd64/identcpu.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.146 2006/04/24 22:56:57 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.147 2006/07/12 06:04:11 jkim Exp $"); #include "opt_cpu.h" @@ -306,8 +306,8 @@ "\020" "\001LAHF" /* LAHF/SAHF in long mode */ "\002CMP" /* CMP legacy */ - "\003<b2>" - "\004<b3>" + "\003SVM" /* Secure Virtual Mode */ + "\004ExtAPIC" /* Extended APIC register */ "\005CR8" /* CR8 in legacy mode */ "\006<b5>" "\007<b6>" ==== //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#10 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.463 2006/07/05 02:32:55 davidxu Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.464 2006/07/09 16:39:21 mjacob Exp $ cpu HAMMER ident GENERIC @@ -251,6 +251,7 @@ device md # Memory "disks" device gif # IPv6 and IPv4 tunneling device faith # IPv6-to-IPv4 relaying (translation) +device firmware # firmware assist module # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! ==== //depot/projects/dtrace/src/sys/amd64/include/specialreg.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.33 2006/05/01 22:07:00 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.34 2006/07/12 06:04:11 jkim Exp $ */ #ifndef _MACHINE_SPECIALREG_H_ @@ -135,6 +135,8 @@ #define AMDID2_LAHF 0x00000001 #define AMDID2_CMP 0x00000002 +#define AMDID2_SVM 0x00000004 +#define AMDID2_EXT_APIC 0x00000008 #define AMDID2_CR8 0x00000010 /* ==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_proto.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.17 2006/07/06 21:43:14 jhb Exp $ - * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp + * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.18 2006/07/11 20:55:22 jhb Exp $ + * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp */ #ifndef _LINUX_SYSPROTO_H_ ==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_syscall.h#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.17 2006/07/06 21:43:14 jhb Exp $ - * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp + * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.18 2006/07/11 20:55:22 jhb Exp $ + * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp */ #define LINUX_SYS_exit 1 ==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_sysent.c#5 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.17 2006/07/06 21:43:14 jhb Exp $ - * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp + * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.18 2006/07/11 20:55:22 jhb Exp $ + * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp */ #include <bsm/audit_kevents.h> @@ -109,7 +109,7 @@ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 86 = linux_uselib */ { SYF_MPSAFE | AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON }, /* 87 = swapon */ { SYF_MPSAFE | AS(linux_reboot_args), (sy_call_t *)linux_reboot, AUE_REBOOT }, /* 88 = linux_reboot */ - { AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_O_GETDENTS }, /* 89 = linux_readdir */ + { SYF_MPSAFE | AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_O_GETDENTS }, /* 89 = linux_readdir */ { SYF_MPSAFE | AS(linux_mmap_args), (sy_call_t *)linux_mmap, AUE_MMAP }, /* 90 = linux_mmap */ { SYF_MPSAFE | AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP }, /* 91 = munmap */ { SYF_MPSAFE | AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_TRUNCATE }, /* 92 = linux_truncate */ @@ -161,7 +161,7 @@ { SYF_MPSAFE | AS(linux_setfsuid16_args), (sy_call_t *)linux_setfsuid16, AUE_SETFSUID }, /* 138 = linux_setfsuid16 */ { SYF_MPSAFE | AS(linux_setfsgid16_args), (sy_call_t *)linux_setfsgid16, AUE_SETFSGID }, /* 139 = linux_setfsgid16 */ { SYF_MPSAFE | AS(linux_llseek_args), (sy_call_t *)linux_llseek, AUE_LSEEK }, /* 140 = linux_llseek */ - { AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_O_GETDENTS }, /* 141 = linux_getdents */ + { SYF_MPSAFE | AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_O_GETDENTS }, /* 141 = linux_getdents */ { SYF_MPSAFE | AS(linux_select_args), (sy_call_t *)linux_select, AUE_SELECT }, /* 142 = linux_select */ { SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK }, /* 143 = flock */ { SYF_MPSAFE | AS(linux_msync_args), (sy_call_t *)linux_msync, AUE_MSYNC }, /* 144 = linux_msync */ @@ -240,7 +240,7 @@ { SYF_MPSAFE | AS(linux_pivot_root_args), (sy_call_t *)linux_pivot_root, AUE_PIVOT_ROOT }, /* 217 = linux_pivot_root */ { SYF_MPSAFE | AS(linux_mincore_args), (sy_call_t *)linux_mincore, AUE_MINCORE }, /* 218 = linux_mincore */ { SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE }, /* 219 = madvise */ - { AS(linux_getdents64_args), (sy_call_t *)linux_getdents64, AUE_O_GETDENTS }, /* 220 = linux_getdents64 */ + { SYF_MPSAFE | AS(linux_getdents64_args), (sy_call_t *)linux_getdents64, AUE_O_GETDENTS }, /* 220 = linux_getdents64 */ { SYF_MPSAFE | AS(linux_fcntl64_args), (sy_call_t *)linux_fcntl64, AUE_FCNTL }, /* 221 = linux_fcntl64 */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 222 = */ { 0, (sy_call_t *)nosys, AUE_NULL }, /* 223 = */ ==== //depot/projects/dtrace/src/sys/amd64/linux32/syscalls.master#5 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp $ + $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; System call name/number master file (or rather, slave, from LINUX). @@ -169,7 +169,7 @@ 87 AUE_SWAPON MNOPROTO { int swapon(char *name); } 88 AUE_REBOOT MSTD { int linux_reboot(l_int magic1, \ l_int magic2, l_uint cmd, void *arg); } -89 AUE_O_GETDENTS STD { int linux_readdir(l_uint fd, \ +89 AUE_O_GETDENTS MSTD { int linux_readdir(l_uint fd, \ struct l_dirent *dent, l_uint count); } 90 AUE_MMAP MSTD { int linux_mmap(struct l_mmap_argv *ptr); } 91 AUE_MUNMAP MNOPROTO { int munmap(caddr_t addr, int len); } @@ -246,7 +246,7 @@ 140 AUE_LSEEK MSTD { int linux_llseek(l_int fd, l_ulong ohigh, \ l_ulong olow, l_loff_t *res, \ l_uint whence); } -141 AUE_O_GETDENTS STD { int linux_getdents(l_uint fd, void *dent, \ +141 AUE_O_GETDENTS MSTD { int linux_getdents(l_uint fd, void *dent, \ l_uint count); } 142 AUE_SELECT MSTD { int linux_select(l_int nfds, \ l_fd_set *readfds, l_fd_set *writefds, \ @@ -381,7 +381,7 @@ l_size_t len, u_char *vec); } 219 AUE_MADVISE MNOPROTO { int madvise(void *addr, size_t len, \ int behav); } -220 AUE_O_GETDENTS STD { int linux_getdents64(l_uint fd, \ +220 AUE_O_GETDENTS MSTD { int linux_getdents64(l_uint fd, \ void *dirent, l_uint count); } 221 AUE_FCNTL MSTD { int linux_fcntl64(l_uint fd, l_uint cmd, \ uintptr_t arg); } ==== //depot/projects/dtrace/src/sys/arm/arm/pmap.c#8 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.64 2006/06/15 01:01:05 ups Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.65 2006/07/11 11:22:06 cognet Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -199,7 +199,7 @@ static pv_entry_t pmap_get_pv_entry(void); static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t, - vm_prot_t, boolean_t); + vm_prot_t, boolean_t, int); static void pmap_vac_me_harder(struct vm_page *, pmap_t, vm_offset_t); static void pmap_vac_me_kpmap(struct vm_page *, pmap_t, @@ -373,7 +373,7 @@ * L2 allocation. */ #define pmap_alloc_l2_dtable() \ - (void*)uma_zalloc(l2table_zone, M_NOWAIT) + (void*)uma_zalloc(l2table_zone, M_NOWAIT|M_USE_RESERVE) #define pmap_free_l2_dtable(l2) \ uma_zfree(l2table_zone, l2) @@ -952,7 +952,7 @@ again_ptep: PMAP_UNLOCK(pm); vm_page_unlock_queues(); - ptep = (void*)uma_zalloc(l2zone, M_NOWAIT); + ptep = (void*)uma_zalloc(l2zone, M_NOWAIT|M_USE_RESERVE); vm_page_lock_queues(); PMAP_LOCK(pm); if (l2b->l2b_kva != 0) { @@ -3306,7 +3306,7 @@ vm_page_lock_queues(); PMAP_LOCK(pmap); - pmap_enter_locked(pmap, va, m, prot, wired); + pmap_enter_locked(pmap, va, m, prot, wired, M_WAITOK); vm_page_unlock_queues(); PMAP_UNLOCK(pmap); } @@ -3316,7 +3316,7 @@ */ static void pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, - boolean_t wired) + boolean_t wired, int flags) { struct l2_bucket *l2b = NULL; struct vm_page *opg; @@ -3347,10 +3347,22 @@ l2b = pmap_get_l2_bucket(pmap, va); if (l2b == NULL) l2b = pmap_grow_l2_bucket(pmap, va); - } else + } else { +do_l2b_alloc: l2b = pmap_alloc_l2_bucket(pmap, va); - KASSERT(l2b != NULL, - ("pmap_enter: failed to allocate l2 bucket")); + if (l2b == NULL) { + if (flags & M_WAITOK) { + PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); + VM_WAIT; + vm_page_lock_queues(); + PMAP_LOCK(pmap); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607120846.k6C8kJoE098683>