Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Apr 2003 12:02:35 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 28543 for review
Message-ID:  <200304081902.h38J2ZrZ073579@repoman.freebsd.org>

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

Change 28543 by jhb@jhb_laptop on 2003/04/08 12:02:18

	IFC @28536.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#13 integrate
.. //depot/projects/smpng/sys/boot/common/bootstrap.h#6 integrate
.. //depot/projects/smpng/sys/cam/cam_periph.c#9 integrate
.. //depot/projects/smpng/sys/conf/files#70 integrate
.. //depot/projects/smpng/sys/conf/options.i386#25 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#35 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.h#15 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#7 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-disk.c#28 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-dma.c#29 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.c#29 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#4 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.c#18 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.h#12 integrate
.. //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#13 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed.c#12 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#27 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxpreg.h#6 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#19 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccardvar.h#11 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbb.c#25 integrate
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#12 integrate
.. //depot/projects/smpng/sys/dev/snc/dp83932.c#5 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30.h#1 branch
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_isa.c#5 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_pccard.c#8 integrate
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_pci.c#1 branch
.. //depot/projects/smpng/sys/dev/stg/tmc18c30_subr.c#1 branch
.. //depot/projects/smpng/sys/dev/usb/if_kue.c#12 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#27 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs.h#28 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#28 integrate
.. //depot/projects/smpng/sys/dev/usb/uvisor.c#4 integrate
.. //depot/projects/smpng/sys/dev/vx/if_vx.c#9 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#13 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#54 integrate
.. //depot/projects/smpng/sys/i386/conf/PAE#1 branch
.. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#14 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_clock.c#5 integrate
.. //depot/projects/smpng/sys/i386/i386/swtch.s#17 integrate
.. //depot/projects/smpng/sys/i386/i386/tsc.c#3 integrate
.. //depot/projects/smpng/sys/i386/include/pmap.h#15 integrate
.. //depot/projects/smpng/sys/i386/include/vmparam.h#3 integrate
.. //depot/projects/smpng/sys/i386/isa/mca_machdep.c#4 delete
.. //depot/projects/smpng/sys/i386/isa/mca_machdep.h#2 delete
.. //depot/projects/smpng/sys/i386/isa/vesa.c#7 integrate
.. //depot/projects/smpng/sys/ia64/conf/GENERIC#30 integrate
.. //depot/projects/smpng/sys/ia64/conf/SKI#12 integrate
.. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#13 integrate
.. //depot/projects/smpng/sys/ia64/ia64/exception.s#23 integrate
.. //depot/projects/smpng/sys/ia64/ia64/locore.s#16 integrate
.. //depot/projects/smpng/sys/ia64/ia64/sscdisk.c#13 integrate
.. //depot/projects/smpng/sys/kern/kern_mac.c#20 integrate
.. //depot/projects/smpng/sys/kern/kern_physio.c#8 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#3 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#23 integrate
.. //depot/projects/smpng/sys/kern/link_elf.c#19 integrate
.. //depot/projects/smpng/sys/kern/uipc_cow.c#10 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf.c#16 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#37 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#41 integrate
.. //depot/projects/smpng/sys/modules/stg/Makefile#2 integrate
.. //depot/projects/smpng/sys/net/if_disc.c#7 integrate
.. //depot/projects/smpng/sys/net/if_faith.c#14 integrate
.. //depot/projects/smpng/sys/net/if_loop.c#16 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#5 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#14 integrate
.. //depot/projects/smpng/sys/netgraph/ng_iface.c#8 integrate
.. //depot/projects/smpng/sys/netinet/ip_divert.c#23 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#32 integrate
.. //depot/projects/smpng/sys/netinet/ip_mroute.c#22 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#35 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#4 integrate
.. //depot/projects/smpng/sys/netkey/keysock.c#14 integrate
.. //depot/projects/smpng/sys/netnatm/natm.c#10 integrate
.. //depot/projects/smpng/sys/pci/agp_if.m#2 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#24 integrate
.. //depot/projects/smpng/sys/pci/if_xl.c#22 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#8 integrate
.. //depot/projects/smpng/sys/sparc64/include/cache.h#7 integrate
.. //depot/projects/smpng/sys/sparc64/include/cpufunc.h#17 integrate
.. //depot/projects/smpng/sys/sparc64/include/iommuvar.h#8 integrate
.. //depot/projects/smpng/sys/sparc64/include/kerneldump.h#2 integrate
.. //depot/projects/smpng/sys/sparc64/include/md_var.h#11 integrate
.. //depot/projects/smpng/sys/sparc64/include/ofw_mem.h#2 integrate
.. //depot/projects/smpng/sys/sparc64/include/pmap.h#22 integrate
.. //depot/projects/smpng/sys/sparc64/include/smp.h#13 integrate
.. //depot/projects/smpng/sys/sparc64/include/tsb.h#10 integrate
.. //depot/projects/smpng/sys/sparc64/include/watch.h#2 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psycho.c#18 integrate
.. //depot/projects/smpng/sys/sparc64/pci/psychovar.h#7 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/bus_machdep.c#14 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/cheetah.c#2 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/db_hwwatch.c#4 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/dump_machdep.c#4 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#13 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#46 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mem.c#7 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#17 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#36 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/spitfire.c#2 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/tsb.c#19 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#30 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#20 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#2 integrate
.. //depot/projects/smpng/sys/vm/vm_pager.c#11 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/busdma_machdep.c#13 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.33 2003/03/20 19:45:26 mux Exp $
+ * $FreeBSD: src/sys/alpha/alpha/busdma_machdep.c,v 1.34 2003/04/08 14:25:44 des Exp $
  */
 
 #include <sys/param.h>
