Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Nov 2005 20:17:05 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 86196 for review
Message-ID:  <200511012017.jA1KH5KZ084039@repoman.freebsd.org>

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

Change 86196 by jhb@jhb_slimer on 2005/11/01 20:16:37

	IFC @86194.

Affected files ...

.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#35 integrate
.. //depot/projects/smpng/sys/conf/files#156 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_hpet.c#1 branch
.. //depot/projects/smpng/sys/dev/acpica/acpivar.h#59 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#85 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#103 integrate
.. //depot/projects/smpng/sys/kern/kern_ktrace.c#46 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#62 integrate
.. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#10 integrate
.. //depot/projects/smpng/sys/netinet6/in6.c#30 integrate
.. //depot/projects/smpng/sys/pci/if_vr.c#42 integrate
.. //depot/projects/smpng/sys/pci/if_vrreg.h#11 integrate
.. //depot/projects/smpng/sys/sys/ktrace.h#11 integrate
.. //depot/projects/smpng/sys/sys/signal.h#20 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#66 integrate

Differences ...

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

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.79 2005/10/26 20:21:45 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.80 2005/11/01 09:24:35 wpaul Exp $");
 
 #include <sys/ctype.h>
 #include <sys/unistd.h>
@@ -285,7 +285,11 @@
 	if (wq_queues == NULL)
 		return(ENOMEM);
 
+#ifdef NTOSKRNL_MULTIPLE_DPCS
 	bzero((char *)kq_queues, sizeof(kdpc_queue) * mp_ncpus);
+#else
+	bzero((char *)kq_queues, sizeof(kdpc_queue));
+#endif
 	bzero((char *)wq_queues, sizeof(kdpc_queue) * WORKITEM_THREADS);
 
 	/*

==== //depot/projects/smpng/sys/conf/files#156 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1061 2005/10/28 15:58:17 joerg Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1062 2005/10/31 21:40:40 phk Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -410,6 +410,7 @@
 dev/acpica/acpi_cmbat.c		optional acpi
 dev/acpica/acpi_cpu.c		optional acpi
 dev/acpica/acpi_ec.c		optional acpi
+dev/acpica/acpi_hpet.c		optional acpi
 dev/acpica/acpi_isab.c		optional acpi isa
 dev/acpica/acpi_lid.c		optional acpi
 dev/acpica/acpi_package.c	optional acpi

==== //depot/projects/smpng/sys/dev/acpica/acpivar.h#59 (text+ko) ====

@@ -25,7 +25,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.96 2005/07/23 19:35:59 njl Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.97 2005/11/01 15:57:15 scottl Exp $
  */
 
 #ifndef _ACPIVAR_H_
@@ -154,6 +154,7 @@
 #define	ACPI_THERMAL		0x01000000
 #define	ACPI_TIMER		0x02000000
 #define	ACPI_OEM		0x04000000
+#define	ACPI_HPET		0x08000000
 
 /*
  * Constants for different interrupt models used with acpi_SetIntrModel().

==== //depot/projects/smpng/sys/kern/kern_descrip.c#85 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.282 2005/10/31 15:41:25 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.283 2005/11/01 17:13:05 jhb Exp $");
 
 #include "opt_compat.h"
 
@@ -1525,10 +1525,10 @@
 {
 	struct filedesc *fdp;
 	struct file **fpp;
-	int i;
+	int i, locked;
 	struct filedesc_to_leader *fdtol;
 	struct file *fp;
-	struct vnode *vp;
+	struct vnode *cdir, *jdir, *rdir, *vp;
 	struct flock lf;
 
 	/* Certain daemons might not have file descriptors. */
@@ -1559,13 +1559,14 @@
 				lf.l_len = 0;
 				lf.l_type = F_UNLCK;
 				vp = fp->f_vnode;
-				VFS_ASSERT_GIANT(vp->v_mount);
+				locked = VFS_LOCK_GIANT(vp->v_mount);
 				(void) VOP_ADVLOCK(vp,
 						   (caddr_t)td->td_proc->
 						   p_leader,
 						   F_UNLCK,
 						   &lf,
 						   F_POSIX);
+				VFS_UNLOCK_GIANT(locked);
 				FILEDESC_LOCK(fdp);
 				fdrop(fp, td);
 				fpp = fdp->fd_ofiles + i;
