Date: Sat, 11 Apr 2009 06:55:13 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 160476 for review Message-ID: <200904110655.n3B6tD8u076981@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=160476 Change 160476 by zec@zec_tpx32 on 2009/04/11 06:55:02 IFC @ 160474 Affected files ... .. //depot/projects/vimage-commit/src/sys/amd64/conf/GENERIC#11 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/cpufunc.h#5 integrate .. //depot/projects/vimage-commit/src/sys/amd64/include/endian.h#3 integrate .. //depot/projects/vimage-commit/src/sys/arm/arm/trap.c#3 integrate .. //depot/projects/vimage-commit/src/sys/boot/i386/libi386/Makefile#4 integrate .. //depot/projects/vimage-commit/src/sys/boot/i386/libi386/smbios.c#4 integrate .. //depot/projects/vimage-commit/src/sys/cam/cam_xpt.c#6 integrate .. //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/sys/vnode.h#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#5 integrate .. //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#5 integrate .. //depot/projects/vimage-commit/src/sys/conf/NOTES#13 integrate .. //depot/projects/vimage-commit/src/sys/conf/files#18 integrate .. //depot/projects/vimage-commit/src/sys/dev/ata/ata-queue.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/ath/ath_hal/ah_internal.h#2 integrate .. //depot/projects/vimage-commit/src/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/cxgb/cxgb_sge.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/r300_cmdbuf.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/r300_reg.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/radeon_cp.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/drm/radeon_drv.h#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_80003es2lan.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_82540.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_82541.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_82571.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_82575.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_82575.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_api.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_api.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_defines.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_hw.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_ich8lan.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_ich8lan.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_mac.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_mac.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_nvm.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_nvm.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_phy.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_phy.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/e1000_regs.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/if_em.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/if_igb.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/e1000/if_igb.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ed/if_ed_pccard.c#8 integrate .. //depot/projects/vimage-commit/src/sys/dev/ed/if_edreg.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/ep/if_ep.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ep/if_ep_pccard.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ep/if_epreg.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ep/if_epvar.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/access601.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/amd64-elf.raid.o.uu#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/array.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/command.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/entry.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/global.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/gui_lib.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/hptintf.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/hptproc.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/i386-elf.raid.o.uu#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/ioctl.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/mvOs.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/mvSata.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/mvStorageDev.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/osbsd.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/raid5n.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/readme.txt#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/hptmv/vdevice.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/if_ndis/if_ndis.c#9 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/LICENSE#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/README#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe.h#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_82598.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_82599.c#1 branch .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_api.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_api.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_common.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_common.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_osdep.h#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_phy.c#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_phy.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/ixgbe/ixgbe_type.h#5 integrate .. //depot/projects/vimage-commit/src/sys/dev/kbd/kbdreg.h#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/kbdmux/kbdmux.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/pccbb/pccbb_pci.c#6 integrate .. //depot/projects/vimage-commit/src/sys/dev/syscons/syscons.c#7 integrate .. //depot/projects/vimage-commit/src/sys/dev/uart/uart_cpu_powerpc.c#4 integrate .. //depot/projects/vimage-commit/src/sys/dev/uart/uart_dev_ns8250.c#3 integrate .. //depot/projects/vimage-commit/src/sys/dev/usb/controller/usb_controller.c#5 integrate .. //depot/projects/vimage-commit/src/sys/fs/devfs/devfs_vnops.c#9 integrate .. //depot/projects/vimage-commit/src/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/vimage-commit/src/sys/fs/pseudofs/pseudofs_vnops.c#5 integrate .. //depot/projects/vimage-commit/src/sys/fs/unionfs/union_subr.c#4 integrate .. //depot/projects/vimage-commit/src/sys/fs/unionfs/union_vnops.c#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/geom.h#5 integrate .. //depot/projects/vimage-commit/src/sys/geom/geom_disk.c#6 integrate .. //depot/projects/vimage-commit/src/sys/geom/geom_disk.h#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/geom_subr.c#6 integrate .. //depot/projects/vimage-commit/src/sys/geom/journal/g_journal.c#7 integrate .. //depot/projects/vimage-commit/src/sys/geom/mirror/g_mirror.c#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/part/g_part.c#9 integrate .. //depot/projects/vimage-commit/src/sys/geom/part/g_part_ebr.c#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/raid3/g_raid3.c#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/vinum/geom_vinum_share.c#4 integrate .. //depot/projects/vimage-commit/src/sys/geom/vinum/geom_vinum_share.h#4 integrate .. //depot/projects/vimage-commit/src/sys/i386/include/endian.h#3 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_acct.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_alq.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_ktrace.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_sig.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_time.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/kern_vimage.c#5 integrate .. //depot/projects/vimage-commit/src/sys/kern/tty.c#12 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_domain.c#7 integrate .. //depot/projects/vimage-commit/src/sys/kern/uipc_usrreq.c#9 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_acl.c#3 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_cache.c#10 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_default.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_extattr.c#4 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_mount.c#11 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_syscalls.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/vfs_vnops.c#6 integrate .. //depot/projects/vimage-commit/src/sys/kern/vnode_if.src#5 integrate .. //depot/projects/vimage-commit/src/sys/modules/ixgbe/Makefile#4 integrate .. //depot/projects/vimage-commit/src/sys/net/if.c#16 integrate .. //depot/projects/vimage-commit/src/sys/net/if_gif.c#11 integrate .. //depot/projects/vimage-commit/src/sys/net/if_loop.c#15 integrate .. //depot/projects/vimage-commit/src/sys/net/if_spppsubr.c#9 integrate .. //depot/projects/vimage-commit/src/sys/net/route.c#12 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_output.c#8 integrate .. //depot/projects/vimage-commit/src/sys/net80211/ieee80211_var.h#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/if_ether.c#12 integrate .. //depot/projects/vimage-commit/src/sys/netinet/in_pcb.h#9 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_dummynet.c#4 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_dummynet.h#4 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/ip_output.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_cuseeme.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_dummy.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_ftp.c#5 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_irc.c#4 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_mod.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_mod.h#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_nbt.c#4 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_pptp.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_skinny.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/libalias/alias_smedia.c#3 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_indata.c#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_sysctl.c#7 integrate .. //depot/projects/vimage-commit/src/sys/netinet/sctp_uio.h#8 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_input.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netinet/tcp_usrreq.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netinet6/ip6_input.c#13 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/ipsec.c#16 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ah.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_esp.c#11 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ipcomp.c#10 integrate .. //depot/projects/vimage-commit/src/sys/netipsec/xform_ipip.c#11 integrate .. //depot/projects/vimage-commit/src/sys/nfs/nfs_nfssvc.c#1 branch .. //depot/projects/vimage-commit/src/sys/nfs/nfssvc.h#1 branch .. //depot/projects/vimage-commit/src/sys/nfs4client/nfs4_vnops.c#5 integrate .. //depot/projects/vimage-commit/src/sys/nfsclient/nfs_vnops.c#11 integrate .. //depot/projects/vimage-commit/src/sys/pc98/pc98/machdep.c#5 integrate .. //depot/projects/vimage-commit/src/sys/sys/elf_common.h#6 integrate .. //depot/projects/vimage-commit/src/sys/sys/kernel.h#8 integrate .. //depot/projects/vimage-commit/src/sys/sys/mbuf.h#6 integrate .. //depot/projects/vimage-commit/src/sys/sys/param.h#15 integrate .. //depot/projects/vimage-commit/src/sys/sys/systm.h#7 integrate .. //depot/projects/vimage-commit/src/sys/sys/vimage.h#12 integrate .. //depot/projects/vimage-commit/src/sys/sys/vnode.h#7 integrate .. //depot/projects/vimage-commit/src/sys/ufs/ffs/ffs_snapshot.c#5 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_map.c#5 integrate .. //depot/projects/vimage-commit/src/sys/vm/vm_map.h#4 integrate Differences ... ==== //depot/projects/vimage-commit/src/sys/amd64/conf/GENERIC#11 (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.522 2009/03/19 20:33:26 thompsa Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.523 2009/04/10 00:40:48 jfv Exp $ cpu HAMMER ident GENERIC @@ -200,7 +200,7 @@ device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel PRO/1000 Gigabit Ethernet Family device igb # Intel PRO/1000 PCIE Server Gigabit Family -device ixgb # Intel PRO/10GbE Ethernet Card +device ixgbe # Intel PRO/10GbE PCIE Ethernet Family device le # AMD Am7900 LANCE and Am79C9xx PCnet device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') ==== //depot/projects/vimage-commit/src/sys/amd64/include/cpufunc.h#5 (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.151 2009/01/31 11:37:21 obrien Exp $ + * $FreeBSD: src/sys/amd64/include/cpufunc.h,v 1.152 2009/04/07 19:31:36 ed Exp $ */ /* @@ -535,12 +535,9 @@ static __inline void load_fs(u_int sel) { - register u_int32_t fsbase __asm("ecx"); - /* Preserve the fsbase value across the selector load */ - fsbase = MSR_FSBASE; - __asm __volatile("rdmsr; mov %0,%%fs; wrmsr" - : : "rm" (sel), "c" (fsbase) : "eax", "edx"); + __asm __volatile("rdmsr; mov %0,%%fs; wrmsr" + : : "rm" (sel), "c" (MSR_FSBASE) : "eax", "edx"); } #ifndef MSR_GSBASE @@ -549,16 +546,13 @@ static __inline void load_gs(u_int sel) { - register u_int32_t gsbase __asm("ecx"); - /* * Preserve the gsbase value across the selector load. * Note that we have to disable interrupts because the gsbase * being trashed happens to be the kernel gsbase at the time. */ - gsbase = MSR_GSBASE; - __asm __volatile("pushfq; cli; rdmsr; mov %0,%%gs; wrmsr; popfq" - : : "rm" (sel), "c" (gsbase) : "eax", "edx"); + __asm __volatile("pushfq; cli; rdmsr; mov %0,%%gs; wrmsr; popfq" + : : "rm" (sel), "c" (MSR_GSBASE) : "eax", "edx"); } #else /* Usable by userland */ ==== //depot/projects/vimage-commit/src/sys/amd64/include/endian.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)endian.h 7.8 (Berkeley) 4/3/91 - * $FreeBSD: src/sys/amd64/include/endian.h,v 1.8 2005/03/11 21:46:01 peter Exp $ + * $FreeBSD: src/sys/amd64/include/endian.h,v 1.10 2009/04/08 19:10:20 ed Exp $ */ #ifndef _MACHINE_ENDIAN_H_ @@ -69,25 +69,6 @@ #if defined(__GNUCLIKE_ASM) && defined(__GNUCLIKE_BUILTIN_CONSTANT_P) -#define __word_swap_int_var(x) \ -__extension__ ({ register __uint32_t __X = (x); \ - __asm ("rorl $16, %0" : "+r" (__X)); \ - __X; }) - -#ifdef __OPTIMIZE__ - -#define __word_swap_int_const(x) \ - ((((x) & 0xffff0000) >> 16) | \ - (((x) & 0x0000ffff) << 16)) -#define __word_swap_int(x) (__builtin_constant_p(x) ? \ - __word_swap_int_const(x) : __word_swap_int_var(x)) - -#else /* __OPTIMIZE__ */ - -#define __word_swap_int(x) __word_swap_int_var(x) - -#endif /* __OPTIMIZE__ */ - #define __byte_swap_int_var(x) \ __extension__ ({ register __uint32_t __X = (x); \ __asm ("bswap %0" : "+r" (__X)); \ @@ -135,26 +116,6 @@ #endif /* __OPTIMIZE__ */ -#define __byte_swap_word_var(x) \ -__extension__ ({ register __uint16_t __X = (x); \ - __asm ("xchgb %h0, %b0" : "+Q" (__X)); \ - __X; }) - -#ifdef __OPTIMIZE__ - -#define __byte_swap_word_const(x) \ - ((((x) & 0xff00) >> 8) | \ - (((x) & 0x00ff) << 8)) - -#define __byte_swap_word(x) (__builtin_constant_p(x) ? \ - __byte_swap_word_const(x) : __byte_swap_word_var(x)) - -#else /* __OPTIMIZE__ */ - -#define __byte_swap_word(x) __byte_swap_word_var(x) - -#endif /* __OPTIMIZE__ */ - static __inline __uint64_t __bswap64(__uint64_t _x) { @@ -172,8 +133,7 @@ static __inline __uint16_t __bswap16(__uint16_t _x) { - - return (__byte_swap_word(_x)); + return (_x << 8 | _x >> 8); } #define __htonl(x) __bswap32(x) ==== //depot/projects/vimage-commit/src/sys/arm/arm/trap.c#3 (text+ko) ==== @@ -82,7 +82,7 @@ #include "opt_ktrace.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.37 2008/03/12 10:11:55 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.39 2009/04/08 13:01:18 raj Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -520,7 +520,8 @@ printf(", pc =%08x\n\n", tf->tf_pc); #ifdef KDB - kdb_trap(fsr, 0, tf); + if (debugger_on_panic || kdb_active) + kdb_trap(fsr, 0, tf); #endif panic("Fatal abort"); /*NOTREACHED*/ @@ -530,7 +531,7 @@ * dab_align() handles the following data aborts: * * FAULT_ALIGN_0 - Alignment fault - * FAULT_ALIGN_0 - Alignment fault + * FAULT_ALIGN_1 - Alignment fault * * These faults are fatal if they happen in kernel mode. Otherwise, we * deliver a bus error to the process. ==== //depot/projects/vimage-commit/src/sys/boot/i386/libi386/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.44 2009/03/09 17:16:29 jhb Exp $ +# $FreeBSD: src/sys/boot/i386/libi386/Makefile,v 1.45 2009/04/07 17:58:15 jkim Exp $ # LIB= i386 INTERNALLIB= @@ -31,6 +31,10 @@ .if !defined(BOOT_HIDE_SERIAL_NUMBERS) # Export serial numbers, UUID, and asset tag from loader. CFLAGS+= -DSMBIOS_SERIAL_NUMBERS +.if defined(BOOT_LITTLE_ENDIAN_UUID) +# Use little-endian UUID format as defined in SMBIOS 2.6. +CFLAGS+= -DSMBIOS_LITTLE_ENDIAN_UUID +.endif .endif .if !defined(LOADER_NO_GPT_SUPPORT) ==== //depot/projects/vimage-commit/src/sys/boot/i386/libi386/smbios.c#4 (text+ko) ==== @@ -25,10 +25,11 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.8 2009/03/31 21:02:55 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/smbios.c,v 1.10 2009/04/07 17:58:15 jkim Exp $"); #include <stand.h> #include <bootstrap.h> +#include <sys/endian.h> #include "btxv86.h" #include "libi386.h" @@ -37,17 +38,18 @@ * Detect SMBIOS and export information about the SMBIOS into the * environment. * - * System Management BIOS Reference Specification, v2.4 Final - * http://www.dmtf.org/standards/published_documents/DSP0134.pdf + * System Management BIOS Reference Specification, v2.6 Final + * http://www.dmtf.org/standards/published_documents/DSP0134_2.6.0.pdf */ /* - * Spec. 2.1.1 SMBIOS Structure Table Entry Point + * 2.1.1 SMBIOS Structure Table Entry Point * - * 'The SMBIOS Entry Point structure, described below, can be located by - * application software by searching for the anchor-string on paragraph - * (16-byte) boundaries within the physical memory address range - * 000F0000h to 000FFFFFh.' + * "On non-EFI systems, the SMBIOS Entry Point structure, described below, can + * be located by application software by searching for the anchor-string on + * paragraph (16-byte) boundaries within the physical memory address range + * 000F0000h to 000FFFFFh. This entry point encapsulates an intermediate anchor + * string that is used by some existing DMI browsers." */ #define SMBIOS_START 0xf0000 #define SMBIOS_LENGTH 0x10000 @@ -55,100 +57,174 @@ #define SMBIOS_SIG "_SM_" #define SMBIOS_DMI_SIG "_DMI_" +#define SMBIOS_GET8(base, off) (*(uint8_t *)((base) + (off))) +#define SMBIOS_GET16(base, off) (*(uint16_t *)((base) + (off))) +#define SMBIOS_GET32(base, off) (*(uint32_t *)((base) + (off))) + +#define SMBIOS_GETLEN(base) SMBIOS_GET8(base, 0x01) +#define SMBIOS_GETSTR(base) ((base) + SMBIOS_GETLEN(base)) + static uint32_t smbios_enabled_memory = 0; static uint32_t smbios_old_enabled_memory = 0; static uint8_t smbios_enabled_sockets = 0; static uint8_t smbios_populated_sockets = 0; -static uint8_t *smbios_parse_table(const uint8_t *dmi); -static void smbios_setenv(const char *name, const uint8_t *dmi, - const int offset); -static uint8_t smbios_checksum(const caddr_t addr, const uint8_t len); -static uint8_t *smbios_sigsearch(const caddr_t addr, const uint32_t len); +static uint8_t +smbios_checksum(const caddr_t addr, const uint8_t len) +{ + uint8_t sum; + int i; -#ifdef SMBIOS_SERIAL_NUMBERS -static void smbios_setuuid(const char *name, const uint8_t *dmi, - const int offset); -#endif + for (sum = 0, i = 0; i < len; i++) + sum += SMBIOS_GET8(addr, i); + return (sum); +} -void -smbios_detect(void) +static caddr_t +smbios_sigsearch(const caddr_t addr, const uint32_t len) { - uint8_t *smbios, *dmi, *addr; - uint16_t i, length, count; - uint32_t paddr; - char buf[4]; + caddr_t cp; - /* locate and validate the SMBIOS */ - smbios = smbios_sigsearch(PTOV(SMBIOS_START), SMBIOS_LENGTH); - if (smbios == NULL) - return; + /* Search on 16-byte boundaries. */ + for (cp = addr; cp < addr + len; cp += SMBIOS_STEP) + if (strncmp(cp, SMBIOS_SIG, 4) == 0 && + smbios_checksum(cp, SMBIOS_GET8(cp, 0x05)) == 0 && + strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5) == 0 && + smbios_checksum(cp + 0x10, 0x0f) == 0) + return (cp); + return (NULL); +} - length = *(uint16_t *)(smbios + 0x16); /* Structure Table Length */ - paddr = *(uint32_t *)(smbios + 0x18); /* Structure Table Address */ - count = *(uint16_t *)(smbios + 0x1c); /* No of SMBIOS Structures */ +static void +smbios_setenv(const char *name, caddr_t addr, const int offset) +{ + caddr_t cp; + int i, idx; - for (dmi = addr = PTOV(paddr), i = 0; - dmi - addr < length && i < count; i++) - dmi = smbios_parse_table(dmi); - if (smbios_enabled_memory > 0 || smbios_old_enabled_memory > 0) { - sprintf(buf, "%u", smbios_enabled_memory > 0 ? - smbios_enabled_memory : smbios_old_enabled_memory); - setenv("smbios.memory.enabled", buf, 1); + idx = SMBIOS_GET8(addr, offset); + if (idx != 0) { + cp = SMBIOS_GETSTR(addr); + for (i = 1; i < idx; i++) + cp += strlen(cp) + 1; + setenv(name, cp, 1); } - if (smbios_enabled_sockets > 0) { - sprintf(buf, "%u", smbios_enabled_sockets); - setenv("smbios.socket.enabled", buf, 1); +} + +#ifdef SMBIOS_SERIAL_NUMBERS + +#define UUID_SIZE 16 +#define UUID_TYPE uint32_t +#define UUID_STEP sizeof(UUID_TYPE) +#define UUID_ALL_BITS (UUID_SIZE / UUID_STEP) +#define UUID_GET(base, off) (*(UUID_TYPE *)((base) + (off))) + +static void +smbios_setuuid(const char *name, const caddr_t addr, const int ver) +{ + char uuid[37]; + int i, ones, zeros; + UUID_TYPE n; + uint32_t f1; + uint16_t f2, f3; + + for (i = 0, ones = 0, zeros = 0; i < UUID_SIZE; i += UUID_STEP) { + n = UUID_GET(addr, i) + 1; + if (zeros == 0 && n == 0) + ones++; + else if (ones == 0 && n == 1) + zeros++; + else + break; } - if (smbios_populated_sockets > 0) { - sprintf(buf, "%u", smbios_populated_sockets); - setenv("smbios.socket.populated", buf, 1); + + if (ones != UUID_ALL_BITS && zeros != UUID_ALL_BITS) { + /* + * 3.3.2.1 System UUID + * + * "Although RFC 4122 recommends network byte order for all + * fields, the PC industry (including the ACPI, UEFI, and + * Microsoft specifications) has consistently used + * little-endian byte encoding for the first three fields: + * time_low, time_mid, time_hi_and_version. The same encoding, + * also known as wire format, should also be used for the + * SMBIOS representation of the UUID." + * + * Note: We use network byte order for backward compatibility + * unless SMBIOS version is 2.6+ or little-endian is forced. + */ +#ifndef SMBIOS_LITTLE_ENDIAN_UUID + if (ver < 0x0206) { + f1 = ntohl(SMBIOS_GET32(addr, 0)); + f2 = ntohs(SMBIOS_GET16(addr, 4)); + f3 = ntohs(SMBIOS_GET16(addr, 6)); + } else +#endif + { + f1 = le32toh(SMBIOS_GET32(addr, 0)); + f2 = le16toh(SMBIOS_GET16(addr, 4)); + f3 = le16toh(SMBIOS_GET16(addr, 6)); + } + sprintf(uuid, + "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", + f1, f2, f3, SMBIOS_GET8(addr, 8), SMBIOS_GET8(addr, 9), + SMBIOS_GET8(addr, 10), SMBIOS_GET8(addr, 11), + SMBIOS_GET8(addr, 12), SMBIOS_GET8(addr, 13), + SMBIOS_GET8(addr, 14), SMBIOS_GET8(addr, 15)); + setenv(name, uuid, 1); } } -static uint8_t * -smbios_parse_table(const uint8_t *dmi) +#undef UUID_SIZE +#undef UUID_TYPE +#undef UUID_STEP +#undef UUID_ALL_BITS +#undef UUID_GET + +#endif + +static caddr_t +smbios_parse_table(const caddr_t addr, const int ver) { - uint8_t *dp; - uint16_t size; - uint8_t osize; + caddr_t cp; + int proc, size, osize, type; - switch(dmi[0]) { - case 0: /* Type 0: BIOS */ - smbios_setenv("smbios.bios.vendor", dmi, 0x04); - smbios_setenv("smbios.bios.version", dmi, 0x05); - smbios_setenv("smbios.bios.reldate", dmi, 0x08); + type = SMBIOS_GET8(addr, 0); /* 3.1.2 Structure Header Format */ + switch(type) { + case 0: /* 3.3.1 BIOS Information (Type 0) */ + smbios_setenv("smbios.bios.vendor", addr, 0x04); + smbios_setenv("smbios.bios.version", addr, 0x05); + smbios_setenv("smbios.bios.reldate", addr, 0x08); break; - case 1: /* Type 1: System */ - smbios_setenv("smbios.system.maker", dmi, 0x04); - smbios_setenv("smbios.system.product", dmi, 0x05); - smbios_setenv("smbios.system.version", dmi, 0x06); + case 1: /* 3.3.2 System Information (Type 1) */ + smbios_setenv("smbios.system.maker", addr, 0x04); + smbios_setenv("smbios.system.product", addr, 0x05); + smbios_setenv("smbios.system.version", addr, 0x06); #ifdef SMBIOS_SERIAL_NUMBERS - smbios_setenv("smbios.system.serial", dmi, 0x07); - smbios_setuuid("smbios.system.uuid", dmi, 0x08); + smbios_setenv("smbios.system.serial", addr, 0x07); + smbios_setuuid("smbios.system.uuid", addr + 0x08, ver); #endif break; - case 2: /* Type 2: Base Board (or Module) */ - smbios_setenv("smbios.planar.maker", dmi, 0x04); - smbios_setenv("smbios.planar.product", dmi, 0x05); - smbios_setenv("smbios.planar.version", dmi, 0x06); + case 2: /* 3.3.3 Base Board (or Module) Information (Type 2) */ + smbios_setenv("smbios.planar.maker", addr, 0x04); + smbios_setenv("smbios.planar.product", addr, 0x05); + smbios_setenv("smbios.planar.version", addr, 0x06); #ifdef SMBIOS_SERIAL_NUMBERS - smbios_setenv("smbios.planar.serial", dmi, 0x07); + smbios_setenv("smbios.planar.serial", addr, 0x07); #endif break; - case 3: /* Type 3: System Enclosure or Chassis */ - smbios_setenv("smbios.chassis.maker", dmi, 0x04); - smbios_setenv("smbios.chassis.version", dmi, 0x06); + case 3: /* 3.3.4 System Enclosure or Chassis (Type 3) */ + smbios_setenv("smbios.chassis.maker", addr, 0x04); + smbios_setenv("smbios.chassis.version", addr, 0x06); #ifdef SMBIOS_SERIAL_NUMBERS - smbios_setenv("smbios.chassis.serial", dmi, 0x07); - smbios_setenv("smbios.chassis.tag", dmi, 0x08); + smbios_setenv("smbios.chassis.serial", addr, 0x07); + smbios_setenv("smbios.chassis.tag", addr, 0x08); #endif break; - case 4: /* Type 4: Processor Information */ + case 4: /* 3.3.5 Processor Information (Type 4) */ /* * Offset 18h: Processor Status * @@ -166,13 +242,14 @@ * 5-6h - Reserved * 7h - Other */ - if ((dmi[0x18] & 0x07) == 1) + proc = SMBIOS_GET8(addr, 0x18); + if ((proc & 0x07) == 1) smbios_enabled_sockets++; - if (dmi[0x18] & 0x40) + if ((proc & 0x40) != 0) smbios_populated_sockets++; break; - case 6: /* Type 6: Memory Module Information (Obsolete) */ + case 6: /* 3.3.7 Memory Module Information (Type 6, Obsolete) */ /* * Offset 0Ah: Enabled Size * @@ -185,12 +262,12 @@ * has been enabled * 7Fh - Not installed */ - osize = dmi[0x0a] & 0x7f; + osize = SMBIOS_GET8(addr, 0x0a) & 0x7f; if (osize > 0 && osize < 22) - smbios_old_enabled_memory += (1U << (osize + 10)); + smbios_old_enabled_memory += 1 << (osize + 10); break; - case 17: /* Type 17: Memory Device */ + case 17: /* 3.3.18 Memory Device (Type 17) */ /* * Offset 0Ch: Size * @@ -199,99 +276,72 @@ * 0 - Value is in megabytes units * Bit 14:0 Size */ - size = *(uint16_t *)(dmi + 0x0c); + size = SMBIOS_GET16(addr, 0x0c); if (size != 0 && size != 0xffff) smbios_enabled_memory += (size & 0x8000) != 0 ? - (size & 0x7fff) : ((uint32_t)size << 10); + (size & 0x7fff) : (size << 10); break; - default: /* skip other types */ + default: /* skip other types */ break; } - /* find structure terminator */ - dp = __DECONST(uint8_t *, dmi + dmi[1]); - while (dp[0] != 0 || dp[1] != 0) - dp++; + /* Find structure terminator. */ + cp = SMBIOS_GETSTR(addr); + while (SMBIOS_GET16(cp, 0) != 0) + cp++; - return(dp + 2); + return (cp + 2); } -static void -smbios_setenv(const char *name, const uint8_t *dmi, const int offset) +void +smbios_detect(void) { - char *cp = __DECONST(char *, dmi + dmi[1]); - int i; + char buf[16]; + caddr_t addr, dmi, smbios; + size_t count, length; + uint32_t paddr; + int i, major, minor, ver; - /* skip undefined string */ - if (dmi[offset] == 0) + /* Search signatures and validate checksums. */ + smbios = smbios_sigsearch(PTOV(SMBIOS_START), SMBIOS_LENGTH); + if (smbios == NULL) return; - for (i = 0; i < dmi[offset] - 1; i++) - cp += strlen(cp) + 1; - setenv(name, cp, 1); -} + length = SMBIOS_GET16(smbios, 0x16); /* Structure Table Length */ + paddr = SMBIOS_GET32(smbios, 0x18); /* Structure Table Address */ + count = SMBIOS_GET16(smbios, 0x1c); /* No of SMBIOS Structures */ + ver = SMBIOS_GET8(smbios, 0x1e); /* SMBIOS BCD Revision */ -static uint8_t -smbios_checksum(const caddr_t addr, const uint8_t len) -{ - const uint8_t *cp = addr; - uint8_t sum; - int i; + if (ver != 0) { + major = ver >> 4; + minor = ver & 0x0f; + if (major > 9 || minor > 9) + ver = 0; + } + if (ver == 0) { + major = SMBIOS_GET8(smbios, 0x06); /* SMBIOS Major Version */ + minor = SMBIOS_GET8(smbios, 0x07); /* SMBIOS Minor Version */ + } + ver = (major << 8) | minor; - for (sum = 0, i = 0; i < len; i++) - sum += cp[i]; + addr = PTOV(paddr); + for (dmi = addr, i = 0; dmi < addr + length && i < count; i++) + dmi = smbios_parse_table(dmi, ver); - return(sum); -} - -static uint8_t * -smbios_sigsearch(const caddr_t addr, const uint32_t len) -{ - caddr_t cp; - - /* search on 16-byte boundaries */ - for (cp = addr; cp < addr + len; cp += SMBIOS_STEP) { - /* compare signature, validate checksum */ - if (!strncmp(cp, SMBIOS_SIG, 4)) { - if (smbios_checksum(cp, *(uint8_t *)(cp + 0x05))) - continue; - if (strncmp(cp + 0x10, SMBIOS_DMI_SIG, 5)) - continue; - if (smbios_checksum(cp + 0x10, 0x0f)) - continue; - - return(cp); - } + sprintf(buf, "%d.%d", major, minor); + setenv("smbios.version", buf, 1); + if (smbios_enabled_memory > 0 || smbios_old_enabled_memory > 0) { + sprintf(buf, "%u", smbios_enabled_memory > 0 ? + smbios_enabled_memory : smbios_old_enabled_memory); + setenv("smbios.memory.enabled", buf, 1); } - - return(NULL); -} - -#ifdef SMBIOS_SERIAL_NUMBERS -static void -smbios_setuuid(const char *name, const uint8_t *dmi, const int offset) -{ - const uint8_t *idp = dmi + offset; - int i, f = 0, z = 0; - char uuid[37]; - - for (i = 0; i < 16; i++) { - if (idp[i] == 0xff) - f++; - else if (idp[i] == 0x00) - z++; - else - break; + if (smbios_enabled_sockets > 0) { + sprintf(buf, "%u", smbios_enabled_sockets); + setenv("smbios.socket.enabled", buf, 1); } - if (f != 16 && z != 16) { - sprintf(uuid, "%02x%02x%02x%02x-" - "%02x%02x-%02x%02x-%02x%02x-" - "%02x%02x%02x%02x%02x%02x", - idp[0], idp[1], idp[2], idp[3], - idp[4], idp[5], idp[6], idp[7], idp[8], idp[9], - idp[10], idp[11], idp[12], idp[13], idp[14], idp[15]); - setenv(name, uuid, 1); + if (smbios_populated_sockets > 0) { + sprintf(buf, "%u", smbios_populated_sockets); + setenv("smbios.socket.populated", buf, 1); } } -#endif ==== //depot/projects/vimage-commit/src/sys/cam/cam_xpt.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.214 2009/04/03 19:49:33 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.215 2009/04/10 04:08:34 thompsa Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -5139,7 +5139,6 @@ typedef struct { union ccb *request_ccb; struct ccb_pathinq *cpi; - struct root_hold_token *roothold; int counter; } xpt_scan_bus_info; @@ -5202,7 +5201,6 @@ } scan_info->request_ccb = request_ccb; scan_info->cpi = &work_ccb->cpi; - scan_info->roothold = root_mount_hold("CAM", M_NOWAIT); /* Cache on our stack so we can work asynchronously */ max_target = scan_info->cpi->max_target; @@ -5234,7 +5232,6 @@ printf("xpt_scan_bus: xpt_create_path failed" " with status %#x, bus scan halted\n", status); - root_mount_rel(scan_info->roothold); free(scan_info, M_CAMXPT); request_ccb->ccb_h.status = status; xpt_free_ccb(work_ccb); @@ -5243,7 +5240,6 @@ } work_ccb = xpt_alloc_ccb_nowait(); if (work_ccb == NULL) { - root_mount_rel(scan_info->roothold); free(scan_info, M_CAMXPT); xpt_free_path(path); request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL; @@ -5357,7 +5353,6 @@ xpt_free_ccb(request_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; - root_mount_rel(scan_info->roothold); free(scan_info, M_CAMXPT); request_ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(request_ccb); @@ -5377,7 +5372,6 @@ xpt_free_ccb(request_ccb); xpt_free_ccb((union ccb *)scan_info->cpi); request_ccb = scan_info->request_ccb; - root_mount_rel(scan_info->roothold); free(scan_info, M_CAMXPT); request_ccb->ccb_h.status = status; xpt_done(request_ccb); ==== //depot/projects/vimage-commit/src/sys/cddl/compat/opensolaris/sys/vnode.h#5 (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/vnode.h,v 1.9 2008/11/29 12:32:42 pjd Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.10 2009/04/10 10:52:19 rwatson Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -217,7 +217,6 @@ vfslocked = VFS_LOCK_GIANT(vp->v_mount); if (rw == UIO_WRITE) { ioflag = IO_SYNC; - VOP_LEASE(vp, td, td->td_ucred, LEASE_WRITE); } else { ioflag = IO_DIRECT; } ==== //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#5 (text+ko) ==== @@ -3087,7 +3087,7 @@ error = EOPNOTSUPP; switch (type) { case MOD_LOAD: - zfs_root_token = root_mount_hold("ZFS", M_WAITOK); + zfs_root_token = root_mount_hold("ZFS"); printf("WARNING: ZFS is considered to be an experimental " "feature in FreeBSD.\n"); TASK_INIT(&zfs_start_task, 0, zfs_start, NULL); ==== //depot/projects/vimage-commit/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#5 (text+ko) ==== @@ -4577,7 +4577,6 @@ ZFS_EXIT(zfsvfs); return (error); } - VOP_LEASE(nd.ni_dvp, td, ap->a_cred, LEASE_WRITE); error = VOP_REMOVE(nd.ni_dvp, vp, &nd.ni_cnd); vput(nd.ni_dvp); @@ -4639,7 +4638,6 @@ return (error); } - VOP_LEASE(vp, td, ap->a_cred, LEASE_WRITE); VATTR_NULL(&va); va.va_size = 0; error = VOP_SETATTR(vp, &va, ap->a_cred); ==== //depot/projects/vimage-commit/src/sys/conf/NOTES#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1532 2009/03/19 20:33:26 thompsa Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1533 2009/04/10 00:34:55 jfv Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -1929,7 +1929,7 @@ device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel Pro/1000 Gigabit Ethernet device igb # Intel Pro/1000 PCIE Gigabit Ethernet -#device ixgbe # Intel Pro/10Gbe PCIE Ethernet +device ixgbe # Intel Pro/10Gbe PCIE Ethernet device le # AMD Am7900 LANCE and Am79C9xx PCnet device mxge # Myricom Myri-10G 10GbE NIC device nxge # Neterion Xframe 10GbE Server/Storage Adapter ==== //depot/projects/vimage-commit/src/sys/conf/files#18 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1388 2009/04/06 00:32:54 thompsa Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1389 2009/04/10 00:34:55 jfv Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1073,6 +1073,8 @@ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_82598.c optional ixgbe \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" +dev/ixgbe/ixgbe_82599.c optional ixgbe \ + compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/jme/if_jme.c optional jme pci dev/joy/joy.c optional joy dev/joy/joy_isa.c optional joy isa ==== //depot/projects/vimage-commit/src/sys/dev/ata/ata-queue.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.83 2009/02/28 22:07:15 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.84 2009/04/07 19:44:06 ed Exp $"); #include "opt_ata.h" #include <sys/param.h> @@ -444,8 +444,7 @@ } if (!request->result && - (request->u.atapi.sense.key & ATA_SENSE_KEY_MASK ? - request->u.atapi.sense.key & ATA_SENSE_KEY_MASK : + (request->u.atapi.sense.key & ATA_SENSE_KEY_MASK || >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904110655.n3B6tD8u076981>