PERFORCE change 33873 for review

Marcel Moolenaar marcel at FreeBSD.org
Sun Jun 29 21:53:01 PDT 2003


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

Change 33873 by marcel at marcel_nfs on 2003/06/29 21:52:36

	IFC @33872

Affected files ...

.. //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#5 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_detach.c#4 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_exit.c#7 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_gc.c#7 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_join.c#7 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_kern.c#8 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#9 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_private.h#8 integrate
.. //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#5 integrate
.. //depot/projects/ia64/rescue/rescue/Makefile#2 integrate
.. //depot/projects/ia64/share/man/man4/urio.4#3 integrate
.. //depot/projects/ia64/sys/alpha/alpha/pmap.c#33 integrate
.. //depot/projects/ia64/sys/amd64/amd64/pmap.c#8 integrate
.. //depot/projects/ia64/sys/boot/common/loader.8#18 integrate
.. //depot/projects/ia64/sys/boot/i386/kgzldr/Makefile#9 integrate
.. //depot/projects/ia64/sys/boot/pc98/kgzldr/Makefile#8 integrate
.. //depot/projects/ia64/sys/dev/wi/if_wi.c#41 integrate
.. //depot/projects/ia64/sys/i386/i386/pmap.c#46 integrate
.. //depot/projects/ia64/sys/ia64/ia64/pmap.c#69 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211.c#3 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_ioctl.c#3 integrate
.. //depot/projects/ia64/sys/net80211/ieee80211_node.c#3 integrate
.. //depot/projects/ia64/sys/netipsec/ipsec.c#5 integrate
.. //depot/projects/ia64/sys/netipsec/key.c#6 integrate
.. //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#25 integrate
.. //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#39 integrate
.. //depot/projects/ia64/sys/vm/pmap.h#18 integrate
.. //depot/projects/ia64/sys/vm/vm_map.c#57 integrate
.. //depot/projects/ia64/sys/vm/vm_map.h#23 integrate
.. //depot/projects/ia64/sys/vm/vm_pageout.c#41 integrate
.. //depot/projects/ia64/usr.bin/whois/whois.c#10 integrate

Differences ...

==== //depot/projects/ia64/lib/libthr/thread/thr_cancel.c#5 (text+ko) ====

@@ -1,6 +1,6 @@
 /*
  * David Leonard <d at openbsd.org>, 1999. Public domain.
- * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.5 2003/05/25 08:48:11 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_cancel.c,v 1.6 2003/06/29 23:51:04 mtm Exp $
  */
 #include <sys/errno.h>
 #include <pthread.h>
@@ -80,12 +80,12 @@
 			 * Disconnect the thread from the joinee:
 			 */
 			if ((joined = pthread->join_status.thread) != NULL) {
-				if (_spintrylock(&joined->lock) == EBUSY) {
+				if (THR_TRYLOCK(&joined->lock) == EBUSY) {
 					_thread_critical_exit(pthread);
 					goto retry;
 				}
 				pthread->join_status.thread->joiner = NULL;
-				_spinunlock(&joined->lock);
+				THR_UNLOCK(&joined->lock);
 				joined = pthread->join_status.thread = NULL;
 			}
 			pthread->cancelflags |= PTHREAD_CANCELLING;

==== //depot/projects/ia64/lib/libthr/thread/thr_detach.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_detach.c,v 1.4 2003/06/02 11:01:00 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_detach.c,v 1.5 2003/06/29 23:51:04 mtm Exp $
  */
 #include <errno.h>
 #include <pthread.h>
@@ -44,10 +44,10 @@
 	if (pthread == NULL || pthread->magic != PTHREAD_MAGIC)
 		return (EINVAL);
 
-	_SPINLOCK(&pthread->lock);
+	THR_LOCK(&pthread->lock);
 
 	if (pthread->attr.flags & PTHREAD_DETACHED) {
-		_SPINUNLOCK(&pthread->lock);
+		THR_UNLOCK(&pthread->lock);
 		return (EINVAL);
 	}
 
@@ -73,7 +73,7 @@
 		_thread_critical_exit(joiner);
 	}
 
-	_SPINUNLOCK(&pthread->lock);
+	THR_UNLOCK(&pthread->lock);
 
 	return (0);
 }

==== //depot/projects/ia64/lib/libthr/thread/thr_exit.c#7 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.8 2003/05/29 20:46:53 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_exit.c,v 1.9 2003/06/29 23:51:04 mtm Exp $
  */
 #include <errno.h>
 #include <unistd.h>
