PERFORCE change 33852 for review

Marcel Moolenaar marcel at FreeBSD.org
Sun Jun 29 13:11:17 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=33852

Change 33852 by marcel at marcel_nfs on 2003/06/29 13:11:04

	IFC @33848

Affected files ...

.. //depot/projects/uart/alpha/alpha/support.s#2 integrate
.. //depot/projects/uart/ia64/ia64/pmap.c#2 integrate
.. //depot/projects/uart/pci/if_rl.c#2 integrate
.. //depot/projects/uart/sys/param.h#2 integrate

Differences ...

==== //depot/projects/uart/alpha/alpha/support.s#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/alpha/support.s,v 1.13 2003/04/04 17:29:54 des Exp $
+ * $FreeBSD: src/sys/alpha/alpha/support.s,v 1.14 2003/06/29 17:14:42 marcel Exp $
  */
 
 /*
@@ -84,7 +84,27 @@
 	mov	zero, v0
 	RET
 	END(suword)
-	
+
+	LEAF(suword32, 2)
+	LDGP(pv)
+
+	ldiq	t0, VM_MAXUSER_ADDRESS /* verify address validity */
+	cmpult	a0, t0, t1
+	beq	t1, fusufault
+
+	lda	t0, fusufault		/* trap faults */
+	ldq	t2, PC_CURTHREAD(pcpup)
+	ldq	t2, TD_PCB(t2)
+	stq	t0, PCB_ONFAULT(t2)
+
+	stl	a1, 0(a0)		/* try the store */
+
+	stq	zero, PCB_ONFAULT(t2)	/* clean up */
+
+	mov	zero, v0
+	RET
+	END(suword32)
+
 	LEAF(subyte, 1)
 	LDGP(pv)
 
@@ -130,6 +150,25 @@
 	RET
 	END(fuword)
 
+	LEAF(fuword32, 1)
+	LDGP(pv)
+
+	ldiq	t0, VM_MAXUSER_ADDRESS /* verify address validity */
+	cmpult	a0, t0, t1
+	beq	t1, fusufault
+
+	lda	t0, fusufault		/* trap faults */
+	ldq	t2, PC_CURTHREAD(pcpup)
+	ldq	t2, TD_PCB(t2)
+	stq	t0, PCB_ONFAULT(t2)
+
+	ldl	v0, 0(a0)		/* get the word containing our byte */
+
+	stq	zero, PCB_ONFAULT(t2)	/* clean up */
+
+	RET
+	END(fuword32)
+
 	LEAF(fubyte, 1)
 	LDGP(pv)
 

==== //depot/projects/uart/ia64/ia64/pmap.c#2 (text+ko) ====

@@ -43,7 +43,7 @@
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
  *	from:	i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp
  *		with some ideas from NetBSD's alpha pmap
- * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.111 2003/06/18 02:57:38 alc Exp $
+ * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.112 2003/06/29 06:10:32 alc Exp $
  */
 
 /*
@@ -1762,7 +1762,6 @@
 		    vm_object_t object, vm_pindex_t pindex,
 		    vm_size_t size, int limit)
 {
-	pmap_t oldpmap;
 	vm_offset_t tmpidx;
 	int psize;
 	vm_page_t p;
@@ -1770,21 +1769,18 @@
 
 	if (pmap == NULL || object == NULL)
 		return;
-
-	oldpmap = pmap_install(pmap);
-
+	VM_OBJECT_LOCK(object);
 	psize = ia64_btop(size);
 
 	if ((object->type != OBJT_VNODE) ||
 		((limit & MAP_PREFAULT_PARTIAL) && (psize > MAX_INIT_PT) &&
 			(object->resident_page_count > MAX_INIT_PT))) {
-		pmap_install(oldpmap);
-		return;
+		goto unlock_return;
 	}
 
 	if (psize + pindex > object->size) {
 		if (object->size < pindex)
-			return;
+			goto unlock_return;
 		psize = object->size - pindex;
 	}
 
@@ -1823,8 +1819,10 @@
 					vm_page_deactivate(p);
 				vm_page_busy(p);
 				vm_page_unlock_queues();
+				VM_OBJECT_UNLOCK(object);
 				pmap_enter_quick(pmap,
 						 addr + ia64_ptob(tmpidx), p);
+				VM_OBJECT_LOCK(object);
 				vm_page_lock_queues();
 				vm_page_wakeup(p);
 			}
@@ -1855,16 +1853,18 @@
 					vm_page_deactivate(p);
 				vm_page_busy(p);
 				vm_page_unlock_queues();
+				VM_OBJECT_UNLOCK(object);
 				pmap_enter_quick(pmap,
 						 addr + ia64_ptob(tmpidx), p);
+				VM_OBJECT_LOCK(object);
 				vm_page_lock_queues();
 				vm_page_wakeup(p);
 			}
 			vm_page_unlock_queues();
 		}
 	}
-	pmap_install(oldpmap);
-	return;
+unlock_return:
+	VM_OBJECT_UNLOCK(object);
 }
 
 /*

==== //depot/projects/uart/pci/if_rl.c#2 (text+ko) ====

@@ -82,7 +82,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.100 2003/06/11 06:24:36 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.101 2003/06/29 17:33:33 wpaul Exp $");
 
 #include <sys/param.h>
 #include <sys/endian.h>
@@ -133,7 +133,7 @@
 
 #include <pci/if_rlreg.h>
 
-__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.100 2003/06/11 06:24:36 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.101 2003/06/29 17:33:33 wpaul Exp $");
 
 /*
  * Various supported device vendors/types and their names.
@@ -1597,7 +1597,6 @@
 	struct rl_softc		*sc = xsc;
 	struct ifnet		*ifp = &sc->arpcom.ac_if;
 	struct mii_data		*mii;
-	int			i;
 	u_int32_t		rxcfg = 0;
 
 	RL_LOCK(sc);
@@ -1608,10 +1607,15 @@
 	 */
 	rl_stop(sc);
 
-	/* Init our MAC address */
-	for (i = 0; i < ETHER_ADDR_LEN; i++) {
-		CSR_WRITE_1(sc, RL_IDR0 + i, sc->arpcom.ac_enaddr[i]);
-	}
+	/*
+	 * Init our MAC address.  Even though the chipset
+	 * documentation doesn't mention it, we need to enter "Config
+	 * register write enable" mode to modify the ID registers.
+	 */
+	CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_WRITECFG);
+	CSR_WRITE_4(sc, RL_IDR0, *(u_int32_t *)(&sc->arpcom.ac_enaddr[0]));
+	CSR_WRITE_4(sc, RL_IDR4, *(u_int32_t *)(&sc->arpcom.ac_enaddr[4]));
+	CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF);
 
 	/* Init the RX buffer pointer register. */
 	bus_dmamap_load(sc->rl_tag, sc->rl_cdata.rl_rx_dmamap,

==== //depot/projects/uart/sys/param.h#2 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)param.h	8.3 (Berkeley) 4/4/95
- * $FreeBSD: src/sys/sys/param.h,v 1.160 2003/06/12 04:44:15 imp Exp $
+ * $FreeBSD: src/sys/sys/param.h,v 1.161 2003/06/29 15:51:38 jdp Exp $
  */
 
 #ifndef _SYS_PARAM_H_
@@ -57,7 +57,7 @@
  * scheme is:  <major><two digit minor><0 if release branch, otherwise 1>xx
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 501100	/* Master, propagated to newvers */
+#define __FreeBSD_version 501101	/* Master, propagated to newvers */
 
 #ifndef NULL
 #define	NULL	0


More information about the p4-projects mailing list