Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Aug 2008 20:51:53 GMT
From:      Marius Strobl <marius@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 148135 for review
Message-ID:  <200808222051.m7MKpr0h031338@repoman.freebsd.org>

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

Change 148135 by marius@flak on 2008/08/22 20:51:40

	IFC @148131 in order to get a fix for the witness(4) crash.

Affected files ...

.. //depot/projects/usiii/Makefile#5 integrate
.. //depot/projects/usiii/amd64/amd64/bpf_jit_machdep.c#3 integrate
.. //depot/projects/usiii/amd64/amd64/bpf_jit_machdep.h#3 integrate
.. //depot/projects/usiii/amd64/amd64/dump_machdep.c#4 integrate
.. //depot/projects/usiii/amd64/amd64/exception.S#4 integrate
.. //depot/projects/usiii/amd64/amd64/minidump_machdep.c#5 integrate
.. //depot/projects/usiii/amd64/conf/GENERIC#12 integrate
.. //depot/projects/usiii/amd64/include/pci_cfgreg.h#3 integrate
.. //depot/projects/usiii/amd64/include/pcpu.h#3 integrate
.. //depot/projects/usiii/amd64/pci/pci_cfgreg.c#3 integrate
.. //depot/projects/usiii/arm/arm/dump_machdep.c#3 integrate
.. //depot/projects/usiii/arm/at91/at91.c#4 integrate
.. //depot/projects/usiii/arm/at91/at91_pio.c#2 integrate
.. //depot/projects/usiii/arm/at91/at91_piovar.h#2 integrate
.. //depot/projects/usiii/arm/at91/at91_pmc.c#4 integrate
.. //depot/projects/usiii/arm/include/pcpu.h#2 integrate
.. //depot/projects/usiii/boot/sparc64/loader/main.c#4 integrate
.. //depot/projects/usiii/bsm/audit_kevents.h#3 integrate
.. //depot/projects/usiii/cam/scsi/scsi_all.c#3 integrate
.. //depot/projects/usiii/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#3 integrate
.. //depot/projects/usiii/compat/freebsd32/freebsd32_proto.h#8 integrate
.. //depot/projects/usiii/compat/freebsd32/freebsd32_syscall.h#8 integrate
.. //depot/projects/usiii/compat/freebsd32/freebsd32_syscalls.c#8 integrate
.. //depot/projects/usiii/compat/freebsd32/freebsd32_sysent.c#8 integrate
.. //depot/projects/usiii/compat/freebsd32/syscalls.master#8 integrate
.. //depot/projects/usiii/compat/linprocfs/linprocfs.c#5 integrate
.. //depot/projects/usiii/compat/linux/linux_ioctl.c#4 integrate
.. //depot/projects/usiii/compat/linux/linux_misc.c#8 integrate
.. //depot/projects/usiii/compat/linux/linux_socket.c#2 integrate
.. //depot/projects/usiii/compat/linux/linux_stats.c#6 integrate
.. //depot/projects/usiii/compat/svr4/svr4_sockio.c#2 integrate
.. //depot/projects/usiii/compat/svr4/svr4_stat.c#3 integrate
.. //depot/projects/usiii/conf/NOTES#13 integrate
.. //depot/projects/usiii/conf/files#14 integrate
.. //depot/projects/usiii/conf/files.i386#8 integrate
.. //depot/projects/usiii/conf/options#13 integrate
.. //depot/projects/usiii/conf/options.i386#5 integrate
.. //depot/projects/usiii/conf/options.sparc64#3 integrate
.. //depot/projects/usiii/contrib/altq/altq/altq_subr.c#2 integrate
.. //depot/projects/usiii/contrib/ipfilter/netinet/fil.c#3 integrate
.. //depot/projects/usiii/contrib/ipfilter/netinet/ip_fil_freebsd.c#4 integrate
.. //depot/projects/usiii/contrib/pf/net/pf.c#6 integrate
.. //depot/projects/usiii/contrib/pf/net/pf_if.c#4 integrate
.. //depot/projects/usiii/contrib/pf/net/pf_ioctl.c#6 integrate
.. //depot/projects/usiii/contrib/pf/net/pf_subr.c#2 integrate
.. //depot/projects/usiii/contrib/rdma/rdma_cma.c#2 integrate
.. //depot/projects/usiii/ddb/db_output.c#3 integrate
.. //depot/projects/usiii/ddb/db_textdump.c#2 integrate
.. //depot/projects/usiii/dev/acpi_support/acpi_asus.c#4 integrate
.. //depot/projects/usiii/dev/acpica/acpi.c#8 integrate
.. //depot/projects/usiii/dev/age/if_age.c#3 integrate
.. //depot/projects/usiii/dev/ata/ata-all.c#6 integrate
.. //depot/projects/usiii/dev/ata/ata-all.h#5 integrate
.. //depot/projects/usiii/dev/ata/ata-chipset.c#9 integrate
.. //depot/projects/usiii/dev/bfe/if_bfe.c#6 integrate
.. //depot/projects/usiii/dev/bfe/if_bfereg.h#4 integrate
.. //depot/projects/usiii/dev/cxgb/ulp/tom/cxgb_cpl_io.c#7 integrate
.. //depot/projects/usiii/dev/dcons/dcons.h#2 integrate
.. //depot/projects/usiii/dev/dcons/dcons_os.c#4 integrate
.. //depot/projects/usiii/dev/firewire/firewire.c#4 integrate
.. //depot/projects/usiii/dev/mxge/if_mxge_var.h#5 integrate
.. //depot/projects/usiii/dev/nmdm/nmdm.c#3 integrate
.. //depot/projects/usiii/dev/ofw/ofw_console.c#5 integrate
.. //depot/projects/usiii/dev/pci/pci_pci.c#4 integrate
.. //depot/projects/usiii/dev/pci/pcib_private.h#3 integrate
.. //depot/projects/usiii/dev/pci/pcireg.h#3 integrate
.. //depot/projects/usiii/dev/pcn/if_pcn.c#1 branch
.. //depot/projects/usiii/dev/pcn/if_pcnreg.h#1 branch
.. //depot/projects/usiii/dev/ppbus/if_plip.c#2 integrate
.. //depot/projects/usiii/dev/ppbus/ppbconf.c#3 integrate
.. //depot/projects/usiii/dev/ppc/ppc.c#2 integrate
.. //depot/projects/usiii/dev/ppc/ppc_acpi.c#2 integrate
.. //depot/projects/usiii/dev/ppc/ppc_isa.c#2 integrate
.. //depot/projects/usiii/dev/ppc/ppcreg.h#2 integrate
.. //depot/projects/usiii/dev/puc/pucdata.c#5 integrate
.. //depot/projects/usiii/dev/snp/snp.c#5 integrate
.. //depot/projects/usiii/dev/sound/midi/sequencer.c#4 integrate
.. //depot/projects/usiii/dev/sound/pcm/sound.h#2 integrate
.. //depot/projects/usiii/dev/ste/if_ste.c#1 branch
.. //depot/projects/usiii/dev/ste/if_stereg.h#1 branch
.. //depot/projects/usiii/dev/syscons/daemon/daemon_saver.c#4 integrate
.. //depot/projects/usiii/dev/syscons/schistory.c#2 integrate
.. //depot/projects/usiii/dev/syscons/scmouse.c#2 integrate
.. //depot/projects/usiii/dev/syscons/scterm-sc.c#2 integrate
.. //depot/projects/usiii/dev/syscons/scvesactl.c#2 integrate
.. //depot/projects/usiii/dev/syscons/scvidctl.c#3 integrate
.. //depot/projects/usiii/dev/syscons/syscons.c#6 integrate
.. //depot/projects/usiii/dev/syscons/syscons.h#5 integrate
.. //depot/projects/usiii/dev/syscons/sysmouse.c#3 integrate
.. //depot/projects/usiii/dev/tl/if_tl.c#1 branch
.. //depot/projects/usiii/dev/tl/if_tlreg.h#1 branch
.. //depot/projects/usiii/dev/uart/uart_core.c#4 integrate
.. //depot/projects/usiii/dev/uart/uart_tty.c#2 integrate
.. //depot/projects/usiii/dev/usb/ehci.c#8 integrate
.. //depot/projects/usiii/dev/usb/ehcireg.h#3 integrate
.. //depot/projects/usiii/dev/usb/ehcivar.h#3 integrate
.. //depot/projects/usiii/dev/usb/hid.c#2 integrate
.. //depot/projects/usiii/dev/usb/if_rum.c#12 integrate
.. //depot/projects/usiii/dev/usb/ubsa.c#5 integrate
.. //depot/projects/usiii/dev/usb/ucom.c#4 integrate
.. //depot/projects/usiii/dev/usb/ucomvar.h#3 integrate
.. //depot/projects/usiii/dev/usb/ufoma.c#2 integrate
.. //depot/projects/usiii/dev/usb/uftdi.c#3 integrate
.. //depot/projects/usiii/dev/usb/umass.c#6 integrate
.. //depot/projects/usiii/dev/usb/umodem.c#2 integrate
.. //depot/projects/usiii/dev/usb/ums.c#5 integrate
.. //depot/projects/usiii/dev/usb/usb.h#2 integrate
.. //depot/projects/usiii/dev/usb/usbdevs#13 integrate
.. //depot/projects/usiii/dev/wb/if_wb.c#1 branch
.. //depot/projects/usiii/dev/wb/if_wbreg.h#1 branch
.. //depot/projects/usiii/dev/xen/blkfront/blkfront.c#2 integrate
.. //depot/projects/usiii/dev/xen/console/console.c#2 integrate
.. //depot/projects/usiii/dev/xen/console/xencons_ring.c#2 integrate
.. //depot/projects/usiii/dev/xen/netfront/netfront.c#2 integrate
.. //depot/projects/usiii/fs/cd9660/cd9660_rrip.c#3 integrate
.. //depot/projects/usiii/fs/devfs/devfs_vnops.c#8 integrate
.. //depot/projects/usiii/geom/vinum/geom_vinum_drive.c#5 integrate
.. //depot/projects/usiii/i386/conf/DEFAULTS#4 integrate
.. //depot/projects/usiii/i386/conf/GENERIC#12 integrate
.. //depot/projects/usiii/i386/conf/XBOX#4 integrate
.. //depot/projects/usiii/i386/conf/XEN#1 branch
.. //depot/projects/usiii/i386/i386/bpf_jit_machdep.c#3 integrate
.. //depot/projects/usiii/i386/i386/bpf_jit_machdep.h#3 integrate
.. //depot/projects/usiii/i386/i386/busdma_machdep.c#6 integrate
.. //depot/projects/usiii/i386/i386/dump_machdep.c#4 integrate
.. //depot/projects/usiii/i386/i386/genassym.c#5 integrate
.. //depot/projects/usiii/i386/i386/machdep.c#7 integrate
.. //depot/projects/usiii/i386/i386/minidump_machdep.c#4 integrate
.. //depot/projects/usiii/i386/i386/support.s#3 integrate
.. //depot/projects/usiii/i386/i386/swtch.s#2 integrate
.. //depot/projects/usiii/i386/i386/sys_machdep.c#3 integrate
.. //depot/projects/usiii/i386/i386/trap.c#7 integrate
.. //depot/projects/usiii/i386/i386/vm_machdep.c#5 integrate
.. //depot/projects/usiii/i386/ibcs2/ibcs2_ioctl.c#2 integrate
.. //depot/projects/usiii/i386/ibcs2/ibcs2_socksys.c#3 integrate
.. //depot/projects/usiii/i386/include/asmacros.h#2 integrate
.. //depot/projects/usiii/i386/include/cpufunc.h#4 integrate
.. //depot/projects/usiii/i386/include/pci_cfgreg.h#2 integrate
.. //depot/projects/usiii/i386/include/pcpu.h#3 integrate
.. //depot/projects/usiii/i386/include/pmap.h#6 integrate
.. //depot/projects/usiii/i386/include/segments.h#2 integrate
.. //depot/projects/usiii/i386/include/trap.h#2 integrate
.. //depot/projects/usiii/i386/include/vmparam.h#5 integrate
.. //depot/projects/usiii/i386/include/xen/xen-os.h#2 integrate
.. //depot/projects/usiii/i386/include/xen/xenfunc.h#2 integrate
.. //depot/projects/usiii/i386/include/xen/xenpmap.h#2 integrate
.. //depot/projects/usiii/i386/include/xen/xenvar.h#2 integrate
.. //depot/projects/usiii/i386/isa/npx.c#2 integrate
.. //depot/projects/usiii/i386/pci/pci_cfgreg.c#3 integrate
.. //depot/projects/usiii/i386/pci/pci_pir.c#3 integrate
.. //depot/projects/usiii/i386/xen/clock.c#2 integrate
.. //depot/projects/usiii/i386/xen/exception.s#2 integrate
.. //depot/projects/usiii/i386/xen/locore.s#2 integrate
.. //depot/projects/usiii/i386/xen/pmap.c#2 integrate
.. //depot/projects/usiii/i386/xen/xen_machdep.c#2 integrate
.. //depot/projects/usiii/ia64/conf/GENERIC#8 integrate
.. //depot/projects/usiii/ia64/conf/SKI#3 integrate
.. //depot/projects/usiii/ia64/ia64/dump_machdep.c#3 integrate
.. //depot/projects/usiii/ia64/ia64/ssc.c#2 integrate
.. //depot/projects/usiii/ia64/include/pcpu.h#2 integrate
.. //depot/projects/usiii/kern/init_main.c#7 integrate
.. //depot/projects/usiii/kern/init_sysent.c#8 integrate
.. //depot/projects/usiii/kern/kern_acct.c#5 integrate
.. //depot/projects/usiii/kern/kern_conf.c#6 integrate
.. //depot/projects/usiii/kern/kern_descrip.c#11 integrate
.. //depot/projects/usiii/kern/kern_exit.c#7 integrate
.. //depot/projects/usiii/kern/kern_jail.c#6 integrate
.. //depot/projects/usiii/kern/kern_lock.c#8 integrate
.. //depot/projects/usiii/kern/kern_mib.c#6 integrate
.. //depot/projects/usiii/kern/kern_poll.c#4 integrate
.. //depot/projects/usiii/kern/kern_proc.c#9 integrate
.. //depot/projects/usiii/kern/kern_resource.c#5 integrate
.. //depot/projects/usiii/kern/kern_synch.c#8 integrate
.. //depot/projects/usiii/kern/kern_thread.c#9 integrate
.. //depot/projects/usiii/kern/kern_uuid.c#2 integrate
.. //depot/projects/usiii/kern/kern_xxx.c#3 integrate
.. //depot/projects/usiii/kern/subr_prf.c#2 integrate
.. //depot/projects/usiii/kern/syscalls.c#8 integrate
.. //depot/projects/usiii/kern/syscalls.master#9 integrate
.. //depot/projects/usiii/kern/systrace_args.c#8 integrate
.. //depot/projects/usiii/kern/tty.c#6 integrate
.. //depot/projects/usiii/kern/tty_compat.c#2 integrate
.. //depot/projects/usiii/kern/tty_conf.c#2 delete
.. //depot/projects/usiii/kern/tty_cons.c#5 integrate
.. //depot/projects/usiii/kern/tty_info.c#2 integrate
.. //depot/projects/usiii/kern/tty_inq.c#1 branch
.. //depot/projects/usiii/kern/tty_outq.c#1 branch
.. //depot/projects/usiii/kern/tty_pts.c#4 integrate
.. //depot/projects/usiii/kern/tty_pty.c#6 integrate
.. //depot/projects/usiii/kern/tty_ttydisc.c#1 branch
.. //depot/projects/usiii/kern/vfs_bio.c#9 integrate
.. //depot/projects/usiii/kern/vfs_cache.c#8 integrate
.. //depot/projects/usiii/libkern/strcspn.c#1 branch
.. //depot/projects/usiii/mips/include/pcpu.h#2 integrate
.. //depot/projects/usiii/modules/nmdm/Makefile#2 integrate
.. //depot/projects/usiii/modules/pcn/Makefile#2 integrate
.. //depot/projects/usiii/modules/rc/Makefile#2 integrate
.. //depot/projects/usiii/modules/ste/Makefile#2 integrate
.. //depot/projects/usiii/modules/tl/Makefile#2 integrate
.. //depot/projects/usiii/modules/wb/Makefile#2 integrate
.. //depot/projects/usiii/net/bpf_jitter.c#2 integrate
.. //depot/projects/usiii/net/bpf_jitter.h#2 integrate
.. //depot/projects/usiii/net/bridgestp.c#3 integrate
.. //depot/projects/usiii/net/if.c#8 integrate
.. //depot/projects/usiii/net/if_bridge.c#6 integrate
.. //depot/projects/usiii/net/if_ef.c#3 integrate
.. //depot/projects/usiii/net/if_ethersubr.c#8 integrate
.. //depot/projects/usiii/net/if_faith.c#2 integrate
.. //depot/projects/usiii/net/if_gif.c#5 integrate
.. //depot/projects/usiii/net/if_loop.c#6 integrate
.. //depot/projects/usiii/net/if_mib.c#2 integrate
.. //depot/projects/usiii/net/if_spppsubr.c#2 integrate
.. //depot/projects/usiii/net/if_stf.c#5 integrate
.. //depot/projects/usiii/net/if_var.h#6 integrate
.. //depot/projects/usiii/net/if_vlan.c#4 integrate
.. //depot/projects/usiii/net/raw_cb.c#4 integrate
.. //depot/projects/usiii/net/raw_usrreq.c#3 integrate
.. //depot/projects/usiii/net/route.c#8 integrate
.. //depot/projects/usiii/net/rtsock.c#6 integrate
.. //depot/projects/usiii/netgraph/atm/ng_atm.c#2 integrate
.. //depot/projects/usiii/netgraph/ng_base.c#10 integrate
.. //depot/projects/usiii/netgraph/ng_bridge.c#2 integrate
.. //depot/projects/usiii/netgraph/ng_eiface.c#2 integrate
.. //depot/projects/usiii/netgraph/ng_ether.c#2 integrate
.. //depot/projects/usiii/netgraph/ng_gif.c#2 integrate
.. //depot/projects/usiii/netgraph/ng_iface.c#4 integrate
.. //depot/projects/usiii/netgraph/ng_source.c#2 integrate
.. //depot/projects/usiii/netinet/if_ether.c#6 integrate
.. //depot/projects/usiii/netinet/igmp.c#3 integrate
.. //depot/projects/usiii/netinet/in.c#5 integrate
.. //depot/projects/usiii/netinet/in_gif.c#5 integrate
.. //depot/projects/usiii/netinet/in_mcast.c#4 integrate
.. //depot/projects/usiii/netinet/in_pcb.c#9 integrate
.. //depot/projects/usiii/netinet/in_rmx.c#5 integrate
.. //depot/projects/usiii/netinet/in_var.h#3 integrate
.. //depot/projects/usiii/netinet/ip6.h#2 integrate
.. //depot/projects/usiii/netinet/ip_carp.c#5 integrate
.. //depot/projects/usiii/netinet/ip_divert.c#5 integrate
.. //depot/projects/usiii/netinet/ip_fastfwd.c#4 integrate
.. //depot/projects/usiii/netinet/ip_fw2.c#11 integrate
.. //depot/projects/usiii/netinet/ip_fw_nat.c#4 integrate
.. //depot/projects/usiii/netinet/ip_fw_pfil.c#4 integrate
.. //depot/projects/usiii/netinet/ip_icmp.c#5 integrate
.. //depot/projects/usiii/netinet/ip_input.c#6 integrate
.. //depot/projects/usiii/netinet/ip_ipsec.c#4 integrate
.. //depot/projects/usiii/netinet/ip_mroute.c#4 integrate
.. //depot/projects/usiii/netinet/ip_options.c#6 integrate
.. //depot/projects/usiii/netinet/ip_output.c#7 integrate
.. //depot/projects/usiii/netinet/ip_var.h#3 integrate
.. //depot/projects/usiii/netinet/raw_ip.c#6 integrate
.. //depot/projects/usiii/netinet/sctp_os_bsd.h#5 integrate
.. //depot/projects/usiii/netinet/sctp_pcb.c#9 integrate
.. //depot/projects/usiii/netinet/tcp_hostcache.c#3 integrate
.. //depot/projects/usiii/netinet/tcp_input.c#9 integrate
.. //depot/projects/usiii/netinet/tcp_offload.c#3 integrate
.. //depot/projects/usiii/netinet/tcp_output.c#7 integrate
.. //depot/projects/usiii/netinet/tcp_reass.c#4 integrate
.. //depot/projects/usiii/netinet/tcp_sack.c#3 integrate
.. //depot/projects/usiii/netinet/tcp_subr.c#9 integrate
.. //depot/projects/usiii/netinet/tcp_syncache.c#7 integrate
.. //depot/projects/usiii/netinet/tcp_timer.c#7 integrate
.. //depot/projects/usiii/netinet/tcp_timewait.c#4 integrate
.. //depot/projects/usiii/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/usiii/netinet/udp_usrreq.c#7 integrate
.. //depot/projects/usiii/netinet6/dest6.c#3 integrate
.. //depot/projects/usiii/netinet6/frag6.c#4 integrate
.. //depot/projects/usiii/netinet6/icmp6.c#5 integrate
.. //depot/projects/usiii/netinet6/in6.c#6 integrate
.. //depot/projects/usiii/netinet6/in6_gif.c#3 integrate
.. //depot/projects/usiii/netinet6/in6_ifattach.c#5 integrate
.. //depot/projects/usiii/netinet6/in6_pcb.c#6 integrate
.. //depot/projects/usiii/netinet6/in6_proto.c#4 integrate
.. //depot/projects/usiii/netinet6/in6_rmx.c#5 integrate
.. //depot/projects/usiii/netinet6/in6_src.c#6 integrate
.. //depot/projects/usiii/netinet6/ip6_forward.c#4 integrate
.. //depot/projects/usiii/netinet6/ip6_input.c#5 integrate
.. //depot/projects/usiii/netinet6/ip6_ipsec.c#5 integrate
.. //depot/projects/usiii/netinet6/ip6_mroute.c#3 integrate
.. //depot/projects/usiii/netinet6/ip6_output.c#6 integrate
.. //depot/projects/usiii/netinet6/ip6_var.h#5 integrate
.. //depot/projects/usiii/netinet6/mld6.c#3 integrate
.. //depot/projects/usiii/netinet6/nd6.c#4 integrate
.. //depot/projects/usiii/netinet6/nd6.h#3 integrate
.. //depot/projects/usiii/netinet6/nd6_nbr.c#4 integrate
.. //depot/projects/usiii/netinet6/nd6_rtr.c#4 integrate
.. //depot/projects/usiii/netinet6/raw_ip6.c#5 integrate
.. //depot/projects/usiii/netinet6/route6.c#3 integrate
.. //depot/projects/usiii/netinet6/scope6.c#3 integrate
.. //depot/projects/usiii/netinet6/udp6_usrreq.c#7 integrate
.. //depot/projects/usiii/netipsec/ipsec.c#7 integrate
.. //depot/projects/usiii/netipsec/ipsec.h#5 integrate
.. //depot/projects/usiii/netipsec/ipsec_input.c#6 integrate
.. //depot/projects/usiii/netipsec/ipsec_mbuf.c#2 integrate
.. //depot/projects/usiii/netipsec/ipsec_output.c#6 integrate
.. //depot/projects/usiii/netipsec/key.c#5 integrate
.. //depot/projects/usiii/netipsec/key_debug.h#2 integrate
.. //depot/projects/usiii/netipsec/keysock.c#4 integrate
.. //depot/projects/usiii/netipsec/xform_ah.c#3 integrate
.. //depot/projects/usiii/netipsec/xform_esp.c#3 integrate
.. //depot/projects/usiii/netipsec/xform_ipcomp.c#3 integrate
.. //depot/projects/usiii/netipsec/xform_ipip.c#4 integrate
.. //depot/projects/usiii/nfsclient/bootp_subr.c#4 integrate
.. //depot/projects/usiii/nfsclient/nfs_diskless.c#4 integrate
.. //depot/projects/usiii/nfsclient/nfs_vfsops.c#10 integrate
.. //depot/projects/usiii/nfsclient/nfs_vnops.c#7 integrate
.. //depot/projects/usiii/pc98/cbus/scterm-sck.c#2 integrate
.. //depot/projects/usiii/pc98/conf/GENERIC#11 integrate
.. //depot/projects/usiii/pc98/conf/NOTES#4 integrate
.. //depot/projects/usiii/pci/if_pcn.c#2 delete
.. //depot/projects/usiii/pci/if_pcnreg.h#2 delete
.. //depot/projects/usiii/pci/if_ste.c#3 delete
.. //depot/projects/usiii/pci/if_stereg.h#2 delete
.. //depot/projects/usiii/pci/if_tl.c#2 delete
.. //depot/projects/usiii/pci/if_tlreg.h#2 delete
.. //depot/projects/usiii/pci/if_wb.c#4 delete
.. //depot/projects/usiii/pci/if_wbreg.h#2 delete
.. //depot/projects/usiii/powerpc/conf/GENERIC#9 integrate
.. //depot/projects/usiii/powerpc/include/pcpu.h#4 integrate
.. //depot/projects/usiii/rpc/authunix_prot.c#3 integrate
.. //depot/projects/usiii/rpc/rpcclnt.c#4 integrate
.. //depot/projects/usiii/sparc64/conf/GENERIC#11 integrate
.. //depot/projects/usiii/sparc64/include/pcpu.h#4 integrate
.. //depot/projects/usiii/sparc64/pci/ofw_pci.h#4 integrate
.. //depot/projects/usiii/sparc64/pci/ofw_pcibus.c#9 integrate
.. //depot/projects/usiii/sparc64/pci/psycho.c#12 integrate
.. //depot/projects/usiii/sparc64/sparc64/dump_machdep.c#3 integrate
.. //depot/projects/usiii/sparc64/sparc64/exception.S#6 integrate
.. //depot/projects/usiii/sparc64/sparc64/locore.S#4 integrate
.. //depot/projects/usiii/sparc64/sparc64/mp_machdep.c#7 integrate
.. //depot/projects/usiii/sparc64/sparc64/stack_machdep.c#2 integrate
.. //depot/projects/usiii/sun4v/conf/GENERIC#7 integrate
.. //depot/projects/usiii/sun4v/include/pcpu.h#3 integrate
.. //depot/projects/usiii/sun4v/sun4v/dump_machdep.c#3 integrate
.. //depot/projects/usiii/sun4v/sun4v/hvcons.c#4 integrate
.. //depot/projects/usiii/sys/conf.h#7 integrate
.. //depot/projects/usiii/sys/copyright.h#3 integrate
.. //depot/projects/usiii/sys/file.h#5 integrate
.. //depot/projects/usiii/sys/kernel.h#7 integrate
.. //depot/projects/usiii/sys/libkern.h#3 integrate
.. //depot/projects/usiii/sys/linedisc.h#2 delete
.. //depot/projects/usiii/sys/param.h#12 integrate
.. //depot/projects/usiii/sys/pcpu.h#5 integrate
.. //depot/projects/usiii/sys/proc.h#12 integrate
.. //depot/projects/usiii/sys/resource.h#3 integrate
.. //depot/projects/usiii/sys/resourcevar.h#3 integrate
.. //depot/projects/usiii/sys/syscall.h#8 integrate
.. //depot/projects/usiii/sys/syscall.mk#8 integrate
.. //depot/projects/usiii/sys/sysctl.h#6 integrate
.. //depot/projects/usiii/sys/sysproto.h#8 integrate
.. //depot/projects/usiii/sys/termios.h#4 integrate
.. //depot/projects/usiii/sys/tty.h#4 integrate
.. //depot/projects/usiii/sys/ttycom.h#4 integrate
.. //depot/projects/usiii/sys/ttydefaults.h#3 integrate
.. //depot/projects/usiii/sys/ttydevsw.h#1 branch
.. //depot/projects/usiii/sys/ttydisc.h#1 branch
.. //depot/projects/usiii/sys/ttyqueue.h#1 branch
.. //depot/projects/usiii/sys/types.h#4 integrate
.. //depot/projects/usiii/sys/user.h#8 integrate
.. //depot/projects/usiii/sys/vimage.h#1 branch
.. //depot/projects/usiii/vm/vm_meter.c#4 integrate
.. //depot/projects/usiii/vm/vm_page.c#9 integrate
.. //depot/projects/usiii/xen/evtchn/evtchn.c#2 integrate
.. //depot/projects/usiii/xen/evtchn/evtchn_dev.c#2 integrate
.. //depot/projects/usiii/xen/features.c#1 branch
.. //depot/projects/usiii/xen/gnttab.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_client.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_comms.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_comms.h#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_dev.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_probe.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_probe_backend.c#2 integrate
.. //depot/projects/usiii/xen/xenbus/xenbus_xs.c#2 integrate

