Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jun 2002 21:15:57 -0700 (PDT)
From:      Bosko Milekic <bmilekic@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 13228 for review
Message-ID:  <200206210415.g5L4Fvu57122@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=13228

Change 13228 by bmilekic@bmilekic_angela on 2002/06/20 21:15:00

	Catch up to -CURRENT... sigh; need to get textbox back up.

Affected files ...

... //depot/projects/interrupt/sys/alpha/alpha/support.s#3 integrate
... //depot/projects/interrupt/sys/alpha/include/runq.h#2 integrate
... //depot/projects/interrupt/sys/alpha/osf1/osf1_misc.c#5 integrate
... //depot/projects/interrupt/sys/boot/efi/libefi/bootinfo.c#2 integrate
... //depot/projects/interrupt/sys/boot/i386/libi386/bootinfo.c#2 integrate
... //depot/projects/interrupt/sys/boot/ia64/libski/bootinfo.c#2 integrate
... //depot/projects/interrupt/sys/boot/sparc64/loader/metadata.c#4 integrate
... //depot/projects/interrupt/sys/cam/scsi/scsi_sa.c#2 integrate
... //depot/projects/interrupt/sys/conf/files#8 integrate
... //depot/projects/interrupt/sys/conf/options#6 integrate
... //depot/projects/interrupt/sys/conf/options.i386#5 integrate
... //depot/projects/interrupt/sys/conf/options.ia64#3 integrate
... //depot/projects/interrupt/sys/conf/options.pc98#5 integrate
... //depot/projects/interrupt/sys/dev/ata/ata-dma.c#6 integrate
... //depot/projects/interrupt/sys/dev/ata/ata-pci.c#6 integrate
... //depot/projects/interrupt/sys/dev/ata/atapi-fd.c#5 integrate
... //depot/projects/interrupt/sys/dev/ata/atapi-fd.h#3 integrate
... //depot/projects/interrupt/sys/dev/em/if_em_fxhw.c#4 delete
... //depot/projects/interrupt/sys/dev/em/if_em_fxhw.h#4 delete
... //depot/projects/interrupt/sys/dev/em/if_em_phy.c#4 delete
... //depot/projects/interrupt/sys/dev/em/if_em_phy.h#4 delete
... //depot/projects/interrupt/sys/dev/sio/sio.c#4 integrate
... //depot/projects/interrupt/sys/dev/sio/sioreg.h#3 integrate
... //depot/projects/interrupt/sys/dev/wi/if_wi.c#8 integrate
... //depot/projects/interrupt/sys/dev/wi/if_wireg.h#5 integrate
... //depot/projects/interrupt/sys/dev/wi/if_wivar.h#2 integrate
... //depot/projects/interrupt/sys/gnu/i386/fpemul/load_store.c#2 integrate
... //depot/projects/interrupt/sys/gnu/i386/fpemul/reg_ld_str.c#2 integrate
... //depot/projects/interrupt/sys/i386/i386/math_emulate.c#3 integrate
... //depot/projects/interrupt/sys/i386/i386/support.s#5 integrate
... //depot/projects/interrupt/sys/i386/i386/vm86.c#3 integrate
... //depot/projects/interrupt/sys/i386/include/runq.h#2 integrate
... //depot/projects/interrupt/sys/ia64/ia32/imgact_ia32.c#2 integrate
... //depot/projects/interrupt/sys/ia64/ia64/pmap.c#6 integrate
... //depot/projects/interrupt/sys/ia64/ia64/support.s#3 integrate
... //depot/projects/interrupt/sys/ia64/ia64/trap.c#6 integrate
... //depot/projects/interrupt/sys/ia64/include/runq.h#2 integrate
... //depot/projects/interrupt/sys/kern/kern_exec.c#5 integrate
... //depot/projects/interrupt/sys/kern/kern_linker.c#6 integrate
... //depot/projects/interrupt/sys/kern/kern_prot.c#6 integrate
... //depot/projects/interrupt/sys/kern/kern_subr.c#4 integrate
... //depot/projects/interrupt/sys/kern/kern_switch.c#5 integrate
... //depot/projects/interrupt/sys/kern/sys_generic.c#5 integrate
... //depot/projects/interrupt/sys/kern/tty.c#6 integrate
... //depot/projects/interrupt/sys/kern/uipc_socket.c#5 integrate
... //depot/projects/interrupt/sys/kern/uipc_syscalls.c#5 integrate
... //depot/projects/interrupt/sys/kern/vfs_subr.c#7 integrate
... //depot/projects/interrupt/sys/kern/vfs_syscalls.c#7 integrate
... //depot/projects/interrupt/sys/modules/netgraph/device/Makefile#1 branch
... //depot/projects/interrupt/sys/netgraph/ng_device.c#1 branch
... //depot/projects/interrupt/sys/netgraph/ng_device.h#1 branch
... //depot/projects/interrupt/sys/netinet/if_ether.c#3 integrate
... //depot/projects/interrupt/sys/pc98/conf/GENERIC#4 integrate
... //depot/projects/interrupt/sys/pc98/pc98/fd.c#4 integrate
... //depot/projects/interrupt/sys/pc98/pc98/sio.c#6 integrate
... //depot/projects/interrupt/sys/powerpc/include/runq.h#2 integrate
... //depot/projects/interrupt/sys/powerpc/powerpc/copyinout.c#2 integrate
... //depot/projects/interrupt/sys/sparc64/include/runq.h#2 integrate
... //depot/projects/interrupt/sys/sparc64/sparc64/support.s#4 integrate
... //depot/projects/interrupt/sys/sys/_sigset.h#2 integrate
... //depot/projects/interrupt/sys/sys/disklabel.h#5 integrate
... //depot/projects/interrupt/sys/sys/malloc.h#5 integrate
... //depot/projects/interrupt/sys/sys/mbuf.h#4 integrate
... //depot/projects/interrupt/sys/sys/mount.h#5 integrate
... //depot/projects/interrupt/sys/sys/socket.h#5 integrate
... //depot/projects/interrupt/sys/sys/systm.h#7 integrate
... //depot/projects/interrupt/sys/sys/ucred.h#5 integrate
... //depot/projects/interrupt/sys/sys/uio.h#3 integrate
... //depot/projects/interrupt/sys/sys/un.h#3 integrate
... //depot/projects/interrupt/sys/ufs/ufs/ufs_readwrite.c#5 integrate
... //depot/projects/interrupt/sys/vm/uma.h#3 integrate
... //depot/projects/interrupt/sys/vm/uma_core.c#3 integrate
... //depot/projects/interrupt/sys/vm/vm_kern.c#5 integrate
... //depot/projects/interrupt/sys/vm/vm_map.c#7 integrate
... //depot/projects/interrupt/sys/vm/vm_object.c#5 integrate
... //depot/projects/interrupt/sys/vm/vm_unix.c#3 integrate

