Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jan 2006 20:34:41 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 89745 for review
Message-ID:  <200601152034.k0FKYfWx014233@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=89745

Change 89745 by rwatson@rwatson_zoo on 2006/01/15 20:34:06

	Integrate netsmp branch: loop back ipq with UMA change.

Affected files ...

.. //depot/projects/netsmp/src/sys/Makefile#2 integrate
.. //depot/projects/netsmp/src/sys/alpha/conf/GENERIC#5 integrate
.. //depot/projects/netsmp/src/sys/alpha/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/alpha/include/param.h#4 integrate
.. //depot/projects/netsmp/src/sys/amd64/amd64/bpf_jit_machdep.c#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/amd64/busdma_machdep.c#4 integrate
.. //depot/projects/netsmp/src/sys/amd64/amd64/mptable_pci.c#3 integrate
.. //depot/projects/netsmp/src/sys/amd64/amd64/trap.c#6 integrate
.. //depot/projects/netsmp/src/sys/amd64/conf/GENERIC#7 integrate
.. //depot/projects/netsmp/src/sys/amd64/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/amd64/include/param.h#3 integrate
.. //depot/projects/netsmp/src/sys/amd64/pci/pci_bus.c#4 integrate
.. //depot/projects/netsmp/src/sys/arm/arm/trap.c#3 integrate
.. //depot/projects/netsmp/src/sys/arm/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/arm/include/param.h#3 integrate
.. //depot/projects/netsmp/src/sys/boot/common/module.c#2 integrate
.. //depot/projects/netsmp/src/sys/cam/cam_periph.c#2 integrate
.. //depot/projects/netsmp/src/sys/cam/cam_xpt.c#3 integrate
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_da.c#4 integrate
.. //depot/projects/netsmp/src/sys/cam/scsi/scsi_sa.c#2 integrate
.. //depot/projects/netsmp/src/sys/coda/coda_vfsops.c#3 integrate
.. //depot/projects/netsmp/src/sys/conf/NOTES#7 integrate
.. //depot/projects/netsmp/src/sys/conf/files#16 integrate
.. //depot/projects/netsmp/src/sys/conf/options#7 integrate
.. //depot/projects/netsmp/src/sys/contrib/pf/net/pf_norm.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/acpi_support/acpi_ibm.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/Osd/OsdSchedule.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pci_link.c#7 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_pcib_pci.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/acpica/acpi_smbat.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/amr/amr.c#7 integrate
.. //depot/projects/netsmp/src/sys/dev/amr/amrreg.h#3 integrate
.. //depot/projects/netsmp/src/sys/dev/an/if_an.c#7 integrate
.. //depot/projects/netsmp/src/sys/dev/asr/asr.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-all.c#9 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-all.h#7 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-card.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-cbus.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-chipset.c#9 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-disk.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-disk.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-dma.c#5 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-isa.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-lowlevel.c#6 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-pci.c#5 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-pci.h#8 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-queue.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-raid.c#7 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata-raid.h#4 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/ata_if.m#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-cd.c#6 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-cd.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-fd.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-fd.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-tape.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ata/atapi-tape.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/if_ath.c#13 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/if_athioctl.h#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ath/if_athvar.h#5 integrate
.. //depot/projects/netsmp/src/sys/dev/atkbdc/psm.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/bge/if_bge.c#12 integrate
.. //depot/projects/netsmp/src/sys/dev/bge/if_bgereg.h#5 integrate
.. //depot/projects/netsmp/src/sys/dev/cardbus/cardbus_cis.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/dcons/dcons_os.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/ed/if_ed_isa.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/em/if_em.c#12 integrate
.. //depot/projects/netsmp/src/sys/dev/em/if_em.h#4 integrate
.. //depot/projects/netsmp/src/sys/dev/fxp/if_fxp.c#12 integrate
.. //depot/projects/netsmp/src/sys/dev/ichsmb/ichsmb.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ieee488/pcii.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/ips/ips_ioctl.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ips/ipsreg.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/nmdm/nmdm.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/pci/pci.c#9 integrate
.. //depot/projects/netsmp/src/sys/dev/pci/pci_pci.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/pci/pcib_private.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/pci/pcivar.h#4 integrate
.. //depot/projects/netsmp/src/sys/dev/si/si.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/si/si2_z280.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/si/si3_t225.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/sn/if_sn.c#9 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/ds1.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/es137x.c#5 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/fm801.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/ich.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/maestro.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pci/solo.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pcm/ac97.c#8 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pcm/channel.c#7 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/pcm/vchan.c#5 integrate
.. //depot/projects/netsmp/src/sys/dev/syscons/syscons.c#5 integrate
.. //depot/projects/netsmp/src/sys/dev/ti/if_ti.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/ti/if_tireg.h#2 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/ufoma.c#1 branch
.. //depot/projects/netsmp/src/sys/dev/usb/umass.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usb_mem.c#2 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usb_quirks.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usb_quirks.h#3 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usb_subr.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usbdevs#5 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/uscanner.c#3 integrate
.. //depot/projects/netsmp/src/sys/fs/devfs/devfs_rule.c#5 integrate
.. //depot/projects/netsmp/src/sys/fs/ntfs/ntfs_subr.c#4 integrate
.. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_drive.c#7 integrate
.. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_plex.c#3 integrate
.. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_subr.c#2 integrate
.. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_var.h#3 integrate
.. //depot/projects/netsmp/src/sys/geom/vinum/geom_vinum_volume.c#3 integrate
.. //depot/projects/netsmp/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#4 integrate
.. //depot/projects/netsmp/src/sys/gnu/fs/reiserfs/reiserfs_inode.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/conf/GENERIC#7 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/bpf_jit_machdep.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/busdma_machdep.c#3 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/identcpu.c#6 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/mptable_pci.c#3 integrate
.. //depot/projects/netsmp/src/sys/i386/i386/trap.c#4 integrate
.. //depot/projects/netsmp/src/sys/i386/ibcs2/ibcs2_sysvec.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/i386/include/param.h#3 integrate
.. //depot/projects/netsmp/src/sys/i386/isa/pcvt/pcvt_drv.c#2 integrate
.. //depot/projects/netsmp/src/sys/i386/pci/pci_bus.c#5 integrate
.. //depot/projects/netsmp/src/sys/i386/xbox/xboxfb.c#2 integrate
.. //depot/projects/netsmp/src/sys/ia64/conf/GENERIC#5 integrate
.. //depot/projects/netsmp/src/sys/ia64/ia64/ssc.c#3 integrate
.. //depot/projects/netsmp/src/sys/ia64/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/ia64/include/param.h#5 integrate
.. //depot/projects/netsmp/src/sys/isofs/cd9660/cd9660_vnops.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/kern_conf.c#5 integrate
.. //depot/projects/netsmp/src/sys/kern/kern_descrip.c#7 integrate
.. //depot/projects/netsmp/src/sys/kern/kern_mutex.c#6 integrate
.. //depot/projects/netsmp/src/sys/kern/kern_sx.c#3 integrate
.. //depot/projects/netsmp/src/sys/kern/kern_thr.c#4 integrate
.. //depot/projects/netsmp/src/sys/kern/subr_bus.c#4 integrate
.. //depot/projects/netsmp/src/sys/kern/subr_disk.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/subr_taskqueue.c#4 integrate
.. //depot/projects/netsmp/src/sys/kern/subr_witness.c#12 integrate
.. //depot/projects/netsmp/src/sys/kern/sys_generic.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/tty.c#4 integrate
.. //depot/projects/netsmp/src/sys/kern/tty_compat.c#3 integrate
.. //depot/projects/netsmp/src/sys/kern/tty_pty.c#3 integrate
.. //depot/projects/netsmp/src/sys/kern/uipc_socket.c#24 integrate
.. //depot/projects/netsmp/src/sys/kern/uipc_usrreq.c#8 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_aio.c#6 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_default.c#5 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_mount.c#5 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#15 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_syscalls.c#6 integrate
.. //depot/projects/netsmp/src/sys/libkern/gets.c#2 integrate
.. //depot/projects/netsmp/src/sys/modules/Makefile#10 integrate
.. //depot/projects/netsmp/src/sys/modules/ufoma/Makefile#1 branch
.. //depot/projects/netsmp/src/sys/net/bpf_filter.c#3 integrate
.. //depot/projects/netsmp/src/sys/net/if_bridge.c#13 integrate
.. //depot/projects/netsmp/src/sys/net/if_bridgevar.h#5 integrate
.. //depot/projects/netsmp/src/sys/net/if_ef.c#5 integrate
.. //depot/projects/netsmp/src/sys/net/if_fwsubr.c#7 integrate
.. //depot/projects/netsmp/src/sys/net/if_mib.c#4 integrate
.. //depot/projects/netsmp/src/sys/net/if_mib.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_node.c#10 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_output.c#8 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_proto.c#5 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_proto.h#5 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_radiotap.h#2 integrate
.. //depot/projects/netsmp/src/sys/net80211/ieee80211_var.h#7 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netflow/netflow.c#4 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netflow/ng_netflow.c#3 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netflow/ng_netflow.h#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netgraph.h#8 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_base.c#8 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_ether.c#6 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_frame_relay.c#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_lmi.c#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_message.h#2 integrate
.. //depot/projects/netsmp/src/sys/netgraph/ng_parse.c#3 integrate
.. //depot/projects/netsmp/src/sys/netinet/if_ether.c#9 integrate
.. //depot/projects/netsmp/src/sys/netinet/ip_fw2.c#10 integrate
.. //depot/projects/netsmp/src/sys/netinet/ip_input.c#10 integrate
.. //depot/projects/netsmp/src/sys/netinet/tcp_input.c#5 integrate
.. //depot/projects/netsmp/src/sys/netinet/tcp_syncache.c#5 integrate
.. //depot/projects/netsmp/src/sys/netinet/udp_usrreq.c#7 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_mroute.c#7 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ip6_output.c#8 integrate
.. //depot/projects/netsmp/src/sys/netinet6/ipcomp_input.c#2 integrate
.. //depot/projects/netsmp/src/sys/netipx/ipx_input.c#2 integrate
.. //depot/projects/netsmp/src/sys/netipx/spx_usrreq.c#5 integrate
.. //depot/projects/netsmp/src/sys/netncp/ncp_conn.c#3 integrate
.. //depot/projects/netsmp/src/sys/nfs4client/nfs4_vfsops.c#2 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_lock.c#4 integrate
.. //depot/projects/netsmp/src/sys/nfsclient/nfs_vfsops.c#3 integrate
.. //depot/projects/netsmp/src/sys/pc98/conf/GENERIC#5 integrate
.. //depot/projects/netsmp/src/sys/pc98/include/_types.h#2 integrate
.. //depot/projects/netsmp/src/sys/pc98/include/param.h#3 integrate
.. //depot/projects/netsmp/src/sys/pccard/cardinfo.h#2 integrate
.. //depot/projects/netsmp/src/sys/pccard/driver.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/i82365.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/meciareg.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/pccard_nbk.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/pcic_pci.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/pcicvar.h#2 delete
.. //depot/projects/netsmp/src/sys/pccard/slot.h#2 delete
.. //depot/projects/netsmp/src/sys/pci/if_sk.c#10 integrate
.. //depot/projects/netsmp/src/sys/powerpc/conf/GENERIC#4 integrate
.. //depot/projects/netsmp/src/sys/powerpc/ofw/ofw_pcib_pci.c#2 integrate
.. //depot/projects/netsmp/src/sys/powerpc/powerpc/machdep.c#6 integrate
.. //depot/projects/netsmp/src/sys/security/mac_bsdextended/mac_bsdextended.c#3 integrate
.. //depot/projects/netsmp/src/sys/sparc64/conf/GENERIC#5 integrate
.. //depot/projects/netsmp/src/sys/sparc64/conf/NOTES#4 integrate
.. //depot/projects/netsmp/src/sys/sparc64/include/in_cksum.h#2 integrate
.. //depot/projects/netsmp/src/sys/sparc64/pci/apb.c#3 integrate
.. //depot/projects/netsmp/src/sys/sparc64/pci/ofw_pcib.c#3 integrate
.. //depot/projects/netsmp/src/sys/sparc64/sparc64/pmap.c#4 integrate
.. //depot/projects/netsmp/src/sys/sys/_lock.h#3 integrate
.. //depot/projects/netsmp/src/sys/sys/ioctl.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/ioctl_compat.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/lock.h#3 integrate
.. //depot/projects/netsmp/src/sys/sys/mount.h#6 integrate
.. //depot/projects/netsmp/src/sys/sys/param.h#10 integrate
.. //depot/projects/netsmp/src/sys/sys/select.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/socketvar.h#8 integrate
.. //depot/projects/netsmp/src/sys/sys/taskqueue.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/tree.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/tty.h#3 integrate
.. //depot/projects/netsmp/src/sys/sys/ttychars.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/ttydev.h#2 integrate
.. //depot/projects/netsmp/src/sys/sys/vnode.h#7 integrate
.. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_snapshot.c#3 integrate
.. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_softdep.c#7 integrate
.. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_vfsops.c#8 integrate
.. //depot/projects/netsmp/src/sys/ufs/ufs/ufs_quota.c#4 integrate
.. //depot/projects/netsmp/src/sys/vm/uma_core.c#6 integrate
.. //depot/projects/netsmp/src/sys/vm/vm_pageq.c#3 integrate