@@ -667,8 +667,7 @@
 
 	KASSERT(dmat->lowaddr >= ptoa(Maxmem) || map != NULL,
 		("bus_dmamap_load_mbuf: No support for bounce pages!"));
-	KASSERT(m0->m_flags & M_PKTHDR,
-		("bus_dmamap_load_mbuf: no packet header"));
+	M_ASSERTPKTHDR(m0);
 
 	nsegs = 0;
 	error = 0;

==== //depot/projects/smpng/sys/boot/common/bootstrap.h#6 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.36 2002/03/10 22:33:04 sobomax Exp $
+ * $FreeBSD: src/sys/boot/common/bootstrap.h,v 1.37 2003/04/06 06:28:08 peter Exp $
  */
 
 #include <sys/types.h>
@@ -231,9 +231,6 @@
 
 
 /* MI module loaders */
-int		aout_loadfile(char *filename, vm_offset_t dest, struct preloaded_file **result);
-vm_offset_t	aout_findsym(char *name, struct preloaded_file *fp);
-
 int	elf_loadfile(char *filename, vm_offset_t dest, struct preloaded_file **result);
 
 /*

==== //depot/projects/smpng/sys/cam/cam_periph.c#9 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/cam/cam_periph.c,v 1.47 2003/03/15 21:59:05 phk Exp $
+ * $FreeBSD: src/sys/cam/cam_periph.c,v 1.48 2003/04/06 22:21:03 alc Exp $
  */
 
 #include <sys/param.h>
@@ -605,29 +605,10 @@
 
 		if (dirs[i] & CAM_DIR_OUT) {
 			flags[i] = BIO_WRITE;
-			if (!useracc(*data_ptrs[i], lengths[i], 
-				     VM_PROT_READ)) {
-				printf("cam_periph_mapmem: error, "
-					"address %p, length %lu isn't "
-					"user accessible for READ\n",
-					(void *)*data_ptrs[i],
-					(u_long)lengths[i]);
-				return(EACCES);
-			}
 		}
 
 		if (dirs[i] & CAM_DIR_IN) {
 			flags[i] = BIO_READ;
-			if (!useracc(*data_ptrs[i], lengths[i], 
-				     VM_PROT_WRITE)) {
-				printf("cam_periph_mapmem: error, "
-					"address %p, length %lu isn't "
-					"user accessible for WRITE\n",
-					(void *)*data_ptrs[i],
-					(u_long)lengths[i]);
-
-				return(EACCES);
-			}
 		}
 
 	}

==== //depot/projects/smpng/sys/conf/files#70 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.777 2003/04/04 18:53:04 phk Exp $
+# $FreeBSD: src/sys/conf/files,v 1.778 2003/04/07 10:13:25 mdodd Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -723,8 +723,10 @@
 dev/sr/if_sr_pci.c	optional sr pci
 dev/streams/streams.c	optional streams
 dev/stg/tmc18c30.c	optional stg
+dev/stg/tmc18c30_subr.c	optional stg
 dev/stg/tmc18c30_pccard.c	optional stg card
 dev/stg/tmc18c30_pccard.c	optional stg pccard
+dev/stg/tmc18c30_pci.c	optional stg pci
 dev/stg/tmc18c30_isa.c	optional stg isa
 dev/sym/sym_hipd.c	optional sym					\
 	dependency	"$S/dev/sym/sym_{conf,defs}.h"

==== //depot/projects/smpng/sys/conf/options.i386#25 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.188 2003/04/02 23:53:28 peter Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.189 2003/04/04 23:54:46 tegge Exp $
 # Options specific to the i386 platform kernels
 
 MATH_EMULATE		opt_math_emulate.h
@@ -41,6 +41,7 @@
 CLK_CALIBRATION_LOOP		opt_clock.h
 CLK_USE_I8254_CALIBRATION	opt_clock.h
 CLK_USE_TSC_CALIBRATION		opt_clock.h
+SMP_TSC				opt_clock.h
 TIMER_FREQ			opt_clock.h
 
 NO_F00F_HACK			opt_cpu.h

