Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Aug 2009 11:12:11 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 167085 for review
Message-ID:  <200908071112.n77BCBtx010374@repoman.freebsd.org>

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

Change 167085 by hselasky@hselasky_laptop001 on 2009/08/07 11:11:35

	
	IFC @167060

Affected files ...

.. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#24 integrate
.. //depot/projects/usb/src/sys/arm/arm/minidump_machdep.c#2 integrate
.. //depot/projects/usb/src/sys/cam/cam_ccb.h#6 integrate
.. //depot/projects/usb/src/sys/cam/cam_xpt.c#19 integrate
.. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#22 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#16 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#16 integrate
.. //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#10 integrate
.. //depot/projects/usb/src/sys/conf/files#76 integrate
.. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#13 integrate
.. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/fil.c#6 integrate
.. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#15 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#14 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#12 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#18 integrate
.. //depot/projects/usb/src/sys/contrib/pf/net/pf_subr.c#7 integrate
.. //depot/projects/usb/src/sys/contrib/rdma/rdma_cma.c#7 integrate
.. //depot/projects/usb/src/sys/ddb/db_sym.c#4 integrate
.. //depot/projects/usb/src/sys/dev/aac/aac.c#8 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi.c#19 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#7 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#11 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#6 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#8 integrate
.. //depot/projects/usb/src/sys/dev/adb/adb_bus.c#4 integrate
.. //depot/projects/usb/src/sys/dev/alc/if_alc.c#3 integrate
.. //depot/projects/usb/src/sys/dev/amdtemp/amdtemp.c#2 integrate
.. //depot/projects/usb/src/sys/dev/amr/amr.c#9 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.c#18 integrate
.. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#11 integrate
.. //depot/projects/usb/src/sys/dev/bktr/bktr_os.c#5 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#10 integrate
.. //depot/projects/usb/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#13 integrate
.. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#13 integrate
.. //depot/projects/usb/src/sys/dev/ips/ips_pci.c#3 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp.c#8 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.c#10 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.h#9 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_ioctl.h#5 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_library.c#6 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_library.h#4 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_pci.c#7 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_sbus.c#7 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_stds.h#3 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_target.c#6 integrate
.. //depot/projects/usb/src/sys/dev/isp/isp_target.h#5 integrate
.. //depot/projects/usb/src/sys/dev/isp/ispmbox.h#5 integrate
.. //depot/projects/usb/src/sys/dev/isp/ispreg.h#5 integrate
.. //depot/projects/usb/src/sys/dev/isp/ispvar.h#6 integrate
.. //depot/projects/usb/src/sys/dev/ispfw/asm_2300.h#3 integrate
.. //depot/projects/usb/src/sys/dev/ispfw/asm_2400.h#2 integrate
.. //depot/projects/usb/src/sys/dev/ispfw/asm_2500.h#1 branch
.. //depot/projects/usb/src/sys/dev/ispfw/ispfw.c#5 integrate
.. //depot/projects/usb/src/sys/dev/mfi/mfi.c#17 integrate
.. //depot/projects/usb/src/sys/dev/mlx/mlx.c#7 integrate
.. //depot/projects/usb/src/sys/dev/mmc/mmc.c#10 integrate
.. //depot/projects/usb/src/sys/dev/pccbb/pccbb.c#13 integrate
.. //depot/projects/usb/src/sys/dev/pst/pst-iop.c#3 integrate
.. //depot/projects/usb/src/sys/dev/rp/rp.c#6 integrate
.. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#33 integrate
.. //depot/projects/usb/src/sys/dev/twe/twe.c#3 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#27 integrate
.. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#47 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#34 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#19 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#29 integrate
.. //depot/projects/usb/src/sys/dev/usb/usbdevs#73 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#13 integrate
.. //depot/projects/usb/src/sys/dev/xen/blkback/blkback.c#3 integrate
.. //depot/projects/usb/src/sys/dev/xen/netback/netback.c#3 integrate
.. //depot/projects/usb/src/sys/fs/nfs/nfsport.h#8 integrate
.. //depot/projects/usb/src/sys/fs/unionfs/union_subr.c#13 integrate
.. //depot/projects/usb/src/sys/i386/acpica/acpi_machdep.c#10 integrate
.. //depot/projects/usb/src/sys/i386/bios/smapi.c#5 integrate
.. //depot/projects/usb/src/sys/i386/bios/smbios.c#3 integrate
.. //depot/projects/usb/src/sys/i386/bios/vpd.c#3 integrate
.. //depot/projects/usb/src/sys/i386/i386/machdep.c#20 integrate
.. //depot/projects/usb/src/sys/kern/kern_exec.c#20 integrate
.. //depot/projects/usb/src/sys/kern/kern_jail.c#28 integrate
.. //depot/projects/usb/src/sys/kern/kern_linker.c#20 integrate
.. //depot/projects/usb/src/sys/kern/kern_poll.c#16 integrate
.. //depot/projects/usb/src/sys/kern/kern_sysctl.c#21 integrate
.. //depot/projects/usb/src/sys/kern/kern_uuid.c#12 integrate
.. //depot/projects/usb/src/sys/kern/kern_vimage.c#13 delete
.. //depot/projects/usb/src/sys/kern/subr_bus.c#24 integrate
.. //depot/projects/usb/src/sys/kern/sys_socket.c#13 integrate
.. //depot/projects/usb/src/sys/kern/tty_pts.c#16 integrate
.. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#6 integrate
.. //depot/projects/usb/src/sys/kern/uipc_domain.c#13 integrate
.. //depot/projects/usb/src/sys/kern/uipc_socket.c#26 integrate
.. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#18 integrate
.. //depot/projects/usb/src/sys/kern/uipc_usrreq.c#20 integrate
.. //depot/projects/usb/src/sys/kern/vfs_mount.c#29 integrate
.. //depot/projects/usb/src/sys/kern/vfs_syscalls.c#28 integrate
.. //depot/projects/usb/src/sys/modules/ispfw/Makefile#4 integrate
.. //depot/projects/usb/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch
.. //depot/projects/usb/src/sys/modules/ispfw/isp_2500/Makefile#1 branch
.. //depot/projects/usb/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch
.. //depot/projects/usb/src/sys/net/bpf.c#22 integrate
.. //depot/projects/usb/src/sys/net/bridgestp.c#17 integrate
.. //depot/projects/usb/src/sys/net/flowtable.c#8 integrate
.. //depot/projects/usb/src/sys/net/if.c#37 integrate
.. //depot/projects/usb/src/sys/net/if_bridge.c#18 integrate
.. //depot/projects/usb/src/sys/net/if_clone.c#9 integrate
.. //depot/projects/usb/src/sys/net/if_ef.c#11 integrate
.. //depot/projects/usb/src/sys/net/if_enc.c#9 integrate
.. //depot/projects/usb/src/sys/net/if_epair.c#3 integrate
.. //depot/projects/usb/src/sys/net/if_ethersubr.c#23 integrate
.. //depot/projects/usb/src/sys/net/if_faith.c#8 integrate
.. //depot/projects/usb/src/sys/net/if_gif.c#18 integrate
.. //depot/projects/usb/src/sys/net/if_gre.c#14 integrate
.. //depot/projects/usb/src/sys/net/if_llatbl.c#5 integrate
.. //depot/projects/usb/src/sys/net/if_loop.c#24 integrate
.. //depot/projects/usb/src/sys/net/if_mib.c#11 integrate
.. //depot/projects/usb/src/sys/net/if_spppsubr.c#14 integrate
.. //depot/projects/usb/src/sys/net/if_stf.c#15 integrate
.. //depot/projects/usb/src/sys/net/if_tun.c#16 integrate
.. //depot/projects/usb/src/sys/net/if_vlan.c#17 integrate
.. //depot/projects/usb/src/sys/net/netisr.c#13 integrate
.. //depot/projects/usb/src/sys/net/raw_cb.c#14 integrate
.. //depot/projects/usb/src/sys/net/raw_usrreq.c#13 integrate
.. //depot/projects/usb/src/sys/net/route.c#24 integrate
.. //depot/projects/usb/src/sys/net/rtsock.c#30 integrate
.. //depot/projects/usb/src/sys/net/vnet.c#3 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#17 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.c#28 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#19 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.c#21 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#16 integrate
.. //depot/projects/usb/src/sys/netgraph/atm/ng_atm.c#9 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_base.c#21 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_bridge.c#5 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#15 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_ether.c#16 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_gif.c#9 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_iface.c#18 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_pipe.c#3 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_source.c#5 integrate
.. //depot/projects/usb/src/sys/netinet/icmp6.h#8 integrate
.. //depot/projects/usb/src/sys/netinet/icmp_var.h#7 integrate
.. //depot/projects/usb/src/sys/netinet/if_ether.c#27 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.c#23 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#33 integrate
.. //depot/projects/usb/src/sys/netinet/in_gif.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/in_mcast.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.c#31 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.h#24 integrate
.. //depot/projects/usb/src/sys/netinet/in_proto.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/in_rmx.c#21 integrate
.. //depot/projects/usb/src/sys/netinet/ip_carp.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/ip_divert.c#23 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fastfwd.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/ip_icmp.c#19 integrate
.. //depot/projects/usb/src/sys/netinet/ip_input.c#30 integrate
.. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#17 integrate
.. //depot/projects/usb/src/sys/netinet/ip_mroute.c#17 integrate
.. //depot/projects/usb/src/sys/netinet/ip_options.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/ip_output.c#25 integrate
.. //depot/projects/usb/src/sys/netinet/ip_var.h#14 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#8 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#5 integrate
.. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_pfil.c#3 integrate
.. //depot/projects/usb/src/sys/netinet/raw_ip.c#28 integrate
.. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#18 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_hostcache.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_input.c#28 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_offload.c#8 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_output.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_reass.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_sack.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_subr.c#28 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#26 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_timer.c#18 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#16 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_usrreq.c#23 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_var.h#22 integrate
.. //depot/projects/usb/src/sys/netinet/udp_usrreq.c#26 integrate
.. //depot/projects/usb/src/sys/netinet/udp_var.h#12 integrate
.. //depot/projects/usb/src/sys/netinet6/dest6.c#8 integrate
.. //depot/projects/usb/src/sys/netinet6/frag6.c#18 integrate
.. //depot/projects/usb/src/sys/netinet6/icmp6.c#25 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#30 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_gif.c#14 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#28 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#7 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_pcb.c#22 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_proto.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#20 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_src.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_forward.c#14 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_input.c#28 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_ipsec.c#12 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#21 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_output.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/mld6.c#22 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.c#24 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_nbr.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#22 integrate
.. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#25 integrate
.. //depot/projects/usb/src/sys/netinet6/route6.c#11 integrate
.. //depot/projects/usb/src/sys/netinet6/scope6.c#15 integrate
.. //depot/projects/usb/src/sys/netinet6/udp6_usrreq.c#23 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec.c#23 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec_input.c#14 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec_mbuf.c#7 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec_output.c#13 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#24 integrate
.. //depot/projects/usb/src/sys/netipsec/keysock.c#15 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ah.c#10 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_esp.c#11 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ipcomp.c#10 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#16 integrate
.. //depot/projects/usb/src/sys/netipsec/xform_tcp.c#6 integrate
.. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#18 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_diskless.c#14 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#29 integrate
.. //depot/projects/usb/src/sys/pc98/cbus/fdc.c#5 integrate
.. //depot/projects/usb/src/sys/sys/bus.h#8 integrate
.. //depot/projects/usb/src/sys/sys/param.h#43 integrate
.. //depot/projects/usb/src/sys/sys/priv.h#21 integrate
.. //depot/projects/usb/src/sys/sys/vimage.h#20 delete
.. //depot/projects/usb/src/sys/xen/xenbus/xenbus_probe.c#5 integrate

