Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jul 2006 20:58:36 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 102081 for review
Message-ID:  <200607212058.k6LKwasO013247@repoman.freebsd.org>

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

Change 102081 by jhb@jhb_zion on 2006/07/21 20:57:40

	IFC @102080 (some loopback).

Affected files ...

.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#64 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#31 integrate
.. //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#8 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#68 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#57 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_proto.h#15 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_socket.c#16 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_socket.h#10 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#38 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_syscall.h#14 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_syscallnames.c#14 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sysent.c#14 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sysvec.c#22 integrate
.. //depot/projects/smpng/sys/compat/svr4/syscalls.master#22 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#19 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-queue.c#36 integrate
.. //depot/projects/smpng/sys/dev/bce/if_bce.c#4 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.c#69 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.h#32 integrate
.. //depot/projects/smpng/sys/dev/lmc/if_lmc.h#4 integrate
.. //depot/projects/smpng/sys/dev/streams/streams.c#32 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#104 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_proto.h#31 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_syscall.h#30 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_sysent.c#31 integrate
.. //depot/projects/smpng/sys/i386/linux/syscalls.master#36 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#96 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#87 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#62 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#93 integrate
.. //depot/projects/smpng/sys/net/raw_usrreq.c#22 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#55 integrate
.. //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#26 integrate
.. //depot/projects/smpng/sys/netatm/atm_aal5.c#15 integrate
.. //depot/projects/smpng/sys/netatm/atm_usrreq.c#17 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/include/ng_btsocket_hci_raw.h#6 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/include/ng_btsocket_l2cap.h#7 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/include/ng_btsocket_rfcomm.h#7 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket.c#13 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#19 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap.c#17 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c#16 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#13 integrate
.. //depot/projects/smpng/sys/netgraph/ng_socket.c#40 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#59 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#80 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#52 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#69 integrate
.. //depot/projects/smpng/sys/netinet6/raw_ip6.c#41 integrate
.. //depot/projects/smpng/sys/netinet6/udp6_usrreq.c#39 integrate
.. //depot/projects/smpng/sys/netipsec/keysock.c#13 integrate
.. //depot/projects/smpng/sys/netipx/ipx_usrreq.c#24 integrate
.. //depot/projects/smpng/sys/netipx/spx_usrreq.c#27 integrate
.. //depot/projects/smpng/sys/netkey/keysock.c#26 integrate
.. //depot/projects/smpng/sys/netnatm/natm.c#28 integrate
.. //depot/projects/smpng/sys/sparc64/include/pmap.h#32 integrate
.. //depot/projects/smpng/sys/vm/pmap.h#32 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#81 integrate
.. //depot/projects/smpng/sys/vm/vm_object.h#32 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#79 integrate

Differences ...

==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#64 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.566 2006/07/17 03:10:17 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.567 2006/07/20 17:48:40 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -207,7 +207,6 @@
 
 static void	free_pv_entry(pmap_t pmap, pv_entry_t pv);
 static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
-static void	pmap_clear_write(vm_page_t m);
 
 static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
@@ -2972,7 +2971,7 @@
 /*
  * Clear the write and modified bits in each of the given page's mappings.
  */
-static __inline void
+void
 pmap_clear_write(vm_page_t m)
 {
 	pv_entry_t pv;

==== //depot/projects/smpng/sys/arm/arm/pmap.c#31 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.65 2006/07/11 11:22:06 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.66 2006/07/20 23:26:22 alc Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -4461,6 +4461,21 @@
 
 
 /*
+ * Clear the write and modified bits in each of the given page's mappings.
+ */
+void
+pmap_clear_write(vm_page_t m)
+{
+
+	if (m->md.pvh_attrs & PVF_WRITE)
+		pmap_clearbit(m, PVF_WRITE);
+	else
+		KASSERT((m->flags & PG_WRITEABLE) == 0,
+		    ("pmap_clear_write: page %p has PG_WRITEABLE set", m));
+}
+
+
+/*
  * perform the pmap work for mincore
  */
 int

==== //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#8 (text) ====

@@ -26,7 +26,9 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.8 2006/07/14 21:33:04 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.9 2006/07/20 21:03:43 cognet Exp $");
+
+#include "opt_comconsole.h"
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -492,6 +494,19 @@
 	return (at91_usart_param(&sc->sc_bas, baudrate, databits, stopbits,
 	    parity));
 }
