Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 May 2009 10:52:10 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 161545 for review
Message-ID:  <200905041052.n44AqADK032226@repoman.freebsd.org>

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

Change 161545 by hselasky@hselasky_laptop001 on 2009/05/04 10:51:46

	
	IFC @ 161543

Affected files ...

.. //depot/projects/usb/src/sys/amd64/amd64/busdma_machdep.c#14 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#14 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#14 integrate
.. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#21 integrate
.. //depot/projects/usb/src/sys/amd64/conf/GENERIC#24 integrate
.. //depot/projects/usb/src/sys/amd64/include/apicvar.h#8 integrate
.. //depot/projects/usb/src/sys/amd64/include/clock.h#7 integrate
.. //depot/projects/usb/src/sys/amd64/include/smp.h#8 integrate
.. //depot/projects/usb/src/sys/amd64/include/specialreg.h#13 integrate
.. //depot/projects/usb/src/sys/amd64/isa/clock.c#8 integrate
.. //depot/projects/usb/src/sys/amd64/linux32/linux32_sysvec.c#19 integrate
.. //depot/projects/usb/src/sys/arm/arm/busdma_machdep.c#18 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91.c#14 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91_cfata.c#1 branch
.. //depot/projects/usb/src/sys/arm/at91/at91_machdep.c#2 integrate
.. //depot/projects/usb/src/sys/arm/at91/at91rm92reg.h#5 integrate
.. //depot/projects/usb/src/sys/arm/at91/files.at91#10 integrate
.. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_zone.c#3 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_misc.c#16 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_proto.h#14 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscall.h#14 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_syscalls.c#14 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/freebsd32_sysent.c#14 integrate
.. //depot/projects/usb/src/sys/compat/freebsd32/syscalls.master#14 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_futex.c#10 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_futex.h#7 integrate
.. //depot/projects/usb/src/sys/compat/linux/linux_socket.c#9 integrate
.. //depot/projects/usb/src/sys/conf/NOTES#33 integrate
.. //depot/projects/usb/src/sys/conf/files#60 integrate
.. //depot/projects/usb/src/sys/conf/files.powerpc#21 integrate
.. //depot/projects/usb/src/sys/conf/options#26 integrate
.. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#12 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi.c#16 integrate
.. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#9 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-all.h#12 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#14 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-pci.c#14 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#17 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#14 integrate
.. //depot/projects/usb/src/sys/dev/ata/ata-sata.c#4 integrate
.. //depot/projects/usb/src/sys/dev/ata/atapi-tape.c#10 integrate
.. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-ahci.c#7 integrate
.. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-ati.c#2 integrate
.. //depot/projects/usb/src/sys/dev/ath/if_ath.c#23 integrate
.. //depot/projects/usb/src/sys/dev/bwi/bitops.h#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwimac.c#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwimac.h#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwiphy.c#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwiphy.h#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwirf.c#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/bwirf.h#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/if_bwi.c#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/if_bwi_pci.c#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/if_bwireg.h#1 branch
.. //depot/projects/usb/src/sys/dev/bwi/if_bwivar.h#1 branch
.. //depot/projects/usb/src/sys/dev/cxgb/cxgb_multiq.c#6 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.c#5 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_em.h#4 integrate
.. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#7 integrate
.. //depot/projects/usb/src/sys/dev/ed/if_ed_pccard.c#10 integrate
.. //depot/projects/usb/src/sys/dev/fb/creator.c#8 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#24 integrate
.. //depot/projects/usb/src/sys/dev/if_ndis/if_ndisvar.h#12 integrate
.. //depot/projects/usb/src/sys/dev/ipw/if_ipw.c#11 integrate
.. //depot/projects/usb/src/sys/dev/ipw/if_ipwvar.h#6 integrate
.. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#11 integrate
.. //depot/projects/usb/src/sys/dev/iwi/if_iwivar.h#5 integrate
.. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#7 integrate
.. //depot/projects/usb/src/sys/dev/iwn/if_iwnvar.h#2 integrate
.. //depot/projects/usb/src/sys/dev/mxge/if_mxge.c#11 integrate
.. //depot/projects/usb/src/sys/dev/mxge/if_mxge_var.h#11 integrate
.. //depot/projects/usb/src/sys/dev/nve/if_nve.c#8 integrate
.. //depot/projects/usb/src/sys/dev/pccard/pccarddevs#15 integrate
.. //depot/projects/usb/src/sys/dev/rp/rp.c#4 integrate
.. //depot/projects/usb/src/sys/dev/rp/rp_pci.c#2 integrate
.. //depot/projects/usb/src/sys/dev/rp/rpreg.h#3 integrate
.. //depot/projects/usb/src/sys/dev/sk/if_sk.c#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/at91dci.h#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.c#22 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/atmegadci.h#9 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#18 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ehci.h#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/musb_otg.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ohci.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/ohci.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uhci.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uhci.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.c#14 integrate
.. //depot/projects/usb/src/sys/dev/usb/controller/uss820dci.h#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/template/usb_template.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_bus.h#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_controller.h#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_core.h#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.c#28 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_device.h#17 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dynamic.c#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_dynamic.h#3 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#12 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#8 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#15 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_request.c#13 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_request.h#7 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_revision.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#142 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_rum.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_rumvar.h#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uath.c#3 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uathvar.h#2 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_ural.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_uralvar.h#6 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_zyd.c#10 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/if_zydreg.h#5 integrate
.. //depot/projects/usb/src/sys/dev/usb/wlan/usb_wlan.h#5 delete
.. //depot/projects/usb/src/sys/dev/wi/if_wi.c#10 integrate
.. //depot/projects/usb/src/sys/dev/wi/if_wivar.h#6 integrate
.. //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#11 integrate
.. //depot/projects/usb/src/sys/dev/wpi/if_wpivar.h#4 integrate
.. //depot/projects/usb/src/sys/dev/xl/if_xl.c#4 integrate
.. //depot/projects/usb/src/sys/i386/bios/apm.c#7 integrate
.. //depot/projects/usb/src/sys/i386/conf/GENERIC#23 integrate
.. //depot/projects/usb/src/sys/i386/i386/busdma_machdep.c#17 integrate
.. //depot/projects/usb/src/sys/i386/i386/identcpu.c#13 integrate
.. //depot/projects/usb/src/sys/i386/i386/local_apic.c#14 integrate
.. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#17 integrate
.. //depot/projects/usb/src/sys/i386/include/apicvar.h#8 integrate
.. //depot/projects/usb/src/sys/i386/include/clock.h#7 integrate
.. //depot/projects/usb/src/sys/i386/include/smp.h#8 integrate
.. //depot/projects/usb/src/sys/i386/include/specialreg.h#12 integrate
.. //depot/projects/usb/src/sys/i386/isa/clock.c#9 integrate
.. //depot/projects/usb/src/sys/i386/linux/linux_sysvec.c#14 integrate
.. //depot/projects/usb/src/sys/i386/xen/clock.c#6 integrate
.. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#8 integrate
.. //depot/projects/usb/src/sys/ia64/isa/isa.c#3 integrate
.. //depot/projects/usb/src/sys/isa/atrtc.c#2 integrate
.. //depot/projects/usb/src/sys/isa/rtc.h#3 integrate
.. //depot/projects/usb/src/sys/kern/init_sysent.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_cpuset.c#6 integrate
.. //depot/projects/usb/src/sys/kern/kern_jail.c#18 integrate
.. //depot/projects/usb/src/sys/kern/kern_mib.c#11 integrate
.. //depot/projects/usb/src/sys/kern/kern_osd.c#3 integrate
.. //depot/projects/usb/src/sys/kern/kern_rmlock.c#3 integrate
.. //depot/projects/usb/src/sys/kern/kern_sysctl.c#13 integrate
.. //depot/projects/usb/src/sys/kern/kern_vimage.c#3 integrate
.. //depot/projects/usb/src/sys/kern/sched_ule.c#16 integrate
.. //depot/projects/usb/src/sys/kern/subr_smp.c#12 integrate
.. //depot/projects/usb/src/sys/kern/subr_witness.c#19 integrate
.. //depot/projects/usb/src/sys/kern/syscalls.c#11 integrate
.. //depot/projects/usb/src/sys/kern/syscalls.master#11 integrate
.. //depot/projects/usb/src/sys/kern/systrace_args.c#10 integrate
.. //depot/projects/usb/src/sys/kern/tty_pts.c#12 integrate
.. //depot/projects/usb/src/sys/kern/uipc_socket.c#17 integrate
.. //depot/projects/usb/src/sys/mips/include/pmap.h#5 integrate
.. //depot/projects/usb/src/sys/mips/mips/pmap.c#9 integrate
.. //depot/projects/usb/src/sys/modules/Makefile#31 integrate
.. //depot/projects/usb/src/sys/modules/bwi/Makefile#1 branch
.. //depot/projects/usb/src/sys/net/bridgestp.c#12 integrate
.. //depot/projects/usb/src/sys/net/flowtable.c#2 integrate
.. //depot/projects/usb/src/sys/net/ieee8023ad_lacp.c#8 integrate
.. //depot/projects/usb/src/sys/net/if.c#23 integrate
.. //depot/projects/usb/src/sys/net/if.h#10 integrate
.. //depot/projects/usb/src/sys/net/if_arcsubr.c#6 integrate
.. //depot/projects/usb/src/sys/net/if_bridge.c#15 integrate
.. //depot/projects/usb/src/sys/net/if_dead.c#1 branch
.. //depot/projects/usb/src/sys/net/if_ef.c#7 integrate
.. //depot/projects/usb/src/sys/net/if_gif.c#13 integrate
.. //depot/projects/usb/src/sys/net/if_gif.h#7 integrate
.. //depot/projects/usb/src/sys/net/if_lagg.c#13 integrate
.. //depot/projects/usb/src/sys/net/if_loop.c#18 integrate
.. //depot/projects/usb/src/sys/net/if_mib.c#7 integrate
.. //depot/projects/usb/src/sys/net/if_var.h#15 integrate
.. //depot/projects/usb/src/sys/net/route.c#16 integrate
.. //depot/projects/usb/src/sys/net/rtsock.c#20 integrate
.. //depot/projects/usb/src/sys/net/vnet.h#7 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.c#20 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211.h#14 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_adhoc.c#7 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#13 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_freebsd.h#15 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_hostap.c#10 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ht.c#10 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ht.h#9 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.c#21 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.c#21 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_node.h#13 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_output.c#22 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_proto.c#17 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan.c#8 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan.h#5 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_scan_sta.c#12 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_sta.c#8 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_superg.c#4 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_superg.h#4 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_var.h#20 integrate
.. //depot/projects/usb/src/sys/net80211/ieee80211_wds.c#8 integrate
.. //depot/projects/usb/src/sys/netgraph/netgraph.h#10 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_base.c#15 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#9 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_ether.c#9 integrate
.. //depot/projects/usb/src/sys/netgraph/ng_iface.c#11 integrate
.. //depot/projects/usb/src/sys/netinet/icmp6.h#5 integrate
.. //depot/projects/usb/src/sys/netinet/igmp.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/in.c#21 integrate
.. //depot/projects/usb/src/sys/netinet/in_mcast.c#13 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.c#21 integrate
.. //depot/projects/usb/src/sys/netinet/in_pcb.h#18 integrate
.. //depot/projects/usb/src/sys/netinet/in_rmx.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/ip_carp.c#14 integrate
.. //depot/projects/usb/src/sys/netinet/ip_divert.c#15 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw.h#15 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw2.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/ip_fw_pfil.c#9 integrate
.. //depot/projects/usb/src/sys/netinet/ip_input.c#19 integrate
.. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/ip_mroute.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/ip_output.c#17 integrate
.. //depot/projects/usb/src/sys/netinet/raw_ip.c#21 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_subr.c#22 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_syncache.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_syncache.h#6 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#12 integrate
.. //depot/projects/usb/src/sys/netinet/tcp_var.h#17 integrate
.. //depot/projects/usb/src/sys/netinet/udp_usrreq.c#20 integrate
.. //depot/projects/usb/src/sys/netinet/vinet.h#9 integrate
.. //depot/projects/usb/src/sys/netinet6/icmp6.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.c#20 integrate
.. //depot/projects/usb/src/sys/netinet6/in6.h#7 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#17 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_mcast.c#1 branch
.. //depot/projects/usb/src/sys/netinet6/in6_pcb.c#16 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_proto.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/in6_var.h#8 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_input.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_output.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/ip6_var.h#12 integrate
.. //depot/projects/usb/src/sys/netinet6/mld6.c#13 integrate
.. //depot/projects/usb/src/sys/netinet6/mld6.h#1 branch
.. //depot/projects/usb/src/sys/netinet6/mld6_var.h#3 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6.c#16 integrate
.. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#15 integrate
.. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#19 integrate
.. //depot/projects/usb/src/sys/netinet6/udp6_usrreq.c#18 integrate
.. //depot/projects/usb/src/sys/netinet6/vinet6.h#7 integrate
.. //depot/projects/usb/src/sys/netipsec/ipsec.c#17 integrate
.. //depot/projects/usb/src/sys/netipsec/key.c#15 integrate
.. //depot/projects/usb/src/sys/netipsec/key.h#2 integrate
.. //depot/projects/usb/src/sys/netipsec/vipsec.h#5 integrate
.. //depot/projects/usb/src/sys/netipx/spx_usrreq.c#6 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_kdtrace.c#2 integrate
.. //depot/projects/usb/src/sys/nfsclient/nfs_krpc.c#4 integrate
.. //depot/projects/usb/src/sys/pc98/cbus/clock.c#8 integrate
.. //depot/projects/usb/src/sys/pc98/conf/GENERIC#18 integrate
.. //depot/projects/usb/src/sys/powerpc/aim/machdep.c#9 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/locore.S#6 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/pmap.c#9 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/swtch.S#3 integrate
.. //depot/projects/usb/src/sys/powerpc/booke/vm_machdep.c#3 integrate
.. //depot/projects/usb/src/sys/powerpc/conf/MPC85XX#5 integrate
.. //depot/projects/usb/src/sys/powerpc/include/hid.h#5 integrate
.. //depot/projects/usb/src/sys/powerpc/include/intr_machdep.h#5 integrate
.. //depot/projects/usb/src/sys/powerpc/include/pte.h#5 integrate
.. //depot/projects/usb/src/sys/powerpc/mpc85xx/atpic.c#1 branch
.. //depot/projects/usb/src/sys/powerpc/mpc85xx/isa.c#1 branch
.. //depot/projects/usb/src/sys/powerpc/mpc85xx/ocpbus.c#6 integrate
.. //depot/projects/usb/src/sys/powerpc/mpc85xx/pci_ocp.c#3 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/autoconf.c#5 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/bus_machdep.c#3 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/cpu.c#8 integrate
.. //depot/projects/usb/src/sys/powerpc/powerpc/intr_machdep.c#12 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_atalk.c#3 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_audit.c#7 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_cred.c#4 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_inet.c#12 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_inet6.c#5 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_internal.h#10 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_net.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_pipe.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_posix_sem.c#10 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_posix_shm.c#5 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_priv.c#5 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_process.c#12 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_socket.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_system.c#7 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_sysv_msg.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_sysv_sem.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_sysv_shm.c#8 integrate
.. //depot/projects/usb/src/sys/security/mac/mac_vfs.c#10 integrate
.. //depot/projects/usb/src/sys/sys/jail.h#12 integrate
.. //depot/projects/usb/src/sys/sys/ktr.h#3 integrate
.. //depot/projects/usb/src/sys/sys/mbuf.h#13 integrate
.. //depot/projects/usb/src/sys/sys/osd.h#3 integrate
.. //depot/projects/usb/src/sys/sys/param.h#28 integrate
.. //depot/projects/usb/src/sys/sys/priv.h#12 integrate
.. //depot/projects/usb/src/sys/sys/queue.h#4 integrate
.. //depot/projects/usb/src/sys/sys/smp.h#6 integrate
.. //depot/projects/usb/src/sys/sys/socketvar.h#9 integrate
.. //depot/projects/usb/src/sys/sys/syscall.h#11 integrate
.. //depot/projects/usb/src/sys/sys/syscall.mk#11 integrate
.. //depot/projects/usb/src/sys/sys/syscallsubr.h#9 integrate
.. //depot/projects/usb/src/sys/sys/sysctl.h#16 integrate
.. //depot/projects/usb/src/sys/sys/sysproto.h#11 integrate
.. //depot/projects/usb/src/sys/sys/vimage.h#8 integrate
.. //depot/projects/usb/src/sys/ufs/ufs/dinode.h#2 integrate
.. //depot/projects/usb/src/sys/ufs/ufs/inode.h#7 integrate
.. //depot/projects/usb/src/sys/ufs/ufs/ufs_vnops.c#14 integrate
.. //depot/projects/usb/src/sys/vm/swap_pager.c#14 integrate
.. //depot/projects/usb/src/sys/vm/vm_fault.c#12 integrate
.. //depot/projects/usb/src/sys/vm/vm_object.c#15 integrate
.. //depot/projects/usb/src/sys/vm/vm_pageout.c#14 integrate
.. //depot/projects/usb/src/sys/vm/vnode_pager.c#14 integrate

