PERFORCE change 120042 for review

Roman Divacky rdivacky at FreeBSD.org
Sat May 19 10:50:17 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=120042

Change 120042 by rdivacky at rdivacky_witten on 2007/05/19 10:49:53

	IFC

Affected files ...

.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/md_var.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysvec.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ch.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_da.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pass.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_pt.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sa.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_ses.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_sg.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_targ_bh.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/coda/coda_vnops.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/ia32/ia32_sysvec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linprocfs/linprocfs.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/linux/linux_misc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/compat/svr4/svr4_misc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.amd64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.arm#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.i386#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.ia64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.pc98#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.powerpc#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.sparc64#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/Makefile.sun4v#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/NOTES#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/files#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.mk#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kern.pre.mk#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/kmod.mk#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/conf/options#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpi_hpet.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/acpica/acpivar.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bce.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcefw.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/bce/if_bcereg.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cardbus/cardbus.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/cardbus/cardbus_cis.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/ciss/ciss.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_80003es2lan.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_80003es2lan.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82540.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82541.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82541.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82542.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82543.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82543.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82571.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82571.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82575.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_82575.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_api.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_api.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_defines.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_hw.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_ich8lan.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_ich8lan.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_mac.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_mac.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_manage.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_manage.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_nvm.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_nvm.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_osdep.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_phy.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_phy.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/e1000_regs.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/if_em.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/em/if_em.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/isp/isp_freebsd.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfi_cam.c#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfireg.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mfi/mfivar.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcsd.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/mmc/mmcvar.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pccbb/pccbb.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pci.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pci_private.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/pci/pcireg.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/twa/tw_osl.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/twa/tw_osl_share.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/uart/uart_bus_pci.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/dev/usb/ufoma.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/nullfs/null_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/smbfs/smbfs_io.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/umapfs/umap_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/fs/unionfs/union_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/geom/part/g_part.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/i386/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/i386/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ia64/ia64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/Make.tags.inc#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/imgact_elf.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/init_main.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_exit.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_fork.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_lock.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_malloc.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_mib.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_mutex.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_resource.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_rwlock.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_sx.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_synch.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/kern_thread.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_lock.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_sleepqueue.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_trap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/subr_turnstile.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_domain.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_mbuf.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_sockbuf.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_socket.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/uipc_syscalls.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_bio.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_default.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_subr.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vfs_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/kern/vnode_if.src#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/mfi/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/mfi/mfip/Makefile#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/netgraph/Makefile#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/modules/netgraph/car/Makefile#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ethernet.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ieee8023ad_lacp.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/ieee8023ad_lacp.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_fwsubr.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_lagg.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_lagg.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/net/if_var.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_car.c#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_car.h#1 branch
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_fec.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netgraph/ng_mppc.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/icmp6.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/ip_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_asconf.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_auth.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_constants.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_indata.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_output.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_pcb.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_sysctl.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_timer.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_uio.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctp_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/sctputil.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_input.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_output.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_reass.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_subr.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_syncache.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timer.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timer.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_timewait.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/tcp_var.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet/udp_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/icmp6.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/in6_proto.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/ip6_input.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/netinet6/sctp6_usrreq.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/nfsclient/nfs_bio.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/nfsclient/nfs_socket.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/pc98/conf/GENERIC#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/pc98/pc98/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/powerpc/powerpc/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/include/smp.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/sparc64/machdep.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sparc64/sparc64/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/machdep.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/pmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/tsb.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sun4v/sun4v/tte_hash.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/lockf.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/param.h#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/sysctl.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/sysent.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/vmmeter.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/sys/vnode.h#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/ufs/ffs/ffs_vnops.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/swap_pager.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/uma_core.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_contig.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_fault.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_glue.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_map.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_meter.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_mmap.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_object.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_page.c#3 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_pageout.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_pageq.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vm_zeroidle.c#2 integrate
.. //depot/projects/soc2007/rdivacky/linux_futex/sys/vm/vnode_pager.c#2 integrate