@@ -1635,17 +1636,29 @@
 
 	fdp->fd_nfiles = 0;
 
-	if (fdp->fd_cdir)
-		vrele(fdp->fd_cdir);
+	cdir = fdp->fd_cdir;
 	fdp->fd_cdir = NULL;
-	if (fdp->fd_rdir)
-		vrele(fdp->fd_rdir);
+	rdir = fdp->fd_rdir;
 	fdp->fd_rdir = NULL;
-	if (fdp->fd_jdir)
-		vrele(fdp->fd_jdir);
+	jdir = fdp->fd_jdir;
 	fdp->fd_jdir = NULL;
+	FILEDESC_UNLOCK(fdp);
 
-	FILEDESC_UNLOCK(fdp);
+	if (cdir) {
+		locked = VFS_LOCK_GIANT(cdir->v_mount);
+		vrele(cdir);
+		VFS_UNLOCK_GIANT(locked);
+	}
+	if (rdir) {
+		locked = VFS_LOCK_GIANT(rdir->v_mount);
+		vrele(rdir);
+		VFS_UNLOCK_GIANT(locked);
+	}
+	if (jdir) {
+		locked = VFS_LOCK_GIANT(jdir->v_mount);
+		vrele(jdir);
+		VFS_UNLOCK_GIANT(locked);
+	}
 
 	fddrop(fdp);
 }

==== //depot/projects/smpng/sys/kern/kern_exit.c#103 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_exit.c,v 1.269 2005/10/26 07:18:36 glebius Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_exit.c,v 1.270 2005/11/01 17:13:05 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_ktrace.h"
@@ -235,6 +235,7 @@
 	 */
 	mtx_lock(&Giant);	/* XXX: not sure if needed */
 	funsetownlst(&p->p_sigiolst);
+	mtx_unlock(&Giant);	
 
 	/*
 	 * If this process has an nlminfo data area (for lockd), release it
@@ -247,7 +248,6 @@
 	 * This may block!
 	 */
 	fdfree(td);
-	mtx_unlock(&Giant);	
 
 	/*
 	 * If this thread tickled GEOM, we need to wait for the giggling to

==== //depot/projects/smpng/sys/kern/kern_ktrace.c#46 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_ktrace.c,v 1.101 2005/06/24 12:05:24 pjd Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_ktrace.c,v 1.103 2005/11/01 14:46:37 rwatson Exp $");
 
 #include "opt_ktrace.h"
 #include "opt_mac.h"
@@ -64,6 +64,7 @@
 
 struct ktr_request {
 	struct	ktr_header ktr_header;
+	void	*ktr_buffer;
 	struct	ucred *ktr_cred;
 	struct	vnode *ktr_vp;
 	union {
@@ -236,8 +237,9 @@
 		mtx_unlock(&ktrace_mtx);
 		microtime(&req->ktr_header.ktr_time);
 		req->ktr_header.ktr_pid = p->p_pid;
+		req->ktr_header.ktr_tid = td->td_tid;
 		bcopy(p->p_comm, req->ktr_header.ktr_comm, MAXCOMLEN + 1);
-		req->ktr_header.ktr_buffer = NULL;
+		req->ktr_buffer = NULL;
 		req->ktr_header.ktr_len = 0;
 	} else {
 		p->p_traceflag |= KTRFAC_DROP;
@@ -272,8 +274,8 @@
 		vrele(req->ktr_vp);
 		mtx_unlock(&Giant);
 	}
-	if (req->ktr_header.ktr_buffer != NULL)
-		free(req->ktr_header.ktr_buffer, M_KTRACE);
+	if (req->ktr_buffer != NULL)
+		free(req->ktr_buffer, M_KTRACE);
 	mtx_lock(&ktrace_mtx);
 	STAILQ_INSERT_HEAD(&ktr_free, req, ktr_list);
 	mtx_unlock(&ktrace_mtx);
@@ -340,7 +342,7 @@
 	ktp->ktr_narg = narg;
 	if (buflen > 0) {
 		req->ktr_header.ktr_len = buflen;
-		req->ktr_header.ktr_buffer = buf;
+		req->ktr_buffer = buf;
 	}
 	ktr_submitrequest(req);
 }
@@ -387,7 +389,7 @@
 	}
 	if (namelen > 0) {
 		req->ktr_header.ktr_len = namelen;
-		req->ktr_header.ktr_buffer = buf;
+		req->ktr_buffer = buf;
 	}
 	ktr_submitrequest(req);
 }
@@ -436,7 +438,7 @@
 	ktg->ktr_fd = fd;
 	ktg->ktr_rw = rw;
 	req->ktr_header.ktr_len = datalen;
-	req->ktr_header.ktr_buffer = buf;
+	req->ktr_buffer = buf;
 	ktr_submitrequest(req);
 }
 
@@ -684,7 +686,7 @@
 		free(cp, M_KTRACE);
 		return (ENOMEM);
 	}
-	req->ktr_header.ktr_buffer = cp;
+	req->ktr_buffer = cp;
 	req->ktr_header.ktr_len = uap->len;
 	ktr_submitrequest(req);
 	return (0);
@@ -827,8 +829,8 @@
 		kth->ktr_len += datalen;
 	}
 	if (buflen != 0) {
-		KASSERT(kth->ktr_buffer != NULL, ("ktrace: nothing to write"));
-		aiov[auio.uio_iovcnt].iov_base = kth->ktr_buffer;
+		KASSERT(req->ktr_buffer != NULL, ("ktrace: nothing to write"));
+		aiov[auio.uio_iovcnt].iov_base = req->ktr_buffer;
 		aiov[auio.uio_iovcnt].iov_len = buflen;
 		auio.uio_resid += buflen;
 		auio.uio_iovcnt++;

==== //depot/projects/smpng/sys/kern/vfs_aio.c#62 (text+ko) ====

@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.199 2005/10/30 02:12:49 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_aio.c,v 1.200 2005/11/01 17:13:05 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -894,10 +894,8 @@
 	 * Get rid of our current filedescriptors.  AIOD's don't need any
 	 * filedescriptors, except as temporarily inherited from the client.
 	 */