Differences ...

==== //depot/projects/netsmp/src/sys/Makefile#2 (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/netsmp/src/sys/alpha/conf/GENERIC#5 (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/netsmp/src/sys/alpha/include/_types.h#2 (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.6 2005/03/02 21:33:20 joerg Exp $
+ * $FreeBSD: src/sys/alpha/include/_types.h,v 1.8 2006/01/09 06:05:55 imp Exp $
  */
 
 #ifndef _MACHINE__TYPES_H_

==== //depot/projects/netsmp/src/sys/alpha/include/param.h#4 (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/netsmp/src/sys/amd64/amd64/bpf_jit_machdep.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.c,v 1.3 2005/12/06 07:22:00 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.c,v 1.4 2006/01/03 20:26:02 jkim Exp $");
 
 #include "opt_bpf.h"
 
@@ -103,6 +103,10 @@
 	 */
 	emit_func emitm;
 
+	/* Do not compile an empty filter. */
+	if (nins == 0)
+		return NULL;
+
 	/* Allocate the reference table for the jumps */
 	stream.refs = (u_int *)malloc((nins + 1) * sizeof(u_int),
 	    M_BPFJIT, M_NOWAIT);

==== //depot/projects/netsmp/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.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/netsmp/src/sys/amd64/amd64/mptable_pci.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable_pci.c,v 1.3 2005/09/18 01:42:43 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable_pci.c,v 1.4 2006/01/06 19:22:18 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -100,13 +100,10 @@
 	{ 0, 0 }
 };
 