Differences ...

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/machdep.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.670 2007/03/30 00:06:20 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.671 2007/05/18 07:10:42 jeff Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -221,8 +221,8 @@
 	vm_ksubmap_init(&kmi);
 
 	printf("avail memory  = %ju (%ju MB)\n",
-	    ptoa((uintmax_t)cnt.v_free_count),
-	    ptoa((uintmax_t)cnt.v_free_count) / 1048576);
+	    ptoa((uintmax_t)VMCNT_GET(free_count)),
+	    ptoa((uintmax_t)VMCNT_GET(free_count)) / 1048576);
 
 	/*
 	 * Set up buffers, so they can be used to read disk labels.

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/mp_machdep.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.284 2007/05/08 22:01:02 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.285 2007/05/19 05:03:59 kan Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -80,6 +80,8 @@
 int	boot_cpu_id = -1;	/* designated BSP */
 extern	int nkpt;
 
+extern  struct pcpu __pcpu[];
+
 /*
  * CPU topology map datastructures for HTT.
  */

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/amd64/pmap.c#2 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.584 2007/04/25 18:10:43 ups Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.585 2007/05/18 07:10:43 jeff Exp $");
 
 /*
  *	Manages physical address maps.
@@ -620,7 +620,7 @@
 	 * numbers of pv entries.
 	 */
 	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
-	pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+	pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
 	TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
 	pv_entry_high_water = 9 * (pv_entry_max / 10);
 }
@@ -633,7 +633,7 @@
 
 	error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
 	if (error == 0 && req->newptr) {
-		shpgperproc = (pv_entry_max - cnt.v_page_count) / maxproc;
+		shpgperproc = (pv_entry_max - VMCNT_GET(page_count)) / maxproc;
 		pv_entry_high_water = 9 * (pv_entry_max / 10);
 	}
 	return (error);
@@ -648,7 +648,7 @@
 
 	error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req);
 	if (error == 0 && req->newptr) {
-		pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+		pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
 		pv_entry_high_water = 9 * (pv_entry_max / 10);
 	}
 	return (error);
@@ -1149,8 +1149,7 @@
 	 */
 	m->right = *free;
 	*free = m;
-	
-	atomic_subtract_int(&cnt.v_wire_count, 1);
+	VMCNT_DEC(wire_count, 1);
 	return 1;
 }
 
@@ -1460,7 +1459,7 @@
 	pmap->pm_pml4[PML4PML4I] = 0;	/* Recursive Mapping */
 
 	m->wire_count--;
-	atomic_subtract_int(&cnt.v_wire_count, 1);
+	VMCNT_DEC(wire_count, 1);
 	vm_page_free_zero(m);
 	PMAP_LOCK_DESTROY(pmap);
 }

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/md_var.h#2 (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/include/md_var.h,v 1.80 2007/01/18 05:46:32 rodrigc Exp $
+ * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.81 2007/05/19 05:03:59 kan Exp $
  */
 
 #ifndef _MACHINE_MD_VAR_H_
@@ -57,8 +57,6 @@
 extern	uint64_t *vm_page_dump;
 extern	int	vm_page_dump_size;
 
-extern	struct pcpu __pcpu[];
-
 typedef void alias_for_inthand_t(u_int cs, u_int ef, u_int esp, u_int ss);
 struct	thread;
 struct	reg;

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/include/smp.h#2 (text+ko) ====

@@ -6,7 +6,7 @@
  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
  * ----------------------------------------------------------------------------
  *
- * $FreeBSD: src/sys/amd64/include/smp.h,v 1.89 2007/03/06 17:16:46 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/smp.h,v 1.90 2007/05/19 05:01:43 kan Exp $
  *
  */
 
@@ -23,6 +23,7 @@
 #include <machine/frame.h>
 #include <machine/intr_machdep.h>
 #include <machine/apicvar.h>
+#include <machine/pcb.h>
 
 /* global symbols in mpboot.S */
 extern char			mptramp_start[];

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/amd64/linux32/linux32_sysvec.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.28 2007/04/02 18:38:12 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.29 2007/05/14 22:40:04 jhb Exp $");
 #include "opt_compat.h"
 
 #ifndef COMPAT_IA32
