PERFORCE change 127444 for review
Maxim Zhuravlev
thioretic at FreeBSD.org
Fri Oct 12 10:49:05 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=127444
Change 127444 by thioretic at thioretic_freebox on 2007/10/12 17:48:47
IFC
Affected files ...
.. //depot/projects/soc2007/thioretic_gidl2/alpha/alpha/pmap.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/alpha/conf/NOTES#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/alpha/isa/isa.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/alpha/pci/apecs_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/alpha/pci/lca_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/alpha/pci/pcibus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/acpica/madt.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/genassym.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/identcpu.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/io_apic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/local_apic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/mp_machdep.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/mptable.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/nexus.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/conf/NOTES#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/include/apicvar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/include/specialreg.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_dummy.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_machdep.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_proto.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_syscall.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_sysent.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/linux32_sysvec.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/amd64/linux32/syscalls.master#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/arm/arm/nexus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/arm/xscale/i80321/i80321_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/arm/xscale/i80321/obio.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/boot/common/module.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/ia32/ia32_sysvec.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_file.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_ioctl.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_ioctl.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_misc.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_socket.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_stats.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/compat/linux/linux_time.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/conf/NOTES#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/files#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/files.amd64#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/files.i386#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/files.pc98#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/files.sparc64#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/kern.pre.mk#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/options#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/conf/options.sparc64#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/contrib/pf/net/pf.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/crypto/sha2/sha2.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/aac/aac.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/aac/aac_cam.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/aac/aac_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/acpica/acpi_cpu.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/acpica/acpi_ec.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/ata/ata-raid.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/coretemp/coretemp.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/cxgb/common/cxgb_vsc8211.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/cxgb/cxgb_adapter.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/cxgb/cxgb_lro.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/cxgb/cxgb_main.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/cxgb/cxgb_sge.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/drm/i915_dma.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/LICENSE#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_80003es2lan.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_80003es2lan.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82540.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82541.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82541.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82542.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82543.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82543.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82571.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82571.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82575.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_82575.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_api.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_api.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_defines.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_hw.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_ich8lan.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_ich8lan.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_mac.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_mac.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_manage.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_manage.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_nvm.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_nvm.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_osdep.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_phy.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_phy.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/e1000_regs.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/if_em.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/if_em.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/if_em_hw.c#2 delete
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/if_em_hw.h#2 delete
.. //depot/projects/soc2007/thioretic_gidl2/dev/em/if_em_osdep.h#2 delete
.. //depot/projects/soc2007/thioretic_gidl2/dev/fdc/fdc.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/gem/if_gem.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/gem/if_gemvar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/hme/if_hme.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/hme/if_hmevar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/ic/nec765.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/ichwd/ichwd.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/ichwd/ichwd.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/isp/isp_freebsd.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/am7990.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/am79900.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/if_le_ledma.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/if_le_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/lance.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/le/lancevar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mfi/mfi.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mfi/mfi_disk.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mfi/mfi_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mfi/mfireg.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mfi/mfivar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mii/ukphy.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mpt/mpt_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/eth_z8e.dat.gz.uu#2 delete
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/eth_z8e.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/ethp_z8e.dat.gz.uu#2 delete
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/ethp_z8e.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/if_mxge.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/if_mxge_var.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/mcp_gen_header.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/mxge_eth_z8e.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/mxge_ethp_z8e.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/mxge_lro.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/mxge/mxge_mcp.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/re/if_re.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/syscons/syscons.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/uart/uart_kbd_sun.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/uart/uart_kbd_sun.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/dev/usb/ehci_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/fs/devfs/devfs_vnops.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/fs/fifofs/fifo_vnops.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/acpica/madt.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/conf/NOTES#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/genassym.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/identcpu.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/io_apic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/local_apic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/mp_machdep.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/mptable.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/i386/nexus.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/include/apicvar.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/include/specialreg.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/isa/pcvt/pcvt_ext.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux_dummy.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux_proto.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux_syscall.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux_sysent.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/linux_sysvec.c#4 integrate
.. //depot/projects/soc2007/thioretic_gidl2/i386/linux/syscalls.master#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/ia64/ia64/nexus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/init_main.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_condvar.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_cpu.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_ktrace.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_mutex.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_rwlock.c#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_sx.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_synch.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_thread.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/kern_umtx.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/subr_sleepqueue.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/subr_turnstile.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/uipc_socket.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/uipc_usrreq.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/kern/vfs_vnops.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/Makefile#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/acpi/Makefile#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/coretemp/Makefile#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/modules/em/Makefile#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/linux/Makefile#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/mxge/mxge_eth_z8e/Makefile#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/modules/mxge/mxge_ethp_z8e/Makefile#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/bridgestp.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/bridgestp.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/ieee8023ad_lacp.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/ieee8023ad_lacp.h#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/if_bridge.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/if_ethersubr.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/if_lagg.c#4 integrate
.. //depot/projects/soc2007/thioretic_gidl2/net/if_lagg.h#4 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/ng_base.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/ng_l2tp.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/ng_ppp.c#3 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/ng_ppp.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netgraph/ng_pppoe.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netinet/tcp_syncache.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/netinet6/in6_src.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/opencrypto/cryptodev.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/pc98/cbus/fdc.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/pci/if_dc.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/pci/if_dcreg.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/pci/if_xl.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/pci/if_xlreg.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powermac/grackle.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powermac/hrowpic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powermac/macio.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powermac/uninorth.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powerpc/openpic.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/powerpc/pmap.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/powerpc/psim/iobus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/conf/NOTES#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/ebus/ebus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/isa/ofw_isa.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/pci/apb.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/pci/ofw_pci.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/pci/ofw_pcib_subr.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/pci/ofw_pcibus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/pci/psycho.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/sbus/sbus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sparc64/sparc64/nexus.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/_rwlock.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/sys/_sx.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/sys/ata.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/lock_profile.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/sys/param.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/proc.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/rwlock.h#1 branch
.. //depot/projects/soc2007/thioretic_gidl2/sys/sleepqueue.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/sx.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/sys/turnstile.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/ufs/ffs/ffs_alloc.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/swap_pager.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vm_fault.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vm_map.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vm_map.h#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vm_mmap.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vm_pageout.c#2 integrate
.. //depot/projects/soc2007/thioretic_gidl2/vm/vnode_pager.c#2 integrate
Differences ...
==== //depot/projects/soc2007/thioretic_gidl2/alpha/alpha/pmap.c#2 (text+ko) ====
@@ -148,7 +148,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.178.2.6 2007/04/17 03:56:22 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.178.2.7 2007/09/15 09:40:38 wilko Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -159,11 +159,11 @@
#include <sys/vmmeter.h>
#include <sys/mman.h>
#include <sys/smp.h>
+#include <sys/lock.h>
#include <sys/sx.h>
#include <vm/vm.h>
#include <vm/vm_param.h>
-#include <sys/lock.h>
#include <sys/mutex.h>
#include <vm/vm_kern.h>
#include <vm/vm_page.h>
==== //depot/projects/soc2007/thioretic_gidl2/alpha/conf/NOTES#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/alpha/conf/NOTES,v 1.156 2004/11/09 22:24:47 wilko Exp $
+# $FreeBSD: src/sys/alpha/conf/NOTES,v 1.156.2.1 2007/09/20 06:33:26 netchild Exp $
#
# This file contains machine dependent kernel configuration notes. For
# machine independent notes, look in /sys/conf/NOTES.
@@ -68,10 +68,3 @@
# Enable OSF/1 ABI emulation
options COMPAT_OSF1
-
-# Enable Linux ABI emulation (requires COMPAT_OSF1)
-options COMPAT_LINUX
-
-# Enable the linux-like proc filesystem support (requires COMPAT_LINUX
-# and PSEUDOFS)
-options LINPROCFS
==== //depot/projects/soc2007/thioretic_gidl2/alpha/isa/isa.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/isa/isa.c,v 1.36.8.1 2006/03/10 19:37:30 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/isa/isa.c,v 1.36.8.2 2007/10/03 20:41:32 jhb Exp $");
#define __RMAN_RESOURCE_VISIBLE
#include <sys/param.h>
@@ -232,6 +232,7 @@
res = rman_reserve_resource(&isa_drq_rman, start, start, 1,
0, child);
+ rman_set_rid(res, *rid);
if (res && !passthrough) {
rle = resource_list_find(rl, type, *rid);
rle->start = rman_get_start(res);
==== //depot/projects/soc2007/thioretic_gidl2/alpha/pci/apecs_pci.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/apecs_pci.c,v 1.15 2003/08/22 07:20:27 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/apecs_pci.c,v 1.15.10.1 2007/10/03 20:41:33 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -79,12 +79,17 @@
apecs_pcib_alloc_resource(device_t bus, device_t child, int type, int *rid,
u_long start, u_long end, u_long count, u_int flags)
{
+ struct resource *rv = NULL;
+
if ((hwrpb->rpb_type == ST_DEC_2100_A50) &&
(type == SYS_RES_IRQ))
- return isa_alloc_intr(bus, child, start);
+ rv = isa_alloc_intr(bus, child, start);
else
- return alpha_pci_alloc_resource(bus, child, type, rid,
- start, end, count, flags);
+ rv = alpha_pci_alloc_resource(bus, child, type, rid,
+ start, end, count, flags);
+ if (rv != NULL)
+ rman_set_rid(rv, *rid);
+ return (rv);
}
static int
==== //depot/projects/soc2007/thioretic_gidl2/alpha/pci/lca_pci.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/lca_pci.c,v 1.17 2003/08/22 07:20:27 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/lca_pci.c,v 1.17.10.1 2007/10/03 20:41:33 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -78,11 +78,16 @@
lca_pcib_alloc_resource(device_t bus, device_t child, int type, int *rid,
u_long start, u_long end, u_long count, u_int flags)
{
+ struct resource *rv = NULL;
+
if (type == SYS_RES_IRQ)
- return isa_alloc_intr(bus, child, start);
+ rv = isa_alloc_intr(bus, child, start);
else
- return alpha_pci_alloc_resource(bus, child, type, rid,
- start, end, count, flags);
+ rv = alpha_pci_alloc_resource(bus, child, type, rid,
+ start, end, count, flags);
+ if (rv != NULL)
+ rman_set_rid(rv, *rid);
+ return (rv);
}
static int
==== //depot/projects/soc2007/thioretic_gidl2/alpha/pci/pcibus.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/pcibus.c,v 1.36 2005/01/05 20:05:52 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/pcibus.c,v 1.36.2.1 2007/10/03 20:41:33 jhb Exp $");
#include "opt_isa.h"
@@ -97,7 +97,12 @@
alpha_platform_alloc_ide_intr(int chan)
{
int irqs[2] = { 14, 15 };
- return isa_alloc_intr(0, 0, irqs[chan]);
+ struct resource *rv;
+
+ rv = isa_alloc_intr(0, 0, irqs[chan]);
+ if (rv != NULL)
+ rman_set_rid(rv, *rid);
+ return (rv);
}
int
@@ -230,9 +235,11 @@
#ifdef DEV_ISA
if((start >= ISA_IRQ_OFFSET) &&
(end < ISA_IRQ_OFFSET + ISA_IRQ_LEN)) {
- return isa_alloc_intrs(bus, child,
- start - ISA_IRQ_OFFSET,
- end - ISA_IRQ_OFFSET);
+ rv = isa_alloc_intrs(bus, child,
+ start - ISA_IRQ_OFFSET, end - ISA_IRQ_OFFSET);
+ if (rv != NULL)
+ rman_set_rid(rv, *rid);
+ return (rv);
}
else
#endif
@@ -252,6 +259,7 @@
if (rv == 0)
return 0;
+ rman_set_rid(rv, *rid);
rman_set_bustag(rv, ALPHAPCI_GET_BUSTAG(bus, type));
rman_set_bushandle(rv, rv->r_start);
switch (type) {
==== //depot/projects/soc2007/thioretic_gidl2/amd64/acpica/madt.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.16.2.3 2007/05/02 18:42:45 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.16.2.4 2007/10/05 15:22:35 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -53,21 +53,18 @@
#include <dev/acpica/acpivar.h>
#include <dev/pci/pcivar.h>
-#define NIOAPICS 32 /* Max number of I/O APICs */
-#define NLAPICS 32 /* Max number of local APICs */
-
typedef void madt_entry_handler(APIC_HEADER *entry, void *arg);
/* These two arrays are indexed by APIC IDs. */
struct ioapic_info {
void *io_apic;
UINT32 io_vector;
-} ioapics[NIOAPICS];
+} ioapics[MAX_APIC_ID + 1];
struct lapic_info {
u_int la_enabled:1;
u_int la_acpi_id:8;
-} lapics[NLAPICS];
+} lapics[MAX_APIC_ID + 1];
static int madt_found_sci_override;
static MULTIPLE_APIC_TABLE *madt;
@@ -391,7 +388,7 @@
}
/* Third, we register all the I/O APIC's. */
- for (i = 0; i < NIOAPICS; i++)
+ for (i = 0; i <= MAX_APIC_ID; i++)
if (ioapics[i].io_apic != NULL)
ioapic_register(ioapics[i].io_apic);
@@ -447,7 +444,7 @@
proc->ProcessorEnabled ? "enabled" : "disabled");
if (!proc->ProcessorEnabled)
break;
- if (proc->LocalApicId >= NLAPICS)
+ if (proc->LocalApicId > MAX_APIC_ID)
panic("%s: CPU ID %d too high", __func__,
proc->LocalApicId);
la = &lapics[proc->LocalApicId];
@@ -476,7 +473,7 @@
printf("MADT: Found IO APIC ID %d, Interrupt %d at %p\n",
apic->IoApicId, apic->Interrupt,
(void *)(uintptr_t)apic->Address);
- if (apic->IoApicId >= NIOAPICS)
+ if (apic->IoApicId > MAX_APIC_ID)
panic("%s: I/O APIC ID %d too high", __func__,
apic->IoApicId);
if (ioapics[apic->IoApicId].io_apic != NULL)
@@ -544,7 +541,7 @@
{
int i;
- for (i = 0; i < NLAPICS; i++) {
+ for (i = 0; i <= MAX_APIC_ID; i++) {
if (!lapics[i].la_enabled)
continue;
if (lapics[i].la_acpi_id != acpi_id)
@@ -565,7 +562,7 @@
int i, best;
best = -1;
- for (i = 0; i < NIOAPICS; i++) {
+ for (i = 0; i <= MAX_APIC_ID; i++) {
if (ioapics[i].io_apic == NULL ||
ioapics[i].io_vector > intr)
continue;
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/genassym.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.155.2.2 2005/11/15 00:25:59 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.155.2.3 2007/09/10 23:01:35 peter Exp $");
#include "opt_compat.h"
#include "opt_kstack_pages.h"
@@ -177,6 +177,7 @@
ASSYM(ENOENT, ENOENT);
ASSYM(EFAULT, EFAULT);
ASSYM(ENAMETOOLONG, ENAMETOOLONG);
+ASSYM(MAXCPU, MAXCPU);
ASSYM(MAXCOMLEN, MAXCOMLEN);
ASSYM(MAXPATHLEN, MAXPATHLEN);
ASSYM(PC_SIZEOF, sizeof(struct pcpu));
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/identcpu.c#2 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.136.2.4 2006/12/06 20:12:13 sobomax Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.136.2.5 2007/09/28 08:26:16 des Exp $");
#include "opt_cpu.h"
@@ -220,19 +220,19 @@
"\004MON" /* MONITOR/MWAIT Instructions */
"\005DS_CPL" /* CPL Qualified Debug Store */
"\006VMX" /* Virtual Machine Extensions */
- "\007<b6>"
+ "\007SMX" /* Safer Mode Extensions */
"\010EST" /* Enhanced SpeedStep */
"\011TM2" /* Thermal Monitor 2 */
- "\012<b9>"
- "\013CNTX-ID" /* L1 context ID available */
+ "\012SSSE3" /* SSSE3 */
+ "\013CNXT-ID" /* L1 context ID available */
"\014<b11>"
"\015<b12>"
"\016CX16" /* CMPXCHG16B Instruction */
- "\017XTPR" /* Send Task Priority Messages*/
- "\020<b15>"
+ "\017xTPR" /* Send Task Priority Messages*/
+ "\020PDCM" /* Perf/Debug Capability MSR */
"\021<b16>"
"\022<b17>"
- "\023<b18>"
+ "\023DCA" /* Direct Cache Access */
"\024<b19>"
"\025<b20>"
"\026<b21>"
@@ -307,7 +307,7 @@
"\006<b5>"
"\007<b6>"
"\010<b7>"
- "\011<b8>"
+ "\011Prefetch" /* 3DNow! Prefetch/PrefetchW */
"\012<b9>"
"\013<b10>"
"\014<b11>"
@@ -335,13 +335,8 @@
}
if (cpu_feature & CPUID_HTT && strcmp(cpu_vendor,
- "AuthenticAMD") == 0) {
+ "AuthenticAMD") == 0)
cpu_feature &= ~CPUID_HTT;
- if (bootverbose)
- printf("\nHTT bit cleared - FreeBSD"
- " does not have licensing issues"
- " requiring it.\n");
- }
/*
* If this CPU supports HTT or CMP then mention the
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/io_apic.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.15.2.8 2007/03/12 19:50:29 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.15.2.9 2007/08/28 15:47:41 jhb Exp $");
#include "opt_isa.h"
@@ -468,7 +468,7 @@
intbase = next_ioapic_base;
printf("ioapic%u: Assuming intbase of %d\n", io->io_id,
intbase);
- } else if (intbase != next_ioapic_base)
+ } else if (intbase != next_ioapic_base && bootverbose)
printf("ioapic%u: WARNING: intbase %d != expected base %d\n",
io->io_id, intbase, next_ioapic_base);
io->io_intbase = intbase;
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/local_apic.c#2 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.17.2.13 2007/04/28 09:04:09 ariff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.17.2.14 2007/10/05 15:22:35 jhb Exp $");
#include "opt_hwpmc_hooks.h"
@@ -65,13 +65,6 @@
#include <ddb/ddb.h>
#endif
-/*
- * We can handle up to 60 APICs via our logical cluster IDs, but currently
- * the physical IDs on Intel processors up to the Pentium 4 are limited to
- * 16.
- */
-#define MAX_APICID 16
-
/* Sanity checks on IDT vectors. */
CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS == APIC_TIMER_INT);
CTASSERT(APIC_TIMER_INT < APIC_LOCAL_INTS);
@@ -114,7 +107,7 @@
u_long la_hard_ticks;
u_long la_stat_ticks;
u_long la_prof_ticks;
-} static lapics[MAX_APICID];
+} static lapics[MAX_APIC_ID + 1];
/* XXX: should thermal be an NMI? */
@@ -237,7 +230,7 @@
{
int i;
- if (apic_id >= MAX_APICID) {
+ if (apic_id > MAX_APIC_ID) {
printf("APIC: Ignoring local APIC with ID %d\n", apic_id);
if (boot_cpu)
panic("Can't ignore BSP");
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/mp_machdep.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.260.2.11 2007/05/05 21:13:16 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.260.2.14 2007/10/08 21:51:01 jhb Exp $");
#include "opt_cpu.h"
#include "opt_kdb.h"
@@ -95,6 +95,9 @@
/* Free these after use */
void *bootstacks[MAXCPU];
+/* Temporary holder for double fault stack */
+char *doublefault_stack;
+
/* Hotwire a 0->4MB V==P mapping */
extern pt_entry_t *KPTphys;
@@ -130,7 +133,7 @@
int cpu_present:1;
int cpu_bsp:1;
int cpu_disabled:1;
-} static cpu_info[MAXCPU];
+} static cpu_info[MAX_APIC_ID + 1];
static int cpu_apic_ids[MAXCPU];
/* Holds pending bitmap based IPIs per CPU */
@@ -138,6 +141,7 @@
static u_int boot_address;
+static void assign_cpu_ids(void);
static void set_interrupt_apic_ids(void);
static int start_all_aps(void);
static int start_ap(int apic_id);
@@ -175,7 +179,7 @@
return;
group = &mp_groups[0];
groups = 1;
- for (cpu = 0, apic_id = 0; apic_id < MAXCPU; apic_id++) {
+ for (cpu = 0, apic_id = 0; apic_id <= MAX_APIC_ID; apic_id++) {
if (!cpu_info[apic_id].cpu_present)
continue;
/*
@@ -222,9 +226,8 @@
cpu_add(u_int apic_id, char boot_cpu)
{
- if (apic_id >= MAXCPU) {
- printf("SMP: CPU %d exceeds maximum CPU %d, ignoring\n",
- apic_id, MAXCPU - 1);
+ if (apic_id > MAX_APIC_ID) {
+ panic("SMP: APIC ID %d too high", apic_id);
return;
}
KASSERT(cpu_info[apic_id].cpu_present == 0, ("CPU %d added twice",
@@ -237,13 +240,13 @@
boot_cpu_id = apic_id;
cpu_info[apic_id].cpu_bsp = 1;
}
- mp_ncpus++;
- if (apic_id > mp_maxid)
- mp_maxid = apic_id;
+ if (mp_ncpus < MAXCPU) {
+ mp_ncpus++;
+ mp_maxid = mp_ncpus -1;
+ }
if (bootverbose)
printf("SMP: Added CPU %d (%s)\n", apic_id, boot_cpu ? "BSP" :
"AP");
-
}
void
@@ -262,8 +265,7 @@
else
KASSERT(mp_maxid >= mp_ncpus - 1,
("%s: counters out of sync: max %d, count %d", __func__,
- mp_maxid, mp_ncpus));
-
+ mp_maxid, mp_ncpus));
}
int
@@ -341,6 +343,8 @@
("BSP's APIC ID doesn't match boot_cpu_id"));
cpu_apic_ids[0] = boot_cpu_id;
+ assign_cpu_ids();
+
/* Start each Application Processor */
start_all_aps();
@@ -405,7 +409,7 @@
/* List CPUs */
printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id);
- for (i = 1, x = 0; x < MAXCPU; x++) {
+ for (i = 1, x = 0; x <= MAX_APIC_ID; x++) {
if (!cpu_info[x].cpu_present || cpu_info[x].cpu_bsp)
continue;
if (cpu_info[x].cpu_disabled)
@@ -435,6 +439,7 @@
common_tss[cpu] = common_tss[0];
common_tss[cpu].tss_rsp0 = 0; /* not used until after switch */
common_tss[cpu].tss_iobase = sizeof(struct amd64tss);
+ common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE];
gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu];
ssdtosyssd(&gdt_segs[GPROC0_SEL],
@@ -620,6 +625,48 @@
}
/*
+ * Assign logical CPU IDs to local APICs.
+ */
+static void
+assign_cpu_ids(void)
+{
+ u_int i;
+
+ /* Check for explicitly disabled CPUs. */
+ for (i = 0; i <= MAX_APIC_ID; i++) {
+ if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp)
+ continue;
+
+ /* Don't use this CPU if it has been disabled by a tunable. */
+ if (resource_disabled("lapic", i)) {
+ cpu_info[i].cpu_disabled = 1;
+ continue;
+ }
+ }
+
+ /*
+ * 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.
+ */
+ mp_ncpus = 1;
+ for (i = 0; i <= MAX_APIC_ID; i++) {
+ if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp ||
+ cpu_info[i].cpu_disabled)
+ continue;
+
+ if (mp_ncpus < MAXCPU) {
+ cpu_apic_ids[mp_ncpus] = i;
+ mp_ncpus++;
+ } else
+ cpu_info[i].cpu_disabled = 1;
+ }
+ KASSERT(mp_maxid >= mp_ncpus - 1,
+ ("%s: counters out of sync: max %d, count %d", __func__, mp_maxid,
+ mp_ncpus));
+}
+
+/*
* start each AP in our list
*/
static int
@@ -670,27 +717,12 @@
outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */
/* start each AP */
- for (cpu = 0, apic_id = 0; apic_id < MAXCPU; apic_id++) {
-
- /* Ignore non-existent CPUs and the BSP. */
- if (!cpu_info[apic_id].cpu_present ||
- cpu_info[apic_id].cpu_bsp)
- continue;
-
- /* Don't use this CPU if it has been disabled by a tunable. */
- if (resource_disabled("lapic", apic_id)) {
- cpu_info[apic_id].cpu_disabled = 1;
- mp_ncpus--;
- continue;
- }
+ for (cpu = 1; cpu < mp_ncpus; cpu++) {
+ apic_id = cpu_apic_ids[cpu];
- cpu++;
-
- /* save APIC ID for this logical ID */
- cpu_apic_ids[cpu] = apic_id;
-
/* allocate and set up an idle stack data page */
- bootstacks[cpu] = (char *)kmem_alloc(kernel_map, KSTACK_PAGES * PAGE_SIZE);
+ bootstacks[cpu] = (void *)kmem_alloc(kernel_map, KSTACK_PAGES * PAGE_SIZE);
+ doublefault_stack = (char *)kmem_alloc(kernel_map, PAGE_SIZE);
bootSTK = (char *)bootstacks[cpu] + KSTACK_PAGES * PAGE_SIZE - 8;
bootAP = cpu;
@@ -932,10 +964,10 @@
ipi_bitmap = atomic_readandclear_int(&cpu_ipi_pending[cpu]);
#ifdef IPI_PREEMPTION
- if (ipi_bitmap & IPI_PREEMPT) {
+ if (ipi_bitmap & (1 << IPI_PREEMPT)) {
mtx_lock_spin(&sched_lock);
/* Don't preempt the idle thread */
- if (curthread->td_priority < PRI_MIN_IDLE) {
+ if (curthread != PCPU_GET(idlethread)) {
struct thread *running_thread = curthread;
if (running_thread->td_critnest > 1)
running_thread->td_owepreempt = 1;
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/mptable.c#2 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.236 2005/04/15 18:44:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.236.2.1 2007/10/05 15:22:35 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -50,7 +50,7 @@
/* string defined by the Intel MP Spec as identifying the MP table */
#define MP_SIG 0x5f504d5f /* _MP_ */
-#define NAPICID 32 /* Max number of APIC's */
+#define MAX_LAPIC_ID 63 /* Max local APIC ID for HTT fixup */
#define BIOS_BASE (0xf0000)
#define BIOS_SIZE (0x10000)
@@ -136,7 +136,7 @@
static mpfps_t mpfps;
static mpcth_t mpct;
-static void *ioapics[NAPICID];
+static void *ioapics[MAX_APIC_ID + 1];
static bus_datum *busses;
static int mptable_nioapics, mptable_nbusses, mptable_maxbusid;
static int pci0 = -1;
@@ -152,7 +152,7 @@
static void mptable_count_items(void);
static void mptable_count_items_handler(u_char *entry, void *arg);
#ifdef MPTABLE_FORCE_HTT
-static void mptable_hyperthread_fixup(u_int id_mask);
+static void mptable_hyperthread_fixup(u_long id_mask);
#endif
static void mptable_parse_apics_and_busses(void);
static void mptable_parse_apics_and_busses_handler(u_char *entry,
@@ -294,7 +294,7 @@
static int
mptable_probe_cpus(void)
{
- u_int cpu_mask;
+ u_long cpu_mask;
/* Is this a pre-defined config? */
if (mpfps->config_type != 0) {
@@ -354,7 +354,7 @@
mptable_parse_ints();
/* Fourth, we register all the I/O APIC's. */
- for (i = 0; i < NAPICID; i++)
+ for (i = 0; i <= MAX_APIC_ID; i++)
if (ioapics[i] != NULL)
ioapic_register(ioapics[i]);
@@ -412,7 +412,7 @@
mptable_probe_cpus_handler(u_char *entry, void *arg)
{
proc_entry_ptr proc;
- u_int *cpu_mask;
+ u_long *cpu_mask;
switch (*entry) {
case MPCT_ENTRY_PROCESSOR:
@@ -420,8 +420,10 @@
if (proc->cpu_flags & PROCENTRY_FLAG_EN) {
lapic_create(proc->apic_id, proc->cpu_flags &
PROCENTRY_FLAG_BP);
- cpu_mask = (u_int *)arg;
- *cpu_mask |= (1 << proc->apic_id);
+ if (proc->apic_id < MAX_LAPIC_ID) {
+ cpu_mask = (u_long *)arg;
+ *cpu_mask |= (1ul << proc->apic_id);
+ }
}
break;
}
@@ -508,7 +510,7 @@
apic = (io_apic_entry_ptr)entry;
if (!(apic->apic_flags & IOAPICENTRY_FLAG_EN))
break;
- if (apic->apic_id >= NAPICID)
+ if (apic->apic_id > MAX_APIC_ID)
panic("%s: I/O APIC ID %d too high", __func__,
apic->apic_id);
if (ioapics[apic->apic_id] != NULL)
@@ -653,7 +655,7 @@
return;
}
}
- if (apic_id >= NAPICID) {
+ if (apic_id > MAX_APIC_ID) {
printf("MPTable: Ignoring interrupt entry for ioapic%d\n",
intr->dst_apic_id);
return;
@@ -866,7 +868,7 @@
* with the number of logical CPU's in the processor.
*/
static void
-mptable_hyperthread_fixup(u_int id_mask)
+mptable_hyperthread_fixup(u_long id_mask)
{
u_int i, id, logical_cpus;
@@ -883,7 +885,7 @@
* physical processor. If any of those ID's are
* already in the table, then kill the fixup.
*/
- for (id = 0; id < NAPICID; id++) {
+ for (id = 0; id <= MAX_LAPIC_ID; id++) {
if ((id_mask & 1 << id) == 0)
continue;
/* First, make sure we are on a logical_cpus boundary. */
@@ -898,7 +900,7 @@
* Ok, the ID's checked out, so perform the fixup by
* adding the logical CPUs.
*/
- while ((id = ffs(id_mask)) != 0) {
+ while ((id = ffsl(id_mask)) != 0) {
id--;
for (i = id + 1; i < id + logical_cpus; i++) {
if (bootverbose)
==== //depot/projects/soc2007/thioretic_gidl2/amd64/amd64/nexus.c#3 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.66.2.4 2007/08/15 21:12:07 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.66.2.5 2007/10/03 20:41:33 jhb Exp $");
/*
* This code implements a `root nexus' for Intel Architecture
@@ -347,7 +347,7 @@
rv = rman_reserve_resource(rm, start, end, count, flags, child);
if (rv == 0)
return 0;
-
+ rman_set_rid(rv, *rid);
if (type == SYS_RES_MEMORY) {
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list