Differences ...

==== //depot/projects/usiii/Makefile#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.52 2008/08/08 18:00:33 philip Exp $
+# $FreeBSD: src/sys/Makefile,v 1.53 2008/08/15 14:11:30 philip Exp $
 
 .include <bsd.own.mk>
 
@@ -46,6 +46,10 @@
 
 # You need the textproc/glimpse ports for this.
 glimpse:
+.if !exists(${.CURDIR}/.glimpse_exclude)
+	echo .svn > ${.CURDIR}/.glimpse_exclude
+	echo /compile/ >> ${.CURDIR}/.glimpse_exclude
+.endif
 	cd ${.CURDIR}; glimpseindex -H . -B -f -o .
 
 glimpse-clean:

==== //depot/projects/usiii/amd64/amd64/bpf_jit_machdep.c#3 (text+ko) ====

@@ -30,18 +30,22 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.c,v 1.10 2008/08/13 19:52:00 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.c,v 1.12 2008/08/18 19:14:26 jkim Exp $");
 
+#ifdef _KERNEL
 #include "opt_bpf.h"
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
-#include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/malloc.h>
+#include <net/if.h>
+#else
+#include <stdlib.h>
+#endif
+
+#include <sys/types.h>
 
-#include <net/if.h>
 #include <net/bpf.h>
 #include <net/bpf_jitter.h>
 
