Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 2006 23:12:30 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 101818 for review
Message-ID:  <200607172312.k6HNCUBL063452@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=101818

Change 101818 by imp@imp_harmony on 2006/07/17 23:12:09

	IFC @101815

Affected files ...

.. //depot/projects/arm/src/sys/amd64/amd64/pmap.c#19 integrate
.. //depot/projects/arm/src/sys/arm/arm/vm_machdep.c#7 integrate
.. //depot/projects/arm/src/sys/arm/at91/if_ate.c#53 integrate
.. //depot/projects/arm/src/sys/arm/at91/kb920x_machdep.c#32 integrate
.. //depot/projects/arm/src/sys/arm/conf/KB920X#38 integrate
.. //depot/projects/arm/src/sys/conf/NOTES#27 integrate
.. //depot/projects/arm/src/sys/conf/files#38 integrate
.. //depot/projects/arm/src/sys/conf/files.ia64#7 integrate
.. //depot/projects/arm/src/sys/conf/kern.pre.mk#5 integrate
.. //depot/projects/arm/src/sys/conf/options#25 integrate
.. //depot/projects/arm/src/sys/dev/acpica/acpi_perf.c#6 integrate
.. //depot/projects/arm/src/sys/dev/amr/amr.c#11 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp.c#8 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp_freebsd.c#12 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp_library.c#4 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp_pci.c#11 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp_sbus.c#7 integrate
.. //depot/projects/arm/src/sys/dev/isp/isp_target.c#6 integrate
.. //depot/projects/arm/src/sys/dev/lmc/if_lmc.c#4 integrate
.. //depot/projects/arm/src/sys/dev/mpt/mpt.c#17 integrate
.. //depot/projects/arm/src/sys/dev/mpt/mpt.h#17 integrate
.. //depot/projects/arm/src/sys/dev/mpt/mpt_cam.c#20 integrate
.. //depot/projects/arm/src/sys/dev/mpt/mpt_raid.c#8 integrate
.. //depot/projects/arm/src/sys/dev/mpt/mpt_raid.h#5 integrate
.. //depot/projects/arm/src/sys/dev/mxge/if_mxge.c#3 integrate
.. //depot/projects/arm/src/sys/dev/sio/sio.c#7 integrate
.. //depot/projects/arm/src/sys/dev/sound/driver.c#5 integrate
.. //depot/projects/arm/src/sys/dev/sound/pci/cmi.c#7 integrate
.. //depot/projects/arm/src/sys/dev/sound/pci/emu10k1.c#6 integrate
.. //depot/projects/arm/src/sys/dev/sound/pci/emu10kx-midi.c#1 branch
.. //depot/projects/arm/src/sys/dev/sound/pci/emu10kx-pcm.c#1 branch
.. //depot/projects/arm/src/sys/dev/sound/pci/emu10kx.c#1 branch
.. //depot/projects/arm/src/sys/dev/sound/pci/emu10kx.h#1 branch
.. //depot/projects/arm/src/sys/dev/sound/pcm/buffer.c#3 integrate
.. //depot/projects/arm/src/sys/dev/sound/pcm/buffer.h#2 integrate
.. //depot/projects/arm/src/sys/dev/sound/pcm/mixer.h#2 integrate
.. //depot/projects/arm/src/sys/dev/sound/pcm/sound.c#8 integrate
.. //depot/projects/arm/src/sys/dev/sound/pcm/sound.h#7 integrate
.. //depot/projects/arm/src/sys/dev/spibus/spi.h#3 integrate
.. //depot/projects/arm/src/sys/dev/spibus/spibusvar.h#3 integrate
.. //depot/projects/arm/src/sys/fs/devfs/devfs_devs.c#5 integrate
.. //depot/projects/arm/src/sys/fs/devfs/devfs_rule.c#5 integrate
.. //depot/projects/arm/src/sys/fs/devfs/devfs_vfsops.c#4 integrate
.. //depot/projects/arm/src/sys/fs/devfs/devfs_vnops.c#8 integrate
.. //depot/projects/arm/src/sys/fs/smbfs/smbfs_vfsops.c#5 integrate
.. //depot/projects/arm/src/sys/gnu/dev/sound/pci/emu10k1-ac97.h#2 delete
.. //depot/projects/arm/src/sys/gnu/dev/sound/pci/emu10k1-alsa.h#2 integrate
.. //depot/projects/arm/src/sys/gnu/dev/sound/pci/emu10k1.h#2 delete
.. //depot/projects/arm/src/sys/gnu/dev/sound/pci/p16v-alsa.h#1 branch
.. //depot/projects/arm/src/sys/gnu/dev/sound/pci/p17v-alsa.h#1 branch
.. //depot/projects/arm/src/sys/i386/i386/pmap.c#15 integrate
.. //depot/projects/arm/src/sys/ia64/conf/DEFAULTS#5 integrate
.. //depot/projects/arm/src/sys/kern/kern_mac.c#4 integrate
.. //depot/projects/arm/src/sys/kern/kern_uuid.c#3 integrate
.. //depot/projects/arm/src/sys/kern/uipc_socket.c#16 integrate
.. //depot/projects/arm/src/sys/kern/vfs_subr.c#21 integrate
.. //depot/projects/arm/src/sys/modules/sound/driver/Makefile#5 integrate
.. //depot/projects/arm/src/sys/modules/sound/driver/emu10kx/Makefile#1 branch
.. //depot/projects/arm/src/sys/net/if_spppsubr.c#4 integrate
.. //depot/projects/arm/src/sys/net/if_tap.c#6 integrate
.. //depot/projects/arm/src/sys/net80211/ieee80211_input.c#9 integrate
.. //depot/projects/arm/src/sys/net80211/ieee80211_ioctl.c#9 integrate
.. //depot/projects/arm/src/sys/netsmb/smb_conn.c#3 integrate
.. //depot/projects/arm/src/sys/security/mac/mac_vfs.c#4 integrate
.. //depot/projects/arm/src/sys/sys/libkern.h#3 integrate
.. //depot/projects/arm/src/sys/sys/mbuf.h#11 integrate
.. //depot/projects/arm/src/sys/sys/param.h#13 integrate
.. //depot/projects/arm/src/sys/vm/uma_core.c#7 integrate
.. //depot/projects/arm/src/sys/vm/vm_object.c#9 integrate

