Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Apr 2004 13:14:58 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 51374 for review
Message-ID:  <200404192014.i3JKEwvV019930@repoman.freebsd.org>

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

Change 51374 by jhb@jhb_slimer on 2004/04/19 13:14:53

	IFC @51372.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#33 integrate
.. //depot/projects/smpng/sys/alpha/include/sf_buf.h#2 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#17 integrate
.. //depot/projects/smpng/sys/amd64/include/sf_buf.h#2 integrate
.. //depot/projects/smpng/sys/boot/i386/boot0/boot0ext.s#2 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#50 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#13 integrate
.. //depot/projects/smpng/sys/conf/NOTES#67 integrate
.. //depot/projects/smpng/sys/conf/options#74 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#21 integrate
.. //depot/projects/smpng/sys/dev/arl/if_arl.c#4 integrate
.. //depot/projects/smpng/sys/dev/arl/if_arlreg.h#4 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#13 integrate
.. //depot/projects/smpng/sys/dev/awi/awi.c#18 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#31 integrate
.. //depot/projects/smpng/sys/dev/ciss/cissreg.h#6 integrate
.. //depot/projects/smpng/sys/dev/ciss/cissvar.h#7 integrate
.. //depot/projects/smpng/sys/dev/puc/puc_pccard.c#5 integrate
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#24 integrate
.. //depot/projects/smpng/sys/dev/puc/pucvar.h#11 integrate
.. //depot/projects/smpng/sys/dev/random/nehemiah.c#2 integrate
.. //depot/projects/smpng/sys/dev/random/randomdev.c#22 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic.c#6 integrate
.. //depot/projects/smpng/sys/ia64/ia64/vm_machdep.c#40 integrate
.. //depot/projects/smpng/sys/ia64/include/sf_buf.h#2 integrate
.. //depot/projects/smpng/sys/isa/psm.c#24 integrate
.. //depot/projects/smpng/sys/kern/kern_intr.c#45 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#14 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf.c#28 integrate
.. //depot/projects/smpng/sys/modules/cam/Makefile#8 integrate
.. //depot/projects/smpng/sys/modules/netgraph/Makefile#12 integrate
.. //depot/projects/smpng/sys/modules/netgraph/hub/Makefile#1 branch
.. //depot/projects/smpng/sys/net/if.c#47 integrate
.. //depot/projects/smpng/sys/net/if_arp.h#5 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#46 integrate
.. //depot/projects/smpng/sys/net/if_fddisubr.c#19 integrate
.. //depot/projects/smpng/sys/net/if_iso88025subr.c#17 integrate
.. //depot/projects/smpng/sys/net/if_ppp.c#26 integrate
.. //depot/projects/smpng/sys/net/if_stf.c#25 integrate
.. //depot/projects/smpng/sys/net/if_var.h#24 integrate
.. //depot/projects/smpng/sys/net/radix.c#10 integrate
.. //depot/projects/smpng/sys/net/radix.h#7 integrate
.. //depot/projects/smpng/sys/net/route.c#20 integrate
.. //depot/projects/smpng/sys/net/route.h#17 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#32 integrate
.. //depot/projects/smpng/sys/netgraph/ng_eiface.c#9 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#14 integrate
.. //depot/projects/smpng/sys/netgraph/ng_hub.c#1 branch
.. //depot/projects/smpng/sys/netgraph/ng_hub.h#1 branch
.. //depot/projects/smpng/sys/netinet/if_ether.c#25 integrate
.. //depot/projects/smpng/sys/netinet6/nd6.c#19 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#12 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_rtr.c#11 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipip.c#7 integrate
.. //depot/projects/smpng/sys/pci/if_sk.c#32 integrate
.. //depot/projects/smpng/sys/powerpc/include/sf_buf.h#2 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/vm_machdep.c#35 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#37 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/vm_machdep.c#33 (text+ko) ====

@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.102 2004/04/03 09:16:24 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.103 2004/04/18 06:24:51 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -101,21 +101,7 @@
 
 #include <sys/user.h>
 
-static void	sf_buf_init(void *arg);
-SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL)
-
 /*
- * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the
- * sf_freelist head with the sf_lock mutex.
- */
-static struct {
-	SLIST_HEAD(, sf_buf) sf_head;
-	struct mtx sf_lock;
-} sf_freelist;
-
-static u_int	sf_buf_alloc_want;
-
-/*
  * Finish a fork operation, with process p2 nearly set up.
  * Copy and update the pcb, set up the stack so that the child
  * ready to run and return to user mode.
@@ -384,69 +370,24 @@
 }
 
 /*
- * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-))
+ * Allocate an sf_buf for the given vm_page.  On this machine, however, there
+ * is no sf_buf object.  Instead, an opaque pointer to the given vm_page is
+ * returned.
  */