+
+static __inline void
+at91_rx_put(struct uart_softc *sc, int key)
+{
+#if defined(KDB) && defined(ALT_BREAK_TO_DEBUGGER)
+	if (sc->sc_sysdev != NULL && sc->sc_sysdev->type == UART_DEV_CONSOLE) {
+		if (kdb_alt_break(key, &sc->sc_altbrk))
+			kdb_enter("Break sequence to console");
+	}
+#endif
+	uart_rx_put(sc, key);	
+}
+
 static int
 at91_usart_bus_ipend(struct uart_softc *sc)
 {
@@ -534,9 +549,9 @@
 		bus_dmamap_sync(atsc->dmatag, atsc->pong->map,
 		    BUS_DMASYNC_POSTREAD);
 		for (i = 0; i < sc->sc_rxfifosz; i++)
-			uart_rx_put(sc, atsc->ping->buffer[i]);
+			at91_rx_put(sc, atsc->ping->buffer[i]);
 		for (i = 0; i < sc->sc_rxfifosz; i++)
-			uart_rx_put(sc, atsc->pong->buffer[i]);
+			at91_rx_put(sc, atsc->pong->buffer[i]);
 		uart_rx_put(sc, UART_STAT_OVERRUN);
 		csr &= ~(USART_CSR_ENDRX | USART_CSR_TIMEOUT);
 		WR4(&sc->sc_bas, PDC_RPR, atsc->ping->pa);
@@ -554,7 +569,7 @@
 		bus_dmamap_sync(atsc->dmatag, atsc->ping->map,
 		    BUS_DMASYNC_POSTREAD);
 		for (i = 0; i < sc->sc_rxfifosz; i++)
-			uart_rx_put(sc, atsc->ping->buffer[i]);
+			at91_rx_put(sc, atsc->ping->buffer[i]);
 		p = atsc->ping;
 		atsc->ping = atsc->pong;
 		atsc->pong = p;
@@ -574,7 +589,7 @@
 		    BUS_DMASYNC_POSTREAD);
 		len = sc->sc_rxfifosz - RD4(&sc->sc_bas, PDC_RCR);
 		for (i = 0; i < len; i++)
-			uart_rx_put(sc, atsc->ping->buffer[i]);
+			at91_rx_put(sc, atsc->ping->buffer[i]);
 		WR4(&sc->sc_bas, PDC_RPR, atsc->ping->pa);
 		WR4(&sc->sc_bas, PDC_RCR, sc->sc_rxfifosz);
 		WR4(&sc->sc_bas, USART_CR, USART_CR_STTTO);
@@ -584,7 +599,7 @@
 	if (!(atsc->flags & HAS_TIMEOUT) && (csr & USART_CSR_RXRDY)) {
 		// We have another charater in a device that doesn't support
 		// timeouts, so we do it one character at a time.
-		uart_rx_put(sc, RD4(&sc->sc_bas, USART_RHR) & 0xff);
+		at91_rx_put(sc, RD4(&sc->sc_bas, USART_RHR) & 0xff);
 		ipend |= SER_INT_RXREADY;
 	}
 

==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#68 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.179 2006/06/23 18:49:38 netchild Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.180 2006/07/21 20:22:13 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"

==== //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#57 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.88 2006/07/19 19:03:03 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.89 2006/07/21 20:28:56 jhb Exp $");
 
 #include "opt_mac.h"
 

==== //depot/projects/smpng/sys/compat/svr4/svr4_proto.h#15 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.23 2006/07/19 19:03:21 jhb Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.25 2006/07/19 19:03:03 jhb Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.24 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.26 2006/07/21 20:28:56 jhb Exp 
  */
 
 #ifndef _SVR4_SYSPROTO_H_

==== //depot/projects/smpng/sys/compat/svr4/svr4_socket.c#16 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_socket.c,v 1.26 2006/07/19 18:26:09 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_socket.c,v 1.27 2006/07/21 20:40:13 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/compat/svr4/svr4_socket.h#10 (text+ko) ====

