From owner-p4-projects@FreeBSD.ORG Fri Jul 21 20:58:40 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 253E016A4E5; Fri, 21 Jul 2006 20:58:40 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C412916A4E1 for ; Fri, 21 Jul 2006 20:58:39 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3069043D58 for ; Fri, 21 Jul 2006 20:58:39 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k6LKwdTw013250 for ; Fri, 21 Jul 2006 20:58:39 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k6LKwasO013247 for perforce@freebsd.org; Fri, 21 Jul 2006 20:58:36 GMT (envelope-from jhb@freebsd.org) Date: Fri, 21 Jul 2006 20:58:36 GMT Message-Id: <200607212058.k6LKwasO013247@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Cc: Subject: PERFORCE change 102081 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Jul 2006 20:58:40 -0000 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 -__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 -__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 #include #include @@ -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 -__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 #include @@ -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 -__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 -__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 -__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 #include ==== //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 -__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 @@ -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 -__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 -__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 @@ -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 -__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 #include +#include #include #include #include @@ -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 -__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 #include ==== //depot/projects/smpng/sys/i386/i386/pmap.c#104 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__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 @@ -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 -__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 -__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 -__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 -__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 #include @@ -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 @@ -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 @@ -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 @@ -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 -__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 #include @@ -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) <<<