==== //depot/projects/smpng/sys/dev/ata/ata-all.c#35 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.176 2003/04/01 15:06:23 phk Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.177 2003/04/07 14:12:12 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -447,7 +447,7 @@
     /* apparently some devices needs this repeated */
     do {
 	if (ata_command(atadev, command, 0, 0, 0,
-		dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) { /* XXX */
+		dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) {
 	    ata_prtdev(atadev, "%s identify failed\n",
 		       command == ATA_C_ATAPI_IDENTIFY ? "ATAPI" : "ATA");
 	    free(ata_parm, M_ATA);

==== //depot/projects/smpng/sys/dev/ata/ata-all.h#15 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.60 2003/03/29 13:37:09 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.61 2003/04/07 14:12:12 sos Exp $
  */
 
 /* ATA register defines */
@@ -145,6 +145,7 @@
 #define		ATA_BMCMD_START_STOP	0x01
 #define		ATA_BMCMD_WRITE_READ	0x08
 
+#define ATA_BMCTL_PORT			0x09
 #define ATA_BMDEVSPEC_0			0x0a
 #define ATA_BMSTAT_PORT			0x0b
 #define		ATA_BMSTAT_ACTIVE	0x01
@@ -158,6 +159,8 @@
 #define ATA_BMDEVSPEC_1			0x0c
 #define ATA_BMDTP_PORT			0x0d
 
+#define ATA_IDX_ADDR			0x0e
+#define ATA_IDX_DATA			0x0f
 #define ATA_MAX_RES			0x10
 
 /* structure for holding DMA address data */
@@ -207,7 +210,6 @@
     int (*setup)(struct ata_device *, caddr_t, int32_t);
     int (*start)(struct ata_channel *, caddr_t, int32_t, int);
     int (*stop)(struct ata_channel *);
-    int (*status)(struct ata_channel *);
 };
 
 /* structure holding resources for an ATA channel */
@@ -365,31 +367,102 @@
 	bus_space_write_multi_stream_4(rman_get_bustag((res)), \
 				       rman_get_bushandle((res)), \
 				       (offset), (addr), (count))
+
+#define ATA_IDX_SET(ch, idx) \
+	ATA_OUTB(ch->r_io[ATA_IDX_ADDR].res, ch->r_io[ATA_IDX_ADDR].offset, \
+		 ch->r_io[idx].offset)
+	
 #define ATA_IDX_INB(ch, idx) \
-	ATA_INB(ch->r_io[idx].res, ch->r_io[idx].offset)
+	((ch->r_io[idx].res) \
+	? ATA_INB(ch->r_io[idx].res, ch->r_io[idx].offset) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INB(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset)))
+
 #define ATA_IDX_INW(ch, idx) \
-	ATA_INW(ch->r_io[idx].res, ch->r_io[idx].offset)
+	((ch->r_io[idx].res) \
+	? ATA_INW(ch->r_io[idx].res, ch->r_io[idx].offset) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INW(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset)))
+
 #define ATA_IDX_INL(ch, idx) \
-	ATA_INL(ch->r_io[idx].res, ch->r_io[idx].offset)
+	((ch->r_io[idx].res) \
+	? ATA_INL(ch->r_io[idx].res, ch->r_io[idx].offset) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INL(ch->r_io[ATA_IDX_DATA].res, ch->r_io[ATA_IDX_DATA].offset)))
+
 #define ATA_IDX_INSW(ch, idx, addr, count) \