@@ -28,7 +28,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/compat/svr4/svr4_socket.h,v 1.9 2005/01/05 22:34:36 imp Exp $
+ * $FreeBSD: src/sys/compat/svr4/svr4_socket.h,v 1.10 2006/07/21 20:40:13 jhb Exp $
  */
 
 #ifndef _SVR4_SOCKET_H_

==== //depot/projects/smpng/sys/compat/svr4/svr4_stream.c#38 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.58 2006/07/10 21:38:17 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.59 2006/07/21 20:40:13 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_ktrace.h"

==== //depot/projects/smpng/sys/compat/svr4/svr4_syscall.h#14 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.21 2006/07/19 19:03:21 jhb Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.25 2006/07/19 19:03:03 jhb Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.22 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.26 2006/07/21 20:28:56 jhb Exp 
  */
 
 #define	SVR4_SYS_exit	1

==== //depot/projects/smpng/sys/compat/svr4/svr4_syscallnames.c#14 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.21 2006/07/19 19:03:21 jhb Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.25 2006/07/19 19:03:03 jhb Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.22 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.26 2006/07/21 20:28:56 jhb Exp 
  */
 
 const char *svr4_syscallnames[] = {

==== //depot/projects/smpng/sys/compat/svr4/svr4_sysent.c#14 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.22 2006/07/19 19:03:21 jhb Exp $
- * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.25 2006/07/19 19:03:03 jhb Exp 
+ * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.23 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.26 2006/07/21 20:28:56 jhb Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -173,7 +173,7 @@
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 150 = notused */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 151 = notused */
 	{ 0, (sy_call_t *)nosys, AUE_NULL },			/* 152 = modctl */
-	{ AS(svr4_sys_fchroot_args), (sy_call_t *)svr4_sys_fchroot, AUE_NULL },	/* 153 = svr4_sys_fchroot */
+	{ SYF_MPSAFE | AS(svr4_sys_fchroot_args), (sy_call_t *)svr4_sys_fchroot, AUE_NULL },	/* 153 = svr4_sys_fchroot */
 	{ SYF_MPSAFE | AS(svr4_sys_utimes_args), (sy_call_t *)svr4_sys_utimes, AUE_NULL },	/* 154 = svr4_sys_utimes */
 	{ SYF_MPSAFE | 0, (sy_call_t *)svr4_sys_vhangup, AUE_NULL },	/* 155 = svr4_sys_vhangup */
 	{ SYF_MPSAFE | AS(svr4_sys_gettimeofday_args), (sy_call_t *)svr4_sys_gettimeofday, AUE_NULL },	/* 156 = svr4_sys_gettimeofday */

==== //depot/projects/smpng/sys/compat/svr4/svr4_sysvec.c#22 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sysvec.c,v 1.41 2005/02/25 19:34:10 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_sysvec.c,v 1.42 2006/07/21 20:40:13 jhb Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"

==== //depot/projects/smpng/sys/compat/svr4/syscalls.master#22 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.25 2006/07/19 19:03:03 jhb Exp $
+ $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.26 2006/07/21 20:28:56 jhb Exp $
 ;	from: @(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ;
 ; System call name/number master file (or rather, slave, from SVR4).

==== //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#19 (text+ko) ====

@@ -1,5 +1,6 @@
-/*	$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.24 2006/05/12 16:15:34 mlaier Exp $	*/
-/*	$OpenBSD: pf_ioctl.c,v 1.139 2005/03/03 07:13:39 dhartmei Exp $ */
+/*	$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.25 2006/07/21 09:48:13 mlaier Exp $	*/
+/*	$OpenBSD: pf_ioctl.c,v 1.139 2005/03/03 07:13:39 dhartmei Exp $	*/
+/* add:	$OpenBSD: pf_ioctl.c,v 1.168 2006/07/21 01:21:17 dhartmei Exp $ */
 
 /*
  * Copyright (c) 2001 Daniel Hartmeier
@@ -1815,7 +1816,7 @@
 			    (newrule->action == PF_RDR) ||
 			    (newrule->action == PF_BINAT) ||
 			    (newrule->rt > PF_FASTROUTE)) &&
-			    !pcr->anchor[0])) &&
+			    !newrule->anchor)) &&
 			    (TAILQ_FIRST(&newrule->rpool.list) == NULL))
 				error = EINVAL;
 

==== //depot/projects/smpng/sys/dev/ata/ata-queue.c#36 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.64 2006/04/17 10:47:01 sos Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.65 2006/07/21 19:13:05 imp Exp $");
 
 #include "opt_ata.h"
 #include <sys/param.h>
@@ -430,6 +430,8 @@
 		       request->u.atapi.sense.specific & ATA_SENSE_SPEC_MASK,
 		       request->u.atapi.sense.specific1,
 		       request->u.atapi.sense.specific2);
+	    else
+		printf("\n");
 	}
 
 	if ((request->u.atapi.sense.key & ATA_SENSE_KEY_MASK ?

==== //depot/projects/smpng/sys/dev/bce/if_bce.c#4 (text) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.5 2006/07/12 23:13:09 ambrisko Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.6 2006/07/20 18:41:00 jhb Exp $");
 
 /*
  * The following controllers are supported by this driver:
@@ -4840,9 +4840,11 @@
 
 			DBPRINT(sc, BCE_INFO, "Setting new MTU of %d\n", ifr->ifr_mtu);
 
+			BCE_LOCK(sc);
 			ifp->if_mtu = ifr->ifr_mtu;
 			ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
-			bce_init(sc);
+			bce_init_locked(sc);
+			BCE_UNLOCK(sc);
 			break;
 
 		/* Set interface. */
@@ -4877,12 +4879,12 @@
 		case SIOCDELMULTI:
 			DBPRINT(sc, BCE_VERBOSE, "Received SIOCADDMULTI/SIOCDELMULTI\n");
 
+			BCE_LOCK(sc);
 			if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
-				BCE_LOCK(sc);
 				bce_set_rx_mode(sc);
-				BCE_UNLOCK(sc);
 				error = 0;
 			}
+			BCE_UNLOCK(sc);
 
 			break;
 
@@ -5031,10 +5033,12 @@
 
 	/* DBRUN(BCE_FATAL, bce_breakpoint(sc)); */
 
+	BCE_LOCK(sc);
 	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
 
-	bce_init(sc);
+	bce_init_locked(sc);
 	ifp->if_oerrors++;
+	BCE_UNLOCK(sc);
 
 }
 