-static void
-sf_buf_init(void *arg)
-{
-	struct sf_buf *sf_bufs;
-	int i;
-
-	mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF);
-	SLIST_INIT(&sf_freelist.sf_head);
-	sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP,
-	    M_NOWAIT | M_ZERO);
-	for (i = 0; i < nsfbufs; i++)
-		SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list);
-	sf_buf_alloc_want = 0;
-}
-
-/*
- * Get an sf_buf from the freelist. Will block if none are available.
- */
 struct sf_buf *
 sf_buf_alloc(struct vm_page *m, int pri)
 {
-	struct sf_buf *sf;
-	int error;
 
-	mtx_lock(&sf_freelist.sf_lock);
-	while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) {
-		sf_buf_alloc_want++;
-		mbstat.sf_allocwait++;
-		error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM | pri,
-		    "sfbufa", 0);
-		sf_buf_alloc_want--;
-
-		/*
-		 * If we got a signal, don't risk going back to sleep. 
-		 */
-		if (error)
-			break;
-	}
-	if (sf != NULL) {
-		SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list);
-		sf->m = m;
-		nsfbufsused++;
-		nsfbufspeak = imax(nsfbufspeak, nsfbufsused);
-	}
-	mtx_unlock(&sf_freelist.sf_lock);
-	return (sf);
+	return ((struct sf_buf *)m);
 }
 
 /*
- * Release resources back to the system.
+ * Free the sf_buf.  In fact, do nothing because there are no resources
+ * associated with the sf_buf.
  */
 void
 sf_buf_free(struct sf_buf *sf)
 {
-
-	mtx_lock(&sf_freelist.sf_lock);
-	SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list);
-	nsfbufsused--;
-	if (sf_buf_alloc_want > 0)
-		wakeup_one(&sf_freelist);
-	mtx_unlock(&sf_freelist.sf_lock);
 }
 
 /*

==== //depot/projects/smpng/sys/alpha/include/sf_buf.h#2 (text+ko) ====

@@ -23,35 +23,36 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/alpha/include/sf_buf.h,v 1.1 2003/11/16 06:11:24 alc Exp $
+ * $FreeBSD: src/sys/alpha/include/sf_buf.h,v 1.2 2004/04/18 06:24:51 alc Exp $
  */
 
 #ifndef _MACHINE_SF_BUF_H_
 #define _MACHINE_SF_BUF_H_
 
-#include <sys/queue.h>
-
 #include <vm/vm.h>
 #include <vm/vm_param.h>
 #include <vm/vm_page.h>
 
-struct sf_buf {
-	SLIST_ENTRY(sf_buf) free_list;	/* list of free buffer slots */
-	vm_page_t m;			/* currently mapped page */
-};
+/*
+ * On this machine, the only purpose for which sf_buf is used is to implement
+ * an opaque pointer required by the machine-independent parts of the kernel.
+ * That pointer references the vm_page that is "mapped" by the sf_buf.  The
+ * actual mapping is provided by the direct virtual-to-physical mapping.  
+ */
+struct sf_buf;
 
 static __inline vm_offset_t
 sf_buf_kva(struct sf_buf *sf)
 {
 
-	return (ALPHA_PHYS_TO_K0SEG(sf->m->phys_addr));
+	return (ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS((vm_page_t)sf)));
 }
 
 static __inline vm_page_t
 sf_buf_page(struct sf_buf *sf)
 {
 
-	return (sf->m);
+	return ((vm_page_t)sf);
 }
 
 #endif /* !_MACHINE_SF_BUF_H_ */

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#17 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.233 2004/04/11 04:26:58 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.234 2004/04/18 05:36:37 alc Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -85,20 +85,7 @@
 static u_int	cpu_reset_proxyid;
 static volatile u_int	cpu_reset_proxy_active;
 #endif
-static void	sf_buf_init(void *arg);
-SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL)
-
-/*
- * Expanded sf_freelist head. Really an SLIST_HEAD() in disguise, with the
- * sf_freelist head with the sf_lock mutex.
- */
-static struct {
-	SLIST_HEAD(, sf_buf) sf_head;
-	struct mtx sf_lock;
-} sf_freelist;
 