Differences ...

==== //depot/projects/arm/src/sys/amd64/amd64/pmap.c#19 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.565 2006/07/06 06:17:08 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.566 2006/07/17 03:10:17 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -1627,6 +1627,7 @@
 	int idx, field, bit;
 
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
 	PV_STAT(pv_entry_frees++);
 	PV_STAT(pv_entry_spare++);
 	pv_entry_count--;
@@ -2015,8 +2016,8 @@
 		TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
 		m->md.pv_list_count--;
 		pmap_unuse_pt(pmap, pv->pv_va, ptepde);
+		free_pv_entry(pmap, pv);
 		PMAP_UNLOCK(pmap);
-		free_pv_entry(pmap, pv);
 	}
 	vm_page_flag_clear(m, PG_WRITEABLE);
 }

==== //depot/projects/arm/src/sys/arm/arm/vm_machdep.c#7 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.24 2006/06/05 23:42:47 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.26 2006/07/15 23:15:31 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -512,7 +512,7 @@
 	void *ret;
 	struct arm_small_page *sp, *tmp;
 	TAILQ_HEAD(,arm_small_page) *head;
-	static int in_alloc;
+	static struct thread *in_alloc;
 	static int in_sleep;
 	int should_wakeup = 0;
 	
@@ -532,12 +532,13 @@
 
 	if (!sp) {
 		/* No more free pages, need to alloc more. */
-		if (!(wait & M_WAITOK)) {
+		if (!(wait & M_WAITOK) ||
+		    in_alloc == curthread) {
 			mtx_unlock(&smallalloc_mtx);
 			*flags = UMA_SLAB_KMEM;
 			return ((void *)kmem_malloc(kmem_map, bytes, M_NOWAIT));
 		}
-		if (in_alloc) {
+		if (in_alloc != NULL) {
 			/* Somebody else is already doing the allocation. */
 			in_sleep++;
 			msleep(&in_alloc, &smallalloc_mtx, PWAIT, 
@@ -545,14 +546,14 @@
 			in_sleep--;
 			goto retry;
 		}
-		in_alloc = 1;
+		in_alloc = curthread;
 		mtx_unlock(&smallalloc_mtx);
 		/* Try to alloc 1MB of contiguous memory. */
 		ret = arm_uma_do_alloc(&sp, bytes, zone == l2zone ?
 		    SECTION_PT : SECTION_CACHE);
 		mtx_lock(&smallalloc_mtx);
-		in_alloc = 0;
-		if (in_sleep)
+		in_alloc = NULL;
+		if (in_sleep > 0)
 			should_wakeup = 1;
 		if (sp) {
 			for (int i = 0; i < (0x100000 / PAGE_SIZE) - 1;

==== //depot/projects/arm/src/sys/arm/at91/if_ate.c#53 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.8 2006/06/17 23:24:35 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.9 2006/07/17 21:36:08 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -764,7 +764,7 @@
 		}
 		mdefrag = m_defrag(m, M_DONTWAIT);
 		if (mdefrag == NULL) {
-			m_freem(m);
+			IFQ_DRV_PREPEND(&ifp->if_snd, m);
 			return;
 		}
 		m = mdefrag;

==== //depot/projects/arm/src/sys/arm/at91/kb920x_machdep.c#32 (text+ko) ====

@@ -48,7 +48,7 @@
 #include "opt_at91.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.10 2006/07/14 22:22:57 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.12 2006/07/17 21:20:00 cognet Exp $");
 
 #define _ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -159,6 +159,15 @@
 		VM_PROT_READ|VM_PROT_WRITE,                             
 		PTE_NOCACHE,
 	},
+	/*
+	 * We can't just map the OHCI registers VA == PA, because
+	 * AT91RM92_OHCI_BASE belongs to the userland address space.
+	 * We could just choose a different virtual address, but a better
+	 * solution would probably be to just use pmap_mapdev() to allocate
+	 * KVA, as we don't need the OHCI controller before the vm
+	 * initialization is done. However, the AT91 resource allocation
+	 * system doesn't know how to use pmap_mapdev() yet.
+	 */
 #if 0
 	{
 		/*
@@ -225,7 +234,7 @@
 	/* PIOA's B periph: Turn USART 3's TX/RX pins */
 	at91_pio_use_periph_b(AT91RM92_PIOA_BASE, AT91C_PA6_RXD3, 0);
 	at91_pio_use_periph_b(AT91RM92_PIOA_BASE, AT91C_PA5_TXD3, 1);
-#if AT91_TSC
+#ifdef AT91_TSC
 	/* We're using TC0's A1 and A2 input */
 	at91_pio_use_periph_b(AT91RM92_PIOA_BASE,
 	    AT91C_PA19_TIOA1 | AT91C_PA21_TIOA2, 0);
@@ -235,7 +244,7 @@
 	at91_pio_use_periph_a(AT91RM92_PIOB_BASE, AT91C_PB20_TXD1, 1);
 
 	/* Pin assignment */
-#if AT91_TSC
+#ifdef AT91_TSC
 	/* Assert PA24 low -- talk to rubidium */
 	at91_pio_use_gpio(AT91RM92_PIOA_BASE, AT91C_PIO_PA24);
 	at91_pio_gpio_output(AT91RM92_PIOA_BASE, AT91C_PIO_PA24, 0);

==== //depot/projects/arm/src/sys/arm/conf/KB920X#38 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/KB920X,v 1.8 2006/07/14 15:20:31 imp Exp $
+# $FreeBSD: src/sys/arm/conf/KB920X,v 1.9 2006/07/17 21:17:20 cognet Exp $
 
 machine		arm
 ident		KB920X
@@ -95,6 +95,7 @@
 device		md
 device	at91_twi		# TWI: Two Wire Interface
 device		at91_spi		# SPI:
+device		spibus
 device		at91_ssc
 # iic
 device		iic

==== //depot/projects/arm/src/sys/conf/NOTES#27 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1371 2006/07/10 05:25:18 thompsa Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1374 2006/07/17 09:07:01 phk Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -1787,8 +1787,7 @@
 #       the D-Link DFE-550TX.
 # ti:   Support for PCI gigabit ethernet NICs based on the Alteon Networks
 #       Tigon 1 and Tigon 2 chipsets.  This includes the Alteon AceNIC, the
-#       3Com 3c985, the Netgear GA620 and various others.  Note that you will
-#       probably want to bump up NMBCLUSTERS a lot to use this driver.
+#       3Com 3c985, the Netgear GA620 and various others.
 # tl:   Support for the Texas Instruments TNETE100 series 'ThunderLAN'
 #       cards and integrated ethernet controllers.  This includes several
 #       Compaq Netelligent 10/100 cards and the built-in ethernet controllers
@@ -1962,6 +1961,7 @@
 #			4281)
 # snd_ds1:		Yamaha DS-1 PCI.
 # snd_emu10k1:		Creative EMU10K1 PCI and EMU10K2 (Audigy) PCI.
+# snd_emu10kx:		Creative SoundBlaster Live! and Audigy
 # snd_es137x:		Ensoniq AudioPCI ES137x PCI.
 # snd_ess:		Ensoniq ESS ISA PnP/non-PnP, to be used in
 #			conjunction with snd_sbc.
@@ -1998,6 +1998,8 @@
 device		snd_csa
 device		snd_ds1
 device		snd_emu10k1
+device		snd_emu10kx
+options		SND_EMU10KX_MULTICHANNEL
 device		snd_es137x
 device		snd_ess
 device		snd_fm801
@@ -2594,8 +2596,6 @@
 
 options 	NBUF=512	# Number of buffer headers
 
-options 	NMBCLUSTERS=1024	# Number of mbuf clusters
-
 options 	SCSI_NCR_DEBUG
 options 	SCSI_NCR_MAX_SYNC=10000
 options 	SCSI_NCR_MAX_WIDE=1
@@ -2625,8 +2625,6 @@
 ##options 	BKTR_ALLOC_PAGES=(217*4+1)
 options 	BROOKTREE_ALLOC_PAGES=(217*4+1)
 options 	MAXFILES=999
-options 	NDEVFSINO=1025
-options 	NDEVFSOVERFLOW=32769
 
 # Yet more undocumented options for linting.
 options 	VGA_DEBUG

==== //depot/projects/arm/src/sys/conf/files#38 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1129 2006/07/14 22:50:46 imp Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1130 2006/07/15 20:22:40 netchild Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -55,6 +55,21 @@
 	compile-with	"CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \
 	no-obj no-implicit-rule before-depend				   \
 	clean		"emu10k1-alsa%diked.h"
+emu10k1-alsa%diked.h		optional snd_emu10kx pci			   \
+	dependency	"$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h" \
+	compile-with	"CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/emu10k1-alsa.h emu10k1-alsa%diked.h" \
+	no-obj no-implicit-rule before-depend				   \
+	clean		"emu10k1-alsa%diked.h"
+p16v-alsa%diked.h		optional snd_emu10kx pci			   \
+	dependency	"$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h" \
+	compile-with	"CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p16v-alsa.h p16v-alsa%diked.h" \
+	no-obj no-implicit-rule before-depend				   \
+	clean		"p16v-alsa%diked.h"
+p17v-alsa%diked.h		optional snd_emu10kx pci			   \
+	dependency	"$S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h" \
+	compile-with	"CC='${CC}' AWK=${AWK} sh $S/tools/emu10k1-mkalsa.sh $S/gnu/dev/sound/pci/p17v-alsa.h p17v-alsa%diked.h" \
+	no-obj no-implicit-rule before-depend				   \
+	clean		"p17v-alsa%diked.h"
 miidevs.h			optional miibus | mii			   \
 	dependency	"$S/tools/miidevs2h.awk $S/dev/mii/miidevs"	   \
 	compile-with	"${AWK} -f $S/tools/miidevs2h.awk $S/dev/mii/miidevs" \
@@ -873,6 +888,19 @@
 dev/sound/pci/emu10k1.c		optional snd_emu10k1 pci \
 	dependency "emu10k1-alsa%diked.h" \
 	warning "kernel contains GPL contaminated emu10k1 headers"
+dev/sound/pci/emu10kx.c		optional snd_emu10kx pci \
+	dependency "emu10k1-alsa%diked.h" \
+	dependency "p16v-alsa%diked.h" \
+	dependency "p17v-alsa%diked.h" \
+	warning "kernel contains GPL contaminated emu10kx headers"
+dev/sound/pci/emu10kx-pcm.c	optional snd_emu10kx pci \
+	dependency "emu10k1-alsa%diked.h" \
+	dependency "p16v-alsa%diked.h" \
+	dependency "p17v-alsa%diked.h" \
+	warning "kernel contains GPL contaminated emu10kx headers"
+dev/sound/pci/emu10kx-midi.c	optional snd_emu10kx pci \
+	dependency "emu10k1-alsa%diked.h" \
+	warning "kernel contains GPL contaminated emu10kx headers"
 dev/sound/pci/es137x.c		optional snd_es137x pci
 dev/sound/pci/fm801.c		optional snd_fm801 pci
 dev/sound/pci/ich.c		optional snd_ich pci

==== //depot/projects/arm/src/sys/conf/files.ia64#7 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.ia64,v 1.87 2006/06/29 19:59:16 marcel Exp $
+# $FreeBSD: src/sys/conf/files.ia64,v 1.88 2006/07/17 20:02:50 marcel Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -69,11 +69,6 @@
 dev/syscons/syscons.c		optional	sc
 dev/syscons/sysmouse.c		optional	sc
 dev/uart/uart_cpu_ia64.c	optional	uart
-geom/geom_bsd.c			standard
-geom/geom_bsd_enc.c		standard
-geom/geom_gpt.c			standard
-geom/geom_mbr.c			standard
-geom/geom_mbr_enc.c		standard
 dev/acpica/acpi_if.m		standard
 ia64/acpica/OsdEnvironment.c	optional	acpi
 ia64/acpica/acpi_machdep.c	optional	acpi

==== //depot/projects/arm/src/sys/conf/kern.pre.mk#5 (text+ko) ====

@@ -1,8 +1,13 @@
-# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.75 2006/06/29 21:15:25 obrien Exp $
+# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.76 2006/07/17 18:43:16 obrien Exp $
 
 # Part of a unified Makefile for building kernels.  This part contains all
 # of the definitions that need to be before %BEFORE_DEPEND.
 
+SRCCONF?=	/etc/src.conf
+.if exists(${SRCCONF})
+.include "${SRCCONF}"
+.endif
+
 # Can be overridden by makeoptions or /etc/make.conf
 KERNEL_KO?=	kernel
 KERNEL?=	kernel

==== //depot/projects/arm/src/sys/conf/options#25 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.550 2006/06/27 12:45:27 glebius Exp $
+# $FreeBSD: src/sys/conf/options,v 1.553 2006/07/17 09:07:01 phk Exp $
 #
 #        On the handling of kernel options
 #
@@ -257,7 +257,6 @@
 HZ		opt_param.h
 MAXFILES	opt_param.h
 NBUF		opt_param.h
-NMBCLUSTERS	opt_param.h
 NSFBUFS		opt_param.h
 VM_BCACHE_SIZE_MAX	opt_param.h
 VM_SWZONE_SIZE_MAX	opt_param.h
@@ -624,10 +623,6 @@
 DEV_ISA			opt_isa.h
 ISAPNP			opt_isa.h
 
-# options for DEVFS, see sys/fs/devfs/devfs.h
-NDEVFSINO		opt_devfs.h
-NDEVFSOVERFLOW		opt_devfs.h
-
 # various 'device presence' options.
 DEV_BPF			opt_bpf.h
 DEV_MCA			opt_mca.h
@@ -727,3 +722,6 @@
 
 # XFS
 XFS
+
+# snd_emu10kx sound driver options
+SND_EMU10KX_MULTICHANNEL	opt_emu10kx.h

==== //depot/projects/arm/src/sys/dev/acpica/acpi_perf.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_perf.c,v 1.23 2005/12/12 11:15:20 bruno Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_perf.c,v 1.24 2006/07/15 17:34:03 bruno Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -299,6 +299,12 @@
 		    sc->px_states[count].core_freq >= 0xffff)
 			continue;
 
+		/* Check for duplicate entries */
+		if (count > 0 &&
+		    sc->px_states[count - 1].core_freq ==
+			sc->px_states[count].core_freq)
+			continue;
+
 		count++;
 	}
 	sc->px_count = count;

==== //depot/projects/arm/src/sys/dev/amr/amr.c#11 (text+ko) ====

@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.78 2006/05/03 16:45:15 ambrisko Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.79 2006/07/17 19:45:47 jhb Exp $");
 
 /*
  * Driver for the AMI MegaRaid family of controllers.
@@ -1785,13 +1785,44 @@
     }
 }
 
+static void
+amr_setup_dmamap_cb(void *arg, bus_dma_segment_t *segs, int nsegments,
+    int error)
+{
+    struct amr_command          *ac = (struct amr_command *)arg;
+    struct amr_softc            *sc = ac->ac_sc;
+
+    amr_setup_dmamap(arg, segs, nsegments, error);
+
+    if (bus_dmamap_load(sc->amr_buffer_dmat, ac->ac_ccb_dmamap,
+	ac->ac_ccb_data, ac->ac_ccb_length, amr_setup_ccbmap, ac,
+	0) == EINPROGRESS) {
+	sc->amr_state |= AMR_STATE_QUEUE_FRZN;
+    }
+}
+
+static void
+amr_setup_dma64map_cb(void *arg, bus_dma_segment_t *segs, int nsegments,
+    int error)
+{
+    struct amr_command          *ac = (struct amr_command *)arg;
+    struct amr_softc            *sc = ac->ac_sc;
+
+    amr_setup_dma64map(arg, segs, nsegments, error);
+
+    if (bus_dmamap_load(sc->amr_buffer64_dmat, ac->ac_ccb_dma64map,
+	ac->ac_ccb_data, ac->ac_ccb_length, amr_setup_ccb64map, ac,
+	0) == EINPROGRESS) {
+	sc->amr_state |= AMR_STATE_QUEUE_FRZN;
+    }
+}
+
 static int
 amr_mapcmd(struct amr_command *ac)
 {
     bus_dma_tag_t	tag;
-    bus_dmamap_t	datamap, ccbmap;
+    bus_dmamap_t	datamap;
     bus_dmamap_callback_t *cb;
-    bus_dmamap_callback_t *ccb_cb;
     struct amr_softc	*sc = ac->ac_sc;
 
     debug_called(3);
@@ -1799,35 +1830,22 @@
     if (AC_IS_SG64(ac)) {
 	tag = sc->amr_buffer64_dmat;
 	datamap = ac->ac_dma64map;
-	ccbmap = ac->ac_ccb_dma64map;
-	cb = amr_setup_dma64map;
-	ccb_cb = amr_setup_ccb64map;
+	cb = amr_setup_dma64map_cb;
     } else {
 	tag = sc->amr_buffer_dmat;
 	datamap = ac->ac_dmamap;
-	ccbmap = ac->ac_ccb_dmamap;
-	cb = amr_setup_dmamap;
-	ccb_cb = amr_setup_ccbmap;
+	cb = amr_setup_dmamap_cb;
     }
 
     /* if the command involves data at all, and hasn't been mapped */
     if ((ac->ac_flags & AMR_CMD_MAPPED) == 0 && (ac->ac_data != NULL)) {
-	if (ac->ac_ccb_data == NULL) {
-	    /* map the data buffers into bus space and build the s/g list */
-	    if (bus_dmamap_load(tag, datamap, ac->ac_data, ac->ac_length,
-		amr_setup_data_dmamap, ac, 0) == EINPROGRESS) {
-		sc->amr_state |= AMR_STATE_QUEUE_FRZN;
-	    }
-	} else {
-	    if (bus_dmamap_load(tag, datamap, ac->ac_data, ac->ac_length,
-		cb, ac, BUS_DMA_NOWAIT) != 0) {
-		return (ENOMEM);
-	    }
-	    if (bus_dmamap_load(tag, ccbmap, ac->ac_ccb_data,
-		ac->ac_ccb_length, ccb_cb, ac, 0) == EINPROGRESS) {
-		sc->amr_state |= AMR_STATE_QUEUE_FRZN;
-	    }
-     }
+	if (ac->ac_ccb_data == NULL)
+	    cb = amr_setup_data_dmamap;
+	/* map the data buffers into bus space and build the s/g list */
+	if (bus_dmamap_load(tag, datamap, ac->ac_data, ac->ac_length,
+	    cb, ac, 0) == EINPROGRESS) {
+	    sc->amr_state |= AMR_STATE_QUEUE_FRZN;
+	}
    } else {
     	if (sc->amr_submit_command(ac) == EBUSY) {
 	    amr_freeslot(ac);

==== //depot/projects/arm/src/sys/dev/isp/isp.c#8 (text+ko) ====

@@ -1,7 +1,4 @@
 /*-
- * Machine and OS Independent (well, as best as possible)
- * code for the Qlogic ISP SCSI adapters.
- *
  * Copyright (c) 1997-2006 by Matthew Jacob
  * All rights reserved.
  *
@@ -28,14 +25,14 @@
  */
 
 /*
+ * Machine and OS Independent (well, as best as possible)
+ * code for the Qlogic ISP SCSI adapters.
+ */
+/*
  * Inspiration and ideas about this driver are from Erik Moe's Linux driver
  * (qlogicisp.c) and Dave Miller's SBus version of same (qlogicisp.c). Some
  * ideas dredged from the Solaris driver.
  */
-#ifdef	__FreeBSD__
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.122 2006/07/14 05:14:48 mjacob Exp $");
-#endif
 
 /*
  * Include header file appropriate for platform we're building on.
@@ -44,6 +41,8 @@
 #include <dev/ic/isp_netbsd.h>
 #endif
 #ifdef	__FreeBSD__
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/sys/dev/isp/isp.c,v 1.123 2006/07/16 20:11:49 mjacob Exp $");
 #include <dev/isp/isp_freebsd.h>
 #endif
 #ifdef	__OpenBSD__
@@ -166,7 +165,6 @@
 	char *btype = "????";
 
 	isp->isp_state = ISP_NILSTATE;
-	MEMZERO(&mbs, sizeof (mbs));
 
 	/*
 	 * Basic types (SCSI, FibreChannel and PCI or SBus)
@@ -205,6 +203,7 @@
 			 * Just in case it was paused...
 			 */
 			ISP_WRITE(isp, HCCR, HCCR_CMD_RELEASE);
+			MEMZERO(&mbs, sizeof (mbs));
 			mbs.param[0] = MBOX_ABOUT_FIRMWARE;
 			isp_mboxcmd(isp, &mbs, MBLOGNONE);
 			if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
@@ -596,6 +595,7 @@
 	/*
 	 * Do some sanity checking.
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_NO_OP;
 	isp_mboxcmd(isp, &mbs, MBLOGALL);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
@@ -603,6 +603,7 @@
 	}
 
 	if (IS_SCSI(isp)) {
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_MAILBOX_REG_TEST;
 		mbs.param[1] = 0xdead;
 		mbs.param[2] = 0xbeef;
@@ -650,6 +651,7 @@
 		isp->isp_mbxworkp = &ptr[1];
 		isp->isp_mbxwrk0 = ptr[3] - 1;
 		isp->isp_mbxwrk1 = code_org + 1;
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_WRITE_RAM_WORD;
 		mbs.param[1] = code_org;
 		mbs.param[2] = ptr[0];
@@ -665,6 +667,7 @@
 		/*
 		 * Verify that it downloaded correctly.
 		 */
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_VERIFY_CHECKSUM;
 		mbs.param[1] = code_org;
 		isp_mboxcmd(isp, &mbs, MBLOGNONE);
@@ -687,10 +690,11 @@
 			isp->isp_mbxwrk0 = ptr[3] - 1;
 			isp->isp_mbxwrk1 = ptr[5] + 1;
 			isp->isp_mbxwrk8 = ptr[4];
+			MEMZERO(&mbs, sizeof (mbs));
 			mbs.param[0] = MBOX_WRITE_RAM_WORD_EXTENDED;
-			mbs.param[8] = ptr[4];
 			mbs.param[1] = ptr[5];
 			mbs.param[2] = ptr[0];
+			mbs.param[8] = ptr[4];
 			isp_mboxcmd(isp, &mbs, MBLOGNONE);
 			if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 				isp_prt(isp, ISP_LOGERR,
@@ -703,10 +707,11 @@
 			isp->isp_mbxwrk0 = ptr[3] - 1;
 			isp->isp_mbxwrk1 = ptr[5] + 1;
 			isp->isp_mbxwrk8 = ptr[4];
+			MEMZERO(&mbs, sizeof (mbs));
 			mbs.param[0] = MBOX_WRITE_RAM_WORD_EXTENDED;
-			mbs.param[8] = ptr[4];
 			mbs.param[1] = ptr[5];
 			mbs.param[2] = ptr[0];
+			mbs.param[8] = ptr[4];
 			isp_mboxcmd(isp, &mbs, MBLOGNONE);
 			if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 				isp_prt(isp, ISP_LOGERR,
@@ -729,6 +734,7 @@
 	 */
 
 
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_EXEC_FIRMWARE;
 	mbs.param[1] = code_org;
 	if (IS_2322(isp) || IS_24XX(isp)) {
@@ -739,8 +745,8 @@
 		}
 		mbs.obits |= 2;
 	}
+	isp_mboxcmd(isp, &mbs, MBLOGNONE);
 
-	isp_mboxcmd(isp, &mbs, MBLOGNONE);
 	/*
 	 * Give it a chance to start.
 	 */
@@ -758,6 +764,7 @@
 		}
 	}
 
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_ABOUT_FIRMWARE;
 	isp_mboxcmd(isp, &mbs, MBLOGALL);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
@@ -785,6 +792,7 @@
 		isp->isp_fwrev[1] = mbs.param[2];
 		isp->isp_fwrev[2] = mbs.param[3];
 	}
+
 	isp_prt(isp, ISP_LOGCONFIG,
 	    "Board Type %s, Chip Revision 0x%x, %s F/W Revision %d.%d.%d",
 	    btype, isp->isp_revision, dodnld? "loaded" : "resident",
@@ -821,6 +829,7 @@
 		    isp->isp_romfw_rev[2]);
 	}
 
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_GET_FIRMWARE_STATUS;
 	isp_mboxcmd(isp, &mbs, MBLOGALL);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
@@ -946,6 +955,7 @@
 	/*
 	 * Set ASYNC DATA SETUP time. This is very important.
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_SET_ASYNC_DATA_SETUP_TIME;
 	mbs.param[1] = sdp_chan0->isp_async_data_setup;
 	mbs.param[2] = sdp_chan1->isp_async_data_setup;
@@ -957,6 +967,7 @@
 	/*
 	 * Set ACTIVE Negation State.
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_SET_ACT_NEG_STATE;
 	mbs.param[1] =
 	    (sdp_chan0->isp_req_ack_active_neg << 4) |
@@ -965,6 +976,7 @@
 	    (sdp_chan1->isp_req_ack_active_neg << 4) |
 	    (sdp_chan1->isp_data_line_active_neg << 5);
 
+	MEMZERO(&mbs, sizeof (mbs));
 	isp_mboxcmd(isp, &mbs, MBLOGNONE);
 	if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 		isp_prt(isp, ISP_LOGERR,
@@ -981,6 +993,7 @@
 	/*
 	 * Set the Tag Aging limit
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_SET_TAG_AGE_LIMIT;
 	mbs.param[1] = sdp_chan0->isp_tag_aging;
 	mbs.param[2] = sdp_chan1->isp_tag_aging;
@@ -994,6 +1007,7 @@
 	/*
 	 * Set selection timeout.
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_SET_SELECT_TIMEOUT;
 	mbs.param[1] = sdp_chan0->isp_selection_timeout;
 	mbs.param[2] = sdp_chan1->isp_selection_timeout;
@@ -1012,6 +1026,7 @@
 	 */
 
 	if (IS_ULTRA2(isp) || IS_1240(isp)) {
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_INIT_RES_QUEUE_A64;
 		mbs.param[1] = RESULT_QUEUE_LEN(isp);
 		mbs.param[2] = DMA_WD1(isp->isp_result_dma);
@@ -1025,6 +1040,7 @@
 		}
 		isp->isp_residx = mbs.param[5];
 
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_INIT_REQ_QUEUE_A64;
 		mbs.param[1] = RQUEST_QUEUE_LEN(isp);
 		mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
@@ -1038,6 +1054,7 @@
 		}
 		isp->isp_reqidx = isp->isp_reqodx = mbs.param[4];
 	} else {
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_INIT_RES_QUEUE;
 		mbs.param[1] = RESULT_QUEUE_LEN(isp);
 		mbs.param[2] = DMA_WD1(isp->isp_result_dma);
@@ -1049,6 +1066,7 @@
 		}
 		isp->isp_residx = mbs.param[5];
 
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_INIT_REQ_QUEUE;
 		mbs.param[1] = RQUEST_QUEUE_LEN(isp);
 		mbs.param[2] = DMA_WD1(isp->isp_rquest_dma);
