Date: Mon, 31 Jan 2005 22:16:31 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 70054 for review Message-ID: <200501312216.j0VMGV9L078662@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=70054 Change 70054 by jhb@jhb_slimer on 2005/01/31 22:15:49 IFC of d00m @70050. Affected files ... .. //depot/projects/smpng/sys/alpha/include/bus.h#17 integrate .. //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#19 integrate .. //depot/projects/smpng/sys/alpha/osf1/imgact_osf1.c#13 integrate .. //depot/projects/smpng/sys/alpha/osf1/osf1_sysvec.c#8 integrate .. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/db_trace.c#12 integrate .. //depot/projects/smpng/sys/amd64/amd64/exception.S#11 integrate .. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#11 integrate .. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#9 integrate .. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#10 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#34 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#16 integrate .. //depot/projects/smpng/sys/amd64/amd64/mptable.c#6 integrate .. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#24 integrate .. //depot/projects/smpng/sys/amd64/include/apicreg.h#4 integrate .. //depot/projects/smpng/sys/amd64/include/apicvar.h#4 integrate .. //depot/projects/smpng/sys/amd64/include/bus_dma.h#10 integrate .. //depot/projects/smpng/sys/amd64/include/intr_machdep.h#4 integrate .. //depot/projects/smpng/sys/amd64/include/param.h#14 integrate .. //depot/projects/smpng/sys/amd64/include/smp.h#6 integrate .. //depot/projects/smpng/sys/amd64/isa/atpic.c#9 integrate .. //depot/projects/smpng/sys/amd64/isa/elcr.c#2 integrate .. //depot/projects/smpng/sys/amd64/isa/isa.c#6 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#3 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#7 integrate .. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#10 integrate .. //depot/projects/smpng/sys/arm/arm/locore.S#7 integrate .. //depot/projects/smpng/sys/arm/arm/trap.c#8 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/uart_cpu_i80321.c#4 integrate .. //depot/projects/smpng/sys/boot/common/ufsread.c#9 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#25 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#25 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_pass.c#14 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_ses.c#12 integrate .. //depot/projects/smpng/sys/coda/coda_fbsd.c#13 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.c#20 integrate .. //depot/projects/smpng/sys/coda/coda_vnops.h#10 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#14 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#15 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#15 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#15 integrate .. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#15 integrate .. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#15 integrate .. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#12 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#37 integrate .. //depot/projects/smpng/sys/compat/linux/linux_ipc.c#18 integrate .. //depot/projects/smpng/sys/compat/linux/linux_misc.c#52 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#22 integrate .. //depot/projects/smpng/sys/compat/ndis/hal_var.h#6 integrate .. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#21 integrate .. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#16 integrate .. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#13 integrate .. //depot/projects/smpng/sys/compat/ndis/pe_var.h#7 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#11 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#23 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#23 integrate .. //depot/projects/smpng/sys/compat/pecoff/imgact_pecoff.c#25 integrate .. //depot/projects/smpng/sys/compat/svr4/imgact_svr4.c#12 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_sysvec.c#18 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#5 integrate .. //depot/projects/smpng/sys/conf/NOTES#91 integrate .. //depot/projects/smpng/sys/conf/files#134 integrate .. //depot/projects/smpng/sys/conf/files.pc98#69 integrate .. //depot/projects/smpng/sys/conf/kern.pre.mk#43 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#41 integrate .. //depot/projects/smpng/sys/conf/options#92 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf.c#15 integrate .. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#11 integrate .. //depot/projects/smpng/sys/dev/aac/aacreg.h#15 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#30 integrate .. //depot/projects/smpng/sys/dev/aha/aha_isa.c#13 integrate .. //depot/projects/smpng/sys/dev/aha/aha_mca.c#9 integrate .. //depot/projects/smpng/sys/dev/aha/ahareg.h#6 integrate .. //depot/projects/smpng/sys/dev/amr/amr.c#27 integrate .. //depot/projects/smpng/sys/dev/amr/amr_pci.c#19 integrate .. //depot/projects/smpng/sys/dev/amr/amrreg.h#6 integrate .. //depot/projects/smpng/sys/dev/amr/amrvar.h#18 integrate .. //depot/projects/smpng/sys/dev/ata/ata-card.c#23 integrate .. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#53 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/amrr/amrr.c#3 integrate .. //depot/projects/smpng/sys/dev/ath/ath_rate/onoe/onoe.c#3 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#22 integrate .. //depot/projects/smpng/sys/dev/ath/if_athvar.h#12 integrate .. //depot/projects/smpng/sys/dev/bktr/bktr_card.c#10 integrate .. //depot/projects/smpng/sys/dev/bktr/bktr_mem.c#8 integrate .. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.c#7 integrate .. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.h#4 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#36 integrate .. //depot/projects/smpng/sys/dev/cs/if_cs.c#13 integrate .. //depot/projects/smpng/sys/dev/cs/if_cs_pccard.c#11 integrate .. //depot/projects/smpng/sys/dev/cs/if_csvar.h#4 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed.c#28 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#26 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#8 integrate .. //depot/projects/smpng/sys/dev/ed/if_edvar.h#8 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#43 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep.c#18 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_eisa.c#11 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_isa.c#11 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_mca.c#8 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#16 integrate .. //depot/projects/smpng/sys/dev/ep/if_epvar.h#7 integrate .. //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#8 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#17 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_isa.c#9 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc_pccard.c#6 integrate .. //depot/projects/smpng/sys/dev/fdc/fdcvar.h#7 integrate .. //depot/projects/smpng/sys/dev/fe/if_fe_pccard.c#11 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#59 integrate .. //depot/projects/smpng/sys/dev/hifn/hifn7751.c#20 integrate .. //depot/projects/smpng/sys/dev/hifn/hifn7751reg.h#6 integrate .. //depot/projects/smpng/sys/dev/hifn/hifn7751var.h#7 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#23 integrate .. //depot/projects/smpng/sys/dev/iir/iir.h#11 integrate .. //depot/projects/smpng/sys/dev/ips/ips.c#11 integrate .. //depot/projects/smpng/sys/dev/ips/ips.h#10 integrate .. //depot/projects/smpng/sys/dev/ips/ips_commands.c#10 integrate .. //depot/projects/smpng/sys/dev/ips/ips_disk.c#7 integrate .. //depot/projects/smpng/sys/dev/ips/ips_ioctl.c#6 integrate .. //depot/projects/smpng/sys/dev/ips/ips_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/isp/isp.c#35 integrate .. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#33 integrate .. //depot/projects/smpng/sys/dev/isp/isp_pci.c#27 integrate .. //depot/projects/smpng/sys/dev/isp/isp_target.c#14 integrate .. //depot/projects/smpng/sys/dev/isp/isp_target.h#9 integrate .. //depot/projects/smpng/sys/dev/isp/ispvar.h#24 integrate .. //depot/projects/smpng/sys/dev/ispfw/asm_2300.h#8 integrate .. //depot/projects/smpng/sys/dev/ispfw/ispfw.c#10 integrate .. //depot/projects/smpng/sys/dev/led/led.c#10 integrate .. //depot/projects/smpng/sys/dev/mcd/mcd.c#12 integrate .. //depot/projects/smpng/sys/dev/md/md.c#64 integrate .. //depot/projects/smpng/sys/dev/nmdm/nmdm.c#26 integrate .. //depot/projects/smpng/sys/dev/pccard/card_if.m#12 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard.c#31 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#16 integrate .. //depot/projects/smpng/sys/dev/pccard/pccard_cis.h#3 integrate .. //depot/projects/smpng/sys/dev/pccard/pccarddevs#41 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#50 integrate .. //depot/projects/smpng/sys/dev/puc/puc_sbus.c#7 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#29 integrate .. //depot/projects/smpng/sys/dev/ray/if_ray.c#17 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#19 integrate .. //depot/projects/smpng/sys/dev/scd/scd.c#11 integrate .. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#12 integrate .. //depot/projects/smpng/sys/dev/snc/if_snc_pccard.c#6 integrate .. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.c#7 integrate .. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#7 integrate .. //depot/projects/smpng/sys/dev/uart/uart_kbd_sun.c#3 integrate .. //depot/projects/smpng/sys/dev/usb/ucom.c#23 integrate .. //depot/projects/smpng/sys/dev/usb/umodem.c#23 integrate .. //depot/projects/smpng/sys/dev/usb/uplcom.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/usb_port.h#24 integrate .. //depot/projects/smpng/sys/dev/usb/usb_subr.c#29 integrate .. //depot/projects/smpng/sys/dev/usb/uvscom.c#16 integrate .. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#31 integrate .. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#16 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#40 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vfsops.c#27 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vnops.c#26 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#20 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#39 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vnops.c#31 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_subr.c#19 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_vfsops.c#27 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_vnops.c#21 integrate .. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#19 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_io.c#17 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_node.c#14 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_node.c#19 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vnops.c#30 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#19 integrate .. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#25 integrate .. //depot/projects/smpng/sys/fs/umapfs/umap_vnops.c#11 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#23 integrate .. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#23 integrate .. //depot/projects/smpng/sys/geom/geom_disk.c#42 integrate .. //depot/projects/smpng/sys/geom/geom_mbr.c#29 integrate .. //depot/projects/smpng/sys/geom/geom_vfs.c#3 integrate .. //depot/projects/smpng/sys/geom/geom_vfs.h#2 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_drive.c#8 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#7 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_plex.c#10 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_state.c#6 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#10 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_volume.c#5 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_inode.c#16 integrate .. //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#42 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#38 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_sysvec.c#8 integrate .. //depot/projects/smpng/sys/i386/ibcs2/imgact_coff.c#18 integrate .. //depot/projects/smpng/sys/i386/include/sysarch.h#9 integrate .. //depot/projects/smpng/sys/i386/linux/imgact_linux.c#16 integrate .. //depot/projects/smpng/sys/i386/linux/linux_machdep.c#28 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#42 integrate .. //depot/projects/smpng/sys/ia64/ia64/unaligned.c#10 integrate .. //depot/projects/smpng/sys/ia64/include/asm.h#10 integrate .. //depot/projects/smpng/sys/isa/isa_common.c#15 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_node.c#15 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vfsops.c#35 integrate .. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vnops.c#22 integrate .. //depot/projects/smpng/sys/kern/imgact_aout.c#26 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#41 integrate .. //depot/projects/smpng/sys/kern/imgact_gzip.c#11 integrate .. //depot/projects/smpng/sys/kern/imgact_shell.c#8 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#53 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#34 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#76 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#82 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#92 integrate .. //depot/projects/smpng/sys/kern/kern_kse.c#16 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#37 integrate .. //depot/projects/smpng/sys/kern/kern_lockf.c#18 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#33 integrate .. //depot/projects/smpng/sys/kern/kern_mib.c#25 integrate .. //depot/projects/smpng/sys/kern/kern_module.c#15 integrate .. //depot/projects/smpng/sys/kern/kern_prot.c#86 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#31 integrate .. //depot/projects/smpng/sys/kern/kern_timeout.c#22 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#46 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#126 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#39 integrate .. //depot/projects/smpng/sys/kern/syscalls.c#53 integrate .. //depot/projects/smpng/sys/kern/syscalls.master#54 integrate .. //depot/projects/smpng/sys/kern/sysv_msg.c#26 integrate .. //depot/projects/smpng/sys/kern/sysv_sem.c#30 integrate .. //depot/projects/smpng/sys/kern/sysv_shm.c#28 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#66 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#64 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#73 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#23 integrate .. //depot/projects/smpng/sys/kern/vfs_cluster.c#37 integrate .. //depot/projects/smpng/sys/kern/vfs_default.c#35 integrate .. //depot/projects/smpng/sys/kern/vfs_lookup.c#23 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#44 integrate .. //depot/projects/smpng/sys/kern/vfs_subr.c#95 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#81 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#57 integrate .. //depot/projects/smpng/sys/kern/vnode_if.src#22 integrate .. //depot/projects/smpng/sys/libkern/strvalid.c#4 integrate .. //depot/projects/smpng/sys/modules/Makefile#89 integrate .. //depot/projects/smpng/sys/modules/agp/Makefile#8 integrate .. //depot/projects/smpng/sys/modules/aic7xxx/ahd/Makefile#6 integrate .. //depot/projects/smpng/sys/modules/bios/smapi/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/ie/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/netgraph/Makefile#18 integrate .. //depot/projects/smpng/sys/modules/pcic/Makefile#4 delete .. //depot/projects/smpng/sys/modules/sound/driver/maestro/Makefile#3 integrate .. //depot/projects/smpng/sys/net/if.c#61 integrate .. //depot/projects/smpng/sys/net/if_vlan.c#33 integrate .. //depot/projects/smpng/sys/net/raw_cb.c#12 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.c#13 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#3 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_input.c#13 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#13 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#14 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.h#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_output.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#10 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#6 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.h#5 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_var.h#10 integrate .. //depot/projects/smpng/sys/netgraph/netflow/netflow.c#4 integrate .. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.c#3 integrate .. //depot/projects/smpng/sys/netgraph/ng_base.c#32 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#48 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#63 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#70 integrate .. //depot/projects/smpng/sys/netinet/tcp_subr.c#63 integrate .. //depot/projects/smpng/sys/netinet/tcp_syncache.c#36 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#25 integrate .. //depot/projects/smpng/sys/nfs4client/nfs4_vnops.c#13 integrate .. //depot/projects/smpng/sys/nfsclient/nfs.h#24 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#39 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_node.c#18 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#49 integrate .. //depot/projects/smpng/sys/nfsserver/nfs.h#15 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#40 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#22 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_srvsubs.c#25 integrate .. //depot/projects/smpng/sys/pci/if_rlreg.h#23 integrate .. //depot/projects/smpng/sys/pci/if_sk.c#42 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#52 integrate .. //depot/projects/smpng/sys/security/mac/mac_vfs.c#7 integrate .. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#31 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#24 integrate .. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.h#3 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#29 integrate .. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#9 integrate .. //depot/projects/smpng/sys/security/mac_test/mac_test.c#26 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#52 integrate .. //depot/projects/smpng/sys/sparc64/include/bus.h#23 integrate .. //depot/projects/smpng/sys/sparc64/include/md_var.h#14 integrate .. //depot/projects/smpng/sys/sparc64/pci/ofw_pcibus.c#4 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#29 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#71 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/sys_machdep.c#13 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#47 integrate .. //depot/projects/smpng/sys/sys/bus.h#19 integrate .. //depot/projects/smpng/sys/sys/cdio.h#6 integrate .. //depot/projects/smpng/sys/sys/conf.h#37 integrate .. //depot/projects/smpng/sys/sys/device_port.h#2 integrate .. //depot/projects/smpng/sys/sys/imgact.h#11 integrate .. //depot/projects/smpng/sys/sys/ktr.h#19 integrate .. //depot/projects/smpng/sys/sys/lockf.h#5 integrate .. //depot/projects/smpng/sys/sys/lockmgr.h#12 integrate .. //depot/projects/smpng/sys/sys/mount.h#37 integrate .. //depot/projects/smpng/sys/sys/namei.h#14 integrate .. //depot/projects/smpng/sys/sys/param.h#76 integrate .. //depot/projects/smpng/sys/sys/socketvar.h#42 integrate .. //depot/projects/smpng/sys/sys/syscall.h#52 integrate .. //depot/projects/smpng/sys/sys/syscall.mk#52 integrate .. //depot/projects/smpng/sys/sys/syscallsubr.h#15 integrate .. //depot/projects/smpng/sys/sys/sysproto.h#54 integrate .. //depot/projects/smpng/sys/sys/systm.h#60 integrate .. //depot/projects/smpng/sys/sys/time.h#17 integrate .. //depot/projects/smpng/sys/sys/umtx.h#11 integrate .. //depot/projects/smpng/sys/sys/vnode.h#56 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_alloc.c#34 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_balloc.c#16 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_extern.h#17 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_inode.c#21 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#12 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#45 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#39 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#67 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#39 integrate .. //depot/projects/smpng/sys/ufs/ffs/fs.h#18 integrate .. //depot/projects/smpng/sys/ufs/ufs/extattr.h#7 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_extattr.c#32 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_inode.c#19 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vfsops.c#19 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#46 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufsmount.h#13 integrate .. //depot/projects/smpng/sys/vm/memguard.c#1 branch .. //depot/projects/smpng/sys/vm/memguard.h#1 branch .. //depot/projects/smpng/sys/vm/vm_fault.c#47 integrate .. //depot/projects/smpng/sys/vm/vm_glue.c#54 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#52 integrate .. //depot/projects/smpng/sys/vm/vm_object.c#67 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.c#48 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.h#6 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/include/bus.h#17 (text+ko) ==== @@ -67,7 +67,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.27 2005/01/15 20:11:25 scottl Exp $ */ +/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.28 2005/01/29 21:43:33 ru Exp $ */ #ifndef _ALPHA_BUS_H_ #define _ALPHA_BUS_H_ @@ -88,7 +88,7 @@ /* The largest address space known so far is 40 bits */ #define BUS_SPACE_MAXADDR 0xFFFFFFFFFUL -#define BUS_SPACE_UNRESTRICTED (~0UL) +#define BUS_SPACE_UNRESTRICTED (~0) /* * Map a region of device bus space into CPU virtual address space. ==== //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#19 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.93 2004/07/15 08:25:59 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.94 2005/01/29 23:11:57 sobomax Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -91,7 +91,7 @@ (curthread->td_proc->p_flag & P_SA) == 0, ("unsafe elf_linux_fixup(), should be curproc")); args = (Elf64_Auxargs *)imgp->auxargs; - pos = *stack_base + (imgp->argc + imgp->envc + 2); + pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2); if (args->trace) AUXARGS_ENTRY(pos, AT_DEBUG, 1); @@ -114,7 +114,7 @@ imgp->auxargs = NULL; (*stack_base)--; - **stack_base = (register_t)imgp->argc; + **stack_base = (register_t)imgp->args->argc; return 0; } @@ -148,8 +148,8 @@ if ((error = exec_shell_imgact(imgp)) == 0) { char *rpath = NULL; - linux_emul_find(FIRST_THREAD_IN_PROC(imgp->proc), NULL, - imgp->interpreter_name, &rpath, 0); + linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc), + imgp->interpreter_name, UIO_SYSSPACE, &rpath, 0); if (rpath != imgp->interpreter_name) { int len = strlen(rpath) + 1; ==== //depot/projects/smpng/sys/alpha/osf1/imgact_osf1.c#13 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/osf1/imgact_osf1.c,v 1.21 2005/01/05 20:05:51 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/imgact_osf1.c,v 1.22 2005/01/29 23:11:57 sobomax Exp $"); #include <sys/types.h> #include <sys/malloc.h> @@ -118,7 +118,7 @@ osf_auxargs = malloc(sizeof(Osf_Auxargs), M_TEMP, M_WAITOK | M_ZERO); imgp->auxargs = osf_auxargs; osf_auxargs->executable = osf_auxargs->exec_path; - path_not_saved = copyinstr(imgp->fname, osf_auxargs->executable, + path_not_saved = copystr(imgp->args->fname, osf_auxargs->executable, PATH_MAX, &bytes); if (execp->f.f_flags & DYNAMIC_FLAG) { if (path_not_saved) { @@ -172,11 +172,6 @@ bsize = eap->bsize; imgp->entry_addr = eap->entry; - /* copy in arguments and/or environment from old process */ - - error = exec_extract_strings(imgp); - if (error) - goto bail; /* * Destroy old process VM and create a new one (with a new stack). ==== //depot/projects/smpng/sys/alpha/osf1/osf1_sysvec.c#8 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_sysvec.c,v 1.11 2003/09/25 01:10:22 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_sysvec.c,v 1.12 2005/01/29 23:11:57 sobomax Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -117,15 +117,15 @@ Osf_Auxargs *args; args = (Osf_Auxargs *)imgp->auxargs; - pos = *stack_base + (imgp->argc + imgp->envc + 2); + pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2); arginfo = (struct ps_strings *)PS_STRINGS; sz = *(imgp->proc->p_sysent->sv_szsigcode); destp = (caddr_t)arginfo - szsigcode - SPARE_USRSPACE - - roundup((ARG_MAX - imgp->stringspace), sizeof(char *)); + roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *)); - destp -= imgp->stringspace; + destp -= imgp->args->stringspace; destp -= strlen(args->executable)+2; copyout(args->executable, destp, strlen(args->executable)+1); @@ -143,6 +143,6 @@ free(imgp->auxargs, M_TEMP); imgp->auxargs = NULL; (*stack_base)--; - **stack_base = (long)imgp->argc; + **stack_base = (long)imgp->args->argc; return 0; } ==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#5 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.100 2004/05/24 12:08:56 bde Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.101 2005/01/21 06:01:19 peter Exp $ */ /* @@ -210,31 +210,16 @@ */ .text SUPERALIGN_TEXT -IDTVEC(hardclock) +IDTVEC(ipi_intr_bitmap_handler) + PUSH_FRAME movq lapic, %rdx movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */ - - call forwarded_hardclock - MEXITCOUNT - jmp doreti - -/* - * Forward statclock to another CPU. Pushes a clockframe and calls - * forwarded_statclock(). - */ - .text - SUPERALIGN_TEXT -IDTVEC(statclock) - PUSH_FRAME - - movq lapic, %rdx - movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */ - + FAKE_MCOUNT(TF_RIP(%rsp)) - call forwarded_statclock + call ipi_bitmap_handler MEXITCOUNT jmp doreti ==== //depot/projects/smpng/sys/amd64/amd64/db_trace.c#12 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.65 2005/01/05 20:17:20 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.66 2005/01/21 05:54:05 peter Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -302,10 +302,16 @@ rbp = db_get_value((long) &(*fp)->f_frame, 8, FALSE); /* - * Figure out frame type. + * Figure out frame type. We look at the address just before + * the saved instruction pointer as the saved EIP is after the + * call function, and if the function being called is marked as + * dead (such as panic() at the end of dblfault_handler()), then + * the instruction at the saved EIP will be part of a different + * function (syscall() in this example) rather than the one that + * actually made the call. */ frame_type = NORMAL; - sym = db_search_symbol(rip, DB_STGY_ANY, &offset); + sym = db_search_symbol(rip - 1, DB_STGY_ANY, &offset); db_symbol_values(sym, &name, NULL); if (name != NULL) { if (strcmp(name, "calltrap") == 0 || ==== //depot/projects/smpng/sys/amd64/amd64/exception.S#11 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.120 2004/08/16 12:51:32 obrien Exp $ + * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.121 2005/01/21 05:56:40 peter Exp $ */ #include "opt_atpic.h" @@ -130,7 +130,7 @@ TRAP_ERR(T_PROTFLT) IDTVEC(align) TRAP_ERR(T_ALIGNFLT) - + /* * alltraps entry point. Use swapgs if this is the first time in the * kernel from userland. Reenable interrupts if they were enabled ==== //depot/projects/smpng/sys/amd64/amd64/identcpu.c#11 (text+ko) ==== @@ -2,8 +2,6 @@ * Copyright (c) 1992 Terrence R. Lambert. * Copyright (c) 1982, 1987, 1990 The Regents of the University of California. * Copyright (c) 1997 KATO Takenori. - * Copyright (c) 2001 Tamotsu Hattori. - * Copyright (c) 2001 Mitsuru IWASAKI. * All rights reserved. * * This code is derived from software contributed to Berkeley by @@ -41,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.134 2004/06/08 01:20:37 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.135 2005/01/21 05:56:40 peter Exp $"); #include "opt_cpu.h" ==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#9 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.12 2004/12/06 22:56:15 peter Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.13 2005/01/21 06:01:19 peter Exp $ */ /* @@ -286,6 +286,17 @@ is->is_straycount = &intrcnt[is->is_index + 1]; } +void +intrcnt_add(const char *name, u_long **countp) +{ + + mtx_lock_spin(&intr_table_lock); + *countp = &intrcnt[intrcnt_index]; + intrcnt_setname(name, intrcnt_index); + intrcnt_index++; + mtx_unlock_spin(&intr_table_lock); +} + static void intr_init(void *dummy __unused) { ==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.11 2004/08/16 23:12:29 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.12 2005/01/21 06:01:19 peter Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -424,7 +424,7 @@ * them to be set to active low. * * XXX: Should we write to the ELCR if the trigger mode changes for - * an EISA IRQ? + * an EISA IRQ or an ISA IRQ with the ELCR present? */ if (intpin->io_bus == APIC_BUS_EISA) pol = INTR_POLARITY_HIGH; ==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#10 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.10 2004/08/16 22:55:32 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.11 2005/01/21 06:01:19 peter Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -61,7 +61,9 @@ #define MAX_APICID 16 /* Sanity checks on IDT vectors. */ -CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS <= APIC_LOCAL_INTS); +CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS == APIC_TIMER_INT); +CTASSERT(APIC_TIMER_INT < APIC_LOCAL_INTS); +CTASSERT(APIC_LOCAL_INTS == 240); CTASSERT(IPI_STOP < APIC_SPURIOUS_INT); /* @@ -96,10 +98,10 @@ static struct lvt lvts[LVT_MAX + 1] = { { 1, 1, 1, 1, APIC_LVT_DM_EXTINT, 0 }, /* LINT0: masked ExtINT */ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ - { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Timer: needs a vector */ - { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Error: needs a vector */ + { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ + { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* PMC */ - { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Thermal: needs a vector */ + { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; static inthand_t *ioint_handlers[] = { @@ -115,6 +117,9 @@ volatile lapic_t *lapic; +static void lapic_enable(void); +static uint32_t lvt_mode(struct lapic *la, u_int pin, uint32_t value); + static uint32_t lvt_mode(struct lapic *la, u_int pin, uint32_t value) { @@ -148,11 +153,7 @@ /* Use a vector of 0. */ break; case APIC_LVT_DM_FIXED: -#if 0 value |= lvt->lvt_vector; -#else - panic("Fixed LINT pins not supported"); -#endif break; default: panic("bad APIC LVT delivery mode: %#x\n", value); @@ -166,7 +167,6 @@ void lapic_init(uintptr_t addr) { - u_int32_t value; /* Map the local APIC and setup the spurious interrupt handler. */ KASSERT(trunc_page(addr) == addr, @@ -175,10 +175,7 @@ setidt(APIC_SPURIOUS_INT, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0); /* Perform basic initialization of the BSP's local APIC. */ - value = lapic->svr; - value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS); - value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT); - lapic->svr = value; + lapic_enable(); /* Set BSP's per-CPU local APIC ID. */ PCPU_SET(apic_id, lapic_id()); @@ -231,6 +228,9 @@ lapic->id, lapic->version, lapic->ldr, lapic->dfr); printf(" lint0: 0x%08x lint1: 0x%08x TPR: 0x%08x SVR: 0x%08x\n", lapic->lvt_lint0, lapic->lvt_lint1, lapic->tpr, lapic->svr); + printf(" timer: 0x%08x therm: 0x%08x err: 0x%08x pcm: 0x%08x\n", + lapic->lvt_timer, lapic->lvt_thermal, lapic->lvt_error, + lapic->lvt_pcint); } void @@ -257,16 +257,8 @@ eflags = intr_disable(); maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; - /* Program LINT[01] LVT entries. */ - lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); - lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); - - /* XXX: more LVT entries */ - - /* Clear the TPR. */ - value = lapic->tpr; - value &= ~APIC_TPR_PRIO; - lapic->tpr = value; + /* Initialize the TPR to allow all interrupts. */ + lapic_set_tpr(0); /* Use the cluster model for logical IDs. */ value = lapic->dfr; @@ -282,10 +274,14 @@ lapic->ldr = value; /* Setup spurious vector and enable the local APIC. */ - value = lapic->svr; - value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS); - value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT); - lapic->svr = value; + lapic_enable(); + + /* Program LINT[01] LVT entries. */ + lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); + lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); + + /* XXX: more LVT entries */ + intr_restore(eflags); } @@ -300,6 +296,18 @@ lapic->svr = value; } +static void +lapic_enable(void) +{ + u_int32_t value; + + /* Program the spurious vector to enable the local APIC. */ + value = lapic->svr; + value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS); + value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT); + lapic->svr = value; +} + int lapic_id(void) { @@ -441,7 +449,7 @@ printf("lapic%u:", apic_id); } if (bootverbose) - printf(" LINT%u polarity: active-%s\n", pin, + printf(" LINT%u polarity: %s\n", pin, pol == INTR_POLARITY_HIGH ? "high" : "low"); return (0); } @@ -471,6 +479,24 @@ return (0); } +/* + * Adjust the TPR of the current CPU so that it blocks all interrupts below + * the passed in vector. + */ +void +lapic_set_tpr(u_int vector) +{ +#ifdef CHEAP_TPR + lapic->tpr = vector; +#else + u_int32_t tpr; + + tpr = lapic->tpr & ~APIC_TPR_PRIO; + tpr |= vector; + lapic->tpr = tpr; +#endif +} + void lapic_eoi(void) { @@ -637,10 +663,9 @@ #ifdef SMP /* * Inter Processor Interrupt functions. The lapic_ipi_*() functions are - * private the sys/i386 code. The public interface for the rest of the + * private to the sys/i386 code. The public interface for the rest of the * kernel is defined in mp_machdep.c. */ - int lapic_ipi_wait(int delay) { @@ -745,7 +770,7 @@ * the failure with the check above when the next IPI is * sent. * - * We could skiip this wait entirely, EXCEPT it probably + * We could skip this wait entirely, EXCEPT it probably * protects us from other routines that assume that the * message was delivered and acted upon when this function * returns. ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#34 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.625 2004/11/29 23:27:07 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.626 2005/01/21 06:01:19 peter Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1213,6 +1213,7 @@ cninit(); #ifdef DEV_ATPIC + elcr_probe(); atpic_startup(); #endif ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#16 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.248 2004/11/05 18:25:22 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.249 2005/01/21 06:01:19 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -131,6 +131,9 @@ } static cpu_info[MAXCPU]; static int cpu_apic_ids[MAXCPU]; +/* Holds pending bitmap based IPIs per CPU */ +static volatile u_int cpu_ipi_pending[MAXCPU]; + static u_int boot_address; static void set_logical_apic_ids(void); @@ -296,25 +299,22 @@ int i; /* Initialize the logical ID to APIC ID table. */ - for (i = 0; i < MAXCPU; i++) + for (i = 0; i < MAXCPU; i++) { cpu_apic_ids[i] = -1; + cpu_ipi_pending[i] = 0; + } /* Install an inter-CPU IPI for TLB invalidation */ setidt(IPI_INVLTLB, IDTVEC(invltlb), SDT_SYSIGT, SEL_KPL, 0); setidt(IPI_INVLPG, IDTVEC(invlpg), SDT_SYSIGT, SEL_KPL, 0); setidt(IPI_INVLRNG, IDTVEC(invlrng), SDT_SYSIGT, SEL_KPL, 0); - - /* Install an inter-CPU IPI for forwarding hardclock() */ - setidt(IPI_HARDCLOCK, IDTVEC(hardclock), SDT_SYSIGT, SEL_KPL, 0); - - /* Install an inter-CPU IPI for forwarding statclock() */ - setidt(IPI_STATCLOCK, IDTVEC(statclock), SDT_SYSIGT, SEL_KPL, 0); /* Install an inter-CPU IPI for all-CPU rendezvous */ setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYSIGT, SEL_KPL, 0); - /* Install an inter-CPU IPI for forcing an additional software trap */ - setidt(IPI_AST, IDTVEC(cpuast), SDT_SYSIGT, SEL_KPL, 0); + /* Install generic inter-CPU IPI handler */ + setidt(IPI_BITMAP_VECTOR, IDTVEC(ipi_intr_bitmap_handler), + SDT_SYSIGT, SEL_KPL, 0); /* Install an inter-CPU IPI for CPU stop/restart */ setidt(IPI_STOP, IDTVEC(cpustop), SDT_SYSIGT, SEL_KPL, 0); @@ -876,20 +876,6 @@ * For statclock, we send an IPI to all CPU's to have them call this * function. */ -void -forwarded_statclock(struct clockframe frame) -{ - struct thread *td; - - CTR0(KTR_SMP, "forwarded_statclock"); - td = curthread; - td->td_intr_nesting_level++; - if (profprocs != 0) - profclock(&frame); - if (pscnt == psdiv) - statclock(&frame); - td->td_intr_nesting_level--; -} void forward_statclock(void) @@ -913,17 +899,6 @@ * state and call hardclock_process() on the CPU receiving the clock interrupt * and then just use a simple IPI to handle any ast's if needed. */ -void -forwarded_hardclock(struct clockframe frame) -{ - struct thread *td; - - CTR0(KTR_SMP, "forwarded_hardclock"); - td = curthread; - td->td_intr_nesting_level++; - hardclock_process(&frame); - td->td_intr_nesting_level--; -} void forward_hardclock(void) @@ -940,6 +915,41 @@ ipi_selected(map, IPI_HARDCLOCK); } +void +ipi_bitmap_handler(struct clockframe frame) +{ + int cpu = PCPU_GET(cpuid); + u_int ipi_bitmap; + struct thread *td; + + ipi_bitmap = atomic_readandclear_int(&cpu_ipi_pending[cpu]); + + critical_enter(); + + /* Nothing to do for AST */ + + if (ipi_bitmap & (1 << IPI_HARDCLOCK)) { + td = curthread; + td->td_intr_nesting_level++; + hardclock_process(&frame); + td->td_intr_nesting_level--; + } + + if (ipi_bitmap & (1 << IPI_STATCLOCK)) { + CTR0(KTR_SMP, "forwarded_statclock"); + + td = curthread; + td->td_intr_nesting_level++; + if (profprocs != 0) >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200501312216.j0VMGV9L078662>