-static u_int	sf_buf_alloc_want;
-
 /*
  * Finish a fork operation, with process p2 nearly set up.
  * Copy and update the pcb, set up the stack so that the child
@@ -439,69 +426,24 @@
 }
 
 /*
- * Allocate a pool of sf_bufs (sendfile(2) or "super-fast" if you prefer. :-))
- */
-static void
-sf_buf_init(void *arg)
-{
-	struct sf_buf *sf_bufs;
-	int i;
-
-	mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF);
-	SLIST_INIT(&sf_freelist.sf_head);
-	sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP,
-	    M_NOWAIT | M_ZERO);
-	for (i = 0; i < nsfbufs; i++)
-		SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list);
-	sf_buf_alloc_want = 0;
-}
-
-/*
- * Get an sf_buf from the freelist. Will block if none are available.
+ * Allocate an sf_buf for the given vm_page.  On this machine, however, there
+ * is no sf_buf object.  Instead, an opaque pointer to the given vm_page is
+ * returned.
  */
 struct sf_buf *
 sf_buf_alloc(struct vm_page *m, int pri)
 {
-	struct sf_buf *sf;
-	int error;
 
-	mtx_lock(&sf_freelist.sf_lock);
-	while ((sf = SLIST_FIRST(&sf_freelist.sf_head)) == NULL) {
-		sf_buf_alloc_want++;
-		mbstat.sf_allocwait++;
-		error = msleep(&sf_freelist, &sf_freelist.sf_lock, PVM | pri,
-		    "sfbufa", 0);
-		sf_buf_alloc_want--;
-
-		/*
-		 * If we got a signal, don't risk going back to sleep. 
-		 */
-		if (error)
-			break;
-	}
-	if (sf != NULL) {
-		SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list);
-		sf->m = m;
-		nsfbufsused++;
-		nsfbufspeak = imax(nsfbufspeak, nsfbufsused);
-	}
-	mtx_unlock(&sf_freelist.sf_lock);
-	return (sf);
+	return ((struct sf_buf *)m);
 }
 
 /*
- * Release resources back to the system.
+ * Free the sf_buf.  In fact, do nothing because there are no resources
+ * associated with the sf_buf.
  */
 void
 sf_buf_free(struct sf_buf *sf)
 {
-
-	mtx_lock(&sf_freelist.sf_lock);
-	SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list);
-	nsfbufsused--;
-	if (sf_buf_alloc_want > 0)
-		wakeup_one(&sf_freelist);
-	mtx_unlock(&sf_freelist.sf_lock);
 }
 
 /*

==== //depot/projects/smpng/sys/amd64/include/sf_buf.h#2 (text+ko) ====

@@ -23,35 +23,36 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/sf_buf.h,v 1.1 2003/11/16 06:11:25 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/sf_buf.h,v 1.2 2004/04/18 05:36:37 alc Exp $
  */
 
 #ifndef _MACHINE_SF_BUF_H_
 #define _MACHINE_SF_BUF_H_
 
-#include <sys/queue.h>
-
 #include <vm/vm.h>
 #include <vm/vm_param.h>
 #include <vm/vm_page.h>
 
-struct sf_buf {
-	SLIST_ENTRY(sf_buf) free_list;	/* list of free buffer slots */
-	vm_page_t m;			/* currently mapped page */
-};
+/*
+ * On this machine, the only purpose for which sf_buf is used is to implement
+ * an opaque pointer required by the machine-independent parts of the kernel.
+ * That pointer references the vm_page that is "mapped" by the sf_buf.  The
+ * actual mapping is provided by the direct virtual-to-physical mapping.  
+ */
+struct sf_buf;
 
 static __inline vm_offset_t
 sf_buf_kva(struct sf_buf *sf)
 {
 
-	return (PHYS_TO_DMAP(sf->m->phys_addr));
+	return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS((vm_page_t)sf)));
 }
 
 static __inline vm_page_t
 sf_buf_page(struct sf_buf *sf)
 {
 
-	return (sf->m);
+	return ((vm_page_t)sf);
 }
 
 #endif /* !_MACHINE_SF_BUF_H_ */

==== //depot/projects/smpng/sys/boot/i386/boot0/boot0ext.s#2 (text+ko) ====

@@ -13,7 +13,7 @@
 # purpose.
 #
 