-	mtx_lock(&Giant);
 	fdfree(td);
 
-	mtx_unlock(&Giant);
 	/* The daemon resides in its own pgrp. */
 	MALLOC(newpgrp, struct pgrp *, sizeof(struct pgrp), M_PGRP,
 		M_WAITOK | M_ZERO);

==== //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#10 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/modules/acpi/acpi/Makefile,v 1.13 2005/10/23 00:22:02 njl Exp $
+# $FreeBSD: src/sys/modules/acpi/acpi/Makefile,v 1.14 2005/10/31 21:40:40 phk Exp $
 
 .PATH: ${.CURDIR}/../../../contrib/dev/acpica \
        ${.CURDIR}/../../../pci \
@@ -42,7 +42,8 @@
 
 # ACPI hardware drivers, mostly used for mobile systems.
 SRCS+=	acpi_acad.c acpi_battery.c acpi_cmbat.c acpi_cpu.c
-SRCS+=	acpi_ec.c acpi_lid.c acpi_perf.c acpi_smbat.c acpi_throttle.c
+SRCS+=	acpi_ec.c acpi_hpet.c acpi_lid.c acpi_perf.c acpi_smbat.c
+SRCS+=	acpi_throttle.c
 
 # OSD layer
 SRCS+=	OsdDebug.c 

==== //depot/projects/smpng/sys/netinet6/in6.c#30 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/netinet6/in6.c,v 1.58 2005/10/22 05:07:16 suz Exp $	*/
+/*	$FreeBSD: src/sys/netinet6/in6.c,v 1.59 2005/10/31 23:06:04 suz Exp $	*/
 /*	$KAME: in6.c,v 1.259 2002/01/21 11:37:50 keiichi Exp $	*/
 
 /*-
@@ -641,6 +641,14 @@
 		 */
 		if ((error = in6_update_ifa(ifp, ifra, ia, 0)) != 0)
 			return (error);
+		if ((ia = in6ifa_ifpwithaddr(ifp, &ifra->ifra_addr.sin6_addr))
+		    == NULL) {
+		    	/*
+			 * this can happen when the user specify the 0 valid
+			 * lifetime.
+			 */
+			break;
+		}
 
 		/*
 		 * then, make the prefix on-link on the interface.
@@ -693,41 +701,33 @@
 				return (EINVAL); /* XXX panic here? */
 			}
 		}