-static driver_t mptable_hostb_driver = {
-	"pcib",
-	mptable_hostb_methods,
-	1,
-};
+static devclass_t hostb_devclass;
 
-DRIVER_MODULE(mptable_pcib, legacy, mptable_hostb_driver, pcib_devclass, 0, 0);
+DEFINE_CLASS_0(pcib, mptable_hostb_driver, mptable_hostb_methods, 1);
+DRIVER_MODULE(mptable_pcib, legacy, mptable_hostb_driver, hostb_devclass, 0, 0);
 
 /* PCI to PCI bridge driver. */
 
@@ -155,11 +152,9 @@
 	{0, 0}
 };
 
-static driver_t mptable_pcib_driver = {
-	"pcib",
-	mptable_pcib_pci_methods,
-	sizeof(struct pcib_softc),
-};
+static devclass_t pcib_devclass;
 
+DEFINE_CLASS_0(pcib, mptable_pcib_driver, mptable_pcib_pci_methods,
+    sizeof(struct pcib_softc));
 DRIVER_MODULE(mptable_pcib, pci, mptable_pcib_driver, pcib_devclass, 0, 0);
 

==== //depot/projects/netsmp/src/sys/amd64/amd64/trap.c#6 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.298 2005/12/09 13:30:34 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.299 2006/01/06 18:02:11 jhb Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -220,10 +220,10 @@
 			printf("kernel trap %d with interrupts disabled\n",
 			    type);
 			/*
-			 * We shouldn't enable interrupts while in a critical
-			 * section or servicing an NMI.
+			 * We shouldn't enable interrupts while holding a
+			 * spin lock or servicing an NMI.
 			 */