Differences ...

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

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.90 2009/04/17 13:22:18 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.91 2009/04/23 20:24:19 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -95,7 +95,6 @@
 	int		total_deferred;
 	int		map_count;
 	bus_size_t	alignment;
-	bus_size_t	boundary;
 	bus_addr_t	lowaddr;
 	char		zoneid[8];
 	char		lowaddrid[20];
@@ -978,7 +977,6 @@
 	/* Check to see if we already have a suitable zone */
 	STAILQ_FOREACH(bz, &bounce_zone_list, links) {
 		if ((dmat->alignment <= bz->alignment)
-		 && (dmat->boundary <= bz->boundary)
 		 && (dmat->lowaddr >= bz->lowaddr)) {
 			dmat->bounce_zone = bz;
 			return (0);
@@ -994,8 +992,7 @@
 	bz->reserved_bpages = 0;
 	bz->active_bpages = 0;
 	bz->lowaddr = dmat->lowaddr;
-	bz->alignment = dmat->alignment;
-	bz->boundary = dmat->boundary;
+	bz->alignment = MAX(dmat->alignment, PAGE_SIZE);
 	bz->map_count = 0;
 	snprintf(bz->zoneid, 8, "zone%d", busdma_zonecount);
 	busdma_zonecount++;
@@ -1042,9 +1039,6 @@
 	SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
 	    SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
 	    "alignment", CTLFLAG_RD, &bz->alignment, 0, "");
-	SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
-	    SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
-	    "boundary", CTLFLAG_RD, &bz->boundary, 0, "");
 
 	return (0);
 }