Differences ...

==== //depot/projects/interrupt/sys/alpha/alpha/support.s#3 (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/support.s,v 1.10 2002/05/26 16:03:12 dfr Exp $
+ * $FreeBSD: src/sys/alpha/alpha/support.s,v 1.12 2002/06/20 07:40:53 peter Exp $
  */
 
 /*
@@ -150,11 +150,6 @@
 	RET
 	END(fubyte)
 	
-	LEAF(suibyte, 2)
-	ldiq	v0, -1
-	RET
-	END(suibyte)
-
 	LEAF(fusufault, 0)
 	ldq	t0, PC_CURTHREAD(pcpup)
 	ldq	t0, TD_PCB(t0)
@@ -164,8 +159,8 @@
 	END(fusufault)
 	
 LEAF(fswintrberr, 0)
-XLEAF(fuswintr, 2)				/* XXX what is a 'word'? */
-XLEAF(suswintr, 2)				/* XXX what is a 'word'? */
+XLEAF(fuswintr, 2)			/* XXX 16 bit short for profiling */
+XLEAF(suswintr, 2)			/* XXX 16 bit short for profiling */
 	LDGP(pv)
 	ldiq	v0, -1
 	RET

==== //depot/projects/interrupt/sys/alpha/include/runq.h#2 (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/include/runq.h,v 1.1 2002/05/25 01:12:15 jake Exp $
+ * $FreeBSD: src/sys/alpha/include/runq.h,v 1.2 2002/06/20 06:21:19 peter Exp $
  */
 
 #ifndef	_MACHINE_RUNQ_H_
@@ -36,7 +36,7 @@
 #define	RQB_BIT(pri)	(1UL << ((pri) & (RQB_BPW - 1)))
 #define	RQB_WORD(pri)	((pri) >> RQB_L2BPW)
 
-#define	RQB_FFS(word)	(ffs64(word))
+#define	RQB_FFS(word)	(ffs64(word) - 1)
 
 /*
  * Type of run queue status word.

==== //depot/projects/interrupt/sys/alpha/osf1/osf1_misc.c#5 (text+ko) ====

@@ -29,7 +29,7 @@
 
 /*
  * Additional Copyright (c) 1999 by Andrew Gallatin
- * $FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.30 2002/04/13 23:11:22 jhb Exp $
+ * $FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.31 2002/06/19 06:39:25 alfred Exp $
  */
 
 
@@ -1056,17 +1056,20 @@
 	struct proc *p;
 	int error;
 	uid_t uid;
+	struct uidinfo *uip;
 	struct ucred *newcred, *oldcred;
 
 	p = td->td_proc;
 	uid = SCARG(uap, uid);
 	newcred = crget();
+	uip = uifind(uid);
 	PROC_LOCK(p);
 	oldcred = p->p_ucred;
 
 	if ((error = suser_cred(p->p_ucred, PRISON_ROOT)) != 0 &&
 	    uid != oldcred->cr_ruid && uid != oldcred->cr_svuid) {
 		PROC_UNLOCK(p);
+		uifree(uip);
 		crfree(newcred);
 		return (error);
 	}
