PERFORCE change 102081 for review
John Baldwin
jhb at FreeBSD.org
Fri Jul 21 20:58:40 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=102081
Change 102081 by jhb at 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 at 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 at 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) <<<
More information about the p4-projects
mailing list