svn commit: r228884 - in projects/nfsv4.1-client/sys: amd64/conf
amd64/include arm/arm arm/econa arm/include
boot/arm/at91/libat91 boot/forth boot/i386/boot0
boot/i386/libi386 cam/ata cam/scsi cddl...
Rick Macklem
rmacklem at FreeBSD.org
Mon Dec 26 00:10:43 UTC 2011
Author: rmacklem
Date: Mon Dec 26 00:10:42 2011
New Revision: 228884
URL: http://svn.freebsd.org/changeset/base/228884
Log:
Merge in an up to date kernel from head.
Added:
projects/nfsv4.1-client/sys/dev/cxgbe/firmware/
- copied from r228883, head/sys/dev/cxgbe/firmware/
projects/nfsv4.1-client/sys/dev/fb/splash_txt.c
- copied unchanged from r228883, head/sys/dev/fb/splash_txt.c
projects/nfsv4.1-client/sys/dev/viawd/
- copied from r228883, head/sys/dev/viawd/
projects/nfsv4.1-client/sys/modules/carp/
- copied from r228883, head/sys/modules/carp/
projects/nfsv4.1-client/sys/modules/cxgbe/firmware/
- copied from r228883, head/sys/modules/cxgbe/firmware/
projects/nfsv4.1-client/sys/modules/splash/txt/
- copied from r228883, head/sys/modules/splash/txt/
projects/nfsv4.1-client/sys/modules/usb/avr32dci/
- copied from r228883, head/sys/modules/usb/avr32dci/
projects/nfsv4.1-client/sys/modules/viawd/
- copied from r228883, head/sys/modules/viawd/
projects/nfsv4.1-client/sys/sys/_kstack_cache.h
- copied unchanged from r228883, head/sys/sys/_kstack_cache.h
Deleted:
projects/nfsv4.1-client/sys/dev/cxgbe/common/t4fw_interface.h
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_readwrite.c
projects/nfsv4.1-client/sys/libkern/gets.c
projects/nfsv4.1-client/sys/modules/if_carp/
Modified:
projects/nfsv4.1-client/sys/amd64/conf/NOTES
projects/nfsv4.1-client/sys/amd64/include/_types.h
projects/nfsv4.1-client/sys/arm/arm/irq_dispatch.S
projects/nfsv4.1-client/sys/arm/arm/pmap.c
projects/nfsv4.1-client/sys/arm/arm/vm_machdep.c
projects/nfsv4.1-client/sys/arm/econa/ehci_ebus.c
projects/nfsv4.1-client/sys/arm/econa/ohci_ec.c
projects/nfsv4.1-client/sys/arm/include/_types.h
projects/nfsv4.1-client/sys/arm/include/pmap.h
projects/nfsv4.1-client/sys/boot/arm/at91/libat91/sd-card.c
projects/nfsv4.1-client/sys/boot/forth/loader.conf
projects/nfsv4.1-client/sys/boot/i386/boot0/boot0.S
projects/nfsv4.1-client/sys/boot/i386/libi386/time.c
projects/nfsv4.1-client/sys/cam/ata/ata_da.c
projects/nfsv4.1-client/sys/cam/scsi/scsi_all.h
projects/nfsv4.1-client/sys/cam/scsi/scsi_cd.c
projects/nfsv4.1-client/sys/cam/scsi/scsi_da.c
projects/nfsv4.1-client/sys/cam/scsi/scsi_target.c
projects/nfsv4.1-client/sys/cam/scsi/scsi_xpt.c
projects/nfsv4.1-client/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
projects/nfsv4.1-client/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
projects/nfsv4.1-client/sys/conf/NOTES
projects/nfsv4.1-client/sys/conf/files
projects/nfsv4.1-client/sys/conf/files.amd64
projects/nfsv4.1-client/sys/conf/files.i386
projects/nfsv4.1-client/sys/conf/kern.mk
projects/nfsv4.1-client/sys/conf/kern.pre.mk
projects/nfsv4.1-client/sys/contrib/ngatm/netnatm/msg/uni_ie.c
projects/nfsv4.1-client/sys/contrib/pf/net/if_pfsync.c
projects/nfsv4.1-client/sys/ddb/db_command.c
projects/nfsv4.1-client/sys/ddb/db_ps.c
projects/nfsv4.1-client/sys/ddb/db_thread.c
projects/nfsv4.1-client/sys/ddb/ddb.h
projects/nfsv4.1-client/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l
projects/nfsv4.1-client/sys/dev/aic7xxx/aicasm/aicasm_scan.l
projects/nfsv4.1-client/sys/dev/an/if_an.c
projects/nfsv4.1-client/sys/dev/ata/ata-pci.h
projects/nfsv4.1-client/sys/dev/ata/chipsets/ata-intel.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5416/ar2133.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar9002/ar9280.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar9002/ar9285.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar9002/ar9287.c
projects/nfsv4.1-client/sys/dev/ath/ath_hal/ar9002/ar9287.h
projects/nfsv4.1-client/sys/dev/ath/if_ath.c
projects/nfsv4.1-client/sys/dev/bce/if_bce.c
projects/nfsv4.1-client/sys/dev/bce/if_bcereg.h
projects/nfsv4.1-client/sys/dev/bge/if_bge.c
projects/nfsv4.1-client/sys/dev/bge/if_bgereg.h
projects/nfsv4.1-client/sys/dev/bwi/if_bwi.c
projects/nfsv4.1-client/sys/dev/bwn/if_bwn.c
projects/nfsv4.1-client/sys/dev/bwn/if_bwnvar.h
projects/nfsv4.1-client/sys/dev/bxe/bxe_reg.h
projects/nfsv4.1-client/sys/dev/cfe/cfe_console.c
projects/nfsv4.1-client/sys/dev/cm/smc90cx6.c
projects/nfsv4.1-client/sys/dev/cpuctl/cpuctl.c
projects/nfsv4.1-client/sys/dev/cxgb/common/cxgb_aq100x.c
projects/nfsv4.1-client/sys/dev/cxgbe/adapter.h
projects/nfsv4.1-client/sys/dev/cxgbe/common/common.h
projects/nfsv4.1-client/sys/dev/cxgbe/common/t4_hw.c
projects/nfsv4.1-client/sys/dev/cxgbe/common/t4_hw.h
projects/nfsv4.1-client/sys/dev/cxgbe/offload.h
projects/nfsv4.1-client/sys/dev/cxgbe/osdep.h
projects/nfsv4.1-client/sys/dev/cxgbe/t4_ioctl.h
projects/nfsv4.1-client/sys/dev/cxgbe/t4_l2t.c
projects/nfsv4.1-client/sys/dev/cxgbe/t4_l2t.h
projects/nfsv4.1-client/sys/dev/cxgbe/t4_main.c
projects/nfsv4.1-client/sys/dev/cxgbe/t4_sge.c
projects/nfsv4.1-client/sys/dev/dcons/dcons_os.c
projects/nfsv4.1-client/sys/dev/de/if_de.c
projects/nfsv4.1-client/sys/dev/drm/i915_drv.h
projects/nfsv4.1-client/sys/dev/drm/mga_drv.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_80003es2lan.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_80003es2lan.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_82540.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_82541.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_82543.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_82571.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_82575.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_82575.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_api.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_api.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_defines.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_hw.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_ich8lan.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_ich8lan.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_mac.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_nvm.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_nvm.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_osdep.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_phy.c
projects/nfsv4.1-client/sys/dev/e1000/e1000_phy.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_regs.h
projects/nfsv4.1-client/sys/dev/e1000/e1000_vf.c
projects/nfsv4.1-client/sys/dev/e1000/if_em.c
projects/nfsv4.1-client/sys/dev/e1000/if_em.h
projects/nfsv4.1-client/sys/dev/e1000/if_igb.c
projects/nfsv4.1-client/sys/dev/e1000/if_igb.h
projects/nfsv4.1-client/sys/dev/e1000/if_lem.c
projects/nfsv4.1-client/sys/dev/e1000/if_lem.h
projects/nfsv4.1-client/sys/dev/esp/ncr53c9x.c
projects/nfsv4.1-client/sys/dev/fdc/fdc.c
projects/nfsv4.1-client/sys/dev/fxp/if_fxp.c
projects/nfsv4.1-client/sys/dev/gpio/gpioiic.c
projects/nfsv4.1-client/sys/dev/hwpmc/hwpmc_core.c
projects/nfsv4.1-client/sys/dev/hwpmc/hwpmc_powerpc.c
projects/nfsv4.1-client/sys/dev/hwpmc/pmc_events.h
projects/nfsv4.1-client/sys/dev/if_ndis/if_ndis.c
projects/nfsv4.1-client/sys/dev/iicbus/iicbb.c
projects/nfsv4.1-client/sys/dev/ipw/if_ipw.c
projects/nfsv4.1-client/sys/dev/isp/isp_freebsd.c
projects/nfsv4.1-client/sys/dev/iwi/if_iwi.c
projects/nfsv4.1-client/sys/dev/iwn/if_iwn.c
projects/nfsv4.1-client/sys/dev/ixgbe/ixgbe.c
projects/nfsv4.1-client/sys/dev/ixgbe/ixgbe_osdep.h
projects/nfsv4.1-client/sys/dev/ixgbe/ixv.c
projects/nfsv4.1-client/sys/dev/malo/if_malo.c
projects/nfsv4.1-client/sys/dev/md/md.c
projects/nfsv4.1-client/sys/dev/msk/if_msk.c
projects/nfsv4.1-client/sys/dev/mwl/if_mwl.c
projects/nfsv4.1-client/sys/dev/netmap/if_em_netmap.h
projects/nfsv4.1-client/sys/dev/netmap/if_igb_netmap.h
projects/nfsv4.1-client/sys/dev/netmap/ixgbe_netmap.h
projects/nfsv4.1-client/sys/dev/netmap/netmap.c
projects/nfsv4.1-client/sys/dev/netmap/netmap_kern.h
projects/nfsv4.1-client/sys/dev/ofw/ofw_console.c
projects/nfsv4.1-client/sys/dev/pccard/pccardvar.h
projects/nfsv4.1-client/sys/dev/pci/isa_pci.c
projects/nfsv4.1-client/sys/dev/ral/rt2560.c
projects/nfsv4.1-client/sys/dev/ral/rt2661.c
projects/nfsv4.1-client/sys/dev/sio/sio.c
projects/nfsv4.1-client/sys/dev/sound/pci/hda/hdac.c
projects/nfsv4.1-client/sys/dev/sound/usb/uaudio.c
projects/nfsv4.1-client/sys/dev/sound/usb/uaudio.h
projects/nfsv4.1-client/sys/dev/speaker/spkr.c
projects/nfsv4.1-client/sys/dev/spibus/spibusvar.h
projects/nfsv4.1-client/sys/dev/syscons/syscons.c
projects/nfsv4.1-client/sys/dev/syscons/syscons.h
projects/nfsv4.1-client/sys/dev/ti/if_ti.c
projects/nfsv4.1-client/sys/dev/twa/tw_osl.h
projects/nfsv4.1-client/sys/dev/tws/tws.h
projects/nfsv4.1-client/sys/dev/uart/uart_subr.c
projects/nfsv4.1-client/sys/dev/uart/uart_tty.c
projects/nfsv4.1-client/sys/dev/usb/controller/at91dci.c
projects/nfsv4.1-client/sys/dev/usb/controller/at91dci.h
projects/nfsv4.1-client/sys/dev/usb/controller/at91dci_atmelarm.c
projects/nfsv4.1-client/sys/dev/usb/controller/atmegadci.c
projects/nfsv4.1-client/sys/dev/usb/controller/atmegadci.h
projects/nfsv4.1-client/sys/dev/usb/controller/atmegadci_atmelarm.c
projects/nfsv4.1-client/sys/dev/usb/controller/avr32dci.c
projects/nfsv4.1-client/sys/dev/usb/controller/avr32dci.h
projects/nfsv4.1-client/sys/dev/usb/controller/ehci.c
projects/nfsv4.1-client/sys/dev/usb/controller/ehci.h
projects/nfsv4.1-client/sys/dev/usb/controller/ehci_ixp4xx.c
projects/nfsv4.1-client/sys/dev/usb/controller/ehci_mv.c
projects/nfsv4.1-client/sys/dev/usb/controller/ehci_pci.c
projects/nfsv4.1-client/sys/dev/usb/controller/musb_otg.c
projects/nfsv4.1-client/sys/dev/usb/controller/musb_otg.h
projects/nfsv4.1-client/sys/dev/usb/controller/musb_otg_atmelarm.c
projects/nfsv4.1-client/sys/dev/usb/controller/ohci.c
projects/nfsv4.1-client/sys/dev/usb/controller/ohci.h
projects/nfsv4.1-client/sys/dev/usb/controller/ohci_atmelarm.c
projects/nfsv4.1-client/sys/dev/usb/controller/ohci_pci.c
projects/nfsv4.1-client/sys/dev/usb/controller/ohci_s3c24x0.c
projects/nfsv4.1-client/sys/dev/usb/controller/uhci.c
projects/nfsv4.1-client/sys/dev/usb/controller/uhci.h
projects/nfsv4.1-client/sys/dev/usb/controller/uhci_pci.c
projects/nfsv4.1-client/sys/dev/usb/controller/usb_controller.c
projects/nfsv4.1-client/sys/dev/usb/controller/uss820dci.c
projects/nfsv4.1-client/sys/dev/usb/controller/uss820dci.h
projects/nfsv4.1-client/sys/dev/usb/controller/uss820dci_atmelarm.c
projects/nfsv4.1-client/sys/dev/usb/controller/xhci_pci.c
projects/nfsv4.1-client/sys/dev/usb/controller/xhcireg.h
projects/nfsv4.1-client/sys/dev/usb/input/ukbd.c
projects/nfsv4.1-client/sys/dev/usb/net/if_axe.c
projects/nfsv4.1-client/sys/dev/usb/serial/usb_serial.c
projects/nfsv4.1-client/sys/dev/usb/usb_bus.h
projects/nfsv4.1-client/sys/dev/usb/usb_controller.h
projects/nfsv4.1-client/sys/dev/usb/usb_hub.c
projects/nfsv4.1-client/sys/dev/usb/usb_if.m
projects/nfsv4.1-client/sys/dev/usb/usb_transfer.c
projects/nfsv4.1-client/sys/dev/usb/usbdevs
projects/nfsv4.1-client/sys/dev/usb/wlan/if_rum.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_run.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_uath.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_upgt.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_ural.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_urtw.c
projects/nfsv4.1-client/sys/dev/usb/wlan/if_zyd.c
projects/nfsv4.1-client/sys/dev/vxge/vxge-osdep.h
projects/nfsv4.1-client/sys/dev/wi/if_wi.c
projects/nfsv4.1-client/sys/dev/wpi/if_wpi.c
projects/nfsv4.1-client/sys/dev/xen/console/console.c
projects/nfsv4.1-client/sys/dev/xen/netback/netback.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_alloc.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_balloc.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_bmap.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_extern.h
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_inode.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_lookup.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_subr.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_vfsops.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2_vnops.c
projects/nfsv4.1-client/sys/fs/ext2fs/ext2fs.h
projects/nfsv4.1-client/sys/fs/ext2fs/fs.h
projects/nfsv4.1-client/sys/fs/msdosfs/msdosfs_conv.c
projects/nfsv4.1-client/sys/fs/nfs/nfs_commonkrpc.c
projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c
projects/nfsv4.1-client/sys/fs/nfsserver/nfs_nfsdport.c
projects/nfsv4.1-client/sys/fs/ntfs/ntfs_subr.c
projects/nfsv4.1-client/sys/fs/ntfs/ntfs_subr.h
projects/nfsv4.1-client/sys/fs/ntfs/ntfs_vnops.c
projects/nfsv4.1-client/sys/gdb/gdb_cons.c
projects/nfsv4.1-client/sys/geom/eli/g_eli.c
projects/nfsv4.1-client/sys/i386/conf/NOTES
projects/nfsv4.1-client/sys/i386/i386/locore.s
projects/nfsv4.1-client/sys/i386/i386/mp_machdep.c
projects/nfsv4.1-client/sys/i386/i386/pmap.c
projects/nfsv4.1-client/sys/i386/include/_types.h
projects/nfsv4.1-client/sys/i386/include/vmparam.h
projects/nfsv4.1-client/sys/i386/xen/mp_machdep.c
projects/nfsv4.1-client/sys/i386/xen/pmap.c
projects/nfsv4.1-client/sys/ia64/ia64/ssc.c
projects/nfsv4.1-client/sys/ia64/ia64/uma_machdep.c
projects/nfsv4.1-client/sys/ia64/include/_types.h
projects/nfsv4.1-client/sys/kern/kern_conf.c
projects/nfsv4.1-client/sys/kern/kern_cons.c
projects/nfsv4.1-client/sys/kern/kern_lock.c
projects/nfsv4.1-client/sys/kern/kern_mutex.c
projects/nfsv4.1-client/sys/kern/kern_ntptime.c
projects/nfsv4.1-client/sys/kern/kern_proc.c
projects/nfsv4.1-client/sys/kern/kern_racct.c
projects/nfsv4.1-client/sys/kern/kern_resource.c
projects/nfsv4.1-client/sys/kern/kern_rmlock.c
projects/nfsv4.1-client/sys/kern/kern_rwlock.c
projects/nfsv4.1-client/sys/kern/kern_shutdown.c
projects/nfsv4.1-client/sys/kern/kern_sx.c
projects/nfsv4.1-client/sys/kern/kern_synch.c
projects/nfsv4.1-client/sys/kern/kern_tc.c
projects/nfsv4.1-client/sys/kern/kern_thr.c
projects/nfsv4.1-client/sys/kern/sched_ule.c
projects/nfsv4.1-client/sys/kern/subr_kdb.c
projects/nfsv4.1-client/sys/kern/subr_lock.c
projects/nfsv4.1-client/sys/kern/subr_witness.c
projects/nfsv4.1-client/sys/kern/sys_pipe.c
projects/nfsv4.1-client/sys/kern/uipc_shm.c
projects/nfsv4.1-client/sys/kern/uipc_sockbuf.c
projects/nfsv4.1-client/sys/kern/vfs_cache.c
projects/nfsv4.1-client/sys/kern/vfs_mountroot.c
projects/nfsv4.1-client/sys/kern/vfs_subr.c
projects/nfsv4.1-client/sys/kern/vfs_syscalls.c
projects/nfsv4.1-client/sys/kern/vnode_if.src
projects/nfsv4.1-client/sys/mips/adm5120/console.c
projects/nfsv4.1-client/sys/mips/atheros/ar71xx_chip.c
projects/nfsv4.1-client/sys/mips/atheros/ar71xx_ehci.c
projects/nfsv4.1-client/sys/mips/atheros/ar71xx_gpio.c
projects/nfsv4.1-client/sys/mips/atheros/ar71xx_ohci.c
projects/nfsv4.1-client/sys/mips/atheros/ar724x_chip.c
projects/nfsv4.1-client/sys/mips/atheros/ar91xx_chip.c
projects/nfsv4.1-client/sys/mips/cavium/octeon_machdep.c
projects/nfsv4.1-client/sys/mips/cavium/usb/octusb.c
projects/nfsv4.1-client/sys/mips/cavium/usb/octusb.h
projects/nfsv4.1-client/sys/mips/cavium/usb/octusb_octeon.c
projects/nfsv4.1-client/sys/mips/conf/AR91XX_BASE
projects/nfsv4.1-client/sys/mips/conf/AR91XX_BASE.hints
projects/nfsv4.1-client/sys/mips/conf/TP-WN1043ND.hints
projects/nfsv4.1-client/sys/mips/include/_types.h
projects/nfsv4.1-client/sys/mips/rmi/xls_ehci.c
projects/nfsv4.1-client/sys/mips/rt305x/rt305x_dotg.c
projects/nfsv4.1-client/sys/modules/Makefile
projects/nfsv4.1-client/sys/modules/aic7xxx/ahc/ahc_pci/Makefile
projects/nfsv4.1-client/sys/modules/aic7xxx/ahd/Makefile
projects/nfsv4.1-client/sys/modules/asr/Makefile
projects/nfsv4.1-client/sys/modules/ath/Makefile
projects/nfsv4.1-client/sys/modules/cxgbe/Makefile
projects/nfsv4.1-client/sys/modules/nve/Makefile
projects/nfsv4.1-client/sys/modules/pfsync/Makefile
projects/nfsv4.1-client/sys/modules/splash/Makefile
projects/nfsv4.1-client/sys/modules/usb/Makefile
projects/nfsv4.1-client/sys/net/if.c
projects/nfsv4.1-client/sys/net/if.h
projects/nfsv4.1-client/sys/net/if_ethersubr.c
projects/nfsv4.1-client/sys/net/if_types.h
projects/nfsv4.1-client/sys/net/if_var.h
projects/nfsv4.1-client/sys/net/route.c
projects/nfsv4.1-client/sys/net/rtsock.c
projects/nfsv4.1-client/sys/net80211/ieee80211.c
projects/nfsv4.1-client/sys/net80211/ieee80211_acl.c
projects/nfsv4.1-client/sys/net80211/ieee80211_hostap.c
projects/nfsv4.1-client/sys/net80211/ieee80211_ht.c
projects/nfsv4.1-client/sys/net80211/ieee80211_ioctl.c
projects/nfsv4.1-client/sys/net80211/ieee80211_mesh.c
projects/nfsv4.1-client/sys/net80211/ieee80211_proto.h
projects/nfsv4.1-client/sys/net80211/ieee80211_var.h
projects/nfsv4.1-client/sys/netinet/if_ether.c
projects/nfsv4.1-client/sys/netinet/if_ether.h
projects/nfsv4.1-client/sys/netinet/in.c
projects/nfsv4.1-client/sys/netinet/in_var.h
projects/nfsv4.1-client/sys/netinet/ip_carp.c
projects/nfsv4.1-client/sys/netinet/ip_carp.h
projects/nfsv4.1-client/sys/netinet/sctp.h
projects/nfsv4.1-client/sys/netinet/sctp_asconf.c
projects/nfsv4.1-client/sys/netinet/sctp_asconf.h
projects/nfsv4.1-client/sys/netinet/sctp_auth.c
projects/nfsv4.1-client/sys/netinet/sctp_auth.h
projects/nfsv4.1-client/sys/netinet/sctp_bsd_addr.c
projects/nfsv4.1-client/sys/netinet/sctp_bsd_addr.h
projects/nfsv4.1-client/sys/netinet/sctp_cc_functions.c
projects/nfsv4.1-client/sys/netinet/sctp_constants.h
projects/nfsv4.1-client/sys/netinet/sctp_crc32.h
projects/nfsv4.1-client/sys/netinet/sctp_dtrace_declare.h
projects/nfsv4.1-client/sys/netinet/sctp_dtrace_define.h
projects/nfsv4.1-client/sys/netinet/sctp_header.h
projects/nfsv4.1-client/sys/netinet/sctp_indata.c
projects/nfsv4.1-client/sys/netinet/sctp_indata.h
projects/nfsv4.1-client/sys/netinet/sctp_input.c
projects/nfsv4.1-client/sys/netinet/sctp_input.h
projects/nfsv4.1-client/sys/netinet/sctp_os.h
projects/nfsv4.1-client/sys/netinet/sctp_output.c
projects/nfsv4.1-client/sys/netinet/sctp_output.h
projects/nfsv4.1-client/sys/netinet/sctp_pcb.c
projects/nfsv4.1-client/sys/netinet/sctp_pcb.h
projects/nfsv4.1-client/sys/netinet/sctp_peeloff.c
projects/nfsv4.1-client/sys/netinet/sctp_peeloff.h
projects/nfsv4.1-client/sys/netinet/sctp_ss_functions.c
projects/nfsv4.1-client/sys/netinet/sctp_structs.h
projects/nfsv4.1-client/sys/netinet/sctp_sysctl.c
projects/nfsv4.1-client/sys/netinet/sctp_sysctl.h
projects/nfsv4.1-client/sys/netinet/sctp_timer.c
projects/nfsv4.1-client/sys/netinet/sctp_timer.h
projects/nfsv4.1-client/sys/netinet/sctp_uio.h
projects/nfsv4.1-client/sys/netinet/sctp_usrreq.c
projects/nfsv4.1-client/sys/netinet/sctp_var.h
projects/nfsv4.1-client/sys/netinet/sctputil.c
projects/nfsv4.1-client/sys/netinet/sctputil.h
projects/nfsv4.1-client/sys/netinet6/icmp6.c
projects/nfsv4.1-client/sys/netinet6/in6.c
projects/nfsv4.1-client/sys/netinet6/in6_ifattach.c
projects/nfsv4.1-client/sys/netinet6/in6_proto.c
projects/nfsv4.1-client/sys/netinet6/in6_var.h
projects/nfsv4.1-client/sys/netinet6/ip6_mroute.c
projects/nfsv4.1-client/sys/netinet6/nd6.c
projects/nfsv4.1-client/sys/netinet6/nd6_nbr.c
projects/nfsv4.1-client/sys/netinet6/sctp6_usrreq.c
projects/nfsv4.1-client/sys/netinet6/sctp6_var.h
projects/nfsv4.1-client/sys/nfs/bootp_subr.c
projects/nfsv4.1-client/sys/nfsclient/nfs_krpc.c
projects/nfsv4.1-client/sys/nfsserver/nfs_serv.c
projects/nfsv4.1-client/sys/ofed/include/asm/types.h
projects/nfsv4.1-client/sys/ofed/include/linux/types.h
projects/nfsv4.1-client/sys/pc98/cbus/scterm-sck.c
projects/nfsv4.1-client/sys/pc98/cbus/scvtb.c
projects/nfsv4.1-client/sys/pc98/cbus/sio.c
projects/nfsv4.1-client/sys/powerpc/aim/locore32.S
projects/nfsv4.1-client/sys/powerpc/aim/machdep.c
projects/nfsv4.1-client/sys/powerpc/aim/mmu_oea.c
projects/nfsv4.1-client/sys/powerpc/aim/mmu_oea64.c
projects/nfsv4.1-client/sys/powerpc/aim/trap.c
projects/nfsv4.1-client/sys/powerpc/aim/uma_machdep.c
projects/nfsv4.1-client/sys/powerpc/include/_types.h
projects/nfsv4.1-client/sys/powerpc/include/pmap.h
projects/nfsv4.1-client/sys/powerpc/include/pmc_mdep.h
projects/nfsv4.1-client/sys/powerpc/include/spr.h
projects/nfsv4.1-client/sys/powerpc/include/vmparam.h
projects/nfsv4.1-client/sys/powerpc/mambo/mambo_console.c
projects/nfsv4.1-client/sys/powerpc/ps3/ehci_ps3.c
projects/nfsv4.1-client/sys/powerpc/ps3/ohci_ps3.c
projects/nfsv4.1-client/sys/powerpc/ps3/ps3-hv-asm.awk
projects/nfsv4.1-client/sys/powerpc/ps3/ps3-hvcall.S
projects/nfsv4.1-client/sys/powerpc/ps3/ps3-hvcall.h
projects/nfsv4.1-client/sys/powerpc/ps3/ps3-hvcall.master
projects/nfsv4.1-client/sys/powerpc/ps3/ps3_syscons.c
projects/nfsv4.1-client/sys/security/mac/mac_framework.c
projects/nfsv4.1-client/sys/sparc64/include/_types.h
projects/nfsv4.1-client/sys/sparc64/sparc64/vm_machdep.c
projects/nfsv4.1-client/sys/sys/cdefs.h
projects/nfsv4.1-client/sys/sys/cons.h
projects/nfsv4.1-client/sys/sys/elf_common.h
projects/nfsv4.1-client/sys/sys/libkern.h
projects/nfsv4.1-client/sys/sys/mman.h
projects/nfsv4.1-client/sys/sys/mutex.h
projects/nfsv4.1-client/sys/sys/param.h
projects/nfsv4.1-client/sys/sys/pmc.h
projects/nfsv4.1-client/sys/sys/proc.h
projects/nfsv4.1-client/sys/sys/sockio.h
projects/nfsv4.1-client/sys/sys/stdint.h
projects/nfsv4.1-client/sys/sys/systm.h
projects/nfsv4.1-client/sys/sys/taskqueue.h
projects/nfsv4.1-client/sys/sys/timeffc.h
projects/nfsv4.1-client/sys/sys/types.h
projects/nfsv4.1-client/sys/sys/vnode.h
projects/nfsv4.1-client/sys/vm/swap_pager.c
projects/nfsv4.1-client/sys/vm/vm_glue.c
projects/nfsv4.1-client/sys/vm/vm_meter.c
projects/nfsv4.1-client/sys/vm/vm_object.c
projects/nfsv4.1-client/sys/xen/xenstore/xenstore.c
Directory Properties:
projects/nfsv4.1-client/sys/ (props changed)
projects/nfsv4.1-client/sys/conf/ (props changed)
projects/nfsv4.1-client/sys/contrib/dev/acpica/ (props changed)
Modified: projects/nfsv4.1-client/sys/amd64/conf/NOTES
==============================================================================
--- projects/nfsv4.1-client/sys/amd64/conf/NOTES Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/amd64/conf/NOTES Mon Dec 26 00:10:42 2011 (r228884)
@@ -455,9 +455,11 @@ device tpm
#
# ichwd: Intel ICH watchdog timer
# amdsbwd: AMD SB7xx watchdog timer
+# viawd: VIA south bridge watchdog timer
#
device ichwd
device amdsbwd
+device viawd
#
# Temperature sensors:
Modified: projects/nfsv4.1-client/sys/amd64/include/_types.h
==============================================================================
--- projects/nfsv4.1-client/sys/amd64/include/_types.h Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/amd64/include/_types.h Mon Dec 26 00:10:42 2011 (r228884)
@@ -48,7 +48,7 @@
/*
* Basic types upon which most other types are built.
*/
-typedef __signed char __int8_t;
+typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef short __int16_t;
typedef unsigned short __uint16_t;
Modified: projects/nfsv4.1-client/sys/arm/arm/irq_dispatch.S
==============================================================================
--- projects/nfsv4.1-client/sys/arm/arm/irq_dispatch.S Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/arm/irq_dispatch.S Mon Dec 26 00:10:42 2011 (r228884)
@@ -98,10 +98,9 @@ ASENTRY_NP(irq_entry)
PULLFRAMEFROMSVCANDEXIT
movs pc, lr /* Exit */
- .bss
+ .data
.align 0
-
.global _C_LABEL(intrnames), _C_LABEL(sintrnames)
.global _C_LABEL(intrcnt), _C_LABEL(sintrcnt)
_C_LABEL(intrnames):
Modified: projects/nfsv4.1-client/sys/arm/arm/pmap.c
==============================================================================
--- projects/nfsv4.1-client/sys/arm/arm/pmap.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/arm/pmap.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -4039,6 +4039,7 @@ pmap_zero_page_generic(vm_paddr_t phys,
* order to work without corruption when write-allocate is enabled.
*/
*cdst_pte = L2_S_PROTO | phys | L2_S_PROT(PTE_KERNEL, VM_PROT_WRITE);
+ PTE_SYNC(cdst_pte);
cpu_tlb_flushD_SE(cdstp);
cpu_cpwait();
if (off || size != PAGE_SIZE)
Modified: projects/nfsv4.1-client/sys/arm/arm/vm_machdep.c
==============================================================================
--- projects/nfsv4.1-client/sys/arm/arm/vm_machdep.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/arm/vm_machdep.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -617,7 +617,6 @@ uma_small_alloc(uma_zone_t zone, int byt
void *ret;
struct arm_small_page *sp;
TAILQ_HEAD(,arm_small_page) *head;
- static vm_pindex_t color;
vm_page_t m;
*flags = UMA_SLAB_PRIV;
@@ -650,8 +649,7 @@ uma_small_alloc(uma_zone_t zone, int byt
if (wait & M_ZERO)
pflags |= VM_ALLOC_ZERO;
for (;;) {
- m = vm_page_alloc(NULL, color++,
- pflags | VM_ALLOC_NOOBJ);
+ m = vm_page_alloc(NULL, 0, pflags | VM_ALLOC_NOOBJ);
if (m == NULL) {
if (wait & M_NOWAIT)
return (NULL);
Modified: projects/nfsv4.1-client/sys/arm/econa/ehci_ebus.c
==============================================================================
--- projects/nfsv4.1-client/sys/arm/econa/ehci_ebus.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/econa/ehci_ebus.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -75,10 +75,6 @@ __FBSDID("$FreeBSD$");
static device_attach_t ehci_ebus_attach;
static device_detach_t ehci_ebus_detach;
-static device_shutdown_t ehci_ebus_shutdown;
-static device_suspend_t ehci_ebus_suspend;
-static device_resume_t ehci_ebus_resume;
-
static void *ih_err;
@@ -86,45 +82,6 @@ static void *ih_err;
#define USB_BRIDGE_INTR_MASK 0x214
static int
-ehci_ebus_suspend(device_t self)
-{
- ehci_softc_t *sc = device_get_softc(self);
- int err;
-
- err = bus_generic_suspend(self);
- if (err)
- return (err);
- ehci_suspend(sc);
- return (0);
-}
-
-static int
-ehci_ebus_resume(device_t self)
-{
- ehci_softc_t *sc = device_get_softc(self);
-
- ehci_resume(sc);
-
- bus_generic_resume(self);
-
- return (0);
-}
-
-static int
-ehci_ebus_shutdown(device_t self)
-{
- ehci_softc_t *sc = device_get_softc(self);
- int err;
-
- err = bus_generic_shutdown(self);
- if (err)
- return (err);
- ehci_shutdown(sc);
-
- return (0);
-}
-
-static int
ehci_ebus_probe(device_t self)
{
@@ -277,17 +234,17 @@ static device_method_t ehci_methods[] =
DEVMETHOD(device_probe, ehci_ebus_probe),
DEVMETHOD(device_attach, ehci_ebus_attach),
DEVMETHOD(device_detach, ehci_ebus_detach),
- DEVMETHOD(device_suspend, ehci_ebus_suspend),
- DEVMETHOD(device_resume, ehci_ebus_resume),
- DEVMETHOD(device_shutdown, ehci_ebus_shutdown),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_shutdown, bus_generic_shutdown),
DEVMETHOD_END
};
static driver_t ehci_driver = {
- "ehci",
- ehci_methods,
- sizeof(ehci_softc_t),
+ .name = "ehci",
+ .methods = ehci_methods,
+ .size = sizeof(ehci_softc_t),
};
static devclass_t ehci_devclass;
Modified: projects/nfsv4.1-client/sys/arm/econa/ohci_ec.c
==============================================================================
--- projects/nfsv4.1-client/sys/arm/econa/ohci_ec.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/econa/ohci_ec.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -220,15 +220,17 @@ static device_method_t ohci_methods[] =
DEVMETHOD(device_probe, ohci_ec_probe),
DEVMETHOD(device_attach, ohci_ec_attach),
DEVMETHOD(device_detach, ohci_ec_detach),
+ DEVMETHOD(device_resume, bus_generic_resume),
+ DEVMETHOD(device_suspend, bus_generic_suspend),
DEVMETHOD(device_shutdown, bus_generic_shutdown),
DEVMETHOD_END
};
static driver_t ohci_driver = {
- "ohci",
- ohci_methods,
- sizeof(struct ec_ohci_softc),
+ .name = "ohci",
+ .methods = ohci_methods,
+ .size = sizeof(struct ec_ohci_softc),
};
static devclass_t ohci_devclass;
Modified: projects/nfsv4.1-client/sys/arm/include/_types.h
==============================================================================
--- projects/nfsv4.1-client/sys/arm/include/_types.h Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/include/_types.h Mon Dec 26 00:10:42 2011 (r228884)
@@ -46,7 +46,7 @@
/*
* Basic types upon which most other types are built.
*/
-typedef __signed char __int8_t;
+typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef short __int16_t;
typedef unsigned short __uint16_t;
Modified: projects/nfsv4.1-client/sys/arm/include/pmap.h
==============================================================================
--- projects/nfsv4.1-client/sys/arm/include/pmap.h Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/arm/include/pmap.h Mon Dec 26 00:10:42 2011 (r228884)
@@ -382,7 +382,8 @@ do { \
if (PMAP_NEEDS_PTE_SYNC) { \
cpu_dcache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\
cpu_l2cache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\
- }\
+ } else \
+ cpu_drain_writebuf(); \
} while (/*CONSTCOND*/0)
#define PTE_SYNC_RANGE(pte, cnt) \
@@ -392,7 +393,8 @@ do { \
(cnt) << 2); /* * sizeof(pt_entry_t) */ \
cpu_l2cache_wb_range((vm_offset_t)(pte), \
(cnt) << 2); /* * sizeof(pt_entry_t) */ \
- } \
+ } else \
+ cpu_drain_writebuf(); \
} while (/*CONSTCOND*/0)
extern pt_entry_t pte_l1_s_cache_mode;
Modified: projects/nfsv4.1-client/sys/boot/arm/at91/libat91/sd-card.c
==============================================================================
--- projects/nfsv4.1-client/sys/boot/arm/at91/libat91/sd-card.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/boot/arm/at91/libat91/sd-card.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -94,14 +94,14 @@ MCIDeviceWaitReady(unsigned int timeout)
} // End of if AT91C_MCI_RXBUFF
}
-inline static unsigned int
+static inline unsigned int
swap(unsigned int a)
{
return (((a & 0xff) << 24) | ((a & 0xff00) << 8) | ((a & 0xff0000) >> 8)
| ((a & 0xff000000) >> 24));
}
-inline static void
+static inline void
wait_ready()
{
int status;
Modified: projects/nfsv4.1-client/sys/boot/forth/loader.conf
==============================================================================
--- projects/nfsv4.1-client/sys/boot/forth/loader.conf Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/boot/forth/loader.conf Mon Dec 26 00:10:42 2011 (r228884)
@@ -260,6 +260,7 @@ pf_load="NO" # packet filter
bridgestp_load="NO" # if_bridge(4) support
miibus_load="NO" # miibus support, needed for some drivers
+carp_load="NO" # carp(4) protocol
if_ae_load="NO" # Attansic/Atheros L2 FastEthernet
if_age_load="NO" # Attansic/Atheros L1 Gigabit Ethernet
if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet
@@ -275,7 +276,6 @@ if_bridge_load="NO" # if_bridge(4) devi
if_bwi_load="NO" # Broadcom BCM53xx IEEE 802.11b/g wireness NICs
if_bwn_load="NO" # Broadcom BCM43xx IEEE 802.11 wireless NICs
if_bxe_load="NO" # Broadcom NetXtreme II 10Gb Ethernet
-if_carp_load="NO" # carp(4) devices
if_cas_load="NO" # Sun Cassini/Cassini+ and NS DP83065 Saturn
if_cm_load="NO" # SMC (90c26, 90c56, 90c66)
if_cs_load="NO" # Crystal Semiconductor CS8920
Modified: projects/nfsv4.1-client/sys/boot/i386/boot0/boot0.S
==============================================================================
--- projects/nfsv4.1-client/sys/boot/i386/boot0/boot0.S Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/boot/i386/boot0/boot0.S Mon Dec 26 00:10:42 2011 (r228884)
@@ -413,6 +413,7 @@ got_key:
3:
#endif /* ONLY_F_KEYS */
#endif /* SIO */
+check_selection:
cmpb $0x5,%al # F1..F6 or 1..6 ?
#ifdef PXE /* enable PXE/INT18 using F6 */
jne 1f;
@@ -421,7 +422,6 @@ got_key:
#endif /* PXE */
jae beep # Not in F1..F5, beep
-check_selection:
/*
* We have a selection. If it's a bad selection go back to complain.
* The bits in MNUOPT were set when the options were printed.
Modified: projects/nfsv4.1-client/sys/boot/i386/libi386/time.c
==============================================================================
--- projects/nfsv4.1-client/sys/boot/i386/libi386/time.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/boot/i386/libi386/time.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -62,7 +62,7 @@ bios_seconds(void)
* Some BIOSes (notably qemu) don't correctly read the RTC
* registers in an atomic way, sometimes returning bogus values.
* Therefore we "debounce" the reading by accepting it only when
- * we got two identical values in succession.
+ * we got 8 identical values in succession.
*
* If we pass midnight, don't wrap back to 0.
*/
@@ -71,14 +71,16 @@ time(time_t *t)
{
static time_t lasttime;
time_t now, check;
- int try;
+ int same, try;
- try = 0;
+ same = try = 0;
check = bios_seconds();
do {
now = check;
check = bios_seconds();
- } while (now != check && ++try < 1000);
+ if (check != now)
+ same = 0;
+ } while (++same < 8 && ++try < 1000);
if (now < lasttime)
now += 24 * 3600;
Modified: projects/nfsv4.1-client/sys/cam/ata/ata_da.c
==============================================================================
--- projects/nfsv4.1-client/sys/cam/ata/ata_da.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/cam/ata/ata_da.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -165,6 +165,11 @@ static struct ada_quirk_entry ada_quirk_
},
{
/* Samsung Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "SAMSUNG HD155UI*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
+ /* Samsung Advanced Format (4k) drives */
{ T_DIRECT, SIP_MEDIA_FIXED, "*", "SAMSUNG HD204UI*", "*" },
/*quirks*/ADA_Q_4K
},
@@ -174,6 +179,16 @@ static struct ada_quirk_entry ada_quirk_
/*quirks*/ADA_Q_4K
},
{
+ /* Seagate Barracuda Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "ST???DM*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "ST????DM*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
/* Seagate Momentus Advanced Format (4k) drives */
{ T_DIRECT, SIP_MEDIA_FIXED, "*", "ST9500423AS*", "*" },
/*quirks*/ADA_Q_4K
@@ -185,6 +200,16 @@ static struct ada_quirk_entry ada_quirk_
},
{
/* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "ST9640423AS*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "ST9640424AS*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
{ T_DIRECT, SIP_MEDIA_FIXED, "*", "ST9750420AS*", "*" },
/*quirks*/ADA_Q_4K
},
@@ -194,6 +219,11 @@ static struct ada_quirk_entry ada_quirk_
/*quirks*/ADA_Q_4K
},
{
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "*", "ST9750423AS*", "*" },
+ /*quirks*/ADA_Q_4K
+ },
+ {
/* Seagate Momentus Thin Advanced Format (4k) drives */
{ T_DIRECT, SIP_MEDIA_FIXED, "*", "ST???LT*", "*" },
/*quirks*/ADA_Q_4K
Modified: projects/nfsv4.1-client/sys/cam/scsi/scsi_all.h
==============================================================================
--- projects/nfsv4.1-client/sys/cam/scsi/scsi_all.h Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/cam/scsi/scsi_all.h Mon Dec 26 00:10:42 2011 (r228884)
@@ -932,6 +932,7 @@ struct ata_pass_16 {
#define WRITE_12 0xAA
#define WRITE_VERIFY_12 0xAE
#define READ_ELEMENT_STATUS 0xB8
+#define READ_CD 0xBE
/* Maintenance In Service Action Codes */
#define REPORT_IDENTIFYING_INFRMATION 0x05
@@ -1348,6 +1349,17 @@ struct scsi_read_capacity_data_long
{
uint8_t addr[8];
uint8_t length[4];
+#define SRC16_PROT_EN 0x01
+#define SRC16_P_TYPE 0x0e
+ uint8_t prot;
+#define SRC16_LBPPBE 0x0f
+#define SRC16_PI_EXPONENT 0xf0
+#define SRC16_PI_EXPONENT_SHIFT 4
+ uint8_t prot_lbppbe;
+#define SRC16_LALBA 0x3fff
+#define SRC16_LBPRZ 0x4000
+#define SRC16_LBPME 0x8000
+ uint8_t lalba_lbp[2];
};
struct scsi_report_luns
Modified: projects/nfsv4.1-client/sys/cam/scsi/scsi_cd.c
==============================================================================
--- projects/nfsv4.1-client/sys/cam/scsi/scsi_cd.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/cam/scsi/scsi_cd.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -1483,6 +1483,14 @@ cdstart(struct cam_periph *periph, union
/* dxfer_len */ bp->bio_bcount,
/* sense_len */ SSD_FULL_SIZE,
/* timeout */ 30000);
+ /* Use READ CD command for audio tracks. */
+ if (softc->params.blksize == 2352) {
+ start_ccb->csio.cdb_io.cdb_bytes[0] = READ_CD;
+ start_ccb->csio.cdb_io.cdb_bytes[9] = 0xf8;
+ start_ccb->csio.cdb_io.cdb_bytes[10] = 0;
+ start_ccb->csio.cdb_io.cdb_bytes[11] = 0;
+ start_ccb->csio.cdb_len = 12;
+ }
start_ccb->ccb_h.ccb_state = CD_CCB_BUFFER_IO;
@@ -2880,6 +2888,13 @@ cdcheckmedia(struct cam_periph *periph)
softc->flags |= CD_FLAG_VALID_TOC;
+ /* If the first track is audio, correct sector size. */
+ if ((softc->toc.entries[0].control & 4) == 0) {
+ softc->disk->d_sectorsize = softc->params.blksize = 2352;
+ softc->disk->d_mediasize =
+ (off_t)softc->params.blksize * softc->params.disksize;
+ }
+
bailout:
/*
Modified: projects/nfsv4.1-client/sys/cam/scsi/scsi_da.c
==============================================================================
--- projects/nfsv4.1-client/sys/cam/scsi/scsi_da.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/cam/scsi/scsi_da.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -82,14 +82,17 @@ typedef enum {
DA_FLAG_WENT_IDLE = 0x040,
DA_FLAG_RETRY_UA = 0x080,
DA_FLAG_OPEN = 0x100,
- DA_FLAG_SCTX_INIT = 0x200
+ DA_FLAG_SCTX_INIT = 0x200,
+ DA_FLAG_CAN_RC16 = 0x400,
+ DA_FLAG_CAN_LBPME = 0x800
} da_flags;
typedef enum {
DA_Q_NONE = 0x00,
DA_Q_NO_SYNC_CACHE = 0x01,
DA_Q_NO_6_BYTE = 0x02,
- DA_Q_NO_PREVENT = 0x04
+ DA_Q_NO_PREVENT = 0x04,
+ DA_Q_4K = 0x08
} da_quirks;
typedef enum {
@@ -112,6 +115,8 @@ struct disk_params {
u_int8_t secs_per_track;
u_int32_t secsize; /* Number of bytes/sector */
u_int64_t sectors; /* total number sectors */
+ u_int stripesize;
+ u_int stripeoffset;
};
struct da_softc {
@@ -564,7 +569,223 @@ static struct da_quirk_entry da_quirk_ta
*/
{T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Sony DSC", "*"},
/*quirks*/ DA_Q_NO_SYNC_CACHE | DA_Q_NO_PREVENT
- }
+ },
+ /* ATA/SATA devices over SAS/USB/... */
+ {
+ /* Hitachi Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "Hitachi", "H??????????E3*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Samsung Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "SAMSUNG HD155UI*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Samsung Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "SAMSUNG", "HD155UI*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Samsung Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "SAMSUNG HD204UI*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Samsung Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "SAMSUNG", "HD204UI*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST????DL*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST????DL", "*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST???DM*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST???DM*", "*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST????DM*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Barracuda Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST????DM", "*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9500423AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST950042", "3AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9500424AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST950042", "4AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9640423AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST964042", "3AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9640424AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST964042", "4AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9750420AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST975042", "0AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9750422AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST975042", "2AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST9750423AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST975042", "3AS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Thin Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "ST???LT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* Seagate Momentus Thin Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ST???LT*", "*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD????RS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "??RS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD????RX*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "??RX*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD??????RS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "????RS*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD??????RX*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Caviar Green Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "????RX*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Black Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD???PKT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Black Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "?PKT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Black Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD?????PKT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Black Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "???PKT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Blue Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD???PVT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Blue Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "?PVT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Blue Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "WDC WD?????PVT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
+ {
+ /* WDC Scorpio Blue Advanced Format (4k) drives */
+ { T_DIRECT, SIP_MEDIA_FIXED, "WDC WD??", "???PVT*", "*" },
+ /*quirks*/DA_Q_4K
+ },
};
static disk_strategy_t dastrategy;
@@ -585,7 +806,7 @@ static int daerror(union ccb *ccb, u_i
static void daprevent(struct cam_periph *periph, int action);
static int dagetcapacity(struct cam_periph *periph);
static void dasetgeom(struct cam_periph *periph, uint32_t block_len,
- uint64_t maxsector);
+ uint64_t maxsector, u_int lbppbe, u_int lalba);
static timeout_t dasendorderedtag;
static void dashutdown(void *arg, int howto);
@@ -687,6 +908,8 @@ daopen(struct disk *dp)
softc->disk->d_sectorsize = softc->params.secsize;
softc->disk->d_mediasize = softc->params.secsize * (off_t)softc->params.sectors;
+ softc->disk->d_stripesize = softc->params.stripesize;
+ softc->disk->d_stripeoffset = softc->params.stripeoffset;
/* XXX: these are not actually "firmware" values, so they may be wrong */
softc->disk->d_fwsectors = softc->params.secs_per_track;
softc->disk->d_fwheads = softc->params.heads;
@@ -1312,6 +1535,14 @@ daregister(struct cam_periph *periph, vo
else if (softc->minimum_cmd_size > 12)
softc->minimum_cmd_size = 16;
+ /* Predict whether device may support READ CAPACITY(16). */
+ if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 ||
+ (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC &&
+ (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT))) {
+ softc->flags |= DA_FLAG_CAN_RC16;
+ softc->state = DA_STATE_PROBE2;
+ }
+
/*
* Register this media as a disk.
*/
@@ -1701,10 +1932,14 @@ dadone(struct cam_periph *periph, union
struct disk_params *dp;
uint32_t block_size;
uint64_t maxsector;
+ u_int lbppbe; /* LB per physical block exponent. */
+ u_int lalba; /* Lowest aligned LBA. */
if (softc->state == DA_STATE_PROBE) {
block_size = scsi_4btoul(rdcap->length);
maxsector = scsi_4btoul(rdcap->addr);
+ lbppbe = 0;
+ lalba = 0;
/*
* According to SBC-2, if the standard 10
@@ -1724,6 +1959,8 @@ dadone(struct cam_periph *periph, union
} else {
block_size = scsi_4btoul(rcaplong->length);
maxsector = scsi_8btou64(rcaplong->addr);
+ lbppbe = rcaplong->prot_lbppbe & SRC16_LBPPBE;
+ lalba = scsi_2btoul(rcaplong->lalba_lbp);
}
/*
@@ -1741,7 +1978,12 @@ dadone(struct cam_periph *periph, union
announce_buf[0] = '\0';
cam_periph_invalidate(periph);
} else {
- dasetgeom(periph, block_size, maxsector);
+ dasetgeom(periph, block_size, maxsector,
+ lbppbe, lalba & SRC16_LALBA);
+ if (lalba & SRC16_LBPME)
+ softc->flags |= DA_FLAG_CAN_LBPME;
+ else
+ softc->flags &= ~DA_FLAG_CAN_LBPME;
dp = &softc->params;
snprintf(announce_buf, sizeof(announce_buf),
"%juMB (%ju %u byte sectors: %dH %dS/T "
@@ -1808,6 +2050,24 @@ dadone(struct cam_periph *periph, union
&ascq, /*show_errors*/ 1);
}
/*
+ * If we tried READ CAPACITY(16) and failed,
+ * fallback to READ CAPACITY(10).
+ */
+ if ((softc->state == DA_STATE_PROBE2) &&
+ (softc->flags & DA_FLAG_CAN_RC16) &&
+ (((csio->ccb_h.status & CAM_STATUS_MASK) ==
+ CAM_REQ_INVALID) ||
+ ((have_sense) &&
+ (error_code == SSD_CURRENT_ERROR) &&
+ (sense_key == SSD_KEY_ILLEGAL_REQUEST)))) {
+ softc->flags &= ~DA_FLAG_CAN_RC16;
+ softc->state = DA_STATE_PROBE;
+ free(rdcap, M_SCSIDA);
+ xpt_release_ccb(done_ccb);
+ xpt_schedule(periph, priority);
+ return;
+ } else
+ /*
* Attach to anything that claims to be a
* direct access or optical disk device,
* as long as it doesn't return a "Logical
@@ -1977,13 +2237,18 @@ dagetcapacity(struct cam_periph *periph)
struct scsi_read_capacity_data_long *rcaplong;
uint32_t block_len;
uint64_t maxsector;
- int error;
+ int error, rc16failed;
u_int32_t sense_flags;
+ u_int lbppbe; /* Logical blocks per physical block exponent. */
+ u_int lalba; /* Lowest aligned LBA. */
softc = (struct da_softc *)periph->softc;
block_len = 0;
maxsector = 0;
+ lbppbe = 0;
+ lalba = 0;
error = 0;
+ rc16failed = 0;
sense_flags = SF_RETRY_UA;
if (softc->flags & DA_FLAG_PACK_REMOVABLE)
sense_flags |= SF_NO_PRINT;
@@ -1991,11 +2256,63 @@ dagetcapacity(struct cam_periph *periph)
/* Do a read capacity */
rcap = (struct scsi_read_capacity_data *)malloc(sizeof(*rcaplong),
M_SCSIDA,
- M_NOWAIT);
+ M_NOWAIT | M_ZERO);
if (rcap == NULL)
return (ENOMEM);
-
+ rcaplong = (struct scsi_read_capacity_data_long *)rcap;
+
ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL);
+
+ /* Try READ CAPACITY(16) first if we think it should work. */
+ if (softc->flags & DA_FLAG_CAN_RC16) {
+ scsi_read_capacity_16(&ccb->csio,
+ /*retries*/ 4,
+ /*cbfcnp*/ dadone,
+ /*tag_action*/ MSG_SIMPLE_Q_TAG,
+ /*lba*/ 0,
+ /*reladr*/ 0,
+ /*pmi*/ 0,
+ rcaplong,
+ /*sense_len*/ SSD_FULL_SIZE,
+ /*timeout*/ 60000);
+ ccb->ccb_h.ccb_bp = NULL;
+
+ error = cam_periph_runccb(ccb, daerror,
+ /*cam_flags*/CAM_RETRY_SELTO,
+ sense_flags,
+ softc->disk->d_devstat);
+
+ if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0)
+ cam_release_devq(ccb->ccb_h.path,
+ /*relsim_flags*/0,
+ /*reduction*/0,
+ /*timeout*/0,
+ /*getcount_only*/0);
+
+ if (error == 0)
+ goto rc16ok;
+
+ /* If we got ILLEGAL REQUEST, do not prefer RC16 any more. */
+ if ((ccb->ccb_h.status & CAM_STATUS_MASK) ==
+ CAM_REQ_INVALID) {
+ softc->flags &= ~DA_FLAG_CAN_RC16;
+ } else if (((ccb->ccb_h.status & CAM_STATUS_MASK) ==
+ CAM_SCSI_STATUS_ERROR) &&
+ (ccb->csio.scsi_status == SCSI_STATUS_CHECK_COND) &&
+ (ccb->ccb_h.status & CAM_AUTOSNS_VALID) &&
+ ((ccb->ccb_h.flags & CAM_SENSE_PHYS) == 0) &&
+ ((ccb->ccb_h.flags & CAM_SENSE_PTR) == 0)) {
+ int sense_key, error_code, asc, ascq;
+
+ scsi_extract_sense(&ccb->csio.sense_data,
+ &error_code, &sense_key, &asc, &ascq);
+ if (sense_key == SSD_KEY_ILLEGAL_REQUEST)
+ softc->flags &= ~DA_FLAG_CAN_RC16;
+ }
+ rc16failed = 1;
+ }
+
+ /* Do READ CAPACITY(10). */
scsi_read_capacity(&ccb->csio,
/*retries*/4,
/*cbfncp*/dadone,
@@ -2021,13 +2338,12 @@ dagetcapacity(struct cam_periph *periph)
block_len = scsi_4btoul(rcap->length);
maxsector = scsi_4btoul(rcap->addr);
- if (maxsector != 0xffffffff)
+ if (maxsector != 0xffffffff || rc16failed)
goto done;
} else
goto done;
- rcaplong = (struct scsi_read_capacity_data_long *)rcap;
-
+ /* If READ CAPACITY(10) returned overflow, use READ CAPACITY(16) */
scsi_read_capacity_16(&ccb->csio,
/*retries*/ 4,
/*cbfcnp*/ dadone,
@@ -2053,8 +2369,11 @@ dagetcapacity(struct cam_periph *periph)
/*getcount_only*/0);
if (error == 0) {
+rc16ok:
block_len = scsi_4btoul(rcaplong->length);
maxsector = scsi_8btou64(rcaplong->addr);
+ lbppbe = rcaplong->prot_lbppbe & SRC16_LBPPBE;
+ lalba = scsi_2btoul(rcaplong->lalba_lbp);
}
done:
@@ -2065,8 +2384,14 @@ done:
"unsupportable block size %ju\n",
(uintmax_t) block_len);
error = EINVAL;
- } else
- dasetgeom(periph, block_len, maxsector);
+ } else {
+ dasetgeom(periph, block_len, maxsector,
+ lbppbe, lalba & SRC16_LALBA);
+ if (lalba & SRC16_LBPME)
+ softc->flags |= DA_FLAG_CAN_LBPME;
+ else
+ softc->flags &= ~DA_FLAG_CAN_LBPME;
+ }
}
xpt_release_ccb(ccb);
@@ -2077,7 +2402,8 @@ done:
}
static void
-dasetgeom(struct cam_periph *periph, uint32_t block_len, uint64_t maxsector)
+dasetgeom(struct cam_periph *periph, uint32_t block_len, uint64_t maxsector,
+ u_int lbppbe, u_int lalba)
{
struct ccb_calc_geometry ccg;
struct da_softc *softc;
@@ -2088,6 +2414,17 @@ dasetgeom(struct cam_periph *periph, uin
dp = &softc->params;
dp->secsize = block_len;
dp->sectors = maxsector + 1;
+ if (lbppbe > 0) {
+ dp->stripesize = block_len << lbppbe;
+ dp->stripeoffset = (dp->stripesize - block_len * lalba) %
+ dp->stripesize;
+ } else if (softc->quirks & DA_Q_4K) {
+ dp->stripesize = 4096;
+ dp->stripeoffset = 0;
+ } else {
+ dp->stripesize = 0;
+ dp->stripeoffset = 0;
+ }
/*
* Have the controller provide us with a geometry
* for this disk. The only time the geometry
Modified: projects/nfsv4.1-client/sys/cam/scsi/scsi_target.c
==============================================================================
--- projects/nfsv4.1-client/sys/cam/scsi/scsi_target.c Sun Dec 25 22:05:33 2011 (r228883)
+++ projects/nfsv4.1-client/sys/cam/scsi/scsi_target.c Mon Dec 26 00:10:42 2011 (r228884)
@@ -96,12 +96,9 @@ struct targ_softc {
targ_state state;
struct selinfo read_select;
struct devstat device_stats;
- struct callout destroy_dev_callout;
- struct mtx destroy_mtx;
};
static d_open_t targopen;
-static d_close_t targclose;
static d_read_t targread;
static d_write_t targwrite;
static d_ioctl_t targioctl;
@@ -119,7 +116,6 @@ static struct cdevsw targ_cdevsw = {
.d_version = D_VERSION,
.d_flags = D_NEEDGIANT,
.d_open = targopen,
- .d_close = targclose,
.d_read = targread,
.d_write = targwrite,
.d_ioctl = targioctl,
@@ -152,15 +148,12 @@ static void targfreeccb(struct targ_sof
static struct targ_cmd_descr *
targgetdescr(struct targ_softc *softc);
static periph_init_t targinit;
-static void targclone(void *arg, struct ucred *cred, char *name,
- int namelen, struct cdev **dev);
static void targasync(void *callback_arg, u_int32_t code,
struct cam_path *path, void *arg);
static void abort_all_pending(struct targ_softc *softc);
static void notify_user(struct targ_softc *softc);
static int targcamstatus(cam_status status);
static size_t targccblen(xpt_opcode func_code);
-static void targdestroy(void *);
static struct periph_driver targdriver =
{
@@ -171,66 +164,18 @@ PERIPHDRIVER_DECLARE(targ, targdriver);
static MALLOC_DEFINE(M_TARG, "TARG", "TARG data");
-/*
- * Create softc and initialize it. Only one proc can open each targ device.
- * There is no locking here because a periph doesn't get created until an
- * ioctl is issued to do so, and that can't happen until this method returns.
- */
-static int
-targopen(struct cdev *dev, int flags, int fmt, struct thread *td)
-{
- struct targ_softc *softc;
-
- if (dev->si_drv1 != 0) {
- return (EBUSY);
- }
-
- /* Mark device busy before any potentially blocking operations */
- dev->si_drv1 = (void *)~0;
-
- /* Create the targ device, allocate its softc, initialize it */
- if ((dev->si_flags & SI_NAMED) == 0) {
- make_dev(&targ_cdevsw, dev2unit(dev), UID_ROOT, GID_WHEEL, 0600,
- "targ%d", dev2unit(dev));
- }
- softc = malloc(sizeof(*softc), M_TARG,
- M_WAITOK | M_ZERO);
- dev->si_drv1 = softc;
- softc->state = TARG_STATE_OPENED;
- softc->periph = NULL;
- softc->path = NULL;
-
- TAILQ_INIT(&softc->pending_ccb_queue);
- TAILQ_INIT(&softc->work_queue);
- TAILQ_INIT(&softc->abort_queue);
- TAILQ_INIT(&softc->user_ccb_queue);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list