@@ -1070,6 +1088,7 @@
 	 * to assume not for them.
 	 */
 
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_SET_FW_FEATURES;
 	mbs.param[1] = 0;
 	if (IS_ULTRA2(isp))
@@ -1153,6 +1172,7 @@
 		 */
 		sdp->isp_devparam[tgt].goal_flags = sdf = DPARM_DEFAULT;
 #endif
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_SET_TARGET_PARAMS;
 		mbs.param[1] = (channel << 15) | (tgt << 8);
 		mbs.param[2] = sdf;
@@ -1170,6 +1190,7 @@
 		isp_mboxcmd(isp, &mbs, MBLOGNONE);
 		if (mbs.param[0] != MBOX_COMMAND_COMPLETE) {
 			sdf = DPARM_SAFE_DFLT;
+			MEMZERO(&mbs, sizeof (mbs));
 			mbs.param[0] = MBOX_SET_TARGET_PARAMS;
 			mbs.param[1] = (tgt << 8) | (channel << 15);
 			mbs.param[2] = sdf;
@@ -1193,6 +1214,7 @@
 		 */
 		sdp->isp_devparam[tgt].actv_flags = sdf & ~DPARM_TQING;
 		for (lun = 0; lun < (int) isp->isp_maxluns; lun++) {
+			MEMZERO(&mbs, sizeof (mbs));
 			mbs.param[0] = MBOX_SET_DEV_QUEUE_PARAMS;
 			mbs.param[1] = (channel << 15) | (tgt << 8) | lun;
 			mbs.param[2] = sdp->isp_max_queue_depth;
@@ -1395,7 +1417,6 @@
 		}
 	}
 
