From owner-p4-projects@FreeBSD.ORG Sat Sep 2 00:41:38 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6908716A4E0; Sat, 2 Sep 2006 00:41:38 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D7A2B16A4DE for ; Sat, 2 Sep 2006 00:41:37 +0000 (UTC) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 73B3943D45 for ; Sat, 2 Sep 2006 00:41:37 +0000 (GMT) (envelope-from gnn@neville-neil.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k820fbIw026518 for ; Sat, 2 Sep 2006 00:41:37 GMT (envelope-from gnn@neville-neil.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k820fYTe026515 for perforce@freebsd.org; Sat, 2 Sep 2006 00:41:34 GMT (envelope-from gnn@neville-neil.com) Date: Sat, 2 Sep 2006 00:41:34 GMT Message-Id: <200609020041.k820fYTe026515@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gnn@neville-neil.com using -f From: "George V. Neville-Neil" To: Perforce Change Reviews Cc: Subject: PERFORCE change 105494 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Sep 2006 00:41:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=105494 Change 105494 by gnn@gnn_devbox_fast_ipsec on 2006/09/02 00:41:21 Integrate from HEAD Affected files ... .. //depot/projects/gnn_fast_ipsec/src/sys/Makefile#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/amd64/amd64/busdma_machdep.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_io.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_reg.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_var.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/uart_cpu_sa1110.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/uart_dev_sa1110.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/arm/xscale/i80321/iq31244_machdep.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/cam/cam_ccb.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/cam/cam_periph.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/cam/scsi/scsi_target.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/conf/files#9 edit .. //depot/projects/gnn_fast_ipsec/src/sys/conf/kmod.mk#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/bfe/if_bfe.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/bfe/if_bfereg.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/dcons/dcons_os.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/digi/digi.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/hifn/hifn7751.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/hme/if_hme.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/ic/ns16550.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/isp/isp_freebsd.h#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/isp/isp_pci.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/isp/isp_tpublic.h#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/isp/ispvar.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/le/if_le_cbus.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/ofw/ofw_console.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/pccbb/pccbb.c#8 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/pccbb/pccbb_pci.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/pccbb/pccbbvar.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/pci/fixup_pci.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/re/if_re.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/safe/safe.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sio/sio.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/midi.c#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/midi.h#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/midiq.h#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/mpu401.c#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/mpu401.h#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/mpu_if.m#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/mpufoi_if.m#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/sequencer.c#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/sequencer.h#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/midi/synth_if.m#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/pci/cmi.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/sound/pci/emu10k1.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/syscons/apm/apm_saver.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/syscons/syscons.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/uart/uart.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/uart/uart_dbg.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/uart/uart_dev_ns8250.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/uart/uart_tty.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/ubsec/ubsec.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ehci.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ehci_pci.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ehcivar.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/if_axe.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/if_axereg.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ohci.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ohci_pci.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ohcireg.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/ohcivar.h#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/sl811hs.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/sl811hsvar.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/uhci.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/uhci_pci.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/uhcivar.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/usb.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/usb_mem.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/usbdi.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/usb/usbdivar.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/dev/zs/zs.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Dependencies#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-cam#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-crypto#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-dev_pci#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-dev_sound#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-dev_usb#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-geom#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-i4b#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-kern#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-libkern#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-linux#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-net80211#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-netgraph#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-netinet#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-netinet6#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-netipsec#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-opencrypto#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Doxyfile-vm#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/Makefile#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/README#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/common-Doxyfile#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/doc/subsys/notreviewed.dox#1 branch .. //depot/projects/gnn_fast_ipsec/src/sys/fs/msdosfs/msdosfs_vfsops.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/ntfs/ntfs_vfsops.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/nullfs/null_vfsops.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/nwfs/nwfs_io.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/procfs/procfs.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/smbfs/smbfs_io.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/fs/udf/udf_vfsops.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gdb/gdb.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gdb/gdb_cons.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gdb/gdb_main.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gdb/gdb_packet.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/geom/geom_bsd.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/bios/apm.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/bios/apm.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/i386/busdma_machdep.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/i386/machdep.c#8 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/i386/ptrace_machdep.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/i386/vm_machdep.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/include/npx.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/i386/isa/npx.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/ia64/ia64/ssc.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/isofs/cd9660/cd9660_vfsops.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/kern_exec.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/kern_exit.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/kern_linker.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/subr_disk.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/subr_stack.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/subr_taskqueue.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/tty_cons.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/uipc_syscalls.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/vfs_subr.c#9 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/kern/vnode_if.src#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/modules/Makefile#8 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/modules/mfi/Makefile#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/modules/sound/driver/cmi/Makefile#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/modules/sound/driver/emu10k1/Makefile#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/modules/sound/sound/Makefile#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/net/bpf_filter.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/netinet/ip_fw.h#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/netinet/ip_fw2.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/netinet6/in6_src.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfs4client/nfs4_vfsops.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfs4client/nfs4_vnops.c#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs_bio.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs_nfsiod.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs_node.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs_socket.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfs_vfsops.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/nfsclient/nfsmount.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/opencrypto/crypto.c#6 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/opencrypto/cryptodev.c#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/opencrypto/cryptodev.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/pc98/cbus/sio.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/pci/if_rlreg.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/sparc64/include/pmap.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/sparc64/sparc64/pmap.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/sys/cons.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/sys/kernel.h#2 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/sys/queue.h#4 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/tools/vnode_if.awk#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/ufs/ffs/ffs_vfsops.c#7 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/vm/vm_extern.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/vm/vm_glue.c#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/vm/vm_map.c#5 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/vm/vm_map.h#3 integrate .. //depot/projects/gnn_fast_ipsec/src/sys/vm/vm_meter.c#2 integrate Differences ... ==== //depot/projects/gnn_fast_ipsec/src/sys/Makefile#4 (text+ko) ==== @@ -4,17 +4,15 @@ # The boot loader .if ${MK_BOOT} != "no" -.if ${MACHINE_ARCH} != "arm" SUBDIR= boot .endif -.endif # Directories to include in cscope name file and TAGS. -CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs gnu i4b isa \ - isofs kern libkern modules net netatalk netatm netgraph \ - netinet netinet6 netipx netkey netnatm netncp netsmb nfs \ - nfsclient nfs4client rpc pccard pci posix4 sys ufs vm \ - ${ARCHDIR} +CSCOPEDIRS= coda compat conf contrib crypto ddb dev fs geom gnu i4b isa \ + isofs kern libkern modules net net80211 netatalk netatm \ + netgraph netinet netinet6 netipx netkey netnatm netncp \ + netsmb nfs nfsclient nfs4client rpc pccard pci posix4 sys \ + ufs vm ${ARCHDIR} ARCHDIR ?= ${MACHINE} ==== //depot/projects/gnn_fast_ipsec/src/sys/amd64/amd64/busdma_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.74 2006/05/03 04:14:17 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.77 2006/06/01 04:49:29 silby Exp $"); #include #include @@ -492,7 +492,16 @@ } } + /* + * XXX: + * (dmat->alignment < dmat->maxsize) is just a quick hack; the exact + * 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 warn the user if malloc gets it wrong. + */ if ((dmat->maxsize <= PAGE_SIZE) && + (dmat->alignment < dmat->maxsize) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) { *vaddr = malloc(dmat->maxsize, M_DEVBUF, mflags); } else { @@ -510,6 +519,8 @@ CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (ENOMEM); + } else if ((uintptr_t)*vaddr & (dmat->alignment - 1)) { + 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); @@ -529,8 +540,9 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); - if ((dmat->maxsize <= PAGE_SIZE) - && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) + if ((dmat->maxsize <= PAGE_SIZE) && + (dmat->alignment < dmat->maxsize) && + dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) free(vaddr, M_DEVBUF); else { contigfree(vaddr, dmat->maxsize, M_DEVBUF); ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/assabet_machdep.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.10 2005/10/03 14:15:50 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.18 2006/08/08 20:59:38 cognet Exp $"); #include "opt_md.h" @@ -93,6 +93,8 @@ #include #include +#include + #define MDROOT_ADDR 0xd0400000 #define KERNEL_PT_VMEM 0 /* Page table for mapping video memory */ @@ -102,7 +104,7 @@ #define KERNEL_PT_KERNEL 1 /* Page table for mapping kernel */ #define KERNEL_PT_L1 4 /* Page table for mapping l1pt */ #define KERNEL_PT_VMDATA 5 /* Page tables for mapping kernel VM */ -#define KERNEL_PT_VMDATA_NUM 4 /* start with 16MB of KVM */ +#define KERNEL_PT_VMDATA_NUM 7 /* start with 16MB of KVM */ #define NUM_KERNEL_PTS (KERNEL_PT_VMDATA + KERNEL_PT_VMDATA_NUM) /* Define various stack sizes in pages */ @@ -113,7 +115,7 @@ #else #define UND_STACK_SIZE 1 #endif -#define KERNEL_VM_BASE (KERNBASE + 0x00c00000) +#define KERNEL_VM_BASE (KERNBASE + 0x00100000) #define KERNEL_VM_SIZE 0x05000000 extern u_int data_abort_handler_address; @@ -124,7 +126,7 @@ extern void *_end; -int got_mmu = 0; +extern vm_offset_t sa1110_uart_vaddr; extern vm_offset_t sa1_cache_clean_addr; @@ -151,9 +153,37 @@ struct pv_addr undstack; struct pv_addr abtstack; struct pv_addr kernelstack; -void enable_mmu(vm_offset_t); static struct trapframe proc0_tf; +/* Static device mappings. */ +static const struct pmap_devmap assabet_devmap[] = { + /* + * Map the on-board devices VA == PA so that we can access them + * with the MMU on or off. + */ + { + SACOM1_VBASE, + SACOM1_BASE, + SACOM1_SIZE, + VM_PROT_READ|VM_PROT_WRITE, + PTE_NOCACHE, + }, + { + SAIPIC_BASE, + SAIPIC_BASE, + SAIPIC_SIZE, + VM_PROT_READ|VM_PROT_WRITE, + PTE_NOCACHE, + }, + { + 0, + 0, + 0, + 0, + 0, + } +}; + struct arm32_dma_range * bus_dma_get_range(void) { @@ -191,6 +221,8 @@ vm_size_t pt_size; int i = 0; uint32_t fake_preload[35]; + uint32_t memsize = 32 * 1024 * 1024; + sa1110_uart_vaddr = SACOM1_VBASE; boothowto = RB_VERBOSE | RB_SINGLE; cninit(); @@ -227,7 +259,7 @@ fake_preload[i] = 0; preload_metadata = (void *)fake_preload; - physmem =( 16 * 1024 * 1024) / PAGE_SIZE; + physmem = memsize / PAGE_SIZE; pc = &__pcpu; pcpu_init(pc, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); @@ -256,9 +288,18 @@ valloc_pages(kernel_l1pt, L1_TABLE_SIZE / PAGE_SIZE); valloc_pages(md_bla, L2_TABLE_SIZE / PAGE_SIZE); alloc_pages(sa1_cache_clean_addr, CPU_SA110_CACHE_CLEAN_SIZE / PAGE_SIZE); + for (loop = 0; loop < NUM_KERNEL_PTS; ++loop) { - valloc_pages(kernel_pt_table[loop], - L2_TABLE_SIZE / PAGE_SIZE); + if (!(loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL))) { + valloc_pages(kernel_pt_table[loop], + L2_TABLE_SIZE / PAGE_SIZE); + } else { + kernel_pt_table[loop].pv_pa = freemempos + + (loop % (PAGE_SIZE / L2_TABLE_SIZE_REAL)) * + L2_TABLE_SIZE_REAL; + kernel_pt_table[loop].pv_va = + kernel_pt_table[loop].pv_pa; + } } valloc_pages(systempage, 1); @@ -305,10 +346,10 @@ pmap_link_l2pt(l1pagetable, MDROOT_ADDR, &md_bla); for (loop = 0; loop < KERNEL_PT_VMDATA_NUM; ++loop) - pmap_link_l2pt(l1pagetable, KERNEL_VM_BASE + loop * 0x00400000, + pmap_link_l2pt(l1pagetable, KERNEL_VM_BASE + loop * 0x00100000, &kernel_pt_table[KERNEL_PT_VMDATA + loop]); pmap_map_chunk(l1pagetable, KERNBASE, KERNBASE, - (uint32_t)&end - KERNBASE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); + ((uint32_t)&end - KERNBASE), VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); /* Map the stack pages */ pmap_map_chunk(l1pagetable, irqstack.pv_va, irqstack.pv_pa, IRQ_STACK_SIZE * PAGE_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); @@ -334,11 +375,8 @@ /* Map the vector page. */ pmap_map_entry(l1pagetable, vector_page, systempage.pv_pa, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); - /* Map SACOM3. */ - pmap_map_entry(l1pagetable, 0xd000d000, 0x80010000, - VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE); - pmap_map_entry(l1pagetable, 0x90050000, 0x90050000, - VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE); + /* Map the statically mapped devices. */ + pmap_devmap_bootstrap(l1pagetable, assabet_devmap); pmap_map_chunk(l1pagetable, sa1_cache_clean_addr, 0xf0000000, CPU_SA110_CACHE_CLEAN_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); @@ -378,7 +416,7 @@ * After booting there are no gross reloations of the kernel thus * this problem will not occur after initarm(). */ -/* cpu_idcache_wbinv_all();*/ + cpu_idcache_wbinv_all(); bootverbose = 1; @@ -396,28 +434,24 @@ /* Enable MMU, I-cache, D-cache, write buffer. */ cpufunc_control(0x337f, 0x107d); - got_mmu = 1; arm_vector_init(ARM_VECTORS_LOW, ARM_VEC_ALL); pmap_curmaxkvaddr = freemempos + KERNEL_PT_VMDATA_NUM * 0x400000; - pmap_bootstrap(freemempos, - 0xd0000000, &kernel_l1pt); - - - mutex_init(); - - dump_avail[0] = phys_avail[0] = round_page(virtual_avail); dump_avail[1] = phys_avail[1] = 0xc0000000 + 0x02000000 - 1; dump_avail[2] = phys_avail[2] = 0; dump_avail[3] = phys_avail[3] = 0; - + + mutex_init(); + pmap_bootstrap(freemempos, + 0xd0000000, &kernel_l1pt); + /* Do basic tuning, hz etc */ init_param1(); init_param2(physmem); kdb_init(); - avail_end = 0xc0000000 + 0x02000000 - 1; + avail_end = 0xc0000000 + memsize - 1; return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_io.c#3 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_io.c,v 1.7 2006/05/18 22:03:47 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/sa11x0_io.c,v 1.8 2006/05/23 12:14:14 cognet Exp $"); #include #include #include @@ -146,6 +146,13 @@ u_long startpa, endpa, pa; vm_offset_t va; pt_entry_t *pte; + const struct pmap_devmap *pd; + + if ((pd = pmap_devmap_find_pa(bpa, size)) != NULL) { + /* Device was statically mapped. */ + *bshp = pd->pd_va + (bpa - pd->pd_pa); + return 0; + } startpa = trunc_page(bpa); endpa = round_page(bpa + size); ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_reg.h#2 (text+ko) ==== @@ -34,7 +34,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/sa11x0/sa11x0_reg.h,v 1.1 2004/05/14 11:46:45 cognet Exp $ + * $FreeBSD: src/sys/arm/sa11x0/sa11x0_reg.h,v 1.3 2006/05/23 12:14:14 cognet Exp $ * */ @@ -48,9 +48,11 @@ #define SARCR_BASE 0x90030000 /* Reset Controller */ #define SAGPIO_BASE 0x90040000 /* GPIO */ #define SAIPIC_BASE 0x90050000 /* Interrupt Controller */ +#define SAIPIC_SIZE 0x24 #define SAPPC_BASE 0x90060000 /* Peripheral Pin Controller */ #define SAUDC_BASE 0x80000000 /* USB Device Controller*/ #define SACOM1_BASE 0x80010000 /* GPCLK/UART 1 */ +#define SACOM1_SIZE 0x24 #define SACOM3_HW_BASE 0x80050000 /* UART 3 */ #define SAMCP_BASE 0x80060000 /* MCP Controller */ #define SASSP_BASE 0x80070000 /* Synchronous serial port */ @@ -59,7 +61,7 @@ #define SALCD_BASE 0xB0100000 /* LCD */ /* Register base virtual addresses mapped by initarm() */ -#define SACOM3_BASE 0xd000d000 +#define SACOM1_VBASE 0xd000d000 /* Interrupt controller registers */ #define SAIPIC_NPORTS 9 ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/sa11x0_var.h#2 (text+ko) ==== @@ -34,7 +34,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/sa11x0/sa11x0_var.h,v 1.2 2005/09/25 21:06:50 cognet Exp $ + * $FreeBSD: src/sys/arm/sa11x0/sa11x0_var.h,v 1.3 2006/05/29 19:32:32 cognet Exp $ * */ @@ -64,15 +64,6 @@ typedef void *sa11x0_chipset_tag_t; extern struct bus_space sa11x0_bs_tag; -struct sa11x0_attach_args { - sa11x0_chipset_tag_t sa_sc; - bus_space_tag_t sa_iot; /* Bus tag */ - bus_addr_t sa_addr; /* i/o address */ - bus_size_t sa_size; - - int sa_intr; - int sa_gpio; -}; void *sa11x0_intr_establish(sa11x0_chipset_tag_t, int, int, int, int (*)(void *), void *); ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/uart_cpu_sa1110.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/uart_cpu_sa1110.c,v 1.3 2005/01/05 21:58:48 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/uart_cpu_sa1110.c,v 1.6 2006/06/21 10:56:59 cognet Exp $"); #include #include @@ -36,6 +36,7 @@ #include #include +#include #include bus_space_tag_t uart_bus_space_io; @@ -43,21 +44,21 @@ extern struct uart_ops uart_sa1110_ops; +vm_offset_t sa1110_uart_vaddr; + int uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2) { return ((b1->bsh == b2->bsh && b1->bst == b2->bst) ? 1 : 0); } -extern int got_mmu; - int uart_cpu_getdev(int devtype, struct uart_devinfo *di) { di->ops = uart_sa1110_ops; di->bas.chan = 0; di->bas.bst = &sa11x0_bs_tag; - di->bas.bsh = 0x80010000; + di->bas.bsh = sa1110_uart_vaddr; di->bas.regshft = 0; di->bas.rclk = 0; di->baudrate = 9600; ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/sa11x0/uart_dev_sa1110.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/uart_dev_sa1110.c,v 1.4 2006/05/18 22:02:33 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/uart_dev_sa1110.c,v 1.6 2006/06/07 11:28:17 cognet Exp $"); #include #include @@ -38,14 +38,13 @@ #include #include #include +#include #include #include "uart_if.h" #define DEFAULT_RCLK 3686400 -extern int got_mmu; - /* * Low-level UART interface. */ @@ -56,8 +55,6 @@ static int sa1110_poll(struct uart_bas *bas); static int sa1110_getc(struct uart_bas *bas, struct mtx *mtx); -int did_mmu = 0; - extern SLIST_HEAD(uart_devinfo_list, uart_devinfo) uart_sysdevs; struct uart_ops uart_sa1110_ops = { @@ -76,22 +73,11 @@ } static void -sa1110_addr_change(struct uart_bas *bas) -{ - - bas->bsh = 0xd000d000; - did_mmu = 1; -} - -static void sa1110_init(struct uart_bas *bas, int baudrate, int databits, int stopbits, int parity) { int brd; - /* XXX: sigh. */ - if (!did_mmu && got_mmu) - sa1110_addr_change(bas); if (bas->rclk == 0) bas->rclk = DEFAULT_RCLK; while (uart_getreg(bas, SACOM_SR1) & SR1_TBY); @@ -111,10 +97,6 @@ static void sa1110_putc(struct uart_bas *bas, int c) { - /* XXX: sigh. */ - if (!did_mmu && got_mmu) - sa1110_addr_change(bas); - while (!uart_getreg(bas, SACOM_SR1) & SR1_TNF); uart_setreg(bas, SACOM_DR, c); } @@ -122,10 +104,6 @@ static int sa1110_poll(struct uart_bas *bas) { - /* XXX: sigh. */ - if (!did_mmu && got_mmu) - sa1110_addr_change(bas); - if (!(uart_getreg(bas, SACOM_SR1) & SR1_RNE)) return (-1); return (uart_getreg(bas, SACOM_DR) & 0xff); @@ -135,9 +113,6 @@ sa1110_getc(struct uart_bas *bas, struct mtx *mtx) { int c; - /* XXX: sigh. */ - if (!did_mmu && got_mmu) - sa1110_addr_change(bas); while (!(uart_getreg(bas, SACOM_SR1) & SR1_RNE)) { u_int32_t sr0; ==== //depot/projects/gnn_fast_ipsec/src/sys/arm/xscale/i80321/iq31244_machdep.c#4 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.18 2005/12/21 15:01:49 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.23 2006/08/24 23:51:28 cognet Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include @@ -147,7 +147,6 @@ struct pv_addr kernelstack; struct pv_addr minidataclean; -void enable_mmu(vm_offset_t); static struct trapframe proc0_tf; #define IQ80321_OBIO_BASE 0xfe800000UL @@ -211,7 +210,7 @@ #ifdef DDB vm_offset_t zstart = 0, zend = 0; #endif - int i = 0; + int i; uint32_t fake_preload[35]; uint32_t memsize, memstart; @@ -283,7 +282,6 @@ kernel_pt_table[loop].pv_va = kernel_pt_table[loop].pv_pa + 0x20000000; } - i++; } freemem_pt = freemempos; freemempos = 0xa0100000; @@ -444,6 +442,15 @@ pmap_curmaxkvaddr = afterkern + PAGE_SIZE; + /* + * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before + * calling pmap_bootstrap. + */ + dump_avail[0] = 0xa0000000; + dump_avail[1] = 0xa0000000 + memsize; + dump_avail[2] = 0; + dump_avail[3] = 0; + pmap_bootstrap(pmap_curmaxkvaddr, 0xd0000000, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; @@ -462,10 +469,6 @@ phys_avail[i++] = trunc_page(0xa0000000 + memsize - 1); phys_avail[i++] = 0; phys_avail[i] = 0; - dump_avail[0] = 0xa0000000; - dump_avail[1] = 0xa0000000 + memsize; - dump_avail[2] = 0; - dump_avail[3] = 0; /* Do basic tuning, hz etc */ init_param1(); @@ -475,3 +478,60 @@ return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } + + +extern int +machdep_pci_route_interrupt(device_t pcib, device_t dev, int pin) +{ + int bus; + int device; + int func; + uint32_t busno; + struct i80321_pci_softc *sc = device_get_softc(pcib); + bus = pci_get_bus(dev); + device = pci_get_slot(dev); + func = pci_get_function(dev); + busno = bus_space_read_4(sc->sc_st, sc->sc_atu_sh, ATU_PCIXSR); + busno = PCIXSR_BUSNO(busno); + if (busno == 0xff) + busno = 0; + if (bus != busno) + goto no_mapping; + switch (device) { + /* IQ31244 PCI */ + case 1: /* PCIX-PCIX bridge */ + /* + * The S-ATA chips are behind the bridge, and all of + * the S-ATA interrupts are wired together. + */ + return (ICU_INT_XINT(2)); + case 2: /* PCI slot */ + /* All pins are wired together. */ + return (ICU_INT_XINT(3)); + case 3: /* i82546 dual Gig-E */ + if (pin == 1 || pin == 2) + return (ICU_INT_XINT(0)); + goto no_mapping; + /* IQ80321 PCI */ + case 4: /* i82544 Gig-E */ + case 8: /* + * Apparently you can set the device for the ethernet adapter + * to 8 with a jumper, so handle that as well + */ + if (pin == 1) + return (ICU_INT_XINT(0)); + goto no_mapping; + case 6: /* S-PCI-X slot */ + if (pin == 1) + return (ICU_INT_XINT(2)); + if (pin == 2) + return (ICU_INT_XINT(3)); + goto no_mapping; + default: +no_mapping: + printf("No mapping for %d/%d/%d/%c\n", bus, device, func, pin); + + } + return (0); + +} ==== //depot/projects/gnn_fast_ipsec/src/sys/cam/cam_ccb.h#3 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.29 2006/01/20 19:21:38 mjacob Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.32 2006/06/05 22:22:14 mjacob Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -514,7 +514,8 @@ PIM_NOREMOVE = 0x40, /* Removeable devices not included in scan */ PIM_NOINITIATOR = 0x20, /* Initiator role not supported. */ PIM_NOBUSRESET = 0x10, /* User has disabled initial BUS RESET */ - PIM_NO_6_BYTE = 0x08 /* Do not send 6-byte commands */ + PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ + PIM_SEQSCAN = 0x04 /* Do bus scans sequentially, not in parallel */ } pi_miscflag; #ifdef CAM_NEW_TRAN_CODE ==== //depot/projects/gnn_fast_ipsec/src/sys/cam/cam_periph.c#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.61 2006/01/08 20:04:55 iedowse Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_periph.c,v 1.62 2006/05/24 15:22:21 mjacob Exp $"); #include #include @@ -673,6 +673,16 @@ mapinfo->num_bufs_used++; } + /* + * Now that we've gotten this far, change ownership to the kernel + * of the buffers so that we don't run afoul of returning to user + * space with locks (on the buffer) held. + */ + for (i = 0; i < numbufs; i++) { + BUF_KERNPROC(mapinfo->bp[i]); + } + + return(0); } ==== //depot/projects/gnn_fast_ipsec/src/sys/cam/scsi/scsi_target.c#2 (text+ko) ==== @@ -28,7 +28,8 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.68 2005/08/08 19:55:30 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_target.c,v 1.70 2006/05/24 15:26:07 mjacob Exp $"); + #include #include @@ -40,6 +41,7 @@ #include #include #include +#include #include #include @@ -89,7 +91,6 @@ targ_state state; struct selinfo read_select; struct devstat device_stats; - struct mtx mtx; }; static d_open_t targopen; @@ -157,10 +158,6 @@ }; PERIPHDRIVER_DECLARE(targ, targdriver); -static struct mtx targ_mtx; -#define TARG_LOCK(softc) mtx_lock(&(softc)->mtx) -#define TARG_UNLOCK(softc) mtx_unlock(&(softc)->mtx) - static MALLOC_DEFINE(M_TARG, "TARG", "TARG data"); /* Create softc and initialize it. Only one proc can open each targ device. */ @@ -169,15 +166,12 @@ { struct targ_softc *softc; - mtx_lock(&targ_mtx); if (dev->si_drv1 != 0) { - mtx_unlock(&targ_mtx); return (EBUSY); } /* Mark device busy before any potentially blocking operations */ dev->si_drv1 = (void *)~0; - mtx_unlock(&targ_mtx); /* Create the targ device, allocate its softc, initialize it */ if ((dev->si_flags & SI_NAMED) == 0) { @@ -190,13 +184,12 @@ softc->state = TARG_STATE_OPENED; softc->periph = NULL; softc->path = NULL; - mtx_init(&softc->mtx, devtoname(dev), "targ cdev", MTX_DEF); TAILQ_INIT(&softc->pending_ccb_queue); TAILQ_INIT(&softc->work_queue); TAILQ_INIT(&softc->abort_queue); TAILQ_INIT(&softc->user_ccb_queue); - knlist_init(&softc->read_select.si_note, &softc->mtx, NULL, NULL, NULL); + knlist_init(&softc->read_select.si_note, NULL, NULL, NULL, NULL); return (0); } @@ -209,22 +202,15 @@ int error; softc = (struct targ_softc *)dev->si_drv1; - TARG_LOCK(softc); error = targdisable(softc); if (error == CAM_REQ_CMP) { dev->si_drv1 = 0; - mtx_lock(&targ_mtx); if (softc->periph != NULL) { cam_periph_invalidate(softc->periph); softc->periph = NULL; } - mtx_unlock(&targ_mtx); - TARG_UNLOCK(softc); - mtx_destroy(&softc->mtx); destroy_dev(dev); FREE(softc, M_TARG); - } else { - TARG_UNLOCK(softc); } return (error); } @@ -253,17 +239,13 @@ printf("Couldn't create path, status %#x\n", status); break; } - TARG_LOCK(softc); status = targenable(softc, path, new_lun->grp6_len, new_lun->grp7_len); - TARG_UNLOCK(softc); xpt_free_path(path); break; } case TARGIOCDISABLE: - TARG_LOCK(softc); status = targdisable(softc); - TARG_UNLOCK(softc); break; case TARGIOCDEBUG: { @@ -280,14 +262,11 @@ cdbg.ccb_h.cbfcnp = targdone; /* If no periph available, disallow debugging changes */ - TARG_LOCK(softc); if ((softc->state & TARG_STATE_LUN_ENABLED) == 0) { status = CAM_DEV_NOT_THERE; - TARG_UNLOCK(softc); break; } xpt_action((union ccb *)&cdbg); - TARG_UNLOCK(softc); status = cdbg.ccb_h.status & CAM_STATUS_MASK; #else status = CAM_FUNC_NOTAVAIL; @@ -315,7 +294,6 @@ revents = poll_events & (POLLOUT | POLLWRNORM); if ((poll_events & (POLLIN | POLLRDNORM)) != 0) { /* Poll for read() depends on user and abort queues. */ - TARG_LOCK(softc); if (!TAILQ_EMPTY(&softc->user_ccb_queue) || !TAILQ_EMPTY(&softc->abort_queue)) { revents |= poll_events & (POLLIN | POLLRDNORM); @@ -323,7 +301,6 @@ /* Only sleep if the user didn't poll for write. */ if (revents == 0) selrecord(td, &softc->read_select); - TARG_UNLOCK(softc); } return (revents); @@ -415,7 +392,6 @@ } /* Destroy any periph on our path if it is disabled */ - mtx_lock(&targ_mtx); periph = cam_periph_find(path, "targ"); if (periph != NULL) { struct targ_softc *del_softc; @@ -427,7 +403,6 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<