-# $FreeBSD: src/sys/boot/i386/boot0/boot0ext.s,v 1.1 2004/03/26 18:46:31 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/boot0/boot0ext.s,v 1.2 2004/04/19 19:31:48 obrien Exp $
 
 # A 1024-byte boot manager.
 
@@ -34,6 +34,7 @@
 
 		.set KEY_ENTER,0x1c		# Enter key scan code
 		.set KEY_F1,0x3b		# F1 key scan code
+		.set KEY_1,0x02			# #1 key scan code
 
 #
 # Flag bits
@@ -45,7 +46,7 @@
 # Addresses in the sector of embedded data values.
 # Accessed with negative offsets from the end of the relocated sectors (%bp).
 #
-		.set _PRT_END,(FAKE-(ORIGIN+SECTOR_SIZE))
+		.set _PRT_END,(FAKE-(ORIGIN+SECTOR_SIZE*(NUM_SECTORS-1)))
 		.set _NXTDRV,-(_PRT_END+0x48)	# Next drive
 		.set _OPT,-(_PRT_END+0x47)	# Default option
 		.set _SETDRV,-(_PRT_END+0x46)	# Drive to force
@@ -86,6 +87,16 @@
 		stosw				#  them
 		incb -0xe(%di)			# Sector number 1
 #
+# Check what flags were loaded with us; specifically, use a predefined Drive.
+# If what the bios gives us is bad, use the '0' in the block instead, as well.
+#
+		testb $FL_SETDRV,LOAD+flags-start # Set number drive?
+		jnz boot.1			# Yes
+		testb %dl,%dl			# Drive number valid?
+		js boot.2			# Possibly (0x80 set)
+boot.1:		movb LOAD+setdrv-start,%dl	# Drive number to use
+boot.2:
+#
 # Reload all of boot0 (including the extra sectors) into memory at the
 # relocation address.  
 #
@@ -100,19 +111,10 @@
 #
 		jmp main+ORIGIN-LOAD		# To relocated code
 #
-# Check what flags were loaded with us; specifically, use a predefined Drive.
-# If what the bios gives us is bad, use the '0' in the block instead, as well.
-#
-main:		testb $FL_SETDRV,_FLAGS(%bp)	# Set number drive?
-		jnz main.1			# Yes
-		testb %dl,%dl			# Drive number valid?
-		js main.2			# Possibly (0x80 set)
-main.1: 	movb _SETDRV(%bp),%dl		# Drive number to use
-#
 # Whatever we decided to use, now store it into the fake
 # partition entry that lives in the data space above us.
 #
-main.2: 	movb %dl,_FAKE(%bp)		# Save drive number
+main:		movb %dl,_FAKE(%bp)		# Save drive number
 		callw putn			# To new line
 		pushw %dx			# Save drive number
 #
@@ -245,6 +247,9 @@
 #
 		subb $KEY_F1,%al		# Less F1 scan code
 		cmpb $0x4,%al			# F1..F5?
+		jna main.12			# Yes
+		subb $(KEY_1 - KEY_F1),%al	# Less #1 scan code
+		cmpb $0x4,%al			# #1..#5?
 		ja main.10			# No
 #
 # We have a selection.
@@ -263,7 +268,7 @@
 		movw $fake,%si			# Partition for write
 		movb (%si),%dl			# Drive number
 		movw %si,%bx			# Partition for read
-		cmpb $0x4,%al			# F5 pressed?
+		cmpb $0x4,%al			# F5/#5 pressed?
 		pushf				# Save
 		je main.13			# Yes
 		shlb $0x4,%al			# Point to
@@ -285,7 +290,7 @@
 # If going to next drive, replace drive with selected one.
 # Remember to un-ascii it. Hey 0x80 is already set, cool!
 #
-		jne main.15			# If not F5
+		jne main.15			# If not F5/#5
 		movb _NXTDRV(%bp),%dl		# Next drive
 		subb $'0',%dl			#  number
 # 
@@ -442,7 +447,7 @@
 #
 # These values indicate bootable types we know the names of
 #
-table1:		.byte 0x1, 0x4, 0x6, 0x7, 0xb, 0xc, 0xe, 0x63, 0x83
+table1:		.byte 0x1, 0x4, 0x6, 0x7, 0xb, 0xc, 0xe, 0x42, 0x63, 0x83
 		.byte 0x9f, 0xa5, 0xa6, 0xa9
 table1_end:
 #