==== //depot/projects/smpng/sys/dev/em/if_em.c#69 (text+ko) ====

@@ -31,7 +31,7 @@
 
 ***************************************************************************/
 
-/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.116 2006/06/06 08:03:49 glebius Exp $*/
+/*$FreeBSD: src/sys/dev/em/if_em.c,v 1.119 2006/07/20 04:18:45 yongari Exp $*/
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -67,6 +67,7 @@
 
 #include <netinet/in_systm.h>
 #include <netinet/in.h>
+#include <netinet/if_ether.h>
 #include <netinet/ip.h>
 #include <netinet/tcp.h>
 #include <netinet/udp.h>
@@ -692,6 +693,9 @@
 
 	EM_LOCK_ASSERT(sc);
 
+	if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
+	    IFF_DRV_RUNNING)
+		return;
 	if (!sc->link_active)
 		return;
 
@@ -745,6 +749,7 @@
 {
 	struct em_softc	*sc = ifp->if_softc;
 	struct ifreq *ifr = (struct ifreq *)data;
+	struct ifaddr *ifa = (struct ifaddr *)data;
 	int error = 0;
 
 	if (sc->in_detach)
@@ -753,8 +758,23 @@
 	switch (command) {
 	case SIOCSIFADDR:
 	case SIOCGIFADDR:
-		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCxIFADDR (Get/Set Interface Addr)");
-		ether_ioctl(ifp, command, data);
+		if (ifa->ifa_addr->sa_family == AF_INET) {
+			/*
+			 * XXX
+			 * Since resetting hardware takes a very long time
+			 * and results in link renegotiation we only
+			 * initialize the hardware only when it is absolutely
+			 * required.
+			 */
+			ifp->if_flags |= IFF_UP;
+			if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+				EM_LOCK(sc);
+				em_init_locked(sc);
+				EM_UNLOCK(sc);
+			}
+			arp_ifinit(ifp, ifa);
+		} else
+			error = ether_ioctl(ifp, command, data);
 		break;
 	case SIOCSIFMTU:
 	    {
@@ -763,6 +783,7 @@
 
 		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
 
+		EM_LOCK(sc);
 		switch (sc->hw.mac_type) {
 		case em_82573:
 			/*
@@ -786,11 +807,11 @@
 		}
 		if (ifr->ifr_mtu > max_frame_size - ETHER_HDR_LEN -
 		    ETHER_CRC_LEN) {
+			EM_UNLOCK(sc);
 			error = EINVAL;
 			break;
 		}
 
-		EM_LOCK(sc);
 		ifp->if_mtu = ifr->ifr_mtu;
 		sc->hw.max_frame_size =
 		ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
@@ -802,17 +823,20 @@
 		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFFLAGS (Set Interface Flags)");
 		EM_LOCK(sc);
 		if (ifp->if_flags & IFF_UP) {
-			if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+			if ((ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+				if ((ifp->if_flags ^ sc->if_flags) &
+				    IFF_PROMISC) {
+					em_disable_promisc(sc);
+					em_set_promisc(sc);
+				}
+			} else
 				em_init_locked(sc);
-			}
-
-			em_disable_promisc(sc);
-			em_set_promisc(sc);
 		} else {
 			if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
 				em_stop(sc);
 			}
 		}
+		sc->if_flags = ifp->if_flags;
 		EM_UNLOCK(sc);
 		break;
 	case SIOCADDMULTI:
@@ -878,8 +902,8 @@
 		break;
 	    }
 	default:
-		IOCTL_DEBUGOUT1("ioctl received: UNKNOWN (0x%x)", (int)command);
-		error = EINVAL;
+		error = ether_ioctl(ifp, command, data);
+		break;
 	}
 
 	return (error);

==== //depot/projects/smpng/sys/dev/em/if_em.h#32 (text+ko) ====

@@ -31,7 +31,7 @@
 
 ***************************************************************************/
 
-/*$FreeBSD: src/sys/dev/em/if_em.h,v 1.44 2006/02/15 08:39:50 glebius Exp $*/
+/*$FreeBSD: src/sys/dev/em/if_em.h,v 1.45 2006/07/20 04:18:45 yongari Exp $*/
 
 #ifndef _EM_H_DEFINED_
 #define _EM_H_DEFINED_
@@ -259,6 +259,7 @@
 	struct callout	timer;
 	struct callout	tx_fifo_timer;
 	int		io_rid;
+	int		if_flags;
 	struct mtx	mtx;
 	int		em_insert_vlan_header;
 	struct task	link_task;

==== //depot/projects/smpng/sys/dev/lmc/if_lmc.h#4 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/sys/dev/lmc/if_lmc.h,v 1.3 2006/06/02 23:14:39 sam Exp $
+ * $FreeBSD: src/sys/dev/lmc/if_lmc.h,v 1.4 2006/07/21 08:45:00 delphij Exp $
  *
  * Copyright (c) 2002-2004 David Boggs. (boggs@boggs.palo-alto.ca.us)
  * All rights reserved.
@@ -936,7 +936,7 @@
 #define IOCTL_RESET_CNTRS	  54	/* reset event counters            */
 
 /* storage for these strings is allocated here! */
-char *ssi_cables[] =
+const char *ssi_cables[] =
   {
   "V.10/EIA423",
   "V.11/EIA530A",

==== //depot/projects/smpng/sys/dev/streams/streams.c#32 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.53 2006/07/19 18:52:33 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/streams/streams.c,v 1.54 2006/07/21 20:40:13 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/smpng/sys/i386/i386/pmap.c#104 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.570 2006/07/18 03:17:12 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.571 2006/07/20 17:48:40 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -266,7 +266,6 @@
 
 static void	free_pv_entry(pmap_t pmap, pv_entry_t pv);
 static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
-static void	pmap_clear_write(vm_page_t m);
 
 static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va,
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
@@ -3066,7 +3065,7 @@
 /*
  * Clear the write and modified bits in each of the given page's mappings.
  */
-static __inline void
+void
 pmap_clear_write(vm_page_t m)
 {
 	pv_entry_t pv;

==== //depot/projects/smpng/sys/i386/linux/linux_proto.h#31 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/i386/linux/linux_proto.h,v 1.76 2006/07/11 20:55:23 jhb Exp $
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.73 2006/07/11 20:52:08 jhb Exp 
+ * $FreeBSD: src/sys/i386/linux/linux_proto.h,v 1.77 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.74 2006/07/21 20:22:13 jhb Exp 
  */
 
 #ifndef _LINUX_SYSPROTO_H_

==== //depot/projects/smpng/sys/i386/linux/linux_syscall.h#30 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/i386/linux/linux_syscall.h,v 1.70 2006/07/11 20:55:23 jhb Exp $
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.73 2006/07/11 20:52:08 jhb Exp 
+ * $FreeBSD: src/sys/i386/linux/linux_syscall.h,v 1.71 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.74 2006/07/21 20:22:13 jhb Exp 
  */
 
 #define	LINUX_SYS_exit	1

==== //depot/projects/smpng/sys/i386/linux/linux_sysent.c#31 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/i386/linux/linux_sysent.c,v 1.77 2006/07/11 20:55:23 jhb Exp $
- * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.73 2006/07/11 20:52:08 jhb Exp 
+ * $FreeBSD: src/sys/i386/linux/linux_sysent.c,v 1.78 2006/07/21 20:41:33 jhb Exp $
+ * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.74 2006/07/21 20:22:13 jhb Exp 
  */
 
 #include <bsm/audit_kevents.h>
@@ -105,7 +105,7 @@
 	{ SYF_MPSAFE | AS(linux_symlink_args), (sy_call_t *)linux_symlink, AUE_SYMLINK },	/* 83 = linux_symlink */
 	{ SYF_MPSAFE | AS(linux_lstat_args), (sy_call_t *)linux_lstat, AUE_LSTAT },	/* 84 = linux_lstat */
 	{ SYF_MPSAFE | AS(linux_readlink_args), (sy_call_t *)linux_readlink, AUE_READLINK },	/* 85 = linux_readlink */
-	{ AS(linux_uselib_args), (sy_call_t *)linux_uselib, AUE_USELIB },	/* 86 = linux_uselib */
+	{ SYF_MPSAFE | AS(linux_uselib_args), (sy_call_t *)linux_uselib, AUE_USELIB },	/* 86 = linux_uselib */
 	{ SYF_MPSAFE | AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON },	/* 87 = swapon */
 	{ SYF_MPSAFE | AS(linux_reboot_args), (sy_call_t *)linux_reboot, AUE_REBOOT },	/* 88 = linux_reboot */
 	{ SYF_MPSAFE | AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_O_GETDENTS },	/* 89 = linux_readdir */

==== //depot/projects/smpng/sys/i386/linux/syscalls.master#36 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/i386/linux/syscalls.master,v 1.73 2006/07/11 20:52:08 jhb Exp $
+ $FreeBSD: src/sys/i386/linux/syscalls.master,v 1.74 2006/07/21 20:22:13 jhb Exp $
 
 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
 ; System call name/number master file (or rather, slave, from LINUX).

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

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.296 2006/07/08 20:03:39 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.297 2006/07/21 20:24:00 jhb Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"

==== //depot/projects/smpng/sys/kern/uipc_socket.c#87 (text+ko) ====

@@ -89,7 +89,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.272 2006/07/16 23:09:39 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/uipc_socket.c,v 1.273 2006/07/21 17:11:11 rwatson Exp $");
 
 #include "opt_inet.h"
 #include "opt_mac.h"
@@ -589,6 +589,8 @@
 	sorflush(so);
 	knlist_destroy(&so->so_rcv.sb_sel.si_note);
 	knlist_destroy(&so->so_snd.sb_sel.si_note);
+	if (so->so_proto->pr_usrreqs->pru_detach != NULL)
+		(*so->so_proto->pr_usrreqs->pru_detach)(so);
 	sodealloc(so);
 }
 
@@ -653,8 +655,8 @@
 	}
 
 drop:
-	if (*so->so_proto->pr_usrreqs->pru_detach != NULL)
-		(*so->so_proto->pr_usrreqs->pru_detach)(so);
+	if (so->so_proto->pr_usrreqs->pru_close != NULL)
+		(*so->so_proto->pr_usrreqs->pru_close)(so);
 	ACCEPT_LOCK();
 	SOCK_LOCK(so);
 	KASSERT((so->so_state & SS_NOFDREF) == 0, ("soclose: NOFDREF"));
@@ -676,9 +678,6 @@
  * with any socket locks held.  Protocols do call it while holding their own
  * recursible protocol mutexes, but this is something that should be subject
  * to review in the future.
- *
- * XXXRW: Why do we maintain a distinction between pru_abort() and
- * pru_detach()?
  */
 void
 soabort(so)
@@ -697,7 +696,7 @@
 	KASSERT((so->so_state & SQ_COMP) == 0, ("soabort: SQ_COMP"));
 	KASSERT((so->so_state & SQ_INCOMP) == 0, ("soabort: SQ_INCOMP"));
 
-	if (*so->so_proto->pr_usrreqs->pru_abort != NULL)
+	if (so->so_proto->pr_usrreqs->pru_abort != NULL)
 		(*so->so_proto->pr_usrreqs->pru_abort)(so);
 	ACCEPT_LOCK();
 	SOCK_LOCK(so);

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

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.171 2006/07/11 21:49:54 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/uipc_usrreq.c,v 1.172 2006/07/21 17:11:12 rwatson Exp $");
 
 #include "opt_mac.h"
 
@@ -149,8 +149,7 @@
 	KASSERT(unp != NULL, ("uipc_abort: unp == NULL"));
 	UNP_LOCK();
 	unp_drop(unp, ECONNABORTED);
-	unp_detach(unp);
-	UNP_UNLOCK_ASSERT();
+	UNP_UNLOCK();
 }
 
 static int
@@ -210,6 +209,21 @@
 	return (error);
 }
 
+/*
+ * XXXRW: Should also unbind?
+ */
+static void
+uipc_close(struct socket *so)
+{
+	struct unpcb *unp;
+
+	unp = sotounpcb(so);
+	KASSERT(unp != NULL, ("uipc_close: unp == NULL"));
+	UNP_LOCK();
+	unp_disconnect(unp);
+	UNP_UNLOCK();
+}
+
 int
 uipc_connect2(struct socket *so1, struct socket *so2)
 {
@@ -565,6 +579,7 @@
 	.pru_sosend =		sosend,
 	.pru_soreceive =	soreceive,
 	.pru_sopoll =		sopoll,
+	.pru_close =		uipc_close,
 };
 
 int

==== //depot/projects/smpng/sys/kern/vfs_bio.c#93 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.506 2006/04/04 06:44:21 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.507 2006/07/21 06:40:29 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -2285,8 +2285,7 @@
 
 	/*
 	 * We qualify the scan for modified pages on whether the
-	 * object has been flushed yet.  The OBJ_WRITEABLE flag
-	 * is not cleared simply by protecting pages off.
+	 * object has been flushed yet.
 	 */
 
 	if ((bp->b_flags & B_VMIO) == 0)
@@ -2294,11 +2293,6 @@
 
 	object = bp->b_pages[0]->object;
 	VM_OBJECT_LOCK(object);
-	if ((object->flags & OBJ_WRITEABLE) && !(object->flags & OBJ_MIGHTBEDIRTY))
-		printf("Warning: object %p writeable but not mightbedirty\n", object);
-	if (!(object->flags & OBJ_WRITEABLE) && (object->flags & OBJ_MIGHTBEDIRTY))
-		printf("Warning: object %p mightbedirty but not writeable\n", object);
-
 	if (object->flags & (OBJ_MIGHTBEDIRTY|OBJ_CLEANING)) {
 		vm_offset_t boffset;
 		vm_offset_t eoffset;

==== //depot/projects/smpng/sys/net/raw_usrreq.c#22 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)raw_usrreq.c	8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/net/raw_usrreq.c,v 1.42 2006/06/02 08:27:15 rwatson Exp $
+ * $FreeBSD: src/sys/net/raw_usrreq.c,v 1.43 2006/07/21 17:11:12 rwatson Exp $
  */
 
 #include <sys/param.h>
@@ -146,7 +146,16 @@
 	KASSERT(rp != NULL, ("raw_uabort: rp == NULL"));
 	raw_disconnect(rp);
 	soisdisconnected(so);
-	raw_detach(rp);
+}
+
+static void
+raw_uclose(struct socket *so)
+{
+	struct rawcb *rp = sotorawcb(so);
+
+	KASSERT(rp != NULL, ("raw_uabort: rp == NULL"));
+	raw_disconnect(rp);
+	soisdisconnected(so);
 }
 
 /* pru_accept is EOPNOTSUPP */
@@ -295,4 +304,5 @@
 	.pru_send =		raw_usend,
 	.pru_shutdown =		raw_ushutdown,
 	.pru_sockaddr =		raw_usockaddr,
+	.pru_close =		raw_uclose,
 };