-	ATA_INSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_INSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INSW(ch->r_io[ATA_IDX_DATA].res, \
+		    ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_INSW_STRM(ch, idx, addr, count) \
-	ATA_INSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_INSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INSW_STRM(ch->r_io[ATA_IDX_DATA].res, \
+			 ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_INSL(ch, idx, addr, count) \
-	ATA_INSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_INSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INSL(ch->r_io[ATA_IDX_DATA].res, \
+		    ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_INSL_STRM(ch, idx, addr, count) \
-	ATA_INSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_INSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_INSL_STRM(ch->r_io[ATA_IDX_DATA].res, \
+			 ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_OUTB(ch, idx, value) \
-	ATA_OUTB(ch->r_io[idx].res, ch->r_io[idx].offset, value)
+	((ch->r_io[idx].res) \
+	? ATA_OUTB(ch->r_io[idx].res, ch->r_io[idx].offset, value) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTB(ch->r_io[ATA_IDX_DATA].res, \
+		    ch->r_io[ATA_IDX_DATA].offset, value)))
+
 #define ATA_IDX_OUTW(ch, idx, value) \
-	ATA_OUTW(ch->r_io[idx].res, ch->r_io[idx].offset, value)
+	((ch->r_io[idx].res) \
+	? ATA_OUTW(ch->r_io[idx].res, ch->r_io[idx].offset, value) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTW(ch->r_io[ATA_IDX_DATA].res, \
+		    ch->r_io[ATA_IDX_DATA].offset, value)))
+
 #define ATA_IDX_OUTL(ch, idx, value) \
-	ATA_OUTL(ch->r_io[idx].res, ch->r_io[idx].offset, value)
+	((ch->r_io[idx].res) \
+	? ATA_OUTL(ch->r_io[idx].res, ch->r_io[idx].offset, value) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTL(ch->r_io[ATA_IDX_DATA].res, \
+		    ch->r_io[ATA_IDX_DATA].offset, value)))
+
 #define ATA_IDX_OUTSW(ch, idx, addr, count) \
-	ATA_OUTSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_OUTSW(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTSW(ch->r_io[ATA_IDX_DATA].res, \
+		     ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_OUTSW_STRM(ch, idx, addr, count) \
-	ATA_OUTSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_OUTSW_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTSW_STRM(ch->r_io[ATA_IDX_DATA].res, \
+			  ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_OUTSL(ch, idx, addr, count) \
-	ATA_OUTSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_OUTSL(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTSL(ch->r_io[ATA_IDX_DATA].res, \
+		     ch->r_io[ATA_IDX_DATA].offset, addr, count)))
+
 #define ATA_IDX_OUTSL_STRM(ch, idx, addr, count) \
-	ATA_OUTSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count)
+	((ch->r_io[idx].res) \
+	? ATA_OUTSL_STRM(ch->r_io[idx].res, ch->r_io[idx].offset, addr, count) \
+	: (ATA_IDX_SET(ch, idx), \
+	   ATA_OUTSL_STRM(ch->r_io[ATA_IDX_DATA].res, \
+			  ch->r_io[ATA_IDX_DATA].offset, addr, count)))

==== //depot/projects/smpng/sys/dev/ata/ata-chipset.c#7 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.16 2003/03/29 13:37:09 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.17 2003/04/07 14:12:12 sos Exp $
  */
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -135,7 +135,8 @@
 	if (!(ch = ctlr->interrupt[unit].argument))
 	    continue;
 	if (ch->dma->flags & ATA_DMA_ACTIVE) {
-	    if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT))
+	    if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) &
+			      ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT))
 		continue;
 	    ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT);
 	    DELAY(1);
@@ -220,7 +221,8 @@
 		continue;
 	ch = ctlr->interrupt[unit].argument;
 	if (ch->dma->flags & ATA_DMA_ACTIVE) {
-	    if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT))
+	    if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) &
+			      ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT))
 		continue;
 	    ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT);
 	    DELAY(1);
@@ -480,7 +482,7 @@
     if (ata_default_interrupt(dev))
 	return ENXIO;
 
-    if (ctlr->r_bmio)
+    if (ctlr->r_io1)
 	ctlr->setmode = ata_cyrix_setmode;
     else
 	ctlr->setmode = ata_generic_setmode;
@@ -664,7 +666,7 @@
     for (unit = 0; unit < 2; unit++) {
 	if (!(ch = ctlr->interrupt[unit].argument))
 	    continue;
-	if (((dmastat = ch->dma->status(ch)) & 
+	if (((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK)) & 
 	     (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT))!=ATA_BMSTAT_INTERRUPT)
 	    continue;
 	ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT);
@@ -1014,7 +1016,6 @@
 	}
 	break;
     }
-
     ctlr->setmode = ata_promise_setmode;
     return 0;
 }
@@ -1023,7 +1024,7 @@
 ata_promise_old_intr(void *data)
 {
     struct ata_pci_controller *ctlr = data;
-    struct ata_channel *ch = ctlr->interrupt[0].argument;
+    struct ata_channel *ch;
     u_int8_t dmastat;
     int unit;
 
@@ -1031,9 +1032,10 @@
     for (unit = 0; unit < 2; unit++) {
 	if (!(ch = ctlr->interrupt[unit].argument))
 	    continue;
-	if (ATA_INL(ctlr->r_bmio, 0x1c) & (ch->unit ? 0x00004000 : 0x00000400)){
+	if (ATA_INL(ctlr->r_io1, 0x1c) & (ch->unit ? 0x00004000 : 0x00000400)) {
 	    if (ch->dma->flags & ATA_DMA_ACTIVE) {
-		if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT))
+		if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) &
+				  ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT))
 		    continue;
 		ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT);
 		DELAY(1);
@@ -1058,9 +1060,10 @@
 	ATA_IDX_OUTB(ch, ATA_BMDEVSPEC_0, 0x0b);
 	if (ATA_IDX_INB(ch, ATA_BMDEVSPEC_1) & 0x20) {
 	    if (ch->dma->flags & ATA_DMA_ACTIVE) {
-		if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT))
+		if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) &
+				  ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT))
 		    continue;
-		ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT);
+		ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat|ATA_BMSTAT_INTERRUPT);
 		DELAY(1);
 	    }
 	    ctlr->interrupt[unit].function(ch);