@@ -1069,7 +1063,7 @@
 							 M_NOWAIT, 0ul,
 							 bz->lowaddr,
 							 PAGE_SIZE,
-							 bz->boundary);
+							 0);
 		if (bpage->vaddr == 0) {
 			free(bpage, M_DEVBUF);
 			break;

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

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.171 2009/01/22 21:04:46 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.172 2009/04/29 06:54:40 jeff Exp $");
 
 #include "opt_cpu.h"
 
@@ -106,10 +106,7 @@
 	{ CENTAUR_VENDOR_ID,	CPU_VENDOR_CENTAUR },	/* CentaurHauls */
 };
 
-int cpu_cores;
-int cpu_logical;
 
-
 extern int pq_l2size;
 extern int pq_l2nways;
 
@@ -195,7 +192,6 @@
 	    cpu_vendor_id == CPU_VENDOR_CENTAUR) {
 		printf("  Stepping = %u", cpu_id & 0xf);
 		if (cpu_high > 0) {
-			u_int cmp = 1, htt = 1;
 
 			/*
 			 * Here we should probably set up flags indicating
@@ -400,28 +396,6 @@
 			if (tsc_is_invariant)
 				printf("\n  TSC: P-state invariant");
 
-			/*
-			 * If this CPU supports HTT or CMP then mention the
-			 * number of physical/logical cores it contains.
-			 */
-			if (cpu_feature & CPUID_HTT)
-				htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
-			if (cpu_vendor_id == CPU_VENDOR_AMD &&
-			    (amd_feature2 & AMDID2_CMP))
-				cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1;
-			else if (cpu_vendor_id == CPU_VENDOR_INTEL &&
-			    (cpu_high >= 4)) {
-				cpuid_count(4, 0, regs);
-				if ((regs[0] & 0x1f) != 0)
-					cmp = ((regs[0] >> 26) & 0x3f) + 1;
-			}
-			cpu_cores = cmp;
-			cpu_logical = htt / cmp;
-			if (cmp > 1)
-				printf("\n  Cores per package: %d", cmp);
-			if ((htt / cmp) > 1)
-				printf("\n  Logical CPUs per core: %d",
-				    cpu_logical);
 		}
 	}
 	/* Avoid ugly blank lines: only print newline when we have to. */

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

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.52 2009/02/21 23:15:34 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.54 2009/05/01 20:53:37 mav Exp $");
 
 #include "opt_hwpmc_hooks.h"
 #include "opt_kdtrace.h"