@@ -1074,7 +1077,7 @@
 	crcopy(newcred, oldcred);
 	if (error == 0) {
 		if (uid != oldcred->cr_ruid) {
-			change_ruid(newcred, uid);
+			change_ruid(newcred, uip);
 			setsugid(p);
 		}
 		if (oldcred->cr_svuid != uid) {
@@ -1083,11 +1086,12 @@
 		}
 	}
 	if (newcred->cr_uid != uid) {
-		change_euid(newcred, uid);
+		change_euid(newcred, uip);
 		setsugid(p);
 	}
 	p->p_ucred = newcred;
 	PROC_UNLOCK(p);
+	uifree(uip);
 	crfree(oldcred);
 	return (0);
 }

==== //depot/projects/interrupt/sys/boot/efi/libefi/bootinfo.c#2 (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/efi/libefi/bootinfo.c,v 1.5 2001/11/19 07:09:47 peter Exp $
+ * $FreeBSD: src/sys/boot/efi/libefi/bootinfo.c,v 1.6 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -55,6 +55,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/interrupt/sys/boot/i386/libi386/bootinfo.c#2 (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/i386/libi386/bootinfo.c,v 1.32 2002/01/04 07:59:27 jhb Exp $
+ * $FreeBSD: src/sys/boot/i386/libi386/bootinfo.c,v 1.33 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -53,6 +53,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/interrupt/sys/boot/ia64/libski/bootinfo.c#2 (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/ia64/libski/bootinfo.c,v 1.5 2001/11/19 07:05:09 peter Exp $
+ * $FreeBSD: src/sys/boot/ia64/libski/bootinfo.c,v 1.6 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -54,6 +54,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/interrupt/sys/boot/sparc64/loader/metadata.c#4 (text+ko) ====

@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  *	from: FreeBSD: src/sys/boot/i386/libi386/bootinfo.c,v 1.29
- * $FreeBSD: src/sys/boot/sparc64/loader/metadata.c,v 1.5 2002/05/29 05:49:58 jake Exp $
+ * $FreeBSD: src/sys/boot/sparc64/loader/metadata.c,v 1.6 2002/06/20 06:29:42 peter Exp $
  */
 
 #include <stand.h>
@@ -61,6 +61,8 @@
     {"boot_gdb",	RB_GDB},
     {"boot_single",	RB_SINGLE},
     {"boot_verbose",	RB_VERBOSE},
+    {"boot_multicons",	RB_MULTIPLE},
+    {"boot_serial",	RB_SERIAL},
     {NULL,	0}
 };
 

==== //depot/projects/interrupt/sys/cam/scsi/scsi_sa.c#2 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.81 2001/09/14 19:00:51 mjacob Exp $
+ * $FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.82 2002/06/19 20:44:48 robert Exp $
  *
  * Implementation of SCSI Sequential Access Peripheral driver for CAM.
  *
@@ -2298,7 +2298,7 @@
 saerror(union ccb *ccb, u_int32_t cflgs, u_int32_t sflgs)
 {
 	static const char *toobig =
-	    "%d-byte tape record bigger than suplied buffer\n";
+	    "%d-byte tape record bigger than supplied buffer\n";
 	struct	cam_periph *periph;
 	struct	sa_softc *softc;
 	struct	ccb_scsiio *csio;

==== //depot/projects/interrupt/sys/conf/files#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.649 2002/06/17 05:40:40 jhay Exp $
+# $FreeBSD: src/sys/conf/files,v 1.650 2002/06/18 21:32:33 julian Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -1112,6 +1112,7 @@
 net/bpf_filter.c	optional netgraph_bpf
 netgraph/ng_bridge.c	optional netgraph_bridge
 netgraph/ng_cisco.c	optional netgraph_cisco
+netgraph/ng_device.c	optional netgraph_device
 netgraph/ng_echo.c	optional netgraph_echo
 netgraph/ng_ether.c	optional netgraph_ether
 netgraph/ng_frame_relay.c	optional netgraph_frame_relay

==== //depot/projects/interrupt/sys/conf/options#6 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.325 2002/06/13 22:41:23 rwatson Exp $
+# $FreeBSD: src/sys/conf/options,v 1.326 2002/06/18 21:30:36 n_hibma Exp $
 #
 #        On the handling of kernel options
 #
@@ -69,10 +69,12 @@
 COMPAT_SUNOS	opt_compat.h
 COMPILING_LINT	opt_global.h
 CY_PCI_FASTINTR
+CONSPEED	opt_comconsole.h
 DDB
 DDB_NOKLDSYM	opt_ddb.h
 DDB_UNATTENDED	opt_ddb.h
 GDB_REMOTE_CHAT	opt_ddb.h
+GDBSPEED	opt_ddb.h
 NODEVFS		opt_devfs.h
 HW_WDOG
 KTRACE

==== //depot/projects/interrupt/sys/conf/options.i386#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.i386,v 1.170 2002/05/16 21:23:40 trhodes Exp $
+# $FreeBSD: src/sys/conf/options.i386,v 1.171 2002/06/18 21:30:36 n_hibma Exp $
 # Options specific to the i386 platform kernels
 
 DISABLE_PSE
@@ -14,7 +14,6 @@
 POWERFAIL_NMI		opt_trap.h
 AUTO_EOI_1		opt_auto_eoi.h
 AUTO_EOI_2		opt_auto_eoi.h
-CONSPEED		opt_comconsole.h
 I586_PMC_GUPROF		opt_i586_guprof.h
 WLCACHE			opt_wavelan.h
 WLDEBUG			opt_wavelan.h

==== //depot/projects/interrupt/sys/conf/options.ia64#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.ia64,v 1.10 2002/04/14 04:33:41 peter Exp $
+# $FreeBSD: src/sys/conf/options.ia64,v 1.11 2002/06/18 21:30:37 n_hibma Exp $
 # Options specific to the ia64 platform kernels
 
 ITANIUM			opt_global.h
@@ -15,8 +15,6 @@
 SHOW_BUSYBUFS
 PANIC_REBOOT_WAIT_TIME	opt_panic.h
 
-CONSPEED		opt_comconsole.h
-
 MAXCONS			opt_syscons.h
 SC_ALT_MOUSE_IMAGE	opt_syscons.h
 SC_DEBUG_LEVEL		opt_syscons.h

==== //depot/projects/interrupt/sys/conf/options.pc98#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.pc98,v 1.145 2002/05/19 13:18:10 nyan Exp $
+# $FreeBSD: src/sys/conf/options.pc98,v 1.146 2002/06/18 21:30:37 n_hibma Exp $
 # Options specific to the pc98 platform kernels
 
 DISABLE_PSE
@@ -14,7 +14,6 @@
 POWERFAIL_NMI		opt_trap.h
 AUTO_EOI_1		opt_auto_eoi.h
 AUTO_EOI_2		opt_auto_eoi.h
-CONSPEED		opt_comconsole.h
 I586_PMC_GUPROF		opt_i586_guprof.h
 WLCACHE			opt_wavelan.h
 WLDEBUG			opt_wavelan.h

==== //depot/projects/interrupt/sys/dev/ata/ata-dma.c#6 (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.98 2002/04/26 22:48:20 mike Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.99 2002/06/19 12:26:20 sos Exp $
  */
 
 #include <sys/param.h>
@@ -1027,8 +1027,8 @@
 	}
 	break;
 
