Date: Tue, 16 Sep 2008 21:28:35 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 149909 for review Message-ID: <200809162128.m8GLSZ79063235@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=149909 Change 149909 by zec@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809162128.m8GLSZ79063235>