@@ -53,7 +57,7 @@
  * emit routine to update the jump table
  */
 static void
-emit_length(bpf_bin_stream *stream, u_int value, u_int len)
+emit_length(bpf_bin_stream *stream, __unused u_int value, u_int len)
 {
 
 	(stream->refs)[stream->bpf_pc] += len;
@@ -108,8 +112,12 @@
 		return (NULL);
 
 	/* Allocate the reference table for the jumps */
+#ifdef _KERNEL
 	stream.refs = (u_int *)malloc((nins + 1) * sizeof(u_int),
 	    M_BPFJIT, M_NOWAIT);
+#else
+	stream.refs = (u_int *)malloc((nins + 1) * sizeof(u_int));
+#endif
 	if (stream.refs == NULL)
 		return (NULL);
 
@@ -141,7 +149,11 @@
 
 			switch (ins->code) {
 			default:
+#ifdef _KERNEL
 				return (NULL);
+#else
+				abort();
+#endif
 
 			case BPF_RET|BPF_K:
 				MOVid(ins->k, EAX);
@@ -155,11 +167,13 @@
 				break;
 
 			case BPF_LD|BPF_W|BPF_ABS:
-				MOVid(ins->k, ECX);
-				MOVrd(ECX, ESI);
-				ADDib(sizeof(int32_t), ECX);
-				CMPrd(EDI, ECX);
-				JBEb(6);
+				MOVid(ins->k, ESI);
+				CMPrd(EDI, ESI);
+				JAb(12);
+				MOVrd(EDI, ECX);
+				SUBrd(ESI, ECX);
+				CMPid(sizeof(int32_t), ECX);
+				JAEb(6);
 				ZEROrd(EAX);
 				MOVrq3(R8, RBX);
 				RET();
@@ -169,11 +183,13 @@
 
 			case BPF_LD|BPF_H|BPF_ABS:
 				ZEROrd(EAX);
-				MOVid(ins->k, ECX);
-				MOVrd(ECX, ESI);
-				ADDib(sizeof(int16_t), ECX);
-				CMPrd(EDI, ECX);
-				JBEb(4);
+				MOVid(ins->k, ESI);
+				CMPrd(EDI, ESI);
+				JAb(12);
+				MOVrd(EDI, ECX);
+				SUBrd(ESI, ECX);
+				CMPid(sizeof(int16_t), ECX);
+				JAEb(4);
 				MOVrq3(R8, RBX);
 				RET();
 				MOVobw(RBX, RSI, AX);
@@ -182,12 +198,12 @@
 
 			case BPF_LD|BPF_B|BPF_ABS:
 				ZEROrd(EAX);
-				MOVid(ins->k, ECX);
-				CMPrd(EDI, ECX);
-				JBEb(4);
+				MOVid(ins->k, ESI);
+				CMPrd(EDI, ESI);
+				JBb(4);
 				MOVrq3(R8, RBX);
 				RET();
-				MOVobb(RBX, RCX, AL);
+				MOVobb(RBX, RSI, AL);
 				break;
 
 			case BPF_LD|BPF_W|BPF_LEN:
@@ -199,12 +215,18 @@
 				break;
 
 			case BPF_LD|BPF_W|BPF_IND:
-				MOVid(ins->k, ECX);
-				ADDrd(EDX, ECX);
-				MOVrd(ECX, ESI);
-				ADDib(sizeof(int32_t), ECX);
-				CMPrd(EDI, ECX);
-				JBEb(6);
+				CMPrd(EDI, EDX);
+				JAb(27);
+				MOVid(ins->k, ESI);
+				MOVrd(EDI, ECX);
+				SUBrd(EDX, ECX);
+				CMPrd(ESI, ECX);
+				JBb(14);
+				ADDrd(EDX, ESI);
+				MOVrd(EDI, ECX);
+				SUBrd(ESI, ECX);
+				CMPid(sizeof(int32_t), ECX);
+				JAEb(6);
 				ZEROrd(EAX);
 				MOVrq3(R8, RBX);
 				RET();
@@ -214,12 +236,18 @@
 
 			case BPF_LD|BPF_H|BPF_IND:
 				ZEROrd(EAX);
-				MOVid(ins->k, ECX);
-				ADDrd(EDX, ECX);
-				MOVrd(ECX, ESI);
-				ADDib(sizeof(int16_t), ECX);
-				CMPrd(EDI, ECX);
-				JBEb(4);
+				CMPrd(EDI, EDX);
+				JAb(27);
+				MOVid(ins->k, ESI);
+				MOVrd(EDI, ECX);
+				SUBrd(EDX, ECX);
+				CMPrd(ESI, ECX);
+				JBb(14);
+				ADDrd(EDX, ESI);
+				MOVrd(EDI, ECX);
+				SUBrd(ESI, ECX);
+				CMPid(sizeof(int16_t), ECX);
+				JAEb(4);
 				MOVrq3(R8, RBX);
 				RET();
 				MOVobw(RBX, RSI, AX);
@@ -228,24 +256,28 @@
 
 			case BPF_LD|BPF_B|BPF_IND:
 				ZEROrd(EAX);
-				MOVid(ins->k, ECX);
-				ADDrd(EDX, ECX);
-				CMPrd(EDI, ECX);
-				JBEb(4);
+				CMPrd(EDI, EDX);
+				JAEb(13);
+				MOVid(ins->k, ESI);
+				MOVrd(EDI, ECX);
+				SUBrd(EDX, ECX);
+				CMPrd(ESI, ECX);
+				JAb(4);
 				MOVrq3(R8, RBX);
 				RET();
-				MOVobb(RBX, RCX, AL);
+				ADDrd(EDX, ESI);
+				MOVobb(RBX, RSI, AL);
 				break;
 
 			case BPF_LDX|BPF_MSH|BPF_B:
-				MOVid(ins->k, ECX);
-				CMPrd(EDI, ECX);
-				JBEb(6);
+				MOVid(ins->k, ESI);
+				CMPrd(EDI, ESI);
+				JBb(6);
 				ZEROrd(EAX);
 				MOVrq3(R8, RBX);
 				RET();
 				ZEROrd(EDX);
-				MOVobb(RBX, RCX, DL);
+				MOVobb(RBX, RSI, DL);
 				ANDib(0x0f, DL);
 				SHLib(2, EDX);
 				break;
@@ -450,11 +482,19 @@
 		if (pass == 2)
 			break;
 
+#ifdef _KERNEL
 		stream.ibuf = (char *)malloc(stream.cur_ip, M_BPFJIT, M_NOWAIT);
 		if (stream.ibuf == NULL) {
 			free(stream.refs, M_BPFJIT);
 			return (NULL);
 		}
+#else
+		stream.ibuf = (char *)malloc(stream.cur_ip);
+		if (stream.ibuf == NULL) {
+			free(stream.refs);
+			return (NULL);
+		}
+#endif
 
 		/*
 		 * modify the reference table to contain the offsets and
@@ -475,7 +515,11 @@
 	 * the reference table is needed only during compilation,
 	 * now we can free it
 	 */
+#ifdef _KERNEL
 	free(stream.refs, M_BPFJIT);
+#else
+	free(stream.refs);
+#endif
 
 	return ((bpf_filter_func)stream.ibuf);
 }

==== //depot/projects/usiii/amd64/amd64/bpf_jit_machdep.h#3 (text+ko) ====

@@ -28,7 +28,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.h,v 1.8 2008/08/13 19:25:09 jkim Exp $
+ * $FreeBSD: src/sys/amd64/amd64/bpf_jit_machdep.h,v 1.9 2008/08/18 19:14:26 jkim Exp $
  */
 
 #ifndef _BPF_JIT_MACHDEP_H_
@@ -381,15 +381,27 @@
 	}								\
 } while (0)
 
