PERFORCE change 105494 for review
George V. Neville-Neil
gnn at FreeBSD.org
Sat Sep 2 00:41:38 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=105494
Change 105494 by gnn at 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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -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 <sys/cdefs.h>
-__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 <machine/bus.h>
#include <sys/reboot.h>
+#include <arm/sa11x0/sa11x0_reg.h>
+
#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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
#include <sys/queue.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -36,6 +36,7 @@
#include <dev/uart/uart.h>
#include <dev/uart/uart_cpu.h>
+#include <arm/sa11x0/sa11x0_reg.h>
#include <arm/sa11x0/sa11x0_var.h>
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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -38,14 +38,13 @@
#include <dev/uart/uart.h>
#include <dev/uart/uart_cpu.h>
#include <dev/uart/uart_bus.h>
+#include <arm/sa11x0/sa11x0_reg.h>
#include <arm/sa11x0/uart_dev_sa1110.h>
#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 <sys/cdefs.h>
-__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 <sys/param.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/systm.h>
@@ -40,6 +41,7 @@
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/devicestat.h>
+#include <sys/proc.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
@@ -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) <<<
More information about the p4-projects
mailing list