Date: Tue, 17 Jan 2006 17:16:29 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 89851 for review Message-ID: <200601171716.k0HHGTvq025998@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=89851 Change 89851 by jhb@jhb_slimer on 2006/01/17 17:16:05 IFC @89850. Affected files ... .. //depot/projects/smpng/sys/Makefile#9 integrate .. //depot/projects/smpng/sys/alpha/conf/GENERIC#54 integrate .. //depot/projects/smpng/sys/alpha/include/_types.h#7 integrate .. //depot/projects/smpng/sys/alpha/include/param.h#16 integrate .. //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#21 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#41 integrate .. //depot/projects/smpng/sys/amd64/include/_types.h#7 integrate .. //depot/projects/smpng/sys/amd64/include/param.h#17 integrate .. //depot/projects/smpng/sys/arm/include/_types.h#7 integrate .. //depot/projects/smpng/sys/arm/include/param.h#9 integrate .. //depot/projects/smpng/sys/boot/common/module.c#7 integrate .. //depot/projects/smpng/sys/cam/cam_periph.c#20 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#33 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#62 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#25 integrate .. //depot/projects/smpng/sys/coda/coda_vfsops.c#25 integrate .. //depot/projects/smpng/sys/conf/NOTES#112 integrate .. //depot/projects/smpng/sys/conf/files#163 integrate .. //depot/projects/smpng/sys/conf/kern.post.mk#51 integrate .. //depot/projects/smpng/sys/conf/options#112 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_norm.c#12 integrate .. //depot/projects/smpng/sys/dev/acpi_support/acpi_ibm.c#7 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdSchedule.c#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_smbat.c#3 integrate .. //depot/projects/smpng/sys/dev/amr/amr.c#37 integrate .. //depot/projects/smpng/sys/dev/amr/amrreg.h#8 integrate .. //depot/projects/smpng/sys/dev/an/if_an.c#49 integrate .. //depot/projects/smpng/sys/dev/asr/asr.c#30 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#33 integrate .. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#11 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#21 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#68 integrate .. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#37 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_isa.c#15 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#62 integrate .. //depot/projects/smpng/sys/dev/em/if_em.h#30 integrate .. //depot/projects/smpng/sys/dev/hme/if_hme.c#29 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#12 integrate .. //depot/projects/smpng/sys/dev/ieee488/pcii.c#4 integrate .. //depot/projects/smpng/sys/dev/sn/if_sn.c#26 integrate .. //depot/projects/smpng/sys/dev/sound/isa/ess.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ds1.c#19 integrate .. //depot/projects/smpng/sys/dev/sound/pci/es137x.c#20 integrate .. //depot/projects/smpng/sys/dev/sound/pci/fm801.c#18 integrate .. //depot/projects/smpng/sys/dev/sound/pci/ich.c#38 integrate .. //depot/projects/smpng/sys/dev/sound/pci/maestro.c#17 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#32 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#33 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#13 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.c#53 integrate .. //depot/projects/smpng/sys/dev/usb/ehci.c#22 integrate .. //depot/projects/smpng/sys/dev/usb/ehci_pci.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/ehcivar.h#10 integrate .. //depot/projects/smpng/sys/dev/usb/ohci.c#39 integrate .. //depot/projects/smpng/sys/dev/usb/ohci_pci.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/ufoma.c#1 branch .. //depot/projects/smpng/sys/dev/usb/uhci.c#39 integrate .. //depot/projects/smpng/sys/dev/usb/umass.c#51 integrate .. //depot/projects/smpng/sys/dev/usb/usb_mem.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/usb_quirks.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/usb_quirks.h#6 integrate .. //depot/projects/smpng/sys/dev/usb/usb_subr.c#33 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#83 integrate .. //depot/projects/smpng/sys/dev/usb/uscanner.c#31 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#6 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_ctl.c#3 integrate .. //depot/projects/smpng/sys/geom/nop/g_nop.c#8 integrate .. //depot/projects/smpng/sys/geom/zero/g_zero.c#3 integrate .. //depot/projects/smpng/sys/gnu/fs/ext2fs/ext2_vfsops.c#5 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#70 integrate .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#38 integrate .. //depot/projects/smpng/sys/i386/include/_types.h#11 integrate .. //depot/projects/smpng/sys/i386/include/param.h#17 integrate .. //depot/projects/smpng/sys/ia64/conf/GENERIC#48 integrate .. //depot/projects/smpng/sys/ia64/include/_types.h#9 integrate .. //depot/projects/smpng/sys/ia64/include/param.h#19 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vnops.c#24 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#47 integrate .. //depot/projects/smpng/sys/kern/kern_mutex.c#116 integrate .. //depot/projects/smpng/sys/kern/kern_sx.c#33 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#30 integrate .. //depot/projects/smpng/sys/kern/md5c.c#8 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#57 integrate .. //depot/projects/smpng/sys/kern/subr_disk.c#27 integrate .. //depot/projects/smpng/sys/kern/subr_lock.c#1 branch .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#28 integrate .. //depot/projects/smpng/sys/kern/subr_turnstile.c#21 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#148 integrate .. //depot/projects/smpng/sys/kern/tty.c#64 integrate .. //depot/projects/smpng/sys/kern/tty_compat.c#9 integrate .. //depot/projects/smpng/sys/kern/tty_pty.c#43 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#79 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#53 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#67 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#88 integrate .. //depot/projects/smpng/sys/kern/vfs_default.c#44 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#56 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#117 integrate .. //depot/projects/smpng/sys/libkern/gets.c#2 integrate .. //depot/projects/smpng/sys/modules/Makefile#114 integrate .. //depot/projects/smpng/sys/modules/ufoma/Makefile#1 branch .. //depot/projects/smpng/sys/modules/xfs/Makefile#2 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#21 integrate .. //depot/projects/smpng/sys/net/if_bridgevar.h#8 integrate .. //depot/projects/smpng/sys/net/if_ef.c#22 integrate .. //depot/projects/smpng/sys/net/if_fwsubr.c#11 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.h#6 integrate .. //depot/projects/smpng/sys/netgraph/netflow/netflow.c#11 integrate .. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.c#8 integrate .. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.h#5 integrate .. //depot/projects/smpng/sys/netgraph/netgraph.h#25 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#43 integrate .. //depot/projects/smpng/sys/netgraph/ng_ether.c#30 integrate .. //depot/projects/smpng/sys/netgraph/ng_frame_relay.c#7 integrate .. //depot/projects/smpng/sys/netgraph/ng_lmi.c#10 integrate .. //depot/projects/smpng/sys/netgraph/ng_message.h#13 integrate .. //depot/projects/smpng/sys/netgraph/ng_parse.c#17 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#45 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#66 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#73 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#78 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#44 integrate .. //depot/projects/smpng/sys/netinet/udp_usrreq.c#63 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#24 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#44 integrate .. //depot/projects/smpng/sys/netinet6/ipcomp_input.c#7 integrate .. //depot/projects/smpng/sys/netipx/ipx_input.c#16 integrate .. //depot/projects/smpng/sys/netipx/spx_usrreq.c#24 integrate .. //depot/projects/smpng/sys/netncp/ncp_conn.c#13 integrate .. //depot/projects/smpng/sys/netsmb/smb_subr.c#16 integrate .. //depot/projects/smpng/sys/nfs4client/nfs4_vfsops.c#14 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_lock.c#32 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vfsops.c#52 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#60 integrate .. //depot/projects/smpng/sys/pc98/include/_types.h#3 integrate .. //depot/projects/smpng/sys/pc98/include/param.h#3 integrate .. //depot/projects/smpng/sys/pccard/cardinfo.h#8 integrate .. //depot/projects/smpng/sys/pccard/driver.h#2 delete .. //depot/projects/smpng/sys/pccard/i82365.h#12 delete .. //depot/projects/smpng/sys/pccard/meciareg.h#2 delete .. //depot/projects/smpng/sys/pccard/pccard_nbk.h#4 delete .. //depot/projects/smpng/sys/pccard/pcic_pci.h#13 delete .. //depot/projects/smpng/sys/pccard/pcicvar.h#11 delete .. //depot/projects/smpng/sys/pccard/slot.h#10 delete .. //depot/projects/smpng/sys/pci/agp.c#25 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#54 integrate .. //depot/projects/smpng/sys/pci/if_skreg.h#14 integrate .. //depot/projects/smpng/sys/powerpc/conf/GENERIC#32 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/machdep.c#67 integrate .. //depot/projects/smpng/sys/security/mac_bsdextended/mac_bsdextended.c#17 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#63 integrate .. //depot/projects/smpng/sys/sparc64/include/in_cksum.h#3 integrate .. //depot/projects/smpng/sys/sparc64/include/trap.h#10 integrate .. //depot/projects/smpng/sys/sparc64/include/utrap.h#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/exception.S#15 integrate .. //depot/projects/smpng/sys/sys/ioctl.h#7 integrate .. //depot/projects/smpng/sys/sys/ioctl_compat.h#5 integrate .. //depot/projects/smpng/sys/sys/lock.h#36 integrate .. //depot/projects/smpng/sys/sys/md5.h#6 integrate .. //depot/projects/smpng/sys/sys/mount.h#48 integrate .. //depot/projects/smpng/sys/sys/mutex.h#61 integrate .. //depot/projects/smpng/sys/sys/param.h#95 integrate .. //depot/projects/smpng/sys/sys/proc.h#158 integrate .. //depot/projects/smpng/sys/sys/select.h#9 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#48 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#11 integrate .. //depot/projects/smpng/sys/sys/tree.h#6 integrate .. //depot/projects/smpng/sys/sys/ttychars.h#4 integrate .. //depot/projects/smpng/sys/sys/ttydev.h#4 integrate .. //depot/projects/smpng/sys/sys/turnstile.h#7 integrate .. //depot/projects/smpng/sys/sys/vnode.h#69 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#54 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#51 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#80 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_quota.c#30 integrate .. //depot/user/jhb/acpipci/Makefile#8 integrate .. //depot/user/jhb/acpipci/alpha/conf/GENERIC#27 integrate .. //depot/user/jhb/acpipci/alpha/include/_types.h#8 integrate .. //depot/user/jhb/acpipci/alpha/include/param.h#13 integrate .. //depot/user/jhb/acpipci/amd64/amd64/busdma_machdep.c#19 integrate .. //depot/user/jhb/acpipci/amd64/conf/GENERIC#37 integrate .. //depot/user/jhb/acpipci/amd64/include/_types.h#6 integrate .. //depot/user/jhb/acpipci/amd64/include/param.h#16 integrate .. //depot/user/jhb/acpipci/arm/include/_types.h#8 integrate .. //depot/user/jhb/acpipci/arm/include/param.h#8 integrate .. //depot/user/jhb/acpipci/boot/common/module.c#4 integrate .. //depot/user/jhb/acpipci/cam/cam_periph.c#18 integrate .. //depot/user/jhb/acpipci/cam/cam_xpt.c#25 integrate .. //depot/user/jhb/acpipci/cam/scsi/scsi_da.c#30 integrate .. //depot/user/jhb/acpipci/cam/scsi/scsi_sa.c#19 integrate .. //depot/user/jhb/acpipci/coda/coda_vfsops.c#18 integrate .. //depot/user/jhb/acpipci/conf/NOTES#75 integrate .. //depot/user/jhb/acpipci/conf/files#98 integrate .. //depot/user/jhb/acpipci/conf/kern.post.mk#38 integrate .. //depot/user/jhb/acpipci/conf/options#65 integrate .. //depot/user/jhb/acpipci/contrib/pf/net/pf_norm.c#11 integrate .. //depot/user/jhb/acpipci/dev/acpi_support/acpi_ibm.c#6 integrate .. //depot/user/jhb/acpipci/dev/acpica/Osd/OsdSchedule.c#11 integrate .. //depot/user/jhb/acpipci/dev/acpica/acpi_smbat.c#4 integrate .. //depot/user/jhb/acpipci/dev/amr/amr.c#27 integrate .. //depot/user/jhb/acpipci/dev/amr/amrreg.h#5 integrate .. //depot/user/jhb/acpipci/dev/an/if_an.c#26 integrate .. //depot/user/jhb/acpipci/dev/asr/asr.c#21 integrate .. //depot/user/jhb/acpipci/dev/ath/if_ath.c#36 integrate .. //depot/user/jhb/acpipci/dev/ath/if_athioctl.h#10 integrate .. //depot/user/jhb/acpipci/dev/ath/if_athvar.h#21 integrate .. //depot/user/jhb/acpipci/dev/bge/if_bge.c#48 integrate .. //depot/user/jhb/acpipci/dev/bge/if_bgereg.h#29 integrate .. //depot/user/jhb/acpipci/dev/ed/if_ed_isa.c#13 integrate .. //depot/user/jhb/acpipci/dev/em/if_em.c#52 integrate .. //depot/user/jhb/acpipci/dev/em/if_em.h#23 integrate .. //depot/user/jhb/acpipci/dev/hme/if_hme.c#38 integrate .. //depot/user/jhb/acpipci/dev/hwpmc/hwpmc_mod.c#10 integrate .. //depot/user/jhb/acpipci/dev/ieee488/pcii.c#3 integrate .. //depot/user/jhb/acpipci/dev/si/si2_z280.c#6 integrate .. //depot/user/jhb/acpipci/dev/sn/if_sn.c#25 integrate .. //depot/user/jhb/acpipci/dev/sound/isa/ess.c#13 integrate .. //depot/user/jhb/acpipci/dev/sound/pci/ds1.c#14 integrate .. //depot/user/jhb/acpipci/dev/sound/pci/es137x.c#15 integrate .. //depot/user/jhb/acpipci/dev/sound/pci/fm801.c#15 integrate .. //depot/user/jhb/acpipci/dev/sound/pci/ich.c#21 integrate .. //depot/user/jhb/acpipci/dev/sound/pci/maestro.c#12 integrate .. //depot/user/jhb/acpipci/dev/sound/pcm/ac97.c#21 integrate .. //depot/user/jhb/acpipci/dev/sound/pcm/dsp.c#26 integrate .. //depot/user/jhb/acpipci/dev/sound/pcm/vchan.c#11 integrate .. //depot/user/jhb/acpipci/dev/syscons/syscons.c#30 integrate .. //depot/user/jhb/acpipci/dev/usb/ehci.c#16 integrate .. //depot/user/jhb/acpipci/dev/usb/ehci_pci.c#17 integrate .. //depot/user/jhb/acpipci/dev/usb/ehcivar.h#10 integrate .. //depot/user/jhb/acpipci/dev/usb/ohci.c#23 integrate .. //depot/user/jhb/acpipci/dev/usb/ohci_pci.c#14 integrate .. //depot/user/jhb/acpipci/dev/usb/ufoma.c#1 branch .. //depot/user/jhb/acpipci/dev/usb/uhci.c#21 integrate .. //depot/user/jhb/acpipci/dev/usb/umass.c#33 integrate .. //depot/user/jhb/acpipci/dev/usb/usb_mem.c#6 integrate .. //depot/user/jhb/acpipci/dev/usb/usb_quirks.c#15 integrate .. //depot/user/jhb/acpipci/dev/usb/usb_quirks.h#6 integrate .. //depot/user/jhb/acpipci/dev/usb/usb_subr.c#21 integrate .. //depot/user/jhb/acpipci/dev/usb/usbdevs#52 integrate .. //depot/user/jhb/acpipci/dev/usb/uscanner.c#23 integrate .. //depot/user/jhb/acpipci/geom/eli/g_eli.c#7 integrate .. //depot/user/jhb/acpipci/geom/eli/g_eli_ctl.c#3 integrate .. //depot/user/jhb/acpipci/geom/nop/g_nop.c#8 integrate .. //depot/user/jhb/acpipci/geom/zero/g_zero.c#3 integrate .. //depot/user/jhb/acpipci/gnu/fs/ext2fs/ext2_vfsops.c#4 integrate .. //depot/user/jhb/acpipci/i386/conf/GENERIC#44 integrate .. //depot/user/jhb/acpipci/i386/i386/busdma_machdep.c#25 integrate .. //depot/user/jhb/acpipci/i386/include/_types.h#11 integrate .. //depot/user/jhb/acpipci/i386/include/param.h#12 integrate .. //depot/user/jhb/acpipci/ia64/conf/GENERIC#23 integrate .. //depot/user/jhb/acpipci/ia64/include/_types.h#10 integrate .. //depot/user/jhb/acpipci/ia64/include/param.h#14 integrate .. //depot/user/jhb/acpipci/isofs/cd9660/cd9660_vnops.c#21 integrate .. //depot/user/jhb/acpipci/kern/kern_conf.c#34 integrate .. //depot/user/jhb/acpipci/kern/kern_mutex.c#31 integrate .. //depot/user/jhb/acpipci/kern/kern_sx.c#11 integrate .. //depot/user/jhb/acpipci/kern/kern_thr.c#22 integrate .. //depot/user/jhb/acpipci/kern/md5c.c#7 integrate .. //depot/user/jhb/acpipci/kern/subr_bus.c#46 integrate .. //depot/user/jhb/acpipci/kern/subr_disk.c#16 integrate .. //depot/user/jhb/acpipci/kern/subr_lock.c#1 branch .. //depot/user/jhb/acpipci/kern/subr_taskqueue.c#16 integrate .. //depot/user/jhb/acpipci/kern/subr_turnstile.c#15 integrate .. //depot/user/jhb/acpipci/kern/subr_witness.c#50 integrate .. //depot/user/jhb/acpipci/kern/tty.c#34 integrate .. //depot/user/jhb/acpipci/kern/tty_compat.c#8 integrate .. //depot/user/jhb/acpipci/kern/tty_pty.c#30 integrate .. //depot/user/jhb/acpipci/kern/uipc_socket.c#51 integrate .. //depot/user/jhb/acpipci/kern/uipc_usrreq.c#31 integrate .. //depot/user/jhb/acpipci/kern/vfs_aio.c#32 integrate .. //depot/user/jhb/acpipci/kern/vfs_bio.c#51 integrate .. //depot/user/jhb/acpipci/kern/vfs_default.c#32 integrate .. //depot/user/jhb/acpipci/kern/vfs_mount.c#43 integrate .. //depot/user/jhb/acpipci/kern/vfs_subr.c#68 integrate .. //depot/user/jhb/acpipci/libkern/gets.c#2 integrate .. //depot/user/jhb/acpipci/modules/Makefile#72 integrate .. //depot/user/jhb/acpipci/modules/ufoma/Makefile#1 branch .. //depot/user/jhb/acpipci/modules/xfs/Makefile#2 integrate .. //depot/user/jhb/acpipci/net/if_bridge.c#24 integrate .. //depot/user/jhb/acpipci/net/if_bridgevar.h#8 integrate .. //depot/user/jhb/acpipci/net/if_ef.c#17 integrate .. //depot/user/jhb/acpipci/net/if_fwsubr.c#14 integrate .. //depot/user/jhb/acpipci/net80211/ieee80211_radiotap.h#6 integrate .. //depot/user/jhb/acpipci/netgraph/netflow/netflow.c#11 integrate .. //depot/user/jhb/acpipci/netgraph/netflow/ng_netflow.c#8 integrate .. //depot/user/jhb/acpipci/netgraph/netflow/ng_netflow.h#5 integrate .. //depot/user/jhb/acpipci/netgraph/netgraph.h#24 integrate .. //depot/user/jhb/acpipci/netgraph/ng_base.c#32 integrate .. //depot/user/jhb/acpipci/netgraph/ng_ether.c#24 integrate .. //depot/user/jhb/acpipci/netgraph/ng_frame_relay.c#6 integrate .. //depot/user/jhb/acpipci/netgraph/ng_lmi.c#9 integrate .. //depot/user/jhb/acpipci/netgraph/ng_message.h#12 integrate .. //depot/user/jhb/acpipci/netgraph/ng_parse.c#11 integrate .. //depot/user/jhb/acpipci/netinet/if_ether.c#31 integrate .. //depot/user/jhb/acpipci/netinet/ip_fw2.c#59 integrate .. //depot/user/jhb/acpipci/netinet/ip_input.c#48 integrate .. //depot/user/jhb/acpipci/netinet/tcp_input.c#50 integrate .. //depot/user/jhb/acpipci/netinet/tcp_syncache.c#32 integrate .. //depot/user/jhb/acpipci/netinet/udp_usrreq.c#36 integrate .. //depot/user/jhb/acpipci/netinet6/ip6_mroute.c#18 integrate .. //depot/user/jhb/acpipci/netinet6/ip6_output.c#31 integrate .. //depot/user/jhb/acpipci/netinet6/ipcomp_input.c#4 integrate .. //depot/user/jhb/acpipci/netipx/ipx_input.c#12 integrate .. //depot/user/jhb/acpipci/netipx/spx_usrreq.c#19 integrate .. //depot/user/jhb/acpipci/netncp/ncp_conn.c#9 integrate .. //depot/user/jhb/acpipci/netsmb/smb_subr.c#10 integrate .. //depot/user/jhb/acpipci/nfs4client/nfs4_vfsops.c#12 integrate .. //depot/user/jhb/acpipci/nfsclient/nfs_lock.c#13 integrate .. //depot/user/jhb/acpipci/nfsclient/nfs_vfsops.c#36 integrate .. //depot/user/jhb/acpipci/pc98/conf/GENERIC#35 integrate .. //depot/user/jhb/acpipci/pc98/include/_types.h#3 integrate .. //depot/user/jhb/acpipci/pc98/include/param.h#3 integrate .. //depot/user/jhb/acpipci/pccard/cardinfo.h#4 integrate .. //depot/user/jhb/acpipci/pccard/driver.h#2 delete .. //depot/user/jhb/acpipci/pccard/i82365.h#5 delete .. //depot/user/jhb/acpipci/pccard/meciareg.h#2 delete .. //depot/user/jhb/acpipci/pccard/pccard_nbk.h#3 delete .. //depot/user/jhb/acpipci/pccard/pcic_pci.h#4 delete .. //depot/user/jhb/acpipci/pccard/pcicvar.h#3 delete .. //depot/user/jhb/acpipci/pccard/slot.h#5 delete .. //depot/user/jhb/acpipci/pci/agp.c#23 integrate .. //depot/user/jhb/acpipci/pci/if_sk.c#42 integrate .. //depot/user/jhb/acpipci/pci/if_skreg.h#13 integrate .. //depot/user/jhb/acpipci/powerpc/conf/GENERIC#21 integrate .. //depot/user/jhb/acpipci/powerpc/powerpc/machdep.c#34 integrate .. //depot/user/jhb/acpipci/security/mac_bsdextended/mac_bsdextended.c#16 integrate .. //depot/user/jhb/acpipci/sparc64/conf/GENERIC#36 integrate .. //depot/user/jhb/acpipci/sparc64/include/in_cksum.h#3 integrate .. //depot/user/jhb/acpipci/sparc64/include/trap.h#4 integrate .. //depot/user/jhb/acpipci/sparc64/include/utrap.h#4 integrate .. //depot/user/jhb/acpipci/sparc64/sparc64/exception.S#12 integrate .. //depot/user/jhb/acpipci/sys/ioctl.h#6 integrate .. //depot/user/jhb/acpipci/sys/ioctl_compat.h#5 integrate .. //depot/user/jhb/acpipci/sys/lock.h#13 integrate .. //depot/user/jhb/acpipci/sys/md5.h#4 integrate .. //depot/user/jhb/acpipci/sys/mount.h#32 integrate .. //depot/user/jhb/acpipci/sys/mutex.h#20 integrate .. //depot/user/jhb/acpipci/sys/param.h#54 integrate .. //depot/user/jhb/acpipci/sys/proc.h#80 integrate .. //depot/user/jhb/acpipci/sys/select.h#7 integrate .. //depot/user/jhb/acpipci/sys/socketvar.h#29 integrate .. //depot/user/jhb/acpipci/sys/taskqueue.h#10 integrate .. //depot/user/jhb/acpipci/sys/tree.h#6 integrate .. //depot/user/jhb/acpipci/sys/ttychars.h#4 integrate .. //depot/user/jhb/acpipci/sys/ttydev.h#4 integrate .. //depot/user/jhb/acpipci/sys/turnstile.h#7 integrate .. //depot/user/jhb/acpipci/sys/vnode.h#43 integrate .. //depot/user/jhb/acpipci/ufs/ffs/ffs_snapshot.c#35 integrate .. //depot/user/jhb/acpipci/ufs/ffs/ffs_softdep.c#30 integrate .. //depot/user/jhb/acpipci/ufs/ffs/ffs_vfsops.c#45 integrate .. //depot/user/jhb/acpipci/ufs/ufs/ufs_quota.c#16 integrate Differences ... ==== //depot/projects/smpng/sys/Makefile#9 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.33 2005/03/08 00:09:41 grog Exp $ +# $FreeBSD: src/sys/Makefile,v 1.34 2006/01/10 20:58:27 rees Exp $ # The boot loader .if !defined(NO_BOOT) @@ -11,7 +11,8 @@ CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs gnu i4b isa \ isofs kern libkern modules net netatalk netatm netgraph \ netinet netinet6 netipx netkey netnatm netncp netsmb nfs \ - pccard pci posix4 sys ufs vm ${ARCHDIR} + nfsclient nfs4client rpc pccard pci posix4 sys ufs vm \ + ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/smpng/sys/alpha/conf/GENERIC#54 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.191 2005/11/27 23:16:58 ru Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.192 2006/01/10 09:19:07 phk Exp $ cpu EV4 cpu EV5 @@ -61,6 +61,7 @@ options PSEUDOFS # Pseudo-filesystem framework options GEOM_GPT # GUID Partition Tables. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] +options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI ==== //depot/projects/smpng/sys/alpha/include/_types.h#7 (text+ko) ==== @@ -33,7 +33,7 @@ * * From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 * From: @(#)types.h 8.3 (Berkeley) 1/5/94 - * $FreeBSD: src/sys/alpha/include/_types.h,v 1.7 2006/01/01 20:59:27 imp Exp $ + * $FreeBSD: src/sys/alpha/include/_types.h,v 1.8 2006/01/09 06:05:55 imp Exp $ */ #ifndef _MACHINE__TYPES_H_ @@ -43,8 +43,6 @@ #error this file needs sys/cdefs.h as a prerequisite #endif -#define __PCI_REROUTE_INTERRUPT - /* * Basic types upon which most other types are built. */ ==== //depot/projects/smpng/sys/alpha/include/param.h#16 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/param.h,v 1.40 2005/12/06 13:27:20 ru Exp $ */ +/* $FreeBSD: src/sys/alpha/include/param.h,v 1.41 2006/01/09 06:05:55 imp Exp $ */ /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ /*- @@ -66,6 +66,8 @@ #ifndef _NO_NAMESPACE_POLLUTION +#define __PCI_REROUTE_INTERRUPT + #ifndef _MACHINE_PARAM_H_ #define _MACHINE_PARAM_H_ ==== //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#21 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.72 2005/12/16 05:57:18 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.73 2006/01/14 17:22:46 scottl Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -285,8 +285,10 @@ /* Must bounce */ - if ((error = alloc_bounce_zone(newtag)) != 0) + if ((error = alloc_bounce_zone(newtag)) != 0) { + free(newtag, M_DEVBUF); return (error); + } bz = newtag->bounce_zone; if (ptoa(bz->total_bpages) < maxsize) { ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#41 (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.447 2005/11/27 23:16:58 ru Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.449 2006/01/12 01:20:59 obrien Exp $ cpu HAMMER ident GENERIC @@ -46,10 +46,10 @@ options PSEUDOFS # Pseudo-filesystem framework options GEOM_GPT # GUID Partition Tables. options COMPAT_43 # Needed by COMPAT_LINUX32 +options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!] options COMPAT_IA32 # Compatible with i386 binaries options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 -options COMPAT_LINUX32 # Compatible with i386 linux binaries options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory @@ -77,6 +77,7 @@ options SMP # Symmetric MultiProcessor Kernel # Linux 32-bit ABI support +options COMPAT_LINUX32 # Compatible with i386 linux binaries options LINPROCFS # Cannot be a module yet. # Bus support. ==== //depot/projects/smpng/sys/amd64/include/_types.h#7 (text+ko) ==== @@ -33,7 +33,7 @@ * * From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 * From: @(#)types.h 8.3 (Berkeley) 1/5/94 - * $FreeBSD: src/sys/amd64/include/_types.h,v 1.10 2006/01/01 20:59:27 imp Exp $ + * $FreeBSD: src/sys/amd64/include/_types.h,v 1.11 2006/01/09 06:05:56 imp Exp $ */ #ifndef _MACHINE__TYPES_H_ @@ -44,8 +44,6 @@ #endif #define __NO_STRICT_ALIGNMENT -#define __HAVE_ACPI -#define __PCI_REROUTE_INTERRUPT /* * Basic types upon which most other types are built. ==== //depot/projects/smpng/sys/amd64/include/param.h#17 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/amd64/include/param.h,v 1.19 2005/12/06 13:27:20 ru Exp $ + * $FreeBSD: src/sys/amd64/include/param.h,v 1.20 2006/01/09 06:05:56 imp Exp $ */ /* @@ -66,6 +66,9 @@ #ifndef _NO_NAMESPACE_POLLUTION +#define __HAVE_ACPI +#define __PCI_REROUTE_INTERRUPT + #ifndef _MACHINE_PARAM_H_ #define _MACHINE_PARAM_H_ ==== //depot/projects/smpng/sys/arm/include/_types.h#7 (text+ko) ==== @@ -33,7 +33,7 @@ * * From: @(#)ansi.h 8.2 (Berkeley) 1/4/94 * From: @(#)types.h 8.3 (Berkeley) 1/5/94 - * $FreeBSD: src/sys/arm/include/_types.h,v 1.7 2006/01/01 20:59:27 imp Exp $ + * $FreeBSD: src/sys/arm/include/_types.h,v 1.8 2006/01/09 06:05:56 imp Exp $ */ #ifndef _MACHINE__TYPES_H_ @@ -43,8 +43,6 @@ #error this file needs sys/cdefs.h as a prerequisite #endif -#define __PCI_REROUTE_INTERRUPT - /* * Basic types upon which most other types are built. */ ==== //depot/projects/smpng/sys/arm/include/param.h#9 (text+ko) ==== @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: @(#)param.h 5.8 (Berkeley) 6/28/91 - * $FreeBSD: src/sys/arm/include/param.h,v 1.10 2005/12/06 13:27:20 ru Exp $ + * $FreeBSD: src/sys/arm/include/param.h,v 1.11 2006/01/09 06:05:56 imp Exp $ */ /* @@ -59,6 +59,8 @@ #ifndef _NO_NAMESPACE_POLLUTION +#define __PCI_REROUTE_INTERRUPT + #ifndef _MACHINE_PARAM_H_ #define _MACHINE_PARAM_H_ ==== //depot/projects/smpng/sys/boot/common/module.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/common/module.c,v 1.25 2003/08/25 23:30:41 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/module.c,v 1.26 2006/01/12 13:18:49 marius Exp $"); /* * file/module function dispatcher, support, etc. @@ -864,7 +864,8 @@ if (mdp->d_hints != NULL || (mdp->d_flags & MDIR_NOHINTS)) return; path = moduledir_fullpath(mdp, "linker.hints"); - if (stat(path, &st) != 0 || st.st_size < (sizeof(version) + sizeof(int)) || + if (stat(path, &st) != 0 || + st.st_size < (ssize_t)(sizeof(version) + sizeof(int)) || st.st_size > 100 * 1024 || (fd = open(path, O_RDONLY)) < 0) { free(path); mdp->d_flags |= MDIR_NOHINTS; ==== //depot/projects/smpng/sys/cam/cam_periph.c#20 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.60 2005/07/01 15:21:29 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.61 2006/01/08 20:04:55 iedowse Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1656,6 +1656,8 @@ case CAM_NO_HBA: case CAM_PROVIDE_FAIL: case CAM_REQ_TOO_BIG: + case CAM_LUN_INVALID: + case CAM_TID_INVALID: error = EINVAL; break; case CAM_SCSI_BUS_RESET: ==== //depot/projects/smpng/sys/cam/cam_xpt.c#33 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.156 2005/09/16 01:26:17 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.157 2006/01/11 02:06:08 iedowse Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -682,6 +682,18 @@ static struct intr_config_hook *xpt_config_hook; +static void dead_sim_action(struct cam_sim *sim, union ccb *ccb); +static void dead_sim_poll(struct cam_sim *sim); + +/* Dummy SIM that is used when the real one has gone. */ +static struct cam_sim cam_dead_sim = { + .sim_action = dead_sim_action, + .sim_poll = dead_sim_poll, + .sim_name = "dead_sim", +}; + +#define SIM_DEAD(sim) ((sim) == &cam_dead_sim) + /* Registered busses */ static TAILQ_HEAD(,cam_eb) xpt_busses; static u_int bus_generation; @@ -3055,12 +3067,22 @@ case XPT_ENG_EXEC: { struct cam_path *path; + struct cam_sim *sim; int s; int runq; path = start_ccb->ccb_h.path; s = splsoftcam(); + sim = path->bus->sim; + if (SIM_DEAD(sim)) { + /* The SIM has gone; just execute the CCB directly. */ + cam_ccbq_send_ccb(&path->device->ccbq, start_ccb); + (*(sim->sim_action))(sim, start_ccb); + splx(s); + break; + } + cam_ccbq_insert_ccb(&path->device->ccbq, start_ccb); if (path->device->qfrozen_cnt == 0) runq = xpt_schedule_dev_sendq(path->bus, path->device); @@ -3641,8 +3663,8 @@ dev->ccbq.devq_openings--; dev->ccbq.dev_openings--; - while((devq->send_openings <= 0 || dev->ccbq.dev_openings < 0) - && (--timeout > 0)) { + while(((devq != NULL && devq->send_openings <= 0) || + dev->ccbq.dev_openings < 0) && (--timeout > 0)) { DELAY(1000); (*(sim->sim_poll))(sim); camisr(&cam_bioq); @@ -3684,6 +3706,7 @@ xpt_schedule(struct cam_periph *perph, u_int32_t new_priority) { struct cam_ed *device; + union ccb *work_ccb; int s; int runq; @@ -3702,6 +3725,16 @@ new_priority); } runq = 0; + } else if (SIM_DEAD(perph->path->bus->sim)) { + /* The SIM is gone so just call periph_start directly. */ + work_ccb = xpt_get_ccb(perph->path->device); + splx(s); + if (work_ccb == NULL) + return; /* XXX */ + xpt_setup_ccb(&work_ccb->ccb_h, perph->path, new_priority); + perph->pinfo.priority = new_priority; + perph->periph_start(perph, work_ccb); + return; } else { /* New entry on the queue */ CAM_DEBUG(perph->path, CAM_DEBUG_SUBTRACE, @@ -4337,6 +4370,10 @@ } else { SLIST_INSERT_HEAD(&ccb_freeq, &free_ccb->ccb_h, xpt_links.sle); } + if (bus->sim->devq == NULL) { + splx(s); + return; + } bus->sim->devq->alloc_openings++; bus->sim->devq->alloc_active--; /* XXX Turn this into an inline function - xpt_run_device?? */ @@ -4422,6 +4459,12 @@ xpt_bus_deregister(path_id_t pathid) { struct cam_path bus_path; + struct cam_ed *device; + struct cam_ed_qinfo *qinfo; + struct cam_devq *devq; + struct cam_periph *periph; + struct cam_sim *ccbsim; + union ccb *work_ccb; cam_status status; GIANT_REQUIRED; @@ -4433,11 +4476,51 @@ xpt_async(AC_LOST_DEVICE, &bus_path, NULL); xpt_async(AC_PATH_DEREGISTERED, &bus_path, NULL); - + + /* The SIM may be gone, so use a dummy SIM for any stray operations. */ + devq = bus_path.bus->sim->devq; + bus_path.bus->sim = &cam_dead_sim; + + /* Execute any pending operations now. */ + while ((qinfo = (struct cam_ed_qinfo *)camq_remove(&devq->send_queue, + CAMQ_HEAD)) != NULL || + (qinfo = (struct cam_ed_qinfo *)camq_remove(&devq->alloc_queue, + CAMQ_HEAD)) != NULL) { + do { + device = qinfo->device; + work_ccb = cam_ccbq_peek_ccb(&device->ccbq, CAMQ_HEAD); + if (work_ccb != NULL) { + devq->active_dev = device; + cam_ccbq_remove_ccb(&device->ccbq, work_ccb); + cam_ccbq_send_ccb(&device->ccbq, work_ccb); + ccbsim = work_ccb->ccb_h.path->bus->sim; + (*(ccbsim->sim_action))(ccbsim, work_ccb); + } + + periph = (struct cam_periph *)camq_remove(&device->drvq, + CAMQ_HEAD); + if (periph != NULL) + xpt_schedule(periph, periph->pinfo.priority); + } while (work_ccb != NULL || periph != NULL); + } + + /* Make sure all completed CCBs are processed. */ + while (!TAILQ_EMPTY(&cam_bioq)) { + camisr(&cam_bioq); + + /* Repeat the async's for the benefit of any new devices. */ + xpt_async(AC_LOST_DEVICE, &bus_path, NULL); + xpt_async(AC_PATH_DEREGISTERED, &bus_path, NULL); + } + /* Release the reference count held while registered. */ xpt_release_bus(bus_path.bus); xpt_release_path(&bus_path); + /* Recheck for more completed CCBs. */ + while (!TAILQ_EMPTY(&cam_bioq)) + camisr(&cam_bioq); + return (CAM_REQ_CMP); } @@ -5021,6 +5104,9 @@ struct cam_devq *devq; cam_status status; + if (SIM_DEAD(bus->sim)) + return (NULL); + /* Make space for us in the device queue on our bus */ devq = bus->sim->devq; status = cam_devq_resize(devq, devq->alloc_queue.array_size + 1); @@ -5131,9 +5217,11 @@ TAILQ_REMOVE(&target->ed_entries, device,links); target->generation++; xpt_max_ccbs -= device->ccbq.devq_openings; - /* Release our slot in the devq */ - devq = bus->sim->devq; - cam_devq_resize(devq, devq->alloc_queue.array_size - 1); + if (!SIM_DEAD(bus->sim)) { + /* Release our slot in the devq */ + devq = bus->sim->devq; + cam_devq_resize(devq, devq->alloc_queue.array_size - 1); + } splx(s); camq_fini(&device->drvq); camq_fini(&device->ccbq.queue); @@ -7096,8 +7184,10 @@ s = splcam(); cam_ccbq_ccb_done(&dev->ccbq, (union ccb *)ccb_h); - ccb_h->path->bus->sim->devq->send_active--; - ccb_h->path->bus->sim->devq->send_openings++; + if (!SIM_DEAD(ccb_h->path->bus->sim)) { + ccb_h->path->bus->sim->devq->send_active--; + ccb_h->path->bus->sim->devq->send_openings++; + } splx(s); if (((dev->flags & CAM_DEV_REL_ON_COMPLETE) != 0 @@ -7145,3 +7235,16 @@ } splx(s); } + +static void +dead_sim_action(struct cam_sim *sim, union ccb *ccb) +{ + + ccb->ccb_h.status = CAM_DEV_NOT_THERE; + xpt_done(ccb); +} + +static void +dead_sim_poll(struct cam_sim *sim) +{ +} ==== //depot/projects/smpng/sys/cam/scsi/scsi_da.c#62 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.183 2005/12/19 03:43:48 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.184 2006/01/13 11:33:40 mnag Exp $"); #include <sys/param.h> @@ -363,6 +363,22 @@ {T_DIRECT, SIP_MEDIA_REMOVABLE, "Motorola" , "Motorola Phone", "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE }, + { + /* + * Qware BeatZkey! Pro + * PR: usb/79164 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "GENERIC", "USB DISK DEVICE", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, + { + /* + * Time DPA20B 1GB MP3 Player + * PR: usb/81846 + */ + {T_DIRECT, SIP_MEDIA_REMOVABLE, "USB2.0*", "(FS) FLASH DISK*", + "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE + }, }; static disk_strategy_t dastrategy; ==== //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#25 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.105 2005/07/01 15:21:30 avatar Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.106 2006/01/14 14:32:41 mjacob Exp $"); #include <sys/param.h> #include <sys/queue.h> @@ -44,6 +44,7 @@ #ifdef _KERNEL #include <sys/conf.h> #endif +#include <sys/fcntl.h> #include <sys/devicestat.h> #ifndef _KERNEL @@ -255,8 +256,10 @@ * Misc other flags/state */ u_int32_t - : 31, - ctrl_mode : 1; /* control device open */ + : 29, + open_rdonly : 1, /* open read-only */ + open_pending_mount : 1, /* open pending mount */ + ctrl_mode : 1; /* control device open */ }; struct sa_quirk_entry { @@ -468,23 +471,37 @@ cam_periph_unlock(periph); return (ENXIO); } + if (SA_IS_CTRL(dev)) { softc->ctrl_mode = 1; cam_periph_unlock(periph); return (0); } - if (softc->flags & SA_FLAG_OPEN) { error = EBUSY; } else if (softc->flags & SA_FLAG_INVALID) { error = ENXIO; } else { /* + * Preserve whether this is a read_only open. + */ + softc->open_rdonly = (flags & O_RDWR) == O_RDONLY; + + /* * The function samount ensures media is loaded and ready. * It also does a device RESERVE if the tape isn't yet mounted. + * + * If the mount fails and this was a non-blocking open, + * make this a 'open_pending_mount' action. */ error = samount(periph, flags, dev); + if (error && (flags & O_NONBLOCK)) { + softc->flags |= SA_FLAG_OPEN; + softc->open_pending_mount = 1; + cam_periph_unlock(periph); + return (0); + } } if (error) { @@ -521,6 +538,7 @@ return (error); } + softc->open_rdonly = 0; if (SA_IS_CTRL(dev)) { softc->ctrl_mode = 0; cam_periph_release(periph); @@ -528,6 +546,14 @@ return (0); } + if (softc->open_pending_mount) { + softc->flags &= ~SA_FLAG_OPEN; + softc->open_pending_mount = 0; + cam_periph_release(periph); + cam_periph_unlock(periph); + return (0); + } + /* * Were we writing the tape? */ @@ -681,10 +707,32 @@ return; } + /* + * This should actually never occur as the write(2) + * system call traps attempts to write to a read-only + * file descriptor. + */ + if (bp->bio_cmd == BIO_WRITE && softc->open_rdonly) { + splx(s); + biofinish(bp, NULL, EBADF); + return; + } + splx(s); + if (softc->open_pending_mount) { + int error = samount(periph, 0, bp->bio_dev); + if (error) { + biofinish(bp, NULL, ENXIO); + return; + } + saprevent(periph, PR_PREVENT); + softc->open_pending_mount = 0; + } + >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601171716.k0HHGTvq025998>