+/* jb off8 */
+#define JBb(off8) do {							\
+	emitm(&stream, 0x72, 1);					\
+	emitm(&stream, off8, 1);					\
+} while (0)
+
+/* jae off8 */
+#define JAEb(off8) do {							\
+	emitm(&stream, 0x73, 1);					\
+	emitm(&stream, off8, 1);					\
+} while (0)
+
 /* jne off8 */
 #define JNEb(off8) do {							\
 	emitm(&stream, 0x75, 1);					\
 	emitm(&stream, off8, 1);					\
 } while (0)
 
-/* jbe off8 */
-#define JBEb(off8) do {							\
-	emitm(&stream, 0x76, 1);					\
+/* ja off8 */
+#define JAb(off8) do {							\
+	emitm(&stream, 0x77, 1);					\
 	emitm(&stream, off8, 1);					\
 } while (0)
 

==== //depot/projects/usiii/amd64/amd64/dump_machdep.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.14 2008/02/15 06:26:25 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.15 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -34,6 +34,7 @@
 #include <sys/sysctl.h>
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
+#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/elf.h>
@@ -118,7 +119,7 @@
 	kdh->dumplength = htod64(dumplen);
 	kdh->dumptime = htod64(time_second);
 	kdh->blocksize = htod32(blksz);