@@ -453,10 +458,11 @@
 		.byte os_dos-.			# DOS
 		.byte os_dos-.			# DOS
 		.byte os_dos-.			# DOS
-		.byte os_nt-.			# NT or OS/2
+		.byte os_nt-.			# NT/XP or OS/2
+		.byte os_windows-.		# Windows 32-bit FAT
+		.byte os_windows-.		# Windows 32-bit FAT ext int 13
 		.byte os_windows-.		# Windows
-		.byte os_windows-.		# Windows
-		.byte os_windows-.		# Windows
+		.byte os_windows-.		# Windows 2000 dyn ext
 		.byte os_unix-. 		# UNIX
 		.byte os_linux-.		# Linux
 		.byte os_bsdos-.		# BSD/OS
@@ -469,7 +475,7 @@
 #
 os_misc:	.ascii "Unknow";	.byte 'n'|0x80
 os_dos: 	.ascii "DO";		.byte 'S'|0x80
-os_nt:		.ascii "Windows N";	.byte 'T'|0x80
+os_nt:		.ascii "Windows NT/X";	.byte 'P'|0x80
 os_windows: 	.ascii "Window";	.byte 's'|0x80
 os_unix:	.ascii "UNI";		.byte 'X'|0x80
 os_linux:	.ascii "Linu";		.byte 'x'|0x80

==== //depot/projects/smpng/sys/cam/scsi/scsi_da.c#50 (text+ko) ====

@@ -27,10 +27,9 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.164 2004/02/22 01:14:54 cperciva Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.167 2004/04/19 13:38:10 mux Exp $");
 
 #ifdef _KERNEL
-#include "opt_da.h"
 #include "opt_hw_wdog.h"
 #endif /* _KERNEL */
 
@@ -238,151 +237,55 @@
 		{T_DIRECT, SIP_MEDIA_FIXED, "COMPAQ", "RAID*", "*"},
 		/*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
-#ifdef DA_OLD_QUIRKS
-	/* USB floppy devices supported by umass(4) */
-	{
-		/*
-		 * This USB floppy drive uses the UFI command set. This
-		 * command set is a derivative of the ATAPI command set and
-		 * does not support READ_6 commands only READ_10. It also does
-		 * not support sync cache (0x35).
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Y-E DATA", "USB-FDU", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/* Another USB floppy */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "MATSHITA", "FDD CF-VFDU*","*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * The vendor, product and version strings coming from the
-		 * controller are null terminated instead of being padded with
-		 * spaces. The trailing wildcard character '*' is required.
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "SMSC*", "USB FDC*","*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * SmartDisk (Mitsumi) USB floppy drive
-		 * PR: kern/50226
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "MITSUMI", "USB FDD", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
 	/* USB mass storage devices supported by umass(4) */
 	{
 		/*
-		 * Sony Memory Stick adapter MSAC-US1 and
-		 * Sony PCG-C1VJ Internal Memory Stick Slot (MSC-U01).
-		 * Make all sony MS* products use this quirk.
+		 * EXATELECOM (Sigmatel) i-Bead 100/105 USB Flash MP3 Player
+		 * PR: kern/51675
 		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "MS*", "*"},
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD10*", "*"},
 		/*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
 	{
 		/*
-		 * Sony Memory Stick adapter for the CLIE series
-		 * of PalmOS PDA's
+		 * Power Quotient Int. (PQI) USB flash key
+		 * PR: kern/53067
 		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "CLIE*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Intelligent Stick USB disk-on-key
-		 * PR: kern/53005
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "USB Card",
-		 "IntelligentStick*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Sony DSC cameras (DSC-S30, DSC-S50, DSC-S70)
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Sony DSC", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Microtech USB CameraMate
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "eUSB    Compact*",
-		 "Compact Flash*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Olympus digital cameras (C-3040ZOOM, C-2040ZOOM, C-1)
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "C-*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Olympus digital cameras (E-100RS, E-10).
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "OLYMPUS", "E-*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * KingByte Pen Drives
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "NO BRAND", "PEN DRIVE", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic*", "USB Flash Disk*",
+		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	}, 
+ 	{
+ 		/*
+ 		 * Creative Nomad MUVO mp3 player (USB)
+ 		 * PR: kern/53094
+ 		 */
+ 		{T_DIRECT, SIP_MEDIA_REMOVABLE, "CREATIVE", "NOMAD_MUVO", "*"},
+ 		/*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT
  	},
 	{
 		/*
-		 * Minolta Dimage E203
+		 * Jungsoft NEXDISK USB flash key
+		 * PR: kern/54737
 		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "MINOLTA", "DiMAGE E203", "*"},
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "JUNGSOFT", "NEXDISK*", "*"},
 		/*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
 	{
 		/*
-		 * Daisy Technology PhotoClip on Zoran chip
-		 * PR: kern/43580
+		 * FreeDik USB Mini Data Drive
+		 * PR: kern/54786
 		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "ZORAN", "COACH", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "FreeDik*", "Mini Data Drive",
+		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
 	{
 		/*
-		 * Sony USB Key-Storage
-		 * PR: kern/46386
+		 * Sigmatel USB Flash MP3 Player
+		 * PR: kern/57046
 		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Sony", "Storage Media", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "SigmaTel", "MSCN", "*"},
+		/*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT
 	},
-#endif /* DA_OLD_QUIRKS */
-	{
-		/*
-		 * EXATELECOM (Sigmatel) i-Bead 100/105 USB Flash MP3 Player
-		 * PR: kern/51675
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "EXATEL", "i-BEAD10*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
-	{
-		/*
-		 * Jungsoft NEXDISK USB flash key
-		 * PR: kern/54737
-		 */
-		{T_DIRECT, SIP_MEDIA_REMOVABLE, "JUNGSOFT", "NEXDISK*", "*"},
-		/*quirks*/ DA_Q_NO_SYNC_CACHE
-	},
- 	{
- 		/*
- 		 * Creative Nomad MUVO mp3 player (USB)
- 		 * PR: kern/53094
- 		 */
- 		{T_DIRECT, SIP_MEDIA_REMOVABLE, "CREATIVE", "NOMAD_MUVO", "*"},
- 		/*quirks*/ DA_Q_NO_SYNC_CACHE|DA_Q_NO_PREVENT
- 	},
 };
 
 static	disk_strategy_t	dastrategy;

==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#13 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.35 2004/04/16 00:04:28 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.36 2004/04/18 18:38:59 wpaul Exp $");
 
 #include <sys/ctype.h>
 #include <sys/unistd.h>
@@ -1029,7 +1029,7 @@
 	__asm__ __volatile__ ("" : "=c" (lock));
 
 	while (atomic_cmpset_acq_int((volatile u_int *)lock, 0, 1) == 0)
-		/* do nothing */;
+		/* sit and spin */;
 
 	return;
 }
