From owner-p4-projects@FreeBSD.ORG Mon Nov 24 09:51:19 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F255E16A4D0; Mon, 24 Nov 2003 09:51:18 -0800 (PST) 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 C1BD816A4CE for ; Mon, 24 Nov 2003 09:51:18 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8121543FE1 for ; Mon, 24 Nov 2003 09:51:17 -0800 (PST) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hAOHpHXJ014887 for ; Mon, 24 Nov 2003 09:51:17 -0800 (PST) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hAOHpGv7014884 for perforce@freebsd.org; Mon, 24 Nov 2003 09:51:16 -0800 (PST) (envelope-from sam@freebsd.org) Date: Mon, 24 Nov 2003 09:51:16 -0800 (PST) Message-Id: <200311241751.hAOHpGv7014884@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 42999 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Nov 2003 17:51:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=42999 Change 42999 by sam@sam_ebb on 2003/11/24 09:50:24 IFC @ 42998 Affected files ... .. //depot/projects/netperf/sys/dev/ata/ata-raid.c#7 integrate .. //depot/projects/netperf/sys/dev/ata/atapi-cd.c#15 integrate .. //depot/projects/netperf/sys/dev/led/led.c#2 integrate .. //depot/projects/netperf/sys/dev/vinum/vinuminterrupt.c#3 integrate .. //depot/projects/netperf/sys/dev/vinum/vinumio.c#3 integrate .. //depot/projects/netperf/sys/dev/vinum/vinumrequest.c#4 integrate .. //depot/projects/netperf/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/netperf/sys/netinet/ip_dummynet.c#18 integrate .. //depot/projects/netperf/sys/netinet/ip_fw2.c#18 integrate .. //depot/projects/netperf/sys/netinet6/ip6_output.c#27 integrate .. //depot/projects/netperf/sys/sys/mbuf.h#8 integrate .. //depot/projects/netperf/sys/sys/timepps.h#2 integrate Differences ... ==== //depot/projects/netperf/sys/dev/ata/ata-raid.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.71 2003/11/08 09:56:34 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.73 2003/11/24 14:54:41 sos Exp $"); #include "opt_ata.h" #include @@ -774,17 +774,24 @@ return; } if (bp->bio_cmd == BIO_READ) { + int src_online = + (rdp->disks[buf1->drive].flags & AR_DF_ONLINE); + int mir_online = + (rdp->disks[buf1->drive+rdp->width].flags & AR_DF_ONLINE); + /* if mirror gone or close to last access on source */ - if (!(rdp->disks[buf1->drive+rdp->width].flags & AR_DF_ONLINE)|| - (buf1->bp.bio_pblkno >= + if (!mir_online || + ((src_online) && + buf1->bp.bio_pblkno >= (rdp->disks[buf1->drive].last_lba - AR_PROXIMITY) && buf1->bp.bio_pblkno <= (rdp->disks[buf1->drive].last_lba + AR_PROXIMITY))) { rdp->flags &= ~AR_F_TOGGLE; } /* if source gone or close to last access on mirror */ - else if (!(rdp->disks[buf1->drive].flags & AR_DF_ONLINE) || - (buf1->bp.bio_pblkno >= + else if (!src_online || + ((mir_online) && + buf1->bp.bio_pblkno >= (rdp->disks[buf1->drive + rdp->width].last_lba - AR_PROXIMITY) && buf1->bp.bio_pblkno <= ==== //depot/projects/netperf/sys/dev/ata/atapi-cd.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.155 2003/11/18 15:23:37 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.156 2003/11/24 14:20:19 sos Exp $"); #include "opt_ata.h" #include @@ -1000,6 +1000,11 @@ return; } + if (bp->bio_cmd == BIO_READ && cdp->disk_size == -1) { + g_io_deliver(bp, EIO); + return; + } + /* GEOM classes must do their own request limiting */ if (bp->bio_length <= cdp->iomax) { mtx_lock(&cdp->queue_mtx); ==== //depot/projects/netperf/sys/dev/led/led.c#2 (text+ko) ==== @@ -9,7 +9,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/led/led.c,v 1.2 2003/11/03 15:45:42 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/led/led.c,v 1.3 2003/11/23 10:22:51 phk Exp $"); #include #include @@ -254,7 +254,8 @@ mtx_lock(&led_mtx); LIST_REMOVE(sc, list); mtx_unlock(&led_mtx); - sbuf_delete(sc->spec); + if (sc->spec != NULL) + sbuf_delete(sc->spec); destroy_dev(dev); free(sc, M_LED); } ==== //depot/projects/netperf/sys/dev/vinum/vinuminterrupt.c#3 (text+ko) ==== @@ -1,7 +1,7 @@ /* vinuminterrupt.c: bottom half of the driver */ #include -__FBSDID("$FreeBSD: src/sys/dev/vinum/vinuminterrupt.c,v 1.41 2003/08/24 17:55:56 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/vinum/vinuminterrupt.c,v 1.43 2003/11/24 04:06:56 grog Exp $"); /*- * Copyright (c) 1997, 1998, 1999 @@ -42,7 +42,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinuminterrupt.c,v 1.14 2001/05/23 23:03:37 grog Exp grog $ + * $Id: vinuminterrupt.c,v 1.41 2003/08/24 17:55:56 obrien Exp $ */ #include @@ -398,6 +398,8 @@ rqe->b.b_bufsize = rqe->b.b_bcount; /* don't claim more */ rqe->b.b_resid = rqe->b.b_bcount; /* nothing transferred */ rqe->b.b_blkno += rqe->dataoffset; /* point to the correct block */ + rqe->b.b_offset = rqe->b.b_blkno << DEV_BSHIFT; + rqe->b.b_iooffset = rqe->b.b_offset; rqg->active++; /* another active request */ drive = &DRIVE[rqe->driveno]; /* drive to access */ @@ -434,6 +436,8 @@ rqe->b.b_iodone = complete_rqe; /* call us here when done */ rqg->flags &= ~XFR_PARITYOP; /* reset flags that brought us here */ rqe->b.b_bcount = rqe->buflen << DEV_BSHIFT; /* length to write */ + rqe->b.b_offset = rqe->b.b_blkno << DEV_BSHIFT; + rqe->b.b_iooffset = rqe->b.b_offset; rqe->b.b_bufsize = rqe->b.b_bcount; /* don't claim we have more */ rqe->b.b_resid = rqe->b.b_bcount; /* nothing transferred */ rqg->active++; /* another active request */ ==== //depot/projects/netperf/sys/dev/vinum/vinumio.c#3 (text+ko) ==== @@ -34,7 +34,7 @@ * advised of the possibility of such damage. * * $Id: vinumio.c,v 1.39 2003/05/23 00:59:53 grog Exp grog $ - * $FreeBSD: src/sys/dev/vinum/vinumio.c,v 1.93 2003/08/15 17:56:44 rwatson Exp $ + * $FreeBSD: src/sys/dev/vinum/vinumio.c,v 1.95 2003/11/24 04:06:56 grog Exp $ */ #include @@ -255,6 +255,8 @@ bp->b_iocmd = flag; bp->b_dev = drive->dev; /* device */ bp->b_blkno = offset / drive->sectorsize; /* block number */ + bp->b_offset = offset; + bp->b_iooffset = offset; bp->b_saveaddr = bp->b_data; bp->b_data = buf; bp->b_bcount = len; ==== //depot/projects/netperf/sys/dev/vinum/vinumrequest.c#4 (text+ko) ==== @@ -37,11 +37,11 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumrequest.c,v 1.36 2003/05/08 04:34:55 grog Exp grog $ + * $Id: vinumrequest.c,v 1.69 2003/10/18 17:57:48 phk Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/dev/vinum/vinumrequest.c,v 1.69 2003/10/18 17:57:48 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/vinum/vinumrequest.c,v 1.71 2003/11/24 04:06:56 grog Exp $"); #include #include @@ -447,6 +447,8 @@ } #endif /* fire off the request */ + rqe->b.b_offset = rqe->b.b_blkno << DEV_BSHIFT; + rqe->b.b_iooffset = rqe->b.b_offset; DEV_STRATEGY(&rqe->b); } } @@ -991,6 +993,8 @@ if (debug & DEBUG_LASTREQS) logrq(loginfo_sdiol, (union rqinfou) &sbp->b, &sbp->b); #endif + sbp->b.b_offset = sbp->b.b_blkno << DEV_BSHIFT; + sbp->b.b_iooffset = sbp->b.b_offset; DEV_STRATEGY(&sbp->b); splx(s); } ==== //depot/projects/netperf/sys/kern/vfs_mount.c#7 (text+ko) ==== @@ -63,7 +63,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.115 2003/11/14 05:27:41 kan Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.116 2003/11/23 17:13:48 kan Exp $"); #include #include @@ -533,7 +533,7 @@ #ifdef MAC mac_destroy_mount(mp); #endif - if (mp->mnt_op->vfs_mount == NULL) + if (mp->mnt_opt != NULL) vfs_freeopts(mp->mnt_opt); crfree(mp->mnt_cred); free(mp, M_MOUNT); ==== //depot/projects/netperf/sys/netinet/ip_dummynet.c#18 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/ip_dummynet.c,v 1.73 2003/11/08 23:36:31 sam Exp $ + * $FreeBSD: src/sys/netinet/ip_dummynet.c,v 1.74 2003/11/23 18:13:41 sam Exp $ */ #define DUMMYNET_DEBUG @@ -1995,7 +1995,7 @@ ip_dn_io_ptr = dummynet_io; ip_dn_ruledel_ptr = dn_rule_delete; - callout_init(&dn_timeout, CALLOUT_MPSAFE); + callout_init(&dn_timeout, debug_mpsafenet ? CALLOUT_MPSAFE : 0); callout_reset(&dn_timeout, 1, dummynet, NULL); } ==== //depot/projects/netperf/sys/netinet/ip_fw2.c#18 (text+ko) ==== @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.47 2003/11/20 20:07:37 andre Exp $ + * $FreeBSD: src/sys/netinet/ip_fw2.c,v 1.49 2003/11/24 03:57:03 sam Exp $ */ #define DEB(x) @@ -82,12 +82,16 @@ #include /* XXX for in_cksum */ /* - * XXX This one should go in sys/mbuf.h. It is used to avoid that - * a firewall-generated packet loops forever through the firewall. + * This is used to avoid that a firewall-generated packet + * loops forever through the firewall. Note that it must + * be a flag that is unused by other protocols that might + * be called from ip_output (e.g. IPsec) and it must be + * listed in M_COPYFLAGS in mbuf.h so that if the mbuf chain + * is altered on the way through ip_output it is not lost. + * It might be better to add an m_tag since the this happens + * infrequently. */ -#ifndef M_SKIP_FIREWALL -#define M_SKIP_FIREWALL 0x4000 -#endif +#define M_SKIP_FIREWALL M_PROTO6 /* * set_disable contains one bit per set value (0..31). @@ -2924,7 +2928,7 @@ layer3_chain.rules = NULL; IPFW_LOCK_INIT(&layer3_chain); IPFW_DYN_LOCK_INIT(); - callout_init(&ipfw_timeout, CALLOUT_MPSAFE); + callout_init(&ipfw_timeout, debug_mpsafenet ? CALLOUT_MPSAFE : 0); bzero(&default_rule, sizeof default_rule); ==== //depot/projects/netperf/sys/netinet6/ip6_output.c#27 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/ip6_output.c,v 1.70 2003/11/20 20:07:39 andre Exp $ */ +/* $FreeBSD: src/sys/netinet6/ip6_output.c,v 1.71 2003/11/24 01:53:36 ume Exp $ */ /* $KAME: ip6_output.c,v 1.279 2002/01/26 06:12:30 jinmei Exp $ */ /* @@ -2417,6 +2417,9 @@ { int needfree; + if (pktopt == NULL) + return; + needfree = pktopt->needfree; if (optname == -1 || optname == IPV6_PKTINFO) { ==== //depot/projects/netperf/sys/sys/mbuf.h#8 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mbuf.h 8.5 (Berkeley) 2/19/95 - * $FreeBSD: src/sys/sys/mbuf.h,v 1.127 2003/11/14 23:58:01 bde Exp $ + * $FreeBSD: src/sys/sys/mbuf.h,v 1.128 2003/11/24 03:57:03 sam Exp $ */ #ifndef _SYS_MBUF_H_ @@ -153,6 +153,7 @@ #define M_PROTO3 0x0040 /* protocol-specific */ #define M_PROTO4 0x0080 /* protocol-specific */ #define M_PROTO5 0x0100 /* protocol-specific */ +#define M_PROTO6 0x4000 /* protocol-specific (avoid M_BCAST conflict) */ #define M_FREELIST 0x8000 /* mbuf is on the free list */ /* @@ -178,8 +179,8 @@ * Flags copied when copying m_pkthdr. */ #define M_COPYFLAGS (M_PKTHDR|M_EOR|M_RDONLY|M_PROTO1|M_PROTO1|M_PROTO2|\ - M_PROTO3|M_PROTO4|M_PROTO5|M_BCAST|M_MCAST|\ - M_FRAG|M_FIRSTFRAG|M_LASTFRAG) + M_PROTO3|M_PROTO4|M_PROTO5|M_PROTO6|\ + M_BCAST|M_MCAST|M_FRAG|M_FIRSTFRAG|M_LASTFRAG) /* * Flags indicating hw checksum support and sw checksum requirements. ==== //depot/projects/netperf/sys/sys/timepps.h#2 (text+ko) ==== @@ -6,10 +6,10 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/sys/timepps.h,v 1.17 2002/04/30 19:46:20 phk Exp $ + * $FreeBSD: src/sys/sys/timepps.h,v 1.18 2003/11/23 18:52:23 phk Exp $ * - * The is a FreeBSD protype version of the "draft-mogul-pps-api-05.txt" - * specification for Pulse Per Second timing interfaces. + * The is a FreeBSD version of the RFC 2783 API for Pulse Per Second + * timing interfaces. */ #ifndef _SYS_TIMEPPS_H_