+    case 0x0d30105a:	/* Promise OEM ATA100 controllers */
     case 0x4d30105a:	/* Promise Ultra/FastTrak 100 controllers */
-    case 0x0d30105a:	/* Promise OEM ATA100 controllers */
 	if (!ATAPI_DEVICE(atadev) && udmamode >= 5 && 
 	    !(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
 	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
@@ -1044,6 +1044,7 @@
 	}
 	/* FALLTHROUGH */
 
+    case 0x0d38105a:	/* Promise FastTrak 66 controllers */
     case 0x4d38105a:	/* Promise Ultra/FastTrak 66 controllers */
 	if (!ATAPI_DEVICE(atadev) && udmamode >= 4 && 
 	    !(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
@@ -1398,9 +1399,10 @@
 	}
 	break;
 
+    case 0x0d38105a:  /* Promise Fasttrak 66 */
     case 0x4d38105a:  /* Promise Ultra/Fasttrak 66 */
+    case 0x0d30105a:  /* Promise OEM ATA 100 */
     case 0x4d30105a:  /* Promise Ultra/Fasttrak 100 */
-    case 0x0d30105a:  /* Promise OEM ATA 100 */
 	switch (mode) {
 	default:
 	case ATA_PIO0:	t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;

==== //depot/projects/interrupt/sys/dev/ata/ata-pci.c#6 (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.41 2002/04/16 08:30:51 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.42 2002/06/19 12:26:20 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -243,6 +243,7 @@
     case 0x4d33105a:
 	return "Promise ATA33 controller";
 
+    case 0x0d38105a:
     case 0x4d38105a:
 	return "Promise ATA66 controller";
 
@@ -404,9 +405,10 @@
 			 (pci_read_config(dev, 0x53, 1) & ~0x01) | 0x02, 1);
 	break;
 
-    case 0x4d38105a: /* Promise 66 & 100 (before TX2) need the clock changed */
+    case 0x0d30105a: /* Promise 66 & 100 (before TX2) need the clock changed */
     case 0x4d30105a:
-    case 0x0d30105a:
+    case 0x0d38105a:
+    case 0x4d38105a:
 	ATA_OUTB(controller->bmio, 0x11, ATA_INB(controller->bmio, 0x11)|0x0a);
 	/* FALLTHROUGH */
 
@@ -565,9 +567,10 @@
 	break;
 
     case 0x4d33105a:	/* Promise Ultra/Fasttrak 33 */
+    case 0x0d38105a:	/* Promise Fasttrak 66 */
     case 0x4d38105a:	/* Promise Ultra/Fasttrak 66 */
+    case 0x0d30105a:	/* Promise OEM ATA100 */
     case 0x4d30105a:	/* Promise Ultra/Fasttrak 100 */
-    case 0x0d30105a:	/* Promise OEM ATA100 */
 	if (!(ATA_INL(ch->r_bmio, (ch->unit ? 0x14 : 0x1c)) &
 	      (ch->unit ? 0x00004000 : 0x00000400)))
 	    return 1;

==== //depot/projects/interrupt/sys/dev/ata/atapi-fd.c#5 (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/atapi-fd.c,v 1.72 2002/05/25 11:18:02 bde Exp $
+ * $FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.73 2002/06/19 12:41:05 sos Exp $
  */
 
 #include <sys/param.h>
@@ -69,7 +69,6 @@
 /* prototypes */
 static int afd_sense(struct afd_softc *);
 static void afd_describe(struct afd_softc *);
-static int afd_partial_done(struct atapi_request *);
 static int afd_done(struct atapi_request *);
 static int afd_eject(struct afd_softc *, int);
 static int afd_start_stop(struct afd_softc *, int);
@@ -101,17 +100,20 @@
 	return 0;
     }
 
-    if (!strncmp(atadev->param->model, "IOMEGA ZIP", 10))
-	fdp->transfersize = 64;
-
     devstat_add_entry(&fdp->stats, "afd", fdp->lun, DEV_BSIZE,
 		      DEVSTAT_NO_ORDERED_TAGS,
 		      DEVSTAT_TYPE_DIRECT | DEVSTAT_TYPE_IF_IDE,
 		      DEVSTAT_PRIORITY_WFD);
     dev = disk_create(fdp->lun, &fdp->disk, 0, &afd_cdevsw, &afddisk_cdevsw);
     dev->si_drv1 = fdp;
-    dev->si_iosize_max = 252 * DEV_BSIZE;
     fdp->dev = dev;
+
+    if (!strncmp(atadev->param->model, "IOMEGA ZIP", 10) ||
+	!strncmp(atadev->param->model, "IOMEGA Clik!", 12))
+	fdp->dev->si_iosize_max = 64 * DEV_BSIZE;
+    else
+	fdp->dev->si_iosize_max = 252 * DEV_BSIZE;
+
     afd_describe(fdp);
     atadev->flags |= ATA_D_MEDIA_CHANGED;
     atadev->driver = fdp;
@@ -147,7 +149,6 @@
 
     /* The IOMEGA Clik! doesn't support reading the cap page, fake it */
     if (!strncmp(fdp->device->param->model, "IOMEGA Clik!", 12)) {
-	fdp->transfersize = 64;
 	fdp->cap.transfer_rate = 500;
 	fdp->cap.heads = 1;
 	fdp->cap.sectors = 2;
@@ -189,8 +190,6 @@
 		   fdp->cap.cylinders, fdp->cap.heads, fdp->cap.sectors,
 		   fdp->cap.sector_size);
 	ata_prtdev(fdp->device, "%dKB/s,", fdp->cap.transfer_rate / 8);
-	if (fdp->transfersize)
-	    printf(" transfer limit %d blks,", fdp->transfersize);
 	printf(" %s\n", ata_mode2str(fdp->device->mode));
 	if (fdp->cap.medium_type) {
 	    ata_prtdev(fdp->device, "Medium: ");
@@ -294,6 +293,13 @@
 	return;
     }
 
+    /* if it's a null transfer, return immediatly. */
+    if (bp->bio_bcount == 0) {
+	bp->bio_resid = 0;
+	biodone(bp);
+	return;
+    }
+
     s = splbio();
     bioqdisksort(&fdp->queue, bp);
     splx(s);
@@ -324,7 +330,7 @@
     lba = bp->bio_pblkno;
     count = bp->bio_bcount / fdp->cap.sector_size;
     data_ptr = bp->bio_data;
-    bp->bio_resid = 0; 
+    bp->bio_resid = bp->bio_bcount; 
 
     bzero(ccb, sizeof(ccb));
 
@@ -333,26 +339,6 @@
     else
 	ccb[0] = ATAPI_WRITE_BIG;
 
-    devstat_start_transaction(&fdp->stats);
-
-    while (fdp->transfersize && (count > fdp->transfersize)) {
-	ccb[2] = lba>>24;
-	ccb[3] = lba>>16;
-	ccb[4] = lba>>8;
-	ccb[5] = lba;
-	ccb[7] = fdp->transfersize>>8;
-	ccb[8] = fdp->transfersize;
-
-	atapi_queue_cmd(fdp->device, ccb, data_ptr, 
-			fdp->transfersize * fdp->cap.sector_size,
-			(bp->bio_cmd == BIO_READ) ? ATPR_F_READ : 0, 30,
-			afd_partial_done, bp);
-
-	count -= fdp->transfersize;
-	lba += fdp->transfersize;
-	data_ptr += fdp->transfersize * fdp->cap.sector_size;
-    }
-
     ccb[2] = lba>>24;
     ccb[3] = lba>>16;
     ccb[4] = lba>>8;
@@ -360,25 +346,14 @@
     ccb[7] = count>>8;
     ccb[8] = count;
 
+    devstat_start_transaction(&fdp->stats);
+
     atapi_queue_cmd(fdp->device, ccb, data_ptr, count * fdp->cap.sector_size,
 		    (bp->bio_cmd == BIO_READ) ? ATPR_F_READ : 0, 30,
 		    afd_done, bp);
 }
 
 static int 