@@ -121,7 +121,7 @@
 static void     linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask);
 static void	exec_linux_setregs(struct thread *td, u_long entry,
 				   u_long stack, u_long ps_strings);
-static void	linux32_fixlimits(struct proc *p);
+static void	linux32_fixlimit(struct rlimit *rl, int which);
 
 extern LIST_HEAD(futex_list, futex) futex_list;
 extern struct sx futex_sx;
@@ -966,42 +966,36 @@
 SYSCTL_ULONG(_compat_linux32, OID_AUTO, maxvmem, CTLFLAG_RW,
     &linux32_maxvmem, 0, "");
 
-/*
- * XXX copied from ia32_sysvec.c.
- */
 static void
-linux32_fixlimits(struct proc *p)
+linux32_fixlimit(struct rlimit *rl, int which)
 {
-	struct plimit *oldlim, *newlim;
 
-	if (linux32_maxdsiz == 0 && linux32_maxssiz == 0 &&
-	    linux32_maxvmem == 0)
-		return;
-	newlim = lim_alloc();
-	PROC_LOCK(p);
-	oldlim = p->p_limit;
-	lim_copy(newlim, oldlim);
-	if (linux32_maxdsiz != 0) {
-		if (newlim->pl_rlimit[RLIMIT_DATA].rlim_cur > linux32_maxdsiz)
-		    newlim->pl_rlimit[RLIMIT_DATA].rlim_cur = linux32_maxdsiz;
-		if (newlim->pl_rlimit[RLIMIT_DATA].rlim_max > linux32_maxdsiz)
-		    newlim->pl_rlimit[RLIMIT_DATA].rlim_max = linux32_maxdsiz;
-	}
-	if (linux32_maxssiz != 0) {
-		if (newlim->pl_rlimit[RLIMIT_STACK].rlim_cur > linux32_maxssiz)
-		    newlim->pl_rlimit[RLIMIT_STACK].rlim_cur = linux32_maxssiz;
-		if (newlim->pl_rlimit[RLIMIT_STACK].rlim_max > linux32_maxssiz)
-		    newlim->pl_rlimit[RLIMIT_STACK].rlim_max = linux32_maxssiz;
-	}
-	if (linux32_maxvmem != 0) {
-		if (newlim->pl_rlimit[RLIMIT_VMEM].rlim_cur > linux32_maxvmem)
-		    newlim->pl_rlimit[RLIMIT_VMEM].rlim_cur = linux32_maxvmem;
-		if (newlim->pl_rlimit[RLIMIT_VMEM].rlim_max > linux32_maxvmem)
-		    newlim->pl_rlimit[RLIMIT_VMEM].rlim_max = linux32_maxvmem;
+	switch (which) {
+	case RLIMIT_DATA:
+		if (linux32_maxdsiz != 0) {			
+			if (rl->rlim_cur > linux32_maxdsiz)
+				rl->rlim_cur = linux32_maxdsiz;
+			if (rl->rlim_max > linux32_maxdsiz)
+				rl->rlim_max = linux32_maxdsiz;
+		}
+		break;
+	case RLIMIT_STACK:
+		if (linux32_maxssiz != 0) {
+			if (rl->rlim_cur > linux32_maxssiz)
+				rl->rlim_cur = linux32_maxssiz;
+			if (rl->rlim_max > linux32_maxssiz)
+				rl->rlim_max = linux32_maxssiz;
+		}
+		break;
+	case RLIMIT_VMEM:
+		if (linux32_maxvmem != 0) {
+			if (rl->rlim_cur > linux32_maxvmem)
+				rl->rlim_cur = linux32_maxvmem;
+			if (rl->rlim_max > linux32_maxvmem)
+				rl->rlim_max = linux32_maxvmem;
+		}
+		break;
 	}
-	p->p_limit = newlim;
-	PROC_UNLOCK(p);
-	lim_free(oldlim);
 }
 
 struct sysentvec elf_linux_sysvec = {
@@ -1030,7 +1024,7 @@
 	VM_PROT_ALL,
 	linux_copyout_strings,
 	exec_linux_setregs,
-	linux32_fixlimits
+	linux32_fixlimit
 };
 
 static Elf32_Brandinfo linux_brand = {

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/machdep.c#2 (text+ko) ====

@@ -44,7 +44,7 @@
 
 #include "opt_compat.h"
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.25 2007/02/14 04:41:28 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.26 2007/05/18 07:10:43 jeff Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -286,8 +286,8 @@
 	vm_ksubmap_init(&kmi);
 
 	printf("avail memory = %ju (%ju MB)\n",
-	    (uintmax_t)ptoa(cnt.v_free_count),
-	    (uintmax_t)ptoa(cnt.v_free_count) / 1048576);
+	    (uintmax_t)ptoa(VMCNT_GET(free_count)),
+	    (uintmax_t)ptoa(VMCNT_GET(free_count)) / 1048576);
 
 	bufinit();
 	vm_pager_bufferinit();

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/arm/arm/pmap.c#2 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.78 2007/02/05 10:33:39 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.79 2007/05/18 07:10:43 jeff Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -1970,7 +1970,7 @@
 
 	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
 	
-	pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+	pv_entry_max = shpgperproc * maxproc + VMCNT_GET(page_count);
 	pv_entry_high_water = 9 * (pv_entry_max / 10);
 	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
 	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/boot/i386/boot2/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.59 2005/07/15 12:22:14 ache Exp $
+# $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.60 2007/05/19 05:07:47 kan Exp $
 
 FILES=		boot boot1 boot2
 
@@ -36,7 +36,8 @@
 	-I${.CURDIR}/../btx/lib -I. \
 	-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
 	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
-	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings
+	-Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \
+	-Winline --param max-inline-insns-single=100
 
 LDFLAGS=-static -N --gc-sections
 

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_periph.c#2 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.68 2007/04/19 23:34:51 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.69 2007/05/14 21:48:52 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -102,7 +102,8 @@
 	int ndrivers;
 
 	ndrivers = nperiph_drivers + 2;
-	newdrivers = malloc(sizeof(*newdrivers) * ndrivers, M_TEMP, M_WAITOK);
+	newdrivers = malloc(sizeof(*newdrivers) * ndrivers, M_CAMPERIPH,
+			    M_WAITOK);
 	if (periph_drivers)
 		bcopy(periph_drivers, newdrivers,
 		      sizeof(*newdrivers) * nperiph_drivers);
@@ -111,7 +112,7 @@
 	old = periph_drivers;
 	periph_drivers = newdrivers;
 	if (old)
-		free(old, M_TEMP);
+		free(old, M_CAMPERIPH);
 	nperiph_drivers++;
 }
 

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.c#2 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.183 2007/04/27 14:23:05 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.187 2007/05/16 16:57:21 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -1197,6 +1197,7 @@
 			error = ENOTSUP;
 			break;
 		}