==== //depot/projects/smpng/sys/net/rtsock.c#55 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)rtsock.c	8.7 (Berkeley) 10/12/95
- * $FreeBSD: src/sys/net/rtsock.c,v 1.136 2006/07/06 00:24:36 oleg Exp $
+ * $FreeBSD: src/sys/net/rtsock.c,v 1.137 2006/07/21 17:11:12 rwatson Exp $
  */
 
 #include <sys/param.h>
@@ -144,6 +144,13 @@
 	raw_usrreqs.pru_abort(so);
 }
 
+static void
+rts_close(struct socket *so)
+{
+
+	raw_usrreqs.pru_close(so);
+}
+
 /* pru_accept is EOPNOTSUPP */
 
 static int
@@ -292,6 +299,7 @@
 	.pru_send =		rts_send,
 	.pru_shutdown =		rts_shutdown,
 	.pru_sockaddr =		rts_sockaddr,
+	.pru_close =		rts_close,
 };
 
 /*ARGSUSED*/

==== //depot/projects/smpng/sys/netatalk/ddp_usrreq.c#26 (text+ko) ====

@@ -24,7 +24,7 @@
  *	+1-313-764-2278
  *	netatalk@umich.edu
  *
- * $FreeBSD: src/sys/netatalk/ddp_usrreq.c,v 1.50 2006/04/01 16:54:37 rwatson Exp $
+ * $FreeBSD: src/sys/netatalk/ddp_usrreq.c,v 1.51 2006/07/21 17:11:13 rwatson Exp $
  */
 
 #include <sys/param.h>