-		if ((ia = in6ifa_ifpwithaddr(ifp, &ifra->ifra_addr.sin6_addr))
-		    == NULL) {
-		    	/* XXX: this should not happen! */
-			log(LOG_ERR, "in6_control: addition succeeded, but"
-			    " no ifaddr\n");
-		} else {
-			if ((ia->ia6_flags & IN6_IFF_AUTOCONF) != 0 &&
-			    ia->ia6_ndpr == NULL) { /* new autoconfed addr */
-				ia->ia6_ndpr = pr;
-				pr->ndpr_refcnt++;
 
-				/*
-				 * If this is the first autoconf address from
-				 * the prefix, create a temporary address
-				 * as well (when specified).
-				 */
-				if (ip6_use_tempaddr &&
-				    pr->ndpr_refcnt == 1) {
-					int e;
-					if ((e = in6_tmpifadd(ia, 1, 0)) != 0) {
-						log(LOG_NOTICE, "in6_control: "
-						    "failed to create a "
-						    "temporary address, "
-						    "errno=%d\n", e);
-					}
-				}
-			}
+		/* relate the address to the prefix */
+		if (ia->ia6_ndpr == NULL) {
+			ia->ia6_ndpr = pr;
+			pr->ndpr_refcnt++;
 
 			/*
-			 * this might affect the status of autoconfigured
-			 * addresses, that is, this address might make
-			 * other addresses detached.
+			 * If this is the first autoconf address from the
+			 * prefix, create a temporary address as well
+			 * (when required).
 			 */
-			pfxlist_onlink_check();
+			if ((ia->ia6_flags & IN6_IFF_AUTOCONF) &&
+			    ip6_use_tempaddr && pr->ndpr_refcnt == 1) {
+				int e;
+				if ((e = in6_tmpifadd(ia, 1, 0)) != 0) {
+					log(LOG_NOTICE, "in6_control: failed "
+					    "to create a temporary address, "
+					    "errno=%d\n", e);
+				}
+			}
 		}
+
+		/*
+		 * this might affect the status of autoconfigured addresses,
+		 * that is, this address might make other addresses detached.
+		 */
+		pfxlist_onlink_check();
 		if (error == 0 && ia)
 			EVENTHANDLER_INVOKE(ifaddr_event, ifp);
 		break;
@@ -735,8 +735,6 @@
 
 	case SIOCDIFADDR_IN6:
 	{
-		int i = 0;
-		struct nd_prefixctl pr0;
 		struct nd_prefix *pr;
 
 		/*
@@ -747,37 +745,12 @@
 		 * and the prefix management.  We do this, however, to provide
 		 * as much backward compatibility as possible in terms of
 		 * the ioctl operation.
+		 * Note that in6_purgeaddr() will decrement ndpr_refcnt.
 		 */
-		bzero(&pr0, sizeof(pr0));
-		pr0.ndpr_ifp = ifp;
-		pr0.ndpr_plen = in6_mask2len(&ia->ia_prefixmask.sin6_addr,
-					     NULL);
-		if (pr0.ndpr_plen == 128)
-			goto purgeaddr;
-		pr0.ndpr_prefix = ia->ia_addr;
-		/* apply the mask for safety. */
-		for (i = 0; i < 4; i++) {
-			pr0.ndpr_prefix.sin6_addr.s6_addr32[i] &=
-			    ifra->ifra_prefixmask.sin6_addr.s6_addr32[i];
-		}
-		/*
-		 * The logic of the following condition is a bit complicated.
-		 * We expire the prefix when
-		 * 1. the address obeys autoconfiguration and it is the
-		 *    only owner of the associated prefix, or
-		 * 2. the address does not obey autoconf and there is no
-		 *    other owner of the prefix.
-		 */
-		if ((pr = nd6_prefix_lookup(&pr0)) != NULL &&
-		    (((ia->ia6_flags & IN6_IFF_AUTOCONF) != 0 &&
-		      pr->ndpr_refcnt == 1) ||
-		     ((ia->ia6_flags & IN6_IFF_AUTOCONF) == 0 &&
-		      pr->ndpr_refcnt == 0))) {
-			pr->ndpr_expire = 1; /* XXX: just for expiration */
-		}
-
-	  purgeaddr:
+		pr = ia->ia6_ndpr;
 		in6_purgeaddr(&ia->ia_ifa);
+		if (pr && pr->ndpr_refcnt == 0)
+			prelist_remove(pr);
 		EVENTHANDLER_INVOKE(ifaddr_event, ifp);
 		break;
 	}
@@ -1399,21 +1372,24 @@
 	}
 
 	/*
-	 * When an autoconfigured address is being removed, release the
-	 * reference to the base prefix.  Also, since the release might
-	 * affect the status of other (detached) addresses, call
-	 * pfxlist_onlink_check().
+	 * Release the reference to the base prefix.  There should be a
+	 * positive reference.
 	 */