+		xpt_release_bus(bus);
 		break;
 	}
 	/*
@@ -1533,7 +1534,7 @@
 	 */
 	xsoftc.xpt_config_hook =
 	    (struct intr_config_hook *)malloc(sizeof(struct intr_config_hook),
-					      M_TEMP, M_NOWAIT | M_ZERO);
+					      M_CAMXPT, M_NOWAIT | M_ZERO);
 	if (xsoftc.xpt_config_hook == NULL) {
 		printf("xpt_init: Cannot malloc config hook "
 		       "- failing attach\n");
@@ -1542,7 +1543,7 @@
 
 	xsoftc.xpt_config_hook->ich_func = xpt_config;
 	if (config_intrhook_establish(xsoftc.xpt_config_hook) != 0) {
-		free (xsoftc.xpt_config_hook, M_TEMP);
+		free (xsoftc.xpt_config_hook, M_CAMXPT);
 		printf("xpt_init: config_intrhook_establish failed "
 		       "- failing attach\n");
 	}
@@ -4139,7 +4140,6 @@
 void
 xpt_print_path(struct cam_path *path)
 {
-	mtx_assert(path->bus->sim->mtx, MA_OWNED);
 
 	if (path == NULL)
 		printf("(nopath): ");
@@ -5243,7 +5243,7 @@
 
 		/* Save some state for use while we probe for devices */
 		scan_info = (xpt_scan_bus_info *)
-		    malloc(sizeof(xpt_scan_bus_info), M_TEMP, M_NOWAIT);
+		    malloc(sizeof(xpt_scan_bus_info), M_CAMXPT, M_NOWAIT);
 		scan_info->request_ccb = request_ccb;
 		scan_info->cpi = &work_ccb->cpi;
 
@@ -5277,7 +5277,7 @@
 				printf("xpt_scan_bus: xpt_create_path failed"
 				       " with status %#x, bus scan halted\n",
 				       status);
-				free(scan_info, M_TEMP);
+				free(scan_info, M_CAMXPT);
 				request_ccb->ccb_h.status = status;
 				xpt_free_ccb(work_ccb);
 				xpt_done(request_ccb);
@@ -5285,7 +5285,7 @@
 			}
 			work_ccb = xpt_alloc_ccb_nowait();
 			if (work_ccb == NULL) {
-				free(scan_info, M_TEMP);
+				free(scan_info, M_CAMXPT);
 				xpt_free_path(path);
 				request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
 				xpt_done(request_ccb);
@@ -5398,7 +5398,7 @@
 				xpt_free_ccb(request_ccb);
 				xpt_free_ccb((union ccb *)scan_info->cpi);
 				request_ccb = scan_info->request_ccb;
-				free(scan_info, M_TEMP);
+				free(scan_info, M_CAMXPT);
 				request_ccb->ccb_h.status = CAM_REQ_CMP;
 				xpt_done(request_ccb);
 				break;
@@ -5417,7 +5417,7 @@
 				xpt_free_ccb(request_ccb);
 				xpt_free_ccb((union ccb *)scan_info->cpi);
 				request_ccb = scan_info->request_ccb;
-				free(scan_info, M_TEMP);
+				free(scan_info, M_CAMXPT);
 				request_ccb->ccb_h.status = status;
 				xpt_done(request_ccb);
 				break;
@@ -5518,17 +5518,17 @@
 	}
 
 	if (request_ccb == NULL) {
-		request_ccb = malloc(sizeof(union ccb), M_TEMP, M_NOWAIT);
+		request_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT);
 		if (request_ccb == NULL) {
 			xpt_print(path, "xpt_scan_lun: can't allocate CCB, "
 			    "can't continue\n");
 			return;
 		}
-		new_path = malloc(sizeof(*new_path), M_TEMP, M_NOWAIT);
+		new_path = malloc(sizeof(*new_path), M_CAMXPT, M_NOWAIT);
 		if (new_path == NULL) {
 			xpt_print(path, "xpt_scan_lun: can't allocate path, "
 			    "can't continue\n");
-			free(request_ccb, M_TEMP);
+			free(request_ccb, M_CAMXPT);
 			return;
 		}
 		status = xpt_compile_path(new_path, xpt_periph,
@@ -5539,8 +5539,8 @@
 		if (status != CAM_REQ_CMP) {
 			xpt_print(path, "xpt_scan_lun: can't compile path, "
 			    "can't continue\n");
-			free(request_ccb, M_TEMP);
-			free(new_path, M_TEMP);
+			free(request_ccb, M_CAMXPT);
+			free(new_path, M_CAMXPT);
 			return;
 		}
 		xpt_setup_ccb(&request_ccb->ccb_h, new_path, /*priority*/ 1);
@@ -5575,8 +5575,8 @@
 xptscandone(struct cam_periph *periph, union ccb *done_ccb)
 {
 	xpt_release_path(done_ccb->ccb_h.path);
-	free(done_ccb->ccb_h.path, M_TEMP);
-	free(done_ccb, M_TEMP);
+	free(done_ccb->ccb_h.path, M_CAMXPT);
+	free(done_ccb, M_CAMXPT);
 }
 
 static cam_status
@@ -5598,7 +5598,7 @@
 		return(CAM_REQ_CMP_ERR);
 	}
 
-	softc = (probe_softc *)malloc(sizeof(*softc), M_TEMP, M_NOWAIT);
+	softc = (probe_softc *)malloc(sizeof(*softc), M_CAMXPT, M_NOWAIT);
 
 	if (softc == NULL) {
 		printf("proberegister: Unable to probe new device. "
@@ -5751,7 +5751,7 @@
 	
 		if (softc->action == PROBE_INQUIRY_BASIC_DV1
 		 || softc->action == PROBE_INQUIRY_BASIC_DV2) {
-			inq_buf = malloc(inquiry_len, M_TEMP, M_NOWAIT);
+			inq_buf = malloc(inquiry_len, M_CAMXPT, M_NOWAIT);
 		}
 		if (inq_buf == NULL) {
 			xpt_print(periph->path, "malloc failure- skipping Basic"
@@ -5785,7 +5785,7 @@
 		mode_buf_len = sizeof(struct scsi_mode_header_6)
 			     + sizeof(struct scsi_mode_blk_desc)
 			     + sizeof(struct scsi_control_page);
-		mode_buf = malloc(mode_buf_len, M_TEMP, M_NOWAIT);
+		mode_buf = malloc(mode_buf_len, M_CAMXPT, M_NOWAIT);
 		if (mode_buf != NULL) {
 	                scsi_mode_sense(csio,
 					/*retries*/4,
@@ -5817,7 +5817,7 @@
 
 		if ((device->quirk->quirks & CAM_QUIRK_NOSERIAL) == 0)
 			serial_buf = (struct scsi_vpd_unit_serial_number *)
-				malloc(sizeof(*serial_buf), M_TEMP,
+				malloc(sizeof(*serial_buf), M_CAMXPT,
 					M_NOWAIT | M_ZERO);
 
 		if (serial_buf != NULL) {
@@ -6107,7 +6107,7 @@
 					 /*count*/1, /*run_queue*/TRUE);
 		}
 		xpt_release_ccb(done_ccb);
-		free(mode_hdr, M_TEMP);
+		free(mode_hdr, M_CAMXPT);
 		softc->action = PROBE_SERIAL_NUM;
 		xpt_schedule(periph, priority);
 		return;
@@ -6194,7 +6194,7 @@
 				xpt_async(AC_LOST_DEVICE, path, NULL);
 		}
 		if (serial_buf != NULL)
-			free(serial_buf, M_TEMP);
+			free(serial_buf, M_CAMXPT);
 
 		if (changed != 0) {
 			/*
@@ -6283,12 +6283,12 @@
 				/* give up */
 				softc->action = PROBE_DV_EXIT;
 			}
-			free(nbuf, M_TEMP);
+			free(nbuf, M_CAMXPT);
 			xpt_release_ccb(done_ccb);
 			xpt_schedule(periph, priority);
 			return;
 		}
-		free(nbuf, M_TEMP);
+		free(nbuf, M_CAMXPT);
 		if (softc->action == PROBE_INQUIRY_BASIC_DV1) {
 			softc->action = PROBE_INQUIRY_BASIC_DV2;
 			xpt_release_ccb(done_ccb);
@@ -6327,7 +6327,7 @@
 static void
 probecleanup(struct cam_periph *periph)
 {
-	free(periph->softc, M_TEMP);
+	free(periph->softc, M_CAMXPT);
 }
 
 static void
@@ -6984,7 +6984,7 @@
 
 		/* Release our hook so that the boot can continue. */
 		config_intrhook_disestablish(xsoftc.xpt_config_hook);
-		free(xsoftc.xpt_config_hook, M_TEMP);
+		free(xsoftc.xpt_config_hook, M_CAMXPT);
 		xsoftc.xpt_config_hook = NULL;
 	}
 
@@ -7029,6 +7029,39 @@
 		xpt_free_ccb(done_ccb);
 }
 
+cam_status
+xpt_register_async(int event, ac_callback_t *cbfunc, void *cbarg,
+		   struct cam_path *path)
+{
+	struct ccb_setasync csa;
+	cam_status status;
+	int xptpath = 0;
+
+	if (path == NULL) {
+		mtx_lock(&xsoftc.xpt_lock);
+		status = xpt_create_path(&path, /*periph*/NULL, CAM_XPT_PATH_ID,
+					 CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD);
+		if (status != CAM_REQ_CMP) {
+			mtx_unlock(&xsoftc.xpt_lock);
+			return (status);
+		}
+		xptpath = 1;
+	}
+
+	xpt_setup_ccb(&csa.ccb_h, path, /*priority*/5);
+	csa.ccb_h.func_code = XPT_SASYNC_CB;
+	csa.event_enable = event;
+	csa.callback = cbfunc;
+	csa.callback_arg = cbarg;
+	xpt_action((union ccb *)&csa);
+	status = csa.ccb_h.status;
+	if (xptpath) {
+		xpt_free_path(path);
+		mtx_unlock(&xsoftc.xpt_lock);
+	}
+	return (status);
+}
+
 static void
 xptaction(struct cam_sim *sim, union ccb *work_ccb)
 {

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/cam_xpt.h#2 (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/cam/cam_xpt.h,v 1.8 2007/04/15 08:49:09 scottl Exp $
+ * $FreeBSD: src/sys/cam/cam_xpt.h,v 1.9 2007/05/16 16:54:23 scottl Exp $
  */
 
 #ifndef _CAM_CAM_XPT_H
@@ -79,6 +79,8 @@
 void			xpt_rescan(union ccb *ccb);
 void			xpt_lock_buses(void);
 void			xpt_unlock_buses(void);
+cam_status		xpt_register_async(int event, ac_callback_t *cbfunc,
+					   void *cbarg, struct cam_path *path);
 #endif /* _KERNEL */
 
 #endif /* _CAM_CAM_XPT_H */

==== //depot/projects/soc2007/rdivacky/linux_futex/sys/cam/scsi/scsi_cd.c#2 (text+ko) ====

@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.99 2007/04/16 19:41:14 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_cd.c,v 1.101 2007/05/16 16:54:23 scottl Exp $");
 
 #include "opt_cd.h"
 
@@ -329,11 +329,12 @@
 static STAILQ_HEAD(changerlist, cdchanger) changerq;
 static int num_changers;
 
+MALLOC_DEFINE(M_SCSICD, "scsi_cd", "scsi_cd buffers");
+
 static void
 cdinit(void)
 {
 	cam_status status;
-	struct cam_path *path;
 
 	mtx_init(&changerq_mtx, "cdchangerq", "SCSI CD Changer List", MTX_DEF);
 	STAILQ_INIT(&changerq);
@@ -342,22 +343,8 @@
 	 * Install a global async callback.  This callback will
 	 * receive async callbacks like "new device found".
 	 */
-	status = xpt_create_path(&path, /*periph*/NULL, CAM_XPT_PATH_ID,
-				 CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD);
-
-	if (status == CAM_REQ_CMP) {
-		struct ccb_setasync csa;
+	status = xpt_register_async(AC_FOUND_DEVICE, cdasync, NULL, NULL);
 
-                xpt_setup_ccb(&csa.ccb_h, path, /*priority*/5);
-                csa.ccb_h.func_code = XPT_SASYNC_CB;
-                csa.event_enable = AC_FOUND_DEVICE;
-                csa.callback = cdasync;
-                csa.callback_arg = NULL;
-                xpt_action((union ccb *)&csa);
-		status = csa.ccb_h.status;
-                xpt_free_path(path);
-        }
-
 	if (status != CAM_REQ_CMP) {
 		printf("cd: Failed to attach master async callback "
 		       "due to status 0x%x!\n", status);
@@ -368,20 +355,13 @@
 cdoninvalidate(struct cam_periph *periph)
 {
 	struct cd_softc *softc;
-	struct ccb_setasync csa;
 
 	softc = (struct cd_softc *)periph->softc;
 
 	/*
 	 * De-register any async callbacks.
 	 */
-	xpt_setup_ccb(&csa.ccb_h, periph->path,
-		      /* priority */ 5);
-	csa.ccb_h.func_code = XPT_SASYNC_CB;
-	csa.event_enable = 0;
-	csa.callback = cdasync;
-	csa.callback_arg = periph;
-	xpt_action((union ccb *)&csa);
+	xpt_register_async(0, cdasync, periph, periph->path);
 
 	softc->flags |= CD_FLAG_INVALID;
 
@@ -637,7 +617,6 @@
 cdregister(struct cam_periph *periph, void *arg)
 {
 	struct cd_softc *softc;
-	struct ccb_setasync csa;
 	struct ccb_pathinq cpi;
 	struct ccb_getdev *cgd;
 	char tmpstr[80];
@@ -749,13 +728,8 @@
 	 * Add an async callback so that we get
 	 * notified if this device goes away.
 	 */
-	xpt_setup_ccb(&csa.ccb_h, periph->path,
-		      /* priority */ 5);
-	csa.ccb_h.func_code = XPT_SASYNC_CB;
-	csa.event_enable = AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE;
-	csa.callback = cdasync;
-	csa.callback_arg = periph;
-	xpt_action((union ccb *)&csa);
+	xpt_register_async(AC_SENT_BDR | AC_BUS_RESET | AC_LOST_DEVICE,
+			   cdasync, periph, periph->path);
 
 	/*
 	 * If the target lun is greater than 0, we most likely have a CD
@@ -1519,7 +1493,7 @@
 	{
 
 		rcap = (struct scsi_read_capacity_data *)malloc(sizeof(*rcap),
-								M_TEMP,
+								M_SCSICD,
 								M_NOWAIT);
 		if (rcap == NULL) {
 			xpt_print(periph->path,
@@ -1778,7 +1752,7 @@
 				}
 			}
 		}
-		free(rdcap, M_TEMP);
+		free(rdcap, M_SCSICD);
 		if (announce_buf[0] != '\0') {
 			xpt_announce_periph(periph, announce_buf);
 			if (softc->flags & CD_FLAG_CHANGER)
@@ -1906,7 +1880,7 @@
 			union cd_pages *page;
 
 			params.alloc_len = sizeof(union cd_mode_data_6_10);
-			params.mode_buf = malloc(params.alloc_len, M_TEMP,
+			params.mode_buf = malloc(params.alloc_len, M_SCSICD,
 						 M_WAITOK | M_ZERO);
 
 			cam_periph_lock(periph);
@@ -1915,7 +1889,7 @@
 
 			error = cdgetmode(periph, &params, AUDIO_PAGE);
 			if (error) {
-				free(params.mode_buf, M_TEMP);
+				free(params.mode_buf, M_SCSICD);
 				cam_periph_unlock(periph);
 				break;
 			}
@@ -1924,7 +1898,7 @@
 			page->audio.flags &= ~CD_PA_SOTC;
 			page->audio.flags |= CD_PA_IMMED;
 			error = cdsetmode(periph, &params);
-			free(params.mode_buf, M_TEMP);
+			free(params.mode_buf, M_SCSICD);
 			if (error) {
 				cam_periph_unlock(periph);
 				break;
@@ -2001,7 +1975,7 @@
 			union cd_pages *page;
 
 			params.alloc_len = sizeof(union cd_mode_data_6_10);
-			params.mode_buf = malloc(params.alloc_len, M_TEMP,
+			params.mode_buf = malloc(params.alloc_len, M_SCSICD,
 						 M_WAITOK | M_ZERO);
 
 			cam_periph_lock(periph);
@@ -2010,7 +1984,7 @@
 
 			error = cdgetmode(periph, &params, AUDIO_PAGE);
 			if (error) {
-				free(params.mode_buf, M_TEMP);
+				free(params.mode_buf, M_SCSICD);
 				cam_periph_unlock(periph);
 				break;

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list