-	strncpy(kdh->hostname, hostname, sizeof(kdh->hostname));
+	strncpy(kdh->hostname, G_hostname, sizeof(kdh->hostname));
 	strncpy(kdh->versionstring, version, sizeof(kdh->versionstring));
 	if (panicstr != NULL)
 		strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring));

==== //depot/projects/usiii/amd64/amd64/exception.S#4 (text+ko) ====

@@ -31,7 +31,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.132 2008/05/24 06:32:26 jb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.133 2008/08/18 08:47:27 kib Exp $
  */
 
 #include "opt_atpic.h"
@@ -636,13 +636,10 @@
 	.globl	doreti_iret_fault
 doreti_iret_fault:
 	subq	$TF_RIP,%rsp		/* space including tf_err, tf_trapno */
-	testb	$SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
-	jz	1f			/* already running with kernel GS.base */
-	swapgs
-1:	testl	$PSL_I,TF_RFLAGS(%rsp)
-	jz	2f
+	testl	$PSL_I,TF_RFLAGS(%rsp)
+	jz	1f
 	sti
-2:	movq	%rdi,TF_RDI(%rsp)
+1:	movq	%rdi,TF_RDI(%rsp)
 	movq	%rsi,TF_RSI(%rsp)
 	movq	%rdx,TF_RDX(%rsp)
 	movq	%rcx,TF_RCX(%rsp)