-	if ((oia->ia6_flags & IN6_IFF_AUTOCONF) != 0) {
-		if (oia->ia6_ndpr == NULL) {
-			nd6log((LOG_NOTICE, "in6_unlink_ifa: autoconf'ed address "
-			    "%p has no prefix\n", oia));
-		} else {
-			oia->ia6_ndpr->ndpr_refcnt--;
-			oia->ia6_flags &= ~IN6_IFF_AUTOCONF;
-			oia->ia6_ndpr = NULL;
-		}
+	if (oia->ia6_ndpr == NULL) {
+		nd6log((LOG_NOTICE,
+		    "in6_unlink_ifa: autoconf'ed address "
+		    "%p has no prefix\n", oia));
+	} else {
+		oia->ia6_ndpr->ndpr_refcnt--;
+		oia->ia6_ndpr = NULL;
+	}
 
+	/*
+	 * Also, if the address being removed is autoconf'ed, call
+	 * pfxlist_onlink_check() since the release might affect the status of
+	 * other (detached) addresses. 
+	 */
+	if ((oia->ia6_flags & IN6_IFF_AUTOCONF)) {
 		pfxlist_onlink_check();
 	}
 

==== //depot/projects/smpng/sys/pci/if_vr.c#42 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_vr.c,v 1.112 2005/10/27 21:18:37 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_vr.c,v 1.113 2005/10/31 21:37:27 jhb Exp $");
 
 /*
  * VIA Rhine fast ethernet PCI NIC driver
@@ -655,6 +655,8 @@
 
 	mtx_init(&sc->vr_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK,
 	    MTX_DEF);
+	callout_init_mtx(&sc->vr_stat_callout, &sc->vr_mtx, 0);
+
 	/*
 	 * Map control/status registers.
 	 */
@@ -755,8 +757,6 @@
 		goto fail;
 	}
 
-	callout_handle_init(&sc->vr_stat_ch);
-
 	/* Call MI attach routine. */
 	ether_ifattach(ifp, eaddr);
 
@@ -799,16 +799,14 @@
 		ether_poll_deregister(ifp);
 #endif
 
-	VR_LOCK(sc);
-
-	sc->suspended = 1;
-
 	/* These should only be active if attach succeeded */
 	if (device_is_attached(dev)) {
+		VR_LOCK(sc);
+		sc->suspended = 1;
 		vr_stop(sc);
-		VR_UNLOCK(sc);		/* XXX: Avoid recursive acquire. */
+		VR_UNLOCK(sc);
+		callout_drain(&sc->vr_stat_callout);
 		ether_ifdetach(ifp);
-		VR_LOCK(sc);
 	}
 	if (sc->vr_miibus)
 		device_delete_child(dev, sc->vr_miibus);
@@ -827,7 +825,6 @@
 	if (sc->vr_ldata)
 		contigfree(sc->vr_ldata, sizeof(struct vr_list_data), M_DEVBUF);
 
-	VR_UNLOCK(sc);
 	mtx_destroy(&sc->vr_mtx);
 
 	return (0);
@@ -1128,7 +1125,7 @@
 	struct vr_softc		*sc = xsc;
 	struct mii_data		*mii;
 