@@ -1150,7 +1153,7 @@
 
 static int
 ata_promise_old_dmastart(struct ata_channel *ch,
-		     caddr_t data, int32_t count, int dir)
+			 caddr_t data, int32_t count, int dir)
 {
     struct ata_pci_controller *ctlr = 
 	device_get_softc(device_get_parent(ch->dev));
@@ -1158,14 +1161,19 @@
 
     if ((error = ata_dmastart(ch, data, count, dir)))
 	return error;
-
     if (ch->flags & ATA_48BIT_ACTIVE) {
-	ATA_OUTB(ctlr->r_bmio, 0x11,
-		 ATA_INB(ctlr->r_bmio, 0x11) | (ch->unit ? 0x08 : 0x02));
-	ATA_OUTL(ctlr->r_bmio, 0x20,
+	ATA_OUTB(ctlr->r_io1, 0x11,
+		 ATA_INB(ctlr->r_io1, 0x11) | (ch->unit ? 0x08 : 0x02));
+	ATA_OUTL(ctlr->r_io1, 0x20,
 		 (dir ? 0x05000000 : 0x06000000) | (count >> 1));
     }
-    return 0;
+    ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab);
+    ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, dir ? ATA_BMCMD_WRITE_READ : 0);
+    ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) |
+		 (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR)));
+    ATA_IDX_OUTB(ch, ATA_BMCMD_PORT,
+		 ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP);
+    return error;
 }
 
 static int
@@ -1173,13 +1181,19 @@
 {
     struct ata_pci_controller *ctlr = 
 	device_get_softc(device_get_parent(ch->dev));
+    int error;
 
     if (ch->flags & ATA_48BIT_ACTIVE) {
-	ATA_OUTB(ctlr->r_bmio, 0x11,
-		 ATA_INB(ctlr->r_bmio, 0x11) & ~(ch->unit ? 0x08 : 0x02));
-	ATA_OUTL(ctlr->r_bmio, 0x20, 0);
+	ATA_OUTB(ctlr->r_io1, 0x11,
+		 ATA_INB(ctlr->r_io1, 0x11) & ~(ch->unit ? 0x08 : 0x02));
+	ATA_OUTL(ctlr->r_io1, 0x20, 0);
     }
-    return ata_dmastop(ch);
+    error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT);
+    ATA_IDX_OUTB(ch, ATA_BMCMD_PORT,
+		 ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
+    ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); 
+    ata_dmastop(ch);
+    return error;
 }
 
 /*
@@ -1351,7 +1365,8 @@
 	pci_write_config(device_get_parent(ch->dev), 0x71,
 			 (ch->unit ? 0x08 : 0x04), 1);
 	if (ch->dma->flags & ATA_DMA_ACTIVE) {
-	    if (!((dmastat = ch->dma->status(ch)) & ATA_BMSTAT_INTERRUPT))
+	    if (!((dmastat = (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) &
+			      ATA_BMSTAT_MASK)) & ATA_BMSTAT_INTERRUPT))
 		continue;
 	    ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, dmastat | ATA_BMSTAT_INTERRUPT);
 	    DELAY(1);

==== //depot/projects/smpng/sys/dev/ata/ata-disk.c#28 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.150 2003/04/01 15:06:23 phk Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.151 2003/04/07 14:14:29 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -203,14 +203,10 @@
 
     ata_enclosure_print(atadev);
 
-    /* if this disk belongs to an ATA RAID dont print the probe */
-    if (ata_raiddisk_attach(adp))
-	adp->flags |= AD_F_RAID_SUBDISK;
-    else {
-	if (atadev->driver) {
+    /* only print probe banner if we are not part of a RAID array */
+    if (!ata_raiddisk_attach(adp))
+	if (atadev->driver)
 	    ad_print(adp);
-	}
-    }
 }
 
 void

==== //depot/projects/smpng/sys/dev/ata/ata-dma.c#29 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.114 2003/03/29 13:37:09 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.115 2003/04/07 14:12:12 sos Exp $
  */
 
 #include <sys/param.h>
@@ -47,7 +47,6 @@
 static void ata_dmafree(struct ata_channel *);
 static void ata_dmasetupd_cb(void *, bus_dma_segment_t *, int, int);
 static int ata_dmasetup(struct ata_device *, caddr_t, int32_t);
-static int ata_dmastatus(struct ata_channel *);
 
 /* local vars */
 static MALLOC_DEFINE(M_ATADMA, "ATA DMA", "ATA driver DMA");
@@ -73,7 +72,6 @@
     ch->dma->setup = ata_dmasetup;
     ch->dma->start = ata_dmastart;
     ch->dma->stop = ata_dmastop;
-    ch->dma->status = ata_dmastatus;
     ch->dma->alignment = 2;
     return 0;
 }
@@ -219,12 +217,6 @@
     return 0;
 }
 