Differences ...

==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#24 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.706 2009/07/27 13:51:55 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -214,6 +214,7 @@
 	sysenv = getenv("smbios.system.product");
 	if (sysenv != NULL) {
 		if (strncmp(sysenv, "MacBook1,1", 10) == 0 ||
+		    strncmp(sysenv, "MacBook3,1", 10) == 0 ||
 		    strncmp(sysenv, "MacBookPro1,1", 13) == 0 ||
 		    strncmp(sysenv, "MacBookPro1,2", 13) == 0 ||
 		    strncmp(sysenv, "Macmini1,1", 10) == 0) {

==== //depot/projects/usb/src/sys/arm/arm/minidump_machdep.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.1 2008/11/06 16:20:27 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/minidump_machdep.c,v 1.2 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -36,7 +36,6 @@
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
 #include <sys/msgbuf.h>
-#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/pmap.h>

==== //depot/projects/usb/src/sys/cam/cam_ccb.h#6 (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.36 2009/07/10 08:18:08 scottl Exp $
+ * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $
  */
 
 #ifndef _CAM_CAM_CCB_H
@@ -173,6 +173,15 @@
 	XPT_ATA_IO		= 0x18 | XPT_FC_DEV_QUEUED,
 				/* Execute the requested ATA I/O operation */
 
+	XPT_GET_SIM_KNOB	= 0x18,
+				/*
+				 * Get SIM specific knob values.
+				 */
+
+	XPT_SET_SIM_KNOB	= 0x19,
+				/*
+				 * Set SIM specific knob values.
+				 */
 /* HBA engine commands 0x20->0x2F */
 	XPT_ENG_INQ		= 0x20 | XPT_FC_XPT_ONLY,
 				/* HBA engine feature inquiry */
@@ -189,8 +198,12 @@
 	XPT_CONT_TARGET_IO	= 0x33 | XPT_FC_DEV_QUEUED,
 				/* Continue Host Target I/O Connection */
 	XPT_IMMED_NOTIFY	= 0x34 | XPT_FC_QUEUED | XPT_FC_USER_CCB,
+				/* Notify Host Target driver of event (obsolete) */
+	XPT_NOTIFY_ACK		= 0x35,
+				/* Acknowledgement of event (obsolete) */
+	XPT_IMMEDIATE_NOTIFY	= 0x36 | XPT_FC_QUEUED | XPT_FC_USER_CCB,
 				/* Notify Host Target driver of event */
-	XPT_NOTIFY_ACK		= 0x35,
+	XPT_NOTIFY_ACKNOWLEDGE	= 0x37 | XPT_FC_QUEUED | XPT_FC_USER_CCB,
 				/* Acknowledgement of event */
 
 /* Vendor Unique codes: 0x80->0x8F */
@@ -531,12 +544,14 @@
 struct ccb_pathinq_settings_spi {
 	u_int8_t ppr_options;
 };
+
 struct ccb_pathinq_settings_fc {
 	u_int64_t wwnn;		/* world wide node name */
 	u_int64_t wwpn;		/* world wide port name */
 	u_int32_t port;		/* 24 bit port id, if known */
 	u_int32_t bitrate;	/* Mbps */
 };
+
 struct ccb_pathinq_settings_sas {
 	u_int32_t bitrate;	/* Mbps */
 };
@@ -678,6 +693,7 @@
  * Definitions for the asynchronous callback CCB fields.
  */
 typedef enum {
+	AC_CONTRACT		= 0x1000,/* A contractual callback */
 	AC_GETDEV_CHANGED	= 0x800,/* Getdev info might have changed */
 	AC_INQ_CHANGED		= 0x400,/* Inquiry info might have changed */
 	AC_TRANSFER_NEG		= 0x200,/* New transfer settings in effect */
@@ -694,6 +710,26 @@
 typedef void ac_callback_t (void *softc, u_int32_t code,
 			    struct cam_path *path, void *args);
 
+/*
+ * Generic Asynchronous callbacks.
+ *
+ * Generic arguments passed bac which are then interpreted between a per-system
+ * contract number.
+ */
+#define	AC_CONTRACT_DATA_MAX (128 - sizeof (u_int64_t))
+struct ac_contract {
+	u_int64_t	contract_number;
+	u_int8_t	contract_data[AC_CONTRACT_DATA_MAX];
+};
+
+#define	AC_CONTRACT_DEV_CHG	1
+struct ac_device_changed {
+	u_int64_t	wwpn;
+	u_int32_t	port;
+	target_id_t	target;
+	u_int8_t	arrived;
+};
+
 /* Set Asynchronous Callback CCB */
 struct ccb_setasync {
 	struct ccb_hdr	 ccb_h;
@@ -823,6 +859,50 @@
 };
 
 /*
+ * Set or get SIM (and transport) specific knobs
+ */
+
+#define	KNOB_VALID_ADDRESS	0x1
+#define	KNOB_VALID_ROLE		0x2
+
+
+#define	KNOB_ROLE_NONE		0x0
+#define	KNOB_ROLE_INITIATOR	0x1
+#define	KNOB_ROLE_TARGET	0x2
+#define	KNOB_ROLE_BOTH		0x3
+
+struct ccb_sim_knob_settings_spi {
+	u_int		valid;
+	u_int		initiator_id;
+	u_int		role;
+};
+
+struct ccb_sim_knob_settings_fc {
+	u_int		valid;
+	u_int64_t	wwnn;		/* world wide node name */
+	u_int64_t 	wwpn;		/* world wide port name */
+	u_int		role;
+};
+
+struct ccb_sim_knob_settings_sas {
+	u_int		valid;
+	u_int64_t	wwnn;		/* world wide node name */
+	u_int		role;
+};
+#define	KNOB_SETTINGS_SIZE	128
+
+struct ccb_sim_knob {
+	struct	  ccb_hdr ccb_h;
+	union {
+		u_int  valid;	/* Which fields to honor */
+		struct ccb_sim_knob_settings_spi spi;
+		struct ccb_sim_knob_settings_fc fc;
+		struct ccb_sim_knob_settings_sas sas;
+		char pad[KNOB_SETTINGS_SIZE];
+	} xport_specific;
+};
+
+/*
  * Rescan the given bus, or bus/target/lun
  */
 struct ccb_rescan {
@@ -847,6 +927,7 @@
 	u_int8_t  enable;
 };
 
+/* old, barely used immediate notify, binary compatibility */
 struct ccb_immed_notify {
 	struct	  ccb_hdr ccb_h;
 	struct    scsi_sense_data sense_data;
@@ -861,6 +942,22 @@
 	u_int8_t  event;		/* Event flags */
 };
 
+struct ccb_immediate_notify {
+	struct    ccb_hdr ccb_h;
+	u_int     tag_id;		/* Tag for immediate notify */
+	u_int     seq_id;		/* Tag for target of notify */
+	u_int     initiator_id;		/* Initiator Identifier */
+	u_int     arg;			/* Function specific */
+};
+
+struct ccb_notify_acknowledge {
+	struct    ccb_hdr ccb_h;
+	u_int     tag_id;		/* Tag for immediate notify */
+	u_int     seq_id;		/* Tar for target of notify */
+	u_int     initiator_id;		/* Initiator Identifier */
+	u_int     arg;			/* Function specific */
+};
+
 /* HBA engine structures. */
 
 typedef enum {
@@ -935,6 +1032,7 @@
 	struct	ccb_dev_match		cdm;
 	struct	ccb_trans_settings	cts;
 	struct	ccb_calc_geometry	ccg;	
+	struct	ccb_sim_knob		knob;	
 	struct	ccb_abort		cab;
 	struct	ccb_resetbus		crb;
 	struct	ccb_resetdev		crd;
@@ -944,6 +1042,8 @@
 	struct	ccb_en_lun		cel;
 	struct	ccb_immed_notify	cin;
 	struct	ccb_notify_ack		cna;
+	struct	ccb_immediate_notify	cin1;
+	struct	ccb_notify_acknowledge	cna2;
 	struct	ccb_eng_inq		cei;
 	struct	ccb_eng_exec		cee;
 	struct 	ccb_rescan		crcn;

==== //depot/projects/usb/src/sys/cam/cam_xpt.c#19 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.216 2009/07/10 08:18:08 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.217 2009/08/01 01:04:26 mjacob Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -2565,6 +2565,10 @@
 	case XPT_IMMED_NOTIFY:
 	case XPT_NOTIFY_ACK:
 	case XPT_RESET_BUS:
+	case XPT_IMMEDIATE_NOTIFY:
+	case XPT_NOTIFY_ACKNOWLEDGE:
+	case XPT_GET_SIM_KNOB:
+	case XPT_SET_SIM_KNOB:
 	{
 		struct cam_sim *sim;
 

==== //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#22 (text+ko) ====

@@ -42,7 +42,7 @@
 #include "opt_compat.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.141 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.142 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/queue.h>
@@ -73,7 +73,6 @@
 #include <sys/user.h>
 #include <sys/vmmeter.h>
 #include <sys/vnode.h>
-#include <sys/vimage.h>
 #include <sys/bus.h>
 
 #include <net/if.h>

==== //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#16 (text+ko) ====

@@ -29,7 +29,7 @@
 #include "opt_compat.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.154 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.155 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -59,7 +59,6 @@
 #include <sys/sx.h>
 #include <sys/tty.h>
 #include <sys/uio.h>
-#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <net/if_dl.h>

==== //depot/projects/usb/src/sys/compat/linux/linux_socket.c#16 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.100 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.101 2009/08/01 19:26:27 rwatson Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"
@@ -50,7 +50,6 @@
 #include <sys/uio.h>
 #include <sys/syslog.h>
 #include <sys/un.h>
-#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <netinet/in.h>

==== //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#10 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.26 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sockio.c,v 1.27 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -36,7 +36,6 @@
 #include <sys/filedesc.h>
 #include <sys/sockio.h>
 #include <sys/socket.h>
-#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <net/vnet.h>

==== //depot/projects/usb/src/sys/conf/files#76 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1457 2009/07/26 12:20:07 bz Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1459 2009/08/01 19:26:27 rwatson Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1627,6 +1627,7 @@
 #
 dev/usb/wlan/if_rum.c		optional rum
 dev/usb/wlan/if_uath.c		optional uath
+dev/usb/wlan/if_upgt.c		optional upgt
 dev/usb/wlan/if_ural.c		optional ural
 dev/usb/wlan/if_urtw.c		optional urtw
 dev/usb/wlan/if_zyd.c		optional zyd
@@ -1991,7 +1992,6 @@
 kern/kern_timeout.c		standard
 kern/kern_umtx.c		standard
 kern/kern_uuid.c		standard
-kern/kern_vimage.c		optional vimage
 kern/kern_xxx.c			standard
 kern/link_elf.c			standard
 kern/linker_if.m		standard

==== //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#13 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.24 2009/07/14 22:48:30 rwatson Exp $	*/
+/*	$FreeBSD: src/sys/contrib/altq/altq/altq_subr.c,v 1.25 2009/08/01 19:26:27 rwatson Exp $	*/
 /*	$KAME: altq_subr.c,v 1.21 2003/11/06 06:32:53 kjc Exp $	*/
 
 /*
@@ -47,9 +47,6 @@
 #include <sys/syslog.h>
 #include <sys/sysctl.h>
 #include <sys/queue.h>
-#ifdef __FreeBSD__
-#include <sys/vimage.h>
-#endif
 
 #include <net/if.h>
 #include <net/if_dl.h>

==== //depot/projects/usb/src/sys/contrib/ipfilter/netinet/fil.c#6 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.57 2009/08/01 19:26:27 rwatson Exp $	*/
 
 /*
  * Copyright (C) 1993-2003 by Darren Reed.
@@ -33,9 +33,6 @@
 #  if (__FreeBSD_version == 400019)
 #   define CSUM_DELAY_DATA
 #  endif
-#  if (__FreeBSD_version >= 800044)
-#   include <sys/vimage.h>
-#  endif
 # endif
 # include <sys/filio.h>
 #else
@@ -158,7 +155,7 @@
 
 #if !defined(lint)
 static const char sccsid[] = "@(#)fil.c	1.36 6/5/96 (C) 1993-2000 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.56 2008/08/17 23:27:27 bz Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/fil.c,v 1.57 2009/08/01 19:26:27 rwatson Exp $";
 /* static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; */
 #endif
 

==== //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#15 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.19 2009/07/14 22:48:30 rwatson Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c,v 1.20 2009/08/01 19:26:27 rwatson Exp $	*/
 
 /*
  * Copyright (C) 1993-2003 by Darren Reed.
@@ -63,7 +63,6 @@
 # include <sys/select.h>
 #endif
 #if __FreeBSD_version >= 800044
-# include <sys/vimage.h>
 # include <netinet/tcp_var.h>
 #else
 #define V_path_mtu_discovery path_mtu_discovery

==== //depot/projects/usb/src/sys/contrib/pf/net/pf.c#14 (text+ko) ====

@@ -41,7 +41,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.67 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.69 2009/08/02 19:43:32 rwatson Exp $");
 #endif
 
 #ifdef __FreeBSD__
@@ -91,7 +91,6 @@
 #include <sys/kthread.h>
 #include <sys/lock.h>
 #include <sys/sx.h>
-#include <sys/vimage.h>
 #else
 #include <sys/rwlock.h>
 #endif
@@ -6142,7 +6141,7 @@
 	if (r->rt == PF_FASTROUTE) {
 		in_rtalloc(ro, 0);
 		if (ro->ro_rt == 0) {
-			IPSTAT_INC(ips_noroute);
+			KMOD_IPSTAT_INC(ips_noroute);
 			goto bad;
 		}
 
@@ -6273,16 +6272,16 @@
 		if ((ifp->if_capabilities & IFCAP_CSUM_IPv4) &&
 		    ifp->if_bridge == NULL) {
 			m0->m_pkthdr.csum_flags |= M_IPV4_CSUM_OUT;
-			IPSTAT_INC(ips_outhwcsum);
+			KMOD_IPSTAT_INC(ips_outhwcsum);
 		} else {
 			ip->ip_sum = 0;
 			ip->ip_sum = in_cksum(m0, ip->ip_hl << 2);
 		}
 		/* Update relevant hardware checksum stats for TCP/UDP */
 		if (m0->m_pkthdr.csum_flags & M_TCPV4_CSUM_OUT)
-			TCPSTAT_INC(tcpstat.tcps_outhwcsum);
+			KMOD_TCPSTAT_INC(tcps_outhwcsum);
 		else if (m0->m_pkthdr.csum_flags & M_UDPV4_CSUM_OUT)
-			UDPSTAT_INC(udps_outhwcsum);
+			KMOD_UDPSTAT_INC(udps_outhwcsum);
 		error = (*ifp->if_output)(ifp, m0, sintosa(dst), NULL);
 		goto done;
 	}
@@ -6292,7 +6291,7 @@
 	 * Must be able to put at least 8 bytes per fragment.
 	 */
 	if (ip->ip_off & htons(IP_DF)) {
-		IPSTAT_INC(ips_cantfrag);
+		KMOD_IPSTAT_INC(ips_cantfrag);
 		if (r->rt != PF_DUPTO) {
 #ifdef __FreeBSD__
 			/* icmp_error() expects host byte ordering */
@@ -6349,7 +6348,7 @@
 	}
 
 	if (error == 0)
-		IPSTAT_INC(ips_fragmented);
+		KMOD_IPSTAT_INC(ips_fragmented);
 
 done:
 	if (r->rt != PF_DUPTO)
@@ -6623,23 +6622,23 @@
 		switch (p) {
 		case IPPROTO_TCP:
 		    {
-			TCPSTAT_INC(tcps_rcvbadsum);
+			KMOD_TCPSTAT_INC(tcps_rcvbadsum);
 			break;
 		    }
 		case IPPROTO_UDP:
 		    {
-			UDPSTAT_INC(udps_badsum);
+			KMOD_UDPSTAT_INC(udps_badsum);
 			break;
 		    }
 		case IPPROTO_ICMP:
 		    {
-			ICMPSTAT_INC(icps_checksum);
+			KMOD_ICMPSTAT_INC(icps_checksum);
 			break;
 		    }
 #ifdef INET6
 		case IPPROTO_ICMPV6:
 		    {
-			ICMP6STAT_INC(icp6s_checksum);
+			KMOD_ICMP6STAT_INC(icp6s_checksum);
 			break;
 		    }
 #endif /* INET6 */
@@ -6726,17 +6725,17 @@
 		m->m_pkthdr.csum_flags |= flag_bad;
 		switch (p) {
 		case IPPROTO_TCP:
-			TCPSTAT_INC(tcps_rcvbadsum);
+			KMOD_TCPSTAT_INC(tcps_rcvbadsum);
 			break;
 		case IPPROTO_UDP:
-			UDPSTAT_INC(udps_badsum);
+			KMOD_UDPSTAT_INC(udps_badsum);
 			break;
 		case IPPROTO_ICMP:
-			ICMPSTAT_INC(icps_checksum);
+			KMOD_ICMPSTAT_INC(icps_checksum);
 			break;
 #ifdef INET6
 		case IPPROTO_ICMPV6:
-			ICMP6STAT_INC(icp6s_checksum);
+			KMOD_ICMP6STAT_INC(icp6s_checksum);
 			break;
 #endif /* INET6 */
 		}

==== //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#12 (text+ko) ====

@@ -37,7 +37,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.23 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_if.c,v 1.24 2009/08/01 19:26:27 rwatson Exp $");
 #endif
 
 #include <sys/param.h>
@@ -54,9 +54,6 @@
 #include <sys/device.h>
 #endif
 #include <sys/time.h>
-#ifdef __FreeBSD__
-#include <sys/vimage.h>
-#endif
 
 #include <net/if.h>
 #include <net/if_types.h>

==== //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#18 (text+ko) ====

@@ -37,7 +37,7 @@
 
 #ifdef __FreeBSD__
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.46 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.47 2009/08/01 19:26:27 rwatson Exp $");
 
 #include "opt_inet.h"
 #include "opt_inet6.h"
@@ -83,7 +83,6 @@
 #include <sys/conf.h>
 #include <sys/proc.h>
 #include <sys/sysctl.h>
-#include <sys/vimage.h>
 #else
 #include <sys/timeout.h>
 #include <sys/pool.h>

==== //depot/projects/usb/src/sys/contrib/pf/net/pf_subr.c#7 (text+ko) ====

@@ -32,7 +32,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.10 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_subr.c,v 1.11 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -45,7 +45,6 @@
 #include <sys/socketvar.h>
 #include <sys/systm.h>
 #include <sys/time.h>
-#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <net/if_types.h>

==== //depot/projects/usb/src/sys/contrib/rdma/rdma_cma.c#7 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.6 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/rdma/rdma_cma.c,v 1.7 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/condvar.h>
@@ -46,7 +46,6 @@
 #include <sys/taskqueue.h>
 #include <sys/priv.h>
 #include <sys/syslog.h>
-#include <sys/vimage.h>
 
 #include <net/if.h>
 #include <netinet/in.h>

==== //depot/projects/usb/src/sys/ddb/db_sym.c#4 (text+ko) ====

@@ -29,12 +29,12 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_sym.c,v 1.38 2009/07/14 22:48:30 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_sym.c,v 1.39 2009/08/01 19:26:27 rwatson Exp $");
 
 #include <sys/param.h>
+#include <sys/pcpu.h>
 #include <sys/smp.h>
 #include <sys/systm.h>
-#include <sys/vimage.h>
 
 #include <net/vnet.h>
 

==== //depot/projects/usb/src/sys/dev/aac/aac.c#8 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.142 2009/05/20 17:29:21 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.143 2009/08/02 14:28:40 attilio Exp $");
 
 /*
  * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters.
@@ -3270,10 +3270,10 @@
 			while (co != NULL) {
 				if (co->co_found == 0) {
 					mtx_unlock(&sc->aac_io_lock);
-					mtx_lock(&Giant);
+					newbus_xlock();
 					device_delete_child(sc->aac_dev,
 							    co->co_disk);
-					mtx_unlock(&Giant);
+					newbus_xunlock();
 					mtx_lock(&sc->aac_io_lock);
 					co_next = TAILQ_NEXT(co, co_link);
 					mtx_lock(&sc->aac_container_lock);
@@ -3291,9 +3291,9 @@
 			/* Attach the newly created containers */
 			if (added) {
 				mtx_unlock(&sc->aac_io_lock);
-				mtx_lock(&Giant);
+				newbus_xlock();
 				bus_generic_attach(sc->aac_dev);
-				mtx_unlock(&Giant);
+				newbus_xunlock();
 				mtx_lock(&sc->aac_io_lock);
 			}
 

==== //depot/projects/usb/src/sys/dev/acpica/acpi.c#19 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.264 2009/06/05 18:44:36 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.265 2009/08/02 14:28:40 attilio Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -675,8 +675,6 @@
     device_t child, *devlist;
     int error, i, numdevs, pstate;
 
-    GIANT_REQUIRED;
-
     /* First give child devices a chance to suspend. */
     error = bus_generic_suspend(dev);
     if (error)
@@ -719,8 +717,6 @@
     int i, numdevs, error;
     device_t child, *devlist;
 
-    GIANT_REQUIRED;
-
     /*
      * Put all devices in D0 before resuming them.  Call _S0D on each one
      * since some systems expect this.
@@ -745,8 +741,6 @@
 acpi_shutdown(device_t dev)
 {
 
-    GIANT_REQUIRED;
-
     /* Allow children to shutdown first. */
     bus_generic_shutdown(dev);
 
@@ -2534,11 +2528,7 @@
     thread_unlock(curthread);
 #endif
 
-    /*
-     * Be sure to hold Giant across DEVICE_SUSPEND/RESUME since non-MPSAFE
-     * drivers need this.
-     */
-    mtx_lock(&Giant);
+    newbus_xlock();
 
     slp_state = ACPI_SS_NONE;
 
@@ -2611,7 +2601,7 @@
     if (slp_state >= ACPI_SS_SLEPT)
 	acpi_enable_fixed_events(sc);
 
-    mtx_unlock(&Giant);
+    newbus_xunlock();
 
 #ifdef SMP
     thread_lock(curthread);

==== //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.28 2009/06/05 18:44:36 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.29 2009/08/02 14:28:40 attilio Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -329,6 +329,7 @@
 
     dev = NULL;
     found_unit = 0;
+    newbus_slock();
     batt_dc = devclass_find("battery");
     maxunit = devclass_get_maxunit(batt_dc);
     for (i = 0; i < maxunit; i++) {
@@ -340,6 +341,7 @@
 	found_unit++;
 	dev = NULL;
     }
+    newbus_sunlock();
 
     return (dev);
 }
@@ -369,13 +371,17 @@
      */

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



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