@@ -202,6 +202,10 @@
 	return (error);
 }
 
+/*
+ * XXXRW: This is never called because we only invoke abort on stream
+ * protocols.
+ */
 static void
 ddp_abort(struct socket *so)
 {
@@ -210,10 +214,22 @@
 	ddp = sotoddpcb(so);
 	KASSERT(ddp != NULL, ("ddp_abort: ddp == NULL"));
 
-	DDP_LIST_XLOCK();
+	DDP_LOCK(ddp);
+	at_pcbdisconnect(ddp);
+	DDP_UNLOCK(ddp);
+}
+
+static void
+ddp_close(struct socket *so)
+{
+	struct ddpcb	*ddp;
+	
+	ddp = sotoddpcb(so);
+	KASSERT(ddp != NULL, ("ddp_close: ddp == NULL"));
+
 	DDP_LOCK(ddp);
-	at_pcbdetach(so, ddp);
-	DDP_LIST_XUNLOCK();
+	at_pcbdisconnect(ddp);
+	DDP_UNLOCK(ddp);
 }
 
 void 
@@ -276,4 +292,5 @@
 	.pru_send =		ddp_send,
 	.pru_shutdown =		ddp_shutdown,
 	.pru_sockaddr =		at_setsockaddr,
+	.pru_close =		ddp_close,
 };

==== //depot/projects/smpng/sys/netatm/atm_aal5.c#15 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netatm/atm_aal5.c,v 1.24 2006/04/01 15:41:59 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/netatm/atm_aal5.c,v 1.25 2006/07/21 17:11:13 rwatson Exp $");
 
 #include <sys/param.h>
 #include <sys/lock.h>
@@ -88,6 +88,7 @@
 			Atm_attributes *, void **);
 static void	atm_aal5_cpcs_data(void *, KBuffer *);
 static caddr_t	atm_aal5_getname(void *);
+static void	atm_aal5_close(struct socket *);
 

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



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