-static int
-ata_dmastatus(struct ata_channel *ch)
-{
-    return ch->dma->flags & ATA_DMA_ACTIVE;
-}
-
 int
 ata_dmastart(struct ata_channel *ch, caddr_t data, int32_t count, int dir)
 {

==== //depot/projects/smpng/sys/dev/ata/ata-pci.c#29 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.58 2003/03/29 13:37:09 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.59 2003/04/07 14:12:12 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -157,8 +157,8 @@
     if ((cmd & PCIM_CMD_BUSMASTEREN) == PCIM_CMD_BUSMASTEREN) {
 	int rid = ATA_BMADDR_RID;
 
-	if (!ctlr->r_mem) {
-	    if (!(ctlr->r_bmio = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
+	if (!ctlr->r_io2) {
+	    if (!(ctlr->r_io1 = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
 						    0, ~0, 1, RF_ACTIVE)))
 		device_printf(dev, "Busmastering DMA not configured\n");
 	}
@@ -182,7 +182,7 @@
     int retval = 0;
 
     retval += bus_print_child_header(dev, child);
-    retval += printf(": at 0x%lx", rman_get_start(ch->r_io[0].res));
+    retval += printf(": at 0x%lx", rman_get_start(ch->r_io[ATA_IDX_ADDR].res));
 
     if (ATA_MASTERDEV(dev))
 	retval += printf(" irq %d", 14 + ch->unit);
@@ -390,10 +390,11 @@
     }
     ch->r_io[ATA_ALTSTAT].res = altio;
     ch->r_io[ATA_ALTSTAT].offset = 0;
+    ch->r_io[ATA_IDX_ADDR].res = io;
 
-    if (ctlr->r_bmio) {
+    if (ctlr->r_io1) {
 	for (i = ATA_BMCMD_PORT; i <= ATA_BMDTP_PORT; i++) {
-	    ch->r_io[i].res = ctlr->r_bmio;
+	    ch->r_io[i].res = ctlr->r_io1;
 	    ch->r_io[i].offset = (i - ATA_BMCMD_PORT)+(ch->unit * ATA_BMIOSIZE);
 	}
 
@@ -420,9 +421,9 @@
     ATA_IDX_OUTL(ch, ATA_BMDTP_PORT, ch->dma->mdmatab);
     ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, dir ? ATA_BMCMD_WRITE_READ : 0);
     ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, (ATA_IDX_INB(ch, ATA_BMSTAT_PORT) | 
-	     (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR)));
+		 (ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR)));
     ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, 
-	     ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP);
+		 ATA_IDX_INB(ch, ATA_BMCMD_PORT) | ATA_BMCMD_START_STOP);
     return 0;
 }
 
@@ -433,7 +434,7 @@
 
     error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT);
     ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, 
-	     ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
+		 ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP);
     ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR);
 
     ata_dmastop(ch);
@@ -441,12 +442,6 @@
     return (error & ATA_BMSTAT_MASK);
 }
 
-static int 
-ata_pci_dmastatus(struct ata_channel *ch)
-{
-    return ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK;
-}   
-
 static int
 ata_pci_dmainit(struct ata_channel *ch)
 {
@@ -457,7 +452,6 @@
 
     ch->dma->start = ata_pci_dmastart;
     ch->dma->stop = ata_pci_dmastop;
-    ch->dma->status = ata_pci_dmastatus;
     return 0;
 }
 

==== //depot/projects/smpng/sys/dev/ata/ata-pci.h#4 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.5 2003/03/29 13:37:09 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.6 2003/04/07 14:12:12 sos Exp $
  */
 
 /* structure holding chipset config info */
@@ -40,8 +40,8 @@
 
 /* structure describing a PCI ATA controller */
 struct ata_pci_controller {
-    struct resource	 *r_bmio;
-    struct resource	 *r_mem;
+    struct resource	 *r_io1;
+    struct resource	 *r_io2;
     struct resource	 *r_irq;
     void		 *handle;
     struct ata_chip_id	 *chip;

==== //depot/projects/smpng/sys/dev/ata/ata-raid.c#18 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.58 2003/04/01 15:06:23 phk Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.61 2003/04/08 18:01:30 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -64,6 +64,7 @@
 static int ar_promise_write_conf(struct ar_softc *);
 static int ar_rw(struct ad_softc *, u_int32_t, int, caddr_t, int);
 static struct ata_device *ar_locate_disk(int);
+static void ar_print_conf(struct ar_softc *);
 
 /* internal vars */
 static struct ar_softc **ar_table = NULL;
@@ -87,7 +88,7 @@
 			       "inserted into ar%d disk%d as spare\n",
 			       array, disk);
 		    rdp->disks[disk].flags |= (AR_DF_PRESENT | AR_DF_SPARE);
-		    AD_SOFTC(rdp->disks[disk])->flags = AD_F_RAID_SUBDISK;
+		    AD_SOFTC(rdp->disks[disk])->flags |= AD_F_RAID_SUBDISK;
 		    ar_config_changed(rdp, 1);
 		    return 1;
 		}
