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