-	MEMZERO(&mbs, sizeof (mbs));
 
 	/*
 	 * For 22XX > 2.1.26 && 23XX, set some options.
@@ -1407,6 +1428,7 @@
 		 * Turn on generate AE 8013 on all LIP Resets (2)
 		 * Disable LIP F7 switching (8)
 		 */
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_SET_FIRMWARE_OPTIONS;
 		mbs.param[1] = 0xb;
 		mbs.param[2] = 0;
@@ -1466,14 +1488,15 @@
 	/*
 	 * Init the firmware
 	 */
+	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_INIT_FIRMWARE;
-	mbs.param[1] = 0;
 	mbs.param[2] = DMA_WD1(fcp->isp_scdma);
 	mbs.param[3] = DMA_WD0(fcp->isp_scdma);
-	mbs.param[4] = 0;
-	mbs.param[5] = 0;
 	mbs.param[6] = DMA_WD3(fcp->isp_scdma);
 	mbs.param[7] = DMA_WD2(fcp->isp_scdma);
+	isp_prt(isp, ISP_LOGDEBUG0, "INIT F/W from %p (%08x%08x)",
+	    fcp->isp_scratch, (uint32_t) ((uint64_t)fcp->isp_scdma >> 32),
+	    (uint32_t) fcp->isp_scdma);
 	MEMORYBARRIER(isp, SYNC_SFORDEV, 0, sizeof (*icbp));
 	isp_mboxcmd(isp, &mbs, MBLOGALL);
 	FC_SCRATCH_RELEASE(isp);
