PERFORCE change 42999 for review
Sam Leffler
sam at FreeBSD.org
Mon Nov 24 09:51:19 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=42999
Change 42999 by sam at 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 <sys/cdefs.h>
-__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 <sys/param.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/conf.h>
@@ -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 <sys/cdefs.h>
-__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 <dev/vinum/vinumhdr.h>
@@ -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 <dev/vinum/vinumhdr.h>
@@ -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 <sys/cdefs.h>
-__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 <dev/vinum/vinumhdr.h>
#include <dev/vinum/request.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/conf.h>
@@ -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 <machine/in_cksum.h> /* 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_
More information about the p4-projects
mailing list