-afd_partial_done(struct atapi_request *request)
-{
-    struct bio *bp = request->driver;
-
-    if (request->error) {
-	bp->bio_error = request->error;
-	bp->bio_flags |= BIO_ERROR;
-    }
-    bp->bio_resid += request->bytecount;
-    return 0;
-}
-
-static int 
 afd_done(struct atapi_request *request)
 {
     struct bio *bp = request->driver;
@@ -389,7 +364,7 @@
 	bp->bio_flags |= BIO_ERROR;
     }
     else
-	bp->bio_resid += (bp->bio_bcount - request->donecount);
+	bp->bio_resid = bp->bio_bcount - request->donecount;
     biofinish(bp, &fdp->stats, 0);
     return 0;
 }

==== //depot/projects/interrupt/sys/dev/ata/atapi-fd.h#3 (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/atapi-fd.h,v 1.16 2002/02/04 19:23:40 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/atapi-fd.h,v 1.17 2002/06/19 12:41:05 sos Exp $
  */
 
 /* ATAPI Rewriteable drive Capabilities and Mechanical Status Page */
@@ -71,7 +71,6 @@
 struct afd_softc {
     struct ata_device		*device;	/* device softc */
     int				lun;		/* logical device unit */
-    int				transfersize;	/* max size of each transfer */
     struct bio_queue_head	queue;		/* queue of i/o requests */
     struct afd_cappage		cap;		/* capabilities page info */
     struct disk			disk;		/* virtual drives */

==== //depot/projects/interrupt/sys/dev/sio/sio.c#4 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/sio/sio.c,v 1.374 2002/04/26 20:24:10 phk Exp $
+ * $FreeBSD: src/sys/dev/sio/sio.c,v 1.375 2002/06/18 21:30:37 n_hibma Exp $
  *	from: @(#)com.c	7.5 (Berkeley) 5/16/91
  *	from: i386/isa sio.c,v 1.234
  */
@@ -332,14 +332,12 @@
 static	volatile speed_t	comdefaultrate = CONSPEED;
 static	u_long			comdefaultrclk = DEFAULT_RCLK;
 SYSCTL_ULONG(_machdep, OID_AUTO, conrclk, CTLFLAG_RW, &comdefaultrclk, 0, "");
-#ifdef __alpha__
-static	volatile speed_t	gdbdefaultrate = CONSPEED;
-#endif
+static	speed_t			gdbdefaultrate = GDBSPEED;
+SYSCTL_UINT(_machdep, OID_AUTO, gdbspeed, CTLFLAG_RW,
+	    &gdbdefaultrate, GDBSPEED, "");
 static	u_int	com_events;	/* input chars + weighted output completions */
 static	Port_t	siocniobase;
-#ifndef __alpha__
-static	int	siocnunit;
-#endif
+static	int	siocnunit = -1;
 static	Port_t	siogdbiobase;
 static	int	siogdbunit = -1;
 static	void	*sio_slow_ih;
@@ -3126,13 +3124,17 @@
 	Port_t	iobase;
 	int	s;
 	struct siocnstate	sp;
+	speed_t	speed;
 
-	if (minor(dev) == siogdbunit)
+	if (minor(dev) == siocnunit) {
+		iobase = siocniobase;
+		speed = comdefaultrate;
+	} else {
 		iobase = siogdbiobase;
-	else
-		iobase = siocniobase;
+		speed = gdbdefaultrate;
+	}
 	s = spltty();
-	siocnopen(&sp, iobase, comdefaultrate);
+	siocnopen(&sp, iobase, speed);
 	if (inb(iobase + com_lsr) & LSR_RXRDY)
 		c = inb(iobase + com_data);
 	else
@@ -3151,13 +3153,17 @@
 	Port_t	iobase;
 	int	s;
 	struct siocnstate	sp;
+	speed_t	speed;
 
-	if (minor(dev) == siogdbunit)
+	if (minor(dev) == siocnunit) {
+		iobase = siocniobase;
+		speed = comdefaultrate;
+	} else {
 		iobase = siogdbiobase;
-	else
-		iobase = siocniobase;
+		speed = gdbdefaultrate;
+	}
 	s = spltty();
-	siocnopen(&sp, iobase, comdefaultrate);
+	siocnopen(&sp, iobase, speed);
 	while (!(inb(iobase + com_lsr) & LSR_RXRDY))
 		;
 	c = inb(iobase + com_data);
@@ -3175,18 +3181,22 @@
 	int	s;
 	struct siocnstate	sp;
 	Port_t	iobase;
+	speed_t	speed;
 
-	if (minor(dev) == siogdbunit)
+	if (minor(dev) == siocnunit) {
+		iobase = siocniobase;
+		speed = comdefaultrate;
+	} else {
 		iobase = siogdbiobase;
-	else
-		iobase = siocniobase;
+		speed = gdbdefaultrate;
+	}
 	s = spltty();
 	need_unlock = 0;
 	if (sio_inited == 2 && !mtx_owned(&sio_lock)) {
 		mtx_lock_spin(&sio_lock);
 		need_unlock = 1;
 	}
-	siocnopen(&sp, iobase, comdefaultrate);
+	siocnopen(&sp, iobase, speed);
 	siocntxwait(iobase);
 	outb(iobase + com_data, c);
 	siocnclose(&sp, iobase);
@@ -3201,12 +3211,20 @@
 {
 	int	c;
 	Port_t	iobase;
+	speed_t	speed;
 	int	s;
 	struct siocnstate	sp;
 
-	iobase = siogdbiobase;
+	if (minor(dev) == siocnunit) {
+		iobase = siocniobase;
+		speed = comdefaultrate;
+	} else {
+		iobase = siogdbiobase;
+		speed = gdbdefaultrate;
+	}
+
 	s = spltty();
-	siocnopen(&sp, iobase, gdbdefaultrate);
+	siocnopen(&sp, iobase, speed);
 	while (!(inb(iobase + com_lsr) & LSR_RXRDY))
 		;
 	c = inb(iobase + com_data);
@@ -3219,11 +3237,21 @@
 siogdbputc(c)
 	int	c;
 {
+	Port_t	iobase;
+	speed_t	speed;
 	int	s;
 	struct siocnstate	sp;
 
+	if (minor(dev) == siocnunit) {
+		iobase = siocniobase;
+		speed = comdefaultrate;
+	} else {
+		iobase = siogdbiobase;
+		speed = gdbdefaultrate;
+	}
+
 	s = spltty();
-	siocnopen(&sp, siogdbiobase, gdbdefaultrate);
+	siocnopen(&sp, iobase, speed);
 	siocntxwait(siogdbiobase);
 	outb(siogdbiobase + com_data, c);
 	siocnclose(&sp, siogdbiobase);

==== //depot/projects/interrupt/sys/dev/sio/sioreg.h#3 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)comreg.h	7.2 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.19 2002/01/31 08:23:30 nyan Exp $
+ * $FreeBSD: src/sys/dev/sio/sioreg.h,v 1.20 2002/06/18 21:30:37 n_hibma Exp $
  */
 
 /* Receiver clock frequency for "standard" pc serial ports. */
@@ -123,4 +123,9 @@
 #define CONSPEED 9600
 #endif
 
+/* default serial gdb speed if not set with sysctl or probed from boot */
+#ifndef GDBSPEED
+#define GDBSPEED CONSPEED
+#endif
+
 #define	IO_COMSIZE	8		/* 8250, 16x50 com controllers */

==== //depot/projects/interrupt/sys/dev/wi/if_wi.c#8 (text+ko) ====

@@ -103,7 +103,7 @@
 
 #if !defined(lint)
 static const char rcsid[] =
-  "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.105 2002/05/29 20:24:09 phk Exp $";
+  "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.106 2002/06/19 17:37:34 imp Exp $";
 #endif
 
 static void wi_intr(void *);
@@ -313,6 +313,39 @@
 	sc->wi_channel = gen.wi_val;
 
 	/*
+	 * Set flags based on firmware version.
+	 */
+	switch (sc->sc_firmware_type) {
+	case WI_LUCENT:
+		sc->wi_flags |= WI_FLAGS_HAS_ROAMING;
+		if (sc->sc_sta_firmware_ver >= 60000)
+			sc->wi_flags |= WI_FLAGS_HAS_MOR;
+		if (sc->sc_sta_firmware_ver >= 60006) {
+			sc->wi_flags |= WI_FLAGS_HAS_IBSS;
+			sc->wi_flags |= WI_FLAGS_HAS_CREATE_IBSS;
+		}
+		sc->wi_ibss_port = htole16(1);
+		break;
+	case WI_INTERSIL:
+		sc->wi_flags |= WI_FLAGS_HAS_ROAMING;
+		if (sc->sc_sta_firmware_ver >= 800) {
+			sc->wi_flags |= WI_FLAGS_HAS_IBSS;
+			sc->wi_flags |= WI_FLAGS_HAS_CREATE_IBSS;
+		}
+		sc->wi_ibss_port = htole16(0);
+		break;
+	case WI_SYMBOL:
+		sc->wi_flags |= WI_FLAGS_HAS_DIVERSITY;
+		if (sc->sc_sta_firmware_ver >= 20000)
+			sc->wi_flags |= WI_FLAGS_HAS_IBSS;
+		/* Older Symbol firmware does not support IBSS creation. */
+		if (sc->sc_sta_firmware_ver >= 25000)
+			sc->wi_flags |= WI_FLAGS_HAS_CREATE_IBSS;
+		sc->wi_ibss_port = htole16(4);
+		break;
+	}
+
+	/*
 	 * Find out if we support WEP on this card.
 	 */
 	gen.wi_type = WI_RID_WEP_AVAIL;
@@ -326,10 +359,13 @@
 	/* 
 	 * Find supported rates.
 	 */
-	gen.wi_type = WI_RID_TX_RATE;
+	gen.wi_type = WI_RID_DATA_RATES;
 	gen.wi_len = 2;
-	wi_read_record(sc, &gen);
-	sc->wi_supprates = gen.wi_val;
+	if (wi_read_record(sc, &gen))
+		sc->wi_supprates = WI_SUPPRATES_1M | WI_SUPPRATES_2M |
+		    WI_SUPPRATES_5M | WI_SUPPRATES_11M;
+	else
+		sc->wi_supprates = gen.wi_val;
 
 	bzero((char *)&sc->wi_stats, sizeof(sc->wi_stats));
 
@@ -337,36 +373,76 @@
 	wi_stop(sc);
 
 	ifmedia_init(&sc->ifmedia, 0, wi_media_change, wi_media_status);
-	/* XXX: Should read from card capabilities */
 #define ADD(m, c)       ifmedia_add(&sc->ifmedia, (m), (c), NULL)
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1,
-	    IFM_IEEE80211_ADHOC, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1, 0, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2,
-	    IFM_IEEE80211_ADHOC, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2, 0, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5,
-	    IFM_IEEE80211_ADHOC, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5, 0, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11,
-	    IFM_IEEE80211_ADHOC, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11, 0, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, 
-		IFM_IEEE80211_ADHOC, 0), 0);
-	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, 0, 0), 0);
-	if (sc->sc_firmware_type == WI_INTERSIL) {
+	if (sc->wi_supprates & WI_SUPPRATES_1M) {
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1, 0, 0), 0);
 		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1,