-			if (type != T_NMI && td->td_critnest == 0)
+			if (type != T_NMI && td->td_md.md_spinlock_count == 0)
 				enable_intr();
 		}
 	}

==== //depot/projects/netsmp/src/sys/amd64/conf/GENERIC#7 (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/netsmp/src/sys/amd64/include/_types.h#2 (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.9 2005/07/02 23:13:30 thompsa Exp $
+ * $FreeBSD: src/sys/amd64/include/_types.h,v 1.11 2006/01/09 06:05:56 imp Exp $
  */
 
 #ifndef _MACHINE__TYPES_H_

==== //depot/projects/netsmp/src/sys/amd64/include/param.h#3 (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/netsmp/src/sys/amd64/pci/pci_bus.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.115 2005/12/20 21:09:44 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_bus.c,v 1.116 2006/01/06 19:22:18 jhb Exp $");
 
 #include "opt_cpu.h"
 
@@ -326,12 +326,9 @@
 	{ 0, 0 }
 };
 
-static driver_t legacy_pcib_driver = {
-	"pcib",
-	legacy_pcib_methods,
-	1,
-};
+static devclass_t pcib_devclass;
 
+DEFINE_CLASS_0(pcib, legacy_pcib_driver, legacy_pcib_methods, 1);
 DRIVER_MODULE(pcib, legacy, legacy_pcib_driver, pcib_devclass, 0, 0);
 
 