==== //depot/projects/usiii/amd64/amd64/minidump_machdep.c#5 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.6 2008/07/08 04:00:22 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.7 2008/08/17 23:27:27 bz Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -34,6 +34,7 @@
 #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/atomic.h>
@@ -94,7 +95,7 @@
 	kdh->dumplength = htod64(dumplen);
 	kdh->dumptime = htod64(time_second);
 	kdh->blocksize = htod32(blksz);
-	strncpy(kdh->hostname, hostname, sizeof(kdh->hostname));
+	strncpy(kdh->hostname, G_hostname, sizeof(kdh->hostname));
 	strncpy(kdh->versionstring, version, sizeof(kdh->versionstring));
 	if (panicstr != NULL)
 		strncpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring));

==== //depot/projects/usiii/amd64/conf/GENERIC#12 (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.506 2008/08/03 10:32:17 ed Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.507 2008/08/20 08:31:58 ed Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -257,7 +257,7 @@
 device		random		# Entropy device
 device		ether		# Ethernet support
 device		tun		# Packet tunnel.
-device		pty		# Pseudo-ttys (telnet etc)
+device		pty		# BSD-style compatibility pseudo ttys
 device		md		# Memory "disks"
 device		gif		# IPv6 and IPv4 tunneling
 device		faith		# IPv6-to-IPv4 relaying (translation)

