PERFORCE change 98757 for review
Bjoern A. Zeeb
bz at FreeBSD.org
Thu Jun 8 01:45:07 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=98757
Change 98757 by bz at bz_dopt_ah on 2006/06/07 21:04:51
IFC @98752
Affected files ...
.. //depot/projects/fast_ipsec/src/sys/amd64/amd64/busdma_machdep.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#11 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/arm/busdma_machdep.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/arm/elf_trampoline.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/arm/pmap.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/arm/vm_machdep.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/at91/kb920x_machdep.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/include/cpuconf.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/include/cpufunc.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/include/pmap.h#7 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/assabet_machdep.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_cpu_sa1110.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/sa11x0/uart_dev_sa1110.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/arm/xscale/i80321/iq31244_machdep.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/boot/i386/libi386/biosdisk.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/bsm/audit.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/bsm/audit_record.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/cam/cam_ccb.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/cam/cam_xpt.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/cam/scsi/scsi_all.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/compat/linprocfs/linprocfs.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/Makefile.arm#8 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/NOTES#9 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/files#14 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/files.arm#3 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/kern.mk#3 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/options#12 integrate
.. //depot/projects/fast_ipsec/src/sys/conf/options.arm#5 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/COPYRIGHT#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/README#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/ah_desc.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/ah_devid.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/ah_soc.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/freebsd/ah_if.m#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/freebsd/ah_osdep.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/freebsd/ah_osdep.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/alpha-elf.hal.o.uu#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap30.hal.o.uu#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap30.inc#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap30.opt_ah.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap43.hal.o.uu#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap43.inc#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap43.opt_ah.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap51.hal.o.uu#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap51.inc#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap51.opt_ah.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap61.hal.o.uu#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap61.inc#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/ap61.opt_ah.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/arm9-le-thumb-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/arm9-le-thumb-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-be-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-be-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-be-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/armv4-le-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/i386-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/i386-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-be-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-be-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-be-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips-le-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-be-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-be-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-be-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mips1-le-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-be-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-be-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/mipsisa32-le-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-eabi.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-eabi.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-eabi.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-elf.inc#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-be-elf.opt_ah.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-le-eabi.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-le-eabi.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/powerpc-le-eabi.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sh4-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sh4-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sparc-be-elf.hal.o.uu#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sparc-be-elf.inc#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sparc-be-elf.opt_ah.h#1 branch
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/sparc64-be-elf.inc#2 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/x86_64-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/x86_64-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-be-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-be-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-be-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-le-elf.hal.o.uu#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-le-elf.inc#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/public/xscale-le-elf.opt_ah.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/contrib/dev/ath/version.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/crypto/via/padlock.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/acpi_support/acpi_panasonic.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/acpica/acpi_hpet.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ahb/ahb.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ath/if_ath.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ath/if_ath_pci.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ath/if_athvar.h#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/awi/awi.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ciss/ciss.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/dc/dcphy.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/dc/if_dc.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/dc/if_dcreg.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/em/if_em.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/gem/if_gem.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/hifn/hifn7751.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ipw/if_ipw.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/isp/isp_freebsd.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/isp/isp_freebsd.h#7 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/iwi/if_iwi.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/le/if_le_pci.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/lmc/if_lmc.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt.c#10 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt.h#11 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt_cam.c#11 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/mpt/mpt_pci.c#8 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/my/if_my.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ofw/ofw_console.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pccbb/pccbb.c#10 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pccbb/pccbb_isa.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pccbb/pccbb_pci.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pccbb/pccbbvar.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/pci/pcireg.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ral/rt2560.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ral/rt2661.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/safe/safe.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/sk/if_sk.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/ubsec/ubsec.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/usb/if_axe.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/usb/if_axereg.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/usb/if_ural.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/usb/ugen.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/dev/wi/if_wi.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/fs/msdosfs/msdosfs_vfsops.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/fs/procfs/procfs.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/fs/smbfs/smbfs_vnops.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli_ctl.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli_integrity.c#1 branch
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli_key.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/eli/g_eli_privacy.c#1 branch
.. //depot/projects/fast_ipsec/src/sys/geom/geom.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/geom_gpt.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/geom/geom_io.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_frw.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_fs_subr.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_iget.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_super.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_attr.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_bit.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_dfrag.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_dir2_trace.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_inode.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_iomap.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_trans.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_vfsops.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/gnu/fs/xfs/xfs_vnodeops.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/busdma_machdep.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/initcpu.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/machdep.c#10 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/minidump_machdep.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/pmap.c#11 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/i386/ptrace_machdep.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/include/md_var.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/include/npx.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/i386/isa/npx.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/ia64/conf/NOTES#3 integrate
.. //depot/projects/fast_ipsec/src/sys/ia64/ia64/busdma_machdep.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/ia64/ia64/pmap.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/kern_acct.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/kern_event.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/kern_mutex.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/kern_switch.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/kern_synch.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/sched_4bsd.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/sched_ule.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/vfs_aio.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/vfs_mount.c#9 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/vfs_syscalls.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/kern/vnode_if.src#4 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/acpi/acpi/Makefile#4 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/acpi/acpi_asus/Makefile#2 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/acpi/acpi_panasonic/Makefile#2 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/acpi/acpi_toshiba/Makefile#2 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/acpi/acpi_video/Makefile#3 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/cpufreq/Makefile#2 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/fdc/Makefile#2 integrate
.. //depot/projects/fast_ipsec/src/sys/modules/geom/geom_eli/Makefile#3 integrate
.. //depot/projects/fast_ipsec/src/sys/net/bpf.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net/bpf.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/net/bpfdesc.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_disc.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_faith.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_fwsubr.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_gif.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_gre.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_loop.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_media.h#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_sl.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_stf.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_tap.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net/if_tun.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/net/raw_cb.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/net/raw_usrreq.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/net/route.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net80211/ieee80211_input.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/net80211/ieee80211_node.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/netgraph/atm/uni/ng_uni_cust.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/netgraph/netgraph.h#5 integrate
.. //depot/projects/fast_ipsec/src/sys/netgraph/ng_base.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/netgraph/ng_iface.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/in_pcb.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/ip_carp.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/ip_gre.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/tcp_timer.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/tcp_usrreq.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/netinet/udp_usrreq.c#9 integrate
.. //depot/projects/fast_ipsec/src/sys/netipsec/ipsec.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/netipsec/ipsec_input.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/nfsclient/nfs_vfsops.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_serv.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/nfsserver/nfs_srvsubs.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/opencrypto/criov.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/opencrypto/crypto.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/opencrypto/cryptodev.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/opencrypto/cryptosoft.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/opencrypto/xform.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/pc98/pc98/machdep.c#11 integrate
.. //depot/projects/fast_ipsec/src/sys/pci/agp_amd64.c#5 integrate
.. //depot/projects/fast_ipsec/src/sys/pci/agp_sis.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/mmu_if.m#3 integrate
.. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/mmu_oea.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/powerpc/powerpc/pmap_dispatch.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_arg.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_bsm.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_bsm_klib.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_bsm_token.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_ioctl.h#2 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_pipe.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_private.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_syscalls.c#3 integrate
.. //depot/projects/fast_ipsec/src/sys/security/audit/audit_worker.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/sparc64/conf/GENERIC#7 integrate
.. //depot/projects/fast_ipsec/src/sys/sparc64/isa/isa.c#2 integrate
.. //depot/projects/fast_ipsec/src/sys/sparc64/sparc64/pmap.c#6 integrate
.. //depot/projects/fast_ipsec/src/sys/sys/elf_common.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/sys/mutex.h#3 integrate
.. //depot/projects/fast_ipsec/src/sys/sys/protosw.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/tools/vnode_if.awk#4 integrate
.. //depot/projects/fast_ipsec/src/sys/ufs/ffs/ffs_vfsops.c#11 integrate
.. //depot/projects/fast_ipsec/src/sys/ufs/ufs/ufs_vnops.c#4 integrate
.. //depot/projects/fast_ipsec/src/sys/vm/pmap.h#4 integrate
.. //depot/projects/fast_ipsec/src/sys/vm/vm_map.c#7 integrate
.. //depot/projects/fast_ipsec/src/sys/vm/vm_page.c#8 integrate
Differences ...
==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/busdma_machdep.c#7 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.75 2006/05/28 18:31:32 silby Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.77 2006/06/01 04:49:29 silby Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -498,7 +498,7 @@
* alignment guarantees of malloc need to be nailed down, and the
* code below should be rewritten to take that into account.
*
- * In the meantime, we'll panic if malloc gets it wrong.
+ * In the meantime, we'll warn the user if malloc gets it wrong.
*/
if ((dmat->maxsize <= PAGE_SIZE) &&
(dmat->alignment < dmat->maxsize) &&
@@ -520,7 +520,7 @@
__func__, dmat, dmat->flags, ENOMEM);
return (ENOMEM);
} else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) {
- panic("bus_dmamem_alloc failed to align memory properly.");
+ printf("bus_dmamem_alloc failed to align memory properly.");
}
CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d",
__func__, dmat, dmat->flags, ENOMEM);
==== //depot/projects/fast_ipsec/src/sys/amd64/amd64/pmap.c#11 (text+ko) ====
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.554 2006/05/01 22:06:59 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.555 2006/06/05 20:35:25 alc Exp $");
/*
* Manages physical address maps.
@@ -209,6 +209,8 @@
static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
static void pmap_clear_ptes(vm_page_t m, long bit);
+static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
+ vm_page_t m, vm_prot_t prot, vm_page_t mpte);
static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq,
vm_offset_t sva, pd_entry_t ptepde);
static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde);
@@ -2310,6 +2312,37 @@
}
/*
+ * Maps a sequence of resident pages belonging to the same object.
+ * The sequence begins with the given page m_start. This page is
+ * mapped at the given virtual address start. Each subsequent page is
+ * mapped at a virtual address that is offset from start by the same
+ * amount as the page is offset from m_start within the object. The
+ * last page in the sequence is the page with the largest offset from
+ * m_start that can be mapped at a virtual address less than the given
+ * virtual address end. Not every virtual page between start and end
+ * is mapped; only those for which a resident page exists with the
+ * corresponding offset from m_start are mapped.
+ */
+void
+pmap_enter_object(pmap_t pmap, vm_offset_t start, vm_offset_t end,
+ vm_page_t m_start, vm_prot_t prot)
+{
+ vm_page_t m, mpte;
+ vm_pindex_t diff, psize;
+
+ psize = atop(end - start);
+ mpte = NULL;
+ m = m_start;
+ PMAP_LOCK(pmap);
+ while (m != NULL && (diff = m->pindex - m_start->pindex) < psize) {
+ mpte = pmap_enter_quick_locked(pmap, start + ptoa(diff), m,
+ prot, mpte);
+ m = TAILQ_NEXT(m, listq);
+ }
+ PMAP_UNLOCK(pmap);
+}
+
+/*
* this code makes some *MAJOR* assumptions:
* 1. Current pmap & pmap exists.
* 2. Not wired.
@@ -2322,15 +2355,26 @@
pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
vm_page_t mpte)
{
+
+ PMAP_LOCK(pmap);
+ mpte = pmap_enter_quick_locked(pmap, va, m, prot, mpte);
+ PMAP_UNLOCK(pmap);
+ return (mpte);
+}
+
+static vm_page_t
+pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m,
+ vm_prot_t prot, vm_page_t mpte)
+{
pt_entry_t *pte;
vm_paddr_t pa;
KASSERT(va < kmi.clean_sva || va >= kmi.clean_eva ||
(m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0,
- ("pmap_enter_quick: managed mapping within the clean submap"));
+ ("pmap_enter_quick_locked: managed mapping within the clean submap"));
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
- PMAP_LOCK(pmap);
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
/*
* In the case that a page table page is not
@@ -2395,7 +2439,7 @@
pmap_unwire_pte_hold(pmap, va, mpte);
mpte = NULL;
}
- goto out;
+ return (mpte);
}
/*
@@ -2422,8 +2466,6 @@
pte_store(pte, pa | PG_V | PG_U);
else
pte_store(pte, pa | PG_V | PG_U | PG_MANAGED);
-out:
- PMAP_UNLOCK(pmap);
return mpte;
}
==== //depot/projects/fast_ipsec/src/sys/arm/arm/busdma_machdep.c#4 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.25 2006/03/01 23:04:25 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.26 2006/05/31 15:50:33 cognet Exp $");
/*
* MacPPC bus dma support routines
@@ -806,13 +806,16 @@
if (op & BUS_DMASYNC_PREWRITE)
cpu_dcache_wb_range((vm_offset_t)buf, len);
- if (op & BUS_DMASYNC_POSTREAD) {
- if ((((vm_offset_t)buf | len) & arm_dcache_align_mask) == 0)
- cpu_dcache_inv_range((vm_offset_t)buf, len);
- else
- cpu_dcache_wbinv_range((vm_offset_t)buf, len);
-
+ if (op & BUS_DMASYNC_PREREAD) {
+ if ((vm_offset_t)buf & arm_dcache_align_mask)
+ cpu_dcache_wbinv_range((vm_offset_t)buf &
+ ~arm_dcache_align_mask, arm_dcache_align);
+ if (((vm_offset_t)buf + len) & arm_dcache_align_mask)
+ cpu_dcache_wbinv_range(((vm_offset_t)buf + len) &
+ ~arm_dcache_align_mask, arm_dcache_align);
}
+ if (op & BUS_DMASYNC_POSTREAD)
+ cpu_dcache_inv_range((vm_offset_t)buf, len);
}
void
@@ -823,7 +826,7 @@
int resid;
struct iovec *iov;
- if (!(op & (BUS_DMASYNC_PREWRITE | BUS_DMASYNC_POSTREAD)))
+ if (op == BUS_DMASYNC_POSTWRITE)
return;
if (map->flags & DMAMAP_COHERENT)
return;
==== //depot/projects/fast_ipsec/src/sys/arm/arm/elf_trampoline.c#5 (text+ko) ====
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.5 2006/01/20 00:46:44 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.6 2006/05/30 21:13:47 cognet Exp $");
#include <machine/asm.h>
#include <sys/types.h>
#include <sys/elf32.h>
@@ -31,6 +31,7 @@
#include <sys/inflate.h>
#include <machine/elf.h>
#include <machine/pte.h>
+#include <machine/cpufunc.h>
#include <stdlib.h>
@@ -44,6 +45,24 @@
#define GZ_HEAD 0xa
+#ifdef CPU_ARM7TDMI
+#define cpu_idcache_wbinv_all arm7tdmi_cache_flushID
+#elif defined(CPU_ARM8)
+#define cpu_idcache_wbinv_all arm8_cache_purgeID
+#elif defined(CPU_ARM9)
+#define cpu_idcache_wbinv_all arm9_dcache_wbinv_all
+#elif defined(CPU_ARM10)
+#define cpu_idcache_wbinv_all arm10_idcache_wbinv_all
+#elif defined(CPU_SA110) || defined(CPU_SA1110) || defined(CPU_SA1100) || \
+ defined(CPU_IXP12X0)
+#define cpu_idcache_wbinv_all sa1_cache_purgeID
+#elif defined(CPU_XSCALE_80200) || defined(CPU_XSCALE_80321) || \
+ defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425)
+#define cpu_idcache_wbinv_all xscale_cache_purgeID
+#endif
+int arm_pdcache_line_size = 32;
+int block_userspace_access = 0;
+
static __inline void *
memcpy(void *dst, const void *src, int len)
{
@@ -160,7 +179,7 @@
static int
input(void *dummy)
{
- if ((size_t)(i_input - orig_input) >= KERNSIZE) {
+ if ((size_t)(i_input - orig_input) >= KERNCOMPSIZE) {
return (GZ_EOF);
}
return *i_input++;
@@ -383,7 +402,7 @@
__start(void)
{
void *curaddr;
- void *dst;
+ void *dst, *altdst;
char *kernel = (char *)&kernel_start;
__asm __volatile("mov %0, pc" :
@@ -393,11 +412,22 @@
if (*kernel == 0x1f && kernel[1] == 0x8b) {
int pt_addr = (((int)&_end + KERNSIZE + 0x100) &
~(L1_TABLE_SIZE - 1)) + L1_TABLE_SIZE;
+
setup_pagetables(pt_addr, (vm_paddr_t)curaddr,
(vm_paddr_t)curaddr + 0x10000000);
/* Gzipped kernel */
dst = inflate_kernel(kernel, &_end);
kernel = (char *)&_end;
+ altdst = 4 + load_kernel((unsigned int)kernel,
+ (unsigned int)curaddr,
+ (unsigned int)&func_end , 0);
+ if (altdst > dst)
+ dst = altdst;
+ cpu_idcache_wbinv_all();
+ __asm __volatile("mrc p15, 0, %0, c1, c0, 0\n"
+ "bic %0, %0, #1\n" /* MMU_ENABLE */
+ "mcr p15, 0, %0, c1, c0, 0\n"
+ : "=r" (pt_addr));
} else
#endif
dst = 4 + load_kernel((unsigned int)&kernel_start,
==== //depot/projects/fast_ipsec/src/sys/arm/arm/pmap.c#8 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.47 2006/04/22 22:51:32 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.58 2006/06/07 17:14:48 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -198,6 +198,8 @@
static void pmap_free_pv_entry (pv_entry_t);
static pv_entry_t pmap_get_pv_entry(void);
+static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t,
+ vm_prot_t, boolean_t);
static void pmap_vac_me_harder(struct vm_page *, pmap_t,
vm_offset_t);
static void pmap_vac_me_kpmap(struct vm_page *, pmap_t,
@@ -230,6 +232,8 @@
static pt_entry_t *csrc_pte, *cdst_pte;
static vm_offset_t csrcp, cdstp;
+static struct mtx cmtx;
+
static void pmap_init_l1(struct l1_ttable *, pd_entry_t *);
/*
* These routines are called when the CPU type is identified to set up
@@ -268,9 +272,6 @@
*/
union pmap_cache_state *pmap_cache_state;
-LIST_HEAD(pmaplist, pmap);
-struct pmaplist allpmaps;
-
/* static pt_entry_t *msgbufmap;*/
struct msgbuf *msgbufp = 0;
@@ -411,7 +412,6 @@
static vm_offset_t pmap_kernel_l2ptp_kva;
static vm_paddr_t pmap_kernel_l2ptp_phys;
static struct vm_object pvzone_obj;
-static struct vm_object l2zone_obj;
static int pv_entry_count=0, pv_entry_max=0, pv_entry_high_water=0;
int pmap_pagedaemon_waken = 0;
@@ -455,14 +455,8 @@
struct pv_addr *pv;
SLIST_FOREACH(pv, &kernel_pt_list, pv_list) {
-#ifndef ARM32_NEW_VM_LAYOUT
- if (pv->pv_pa == (pa & ~PAGE_MASK)) {
- return (pv->pv_va | (pa & PAGE_MASK));
- }
-#else
if (pv->pv_pa == pa)
return (pv->pv_va);
-#endif
}
return (0);
}
@@ -714,21 +708,12 @@
for (; size != 0;
va += L2_S_SIZE, pa += L2_S_SIZE, size -= L2_S_SIZE) {
-#ifndef ARM32_NEW_VM_LAYOUT
- pte = (pt_entry_t *)
- kernel_pt_lookup(pde[va >> L1_S_SHIFT] & L2_S_FRAME);
-#else
pte = (pt_entry_t *) kernel_pt_lookup(
pde[L1_IDX(va)] & L1_C_ADDR_MASK);
-#endif
if (pte == NULL)
panic("xscale_setup_minidata: can't find L2 table for "
"VA 0x%08x", (u_int32_t) va);
-#ifndef ARM32_NEW_VM_LAYOUT
- pte[(va >> PAGE_SHIFT) & 0x3ff] =
-#else
pte[l2pte_index(va)] =
-#endif
L2_S_PROTO | pa | L2_S_PROT(PTE_KERNEL, VM_PROT_READ) |
L2_C | L2_XSCALE_T_TEX(TEX_XSCALE_X);
}
@@ -913,20 +898,44 @@
l1idx = L1_IDX(va);
+ PMAP_ASSERT_LOCKED(pm);
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if ((l2 = pm->pm_l2[L2_IDX(l1idx)]) == NULL) {
/*
* No mapping at this address, as there is
* no entry in the L1 table.
* Need to allocate a new l2_dtable.
*/
+again_l2table:
+ PMAP_UNLOCK(pm);
+ vm_page_unlock_queues();
if ((l2 = pmap_alloc_l2_dtable()) == NULL) {
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
return (NULL);
}
- bzero(l2, sizeof(*l2));
- /*
- * Link it into the parent pmap
- */
- pm->pm_l2[L2_IDX(l1idx)] = l2;
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
+ if (pm->pm_l2[L2_IDX(l1idx)] != NULL) {
+ PMAP_UNLOCK(pm);
+ vm_page_unlock_queues();
+ uma_zfree(l2table_zone, l2);
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
+ l2 = pm->pm_l2[L2_IDX(l1idx)];
+ if (l2 == NULL)
+ goto again_l2table;
+ /*
+ * Someone already allocated the l2_dtable while
+ * we were doing the same.
+ */
+ } else {
+ bzero(l2, sizeof(*l2));
+ /*
+ * Link it into the parent pmap
+ */
+ pm->pm_l2[L2_IDX(l1idx)] = l2;
+ }
}
l2b = &l2->l2_bucket[L2_BUCKET(l1idx)];
@@ -941,7 +950,23 @@
* No L2 page table has been allocated. Chances are, this
* is because we just allocated the l2_dtable, above.
*/
+again_ptep:
+ PMAP_UNLOCK(pm);
+ vm_page_unlock_queues();
ptep = (void*)uma_zalloc(l2zone, M_NOWAIT);
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
+ if (l2b->l2b_kva != 0) {
+ /* We lost the race. */
+ PMAP_UNLOCK(pm);
+ vm_page_unlock_queues();
+ uma_zfree(l2zone, ptep);
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
+ if (l2b->l2b_kva == 0)
+ goto again_ptep;
+ return (l2b);
+ }
l2b->l2b_phys = vtophys(ptep);
if (ptep == NULL) {
/*
@@ -1511,10 +1536,8 @@
vm_offset_t va;
u_int oflags;
int count = 0;
-#if 0
- PMAP_HEAD_TO_MAP_LOCK();
- simple_lock(&pg->mdpage.pvh_slock);
-#endif
+
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
/*
* Clear saved attributes (modify, reference)
@@ -1522,10 +1545,6 @@
pg->md.pvh_attrs &= ~(maskbits & (PVF_MOD | PVF_REF));
if (TAILQ_EMPTY(&pg->md.pv_list)) {
-#if 0
- simple_unlock(&pg->mdpage.pvh_slock);
- PMAP_HEAD_TO_MAP_UNLOCK();
-#endif
return (0);
}
@@ -1538,9 +1557,7 @@
oflags = pv->pv_flags;
pv->pv_flags &= ~maskbits;
-#if 0
- pmap_acquire_pmap_lock(pm);
-#endif
+ PMAP_LOCK(pm);
l2b = pmap_get_l2_bucket(pm, va);
@@ -1658,16 +1675,10 @@
pmap_tlb_flushD_SE(pm, pv->pv_va);
}
-#if 0
- pmap_release_pmap_lock(pm);
-#endif
+ PMAP_UNLOCK(pm);
}
-#if 0
- simple_unlock(&pg->mdpage.pvh_slock);
- PMAP_HEAD_TO_MAP_UNLOCK();
-#endif
if (maskbits & PVF_WRITE)
vm_page_flag_clear(pg, PG_WRITEABLE);
return (count);
@@ -1696,14 +1707,12 @@
vm_offset_t va, u_int flags)
{
-
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ PMAP_ASSERT_LOCKED(pm);
pve->pv_pmap = pm;
pve->pv_va = va;
pve->pv_flags = flags;
-#if 0
- mtx_lock(&pg->md.pvh_mtx);
-#endif
TAILQ_INSERT_HEAD(&pg->md.pv_list, pve, pv_list);
TAILQ_INSERT_HEAD(&pm->pm_pvlist, pve, pv_plist);
pg->md.pvh_attrs |= flags & (PVF_REF | PVF_MOD);
@@ -1718,9 +1727,6 @@
else
pg->md.uro_mappings++;
pg->md.pv_list_count++;
-#if 0
- mtx_unlock(&pg->md.pvh_mtx);
-#endif
if (pve->pv_flags & PVF_WIRED)
++pm->pm_stats.wired_count;
vm_page_flag_set(pg, PG_REFERENCED);
@@ -1737,6 +1743,7 @@
{
struct pv_entry *pv;
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
TAILQ_FOREACH(pv, &pg->md.pv_list, pv_list)
if (pm == pv->pv_pmap && va == pv->pv_va)
break;
@@ -1779,6 +1786,8 @@
pmap_nuke_pv(struct vm_page *pg, pmap_t pm, struct pv_entry *pve)
{
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ PMAP_ASSERT_LOCKED(pm);
TAILQ_REMOVE(&pg->md.pv_list, pve, pv_list);
TAILQ_REMOVE(&pm->pm_pvlist, pve, pv_plist);
if (pve->pv_flags & PVF_WIRED)
@@ -1845,6 +1854,8 @@
struct pv_entry *npv;
u_int flags, oflags;
+ PMAP_ASSERT_LOCKED(pm);
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if ((npv = pmap_find_pv(pg, pm, va)) == NULL)
return (0);
@@ -1910,6 +1921,8 @@
dprintf("pmap_pinit0: pmap = %08x, pm_pdir = %08x\n",
(u_int32_t) pmap, (u_int32_t) pmap->pm_pdir);
bcopy(kernel_pmap, pmap, sizeof(*pmap));
+ bzero(&pmap->pm_mtx, sizeof(pmap->pm_mtx));
+ PMAP_LOCK_INIT(pmap);
}
/*
@@ -1956,7 +1969,6 @@
UMA_ZONE_VM | UMA_ZONE_NOFREE);
uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
- uma_zone_set_obj(l2zone, &l2zone_obj, pv_entry_max);
}
@@ -2502,11 +2514,10 @@
cpu_tlb_flushID();
cpu_cpwait();
+ PMAP_LOCK_INIT(kernel_pmap);
kernel_pmap->pm_active = -1;
kernel_pmap->pm_domain = PMAP_DOMAIN_KERNEL;
- LIST_INIT(&allpmaps);
TAILQ_INIT(&kernel_pmap->pm_pvlist);
- LIST_INSERT_HEAD(&allpmaps, kernel_pmap, pm_list);
/*
* Reserve some special page table entries/VA space for temporary
@@ -2541,6 +2552,7 @@
virtual_end = lastaddr;
kernel_vm_end = pmap_curmaxkvaddr;
arm_nocache_startaddr = lastaddr;
+ mtx_init(&cmtx, "TMP mappings mtx", NULL, MTX_DEF);
#ifdef ARM_USE_SMALL_ALLOC
mtx_init(&smallalloc_mtx, "Small alloc page list", NULL, MTX_DEF);
@@ -2566,7 +2578,6 @@
pmap_idcache_wbinv_all(pmap);
pmap_tlb_flushID(pmap);
cpu_cpwait();
- LIST_REMOVE(pmap, pm_list);
if (vector_page < KERNBASE) {
struct pcb *curpcb = PCPU_GET(curpcb);
pcb = thread0.td_pcb;
@@ -2595,6 +2606,7 @@
}
pmap_free_l1(pmap);
+ PMAP_LOCK_DESTROY(pmap);
dprintf("pmap_release()\n");
}
@@ -2804,6 +2816,7 @@
pt_entry_t *pt;
vm_page_lock_queues();
+ PMAP_LOCK(pmap);
for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) {
if (pv->pv_flags & PVF_WIRED) {
/* The page is wired, cannot remove it now. */
@@ -2827,6 +2840,7 @@
cpu_idcache_wbinv_all();
cpu_tlb_flushID();
cpu_cpwait();
+ PMAP_UNLOCK(pmap);
}
@@ -3067,6 +3081,7 @@
if (!pmap_get_pde_pte(pmap, addr, &pde, &pte))
return (FALSE);
+ KASSERT(pte != NULL, ("Valid mapping but no pte ?"));
if (*pte == 0)
return (TRUE);
return (FALSE);
@@ -3160,6 +3175,7 @@
if (flush == FALSE && (pv->pv_pmap == curpm ||
pv->pv_pmap == pmap_kernel()))
flush = TRUE;
+ PMAP_LOCK(pv->pv_pmap);
l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va);
KASSERT(l2b != NULL, ("No l2 bucket"));
ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)];
@@ -3172,6 +3188,7 @@
pv->pv_pmap->pm_stats.resident_count--;
flags |= pv->pv_flags;
pmap_nuke_pv(m, pv->pv_pmap, pv);
+ PMAP_UNLOCK(pv->pv_pmap);
pmap_free_pv_entry(pv);
}
@@ -3199,9 +3216,7 @@
int flush;
if ((prot & VM_PROT_READ) == 0) {
- mtx_lock(&Giant);
pmap_remove(pm, sva, eva);
- mtx_unlock(&Giant);
return;
}
@@ -3213,7 +3228,8 @@
return;
}
- mtx_lock(&Giant);
+ vm_page_lock_queues();
+ PMAP_LOCK(pm);
/*
* OK, at this point, we know we're doing write-protect operation.
@@ -3224,7 +3240,6 @@
flush = ((eva - sva) >= (PAGE_SIZE * 4)) ? 0 : -1;
flags = 0;
- vm_page_lock_queues();
while (sva < eva) {
next_bucket = L2_NEXT_BUCKET(sva);
if (next_bucket > eva)
@@ -3282,7 +3297,7 @@
}
vm_page_unlock_queues();
- mtx_unlock(&Giant);
+ PMAP_UNLOCK(pm);
}
@@ -3303,6 +3318,21 @@
pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
boolean_t wired)
{
+
+ vm_page_lock_queues();
+ PMAP_LOCK(pmap);
+ pmap_enter_locked(pmap, va, m, prot, wired);
+ vm_page_unlock_queues();
+ PMAP_UNLOCK(pmap);
+}
+
+/*
+ * The page queues and pmap must be locked.
+ */
+static void
+pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
+ boolean_t wired)
+{
struct l2_bucket *l2b = NULL;
struct vm_page *opg;
struct pv_entry *pve = NULL;
@@ -3311,7 +3341,8 @@
u_int oflags;
vm_paddr_t pa;
- vm_page_lock_queues();
+ PMAP_ASSERT_LOCKED(pmap);
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if (va == vector_page) {
pa = systempage.pv_pa;
m = NULL;
@@ -3428,9 +3459,11 @@
simple_lock(&opg->mdpage.pvh_slock);
#endif
pve = pmap_remove_pv(opg, pmap, va);
- if (m && (m->flags & (PG_UNMANAGED | PG_FICTITIOUS)) && pve)
+ if (m && (m->flags & (PG_UNMANAGED | PG_FICTITIOUS)) &&
+ pve)
pmap_free_pv_entry(pve);
- else if (!pve)
+ else if (!pve &&
+ !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS)))
pve = pmap_get_pv_entry();
KASSERT(pve != NULL, ("No pv"));
#if 0
@@ -3525,7 +3558,36 @@
if (m)
pmap_vac_me_harder(m, pmap, va);
}
- vm_page_unlock_queues();
+}
+
+/*
+ * Maps a sequence of resident pages belonging to the same object.
+ * The sequence begins with the given page m_start. This page is
+ * mapped at the given virtual address start. Each subsequent page is
+ * mapped at a virtual address that is offset from start by the same
+ * amount as the page is offset from m_start within the object. The
+ * last page in the sequence is the page with the largest offset from
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list