PERFORCE change 149909 for review
Marko Zec
zec at FreeBSD.org
Tue Sep 16 21:28:38 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=149909
Change 149909 by zec at zec_tpx32 on 2008/09/16 21:28:17
IFC @ 149904
Affected files ...
.. //depot/projects/vimage/src/sys/amd64/amd64/cpu_switch.S#10 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/genassym.c#10 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#12 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#10 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/trap.c#11 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/vm_machdep.c#6 integrate
.. //depot/projects/vimage/src/sys/amd64/include/pcb.h#5 integrate
.. //depot/projects/vimage/src/sys/amd64/include/pcpu.h#6 integrate
.. //depot/projects/vimage/src/sys/amd64/include/pmc_mdep.h#4 integrate
.. //depot/projects/vimage/src/sys/amd64/include/segments.h#3 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_genassym.c#2 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_locore.s#3 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_machdep.c#13 integrate
.. //depot/projects/vimage/src/sys/amd64/pci/pci_cfgreg.c#4 integrate
.. //depot/projects/vimage/src/sys/arm/arm/intr.c#7 integrate
.. //depot/projects/vimage/src/sys/arm/arm/nexus.c#4 integrate
.. //depot/projects/vimage/src/sys/arm/at91/at91.c#6 integrate
.. //depot/projects/vimage/src/sys/arm/at91/at91_mci.c#5 integrate
.. //depot/projects/vimage/src/sys/arm/at91/at91_ssc.c#3 integrate
.. //depot/projects/vimage/src/sys/arm/at91/kb920x_machdep.c#9 integrate
.. //depot/projects/vimage/src/sys/arm/conf/KB920X#7 integrate
.. //depot/projects/vimage/src/sys/arm/conf/NSLU#2 integrate
.. //depot/projects/vimage/src/sys/arm/include/intr.h#6 integrate
.. //depot/projects/vimage/src/sys/arm/include/pcpu.h#5 integrate
.. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425.c#6 integrate
.. //depot/projects/vimage/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#4 integrate
.. //depot/projects/vimage/src/sys/boot/common/dev_net.c#4 integrate
.. //depot/projects/vimage/src/sys/boot/forth/loader.conf#14 integrate
.. //depot/projects/vimage/src/sys/boot/sparc64/loader/main.c#7 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c#2 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#10 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#11 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#11 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#11 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#11 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#12 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_file.c#12 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_misc.c#22 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_socket.c#10 integrate
.. //depot/projects/vimage/src/sys/compat/ndis/ntoskrnl_var.h#3 integrate
.. //depot/projects/vimage/src/sys/compat/svr4/svr4_stream.c#3 integrate
.. //depot/projects/vimage/src/sys/compat/svr4/svr4_sysvec.c#3 integrate
.. //depot/projects/vimage/src/sys/conf/NOTES#31 integrate
.. //depot/projects/vimage/src/sys/conf/files.i386#19 integrate
.. //depot/projects/vimage/src/sys/conf/files.pc98#12 integrate
.. //depot/projects/vimage/src/sys/conf/files.sparc64#11 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/ath/public/wisoc.hal.o.uu#1 branch
.. //depot/projects/vimage/src/sys/contrib/dev/ath/public/wisoc.inc#1 branch
.. //depot/projects/vimage/src/sys/contrib/dev/ath/public/wisoc.opt_ah.h#1 branch
.. //depot/projects/vimage/src/sys/ddb/db_command.c#6 integrate
.. //depot/projects/vimage/src/sys/ddb/ddb.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/aac/aac_pci.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/acpi_support/acpi_fujitsu.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/aic7xxx/aic79xx_osm.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/asmc/asmc.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/asmc/asmcvar.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-chipset.c#16 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-pci.h#11 integrate
.. //depot/projects/vimage/src/sys/dev/ath/if_athvar.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/bge/if_bge.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/common/cxgb_t3_hw.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_adapter.h#13 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_config.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_include.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_main.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_offload.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_osdep.h#10 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_sge.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/sys/cxgb_support.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/sys/mbufq.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/ulp/tom/cxgb_tom.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/drm/ati_pcigart.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_bufs.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_pci.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/drm/i915_dma.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/drm/mach64_dma.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/esp/esp_sbus.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/esp/ncr53c9x.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/esp/ncr53c9xreg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/esp/ncr53c9xvar.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_x86.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/ic/i8251.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/ic/i8255.h#1 branch
.. //depot/projects/vimage/src/sys/dev/iicbus/ds133x.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/iicbus/ds1672.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/jme/if_jme.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/jme/if_jmereg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/le/if_le_ledma.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/mii/e1000phy.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/mii/miidevs#14 integrate
.. //depot/projects/vimage/src/sys/dev/mlx/mlx.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/pci/vga_pci.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/if_plip.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/lpt.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/ppbconf.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/ppbconf.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/ppi.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppbus/pps.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc_acpi.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc_isa.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc_pci.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc_puc.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppcreg.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppcvar.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/re/if_re.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/si/si.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hda_reg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#19 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac_private.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/tx/if_tx.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/uart/uart_cpu_pc98.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_zyd.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_zydreg.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ubsa.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ucom.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ucomvar.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ufoma.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_quirks.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdevs#28 integrate
.. //depot/projects/vimage/src/sys/fs/nullfs/null_vnops.c#7 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs.h#7 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_fifoops.c#3 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_fifoops.h#3 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_subr.c#9 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vfsops.c#12 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vnops.c#12 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vnops.h#3 integrate
.. //depot/projects/vimage/src/sys/geom/geom_dev.c#6 integrate
.. //depot/projects/vimage/src/sys/geom/part/g_part.c#10 integrate
.. //depot/projects/vimage/src/sys/geom/part/g_part.h#8 integrate
.. //depot/projects/vimage/src/sys/geom/part/g_part_gpt.c#7 integrate
.. //depot/projects/vimage/src/sys/gnu/fs/ext2fs/ext2_inode.c#2 integrate
.. //depot/projects/vimage/src/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#2 integrate
.. //depot/projects/vimage/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#2 integrate
.. //depot/projects/vimage/src/sys/i386/conf/GENERIC#23 integrate
.. //depot/projects/vimage/src/sys/i386/conf/NOTES#23 integrate
.. //depot/projects/vimage/src/sys/i386/conf/XEN#3 integrate
.. //depot/projects/vimage/src/sys/i386/cpufreq/est.c#7 integrate
.. //depot/projects/vimage/src/sys/i386/i386/local_apic.c#11 integrate
.. //depot/projects/vimage/src/sys/i386/i386/machdep.c#15 integrate
.. //depot/projects/vimage/src/sys/i386/i386/sys_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/i386/i386/vm_machdep.c#10 integrate
.. //depot/projects/vimage/src/sys/i386/include/pmc_mdep.h#3 integrate
.. //depot/projects/vimage/src/sys/i386/include/proc.h#4 integrate
.. //depot/projects/vimage/src/sys/i386/include/xen/xenpmap.h#3 integrate
.. //depot/projects/vimage/src/sys/i386/include/xen/xenvar.h#3 integrate
.. //depot/projects/vimage/src/sys/i386/isa/isa.c#4 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_genassym.c#2 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_locore.s#2 integrate
.. //depot/projects/vimage/src/sys/i386/pci/pci_cfgreg.c#6 integrate
.. //depot/projects/vimage/src/sys/i386/xen/mp_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/i386/xen/mptable.c#1 branch
.. //depot/projects/vimage/src/sys/i386/xen/pmap.c#4 integrate
.. //depot/projects/vimage/src/sys/i386/xen/xen_machdep.c#5 integrate
.. //depot/projects/vimage/src/sys/kern/kern_exec.c#17 integrate
.. //depot/projects/vimage/src/sys/kern/kern_intr.c#13 integrate
.. //depot/projects/vimage/src/sys/kern/kern_lock.c#12 integrate
.. //depot/projects/vimage/src/sys/kern/kern_mutex.c#12 integrate
.. //depot/projects/vimage/src/sys/kern/kern_proc.c#13 integrate
.. //depot/projects/vimage/src/sys/kern/kern_resource.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/kern_rmlock.c#2 integrate
.. //depot/projects/vimage/src/sys/kern/kern_rwlock.c#13 integrate
.. //depot/projects/vimage/src/sys/kern/kern_sx.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/subr_pcpu.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/subr_rman.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/subr_sleepqueue.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/subr_turnstile.c#10 integrate
.. //depot/projects/vimage/src/sys/kern/subr_witness.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/tty.c#20 integrate
.. //depot/projects/vimage/src/sys/kern/tty_compat.c#3 integrate
.. //depot/projects/vimage/src/sys/kern/tty_pts.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/tty_ttydisc.c#3 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_mbuf.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_mqueue.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_sockbuf.c#10 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_bio.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_mount.c#21 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_vnops.c#12 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/admpci.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/if_admsw.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/if_admswvar.h#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/obio.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/std.adm5120#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_bus_adm5120.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_cpu_adm5120.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/adm5120/uart_dev_adm5120.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/ADM5120#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/IDT#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/MALTA#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/SENTRY5#2 integrate
.. //depot/projects/vimage/src/sys/mips/idt/idtpci.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/idt/if_kr.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/idt/obio.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/idt/std.idt#2 integrate
.. //depot/projects/vimage/src/sys/mips/idt/uart_bus_rc32434.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/files.malta#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/gt.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/gt_pci.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/malta_machdep.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/obio.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/std.malta#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/uart_bus_maltausart.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/uart_cpu_maltausart.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/malta/yamon.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/mips/in_cksum.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/mips/intr_machdep.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sentry5/obio.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sentry5/s5_machdep.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sentry5/uart_bus_sbusart.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sentry5/uart_cpu_sbusart.c#2 integrate
.. //depot/projects/vimage/src/sys/modules/Makefile#28 integrate
.. //depot/projects/vimage/src/sys/modules/svr4/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/modules/wlan/Makefile#5 integrate
.. //depot/projects/vimage/src/sys/net/if_atmsubr.c#5 integrate
.. //depot/projects/vimage/src/sys/net/if_bridge.c#16 integrate
.. //depot/projects/vimage/src/sys/net/if_fwsubr.c#6 integrate
.. //depot/projects/vimage/src/sys/net/if_iso88025subr.c#4 integrate
.. //depot/projects/vimage/src/sys/net/if_mib.c#7 integrate
.. //depot/projects/vimage/src/sys/net/if_tap.c#7 integrate
.. //depot/projects/vimage/src/sys/net/if_tap.h#2 integrate
.. //depot/projects/vimage/src/sys/net/route.c#23 integrate
.. //depot/projects/vimage/src/sys/net/route.h#4 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211.c#21 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211.h#9 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ddb.c#9 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.h#10 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#10 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.h#7 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#12 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.h#7 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#12 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.h#7 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_phy.c#3 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_sta.c#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_base.c#35 integrate
.. //depot/projects/vimage/src/sys/netinet/if_ether.c#22 integrate
.. //depot/projects/vimage/src/sys/netinet/in_rmx.c#19 integrate
.. //depot/projects/vimage/src/sys/netinet/in_var.h#9 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_fw.h#13 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#42 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_debug.c#5 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_input.c#32 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_output.c#21 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#48 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#38 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_var.h#23 integrate
.. //depot/projects/vimage/src/sys/netinet6/icmp6.c#28 integrate
.. //depot/projects/vimage/src/sys/netinet6/mld6.c#14 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_vfsops.c#20 integrate
.. //depot/projects/vimage/src/sys/pc98/cbus/sio.c#7 integrate
.. //depot/projects/vimage/src/sys/pc98/conf/NOTES#9 integrate
.. //depot/projects/vimage/src/sys/pc98/include/bus.h#3 integrate
.. //depot/projects/vimage/src/sys/pc98/pc98/busiosubr.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/clock.c#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/mmu_oea.c#5 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/mp_cpudep.c#2 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/swtch.S#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/trap_subr.S#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/include/cpufunc.h#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/include/smp.h#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/include/spr.h#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/powerpc/autoconf.c#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/powerpc/cpu.c#6 integrate
.. //depot/projects/vimage/src/sys/powerpc/powerpc/mp_machdep.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/powerpc/openpic.c#6 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#15 integrate
.. //depot/projects/vimage/src/sys/security/mac_bsdextended/mac_bsdextended.c#12 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/asi.h#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/cpu.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/dcr.h#1 branch
.. //depot/projects/vimage/src/sys/sparc64/include/tlb.h#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/trap.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/tte.h#3 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/dma_sbus.c#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/lsi64854.c#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/lsi64854var.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/cheetah.c#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/exception.S#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/genassym.c#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/jbusppm.c#1 branch
.. //depot/projects/vimage/src/sys/sparc64/sparc64/machdep.c#12 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/mp_exception.S#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/mp_locore.S#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/mp_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/pmap.c#11 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/schppm.c#1 branch
.. //depot/projects/vimage/src/sys/sparc64/sparc64/support.S#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/swtch.S#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/tlb.c#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/trap.c#8 integrate
.. //depot/projects/vimage/src/sys/sun4v/include/asi.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/disk.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/gpt.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/interrupt.h#8 integrate
.. //depot/projects/vimage/src/sys/sys/lock.h#9 integrate
.. //depot/projects/vimage/src/sys/sys/mount.h#11 integrate
.. //depot/projects/vimage/src/sys/sys/param.h#26 integrate
.. //depot/projects/vimage/src/sys/sys/proc.h#22 integrate
.. //depot/projects/vimage/src/sys/sys/procfs.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/systm.h#13 integrate
.. //depot/projects/vimage/src/sys/sys/termios.h#5 integrate
.. //depot/projects/vimage/src/sys/sys/tty.h#5 integrate
.. //depot/projects/vimage/src/sys/sys/ttydevsw.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/vnode.h#11 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_extern.h#4 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_inode.c#5 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_snapshot.c#10 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_softdep.c#10 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vfsops.c#12 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/dirhash.h#3 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/inode.h#3 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufs_dirhash.c#3 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufs_inode.c#3 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufs_lookup.c#8 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufs_vnops.c#10 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufsmount.h#3 integrate
Differences ...
==== //depot/projects/vimage/src/sys/amd64/amd64/cpu_switch.S#10 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.163 2008/09/02 17:52:11 kib Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.164 2008/09/08 09:59:05 kib Exp $
*/
#include <machine/asmacros.h>
@@ -266,7 +266,7 @@
movl %es,PCB_ES(%r8)
movl %fs,PCB_FS(%r8)
jmp done_store_seg
-2: movq PCB_GS32P(%r8),%rax
+2: movq PCPU(GS32P),%rax
movq (%rax),%rax
movq %rax,PCB_GS32SD(%r8)
jmp 1b
@@ -283,7 +283,7 @@
movl PCB_FS(%r8),%fs
jmp done_load_seg
/* Restore userland %gs while preserving kernel gsbase */
-2: movq PCB_GS32P(%r8),%rax
+2: movq PCPU(GS32P),%rax
movq PCB_GS32SD(%r8),%rcx
movq %rcx,(%rax)
jmp 1b
==== //depot/projects/vimage/src/sys/amd64/amd64/genassym.c#10 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.169 2008/07/30 11:30:55 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.170 2008/09/08 09:59:05 kib Exp $");
#include "opt_compat.h"
#include "opt_kstack_pages.h"
@@ -147,7 +147,6 @@
ASSYM(PCB_SAVEFPU, offsetof(struct pcb, pcb_save));
ASSYM(PCB_SAVEFPU_SIZE, sizeof(struct savefpu));
ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault));
-ASSYM(PCB_GS32P, offsetof(struct pcb, pcb_gs32p));
ASSYM(PCB_GS32SD, offsetof(struct pcb, pcb_gs32sd));
ASSYM(PCB_SIZE, sizeof(struct pcb));
@@ -199,6 +198,7 @@
ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap));
ASSYM(PC_TSSP, offsetof(struct pcpu, pc_tssp));
ASSYM(PC_RSP0, offsetof(struct pcpu, pc_rsp0));
+ASSYM(PC_GS32P, offsetof(struct pcpu, pc_gs32p));
ASSYM(LA_VER, offsetof(struct LAPIC, version));
ASSYM(LA_TPR, offsetof(struct LAPIC, tpr));
==== //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#12 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.688 2008/09/02 17:52:11 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.690 2008/09/08 09:59:05 kib Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -803,7 +803,7 @@
* Initialize segments & interrupt table
*/
-struct user_segment_descriptor gdt[NGDT * MAXCPU];/* global descriptor table */
+struct user_segment_descriptor gdt[NGDT * MAXCPU];/* global descriptor tables */
static struct gate_descriptor idt0[NIDT];
struct gate_descriptor *idt = &idt0[0]; /* interrupt descriptor table */
@@ -870,7 +870,7 @@
/* GPROC0_SEL 6 Proc 0 Tss Descriptor */
{
0x0, /* segment base address */
- sizeof(struct amd64tss)-1,/* length - all address space */
+ sizeof(struct amd64tss)-1,/* length */
SDT_SYSTSS, /* segment type */
SEL_KPL, /* segment descriptor priority level */
1, /* segment descriptor present */
@@ -1347,6 +1347,7 @@
PCPU_SET(curthread, &thread0);
PCPU_SET(curpcb, thread0.td_pcb);
PCPU_SET(tssp, &common_tss[0]);
+ PCPU_SET(gs32p, &gdt[GUGS32_SEL]);
/*
* Initialize mutexes.
==== //depot/projects/vimage/src/sys/amd64/amd64/mp_machdep.c#10 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.291 2008/07/09 19:44:37 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.293 2008/09/08 09:59:05 kib Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -436,7 +436,8 @@
{
struct pcpu *pc;
u_int64_t msr, cr0;
- int cpu, gsel_tss;
+ int cpu, gsel_tss, x;
+ struct region_descriptor ap_gdt;
/* Set by the startup code for us to use */
cpu = bootAP;
@@ -447,11 +448,17 @@
common_tss[cpu].tss_iobase = sizeof(struct amd64tss);
common_tss[cpu].tss_ist1 = (long)&doublefault_stack[PAGE_SIZE];
+ /* Prepare private GDT */
gdt_segs[GPROC0_SEL].ssd_base = (long) &common_tss[cpu];
ssdtosyssd(&gdt_segs[GPROC0_SEL],
- (struct system_segment_descriptor *)&gdt[GPROC0_SEL]);
-
- lgdt(&r_gdt); /* does magic intra-segment return */
+ (struct system_segment_descriptor *)&gdt[NGDT * cpu + GPROC0_SEL]);
+ for (x = 0; x < NGDT; x++) {
+ if (x != GPROC0_SEL && x != (GPROC0_SEL + 1))
+ ssdtosd(&gdt_segs[x], &gdt[NGDT * cpu + x]);
+ }
+ ap_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1;
+ ap_gdt.rd_base = (long) &gdt[NGDT * cpu];
+ lgdt(&ap_gdt); /* does magic intra-segment return */
/* Get per-cpu data */
pc = &__pcpu[cpu];
@@ -463,6 +470,7 @@
pc->pc_curthread = 0;
pc->pc_tssp = &common_tss[cpu];
pc->pc_rsp0 = 0;
+ pc->pc_gs32p = &gdt[NGDT * cpu + GUGS32_SEL];
wrmsr(MSR_FSBASE, 0); /* User value */
wrmsr(MSR_GSBASE, (u_int64_t)pc);
==== //depot/projects/vimage/src/sys/amd64/amd64/trap.c#11 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.327 2008/06/20 05:22:09 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.328 2008/09/08 09:55:51 kib Exp $");
/*
* AMD64 Trap and System call handling
@@ -692,7 +692,8 @@
code = frame->tf_err;
type = frame->tf_trapno;
- sdtossd(&gdt[IDXSEL(frame->tf_cs & 0xffff)], &softseg);
+ sdtossd(&gdt[NGDT * PCPU_GET(cpuid) + IDXSEL(frame->tf_cs & 0xffff)],
+ &softseg);
if (type <= MAX_TRAP_MSG)
msg = trap_msg[type];
==== //depot/projects/vimage/src/sys/amd64/amd64/vm_machdep.c#6 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.257 2008/03/12 10:11:54 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.258 2008/09/11 18:33:57 jhb Exp $");
#include "opt_isa.h"
#include "opt_cpu.h"
@@ -466,10 +466,13 @@
/*
* Attempt to force a reset via the Reset Control register at
- * I/O port 0xcf9. Bit 2 forces a system reset when it is
- * written as 1. Bit 1 selects the type of reset to attempt:
- * 0 selects a "soft" reset, and 1 selects a "hard" reset. We
- * try to do a "soft" reset first, and then a "hard" reset.
+ * I/O port 0xcf9. Bit 2 forces a system reset when it
+ * transitions from 0 to 1. Bit 1 selects the type of reset
+ * to attempt: 0 selects a "soft" reset, and 1 selects a
+ * "hard" reset. We try a "hard" reset. The first write sets
+ * bit 1 to select a "hard" reset and clears bit 2. The
+ * second write forces a 0 -> 1 transition in bit 2 to trigger
+ * a reset.
*/
outb(0xcf9, 0x2);
outb(0xcf9, 0x6);
==== //depot/projects/vimage/src/sys/amd64/include/pcb.h#5 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.65 2008/07/30 11:30:55 kib Exp $
+ * $FreeBSD: src/sys/amd64/include/pcb.h,v 1.66 2008/09/08 09:59:05 kib Exp $
*/
#ifndef _AMD64_PCB_H_
@@ -77,7 +77,6 @@
caddr_t pcb_onfault; /* copyin/out fault recovery */
/* 32-bit segment descriptor */
- struct user_segment_descriptor *pcb_gs32p;
struct user_segment_descriptor pcb_gs32sd;
};
==== //depot/projects/vimage/src/sys/amd64/include/pcpu.h#6 (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.50 2008/08/19 19:53:52 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/pcpu.h,v 1.51 2008/09/08 09:59:05 kib Exp $
*/
#ifndef _MACHINE_PCPU_H_
@@ -48,7 +48,8 @@
register_t pc_rsp0; \
register_t pc_scratch_rsp; /* User %rsp in syscall */ \
u_int pc_apic_id; \
- u_int pc_acpi_id /* ACPI CPU id */
+ u_int pc_acpi_id; /* ACPI CPU id */ \
+ struct user_segment_descriptor *pc_gs32p
#ifdef _KERNEL
==== //depot/projects/vimage/src/sys/amd64/include/pmc_mdep.h#4 (text+ko) ====
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2003-2007 Joseph Koshy
+ * Copyright (c) 2003-2008 Joseph Koshy
* Copyright (c) 2007 The FreeBSD Foundation
* All rights reserved.
*
@@ -27,7 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.5 2008/06/20 05:22:09 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.6 2008/09/15 06:47:52 jkoshy Exp $
*/
/* Machine dependent interfaces */
@@ -59,7 +59,8 @@
#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->tf_rip)
#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_rbp)
-#define PMC_TRAPFRAME_TO_SP(TF) ((TF)->tf_rsp)
+#define PMC_TRAPFRAME_TO_USER_SP(TF) ((TF)->tf_rsp)
+#define PMC_TRAPFRAME_TO_KERNEL_SP(TF) ((TF)->tf_rsp)
#define PMC_AT_FUNCTION_PROLOGUE_PUSH_BP(I) \
(((I) & 0xffffffff) == 0xe5894855) /* pushq %rbp; movq %rsp,%rbp */
==== //depot/projects/vimage/src/sys/amd64/include/segments.h#3 (text+ko) ====
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)segments.h 7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/include/segments.h,v 1.39 2007/03/30 00:06:21 jkim Exp $
+ * $FreeBSD: src/sys/amd64/include/segments.h,v 1.40 2008/09/08 08:58:29 kib Exp $
*/
#ifndef _MACHINE_SEGMENTS_H_
@@ -201,7 +201,7 @@
#define GUDATA_SEL 4 /* User 32/64 bit Data Descriptor */
#define GUCODE_SEL 5 /* User 64 bit Code Descriptor */
#define GPROC0_SEL 6 /* TSS for entering kernel etc */
-/* slot 6 is second half of GPROC0_SEL */
+/* slot 7 is second half of GPROC0_SEL */
#define GUGS32_SEL 8 /* User 32 bit GS Descriptor */
#define NGDT 9
==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_genassym.c#2 (text+ko) ====
@@ -1,5 +1,5 @@
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_genassym.c,v 1.1 2004/08/16 07:55:06 tjr Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_genassym.c,v 1.2 2008/09/07 16:39:21 kib Exp $");
#include <sys/param.h>
#include <sys/assym.h>
@@ -9,9 +9,8 @@
ASSYM(LINUX_SIGF_HANDLER, offsetof(struct l_sigframe, sf_handler));
ASSYM(LINUX_SIGF_SC, offsetof(struct l_sigframe, sf_sc));
-ASSYM(LINUX_SC_GS, offsetof(struct l_sigcontext, sc_gs));
-ASSYM(LINUX_SC_FS, offsetof(struct l_sigcontext, sc_fs));
ASSYM(LINUX_SC_ES, offsetof(struct l_sigcontext, sc_es));
ASSYM(LINUX_SC_DS, offsetof(struct l_sigcontext, sc_ds));
ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler));
ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc));
+ASSYM(LINUX_RT_SIGF_SC, offsetof(struct l_ucontext, uc_mcontext));
==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_locore.s#3 (text+ko) ====
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/amd64/linux32/linux32_locore.s,v 1.2 2007/03/30 00:06:21 jkim Exp $ */
+/* $FreeBSD: src/sys/amd64/linux32/linux32_locore.s,v 1.3 2008/09/07 16:39:21 kib Exp $ */
#include "linux32_assym.h" /* system definitions */
#include <machine/asmacros.h> /* miscellaneous asm macros */
@@ -23,8 +23,9 @@
linux_rt_sigcode:
call *LINUX_RT_SIGF_HANDLER(%esp)
leal LINUX_RT_SIGF_UC(%esp),%ebx /* linux ucp */
- movl LINUX_SC_ES(%ebx),%es
- movl LINUX_SC_DS(%ebx),%ds
+ leal LINUX_RT_SIGF_SC(%ebx),%ecx /* linux sigcontext */
+ movl LINUX_SC_ES(%ecx),%es
+ movl LINUX_SC_DS(%ecx),%ds
push %eax /* fake ret addr */
movl $LINUX_SYS_linux_rt_sigreturn,%eax /* linux_rt_sigreturn() */
int $0x80 /* enter kernel with args */
==== //depot/projects/vimage/src/sys/amd64/linux32/linux32_machdep.c#13 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.47 2008/07/30 11:30:55 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.49 2008/09/08 09:59:05 kib Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -694,7 +694,6 @@
#endif
td2->td_pcb->pcb_gsbase = (register_t)info.base_addr;
td2->td_pcb->pcb_gs32sd = sd;
- td2->td_pcb->pcb_gs32p = &gdt[GUGS32_SEL];
td2->td_pcb->pcb_gs = GSEL(GUGS32_SEL, SEL_UPL);
td2->td_pcb->pcb_flags |= PCB_GS32BIT | PCB_32BIT;
}
@@ -1352,9 +1351,8 @@
critical_enter();
td->td_pcb->pcb_gsbase = (register_t)info.base_addr;
- td->td_pcb->pcb_gs32sd = gdt[GUGS32_SEL] = sd;
- td->td_pcb->pcb_gs32p = &gdt[GUGS32_SEL];
- td->td_pcb->pcb_flags |= PCB_32BIT;
+ td->td_pcb->pcb_gs32sd = *PCPU_GET(gs32p) = sd;
+ td->td_pcb->pcb_flags |= PCB_32BIT | PCB_GS32BIT;
wrmsr(MSR_KGSBASE, td->td_pcb->pcb_gsbase);
critical_exit();
==== //depot/projects/vimage/src/sys/amd64/pci/pci_cfgreg.c#4 (text+ko) ====
@@ -27,12 +27,13 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.111 2008/08/22 02:14:23 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.113 2008/09/11 21:42:11 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
#include <sys/lock.h>
+#include <sys/kernel.h>
#include <sys/mutex.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
@@ -46,6 +47,8 @@
CFGMECH_PCIE,
};
+static uint32_t pci_docfgregread(int bus, int slot, int func, int reg,
+ int bytes);
static int pciereg_cfgread(int bus, unsigned slot, unsigned func,
unsigned reg, unsigned bytes);
static void pciereg_cfgwrite(int bus, unsigned slot, unsigned func,
@@ -56,7 +59,10 @@
static int cfgmech;
static vm_offset_t pcie_base;
static int pcie_minbus, pcie_maxbus;
+static uint32_t pcie_badslots;
static struct mtx pcicfg_mtx;
+static int mcfg_enable = 1;
+TUNABLE_INT("hw.pci.mcfg", &mcfg_enable);
/*
* Initialise access to PCI configuration space
@@ -64,12 +70,17 @@
int
pci_cfgregopen(void)
{
+ static int once = 0;
uint64_t pciebar;
uint16_t did, vid;
+ if (!once) {
+ mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
+ once = 1;
+ }
+
if (cfgmech != CFGMECH_NONE)
return (1);
- mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
cfgmech = CFGMECH_1;
/*
@@ -103,6 +114,17 @@
return (1);
}
+static uint32_t
+pci_docfgregread(int bus, int slot, int func, int reg, int bytes)
+{
+
+ if (cfgmech == CFGMECH_PCIE &&
+ (bus != 0 || !(1 << slot & pcie_badslots)))
+ return (pciereg_cfgread(bus, slot, func, reg, bytes));
+ else
+ return (pcireg_cfgread(bus, slot, func, reg, bytes));
+}
+
/*
* Read configuration space register
*/
@@ -120,12 +142,12 @@
* as an invalid IRQ.
*/
if (reg == PCIR_INTLINE && bytes == 1) {
- line = pcireg_cfgread(bus, slot, func, PCIR_INTLINE, 1);
+ line = pci_docfgregread(bus, slot, func, PCIR_INTLINE, 1);
if (line == 0 || line >= 128)
line = PCI_INVALID_IRQ;
return (line);
}
- return (pcireg_cfgread(bus, slot, func, reg, bytes));
+ return (pci_docfgregread(bus, slot, func, reg, bytes));
}
/*
@@ -135,7 +157,11 @@
pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes)
{
- pcireg_cfgwrite(bus, slot, func, reg, data, bytes);
+ if (cfgmech == CFGMECH_PCIE &&
+ (bus != 0 || !(1 << slot & pcie_badslots)))
+ pciereg_cfgwrite(bus, slot, func, reg, data, bytes);
+ else
+ pcireg_cfgwrite(bus, slot, func, reg, data, bytes);
}
/*
@@ -175,11 +201,6 @@
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) {
@@ -205,11 +226,6 @@
{
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) {
@@ -232,7 +248,12 @@
int
pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t maxbus)
{
+ uint32_t val1, val2;
+ int slot;
+ if (!mcfg_enable)
+ return (0);
+
if (minbus != 0)
return (0);
@@ -245,6 +266,25 @@
pcie_minbus = minbus;
pcie_maxbus = maxbus;
cfgmech = CFGMECH_PCIE;
+
+ /*
+ * On some AMD systems, some of the devices on bus 0 are
+ * inaccessible using memory-mapped PCI config access. Walk
+ * bus 0 looking for such devices. For these devices, we will
+ * fall back to using type 1 config access instead.
+ */
+ if (pci_cfgregopen() != 0) {
+ for (slot = 0; slot < 32; slot++) {
+ val1 = pcireg_cfgread(0, slot, 0, 0, 4);
+ if (val1 == 0xffffffff)
+ continue;
+
+ val2 = pciereg_cfgread(0, slot, 0, 0, 4);
+ if (val2 != val1)
+ pcie_badslots |= (1 << slot);
+ }
+ }
+
return (1);
}
==== //depot/projects/vimage/src/sys/arm/arm/intr.c#7 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.23 2008/08/04 20:29:39 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/syslog.h>
@@ -92,9 +92,19 @@
}
int
-arm_remove_irqhandler(void *cookie)
+arm_remove_irqhandler(int irq, void *cookie)
{
- return (intr_event_remove_handler(cookie));
+ struct intr_event *event;
+ int error;
+
+ event = intr_events[irq];
+ arm_mask_irq(irq);
+
+ error = intr_event_remove_handler(cookie);
+
+ if (!TAILQ_EMPTY(&event->ie_handlers))
+ arm_unmask_irq(irq);
+ return (error);
}
void dosoftints(void);
==== //depot/projects/vimage/src/sys/arm/arm/nexus.c#4 (text+ko) ====
@@ -12,7 +12,7 @@
* no representations about the suitability of this software for any
* purpose. It is provided "as is" without express or implied
* warranty.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
* ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/nexus.c,v 1.12 2008/03/12 15:46:25 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/nexus.c,v 1.14 2008/09/11 12:39:54 raj Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -76,14 +76,12 @@
static int nexus_print_child(device_t, device_t);
static device_t nexus_add_child(device_t, int, const char *, int);
static struct resource *nexus_alloc_resource(device_t, device_t, int, int *,
- u_long, u_long, u_long, u_int);
+ u_long, u_long, u_long, u_int);
static int nexus_activate_resource(device_t, device_t, int, int,
- struct resource *);
-static int
-nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
- driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
-static int
-nexus_teardown_intr(device_t, device_t, struct resource *, void *);
+ struct resource *);
+static int nexus_setup_intr(device_t dev, device_t child, struct resource *res,
+ int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
+static int nexus_teardown_intr(device_t, device_t, struct resource *, void *);
static device_method_t nexus_methods[] = {
/* Device interface */
@@ -110,56 +108,48 @@
nexus_probe(device_t dev)
{
device_quiet(dev); /* suppress attach message for neatness */
-
+
mem_rman.rm_start = 0;
mem_rman.rm_end = ~0u;
mem_rman.rm_type = RMAN_ARRAY;
mem_rman.rm_descr = "I/O memory addresses";
- if (rman_init(&mem_rman)
- || rman_manage_region(&mem_rman, 0, ~0u))
+ if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0u))
panic("nexus_probe mem_rman");
-
+
return (0);
- return bus_generic_probe(dev);
}
static int
nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep)
{
- int i;
if ((rman_get_flags(res) & RF_SHAREABLE) == 0)
flags |= INTR_EXCL;
- for (i = rman_get_start(res); i <= rman_get_end(res); i++)
- arm_setup_irqhandler(device_get_nameunit(child),
- filt, intr, arg, i, flags, cookiep);
+ arm_setup_irqhandler(device_get_nameunit(child),
+ filt, intr, arg, rman_get_start(res), flags, cookiep);
return (0);
}
static int
nexus_teardown_intr(device_t dev, device_t child, struct resource *r, void *ih)
{
- int error;
- int i;
- for (i = rman_get_start(r); i <= rman_get_end(r); i++)
- arm_mask_irq(i);
- error = arm_remove_irqhandler(ih);
- return (error);
+ return (arm_remove_irqhandler(rman_get_start(r), ih));
}
static int
nexus_attach(device_t dev)
{
+
/*
* First, deal with the children we know about already
*/
bus_generic_probe(dev);
bus_generic_attach(dev);
-
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list