==== //depot/projects/usiii/amd64/include/pci_cfgreg.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/pci_cfgreg.h,v 1.14 2007/11/28 22:20:07 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/pci_cfgreg.h,v 1.15 2008/08/22 02:14:23 jhb Exp $
  *
  */
 
@@ -37,6 +37,7 @@
 #define CONF1_ENABLE_MSK1  0x80000001ul
 #define CONF1_ENABLE_RES1  0x80000000ul
 
+int		pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t maxbus);
 int		pci_cfgregopen(void);
 u_int32_t	pci_cfgregread(int bus, int slot, int func, int reg, int bytes);
 void		pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes);

==== //depot/projects/usiii/amd64/include/pcpu.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/pcpu.h,v 1.49 2008/04/25 05:18:48 jeff Exp $
+ * $FreeBSD: src/sys/amd64/include/pcpu.h,v 1.50 2008/08/19 19:53:52 jhb Exp $
  */
 
 #ifndef _MACHINE_PCPU_H_
@@ -33,8 +33,6 @@
 #error "sys/cdefs.h is a prerequisite for this file"
 #endif
 
-#ifdef _KERNEL
-
 /*
  * The SMP parts are setup in pmap.c and locore.s for the BSP, and
  * mp_machdep.c sets up the data for the AP's to "see" when they awake.
@@ -52,6 +50,8 @@
 	u_int	pc_apic_id;						\
 	u_int   pc_acpi_id		/* ACPI CPU id */
 