@@ -1041,7 +1041,7 @@
 
 	__asm__ __volatile__ ("" : "=c" (lock));
 
-	atomic_cmpset_rel_int((volatile u_int *)lock, 1, 0);
+	atomic_store_rel_int((volatile u_int *)lock, 0);
 
 	return;
 }

==== //depot/projects/smpng/sys/conf/NOTES#67 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1214 2004/04/12 02:36:51 imp Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1215 2004/04/19 03:33:54 njl Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -968,12 +968,6 @@
 options 	SCSI_NO_OP_STRINGS
 options 	SCSI_DELAY=8000	# Be pessimistic about Joe SCSI device
 
-# Options for the CAM SCSI disk driver:
-# DA_OLD_QUIRKS: Restore old USB and firewire quirks that have been
-#		 deprecated.  Please also email scsi@freebsd.org if you
-#		 have a device that needs this option.
-options 	DA_OLD_QUIRKS
-
 # Options for the CAM CDROM driver:
 # CHANGER_MIN_BUSY_SECONDS: Guaranteed minimum time quantum for a changer LUN
 # CHANGER_MAX_BUSY_SECONDS: Maximum time quantum per changer LUN, only

==== //depot/projects/smpng/sys/conf/options#74 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.440 2004/04/11 20:01:18 imp Exp $
+# $FreeBSD: src/sys/conf/options,v 1.441 2004/04/19 03:33:55 njl Exp $
 #
 #        On the handling of kernel options
 #
@@ -241,8 +241,6 @@
 CHANGER_MIN_BUSY_SECONDS	opt_cd.h
 CHANGER_MAX_BUSY_SECONDS	opt_cd.h
 
-DA_OLD_QUIRKS		opt_da.h
-
 # Options used only in cam/scsi/scsi_sa.c.
 SA_IO_TIMEOUT		opt_sa.h
 SA_SPACE_TIMEOUT	opt_sa.h