@@ -1505,16 +1528,8 @@
 
 	MEMZERO(&mbs, sizeof (mbs));
 	mbs.param[0] = MBOX_GET_FC_AL_POSITION_MAP;
-	mbs.param[1] = 0;
 	mbs.param[2] = DMA_WD1(fcp->isp_scdma);
 	mbs.param[3] = DMA_WD0(fcp->isp_scdma);
-	/*
-	 * Unneeded. For the 2100, except for initializing f/w, registers
-	 * 4/5 have to not be written to.
-	 *	mbs.param[4] = 0;
-	 *	mbs.param[5] = 0;
-	 *
-	 */
 	mbs.param[6] = DMA_WD3(fcp->isp_scdma);
 	mbs.param[7] = DMA_WD2(fcp->isp_scdma);
 	FC_SCRATCH_ACQUIRE(isp);
@@ -1556,13 +1571,6 @@
 	}
 	mbs.param[2] = DMA_WD1(fcp->isp_scdma);
 	mbs.param[3] = DMA_WD0(fcp->isp_scdma);
-	/*
-	 * Unneeded. For the 2100, except for initializing f/w, registers
-	 * 4/5 have to not be written to.
-	 *	mbs.param[4] = 0;
-	 *	mbs.param[5] = 0;
-	 *
-	 */
 	mbs.param[6] = DMA_WD3(fcp->isp_scdma);
 	mbs.param[7] = DMA_WD2(fcp->isp_scdma);
 	FC_SCRATCH_ACQUIRE(isp);