-	VR_LOCK(sc);
+	VR_LOCK_ASSERT(sc);
 
 	if (sc->vr_flags & VR_F_RESTART) {
 		if_printf(sc->vr_ifp, "restarting\n");
@@ -1140,9 +1137,7 @@
 
 	mii = device_get_softc(sc->vr_miibus);
 	mii_tick(mii);
-	sc->vr_stat_ch = timeout(vr_tick, sc, hz);
-
-	VR_UNLOCK(sc);
+	callout_reset(&sc->vr_stat_callout, hz, vr_tick, sc);
 }
 
 #ifdef DEVICE_POLLING
@@ -1532,7 +1527,7 @@
 	ifp->if_drv_flags |= IFF_DRV_RUNNING;
 	ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
 
-	sc->vr_stat_ch = timeout(vr_tick, sc, hz);
+	callout_reset(&sc->vr_stat_callout, hz, vr_tick, sc);
 }
 
 /*
@@ -1668,7 +1663,7 @@
 	ifp = sc->vr_ifp;
 	ifp->if_timer = 0;
 
-	untimeout(vr_tick, sc, sc->vr_stat_ch);
+	callout_stop(&sc->vr_stat_callout);
 	ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
 
 	VR_SETBIT16(sc, VR_COMMAND, VR_CMD_STOP);

==== //depot/projects/smpng/sys/pci/if_vrreg.h#11 (text+ko) ====

@@ -29,7 +29,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/pci/if_vrreg.h,v 1.23 2005/10/27 21:18:37 jhb Exp $
+ * $FreeBSD: src/sys/pci/if_vrreg.h,v 1.24 2005/10/31 21:37:27 jhb Exp $
  */
 
 /*
@@ -465,7 +465,7 @@
 	u_int8_t                vr_flags;       /* See VR_F_* below */
 	struct vr_list_data	*vr_ldata;
 	struct vr_chain_data	vr_cdata;
-	struct callout_handle	vr_stat_ch;
+	struct callout		vr_stat_callout;
 	struct mtx		vr_mtx;
 	int			suspended;	/* if 1, sleeping/detaching */
 #ifdef DEVICE_POLLING

==== //depot/projects/smpng/sys/sys/ktrace.h#11 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)ktrace.h	8.1 (Berkeley) 6/2/93
- * $FreeBSD: src/sys/sys/ktrace.h,v 1.29 2005/01/07 02:29:23 imp Exp $
+ * $FreeBSD: src/sys/sys/ktrace.h,v 1.31 2005/11/01 14:46:37 rwatson Exp $
  */
 
 #ifndef _SYS_KTRACE_H_
@@ -54,7 +54,7 @@
 	pid_t	ktr_pid;		/* process id */
 	char	ktr_comm[MAXCOMLEN+1];	/* command name */
 	struct	timeval ktr_time;	/* timestamp */
-	void	*ktr_buffer;
+	intptr_t	ktr_tid;	/* was ktr_buffer */
 };
 
 /*

==== //depot/projects/smpng/sys/sys/signal.h#20 (text+ko) ====

@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)signal.h	8.4 (Berkeley) 5/4/95
- * $FreeBSD: src/sys/sys/signal.h,v 1.49 2005/10/30 02:12:48 davidxu Exp $
+ * $FreeBSD: src/sys/sys/signal.h,v 1.50 2005/11/01 03:14:39 davidxu Exp $
  */
 
 #ifndef _SYS_SIGNAL_H_
@@ -109,7 +109,7 @@
 #define	SIGUSR2		31	/* user defined signal 2 */
 #endif
 #if __BSD_VISIBLE
-#define	SIGTHR		32	/* Thread interrupt. */
+#define	SIGTHR		32	/* reserved by thread library. */
 #endif
 
 #define	SIGRTMIN	65

==== //depot/projects/smpng/sys/vm/vm_page.c#66 (text+ko) ====

@@ -97,7 +97,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_page.c,v 1.306 2005/10/08 21:03:54 des Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_page.c,v 1.307 2005/11/01 04:30:21 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1677,6 +1677,8 @@
 		mnew->valid = VM_PAGE_BITS_ALL;
 		vm_page_dirty(mnew);
 		vm_page_flag_clear(mnew, PG_BUSY);
+		mnew->wire_count = m->wire_count - m->cow;
+		m->wire_count = m->cow;
 	}
 }
 



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