@@ -377,12 +374,7 @@
 	{ 0, 0 }
 };
 
-static driver_t pcibus_pnp_driver = {
-	"pcibus_pnp",
-	pcibus_pnp_methods,
-	1,		/* no softc */
-};
-
 static devclass_t pcibus_pnp_devclass;
 
+DEFINE_CLASS_0(pcibus_pnp, pcibus_pnp_driver, pcibus_pnp_methods, 1);
 DRIVER_MODULE(pcibus_pnp, isa, pcibus_pnp_driver, pcibus_pnp_devclass, 0, 0);

==== //depot/projects/netsmp/src/sys/arm/arm/trap.c#3 (text+ko) ====

@@ -82,7 +82,7 @@
 #include "opt_ktrace.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.18 2005/10/14 12:43:44 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/trap.c,v 1.19 2006/01/06 18:02:12 jhb Exp $");
 
 #include <sys/types.h>
 
@@ -269,7 +269,8 @@
 	/* Grab the current pcb */
 	pcb = td->td_pcb;
 	/* Re-enable interrupts if they were enabled previously */
-	if (td->td_critnest == 0 && __predict_true(tf->tf_spsr & I32_bit) == 0)
+	if (td->td_md.md_spinlock_count == 0 &&
+	    __predict_true(tf->tf_spsr & I32_bit) == 0)
 		enable_interrupts(I32_bit);
 
 	/* Invoke the appropriate handler, if necessary */
@@ -729,7 +730,7 @@
 			thread_user_enter(td);
 	}
 	fault_pc = tf->tf_pc;
-	if (td->td_critnest == 0 &&
+	if (td->td_md.md_spinlock_count == 0 &&
 	    __predict_true((tf->tf_spsr & I32_bit) == 0))
 		enable_interrupts(I32_bit);
 
@@ -1007,7 +1008,7 @@
 	 * Since all syscalls *should* come from user mode it will always
 	 * be safe to enable them, but check anyway. 
 	 */       
-	if (td->td_critnest == 0 && !(frame->tf_spsr & I32_bit))
+	if (td->td_md.md_spinlock_count == 0 && !(frame->tf_spsr & I32_bit))
 		enable_interrupts(I32_bit);
 
 	syscall(td, frame, insn);

==== //depot/projects/netsmp/src/sys/arm/include/_types.h#2 (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.6 2005/03/02 21:33:22 joerg Exp $
+ * $FreeBSD: src/sys/arm/include/_types.h,v 1.8 2006/01/09 06:05:56 imp Exp $
  */
 
 #ifndef _MACHINE__TYPES_H_

==== //depot/projects/netsmp/src/sys/arm/include/param.h#3 (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/netsmp/src/sys/boot/common/module.c#2 (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/netsmp/src/sys/cam/cam_periph.c#2 (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/netsmp/src/sys/cam/cam_xpt.c#3 (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/netsmp/src/sys/cam/scsi/scsi_da.c#4 (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/netsmp/src/sys/cam/scsi/scsi_sa.c#2 (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?
 	 */

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601152034.k0FKYfWx014233>