-		    IFM_IEEE80211_HOSTAP, 0), 0);
+		    IFM_IEEE80211_ADHOC, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1,
+			    IFM_IEEE80211_IBSS, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1,
+			    IFM_IEEE80211_IBSSMASTER, 0), 0);
+		if (sc->sc_firmware_type == WI_INTERSIL)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS1,
+			    IFM_IEEE80211_HOSTAP, 0), 0);
+	}
+	if (sc->wi_supprates & WI_SUPPRATES_2M) {
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2, 0, 0), 0);
 		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2,
-		    IFM_IEEE80211_HOSTAP, 0), 0);
+		    IFM_IEEE80211_ADHOC, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2,
+			    IFM_IEEE80211_IBSS, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2,
+			    IFM_IEEE80211_IBSSMASTER, 0), 0);
+		if (sc->sc_firmware_type == WI_INTERSIL)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS2,
+			    IFM_IEEE80211_HOSTAP, 0), 0);
+	}
+	if (sc->wi_supprates & WI_SUPPRATES_5M) {
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5, 0, 0), 0);
 		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5,
-		    IFM_IEEE80211_HOSTAP, 0), 0);
+		    IFM_IEEE80211_ADHOC, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5,
+			    IFM_IEEE80211_IBSS, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5,
+			    IFM_IEEE80211_IBSSMASTER, 0), 0);
+		if (sc->sc_firmware_type == WI_INTERSIL)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS5,
+			    IFM_IEEE80211_HOSTAP, 0), 0);
+	}
+	if (sc->wi_supprates & WI_SUPPRATES_11M) {
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11, 0, 0), 0);
 		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11,