@@ -112,7 +112,7 @@
 	u_long la_stat_ticks;
 	u_long la_prof_ticks;
 	/* Include IDT_SYSCALL to make indexing easier. */
-	u_int la_ioint_irqs[APIC_NUM_IOINTS + 1];
+	int la_ioint_irqs[APIC_NUM_IOINTS + 1];
 } static lapics[MAX_APIC_ID + 1];
 
 /* XXX: should thermal be an NMI? */
@@ -254,6 +254,8 @@
 		lapics[apic_id].la_lvts[i] = lvts[i];
 		lapics[apic_id].la_lvts[i].lvt_active = 0;
 	}
+	for (i = 0; i <= APIC_NUM_IOINTS; i++)
+	    lapics[apic_id].la_ioint_irqs[i] = -1;
 	lapics[apic_id].la_ioint_irqs[IDT_SYSCALL - APIC_IO_INTS] = IRQ_SYSCALL;
 	lapics[apic_id].la_ioint_irqs[APIC_TIMER_INT - APIC_IO_INTS] =
 	    IRQ_TIMER;
@@ -363,11 +365,15 @@
 lapic_setup_clock(void)
 {
 	u_long value;
+	int i;
 
 	/* Can't drive the timer without a local APIC. */
 	if (lapic == NULL)
 		return (0);
 
+	if (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0)
+		return (0);
+
 	/* Start off with a divisor of 2 (power on reset default). */
 	lapic_timer_divisor = 2;
 
@@ -807,7 +813,7 @@
 	 */
 	mtx_lock_spin(&icu_lock);
 	for (vector = 0; vector < APIC_NUM_IOINTS; vector++) {
-		if (lapics[apic_id].la_ioint_irqs[vector] != 0)
+		if (lapics[apic_id].la_ioint_irqs[vector] != -1)
 			continue;
 		lapics[apic_id].la_ioint_irqs[vector] = irq;
 		mtx_unlock_spin(&icu_lock);
@@ -847,7 +853,7 @@
 	for (vector = 0; vector < APIC_NUM_IOINTS; vector++) {
 
 		/* Vector is in use, end run. */
-		if (lapics[apic_id].la_ioint_irqs[vector] != 0) {
+		if (lapics[apic_id].la_ioint_irqs[vector] != -1) {
 			run = 0;
 			first = 0;
 			continue;
@@ -932,7 +938,7 @@
 	sched_bind(td, apic_cpuid(apic_id));
 	thread_unlock(td);
 	mtx_lock_spin(&icu_lock);
-	lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = 0;
+	lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS] = -1;
 	mtx_unlock_spin(&icu_lock);
 	thread_lock(td);
 	sched_unbind(td);
@@ -944,11 +950,15 @@
 u_int
 apic_idt_to_irq(u_int apic_id, u_int vector)
 {
+	int irq;
 
 	KASSERT(vector >= APIC_IO_INTS && vector != IDT_SYSCALL &&
 	    vector <= APIC_IO_INTS + APIC_NUM_IOINTS,
 	    ("Vector %u does not map to an IRQ line", vector));
-	return (lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]);
+	irq = lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS];
+	if (irq < 0)
+		irq = 0;
+	return (irq);
 }
 
 #ifdef DDB
@@ -974,7 +984,7 @@
 		db_printf("Interrupts bound to lapic %u\n", apic_id);
 		for (i = 0; i < APIC_NUM_IOINTS + 1 && !db_pager_quit; i++) {
 			irq = lapics[apic_id].la_ioint_irqs[i];
-			if (irq == 0 || irq == IRQ_SYSCALL)
+			if (irq == -1 || irq == IRQ_SYSCALL)
 				continue;
 			db_printf("vec 0x%2x -> ", i + APIC_IO_INTS);
 			if (irq == IRQ_TIMER)

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

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.302 2009/04/01 13:09:26 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.306 2009/05/02 12:20:43 mav Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -57,6 +57,7 @@
 #include <vm/vm_extern.h>
 
 #include <machine/apicreg.h>
+#include <machine/clock.h>
 #include <machine/cputypes.h>
 #include <machine/cpufunc.h>
 #include <machine/md_var.h>
@@ -160,6 +161,8 @@
 static volatile u_int cpu_ipi_pending[MAXCPU];
 
 static u_int boot_address;
+static int cpu_logical;
+static int cpu_cores;
 
 static void	assign_cpu_ids(void);
 static void	set_interrupt_apic_ids(void);
@@ -181,13 +184,148 @@
 		mem_range_softc.mr_op->initAP(&mem_range_softc);
 }
 
-struct cpu_group *
-cpu_topo(void)
+static void
+topo_probe_0xb(void)
+{
+	int logical;
+	int p[4];
+	int bits;
+	int type;
+	int cnt;
+	int i;
+	int x;
+
+	/* We only support two levels for now. */
+	for (i = 0; i < 3; i++) {
+		cpuid_count(0x0B, i, p);
+		bits = p[0] & 0x1f;
+		logical = p[1] &= 0xffff;
+		type = (p[2] >> 8) & 0xff;
+		if (type == 0 || logical == 0)
+			break;
+		for (cnt = 0, x = 0; x <= MAX_APIC_ID; x++) {
+			if (!cpu_info[x].cpu_present ||
+			    cpu_info[x].cpu_disabled)
+				continue;
+			if (x >> bits == boot_cpu_id >> bits)
+				cnt++;
+		}
+		if (type == CPUID_TYPE_SMT)
+			cpu_logical = cnt;
+		else if (type == CPUID_TYPE_CORE)
+			cpu_cores = cnt;
+	}
+	if (cpu_logical == 0)
+		cpu_logical = 1;
+	cpu_cores /= cpu_logical;
+}
+
+static void
+topo_probe_0x4(void)
+{
+	u_int threads_per_cache, p[4];
+	u_int htt, cmp;
+	int i;
+
+	htt = cmp = 1;
+	/*
+	 * If this CPU supports HTT or CMP then mention the
+	 * number of physical/logical cores it contains.
+	 */
+	if (cpu_feature & CPUID_HTT)
+		htt = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
+	if (cpu_vendor_id == CPU_VENDOR_AMD && (amd_feature2 & AMDID2_CMP))
+		cmp = (cpu_procinfo2 & AMDID_CMP_CORES) + 1;
+	else if (cpu_vendor_id == CPU_VENDOR_INTEL && (cpu_high >= 4)) {
+		cpuid_count(4, 0, p);
+		if ((p[0] & 0x1f) != 0)
+			cmp = ((p[0] >> 26) & 0x3f) + 1;
+	}
+	cpu_cores = cmp;
+	cpu_logical = htt / cmp;
+
+	/* Setup the initial logical CPUs info. */
+	if (cpu_feature & CPUID_HTT)
+		logical_cpus = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
+
+	/*
+	 * Work out if hyperthreading is *really* enabled.  This
+	 * is made really ugly by the fact that processors lie: Dual
+	 * core processors claim to be hyperthreaded even when they're
+	 * not, presumably because they want to be treated the same
+	 * way as HTT with respect to per-cpu software licensing.
+	 * At the time of writing (May 12, 2005) the only hyperthreaded
+	 * cpus are from Intel, and Intel's dual-core processors can be
+	 * identified via the "deterministic cache parameters" cpuid
+	 * calls.
+	 */
+	/*
+	 * First determine if this is an Intel processor which claims
+	 * to have hyperthreading support.
+	 */
+	if ((cpu_feature & CPUID_HTT) && cpu_vendor_id == CPU_VENDOR_INTEL) {
+		/*
+		 * If the "deterministic cache parameters" cpuid calls
+		 * are available, use them.
+		 */
+		if (cpu_high >= 4) {
+			/* Ask the processor about the L1 cache. */
+			for (i = 0; i < 1; i++) {
+				cpuid_count(4, i, p);
+				threads_per_cache = ((p[0] & 0x3ffc000) >> 14) + 1;
+				if (hyperthreading_cpus < threads_per_cache)
+					hyperthreading_cpus = threads_per_cache;
+				if ((p[0] & 0x1f) == 0)
+					break;
+			}
+		}
+
+		/*
+		 * If the deterministic cache parameters are not
+		 * available, or if no caches were reported to exist,
+		 * just accept what the HTT flag indicated.
+		 */
+		if (hyperthreading_cpus == 0)
+			hyperthreading_cpus = logical_cpus;
+	}
+}
+
+static void
+topo_probe(void)
 {
+	static int cpu_topo_probed = 0;
+
+	if (cpu_topo_probed)
+		return;
+
+	logical_cpus = logical_cpus_mask = 0;
+	if (cpu_high >= 0xb)
+		topo_probe_0xb();
+	else if (cpu_high)
+		topo_probe_0x4();
 	if (cpu_cores == 0)
-		cpu_cores = 1;
+		cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1;
 	if (cpu_logical == 0)
 		cpu_logical = 1;
+	cpu_topo_probed = 1;
+}
+
+struct cpu_group *
+cpu_topo(void)
+{
+	int cg_flags;
+
+	/*
+	 * Determine whether any threading flags are
+	 * necessry.
+	 */
+	topo_probe();
+	if (cpu_logical > 1 && hyperthreading_cpus)
+		cg_flags = CG_FLAG_HTT;
+	else if (cpu_logical > 1)
+		cg_flags = CG_FLAG_SMT;
+	else
+		cg_flags = 0;
 	if (mp_ncpus % (cpu_cores * cpu_logical) != 0) {
 		printf("WARNING: Non-uniform processors.\n");
 		printf("WARNING: Using suboptimal topology.\n");
@@ -202,17 +340,17 @@
 	 * Only HTT no multi-core.
 	 */
 	if (cpu_logical > 1 && cpu_cores == 1)
-		return (smp_topo_1level(CG_SHARE_L1, cpu_logical, CG_FLAG_HTT));
+		return (smp_topo_1level(CG_SHARE_L1, cpu_logical, cg_flags));
 	/*
 	 * Only multi-core no HTT.
 	 */
 	if (cpu_cores > 1 && cpu_logical == 1)
-		return (smp_topo_1level(CG_SHARE_NONE, cpu_cores, 0));
+		return (smp_topo_1level(CG_SHARE_L2, cpu_cores, cg_flags));
 	/*
 	 * Both HTT and multi-core.
 	 */
-	return (smp_topo_2level(CG_SHARE_NONE, cpu_cores,
-	    CG_SHARE_L1, cpu_logical, CG_FLAG_HTT));
+	return (smp_topo_2level(CG_SHARE_L2, cpu_cores,
+	    CG_SHARE_L1, cpu_logical, cg_flags));
 }
 
 /*
@@ -318,7 +456,6 @@
 cpu_mp_start(void)
 {
 	int i;
-	u_int threads_per_cache, p[4];
 
 	/* Initialize the logical ID to APIC ID table. */
 	for (i = 0; i < MAXCPU; i++) {
@@ -354,54 +491,9 @@
 	} else
 		KASSERT(boot_cpu_id == PCPU_GET(apic_id),
 		    ("BSP's APIC ID doesn't match boot_cpu_id"));
-	cpu_apic_ids[0] = boot_cpu_id;
-	apic_cpuids[boot_cpu_id] = 0;
 
-	/* Setup the initial logical CPUs info. */
-	logical_cpus = logical_cpus_mask = 0;
-	if (cpu_feature & CPUID_HTT)
-		logical_cpus = (cpu_procinfo & CPUID_HTT_CORES) >> 16;
-
-	/*
-	 * Work out if hyperthreading is *really* enabled.  This
-	 * is made really ugly by the fact that processors lie: Dual
-	 * core processors claim to be hyperthreaded even when they're
-	 * not, presumably because they want to be treated the same
-	 * way as HTT with respect to per-cpu software licensing.
-	 * At the time of writing (May 12, 2005) the only hyperthreaded
-	 * cpus are from Intel, and Intel's dual-core processors can be
-	 * identified via the "deterministic cache parameters" cpuid
-	 * calls.
-	 */
-	/*
-	 * First determine if this is an Intel processor which claims
-	 * to have hyperthreading support.
-	 */
-	if ((cpu_feature & CPUID_HTT) && cpu_vendor_id == CPU_VENDOR_INTEL) {
-		/*
-		 * If the "deterministic cache parameters" cpuid calls
-		 * are available, use them.
-		 */
-		if (cpu_high >= 4) {
-			/* Ask the processor about the L1 cache. */
-			for (i = 0; i < 1; i++) {
-				cpuid_count(4, i, p);
-				threads_per_cache = ((p[0] & 0x3ffc000) >> 14) + 1;
-				if (hyperthreading_cpus < threads_per_cache)
-					hyperthreading_cpus = threads_per_cache;
-				if ((p[0] & 0x1f) == 0)
-					break;
-			}
-		}
-
-		/*
-		 * If the deterministic cache parameters are not
-		 * available, or if no caches were reported to exist,
-		 * just accept what the HTT flag indicated.
-		 */
-		if (hyperthreading_cpus == 0)
-			hyperthreading_cpus = logical_cpus;
-	}
+	/* Probe logical/physical core configuration. */
+	topo_probe();
 
 	assign_cpu_ids();
 
@@ -418,28 +510,38 @@
 void
 cpu_mp_announce(void)
 {
-	int i, x;
 	const char *hyperthread;
+	int i;
 
-	/* List CPUs */
+	printf("FreeBSD/SMP: %d package(s) x %d core(s)",
+	    mp_ncpus / (cpu_cores * cpu_logical), cpu_cores);
+	if (hyperthreading_cpus > 1)
+	    printf(" x %d HTT threads", cpu_logical);
+	else if (cpu_logical > 1)
+	    printf(" x %d SMT threads", cpu_logical);
+	printf("\n");
+
+	/* List active CPUs first. */
 	printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
-	for (i = 1, x = 0; x <= MAX_APIC_ID; x++) {
-		if (!cpu_info[x].cpu_present || cpu_info[x].cpu_bsp)
+	for (i = 1; i < mp_ncpus; i++) {
+		if (cpu_info[cpu_apic_ids[i]].cpu_hyperthread)
+			hyperthread = "/HT";
+		else
+			hyperthread = "";
+		printf(" cpu%d (AP%s): APIC ID: %2d\n", i, hyperthread,
+		    cpu_apic_ids[i]);
+	}
+
+	/* List disabled CPUs last. */
+	for (i = 0; i <= MAX_APIC_ID; i++) {
+		if (!cpu_info[i].cpu_present || !cpu_info[i].cpu_disabled)
 			continue;
-		if (cpu_info[x].cpu_hyperthread) {
+		if (cpu_info[i].cpu_hyperthread)
 			hyperthread = "/HT";
-		} else {
+		else
 			hyperthread = "";
-		}
-		if (cpu_info[x].cpu_disabled)
-			printf("  cpu (AP%s): APIC ID: %2d (disabled)\n",
-			    hyperthread, x);
-		else {
-			KASSERT(i < mp_ncpus,
-			    ("mp_ncpus and actual cpus are out of whack"));
-			printf(" cpu%d (AP%s): APIC ID: %2d\n", i++,
-			    hyperthread, x);
-		}
+		printf("  cpu (AP%s): APIC ID: %2d (disabled)\n", hyperthread,
+		    i);
 	}
 }
 
@@ -693,11 +795,19 @@
 
 	/*
 	 * Assign CPU IDs to local APIC IDs and disable any CPUs
-	 * beyond MAXCPU.  CPU 0 has already been assigned to the BSP,
-	 * so we only have to assign IDs for APs.
+	 * beyond MAXCPU.  CPU 0 is always assigned to the BSP.
+	 *
+	 * To minimize confusion for userland, we attempt to number
+	 * CPUs such that all threads and cores in a package are
+	 * grouped together.  For now we assume that the BSP is always
+	 * the first thread in a package and just start adding APs
+	 * starting with the BSP's APIC ID.
 	 */
 	mp_ncpus = 1;
-	for (i = 0; i <= MAX_APIC_ID; i++) {
+	cpu_apic_ids[0] = boot_cpu_id;
+	apic_cpuids[boot_cpu_id] = 0;
+	for (i = boot_cpu_id + 1; i != boot_cpu_id;
+	     i == MAX_APIC_ID ? i = 0 : i++) {
 		if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp ||
 		    cpu_info[i].cpu_disabled)
 			continue;
@@ -1015,6 +1125,15 @@
 		sched_preempt(curthread);
 
 	/* Nothing to do for AST */
+
+	if (ipi_bitmap & (1 << IPI_HARDCLOCK))
+		hardclockintr(&frame);
+
+	if (ipi_bitmap & (1 << IPI_STATCLOCK))
+		statclockintr(&frame);
+
+	if (ipi_bitmap & (1 << IPI_PROFCLOCK))
+		profclockintr(&frame);
 }
 
 /*

==== //depot/projects/usb/src/sys/amd64/conf/GENERIC#24 (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.523 2009/04/10 00:40:48 jfv Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.524 2009/05/01 17:20:16 sam Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -292,8 +292,10 @@
 device		ulpt		# Printer
 device		umass		# Disks/Mass storage - Requires scbus and da
 device		ums		# Mouse
+device		rum		# Ralink Technology RT2501USB wireless NICs
+device		uath		# Atheros AR5523 wireless NICs
 device		ural		# Ralink Technology RT2500USB wireless NICs
-device		rum		# Ralink Technology RT2501USB wireless NICs
+device		zyd		# ZyDAS zb1211/zb1211b wireless NICs
 device		urio		# Diamond Rio 500 MP3 player
 # USB Serial devices
 device		uark		# Technologies ARK3116 based serial adapters

==== //depot/projects/usb/src/sys/amd64/include/apicvar.h#8 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.28 2009/03/17 00:48:11 jkim Exp $
+ * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.29 2009/05/02 12:20:43 mav Exp $
  */
 
 #ifndef _MACHINE_APICVAR_H_
@@ -126,7 +126,10 @@
 /* IPIs handled by IPI_BITMAPED_VECTOR  (XXX ups is there a better place?) */
 #define	IPI_AST		0 	/* Generate software trap. */
 #define IPI_PREEMPT     1
-#define IPI_BITMAP_LAST IPI_PREEMPT
+#define IPI_HARDCLOCK   2
+#define IPI_STATCLOCK   3
+#define IPI_PROFCLOCK   4
+#define IPI_BITMAP_LAST IPI_PROFCLOCK
 #define IPI_IS_BITMAPED(x) ((x) <= IPI_BITMAP_LAST)
 
 #define	IPI_STOP	(APIC_IPI_INTS + 7)	/* Stop CPU until restarted. */

==== //depot/projects/usb/src/sys/amd64/include/clock.h#7 (text+ko) ====

@@ -3,7 +3,7 @@
  * Garrett Wollman, September 1994.
  * This file is in the public domain.
  *
- * $FreeBSD: src/sys/amd64/include/clock.h,v 1.61 2008/10/21 00:38:00 jkim Exp $
+ * $FreeBSD: src/sys/amd64/include/clock.h,v 1.63 2009/05/03 17:47:21 mav Exp $
  */
 
 #ifndef _MACHINE_CLOCK_H_
@@ -15,7 +15,6 @@
  * XXX large parts of the driver and its interface are misplaced.
  */
 extern int	clkintr_pending;
-extern int	statclock_disable;
 extern u_int	i8254_freq;
 extern int	i8254_max_count;
 extern uint64_t	tsc_freq;
@@ -24,6 +23,12 @@
 
 void	i8254_init(void);
 
+struct trapframe;
+
+int	hardclockintr(struct trapframe *frame);
+int	statclockintr(struct trapframe *frame);
+int	profclockintr(struct trapframe *frame);
+
 /*
  * Driver to clock driver interface.
  */

==== //depot/projects/usb/src/sys/amd64/include/smp.h#8 (text+ko) ====

@@ -6,7 +6,7 @@
  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
  * ----------------------------------------------------------------------------
  *
- * $FreeBSD: src/sys/amd64/include/smp.h,v 1.94 2009/03/17 00:48:11 jkim Exp $
+ * $FreeBSD: src/sys/amd64/include/smp.h,v 1.95 2009/04/29 06:54:40 jeff Exp $
  *
  */
 
@@ -36,10 +36,6 @@
 extern struct pcb		stoppcbs[];
 extern int			cpu_apic_ids[];
 
-/* global data in identcpu.c */
-extern int			cpu_cores;
-extern int			cpu_logical;

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



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