Skip site navigation (1)Skip section navigation (2)
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>