+		    IFM_IEEE80211_ADHOC, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11,
+			    IFM_IEEE80211_IBSS, 0), 0);
+		if (sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11,
+			    IFM_IEEE80211_IBSSMASTER, 0), 0);
+		if (sc->sc_firmware_type == WI_INTERSIL)
+			ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_IEEE80211_DS11,
+			    IFM_IEEE80211_HOSTAP, 0), 0);
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_MANUAL, 0, 0), 0);
+	}
+	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, IFM_IEEE80211_ADHOC, 0), 0);
+	if (sc->wi_flags & WI_FLAGS_HAS_IBSS)
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, IFM_IEEE80211_IBSS,
+		    0), 0);
+	if (sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO,
+		    IFM_IEEE80211_IBSSMASTER, 0), 0);
+	if (sc->sc_firmware_type == WI_INTERSIL)
+		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO,
 		    IFM_IEEE80211_HOSTAP, 0), 0);
-		ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, 
-		    IFM_IEEE80211_HOSTAP, 0), 0);
-	}
-#undef	ADD
+	ADD(IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO, 0, 0), 0);
+#undef ADD
 	ifmedia_set(&sc->ifmedia, IFM_MAKEWORD(IFM_IEEE80211, IFM_AUTO,
 	    0, 0));
 
@@ -1065,7 +1141,15 @@
 	for (i = 0; i < ltv->wi_len - 1; i++)
 		ptr[i] = CSR_READ_2(sc, WI_DATA1);
 
-	if (sc->sc_firmware_type != WI_LUCENT) {
+	if (ltv->wi_type == WI_RID_PORTTYPE && sc->wi_ptype == WI_PORTTYPE_IBSS
+	    && ltv->wi_val == sc->wi_ibss_port) {
+		/*
+		 * Convert vendor IBSS port type to WI_PORTTYPE_IBSS.
+		 * Since Lucent uses port type 1 for BSS *and* IBSS we
+		 * have to rely on wi_ptype to distinguish this for us.
+		 */
+		ltv->wi_val = htole16(WI_PORTTYPE_IBSS);
+	} else if (sc->sc_firmware_type != WI_LUCENT) {

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




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