PERFORCE change 118381 for review
Jung-uk Kim
jkim at FreeBSD.org
Wed Apr 18 20:35:27 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=118381
Change 118381 by jkim at jkim_hammer on 2007/04/18 20:34:35
IFC @118379
Affected files ...
.. //depot/projects/linuxolator/src/sys/Makefile#5 integrate
.. //depot/projects/linuxolator/src/sys/amd64/amd64/busdma_machdep.c#4 integrate
.. //depot/projects/linuxolator/src/sys/amd64/amd64/pmap.c#8 integrate
.. //depot/projects/linuxolator/src/sys/amd64/conf/GENERIC#10 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_dummy.c#13 integrate
.. //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#49 integrate
.. //depot/projects/linuxolator/src/sys/boot/forth/loader.conf#6 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_ccb.h#4 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_periph.c#4 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_periph.h#2 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_sim.c#2 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_sim.h#2 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_xpt.c#9 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_xpt.h#4 integrate
.. //depot/projects/linuxolator/src/sys/cam/cam_xpt_periph.h#2 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_cd.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_ch.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_da.c#10 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_low.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_pass.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_pt.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_sa.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_ses.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_sg.c#2 edit
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_sg.h#2 edit
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_targ_bh.c#3 integrate
.. //depot/projects/linuxolator/src/sys/cam/scsi/scsi_target.c#4 integrate
.. //depot/projects/linuxolator/src/sys/compat/linprocfs/linprocfs.c#17 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_ioctl.h#4 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_socket.c#15 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/kern/opensolaris_kmem.c#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/kern/opensolaris_kobj.c#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/kern/opensolaris_misc.c#1 branch
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/kern/opensolaris_string.c#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/kern/opensolaris_vfs.c#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/kmem.h#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/kobj.h#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/lock.h#1 branch
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/misc.h#1 branch
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/mutex.h#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/rwlock.h#2 integrate
.. //depot/projects/linuxolator/src/sys/compat/opensolaris/sys/string.h#2 integrate
.. //depot/projects/linuxolator/src/sys/conf/NOTES#24 integrate
.. //depot/projects/linuxolator/src/sys/conf/files#27 integrate
.. //depot/projects/linuxolator/src/sys/conf/files.ia64#3 integrate
.. //depot/projects/linuxolator/src/sys/conf/options#23 integrate
.. //depot/projects/linuxolator/src/sys/contrib/dev/acpica/utmisc.c#3 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/common/atomic/amd64/atomic.S#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/common/atomic/i386/atomic.S#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/dnlc.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#3 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dir.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zap.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/opensolaris/uts/common/sys/fs/zfs.h#2 integrate
.. //depot/projects/linuxolator/src/sys/contrib/pf/net/if_pfsync.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/aac/aac_cam.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/advansys/advansys.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/advansys/adwcam.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/aha/aha.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/ahb/ahb.c#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic/aic.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7770.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic79xx.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic79xx.h#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic79xx_osm.h#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7xxx.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7xxx.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7xxx_osm.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7xxx_osm.h#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic7xxx_pci.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/aic7xxx/aic_osm_lib.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/amd/amd.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/amr/amr_cam.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/arcmsr/arcmsr.c#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/asr/asr.c#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/ata-all.h#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#14 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/ata-dma.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/atapi-cam.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/ath/ah_osdep.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/buslogic/bt.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/ciss/ciss.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/cxgb_adapter.h#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/cxgb_lro.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/cxgb_main.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/cxgb_osdep.h#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/cxgb_sge.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/cxgb/sys/mvec.h#1 branch
.. //depot/projects/linuxolator/src/sys/dev/cxgb/sys/uipc_mvec.c#1 branch
.. //depot/projects/linuxolator/src/sys/dev/dpt/dpt_scsi.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/esp/ncr53c9x.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/ex/if_exvar.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/firewire/fwdma.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/firewire/sbp.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/firewire/sbp_targ.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/hptmv/entry.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/iicbus/icee.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/iir/iir.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/isp/isp_freebsd.c#12 integrate
.. //depot/projects/linuxolator/src/sys/dev/mii/brgphy.c#12 integrate
.. //depot/projects/linuxolator/src/sys/dev/mii/miidevs#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/mly/mly.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/mpt/mpt_cam.c#15 integrate
.. //depot/projects/linuxolator/src/sys/dev/msk/if_msk.c#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/ppbus/vpo.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/re/if_re.c#12 integrate
.. //depot/projects/linuxolator/src/sys/dev/rr232x/osm_bsd.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/isa/ad1816.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/isa/ess.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/isa/mss.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/isa/sb16.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/isa/sb8.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/als4000.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/atiixp.c#7 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/au88x0.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/aureal.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/cmi.c#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/cs4281.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/csapcm.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/ds1.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/emu10k1.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/emu10kx-pcm.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/es137x.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/fm801.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/hda/hdac.c#18 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/ich.c#7 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/maestro3.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/solo.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/t4dwave.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/via8233.c#7 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/via82c686.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pci/vibes.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.c#7 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pcm/buffer.h#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/pcm/sound.h#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/sound/sbus/cs4231.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/sym/sym_hipd.c#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/trm/trm.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/twa/tw_osl_cam.c#3 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/umass.c#6 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#12 integrate
.. //depot/projects/linuxolator/src/sys/dev/wds/wd7000.c#4 integrate
.. //depot/projects/linuxolator/src/sys/fs/procfs/procfs_dbregs.c#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/procfs/procfs_fpregs.c#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/procfs/procfs_map.c#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/procfs/procfs_regs.c#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs.c#4 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs.h#4 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs_fileno.c#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs_internal.h#2 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs_vncache.c#4 integrate
.. //depot/projects/linuxolator/src/sys/fs/pseudofs/pseudofs_vnops.c#2 integrate
.. //depot/projects/linuxolator/src/sys/geom/eli/g_eli.c#8 integrate
.. //depot/projects/linuxolator/src/sys/geom/vinum/geom_vinum.h#2 integrate
.. //depot/projects/linuxolator/src/sys/geom/vinum/geom_vinum_rm.c#2 integrate
.. //depot/projects/linuxolator/src/sys/geom/vinum/geom_vinum_share.c#2 integrate
.. //depot/projects/linuxolator/src/sys/geom/vinum/geom_vinum_subr.c#2 integrate
.. //depot/projects/linuxolator/src/sys/i386/conf/GENERIC#8 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/busdma_machdep.c#5 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/identcpu.c#7 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/mp_machdep.c#8 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/pmap.c#12 integrate
.. //depot/projects/linuxolator/src/sys/i386/include/pmap.h#6 integrate
.. //depot/projects/linuxolator/src/sys/ia64/conf/GENERIC#6 integrate
.. //depot/projects/linuxolator/src/sys/isa/isa_common.c#2 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_jail.c#11 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_mib.c#2 integrate
.. //depot/projects/linuxolator/src/sys/kern/subr_rman.c#5 integrate
.. //depot/projects/linuxolator/src/sys/kern/uipc_mbuf.c#7 integrate
.. //depot/projects/linuxolator/src/sys/kern/uipc_mqueue.c#8 integrate
.. //depot/projects/linuxolator/src/sys/kern/vfs_mount.c#14 integrate
.. //depot/projects/linuxolator/src/sys/kern/vfs_subr.c#12 integrate
.. //depot/projects/linuxolator/src/sys/libkern/index.c#2 integrate
.. //depot/projects/linuxolator/src/sys/libkern/rindex.c#2 integrate
.. //depot/projects/linuxolator/src/sys/modules/Makefile#14 integrate
.. //depot/projects/linuxolator/src/sys/modules/cxgb/Makefile#3 integrate
.. //depot/projects/linuxolator/src/sys/modules/dpt/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/modules/if_lagg/Makefile#1 branch
.. //depot/projects/linuxolator/src/sys/modules/libalias/libalias/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/modules/zfs/Makefile#3 integrate
.. //depot/projects/linuxolator/src/sys/net/ieee8023ad_lacp.c#1 branch
.. //depot/projects/linuxolator/src/sys/net/ieee8023ad_lacp.h#1 branch
.. //depot/projects/linuxolator/src/sys/net/if.c#7 integrate
.. //depot/projects/linuxolator/src/sys/net/if_ethersubr.c#8 integrate
.. //depot/projects/linuxolator/src/sys/net/if_lagg.c#1 branch
.. //depot/projects/linuxolator/src/sys/net/if_lagg.h#1 branch
.. //depot/projects/linuxolator/src/sys/net/if_var.h#3 integrate
.. //depot/projects/linuxolator/src/sys/netinet/in_pcb.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/ip_fw2.c#14 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_constants.h#10 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_crc32.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_indata.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_input.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_output.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_pcb.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_peeloff.c#6 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_structs.h#11 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_timer.c#9 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_uio.h#9 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_usrreq.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_var.h#8 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctputil.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctputil.h#9 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_input.c#15 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_output.c#10 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_sack.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_subr.c#10 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_syncache.c#8 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_timer.c#5 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_timer.h#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/linuxolator/src/sys/netinet/tcp_var.h#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet6/ipsec.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet6/sctp6_usrreq.c#12 integrate
.. //depot/projects/linuxolator/src/sys/netipsec/ipsec_osdep.h#3 integrate
.. //depot/projects/linuxolator/src/sys/netnatm/natm.h#3 integrate
.. //depot/projects/linuxolator/src/sys/nfsserver/nfs_srvsock.c#4 integrate
.. //depot/projects/linuxolator/src/sys/pc98/conf/GENERIC#7 integrate
.. //depot/projects/linuxolator/src/sys/pci/if_rlreg.h#4 integrate
.. //depot/projects/linuxolator/src/sys/pci/if_vr.c#4 integrate
.. //depot/projects/linuxolator/src/sys/pci/if_vrreg.h#3 integrate
.. //depot/projects/linuxolator/src/sys/pci/ncr.c#4 integrate
.. //depot/projects/linuxolator/src/sys/powerpc/conf/GENERIC#8 integrate
.. //depot/projects/linuxolator/src/sys/rpc/types.h#1 branch
.. //depot/projects/linuxolator/src/sys/security/audit/audit.c#7 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit.h#2 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit_arg.c#6 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit_bsm.c#5 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit_bsm_token.c#4 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit_private.h#4 integrate
.. //depot/projects/linuxolator/src/sys/security/audit/audit_syscalls.c#9 integrate
.. //depot/projects/linuxolator/src/sys/sparc64/conf/GENERIC#7 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/conf/GENERIC#8 integrate
.. //depot/projects/linuxolator/src/sys/sys/eventhandler.h#5 integrate
.. //depot/projects/linuxolator/src/sys/sys/hash.h#2 integrate
.. //depot/projects/linuxolator/src/sys/sys/kernel.h#4 integrate
.. //depot/projects/linuxolator/src/sys/sys/libkern.h#3 integrate
.. //depot/projects/linuxolator/src/sys/sys/mbuf.h#10 integrate
.. //depot/projects/linuxolator/src/sys/sys/mount.h#11 integrate
.. //depot/projects/linuxolator/src/sys/sys/mutex.h#10 integrate
.. //depot/projects/linuxolator/src/sys/sys/param.h#15 integrate
.. //depot/projects/linuxolator/src/sys/sys/priv.h#8 integrate
.. //depot/projects/linuxolator/src/sys/sys/proc.h#15 integrate
.. //depot/projects/linuxolator/src/sys/sys/sysctl.h#3 integrate
.. //depot/projects/linuxolator/src/sys/sys/systm.h#13 integrate
.. //depot/projects/linuxolator/src/sys/ufs/ffs/ffs_snapshot.c#6 integrate
.. //depot/projects/linuxolator/src/sys/ufs/ffs/ffs_softdep.c#10 integrate
.. //depot/projects/linuxolator/src/sys/vm/phys_pager.c#4 integrate
Differences ...
==== //depot/projects/linuxolator/src/sys/Makefile#5 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.41 2007/03/24 22:21:01 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.42 2007/04/14 16:29:15 maxim Exp $
.include <bsd.own.mk>
@@ -8,10 +8,10 @@
.endif
# Directories to include in cscope name file and TAGS.
-CSCOPEDIRS= cam coda compat conf contrib crypto ddb dev fs geom gnu i4b \
- isa kern libkern modules net net80211 netatalk netatm \
+CSCOPEDIRS= bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \
+ i4b isa kern libkern modules net net80211 netatalk netatm \
netgraph netinet netinet6 netipx netkey netnatm netncp \
- netsmb nfs nfsclient nfs4client rpc pccard pci sys \
+ netsmb nfs nfsclient nfs4client rpc pccard pci security sys \
ufs vm ${ARCHDIR}
ARCHDIR ?= ${MACHINE}
==== //depot/projects/linuxolator/src/sys/amd64/amd64/busdma_machdep.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.79 2007/03/06 18:28:42 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.80 2007/04/17 21:05:34 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -48,6 +48,7 @@
#include <machine/atomic.h>
#include <machine/bus.h>
#include <machine/md_var.h>
+#include <machine/specialreg.h>
#define MAX_BPAGES 8192
@@ -522,6 +523,9 @@
} else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) {
printf("bus_dmamem_alloc failed to align memory properly.\n");
}
+ if (flags & BUS_DMA_NOCACHE)
+ pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize,
+ PAT_UNCACHEABLE);
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
__func__, dmat, dmat->flags, ENOMEM);
return (0);
@@ -540,6 +544,7 @@
*/
if (map != NULL)
panic("bus_dmamem_free: Invalid map freed\n");
+ pmap_change_attr((vm_offset_t)vaddr, dmat->maxsize, PAT_WRITE_BACK);
if ((dmat->maxsize <= PAGE_SIZE) &&
(dmat->alignment < dmat->maxsize) &&
dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem))
==== //depot/projects/linuxolator/src/sys/amd64/amd64/pmap.c#8 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.581 2007/03/10 20:26:43 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.582 2007/04/13 16:07:29 alc Exp $");
/*
* Manages physical address maps.
@@ -3261,7 +3261,7 @@
pd_entry_t *pde;
pt_entry_t *pte;
- base = va & PG_FRAME;
+ base = trunc_page(va);
offset = va & PAGE_MASK;
size = roundup(offset + size, PAGE_SIZE);
==== //depot/projects/linuxolator/src/sys/amd64/conf/GENERIC#10 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.473 2007/02/09 19:03:17 brooks Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.475 2007/04/10 21:40:12 pjd Exp $
cpu HAMMER
ident GENERIC
@@ -34,6 +34,7 @@
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
+options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_dummy.c#13 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.8 2007/03/29 02:11:46 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_dummy.c,v 1.9 2007/04/18 18:08:12 jkim Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -63,7 +63,6 @@
DUMMY(mincore);
DUMMY(fadvise64);
DUMMY(ptrace);
-DUMMY(settimeofday);
DUMMY(lookup_dcookie);
DUMMY(epoll_create);
DUMMY(epoll_ctl);
==== //depot/projects/linuxolator/src/sys/amd64/linux32/linux32_machdep.c#49 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.39 2007/03/30 17:27:13 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.42 2007/04/18 20:12:05 jkim Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -252,7 +252,7 @@
if (iovcnt > UIO_MAXIOV)
return (EINVAL);
iovlen = iovcnt * sizeof(struct iovec);
- uio = malloc(iovlen + sizeof *uio, M_IOV, M_WAITOK);
+ uio = malloc(iovlen + sizeof(*uio), M_IOV, M_WAITOK);
iov = (struct iovec *)(uio + 1);
for (i = 0; i < iovcnt; i++) {
error = copyin(&iovp[i], &iov32, sizeof(struct iovec32));
@@ -526,7 +526,9 @@
td2 = FIRST_THREAD_IN_PROC(p2);
- /* make it run */
+ /*
+ * Make this runnable after we are finished with it.
+ */
mtx_lock_spin(&sched_lock);
TD_SET_CAN_RUN(td2);
sched_add(td2, SRQ_BORING);
@@ -572,8 +574,8 @@
/*
* XXX: In Linux, sharing of fs info (chroot/cwd/umask)
* and open files is independant. In FreeBSD, its in one
- * structure but in reality it does not make any problems
- * because both of these flags are set at once usually.
+ * structure but in reality it does not cause any problems
+ * because both of these flags are usually set together.
*/
if (!(args->flags & (LINUX_CLONE_FILES | LINUX_CLONE_FS)))
ff |= RFFDG;
@@ -660,15 +662,15 @@
if (args->flags & LINUX_CLONE_SETTLS) {
struct user_segment_descriptor sd;
struct l_user_desc info;
- int a[2];
+ int a[2];
- error = copyin((void *)td->td_frame->tf_rsi, &info,
+ error = copyin((void *)td->td_frame->tf_rsi, &info,
sizeof(struct l_user_desc));
if (error) {
printf(LMSG("copyin failed!"));
} else {
/* We might copy out the entry_number as GUGS32_SEL. */
- info.entry_number = GUGS32_SEL;
+ info.entry_number = GUGS32_SEL;
error = copyout(&info, (void *)td->td_frame->tf_rsi,
sizeof(struct l_user_desc));
if (error)
@@ -871,7 +873,7 @@
*
* Our mmap with MAP_STACK takes addr as the maximum
* downsize limit on BOS, and as len the max size of
- * the region. It them maps the top SGROWSIZ bytes,
+ * the region. It then maps the top SGROWSIZ bytes,
* and auto grows the region down, up to the limit
* in addr.
*
@@ -1167,17 +1169,44 @@
microtime(&atv);
atv32.tv_sec = atv.tv_sec;
atv32.tv_usec = atv.tv_usec;
- error = copyout(&atv32, uap->tp, sizeof (atv32));
+ error = copyout(&atv32, uap->tp, sizeof(atv32));
}
if (error == 0 && uap->tzp != NULL) {
rtz.tz_minuteswest = tz_minuteswest;
rtz.tz_dsttime = tz_dsttime;
- error = copyout(&rtz, uap->tzp, sizeof (rtz));
+ error = copyout(&rtz, uap->tzp, sizeof(rtz));
}
return (error);
}
int
+linux_settimeofday(struct thread *td, struct linux_settimeofday_args *uap)
+{
+ l_timeval atv32;
+ struct timeval atv, *tvp;
+ struct timezone atz, *tzp;
+ int error;
+
+ if (uap->tp) {
+ error = copyin(uap->tp, &atv32, sizeof(atv32));
+ if (error)
+ return (error);
+ atv.tv_sec = atv32.tv_sec;
+ atv.tv_usec = atv32.tv_usec;
+ tvp = &atv;
+ } else
+ tvp = NULL;
+ if (uap->tzp) {
+ error = copyin(uap->tzp, &atz, sizeof(atz));
+ if (error)
+ return (error);
+ tzp = &atz;
+ } else
+ tzp = NULL;
+ return (kern_settimeofday(td, tvp, tzp));
+}
+
+int
linux_getrusage(struct thread *td, struct linux_getrusage_args *uap)
{
struct l_rusage s32;
@@ -1242,7 +1271,7 @@
#ifdef DEBUG
if (ldebug(set_thread_area))
- printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, "
+ printf(ARGS(set_thread_area, "%i, %x, %x, %i, %i, %i, "
"%i, %i, %i"), info.entry_number, info.base_addr,
info.limit, info.seg_32bit, info.contents,
info.read_exec_only, info.limit_in_pages,
@@ -1261,9 +1290,10 @@
* The tls_array[] is used only in [gs]et_thread_area() syscalls and
* for loading the GDT descriptors. We use just one GDT descriptor
* for TLS, so we will load just one.
- * XXX: This doesnt work when user-space process tries to use more
+ *
+ * XXX: This doesn't work when a user space process tries to use more
* than one TLS segment. Comment in the Linux source says wine might
- * do that.
+ * do this.
*/
/*
@@ -1284,8 +1314,9 @@
/*
* We have to copy out the GDT entry we use.
- * XXX: What if userspace program does not check return value and
- * tries to use 6, 7 or 8?
+ *
+ * XXX: What if a user space program does not check the return value
+ * and tries to use 6, 7 or 8?
*/
error = copyout(&info, args->desc, sizeof(struct l_user_desc));
if (error)
==== //depot/projects/linuxolator/src/sys/boot/forth/loader.conf#6 (text+ko) ====
@@ -6,7 +6,7 @@
#
# All arguments must be in double quotes.
#
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.118 2007/02/04 06:35:10 imp Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.120 2007/04/09 22:09:09 pjd Exp $
##############################################################
### Basic configuration options ############################
@@ -138,6 +138,7 @@
#umapfs_load="NO" # User-id map filesystem
unionfs_load="NO" # Union filesystem
xfs_load="NO" # XFS
+zfs_load="NO" # ZFS
# Related stuff
@@ -418,3 +419,10 @@
#module_after="cmd" # executes "cmd" after loading the module
#module_error="cmd" # executes "cmd" if load fails
+##############################################################
+### Always try to load ZFS pool cache file #################
+##############################################################
+
+zpool_cache_load="YES"
+zpool_cache_type="/boot/zfs/zpool.cache"
+zpool_cache_name="/boot/zfs/zpool.cache"
==== //depot/projects/linuxolator/src/sys/cam/cam_ccb.h#4 (text+ko) ====
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.34 2006/12/03 07:19:28 mjacob Exp $
+ * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.35 2007/04/15 08:49:09 scottl Exp $
*/
#ifndef _CAM_CAM_CCB_H
@@ -242,8 +242,7 @@
typedef union {
void *ptr;
u_long field;
- u_int8_t bytes[sizeof(void *) > sizeof(u_long)
- ? sizeof(void *) : sizeof(u_long)];
+ u_int8_t bytes[sizeof(uintptr_t)];
} ccb_priv_entry;
typedef union {
@@ -274,8 +273,12 @@
ccb_ppriv_area periph_priv;
ccb_spriv_area sim_priv;
u_int32_t timeout; /* Timeout value */
+
+ /*
+ * Deprecated, only for use by non-MPSAFE SIMs. All others must
+ * allocate and initialize their own callout storage.
+ */
struct callout_handle timeout_ch;
- /* Callout handle used for timeouts */
};
/* Get Device Information CCB */
==== //depot/projects/linuxolator/src/sys/cam/cam_periph.c#4 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.64 2006/12/05 07:45:27 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.66 2007/04/16 19:42:23 scottl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -51,6 +51,7 @@
#include <cam/cam_xpt_periph.h>
#include <cam/cam_periph.h>
#include <cam/cam_debug.h>
+#include <cam/cam_sim.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_message.h>
@@ -122,6 +123,7 @@
ac_callback_t *ac_callback, ac_code code, void *arg)
{
struct periph_driver **p_drv;
+ struct cam_sim *sim;
struct cam_periph *periph;
struct cam_periph *cur_periph;
path_id_t path_id;
@@ -163,11 +165,14 @@
init_level++;
+ xpt_lock_buses();
for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) {
if (strcmp((*p_drv)->driver_name, name) == 0)
break;
}
-
+ xpt_unlock_buses();
+
+ sim = xpt_path_sim(path);
path_id = xpt_path_path_id(path);
target_id = xpt_path_target_id(path);
lun_id = xpt_path_lun_id(path);
@@ -181,6 +186,7 @@
periph->unit_number = camperiphunit(*p_drv, path_id, target_id, lun_id);
periph->immediate_priority = CAM_PRIORITY_NONE;
periph->refcount = 0;
+ periph->sim = sim;
SLIST_INIT(&periph->ccb_list);
status = xpt_create_path(&path, periph, path_id, target_id, lun_id);
if (status != CAM_REQ_CMP)
@@ -276,14 +282,13 @@
cam_status
cam_periph_acquire(struct cam_periph *periph)
{
- int s;
if (periph == NULL)
return(CAM_REQ_CMP_ERR);
- s = splsoftcam();
+ xpt_lock_buses();
periph->refcount++;
- splx(s);
+ xpt_unlock_buses();
return(CAM_REQ_CMP);
}
@@ -291,18 +296,66 @@
void
cam_periph_release(struct cam_periph *periph)
{
- int s;
if (periph == NULL)
return;
- s = splsoftcam();
+ xpt_lock_buses();
if ((--periph->refcount == 0)
&& (periph->flags & CAM_PERIPH_INVALID)) {
camperiphfree(periph);
}
- splx(s);
+ xpt_unlock_buses();
+
+}
+
+int
+cam_periph_hold(struct cam_periph *periph, int priority)
+{
+ struct mtx *mtx;
+ int error;
+
+ mtx_assert(periph->sim->mtx, MA_OWNED);
+
+ /*
+ * Increment the reference count on the peripheral
+ * while we wait for our lock attempt to succeed
+ * to ensure the peripheral doesn't disappear out
+ * from user us while we sleep.
+ */
+
+ if (cam_periph_acquire(periph) != CAM_REQ_CMP)
+ return (ENXIO);
+
+ mtx = periph->sim->mtx;
+ if (mtx == &Giant)
+ mtx = NULL;
+
+ while ((periph->flags & CAM_PERIPH_LOCKED) != 0) {
+ periph->flags |= CAM_PERIPH_LOCK_WANTED;
+ if ((error = msleep(periph, mtx, priority, "caplck", 0)) != 0) {
+ cam_periph_release(periph);
+ return (error);
+ }
+ }
+
+ periph->flags |= CAM_PERIPH_LOCKED;
+ return (0);
+}
+
+void
+cam_periph_unhold(struct cam_periph *periph)
+{
+
+ mtx_assert(periph->sim->mtx, MA_OWNED);
+
+ periph->flags &= ~CAM_PERIPH_LOCKED;
+ if ((periph->flags & CAM_PERIPH_LOCK_WANTED) != 0) {
+ periph->flags &= ~CAM_PERIPH_LOCK_WANTED;
+ wakeup(periph);
+ }
+ cam_periph_release(periph);
}
/*
@@ -424,9 +477,7 @@
void
cam_periph_invalidate(struct cam_periph *periph)
{
- int s;
- s = splsoftcam();
/*
* We only call this routine the first time a peripheral is
* invalidated. The oninvalidate() routine is always called at
@@ -439,17 +490,17 @@
periph->flags |= CAM_PERIPH_INVALID;
periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND;
+ xpt_lock_buses();
if (periph->refcount == 0)
camperiphfree(periph);
else if (periph->refcount < 0)
printf("cam_invalidate_periph: refcount < 0!!\n");
- splx(s);
+ xpt_unlock_buses();
}
static void
camperiphfree(struct cam_periph *periph)
{
- int s;
struct periph_driver **p_drv;
for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) {
@@ -460,15 +511,13 @@
printf("camperiphfree: attempt to free non-existant periph\n");
return;
}
-
- if (periph->periph_dtor != NULL)
- periph->periph_dtor(periph);
-
- s = splsoftcam();
+
TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links);
(*p_drv)->generation++;
- splx(s);
+ xpt_unlock_buses();
+ if (periph->periph_dtor != NULL)
+ periph->periph_dtor(periph);
xpt_remove_periph(periph);
if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) {
@@ -497,35 +546,17 @@
}
xpt_free_path(periph->path);
free(periph, M_CAMPERIPH);
+ xpt_lock_buses();
}
/*
* Wait interruptibly for an exclusive lock.
*/
-int
-cam_periph_lock(struct cam_periph *periph, int priority)
+void
+cam_periph_lock(struct cam_periph *periph)
{
- int error;
- /*
- * Increment the reference count on the peripheral
- * while we wait for our lock attempt to succeed
- * to ensure the peripheral doesn't disappear out
- * from under us while we sleep.
- */
- if (cam_periph_acquire(periph) != CAM_REQ_CMP)
- return(ENXIO);
-
- while ((periph->flags & CAM_PERIPH_LOCKED) != 0) {
- periph->flags |= CAM_PERIPH_LOCK_WANTED;
- if ((error = tsleep(periph, priority, "caplck", 0)) != 0) {
- cam_periph_release(periph);
- return error;
- }
- }
-
- periph->flags |= CAM_PERIPH_LOCKED;
- return 0;
+ mtx_lock(periph->sim->mtx);
}
/*
@@ -534,13 +565,8 @@
void
cam_periph_unlock(struct cam_periph *periph)
{
- periph->flags &= ~CAM_PERIPH_LOCKED;
- if ((periph->flags & CAM_PERIPH_LOCK_WANTED) != 0) {
- periph->flags &= ~CAM_PERIPH_LOCK_WANTED;
- wakeup(periph);
- }
- cam_periph_release(periph);
+ mtx_unlock(periph->sim->mtx);
}
/*
@@ -752,12 +778,11 @@
cam_periph_getccb(struct cam_periph *periph, u_int32_t priority)
{
struct ccb_hdr *ccb_h;
- int s;
+ struct mtx *mtx;
+ mtx_assert(periph->sim->mtx, MA_OWNED);
CAM_DEBUG(periph->path, CAM_DEBUG_TRACE, ("entering cdgetccb\n"));
- s = splsoftcam();
-
while (SLIST_FIRST(&periph->ccb_list) == NULL) {
if (periph->immediate_priority > priority)
periph->immediate_priority = priority;
@@ -765,24 +790,35 @@
if ((SLIST_FIRST(&periph->ccb_list) != NULL)
&& (SLIST_FIRST(&periph->ccb_list)->pinfo.priority == priority))
break;
- tsleep(&periph->ccb_list, PRIBIO, "cgticb", 0);
+ mtx_assert(periph->sim->mtx, MA_OWNED);
+ if (periph->sim->mtx == &Giant)
+ mtx = NULL;
+ else
+ mtx = periph->sim->mtx;
+ msleep(&periph->ccb_list, mtx, PRIBIO, "cgticb", 0);
}
ccb_h = SLIST_FIRST(&periph->ccb_list);
SLIST_REMOVE_HEAD(&periph->ccb_list, periph_links.sle);
- splx(s);
return ((union ccb *)ccb_h);
}
void
cam_periph_ccbwait(union ccb *ccb)
{
+ struct mtx *mtx;
+ struct cam_sim *sim;
int s;
s = splsoftcam();
+ sim = xpt_path_sim(ccb->ccb_h.path);
+ if (sim->mtx == &Giant)
+ mtx = NULL;
+ else
+ mtx = sim->mtx;
if ((ccb->ccb_h.pinfo.index != CAM_UNQUEUED_INDEX)
|| ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG))
- tsleep(&ccb->ccb_h.cbfcnp, PRIBIO, "cbwait", 0);
+ msleep(&ccb->ccb_h.cbfcnp, mtx, PRIBIO, "cbwait", 0);
splx(s);
}
@@ -857,10 +893,13 @@
cam_flags camflags, u_int32_t sense_flags,
struct devstat *ds)
{
+ struct cam_sim *sim;
int error;
error = 0;
-
+ sim = xpt_path_sim(ccb->ccb_h.path);
+ mtx_assert(sim->mtx, MA_OWNED);
+
/*
* If the user has supplied a stats structure, and if we understand
* this particular type of ccb, record the transaction start.
==== //depot/projects/linuxolator/src/sys/cam/cam_periph.h#2 (text+ko) ====
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/cam/cam_periph.h,v 1.16 2005/01/05 22:34:34 imp Exp $
+ * $FreeBSD: src/sys/cam/cam_periph.h,v 1.17 2007/04/15 08:49:09 scottl Exp $
*/
#ifndef _CAM_CAM_PERIPH_H
@@ -104,6 +104,7 @@
char *periph_name;
struct cam_path *path; /* Compiled path to device */
void *softc;
+ struct cam_sim *sim;
u_int32_t unit_number;
cam_periph_type type;
u_int32_t flags;
@@ -113,6 +114,7 @@
#define CAM_PERIPH_INVALID 0x08
#define CAM_PERIPH_NEW_DEV_FOUND 0x10
#define CAM_PERIPH_RECOVERY_INPROG 0x20
+#define CAM_PERIPH_POLLED 0x40
u_int32_t immediate_priority;
u_int32_t refcount;
SLIST_HEAD(, ccb_hdr) ccb_list; /* For "immediate" requests */
@@ -136,10 +138,12 @@
char *name, cam_periph_type type, struct cam_path *,
ac_callback_t *, ac_code, void *arg);
struct cam_periph *cam_periph_find(struct cam_path *path, char *name);
-int cam_periph_lock(struct cam_periph *periph, int priority);
+void cam_periph_lock(struct cam_periph *periph);
void cam_periph_unlock(struct cam_periph *periph);
cam_status cam_periph_acquire(struct cam_periph *periph);
void cam_periph_release(struct cam_periph *periph);
+int cam_periph_hold(struct cam_periph *periph, int priority);
+void cam_periph_unhold(struct cam_periph *periph);
void cam_periph_invalidate(struct cam_periph *periph);
int cam_periph_mapmem(union ccb *ccb,
struct cam_periph_map_info *mapinfo);
==== //depot/projects/linuxolator/src/sys/cam/cam_sim.c#2 (text+ko) ====
@@ -27,12 +27,14 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_sim.c,v 1.9 2005/07/01 15:21:29 avatar Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_sim.c,v 1.10 2007/04/15 08:49:09 scottl Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
@@ -58,39 +60,42 @@
struct cam_sim *
cam_sim_alloc(sim_action_func sim_action, sim_poll_func sim_poll,
const char *sim_name, void *softc, u_int32_t unit,
- int max_dev_transactions,
+ struct mtx *mtx, int max_dev_transactions,
int max_tagged_dev_transactions, struct cam_devq *queue)
{
struct cam_sim *sim;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list