@@ -133,6 +134,7 @@
 			       "deleted from ar%d disk%d\n", array, disk);
 		    rdp->disks[disk].flags &= ~(AR_DF_PRESENT | AR_DF_ONLINE);
 		    AD_SOFTC(rdp->disks[disk])->flags &= ~AD_F_RAID_SUBDISK;
+		    rdp->disks[disk].device = NULL;
 		    ar_config_changed(rdp, 1);
 		    return 1;
 		}
@@ -154,6 +156,8 @@
     for (array = 0; array < MAX_ARRAYS; array++) {
 	if (!(rdp = ar_table[array]) || !rdp->flags)
 	    continue;
+	if (bootverbose)
+	    ar_print_conf(rdp);
 	ar_attach_raid(rdp, 0);
     }
 }
@@ -327,7 +331,7 @@
     }
 
     for (disk = 0; disk < total_disks; disk++)
-	AD_SOFTC(rdp->disks[disk])->flags = AD_F_RAID_SUBDISK;
+	AD_SOFTC(rdp->disks[disk])->flags |= AD_F_RAID_SUBDISK;
 
     rdp->lun = array;
     if (rdp->flags & AR_F_RAID0) {
@@ -492,11 +496,17 @@
 	case AR_F_RAID0 | AR_F_RAID1:
 	    tmplba = blkno / rdp->interleave;
 	    chunk = blkno % rdp->interleave;
-	    if (tmplba == rdp->total_sectors / rdp->interleave) {
-		lbs = (rdp->total_sectors-(tmplba*rdp->interleave))/rdp->width;
-		drv = chunk / lbs;
-		lba = ((tmplba/rdp->width)*rdp->interleave) + chunk%lbs;
-		chunk = min(count, lbs);
+	    if (blkno >= (rdp->total_sectors / (rdp->interleave * rdp->width)) *
+			 (rdp->interleave * rdp->width) ) {
+                lbs = (rdp->total_sectors - 
+		    ((rdp->total_sectors / (rdp->interleave * rdp->width)) *
+		     (rdp->interleave * rdp->width))) / rdp->width;
+                drv = (blkno - 
+		    ((rdp->total_sectors / (rdp->interleave * rdp->width)) *
+		     (rdp->interleave * rdp->width))) / lbs;
+                lba = ((tmplba / rdp->width) * rdp->interleave) +
+                      (blkno - ((tmplba / rdp->width) * rdp->interleave)) % lbs;
+                chunk = min(count, lbs);
 	    }
 	    else {
 		drv = tmplba % rdp->width;
@@ -972,6 +982,7 @@
 	raid->flags |= AR_F_HIGHPOINT_RAID;
 	raid->disks[disk_number].device = adp->device;
 	raid->disks[disk_number].flags = (AR_DF_PRESENT | AR_DF_ASSIGNED);
+	AD_SOFTC(raid->disks[disk_number])->flags |= AD_F_RAID_SUBDISK;
 	raid->lun = array;
 	if (info->magic == HPT_MAGIC_OK) {
 	    raid->disks[disk_number].flags |= AR_DF_ONLINE;
@@ -1232,6 +1243,8 @@
 	    raid->disks[info->raid.disk_number].flags |= AR_DF_PRESENT;
 	    raid->disks[info->raid.disk_number].disk_sectors =
 		info->raid.disk_sectors;
+	    AD_SOFTC(raid->disks[info->raid.disk_number])->flags |=
+		AD_F_RAID_SUBDISK;
 	    retval = 1;
 	}
 	break;
@@ -1427,3 +1440,31 @@
     }
     return NULL;
 }
+
+static void
+ar_print_conf(struct ar_softc *config)
+{
+    int i;
+
+    printf("lun		%d\n", config->lun);
+    printf("magic_0		0x%08x\n", config->magic_0);
+    printf("magic_1		0x%08x\n", config->magic_1);
+    printf("flags		0x%02x %b\n", config->flags, config->flags,
+	"\20\16HIGHPOINT\15PROMISE\13REBUILDING\12DEGRADED\11READY\3SPAN\2RAID1\1RAID0\n");
+    printf("total_disks	%d\n", config->total_disks);
+    printf("generation	%d\n", config->generation);
+    printf("width		%d\n", config->width);
+    printf("heads		%d\n", config->heads);
+    printf("sectors		%d\n", config->sectors);
+    printf("cylinders	%d\n", config->cylinders);
+    printf("total_sectors	%lld\n", (long long)config->total_sectors);
+    printf("interleave	%d\n", config->interleave);
+    printf("reserved	%d\n", config->reserved);
+    printf("offset		%d\n", config->offset);
+    for (i = 0; i < config->total_disks; i++) {
+	printf("disk %d:	flags = 0x%02x %b\n", i, config->disks[i].flags, config->disks[i].flags, "\20\4ONLINE\3SPARE\2ASSIGNED\1PRESENT\n");
+	if (config->disks[i].device)
+	    printf("	%s\n", config->disks[i].device->name);
+	printf("	sectors	%lld\n", (long long)config->disks[i].disk_sectors);
+    }
+}

==== //depot/projects/smpng/sys/dev/ata/ata-raid.h#12 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ata/ata-raid.h,v 1.21 2003/02/25 15:33:36 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-raid.h,v 1.22 2003/04/08 07:48:52 sos Exp $
  */
 
 /* misc defines */
@@ -221,11 +221,10 @@
     u_int32_t		checksum;
 } __packed;
 
