Date: Fri, 19 Sep 2008 23:54:55 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 150150 for review Message-ID: <200809192354.m8JNstRI043656@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=150150 Change 150150 by zec@zec_tpx32 on 2008/09/19 23:54:22 IFC @ 150145 Affected files ... .. //depot/projects/vimage/src/sys/amd64/amd64/identcpu.c#9 integrate .. //depot/projects/vimage/src/sys/boot/ofw/libofw/Makefile#3 integrate .. //depot/projects/vimage/src/sys/boot/ofw/libofw/ofw_console.c#4 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c#2 integrate .. //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/atomic.h#3 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#11 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#12 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#12 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#12 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#12 integrate .. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#13 integrate .. //depot/projects/vimage/src/sys/conf/files.mips#3 integrate .. //depot/projects/vimage/src/sys/conf/ldscript.mips#2 integrate .. //depot/projects/vimage/src/sys/conf/options.mips#2 integrate .. //depot/projects/vimage/src/sys/dev/acpica/acpi_quirk.c#3 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_osdep.h#11 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#12 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_defs.h#4 integrate .. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_tom.c#6 integrate .. //depot/projects/vimage/src/sys/dev/pci/vga_pci.c#3 integrate .. //depot/projects/vimage/src/sys/dev/snp/snp.c#8 integrate .. //depot/projects/vimage/src/sys/dev/usb/if_zyd.c#11 integrate .. //depot/projects/vimage/src/sys/dev/usb/usbdevs#29 integrate .. //depot/projects/vimage/src/sys/i386/i386/identcpu.c#10 integrate .. //depot/projects/vimage/src/sys/i386/i386/pmap.c#20 integrate .. //depot/projects/vimage/src/sys/kern/kern_syscalls.c#2 integrate .. //depot/projects/vimage/src/sys/kern/vfs_cache.c#12 integrate .. //depot/projects/vimage/src/sys/kern/vfs_mount.c#22 integrate .. //depot/projects/vimage/src/sys/mips/adm5120/obio.c#3 integrate .. //depot/projects/vimage/src/sys/mips/conf/IDT#3 integrate .. //depot/projects/vimage/src/sys/mips/idt/obio.c#3 integrate .. //depot/projects/vimage/src/sys/mips/malta/gt_pci.c#4 integrate .. //depot/projects/vimage/src/sys/mips/mips/intr_machdep.c#4 integrate .. //depot/projects/vimage/src/sys/net/if_lagg.c#17 integrate .. //depot/projects/vimage/src/sys/powerpc/ofw/ofw_syscons.c#2 integrate .. //depot/projects/vimage/src/sys/sparc64/pci/psycho.c#13 integrate .. //depot/projects/vimage/src/sys/sparc64/pci/psychoreg.h#5 integrate .. //depot/projects/vimage/src/sys/sys/mount.h#12 integrate .. //depot/projects/vimage/src/sys/sys/sysent.h#6 integrate Differences ... ==== //depot/projects/vimage/src/sys/amd64/amd64/identcpu.c#9 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.159 2008/05/23 04:03:52 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.160 2008/09/18 18:51:32 stas Exp $"); #include "opt_cpu.h" @@ -249,8 +249,8 @@ "\030POPCNT" "\031<b24>" "\032<b25>" - "\033<b26>" - "\034<b27>" + "\033XSAVE" + "\034OSXSAVE" "\035<b28>" "\036<b29>" "\037<b30>" ==== //depot/projects/vimage/src/sys/boot/ofw/libofw/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.11 2007/06/17 00:17:15 marius Exp $ +# $FreeBSD: src/sys/boot/ofw/libofw/Makefile,v 1.13 2008/09/19 19:49:58 sobomax Exp $ LIB= ofw INTERNALLIB= ==== //depot/projects/vimage/src/sys/boot/ofw/libofw/ofw_console.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.13 2008/02/06 22:04:28 grehan Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.15 2008/09/19 19:49:58 sobomax Exp $"); #include <sys/types.h> ==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c,v 1.2 2008/03/28 22:16:05 jb Exp $"); +__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c,v 1.3 2008/09/18 19:57:06 imp Exp $"); #include <sys/param.h> #include <sys/lock.h> @@ -74,7 +74,8 @@ return (newval); } -#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) +#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) || \ + defined(__mips__) void atomic_or_8(volatile uint8_t *target, uint8_t value) { ==== //depot/projects/vimage/src/sys/cddl/compat/opensolaris/sys/atomic.h#3 (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/cddl/compat/opensolaris/sys/atomic.h,v 1.4 2008/05/22 08:33:24 jb Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/atomic.h,v 1.5 2008/09/18 19:57:06 imp Exp $ */ #ifndef _OPENSOLARIS_SYS_ATOMIC_H_ @@ -48,7 +48,8 @@ extern uint8_t atomic_or_8_nv(volatile uint8_t *target, uint8_t value); extern void membar_producer(void); -#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) +#if defined(__sparc64__) || defined(__powerpc__) || defined(__arm__) || \ + defined(__mips__) extern void atomic_or_8(volatile uint8_t *target, uint8_t value); #else static __inline void ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#11 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.78 2008/09/15 17:39:40 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.79 2008/09/19 15:17:32 obrien Exp $"); #include "opt_compat.h" @@ -85,6 +85,8 @@ #include <machine/cpu.h> +#include <security/audit/audit.h> + #include <compat/freebsd32/freebsd32_util.h> #include <compat/freebsd32/freebsd32.h> #include <compat/freebsd32/freebsd32_ipc.h> @@ -2552,8 +2554,51 @@ return (cpuset_setaffinity(td, &ap)); } +int +freebsd32_nmount(struct thread *td, + struct freebsd32_nmount_args /* { + struct iovec *iovp; + unsigned int iovcnt; + int flags; + } */ *uap) +{ + struct uio *auio; + struct iovec *iov; + int error, k; + + AUDIT_ARG(fflags, uap->flags); + + /* + * Filter out MNT_ROOTFS. We do not want clients of nmount() in + * userspace to set this flag, but we must filter it out if we want + * MNT_UPDATE on the root file system to work. + * MNT_ROOTFS should only be set in the kernel in vfs_mountroot_try(). + */ + uap->flags &= ~MNT_ROOTFS; + + /* + * check that we have an even number of iovec's + * and that we have at least two options. + */ + if ((uap->iovcnt & 1) || (uap->iovcnt < 4)) + return (EINVAL); + + error = freebsd32_copyinuio(uap->iovp, uap->iovcnt, &auio); + if (error) + return (error); + for (iov = auio->uio_iov, k = 0; k < uap->iovcnt; ++k, ++iov) { + if (iov->iov_len > MMAXOPTIONLEN) { + free(auio, M_IOV); + return (EINVAL); + } + } + + error = vfs_donmount(td, uap->flags, auio); + free(auio, M_IOV); + return error; +} + #if 0 - int freebsd32_xxx(struct thread *td, struct freebsd32_xxx_args *uap) { @@ -2578,5 +2623,4 @@ } return (error); } - #endif ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#12 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.90 2008/09/15 17:39:01 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183042 2008-09-15 17:37:41Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.91 2008/09/19 15:21:40 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -241,6 +241,11 @@ char nevents_l_[PADL_(int)]; int nevents; char nevents_r_[PADR_(int)]; char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)]; }; +struct freebsd32_nmount_args { + char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)]; + char iovcnt_l_[PADL_(unsigned int)]; unsigned int iovcnt; char iovcnt_r_[PADR_(unsigned int)]; + char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)]; +}; struct freebsd32_sendfile_args { char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)]; @@ -413,6 +418,7 @@ int freebsd32_sigtimedwait(struct thread *, struct freebsd32_sigtimedwait_args *); int freebsd32_sigwaitinfo(struct thread *, struct freebsd32_sigwaitinfo_args *); int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *); +int freebsd32_nmount(struct thread *, struct freebsd32_nmount_args *); int freebsd32_sendfile(struct thread *, struct freebsd32_sendfile_args *); int freebsd32_sigaction(struct thread *, struct freebsd32_sigaction_args *); int freebsd32_sigreturn(struct thread *, struct freebsd32_sigreturn_args *); @@ -623,6 +629,7 @@ #define FREEBSD32_SYS_AUE_freebsd32_sigtimedwait AUE_SIGWAIT #define FREEBSD32_SYS_AUE_freebsd32_sigwaitinfo AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_NULL +#define FREEBSD32_SYS_AUE_freebsd32_nmount AUE_NMOUNT #define FREEBSD32_SYS_AUE_freebsd32_sendfile AUE_SENDFILE #define FREEBSD32_SYS_AUE_freebsd32_sigaction AUE_SIGACTION #define FREEBSD32_SYS_AUE_freebsd32_sigreturn AUE_SIGRETURN ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#12 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.89 2008/09/15 17:39:01 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183042 2008-09-15 17:37:41Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.90 2008/09/19 15:21:40 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien */ #define FREEBSD32_SYS_syscall 0 @@ -283,7 +283,7 @@ #define FREEBSD32_SYS_extattr_delete_fd 373 #define FREEBSD32_SYS___setugid 374 #define FREEBSD32_SYS_eaccess 376 -#define FREEBSD32_SYS_nmount 378 +#define FREEBSD32_SYS_freebsd32_nmount 378 #define FREEBSD32_SYS_kenv 390 #define FREEBSD32_SYS_lchflags 391 #define FREEBSD32_SYS_uuidgen 392 ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#12 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.80 2008/09/15 17:39:01 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183042 2008-09-15 17:37:41Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.81 2008/09/19 15:21:40 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien */ const char *freebsd32_syscallnames[] = { @@ -385,7 +385,7 @@ "#375", /* 375 = nfsclnt */ "eaccess", /* 376 = eaccess */ "#377", /* 377 = afs_syscall */ - "nmount", /* 378 = nmount */ + "freebsd32_nmount", /* 378 = freebsd32_nmount */ "#379", /* 379 = kse_exit */ "#380", /* 380 = kse_wakeup */ "#381", /* 381 = kse_create */ ==== //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#12 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.90 2008/09/15 17:39:01 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183042 2008-09-15 17:37:41Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.91 2008/09/19 15:21:40 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien */ #include "opt_compat.h" @@ -416,7 +416,7 @@ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 375 = nfsclnt */ { AS(eaccess_args), (sy_call_t *)eaccess, AUE_EACCESS, NULL, 0, 0 }, /* 376 = eaccess */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 377 = afs_syscall */ - { AS(nmount_args), (sy_call_t *)nmount, AUE_NMOUNT, NULL, 0, 0 }, /* 378 = nmount */ + { AS(freebsd32_nmount_args), (sy_call_t *)freebsd32_nmount, AUE_NMOUNT, NULL, 0, 0 }, /* 378 = freebsd32_nmount */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 379 = kse_exit */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 380 = kse_wakeup */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 381 = kse_create */ ==== //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#13 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.105 2008/09/15 17:37:41 obrien Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.106 2008/09/19 15:17:32 obrien Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -651,7 +651,7 @@ 375 AUE_NULL UNIMPL nfsclnt 376 AUE_EACCESS NOPROTO { int eaccess(char *path, int flags); } 377 AUE_NULL UNIMPL afs_syscall -378 AUE_NMOUNT NOPROTO { int nmount(struct iovec *iovp, \ +378 AUE_NMOUNT STD { int freebsd32_nmount(struct iovec32 *iovp, \ unsigned int iovcnt, int flags); } 379 AUE_NULL UNIMPL kse_exit 380 AUE_NULL UNIMPL kse_wakeup ==== //depot/projects/vimage/src/sys/conf/files.mips#3 (text+ko) ==== @@ -18,7 +18,7 @@ # Copyright (c) 2001, 2004-2005, Juniper Networks, Inc. # All rights reserved. # JNPR: files.mips,v 1.11 2007/08/09 12:25:35 katta -# $FreeBSD: src/sys/conf/files.mips,v 1.2 2008/08/27 01:41:32 imp Exp $ +# $FreeBSD: src/sys/conf/files.mips,v 1.4 2008/09/19 19:46:11 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -29,7 +29,6 @@ # ---------------------------------------------------------------------- mips/mips/machdep.c standard mips/mips/mp_machdep.c optional smp -mips/mips/mips_subr.c standard mips/mips/psraccess.S standard # ---------------------------------------------------------------------- # Phase 3 @@ -76,6 +75,13 @@ geom/geom_bsd_enc.c standard geom/geom_mbr.c standard geom/geom_mbr_enc.c standard +hal.o optional ath_hal \ + compile-with "ATH_HAL_CPU=mips; ATH_ENDIAN=`if ([ x${TARGET_BIG_ENDIAN} = x ]); then echo le; else echo be; fi;`; uudecode < $S/contrib/dev/ath/public/$$ATH_HAL_CPU-$$ATH_ENDIAN-elf.hal.o.uu" \ + no-implicit-rule +opt_ah.h optional ath_hal \ + compile-with "ATH_HAL_CPU=mips; ATH_ENDIAN=`if ([ x${TARGET_BIG_ENDIAN} = x ]); then echo le; else echo be; fi;`; rm -f opt_ah.h; cp $S/contrib/dev/ath/public/$$ATH_HAL_CPU-$$ATH_ENDIAN-elf.opt_ah.h opt_ah.h" \ + no-obj no-implicit-rule before-depend \ + clean "opt_ah.h" libkern/ashldi3.c standard libkern/ashrdi3.c standard libkern/divdi3.c standard ==== //depot/projects/vimage/src/sys/conf/ldscript.mips#2 (text+ko) ==== @@ -1,5 +1,38 @@ -/* $FreeBSD: src/sys/conf/ldscript.mips,v 1.2 2008/04/30 12:44:58 gonzo Exp $ */ -OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips") +/*- + * Copyright (c) 2001, 2004, 2008, Juniper Networks, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Juniper Networks, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY JUNIPER NETWORKS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL JUNIPER NETWORKS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * JNPR: ldscript.mips,v 1.3 2006/10/11 06:12:04 + * $FreeBSD: src/sys/conf/ldscript.mips,v 1.3 2008/09/19 03:36:37 imp Exp $ + */ + +OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", + "elf32-tradlittlemips") + OUTPUT_ARCH(mips) ENTRY(_start) SEARCH_DIR(/usr/lib); ==== //depot/projects/vimage/src/sys/conf/options.mips#2 (text+ko) ==== @@ -1,4 +1,32 @@ -# $FreeBSD: src/sys/conf/options.mips,v 1.1 2008/04/13 06:25:43 imp Exp $ +# Copyright (c) 2001, 2008, Juniper Networks, Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the Juniper Networks, Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY JUNIPER NETWORKS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL JUNIPER NETWORKS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# JNPR: options.mips,v 1.2 2006/09/15 12:52:34 +# $FreeBSD: src/sys/conf/options.mips,v 1.2 2008/09/19 03:36:37 imp Exp $ CPU_MIPS4KC opt_global.h CPU_MIPS32 opt_global.h ==== //depot/projects/vimage/src/sys/dev/acpica/acpi_quirk.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.4 2007/03/22 18:16:40 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_quirk.c,v 1.5 2008/09/19 15:25:13 jkim Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -149,9 +149,9 @@ if (ACPI_FAILURE(AcpiGetTableHeader(ACPI_SIG_FADT, 0, &fadt))) bzero(&fadt, sizeof(fadt)); if (ACPI_FAILURE(AcpiGetTableHeader(ACPI_SIG_DSDT, 0, &dsdt))) - bzero(&fadt, sizeof(dsdt)); + bzero(&dsdt, sizeof(dsdt)); if (ACPI_FAILURE(AcpiGetTableHeader(ACPI_SIG_XSDT, 0, &xsdt))) - bzero(&fadt, sizeof(xsdt)); + bzero(&xsdt, sizeof(xsdt)); /* Then, override the quirks with any matched from table signatures. */ for (entry = acpi_quirks_table; entry->match; entry++) { ==== //depot/projects/vimage/src/sys/dev/cxgb/cxgb_osdep.h#11 (text+ko) ==== @@ -26,7 +26,7 @@ POSSIBILITY OF SUCH DAMAGE. -$FreeBSD: src/sys/dev/cxgb/cxgb_osdep.h,v 1.24 2008/09/16 02:28:08 kmacy Exp $ +$FreeBSD: src/sys/dev/cxgb/cxgb_osdep.h,v 1.25 2008/09/19 21:12:19 kmacy Exp $ ***************************************************************************/ @@ -92,7 +92,6 @@ #define m_get_socket(m) ((m)->m_pkthdr.header) #define KTR_CXGB KTR_SPARE2 -void cxgb_log_tcb(struct adapter *sc, unsigned int tid); #define MT_DONTFREE 128 ==== //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#12 (text+ko) ==== @@ -28,7 +28,7 @@ ***************************************************************************/ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.20 2008/09/17 15:49:44 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c,v 1.21 2008/09/18 23:56:42 kmacy Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1733,10 +1733,9 @@ return (err); inp = so_sotoinpcb(so); + inp_wlock(inp); tp = inp_inpcbtotcpcb(inp); - - inp_wlock(inp); - + oldval = tp->t_flags; if (optval) tp->t_flags |= TF_NODELAY; @@ -3251,6 +3250,7 @@ /* * Fill out information for entering us into the syncache */ + bzero(&inc, sizeof(inc)); inc.inc_fport = th.th_sport = req->peer_port; inc.inc_lport = th.th_dport = req->local_port; th.th_seq = req->rcv_isn; @@ -3595,6 +3595,7 @@ /* * Fill out information for entering us into the syncache */ + bzero(&inc, sizeof(inc)); inc.inc_fport = th.th_sport = req->peer_port; inc.inc_lport = th.th_dport = req->local_port; th.th_seq = req->rcv_isn; ==== //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_defs.h#4 (text+ko) ==== @@ -27,7 +27,7 @@ POSSIBILITY OF SUCH DAMAGE. -$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_defs.h,v 1.4 2008/04/19 03:22:42 kmacy Exp $ +$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_defs.h,v 1.5 2008/09/19 21:12:19 kmacy Exp $ ***************************************************************************/ #ifndef CXGB_DEFS_H_ @@ -49,6 +49,7 @@ struct toepcb; struct listen_ctx; +void cxgb_log_tcb(struct adapter *sc, unsigned int tid); typedef void (*defer_handler_t)(struct toedev *dev, struct mbuf *m); void t3tom_register_cpl_handler(unsigned int opcode, cxgb_cpl_handler_func h); ==== //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_tom.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ ***************************************************************************/ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_tom.c,v 1.8 2008/09/16 01:02:17 kmacy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cxgb/ulp/tom/cxgb_tom.c,v 1.9 2008/09/19 21:12:19 kmacy Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -145,6 +145,35 @@ .redirect = NULL }; +void +cxgb_log_tcb(struct adapter *sc, unsigned int tid) +{ + + char buf[TCB_SIZE]; + uint64_t *tcb = (uint64_t *)buf; + int i, error; + struct mc7 *mem = &sc->cm; + + error = t3_mc7_bd_read(mem, tid*TCB_SIZE/8, TCB_SIZE/8, tcb); + if (error) + printf("cxgb_tcb_log failed\n"); + + + CTR1(KTR_CXGB, "TCB tid=%u", tid); + for (i = 0; i < TCB_SIZE / 32; i++) { + + CTR5(KTR_CXGB, "%1d: %08x %08x %08x %08x", + i, (uint32_t)tcb[1], (uint32_t)(tcb[1] >> 32), + (uint32_t)tcb[0], (uint32_t)(tcb[0] >> 32)); + + tcb += 2; + CTR4(KTR_CXGB, " %08x %08x %08x %08x", + (uint32_t)tcb[1], (uint32_t)(tcb[1] >> 32), + (uint32_t)tcb[0], (uint32_t)(tcb[0] >> 32)); + tcb += 2; + } +} + /* * Add an skb to the deferred skb queue for processing from process context. */ ==== //depot/projects/vimage/src/sys/dev/pci/vga_pci.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/pci/vga_pci.c,v 1.6 2008/09/16 19:52:02 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/pci/vga_pci.c,v 1.7 2008/09/19 19:11:35 rnoland Exp $"); /* * Simple driver for PCI VGA display devices. Drivers such as agp(4) and @@ -110,6 +110,22 @@ return (EINVAL); } +static int +vga_pci_setup_intr(device_t dev, device_t child, struct resource *irq, + int flags, driver_filter_t *filter, driver_intr_t *intr, void *arg, + void **cookiep) +{ + return (BUS_SETUP_INTR(device_get_parent(dev), dev, irq, flags, + filter, intr, arg, cookiep)); +} + +static int +vga_pci_teardown_intr(device_t dev, device_t child, struct resource *irq, + void *cookie) +{ + return (BUS_TEARDOWN_INTR(device_get_parent(dev), dev, irq, cookie)); +} + static struct resource * vga_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) @@ -311,8 +327,8 @@ /* Bus interface */ DEVMETHOD(bus_read_ivar, vga_pci_read_ivar), DEVMETHOD(bus_write_ivar, vga_pci_write_ivar), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), + DEVMETHOD(bus_setup_intr, vga_pci_setup_intr), + DEVMETHOD(bus_teardown_intr, vga_pci_teardown_intr), DEVMETHOD(bus_alloc_resource, vga_pci_alloc_resource), DEVMETHOD(bus_release_resource, vga_pci_release_resource), ==== //depot/projects/vimage/src/sys/dev/snp/snp.c#8 (text+ko) ==== @@ -15,7 +15,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/snp/snp.c,v 1.109 2008/08/15 13:07:07 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/snp/snp.c,v 1.110 2008/09/19 10:21:30 ed Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -43,7 +43,7 @@ static struct cdevsw snp_cdevsw = { .d_version = D_VERSION, - .d_flags = D_PSEUDO | D_NEEDGIANT | D_NEEDMINOR, + .d_flags = D_PSEUDO | D_NEEDGIANT, .d_open = snpopen, .d_read = snpread, .d_write = snpwrite, ==== //depot/projects/vimage/src/sys/dev/usb/if_zyd.c#11 (text+ko) ==== @@ -1,6 +1,6 @@ /* $OpenBSD: if_zyd.c,v 1.52 2007/02/11 00:08:04 jsg Exp $ */ /* $NetBSD: if_zyd.c,v 1.7 2007/06/21 04:04:29 kiyohara Exp $ */ -/* $FreeBSD: src/sys/dev/usb/if_zyd.c,v 1.20 2008/09/10 03:40:51 weongyo Exp $ */ +/* $FreeBSD: src/sys/dev/usb/if_zyd.c,v 1.22 2008/09/19 07:40:30 weongyo Exp $ */ /*- * Copyright (c) 2006 by Damien Bergamini <damien.bergamini@free.fr> @@ -234,6 +234,7 @@ static void zyd_scan_start(struct ieee80211com *); static void zyd_scan_end(struct ieee80211com *); static void zyd_set_channel(struct ieee80211com *); +static void zyd_wakeup(struct zyd_softc *); static int zyd_match(device_t dev) @@ -451,9 +452,6 @@ if (!device_is_attached(dev)) return 0; - /* set a flag to indicate we're detaching. */ - sc->sc_flags |= ZYD_FLAG_DETACHING; - /* protect a race when we have listeners related with the driver. */ ifp->if_flags &= ~IFF_UP; @@ -461,10 +459,14 @@ bpfdetach(ifp); ieee80211_ifdetach(ic); + /* set a flag to indicate we're detaching. */ + sc->sc_flags |= ZYD_FLAG_DETACHING; + usb_rem_task(sc->sc_udev, &sc->sc_scantask); usb_rem_task(sc->sc_udev, &sc->sc_task); callout_stop(&sc->sc_watchdog_ch); + zyd_wakeup(sc); zyd_close_pipes(sc); if_free(ifp); @@ -763,7 +765,9 @@ struct ieee80211com *ic = vap->iv_ic; struct zyd_softc *sc = ic->ic_ifp->if_softc; + usb_rem_task(sc->sc_udev, &sc->sc_scantask); usb_rem_task(sc->sc_udev, &sc->sc_task); + callout_stop(&sc->sc_watchdog_ch); /* do it in a process context */ sc->sc_state = nstate; @@ -788,6 +792,9 @@ uint16_t xferflags; usbd_status error; + if (sc->sc_flags & ZYD_FLAG_DETACHING) + return ENXIO; + if ((xfer = usbd_alloc_xfer(sc->sc_udev)) == NULL) return ENOMEM; @@ -2746,9 +2753,6 @@ struct ifnet *ifp = sc->sc_ifp; struct ieee80211com *ic = ifp->if_l2com; - if (sc->sc_flags & ZYD_FLAG_DETACHING) - return; - ZYD_LOCK(sc); switch (sc->sc_scan_action) { @@ -2777,6 +2781,16 @@ ZYD_UNLOCK(sc); } +static void +zyd_wakeup(struct zyd_softc *sc) +{ + struct rq *rqp; + + STAILQ_FOREACH(rqp, &sc->sc_rqh, rq) { + wakeup(rqp->odata); /* wakeup sleeping caller */ + } +} + static device_method_t zyd_methods[] = { /* Device interface */ DEVMETHOD(device_probe, zyd_match), ==== //depot/projects/vimage/src/sys/dev/usb/usbdevs#29 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/sys/dev/usb/usbdevs,v 1.371 2008/09/14 15:21:22 thompsa Exp $ +$FreeBSD: src/sys/dev/usb/usbdevs,v 1.372 2008/09/19 09:04:06 kevlo Exp $ /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */ /*- @@ -282,6 +282,7 @@ vendor APPLE 0x05ac Apple Computer vendor YCCABLE 0x05ad Y.C. Cable vendor DIGITALPERSONA 0x05ba DigitalPersona +vendor 3G 0x05bc 3G Green Green Globe vendor RAFI 0x05bd RAFI vendor TYCO 0x05be Tyco vendor KAWASAKI 0x05c1 Kawasaki ==== //depot/projects/vimage/src/sys/i386/i386/identcpu.c#10 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.186 2008/09/17 20:45:18 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.187 2008/09/18 18:51:32 stas Exp $"); #include "opt_cpu.h" @@ -743,8 +743,8 @@ "\030POPCNT" "\031<b24>" "\032<b25>" - "\033<b26>" - "\034<b27>" + "\033XSAVE" + "\034OSXSAVE" "\035<b28>" "\036<b29>" "\037<b30>" ==== //depot/projects/vimage/src/sys/i386/i386/pmap.c#20 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.627 2008/08/04 08:04:09 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.628 2008/09/19 03:33:49 alc Exp $"); /* * Manages physical address maps. @@ -2883,9 +2883,8 @@ PMAP_LOCK_ASSERT(pmap, MA_OWNED); firstpte = vtopte(trunc_4mpage(va)); - KASSERT((*firstpte & PG_V) != 0, - ("pmap_promote_pde: firstpte is missing PG_V")); - if ((*firstpte & PG_A) == 0) { + newpde = *firstpte; + if ((newpde & (PG_A | PG_V)) != (PG_A | PG_V)) { pmap_pde_p_failures++; CTR2(KTR_PMAP, "pmap_promote_pde: failure for va %#x" " in pmap %p", va, pmap); @@ -2897,14 +2896,13 @@ " in pmap %p", va, pmap); return; } - pa = *firstpte & PG_PS_FRAME; - newpde = *firstpte; if ((newpde & (PG_M | PG_RW)) == PG_RW) newpde &= ~PG_RW; /* * Check all the ptes before promotion */ + pa = newpde & PG_PS_FRAME; for (pte = firstpte; pte < firstpte + NPTEPG; pte++) { retry: oldpte = *pte; ==== //depot/projects/vimage/src/sys/kern/kern_syscalls.c#2 (text+ko) ==== @@ -25,113 +25,113 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_syscalls.c,v 1.12 2006/08/01 16:32:20 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_syscalls.c,v 1.13 2008/09/18 20:10:11 jhb Exp $"); #include <sys/param.h> -#include <sys/sysproto.h> -#include <sys/sysent.h> -#include <sys/syscall.h> #include <sys/lock.h> -#include <sys/mutex.h> +#include <sys/module.h> #include <sys/sx.h> -#include <sys/module.h> +#include <sys/syscall.h> +#include <sys/sysent.h> +#include <sys/sysproto.h> /* - * Acts like "nosys" but can be identified in sysent for dynamic call - * number assignment for a limited number of calls. - * + * Acts like "nosys" but can be identified in sysent for dynamic call + * number assignment for a limited number of calls. + * * Place holder for system call slots reserved for loadable modules. - */ + */ int lkmnosys(struct thread *td, struct nosys_args *args) { - return(nosys(td, args)); + + return (nosys(td, args)); } int lkmressys(struct thread *td, struct nosys_args *args) { - return(nosys(td, args)); + + return (nosys(td, args)); } int syscall_register(int *offset, struct sysent *new_sysent, - struct sysent *old_sysent) + struct sysent *old_sysent) { - if (*offset == NO_SYSCALL) { - int i; + int i; - for (i = 1; i < SYS_MAXSYSCALL; ++i) - if (sysent[i].sy_call == (sy_call_t *)lkmnosys) - break; - if (i == SYS_MAXSYSCALL) - return ENFILE; - *offset = i; - } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) - return EINVAL; - else if (sysent[*offset].sy_call != (sy_call_t *)lkmnosys && - sysent[*offset].sy_call != (sy_call_t *)lkmressys) - return EEXIST; + if (*offset == NO_SYSCALL) { + for (i = 1; i < SYS_MAXSYSCALL; ++i) + if (sysent[i].sy_call == (sy_call_t *)lkmnosys) + break; + if (i == SYS_MAXSYSCALL) + return (ENFILE); + *offset = i; + } else if (*offset < 0 || *offset >= SYS_MAXSYSCALL) + return (EINVAL); + else if (sysent[*offset].sy_call != (sy_call_t *)lkmnosys && + sysent[*offset].sy_call != (sy_call_t *)lkmressys) + return (EEXIST); - *old_sysent = sysent[*offset]; - sysent[*offset] = *new_sysent; - return 0; + *old_sysent = sysent[*offset]; + sysent[*offset] = *new_sysent; + return (0); } int syscall_deregister(int *offset, struct sysent *old_sysent) { - if (*offset) - sysent[*offset] = *old_sysent; - return 0; + + if (*offset) + sysent[*offset] = *old_sysent; + return (0); } int syscall_module_handler(struct module *mod, int what, void *arg) { - struct syscall_module_data *data = (struct syscall_module_data*)arg; - modspecific_t ms; - int error; + struct syscall_module_data *data = arg; + modspecific_t ms; + int error; - switch (what) { - case MOD_LOAD : - error = syscall_register(data->offset, data->new_sysent, - &data->old_sysent); - if (error) { - /* Leave a mark so we know to safely unload below. */ - data->offset = NULL; - return error; - } - ms.intval = *data->offset; - MOD_XLOCK; - module_setspecific(mod, &ms); - MOD_XUNLOCK; - if (data->chainevh) - error = data->chainevh(mod, what, data->chainarg); - return error; + switch (what) { + case MOD_LOAD: + error = syscall_register(data->offset, data->new_sysent, + &data->old_sysent); + if (error) { + /* Leave a mark so we know to safely unload below. */ + data->offset = NULL; + return (error); + } + ms.intval = *data->offset; + MOD_XLOCK; + module_setspecific(mod, &ms); + MOD_XUNLOCK; + if (data->chainevh) + error = data->chainevh(mod, what, data->chainarg); + return (error); + case MOD_UNLOAD: + /* + * MOD_LOAD failed, so just return without calling the + * chained handler since we didn't pass along the MOD_LOAD + * event. + */ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809192354.m8JNstRI043656>