+#ifdef _KERNEL
+
 #ifdef lint
 
 extern struct pcpu *pcpup;

==== //depot/projects/usiii/amd64/pci/pci_cfgreg.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.110 2007/11/28 22:20:08 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.111 2008/08/22 02:14:23 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -36,11 +36,26 @@
 #include <sys/mutex.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcireg.h>
+#include <vm/vm.h>
+#include <vm/pmap.h>
 #include <machine/pci_cfgreg.h>
 
+enum {
+	CFGMECH_NONE = 0,
+	CFGMECH_1,
+	CFGMECH_PCIE,
+};
+
+static int	pciereg_cfgread(int bus, unsigned slot, unsigned func,
+		    unsigned reg, unsigned bytes);
+static void	pciereg_cfgwrite(int bus, unsigned slot, unsigned func,
+		    unsigned reg, int data, unsigned bytes);
 static int	pcireg_cfgread(int bus, int slot, int func, int reg, int bytes);
 static void	pcireg_cfgwrite(int bus, int slot, int func, int reg, int data, int bytes);
 
+static int cfgmech;
+static vm_offset_t pcie_base;
+static int pcie_minbus, pcie_maxbus;
 static struct mtx pcicfg_mtx;
 
 /* 
@@ -49,12 +64,42 @@
 int
 pci_cfgregopen(void)
 {
-	static int		opened = 0;
+	uint64_t pciebar;
+	uint16_t did, vid;
 
-	if (opened)
+	if (cfgmech != CFGMECH_NONE)
 		return (1);
 	mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
-	opened = 1;
+	cfgmech = CFGMECH_1;
+
+	/*
+	 * Grope around in the PCI config space to see if this is a
+	 * chipset that is capable of doing memory-mapped config cycles.
+	 * This also implies that it can do PCIe extended config cycles.
+	 */
+
+	/* Check for supported chipsets */
+	vid = pci_cfgregread(0, 0, 0, PCIR_VENDOR, 2);
+	did = pci_cfgregread(0, 0, 0, PCIR_DEVICE, 2);
+	switch (vid) {
+	case 0x8086:
+		switch (did) {
+		case 0x3590:
+		case 0x3592:
+			/* Intel 7520 or 7320 */
+			pciebar = pci_cfgregread(0, 0, 0, 0xce, 2) << 16;
+			pcie_cfgregopen(pciebar, 0, 255);
+			break;
+		case 0x2580:
+		case 0x2584:
+		case 0x2590:
+			/* Intel 915, 925, or 915GM */
+			pciebar = pci_cfgregread(0, 0, 0, 0x48, 4);
+			pcie_cfgregopen(pciebar, 0, 255);
+			break;
+		}
+	}
+
 	return (1);
 }
 
@@ -130,6 +175,11 @@
 	int data = -1;
 	int port;
 
+	if (cfgmech == CFGMECH_PCIE) {
+		data = pciereg_cfgread(bus, slot, func, reg, bytes);
+		return (data);
+	}
+
 	mtx_lock_spin(&pcicfg_mtx);
 	port = pci_cfgenable(bus, slot, func, reg, bytes);
 	if (port != 0) {
@@ -155,6 +205,11 @@
 {
 	int port;
 
+	if (cfgmech == CFGMECH_PCIE) {
+		pciereg_cfgwrite(bus, slot, func, reg, data, bytes);
+		return;
+	}
+
 	mtx_lock_spin(&pcicfg_mtx);
 	port = pci_cfgenable(bus, slot, func, reg, bytes);
 	if (port != 0) {
@@ -173,3 +228,82 @@
 	}
 	mtx_unlock_spin(&pcicfg_mtx);
 }
+
+int
+pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t maxbus)
+{
+
+	if (minbus != 0)
+		return (0);
+
+	if (bootverbose)
+		printf("PCIe: Memory Mapped configuration base @ 0x%lx\n",
+		    base);
+
+	/* XXX: We should make sure this really fits into the direct map. */
+	pcie_base = (vm_offset_t)pmap_mapdev(base, (maxbus + 1) << 20);
+	pcie_minbus = minbus;
+	pcie_maxbus = maxbus;
+	cfgmech = CFGMECH_PCIE;
+	return (1);
+}
+
+#define PCIE_VADDR(base, reg, bus, slot, func)	\
+	((base)				+	\
+	((((bus) & 0xff) << 20)		|	\
+	(((slot) & 0x1f) << 15)		|	\
+	(((func) & 0x7) << 12)		|	\
+	((reg) & 0xfff)))
+
+static int
+pciereg_cfgread(int bus, unsigned slot, unsigned func, unsigned reg,
+    unsigned bytes)
+{
+	volatile vm_offset_t va;
+	int data = -1;
+
+	if (bus < pcie_minbus || bus > pcie_maxbus || slot >= 32 ||
+	    func > PCI_FUNCMAX || reg >= 0x1000)
+		return (-1);
+
+	va = PCIE_VADDR(pcie_base, reg, bus, slot, func);
+
+	switch (bytes) {
+	case 4:
+		data = *(volatile uint32_t *)(va);
+		break;
+	case 2:
+		data = *(volatile uint16_t *)(va);
+		break;

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



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