==== //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#21 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.41 2004/03/22 20:39:20 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pcib.c,v 1.42 2004/04/19 17:52:20 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -369,6 +369,11 @@
 		      AcpiFormatException(status));
 	goto out;
     }
+    /* XXX Figure out how this is happening when the append succeeds. */
+    if (crsbuf.Pointer == NULL) {
+	device_printf(pcib, "_CRS buf NULL after append?\n");
+	goto out;
+    }
     if (ACPI_FAILURE(status = AcpiSetCurrentResources(lnkdev, &crsbuf))) {
 	device_printf(pcib, "_SRS failed for interrupt %d via %s - %s\n",
 		      Interrupts[0], acpi_name(lnkdev),

==== //depot/projects/smpng/sys/dev/arl/if_arl.c#4 (text+ko) ====

@@ -3,7 +3,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/arl/if_arl.c,v 1.4 2004/04/15 20:31:07 luigi Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/arl/if_arl.c,v 1.5 2004/04/17 20:30:05 fjoe Exp $");
 
 #include "opt_inet.h"
 
@@ -69,6 +69,9 @@
  */
 #define ARL_CHECKREG(sc) (ar->registrationMode && ar->registrationStatus == 0)
 
+#define GET_ARL_PARAM(name) (arcfg.name = ar->name)
+#define SET_ARL_PARAM(name) (ar->name = arcfg.name)
+
 #ifndef BPF_MTAP
 #define BPF_MTAP(_ifp,_m)					\
 	do {							\
@@ -114,6 +117,13 @@
 
 devclass_t	arl_devclass;
 
+u_int8_t rate2media[4] = {
+	IFM_IEEE80211_DS354k,
+	IFM_IEEE80211_DS512k,
+	IFM_IEEE80211_DS1,
+	IFM_IEEE80211_DS2
+};
+
 /*
  * Copy config values to local cache
  */
@@ -194,13 +204,16 @@
 	ifmedia_init(&sc->arl_ifmedia, 0, arl_media_change, arl_media_status);
 #define ADD(s, o)	ifmedia_add(&sc->arl_ifmedia, \
 	IFM_MAKEWORD(IFM_IEEE80211, (s), (o), 0), 0, NULL)
+	ADD(IFM_IEEE80211_DS354k, 0);
+	ADD(IFM_IEEE80211_DS354k, IFM_IEEE80211_ADHOC);
+	ADD(IFM_IEEE80211_DS512k, 0);
+	ADD(IFM_IEEE80211_DS512k, IFM_IEEE80211_ADHOC);
 	ADD(IFM_IEEE80211_DS1, 0);
 	ADD(IFM_IEEE80211_DS1, IFM_IEEE80211_ADHOC);
 	ADD(IFM_IEEE80211_DS2, 0);
 	ADD(IFM_IEEE80211_DS2, IFM_IEEE80211_ADHOC);
 	ifmedia_set(&sc->arl_ifmedia, IFM_MAKEWORD(IFM_IEEE80211,
-		arcfg.spreadingCode == 4 ? IFM_IEEE80211_DS2 : IFM_IEEE80211_DS1
-		, 0, 0)); 
+		rate2media[arcfg.spreadingCode - 1], 0, 0));
 #undef ADD
 
 	/*
@@ -1152,16 +1165,19 @@
 	int i;
 	static int cache_slot = 0;
 	static int wrapindex = 0;
+	u_int8_t zero[6] = {0, 0, 0, 0, 0, 0};
+	u_char *mac;
 
 	if ((ntohs(eh->ether_type) != ETHERTYPE_IP)) {
 		return;
 	}
 
+	mac = (dir == ARLCACHE_RX ? eh->ether_shost : eh->ether_dhost);
+
 	for (i = 0; i < MAXARLCACHE; i++) {
-		if (!bcmp(dir == ARLCACHE_RX ? eh->ether_shost : eh->ether_dhost,
-				sc->arl_sigcache[i].macsrc, 6)) {
+		if (!bcmp(zero, sc->arl_sigcache[i].macsrc, 6) ||
+		    !bcmp(mac, sc->arl_sigcache[i].macsrc, 6))
 			break;
-		}
 	}
 
 	if (i < MAXARLCACHE)
@@ -1187,12 +1203,19 @@
 	struct arl_softc *sc = ifp->if_softc;
 	int otype = arcfg.registrationMode;
 	int orate = arcfg.spreadingCode;
+	int nrate, i;
+
+	nrate = IFM_SUBTYPE(sc->arl_ifmedia.ifm_cur->ifm_media);
+
+	for(i = 1; i <= 4; i++) {
+		if (rate2media[i - 1] == nrate)
+			break;
+	}
 
-	arcfg.spreadingCode = ieee80211_media2rate(
-		IFM_SUBTYPE(sc->arl_ifmedia.ifm_cur->ifm_media));
+	if (i == 5)
+		return (EINVAL);
 
-	if (arcfg.spreadingCode == 2)
-		arcfg.spreadingCode = 3;
+	arcfg.spreadingCode = i;
 
 	/* XXX Need fix for PSP mode */
 	if ((sc->arl_ifmedia.ifm_cur->ifm_media & IFM_IEEE80211_ADHOC) != 0)