-int ata_raiddisk_probe(struct ad_softc *);
 int ata_raiddisk_attach(struct ad_softc *);
 int ata_raiddisk_detach(struct ad_softc *);
 void ata_raid_attach(void);
 int ata_raid_create(struct raid_setup *);
 int ata_raid_delete(int);
-int ata_raid_status(int array, struct raid_status *);
+int ata_raid_status(int, struct raid_status *);
 int ata_raid_rebuild(int);

==== //depot/projects/smpng/sys/dev/cardbus/cardbus_cis.c#13 (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/dev/cardbus/cardbus_cis.c,v 1.35 2003/02/19 05:47:01 imp Exp $
+ * $FreeBSD: src/sys/dev/cardbus/cardbus_cis.c,v 1.36 2003/04/08 07:05:16 imp Exp $
  */
 
 /*
@@ -849,6 +849,11 @@
 		res = bus_alloc_resource(cbdev, SYS_RES_MEMORY, &rid, 0,
 		    (dinfo->mprefetchable & dinfo->mbelow1mb)?0xFFFFF:~0UL,
 		    mem_psize, flags);
+		if (res == NULL) {
+			device_printf(cbdev,
+			    "Can't get memory for prefetch mem\n");
+			return (EIO);
+		}
 		start = rman_get_start(res);
 		end = rman_get_end(res);
 		DEVPRINTF((cbdev, "Prefetchable memory at %x-%x\n", start, end));
@@ -890,6 +895,11 @@
 		res = bus_alloc_resource(cbdev, SYS_RES_MEMORY, &rid, 0,
 		    ((~dinfo->mprefetchable) & dinfo->mbelow1mb)?0xFFFFF:~0UL,
 		    mem_nsize, flags);
+		if (res == NULL) {
+			device_printf(cbdev,
+			    "Can't get memory for non-prefetch mem\n");
+			return (EIO);
+		}
 		start = rman_get_start(res);
 		end = rman_get_end(res);
 		DEVPRINTF((cbdev, "Non-prefetchable memory at %x-%x\n",
@@ -930,6 +940,11 @@
 		rid = 0;
 		res = bus_alloc_resource(cbdev, SYS_RES_IOPORT, &rid, 0,
 		    (dinfo->ibelow1mb)?0xFFFFF:~0UL, io_size, flags);
+		if (res == NULL) {
+			device_printf(cbdev,
+			    "Can't get memory for IO ports\n");
+			return (EIO);
+		}
 		start = rman_get_start(res);
 		end = rman_get_end(res);
 		DEVPRINTF((cbdev, "IO port at %x-%x\n", start, end));
@@ -951,6 +966,10 @@
 	rid = 0;
 	res = bus_alloc_resource(cbdev, SYS_RES_IRQ, &rid, 0, ~0UL, 1,
 	    RF_SHAREABLE);
+	if (res == NULL) {
+		device_printf(cbdev, "Can't get memory for irq\n");
+		return (EIO);
+	}
 	start = rman_get_start(res);
 	end = rman_get_end(res);
 	bus_release_resource(cbdev, SYS_RES_IRQ, rid, res);

==== //depot/projects/smpng/sys/dev/ed/if_ed.c#12 (text+ko) ====

@@ -24,7 +24,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.216 2003/03/25 00:07:00 jake Exp $
+ * $FreeBSD: src/sys/dev/ed/if_ed.c,v 1.217 2003/04/05 18:12:36 cognet Exp $
  */
 
 /*
@@ -568,8 +568,8 @@
 
 	for (i = 0; i < memsize; ++i) {
 		if (sc->mem_start[i]) {
-			device_printf(dev, "failed to clear shared memory at %x - check configuration\n",
-				      kvtop(sc->mem_start + i));
+			device_printf(dev, "failed to clear shared memory at %jx - check configuration\n",
+				      (uintmax_t)kvtop(sc->mem_start + i));
 
 			/*
 			 * Disable 16 bit access to shared memory
@@ -903,8 +903,8 @@
 
 	for (i = 0; i < memsize; ++i)
 		if (sc->mem_start[i]) {
-			device_printf(dev, "failed to clear shared memory at %x - check configuration\n",
-				      kvtop(sc->mem_start + i));
+			device_printf(dev, "failed to clear shared memory at %jx - check configuration\n",
+				      (uintmax_t)kvtop(sc->mem_start + i));
 			return (ENXIO);
 		}
 	return (0);

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



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