@@ -1821,6 +1829,7 @@
 
 	fcp->isp_gbspeed = 1;
 	if (IS_23XX(isp)) {
+		MEMZERO(&mbs, sizeof (mbs));
 		mbs.param[0] = MBOX_GET_SET_DATA_RATE;
 		mbs.param[1] = MBGSD_GET_RATE;
 		/* mbs.param[2] undefined if we're just getting rate */
@@ -2056,8 +2065,6 @@
 				} else {
 					mbs.param[1] = lp->loopid << 8;
 				}
-				mbs.param[2] = 0;
-				mbs.param[3] = 0;
 				isp_mboxcmd(isp, &mbs, MBLOGNONE);
 				isp_prt(isp, ISP_LOGINFO, plogout,
 				    (int) (lp - fcp->portdb), lp->loopid,
@@ -2505,6 +2512,7 @@
 static int
 isp_fabric_mbox_cmd(ispsoftc_t *isp, mbreg_t *mbp)
 {
+	/* the caller sets up the mailbox */
 	isp_mboxcmd(isp, mbp, MBLOGNONE);
 	if (mbp->param[0] != MBOX_COMMAND_COMPLETE) {
 		if (FCPARAM(isp)->isp_loopstate == LOOP_SCANNING_FABRIC) {
@@ -3466,7 +3474,6 @@
 		 * Issue a bus reset.
 		 */
 		mbs.param[0] = MBOX_BUS_RESET;
-		mbs.param[2] = 0;
 		if (IS_SCSI(isp)) {
 			mbs.param[1] =
 			    ((sdparam *) isp->isp_param)->isp_bus_reset_delay;
@@ -3532,8 +3539,6 @@
 				} else {
 					mbs.param[1] = tgt << 8;
 				}
-				mbs.param[4] = 0;
-				mbs.param[5] = 0;
 				mbs.param[6] = XS_LUN(xs);
 			} else {
 				mbs.param[1] = tgt << 8 | XS_LUN(xs);
@@ -3542,7 +3547,6 @@
 			mbs.param[1] =
 			    (bus << 15) | (XS_TGT(xs) << 8) | XS_LUN(xs);
 		}
-		mbs.param[3] = 0;
 		mbs.param[2] = handle;
 		isp_mboxcmd(isp, &mbs, MBLOGALL & ~MBOX_COMMAND_ERROR);
 		if (mbs.param[0] == MBOX_COMMAND_COMPLETE) {
@@ -5316,7 +5320,7 @@
 	ISPOPMAP(0x07, 0x03),	/* 0x5d: MBOX_GET_SET_DATA_RATE */
 	ISPOPMAP(0x00, 0x00),	/* 0x5e: */
 	ISPOPMAP(0x00, 0x00),	/* 0x5f: */
-	ISPOPMAP(0xfd, 0x31),	/* 0x60: MBOX_INIT_FIRMWARE */
+	ISPOPMAP(0xcd, 0x31),	/* 0x60: MBOX_INIT_FIRMWARE */
 	ISPOPMAP(0x00, 0x00),	/* 0x61: */
 	ISPOPMAP(0x01, 0x01),	/* 0x62: MBOX_INIT_LIP */
 	ISPOPMAP(0xcd, 0x03),	/* 0x63: MBOX_GET_FC_AL_POSITION_MAP */
@@ -5572,6 +5576,8 @@
 
 	for (box = 0; box < MAX_MAILBOX(isp); box++) {
 		if (ibits & (1 << box)) {
+			isp_prt(isp, ISP_LOGDEBUG1, "IN mbox %d = 0x%x", box,
+			    mbp->param[box]);
 			ISP_WRITE(isp, MBOX_OFF(box), mbp->param[box]);
 		}
 		isp->isp_mboxtmp[box] = mbp->param[box] = 0;
@@ -5610,6 +5616,8 @@
 	for (box = 0; box < MAX_MAILBOX(isp); box++) {
 		if (obits & (1 << box)) {
 			mbp->param[box] = isp->isp_mboxtmp[box];
+			isp_prt(isp, ISP_LOGDEBUG1, "OUT mbox %d = 0x%x", box,
+			    mbp->param[box]);
 		}
 	}
 
@@ -5734,7 +5742,6 @@
 	}
 	sdp = isp->isp_param;
 	sdp += bus;
-	MEMZERO(&mbs, sizeof (mbs));
 
 	for (tgt = 0; tgt < MAX_TARGETS; tgt++) {
 		uint16_t flags, period, offset;
@@ -5754,6 +5761,8 @@
 		 * current device state, get the current parameters.
 		 */
 
+		MEMZERO(&mbs, sizeof (mbs));
+
 		/*
 		 * Refresh overrides set
 		 */
@@ -5780,9 +5789,7 @@
 				mbs.param[2] |= DPARM_PARITY;
 			}
 
-			if ((mbs.param[2] & DPARM_SYNC) == 0) {
-				mbs.param[3] = 0;
-			} else {
+			if (mbs.param[2] & DPARM_SYNC) {
 				mbs.param[3] =
 				    (sdp->isp_devparam[tgt].goal_offset << 8) |
 				    (sdp->isp_devparam[tgt].goal_period);
@@ -5847,10 +5854,8 @@
 isp_setdfltparm(ispsoftc_t *isp, int channel)
 {
 	int tgt;
-	mbreg_t mbs;
 	sdparam *sdp;
 
-	MEMZERO(&mbs, sizeof (mbs));
 	if (IS_FC(isp)) {
 		fcparam *fcp = (fcparam *) isp->isp_param;

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607172312.k6HNCUBL063452>