@@ -1213,14 +1236,14 @@
 	struct ifmediareq	*imr;
 {
 	struct arl_softc	*sc = ifp->if_softc;
-	int rate = (arcfg.spreadingCode == 4 ?  4 : 2);
 
 	imr->ifm_active = IFM_IEEE80211;
 
 	if (arcfg.registrationMode == 0)
 		imr->ifm_active |= IFM_IEEE80211_ADHOC;
 
-	imr->ifm_active |= ieee80211_rate2media(NULL, rate, IEEE80211_T_DS);
+	imr->ifm_active |= IFM_MAKEWORD(IFM_IEEE80211,
+				rate2media[arcfg.spreadingCode - 1], 0, 0);
 	imr->ifm_status = IFM_AVALID;
 	if (!ARL_CHECKREG(sc))
 		imr->ifm_status |= IFM_ACTIVE;

==== //depot/projects/smpng/sys/dev/arl/if_arlreg.h#4 (text+ko) ====

@@ -1,6 +1,6 @@
 /*
  * $RISS: if_arl/dev/arl/if_arlreg.h,v 1.4 2004/03/16 04:43:27 count Exp $
- * $FreeBSD: src/sys/dev/arl/if_arlreg.h,v 1.3 2004/04/13 19:25:23 fjoe Exp $
+ * $FreeBSD: src/sys/dev/arl/if_arlreg.h,v 1.4 2004/04/17 20:30:05 fjoe Exp $
  */
 
 #ifndef _IF_ARLREG_H
@@ -299,9 +299,6 @@
 		} \
 	} while (0);
 
-#define GET_ARL_PARAM(name)	(arcfg.name = ar->name)
-#define SET_ARL_PARAM(name)	(ar->name = arcfg.name)
-
 #ifdef _KERNEL
 void	arl_release_resources	(device_t);
 int	arl_alloc_memory	(device_t, int, int);

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

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.32 2004/04/13 09:44:20 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.33 2004/04/19 18:29:43 sos Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -563,16 +563,16 @@
 	}
     }
 
+    if (bootverbose)
+	ata_printf(ch, -1, "reset tp1 mask=%02x ostat0=%02x ostat1=%02x\n",
+		   mask, ostat0, ostat1);
+
     /* if nothing showed up there is no need to get any further */
     /* SOS is that too strong?, we just might loose devices here XXX */
     ch->devices = 0;
     if (!mask)
 	return;
 
-    if (bootverbose)
-	ata_printf(ch, -1, "reset tp1 mask=%02x ostat0=%02x ostat1=%02x\n",
-		   mask, ostat0, ostat1);
-
     /* reset (both) devices on this channel */
     ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
     DELAY(10);

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

@@ -1,4 +1,4 @@
-/*	$NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $	*/
+/*	$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $	*/
 
 /*-
  * Copyright (c) 1999,2000,2001 The NetBSD Foundation, Inc.
@@ -86,10 +86,10 @@
 
 #include <sys/cdefs.h>
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.61 2004/01/15 13:29:05 onoe Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awi.c,v 1.62 2004/01/16 14:13:15 onoe Exp $");
 #endif
 #ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.31 2004/03/20 19:57:46 mdodd Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/awi/awi.c,v 1.32 2004/04/18 01:05:02 onoe Exp $");
 #endif
 
 #include "opt_inet.h"
@@ -1112,7 +1112,7 @@
 	}
 	sc->sc_mib_mac.aPromiscuous_Enable = 0;
 #ifdef __FreeBSD__
-	if (ifp->if_amcount != 0)
+	if (ifp->if_flags & IFF_ALLMULTI)
 		goto set_mib;

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



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