@@ -146,7 +146,7 @@
 	/* Check if there is a thread joining this one: */
 	if (curthread->joiner != NULL) {
 		pthread = curthread->joiner;
-		_SPINLOCK(&pthread->lock);
+		THR_LOCK(&pthread->lock);
 		curthread->joiner = NULL;
 
 		/* Make the joining thread runnable: */
@@ -156,7 +156,7 @@
 		pthread->join_status.ret = curthread->ret;
 		pthread->join_status.error = 0;
 		pthread->join_status.thread = NULL;
-		_SPINUNLOCK(&pthread->lock);
+		THR_UNLOCK(&pthread->lock);
 
 		/* Make this thread collectable by the garbage collector. */
 		PTHREAD_ASSERT(((curthread->attr.flags & PTHREAD_DETACHED) ==

==== //depot/projects/ia64/lib/libthr/thread/thr_gc.c#7 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.6 2003/05/29 20:46:53 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_gc.c,v 1.7 2003/06/29 23:51:04 mtm Exp $
  *
  * Garbage collector thread. Frees memory allocated for dead threads.
  *
@@ -106,7 +106,7 @@
 			if (pthread == _thread_initial) 
 				continue;
 
-			_SPINLOCK(&pthread->lock);
+			THR_LOCK(&pthread->lock);
 
 			/*
 			 * Check if the stack was not specified by
@@ -128,7 +128,7 @@
 			 * it on the dead thread list.
 			 */
 			if ((pthread->attr.flags & PTHREAD_DETACHED) == 0) {
-				_SPINUNLOCK(&pthread->lock);
+				THR_UNLOCK(&pthread->lock);
 				continue;
 			}
 
@@ -141,7 +141,7 @@
 			 */
 			pthread_cln = pthread;
 
-			_SPINUNLOCK(&pthread->lock);
+			THR_UNLOCK(&pthread->lock);
 
 			/*
 		 	 * Retire the architecture specific id so it may be

==== //depot/projects/ia64/lib/libthr/thread/thr_join.c#7 (text+ko) ====

@@ -29,10 +29,11 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.8 2003/05/29 20:46:53 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_join.c,v 1.9 2003/06/29 23:51:04 mtm Exp $
  */
 #include <errno.h>
 #include <pthread.h>
+#include <stdlib.h>
 #include "thr_private.h"
 
 __weak_reference(_pthread_join, pthread_join);
@@ -69,7 +70,7 @@
 	THREAD_LIST_LOCK;
 	TAILQ_FOREACH(thread, &_thread_list, tle)
 		if (thread == pthread) {
-			_SPINLOCK(&pthread->lock);
+			THR_LOCK(&pthread->lock);
 			break;
 		}
 
@@ -79,7 +80,7 @@
 		 */
 		TAILQ_FOREACH(thread, &_dead_list, dle)
 			if (thread == pthread) {
-				_SPINLOCK(&pthread->lock);
+				THR_LOCK(&pthread->lock);
 				break;
 			}
 
@@ -87,7 +88,7 @@
 	if (thread == NULL ||
 	    ((pthread->attr.flags & PTHREAD_DETACHED) != 0)) {
 		if (thread != NULL)
-			_SPINUNLOCK(&pthread->lock);
+			THR_UNLOCK(&pthread->lock);
 		THREAD_LIST_UNLOCK;
 		DEAD_LIST_UNLOCK;
 		ret = ESRCH;
@@ -97,7 +98,7 @@
 	if (pthread->joiner != NULL) {
 		/* Multiple joiners are not supported. */
 		/* XXXTHR - support multiple joiners. */
-		_SPINUNLOCK(&pthread->lock);
+		THR_UNLOCK(&pthread->lock);
 		THREAD_LIST_UNLOCK;
 		DEAD_LIST_UNLOCK;
 		ret = ENOTSUP;
@@ -109,7 +110,7 @@
 	if (pthread->state != PS_DEAD) {
 		/* Set the running thread to be the joiner: */
 		pthread->joiner = curthread;
-		_SPINUNLOCK(&pthread->lock);
+		THR_UNLOCK(&pthread->lock);
 		_thread_critical_enter(curthread);
 
 		/* Keep track of which thread we're joining to: */
@@ -159,7 +160,7 @@
 
 		/* Make the thread collectable by the garbage collector. */
 		pthread->attr.flags |= PTHREAD_DETACHED;
-		_SPINUNLOCK(&pthread->lock);
+		THR_UNLOCK(&pthread->lock);
 		THREAD_LIST_UNLOCK;
 		if (pthread_cond_signal(&_gc_cond) != 0)
 			PANIC("Cannot signal gc cond");

==== //depot/projects/ia64/lib/libthr/thread/thr_kern.c#8 (text+ko) ====

@@ -23,7 +23,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/lib/libthr/thread/thr_kern.c,v 1.9 2003/06/29 15:55:44 jdp Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_kern.c,v 1.11 2003/06/29 23:51:04 mtm Exp $
  */
 
 #include <sys/cdefs.h>
@@ -55,6 +55,20 @@
 void
 _thread_critical_enter(pthread_t pthread)
 {
+	_thread_sigblock();
+	THR_LOCK(&pthread->lock);
+}
+
+void
+_thread_critical_exit(pthread_t pthread)
+{
+	THR_UNLOCK(&pthread->lock);
+	_thread_sigunblock();
+}
+
+void
+_thread_sigblock()
+{
 	sigset_t set;
 	sigset_t sav;
 
@@ -62,18 +76,13 @@
 	 * Block all signals.
 	 */
 	SIGFILLSET(set);
+	SIGADDSET(set, SIGTHR);
 
-	/*
-	 * We can not use the global 'restore' set until after we have
-	 * acquired the giant lock.
-	 */
-	_SPINLOCK(&pthread->lock);
-
-	/* If we are already in a critical section, just up the refcount */
-	if (++curthread->crit_ref > 1)
+	/* If we have already blocked signals, just up the refcount */
+	if (++curthread->signest > 1)
 		return;
-	PTHREAD_ASSERT(curthread->crit_ref == 1,
-	    ("Critical section reference count must be 1!"));
+	PTHREAD_ASSERT(curthread->signest == 1,
+	    ("Blocked signal nesting level must be 1!"));
 
 	if (__sys_sigprocmask(SIG_SETMASK, &set, &sav)) {
 		_thread_printf(STDERR_FILENO, "Critical Enter: sig err %d\n",
@@ -84,15 +93,15 @@
 }
 
 void
-_thread_critical_exit(pthread_t pthread)
+_thread_sigunblock()
 {
 	sigset_t set;
 
-	/* We might be in a nested critical section */
-	if (--curthread->crit_ref > 0)
+	/* We might be in a nested 'blocked signal' section */
+	if (--curthread->signest > 0)
 		return;
-	PTHREAD_ASSERT(curthread->crit_ref == 0,
-	    ("Non-Zero critical section reference count."));
+	PTHREAD_ASSERT(curthread->signest == 0,
+	    ("Non-Zero blocked signal nesting level."));
 
 	/*
 	 * Restore signals.
@@ -103,7 +112,6 @@
 		    errno);
 		abort();
 	}
-	_SPINUNLOCK(&pthread->lock);
 }
 
 void

==== //depot/projects/ia64/lib/libthr/thread/thr_mutex.c#9 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.11 2003/06/02 10:04:18 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.12 2003/06/29 23:51:04 mtm Exp $
  */
 #include <stdlib.h>
 #include <errno.h>
@@ -1263,9 +1263,9 @@
 	/* _thread_kern_sig_defer();*/
 
 	/* XXX - Necessary to obey lock order */
-	_SPINLOCK(&pthread->lock);
+	THR_LOCK(&pthread->lock);
 	mutex = pthread->data.mutex;
-	_SPINUNLOCK(&pthread->lock);
+	THR_UNLOCK(&pthread->lock);
 
 	_SPINLOCK(&mutex->lock);
 

==== //depot/projects/ia64/lib/libthr/thread/thr_private.h#8 (text+ko) ====

@@ -31,7 +31,7 @@
  *
  * Private thread definitions for the uthread kernel.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.17 2003/06/29 15:55:44 jdp Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_private.h,v 1.19 2003/06/29 23:49:41 mtm Exp $
  */
 
 #ifndef _THR_PRIVATE_H
@@ -81,6 +81,24 @@
 #define	curthread	_get_curthread()
 
 /*
+ * Locking macros
+ */
+#define	THR_LOCK(m)							\
+	do {								\
+		if (umtx_lock((m), curthread->thr_id) != 0)		\
+			abort();					\
+	} while (0)
+
+#define THR_TRYLOCK(m)		_umtxtrylock((m))
+
+#define	THR_UNLOCK(m)							\
+	do {								\
+		if (umtx_unlock((m), curthread->thr_id) != 0)		\
+			abort();					\
+	} while (0)
+
+
+/*
  * State change macro without scheduling queue change:
  */
 #define PTHREAD_SET_STATE(thrd, newstate) do {				\
@@ -426,12 +444,12 @@
 	u_int64_t		uniqueid; /* for gdb */
 	thr_id_t		thr_id;
 	sigset_t		savedsig;
-	int			crit_ref; /* crit. section netsting level */
+	int			signest; /* blocked signal netsting level */
 
 	/*
 	 * Lock for accesses to this thread structure.
 	 */
-	spinlock_t		lock;
+	struct umtx		lock;
 
 	/* Queue entry for list of all threads: */
 	TAILQ_ENTRY(pthread)	tle;
@@ -748,7 +766,6 @@
 int	_pthread_once(pthread_once_t *, void (*) (void));
 pthread_t _pthread_self(void);
 int	_pthread_setspecific(pthread_key_t, const void *);
-int	_spintrylock(spinlock_t *);
 void    _thread_exit(char *, int, char *);
 void    _thread_exit_cleanup(void);
 void    *_thread_cleanup(pthread_t);
@@ -766,6 +783,9 @@
 int	_thread_suspend(pthread_t thread, struct timespec *abstime);
 void	_thread_critical_enter(pthread_t);
 void	_thread_critical_exit(pthread_t);
+void	_thread_sigblock();
+void	_thread_sigunblock();
+int	_umtxtrylock(struct umtx *lck);
 
 /* #include <sys/aio.h> */
 #ifdef _SYS_AIO_H_

==== //depot/projects/ia64/lib/libthr/thread/thr_spinlock.c#5 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.5 2003/06/29 00:12:40 mtm Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_spinlock.c,v 1.6 2003/06/29 23:49:41 mtm Exp $
  *
  */
 
@@ -65,10 +65,10 @@
 }
 
 int
-_spintrylock(spinlock_t *lck)
+_umtxtrylock(struct umtx *lck)
 {
 	int error;
-	error = umtx_trylock((struct umtx *)lck, curthread->thr_id);
+	error = umtx_trylock(lck, curthread->thr_id);
 	if (error != 0 && error != EBUSY)
 		abort();
 	return (error);

==== //depot/projects/ia64/rescue/rescue/Makefile#2 (text+ko) ====

@@ -1,4 +1,4 @@
-#$FreeBSD: src/rescue/rescue/Makefile,v 1.1 2003/06/29 18:35:37 gordon Exp $
+#$FreeBSD: src/rescue/rescue/Makefile,v 1.2 2003/06/29 20:44:12 gordon Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/2/93
 
 PROG=	rescue
@@ -133,7 +133,7 @@
 CRUNCH_PROGS+= mca gpt
 .endif
 
-.if ${MACHINE_ARCH} == "sparc"
+.if ${MACHINE_ARCH} == "sparc64"
 .endif
 
 .if ${MACHINE_ARCH} == "alpha"

==== //depot/projects/ia64/share/man/man4/urio.4#3 (text+ko) ====

@@ -28,7 +28,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\"	$FreeBSD: src/share/man/man4/urio.4,v 1.8 2003/03/25 15:01:10 keramida Exp $
+.\"	$FreeBSD: src/share/man/man4/urio.4,v 1.9 2003/06/30 03:16:41 mph Exp $
 .\"
 .Dd March 5, 2000
 .Dt URIO 4
@@ -74,7 +74,7 @@
 utility (see the
 .Sx SEE ALSO
 section):
-.Dl rio_add_song /usr/local/MP3/TraceyChapman/02-Fast-Car.mp3
+.Dl rio_add_song /usr/local/MP3/TracyChapman/02-Fast-Car.mp3
 .Sh SEE ALSO
 .Xr ohci 4 ,
 .Xr uhci 4 ,

==== //depot/projects/ia64/sys/alpha/alpha/pmap.c#33 (text+ko) ====

@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.127 2003/06/28 21:21:04 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.128 2003/06/29 21:20:02 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -330,8 +330,6 @@
 static void	alpha_protection_init(void);
 static void	pmap_changebit(vm_page_t m, int bit, boolean_t setem);
 
-static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va,
-				      vm_page_t m, vm_page_t mpte);
 static int pmap_remove_pte(pmap_t pmap, pt_entry_t* ptq, vm_offset_t sva);
 static void pmap_remove_page(struct pmap *pmap, vm_offset_t va);
 static int pmap_remove_entry(struct pmap *pmap, vm_page_t m, vm_offset_t va);
@@ -1973,7 +1971,7 @@
  * but is *MUCH* faster than pmap_enter...
  */
 
-static vm_page_t
+vm_page_t
 pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte)
 {
 	register pt_entry_t *pte;

==== //depot/projects/ia64/sys/amd64/amd64/pmap.c#8 (text+ko) ====

@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
- * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.417 2003/06/26 01:04:31 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.418 2003/06/29 21:20:03 alc Exp $
  */
 /*-
  * Copyright (c) 2003 Networks Associates Technology, Inc.
@@ -208,8 +208,6 @@
 static void	amd64_protection_init(void);
 static __inline void	pmap_changebit(vm_page_t m, int bit, boolean_t setem);
 
-static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va,
-				      vm_page_t m, vm_page_t mpte);
 static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva);
 static void pmap_remove_page(struct pmap *pmap, vm_offset_t va);
 static int pmap_remove_entry(struct pmap *pmap, vm_page_t m,
@@ -1951,7 +1949,7 @@
  * but is *MUCH* faster than pmap_enter...
  */
 
-static vm_page_t
+vm_page_t
 pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte)
 {
 	pt_entry_t *pte;

==== //depot/projects/ia64/sys/boot/common/loader.8#18 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.56 2003/05/17 22:17:23 ru Exp $
+.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.57 2003/06/29 20:57:55 brueffer Exp $
 .\"
 .\" Note: The date here should be updated whenever a non-trivial
 .\" change is made to the manual page.
@@ -57,7 +57,7 @@
 The main drive behind these commands is user-friendliness.
 The bigger component is an
 .Tn ANS
-Forth compatible Forth interpreter based on ficl, by
+Forth compatible Forth interpreter based on FICL, by
 .An John Sadler .
 .Pp
 During initialization,

==== //depot/projects/ia64/sys/boot/i386/kgzldr/Makefile#9 (text+ko) ====

@@ -1,25 +1,19 @@
-# $FreeBSD: src/sys/boot/i386/kgzldr/Makefile,v 1.15 2003/06/07 17:42:26 obrien Exp $
+# $FreeBSD: src/sys/boot/i386/kgzldr/Makefile,v 1.16 2003/06/30 00:15:38 ru Exp $
 
-SRCS=	boot.c inflate.c lib.c
+SRCS=	start.s boot.c inflate.c lib.c crt.s sio.s
 OBJS=	${SRCS:N*.h:R:S/$/.o/g}
 CFLAGS=	-ffreestanding
 CFLAGS+=-Os
 CFLAGS+=-DKZIP
-LDFLAGS=-nostdlib -static -r
+LDFLAGS=-nostdlib -static -Wl,-r
 .PATH:	${.CURDIR}/../../../kern
 
-.for asm in start crt sio
-OBJS+=	${asm}.o
-${asm}.o: ${asm}.s
-	${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*${asm}*}
-.endfor
-
 CLEANFILES=kgzldr.o
 
 BOOT_COMCONSOLE_PORT?=	0x3f8
 AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT}
 
-all: ${OBJS} kgzldr.o
+all: kgzldr.o
 
 kgzldr.o: ${OBJS}
 	${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS}
@@ -28,4 +22,4 @@
 	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
 	    kgzldr.o ${DESTDIR}${LIBDIR}
 
-.include <bsd.lib.mk>
+.include <bsd.prog.mk>

==== //depot/projects/ia64/sys/boot/pc98/kgzldr/Makefile#8 (text+ko) ====

@@ -1,28 +1,22 @@
-# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.9 2003/06/07 17:42:26 obrien Exp $
+# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.10 2003/06/30 00:20:28 ru Exp $
 
-SRCS=	boot.c inflate.c lib.c
+SRCS=	start.s boot.c inflate.c lib.c crt.s sio.s
 OBJS=	${SRCS:N*.h:R:S/$/.o/g}
 CFLAGS=	-ffreestanding
 CFLAGS+=-Os
 CFLAGS+=-DKZIP
-LDFLAGS=-nostdlib -static -r
+LDFLAGS=-nostdlib -static -Wl,-r
 .PATH:	${.CURDIR}/../../../kern
 
 .PATH:	${.CURDIR}/../../i386/kgzldr
 AFLAGS+=--defsym PC98=1
 
-.for asm in start crt sio
-OBJS+=	${asm}.o
-${asm}.o: ${asm}.s
-	${AS} ${AFLAGS} -o ${.TARGET} ${.ALLSRC:M*${asm}*}
-.endfor
-
 CLEANFILES=kgzldr.o
 
 BOOT_COMCONSOLE_PORT?=	0x238
 AFLAGS+=--defsym SIO_PRT=${BOOT_COMCONSOLE_PORT}
 
-all: ${OBJS} kgzldr.o
+all: kgzldr.o
 
 kgzldr.o: ${OBJS}
 	${CC} ${LDFLAGS} -o ${.TARGET} ${OBJS}
@@ -31,4 +25,4 @@
 	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
 	    kgzldr.o ${DESTDIR}${LIBDIR}
 
-.include <bsd.lib.mk>
+.include <bsd.prog.mk>

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

@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.144 2003/06/28 06:17:26 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.145 2003/06/29 20:14:35 sam Exp $");
 
 #define WI_HERMES_AUTOINC_WAR	/* Work around data write autoinc bug. */
 #define WI_HERMES_STATS_WAR	/* Work around stats counter bug. */
@@ -347,6 +347,10 @@
 			ic->ic_channels[val].ic_flags != 0,
 			("wi_attach: invalid own channel %u!", val));
 		ic->ic_ibss_chan = &ic->ic_channels[val];
+	} else {
+		device_printf(dev,
+			"WI_RID_OWN_CHNL failed, using first channel!\n");
+		ic->ic_ibss_chan = &ic->ic_channels[0];
 	}
 
 	/*

==== //depot/projects/ia64/sys/i386/i386/pmap.c#46 (text+ko) ====

@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.413 2003/06/27 22:39:13 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.414 2003/06/29 21:20:03 alc Exp $");
 /*-
  * Copyright (c) 2003 Networks Associates Technology, Inc.
  * All rights reserved.
@@ -243,8 +243,6 @@
 static void	i386_protection_init(void);
 static __inline void	pmap_changebit(vm_page_t m, int bit, boolean_t setem);
 
-static vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va,
-				      vm_page_t m, vm_page_t mpte);
 static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t sva);
 static void pmap_remove_page(struct pmap *pmap, vm_offset_t va);
 static int pmap_remove_entry(struct pmap *pmap, vm_page_t m,
@@ -2090,7 +2088,7 @@
  * but is *MUCH* faster than pmap_enter...
  */
 
-static vm_page_t
+vm_page_t
 pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte)
 {
 	pt_entry_t *pte;

==== //depot/projects/ia64/sys/ia64/ia64/pmap.c#69 (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.112 2003/06/29 06:10:32 alc Exp $
+ * $FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.113 2003/06/29 21:20:03 alc Exp $
  */
 
 /*
@@ -267,7 +267,6 @@
 
 static pmap_t	pmap_install(pmap_t);
 static void	pmap_invalidate_all(pmap_t pmap);
-static void	pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m);
 
 vm_offset_t
 pmap_steal_memory(vm_size_t size)
@@ -1709,8 +1708,8 @@
  * but is *MUCH* faster than pmap_enter...
  */
 
-static void
-pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m)
+vm_page_t
+pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte)
 {
 	struct ia64_lpte *pte;
 	pmap_t oldpmap;
@@ -1719,7 +1718,7 @@
 
 	pte = pmap_find_pte(va);
 	if (pte->pte_p)
-		return;
+		goto reinstall;
 
 	/*
 	 * Enter on the PV list since its part of our managed memory.
@@ -1737,8 +1736,9 @@
 	pmap_set_pte(pte, va, VM_PAGE_TO_PHYS(m),
 		     PTE_IG_MANAGED,
 		     PTE_PL_USER, PTE_AR_R);
-
+reinstall:
 	pmap_install(oldpmap);
+	return (NULL);
 }
 
 /*
@@ -1821,7 +1821,8 @@
 				vm_page_unlock_queues();
 				VM_OBJECT_UNLOCK(object);
 				pmap_enter_quick(pmap,
-						 addr + ia64_ptob(tmpidx), p);
+						 addr + ia64_ptob(tmpidx), p,
+						 NULL);
 				VM_OBJECT_LOCK(object);
 				vm_page_lock_queues();
 				vm_page_wakeup(p);
@@ -1855,7 +1856,8 @@
 				vm_page_unlock_queues();
 				VM_OBJECT_UNLOCK(object);
 				pmap_enter_quick(pmap,
-						 addr + ia64_ptob(tmpidx), p);
+						 addr + ia64_ptob(tmpidx), p,
+						 NULL);
 				VM_OBJECT_LOCK(object);
 				vm_page_lock_queues();
 				vm_page_wakeup(p);
@@ -1951,7 +1953,7 @@
 			}
 			vm_page_busy(m);
 			vm_page_unlock_queues();
-			pmap_enter_quick(pmap, addr, m);
+			pmap_enter_quick(pmap, addr, m, NULL);
 			vm_page_lock_queues();
 			vm_page_wakeup(m);
 		}

==== //depot/projects/ia64/sys/net80211/ieee80211.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.3 2003/06/27 05:13:52 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211.c,v 1.4 2003/06/29 20:10:54 sam Exp $");
 
 /*
  * IEEE 802.11 generic handler
@@ -197,10 +197,13 @@
 		return c - ic->ic_channels;
 	else if (c == IEEE80211_CHAN_ANYC)
 		return IEEE80211_CHAN_ANY;
-	else {
+	else if (c != NULL) {
 		if_printf(&ic->ic_if, "invalid channel freq %u flags %x\n",
 			c->ic_freq, c->ic_flags);
 		return 0;		/* XXX */
+	} else {
+		if_printf(&ic->ic_if, "invalid channel (NULL)\n");
+		return 0;		/* XXX */
 	}
 }
 

==== //depot/projects/ia64/sys/net80211/ieee80211_ioctl.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.2 2003/06/27 05:13:52 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.3 2003/06/29 20:12:17 sam Exp $");
 
 /*
  * IEEE 802.11 ioctl support (FreeBSD-specific)
@@ -404,7 +404,7 @@
 		}
 		memset(ic->ic_des_essid, 0, sizeof(ic->ic_des_essid));
 		ic->ic_des_esslen = le16toh(wreq.wi_val[0]) * 2;
-		memcpy(ic->ic_des_essid, &wreq.wi_val[1], len);
+		memcpy(ic->ic_des_essid, &wreq.wi_val[1], ic->ic_des_esslen);
 		error = ENETRESET;
 		break;
 	case WI_RID_CURRENT_BSSID:

==== //depot/projects/ia64/sys/net80211/ieee80211_node.c#3 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.2 2003/06/27 05:13:52 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_node.c,v 1.3 2003/06/29 20:13:38 sam Exp $");
 
 #include "opt_inet.h"
 
@@ -87,7 +87,8 @@
 	ic->ic_node_free = ieee80211_node_free;
 	ic->ic_node_copy = ieee80211_node_copy;
 	ic->ic_bss = (*ic->ic_node_alloc)(ic);
-	/* XXX KASSERT != NULL? */
+	KASSERT(ic->ic_bss != NULL, ("unable to setup inital BSS node"));
+	ic->ic_bss->ni_chan = IEEE80211_CHAN_ANYC;
 }
 
 void

==== //depot/projects/ia64/sys/netipsec/ipsec.c#5 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netipsec/ipsec.c,v 1.4 2003/02/28 20:06:29 sam Exp $	*/
+/*	$FreeBSD: src/sys/netipsec/ipsec.c,v 1.5 2003/06/29 23:58:38 sam Exp $	*/
 /*	$KAME: ipsec.c,v 1.103 2001/05/24 07:14:18 sakane Exp $	*/
 
 /*
@@ -1922,6 +1922,8 @@
 {
 	struct xformsw *xsp;
 
+	if (sav->tdb_xform != NULL)	/* previously initialized */
+		return 0;
 	for (xsp = xforms; xsp; xsp = xsp->xf_next)
 		if (xsp->xf_type == xftype)
 			return (*xsp->xf_init)(sav, xsp);

==== //depot/projects/ia64/sys/netipsec/key.c#6 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netipsec/key.c,v 1.5 2003/02/19 05:47:36 imp Exp $	*/
+/*	$FreeBSD: src/sys/netipsec/key.c,v 1.6 2003/06/29 23:58:38 sam Exp $	*/
 /*	$KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $	*/
 
 /*
@@ -2751,13 +2751,24 @@
 	if (__LIST_CHAINED(sav))
 		LIST_REMOVE(sav, chain);
 
+	/*
+	 * Cleanup xform state.  Note that zeroize'ing causes the
+	 * keys to be cleared; otherwise we must do it ourself.
+	 */
+	if (sav->tdb_xform != NULL) {
+		sav->tdb_xform->xf_zeroize(sav);
+		sav->tdb_xform = NULL;
+	} else {
+		if (sav->key_auth != NULL)
+			bzero(_KEYBUF(sav->key_auth), _KEYLEN(sav->key_auth));
+		if (sav->key_enc != NULL)
+			bzero(_KEYBUF(sav->key_enc), _KEYLEN(sav->key_enc));
+	}
 	if (sav->key_auth != NULL) {
-		bzero(_KEYBUF(sav->key_auth), _KEYLEN(sav->key_auth));
 		KFREE(sav->key_auth);
 		sav->key_auth = NULL;
 	}
 	if (sav->key_enc != NULL) {
-		bzero(_KEYBUF(sav->key_enc), _KEYLEN(sav->key_enc));
 		KFREE(sav->key_enc);
 		sav->key_enc = NULL;
 	}

==== //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#25 (text+ko) ====

@@ -91,7 +91,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap.c,v 1.57 2003/06/14 23:23:54 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/powerpc/powerpc/pmap.c,v 1.58 2003/06/29 21:20:04 alc Exp $");
 
 /*
  * Manages physical address maps.
@@ -1032,6 +1032,14 @@
 	pmap_syncicache(VM_PAGE_TO_PHYS(m), PAGE_SIZE);
 }
 
+vm_page_t
+pmap_enter_quick(pmap_t pm, vm_offset_t va, vm_page_t m, vm_page_t mpte)
+{
+
+	pmap_enter(pm, va, m, VM_PROT_READ | VM_PROT_EXECUTE, FALSE);
+	return (NULL);
+}
+
 vm_offset_t
 pmap_extract(pmap_t pm, vm_offset_t va)
 {

==== //depot/projects/ia64/sys/sparc64/sparc64/pmap.c#39 (text+ko) ====

@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  *      from:   @(#)pmap.c      7.7 (Berkeley)  5/12/91
- * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.115 2003/06/18 17:03:04 jake Exp $
+ * $FreeBSD: src/sys/sparc64/sparc64/pmap.c,v 1.116 2003/06/29 21:20:04 alc Exp $
  */
 
 /*
@@ -1331,6 +1331,14 @@
 	}
 }
 
+vm_page_t
+pmap_enter_quick(pmap_t pm, vm_offset_t va, vm_page_t m, vm_page_t mpte)
+{
+
+	pmap_enter(pm, va, m, VM_PROT_READ | VM_PROT_EXECUTE, FALSE);
+	return (NULL);
+}
+
 void
 pmap_object_init_pt(pmap_t pm, vm_offset_t addr, vm_object_t object,
 		    vm_pindex_t pindex, vm_size_t size, int limit)

==== //depot/projects/ia64/sys/vm/pmap.h#18 (text+ko) ====

@@ -61,7 +61,7 @@
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
  *
- * $FreeBSD: src/sys/vm/pmap.h,v 1.59 2003/06/14 23:23:55 alc Exp $
+ * $FreeBSD: src/sys/vm/pmap.h,v 1.60 2003/06/29 21:20:04 alc Exp $
  */
 
 /*
@@ -103,6 +103,8 @@
 void		 pmap_copy_page(vm_page_t, vm_page_t);
 void		 pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t,
 		    boolean_t);
+vm_page_t	 pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m,
+		    vm_page_t mpte);
 vm_paddr_t	 pmap_extract(pmap_t pmap, vm_offset_t va);
 void		 pmap_growkernel(vm_offset_t);
 void		 pmap_init(vm_paddr_t, vm_paddr_t);
@@ -110,7 +112,7 @@
 boolean_t	 pmap_ts_referenced(vm_page_t m);
 vm_offset_t	 pmap_map(vm_offset_t *, vm_paddr_t, vm_paddr_t, int);
 void		 pmap_object_init_pt(pmap_t pmap, vm_offset_t addr,
-		    vm_object_t object, vm_pindex_t pindex, vm_offset_t size,
+		    vm_object_t object, vm_pindex_t pindex, vm_size_t size,
 		    int pagelimit);
 boolean_t	 pmap_page_exists_quick(pmap_t pmap, vm_page_t m);
 void		 pmap_page_protect(vm_page_t m, vm_prot_t prot);

==== //depot/projects/ia64/sys/vm/vm_map.c#57 (text+ko) ====

@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.300 2003/06/27 18:52:49 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_map.c,v 1.301 2003/06/29 23:32:55 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -911,11 +911,9 @@
 #endif
 

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


More information about the p4-projects mailing list