PERFORCE change 140431 for review
John Birrell
jb at FreeBSD.org
Tue Apr 22 22:37:30 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=140431
Change 140431 by jb at freebsd3 on 2008/04/22 22:37:12
IF7
Affected files ...
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/devid.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/libintl.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/mnttab.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/priv.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/solaris.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/zone.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/lib/libumem/umem.c#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/lib/libumem/umem.h#3 integrate
.. //depot/projects/dtrace7/src/cddl/compat/opensolaris/misc/mkdirp.c#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/kern/opensolaris_string.c#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/acl.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/byteorder.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/callb.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/dkio.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/mntent.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/sysmacros.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/taskq.h#3 integrate
.. //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 integrate
.. //depot/projects/dtrace7/src/sys/dev/acpi_support/acpi_asus.c#3 integrate
.. //depot/projects/dtrace7/src/sys/net/bpf.c#2 integrate
.. //depot/projects/dtrace7/src/sys/netinet/ip_input.c#3 integrate
.. //depot/projects/dtrace7/src/sys/netinet/ip_ipsec.c#3 integrate
.. //depot/projects/dtrace7/src/sys/netinet/ip_ipsec.h#2 integrate
.. //depot/projects/dtrace7/src/sys/netinet/tcp_var.h#4 integrate
Differences ...
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/devid.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/cddl/compat/opensolaris/include/devid.h,v 1.3.2.2 2008/04/22 09:21:27 jb Exp $
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/libintl.h#3 (text+ko) ====
@@ -1,3 +1,5 @@
+/* $FreeBSD: src/cddl/compat/opensolaris/include/libintl.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $ */
+
#ifndef _LIBINTL_H_
#define _LIBINTL_H_
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/mnttab.h#3 (text+ko) ====
@@ -1,3 +1,5 @@
+/* $FreeBSD: src/cddl/compat/opensolaris/include/mnttab.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $ */
+
#ifndef _OPENSOLARIS_MNTTAB_H_
#define _OPENSOLARIS_MNTTAB_H_
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/priv.h#3 (text+ko) ====
@@ -1,3 +1,5 @@
+/* $FreeBSD: src/cddl/compat/opensolaris/include/priv.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $ */
+
#ifndef _OPENSOLARIS_PRIV_H_
#define _OPENSOLARIS_PRIV_H_
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/solaris.h#3 (text+ko) ====
@@ -1,3 +1,5 @@
+/* $FreeBSD: src/cddl/compat/opensolaris/include/solaris.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $ */
+
#ifndef _SOLARIS_H_
#define _SOLARIS_H_
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/include/zone.h#3 (text+ko) ====
@@ -1,3 +1,5 @@
+/* $FreeBSD: src/cddl/compat/opensolaris/include/zone.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $ */
+
#ifndef _ZONE_H_
#define _ZONE_H_
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/lib/libumem/umem.c#3 (text+ko) ====
@@ -17,6 +17,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/cddl/compat/opensolaris/lib/libumem/umem.c,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $
*/
/*
* Copyright 2006 Ricardo Correia. All rights reserved.
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/lib/libumem/umem.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/cddl/compat/opensolaris/lib/libumem/umem.h,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $
*/
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/cddl/compat/opensolaris/misc/mkdirp.c#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/cddl/compat/opensolaris/misc/mkdirp.c,v 1.2.2.2 2008/04/22 09:21:28 jb Exp $
*/
/* Copyright (c) 1988 AT&T */
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/kern/opensolaris_string.c#3 (text+ko) ====
@@ -17,6 +17,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_string.c,v 1.3.2.2 2008/04/22 09:21:28 jb Exp $
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.3.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/acl.h#3 (text+ko) ====
@@ -17,6 +17,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/acl.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/byteorder.h#3 (text+ko) ====
@@ -17,6 +17,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/byteorder.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/callb.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/callb.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/dkio.h#3 (text+ko) ====
@@ -17,6 +17,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/dkio.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/mntent.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/mntent.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/sysmacros.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/sysmacros.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/taskq.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/taskq.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 (text+ko) ====
@@ -18,6 +18,8 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
+ *
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/taskq_impl.h,v 1.2.2.2 2008/04/22 09:21:29 jb Exp $
*/
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
==== //depot/projects/dtrace7/src/sys/dev/acpi_support/acpi_asus.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.30.2.1 2008/04/14 16:50:55 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpi_support/acpi_asus.c,v 1.30.2.2 2008/04/22 12:44:39 rpaulo Exp $");
/*
* Driver for extra ACPI-controlled gadgets (hotkeys, leds, etc) found on
@@ -375,6 +375,20 @@
{ .name = NULL }
};
+/*
+ * EeePC have an Asus ASUS010 gadget interface,
+ * but they can't be probed quite the same way as Asus laptops.
+ */
+static struct acpi_asus_model acpi_eeepc_models[] = {
+ {
+ .name = "EEE",
+ .brn_get = "\\_SB.ATKD.PBLG",
+ .brn_set = "\\_SB.ATKD.PBLS"
+ },
+
+ { .name = NULL }
+};
+
static struct {
char *name;
char *description;
@@ -444,13 +458,17 @@
ACPI_BUFFER Buf;
ACPI_OBJECT Arg, *Obj;
ACPI_OBJECT_LIST Args;
- static char *asus_ids[] = { "ATK0100", NULL };
+ static char *asus_ids[] = { "ATK0100", "ASUS010", NULL };
+ char *rstr;
ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
- if (acpi_disabled("asus") ||
- ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids) == NULL)
+ if (acpi_disabled("asus"))
+ return (ENXIO);
+ rstr = ACPI_ID_PROBE(device_get_parent(dev), dev, asus_ids);
+ if (rstr == NULL) {
return (ENXIO);
+ }
sc = device_get_softc(dev);
sc->dev = dev;
@@ -489,6 +507,14 @@
AcpiOsFree(Buf.Pointer);
return (0);
}
+
+ /* if EeePC */
+ if (strncmp("ASUS010", rstr, 7) == 0) {
+ sc->model = &acpi_eeepc_models[0];
+ device_set_desc(dev, "ASUS EeePC");
+ AcpiOsFree(Buf.Pointer);
+ return (0);
+ }
}
sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND);
==== //depot/projects/dtrace7/src/sys/net/bpf.c#2 (text+ko) ====
@@ -33,7 +33,7 @@
*
* @(#)bpf.c 8.4 (Berkeley) 1/9/95
*
- * $FreeBSD: src/sys/net/bpf.c,v 1.181.2.1 2007/10/20 15:09:24 csjp Exp $
+ * $FreeBSD: src/sys/net/bpf.c,v 1.181.2.3 2008/04/22 15:53:07 jkim Exp $
*/
#include "opt_bpf.h"
@@ -85,8 +85,6 @@
#define PRINET 26 /* interruptible */
-#define M_SKIP_BPF M_SKIP_FIREWALL
-
/*
* bpf_iflist is a list of BPF interface structures, each corresponding to a
* specific DLT. The same network interface might have several BPF interface
@@ -644,9 +642,9 @@
mc = m_dup(m, M_DONTWAIT);
if (mc != NULL)
mc->m_pkthdr.rcvif = ifp;
- /* XXX Do not return the same packet twice. */
+ /* Set M_PROMISC for outgoing packets to be discarded. */
if (d->bd_direction == BPF_D_INOUT)
- m->m_flags |= M_SKIP_BPF;
+ m->m_flags |= M_PROMISC;
} else
mc = NULL;
@@ -1332,9 +1330,9 @@
}
}
-#define BPF_CHECK_DIRECTION(d, m) \
- if (((d)->bd_direction == BPF_D_IN && (m)->m_pkthdr.rcvif == NULL) || \
- ((d)->bd_direction == BPF_D_OUT && (m)->m_pkthdr.rcvif != NULL))
+#define BPF_CHECK_DIRECTION(d, i) \
+ (((d)->bd_direction == BPF_D_IN && (i) == NULL) || \
+ ((d)->bd_direction == BPF_D_OUT && (i) != NULL))
/*
* Incoming linkage from device drivers, when packet is in an mbuf chain.
@@ -1347,8 +1345,9 @@
int gottime;
struct timeval tv;
- if (m->m_flags & M_SKIP_BPF) {
- m->m_flags &= ~M_SKIP_BPF;
+ /* Skip outgoing duplicate packets. */
+ if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) {
+ m->m_flags &= ~M_PROMISC;
return;
}
@@ -1358,7 +1357,7 @@
BPFIF_LOCK(bp);
LIST_FOREACH(d, &bp->bif_dlist, bd_next) {
- BPF_CHECK_DIRECTION(d, m)
+ if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif))
continue;
BPFD_LOCK(d);
++d->bd_rcount;
@@ -1401,8 +1400,9 @@
int gottime;
struct timeval tv;
- if (m->m_flags & M_SKIP_BPF) {
- m->m_flags &= ~M_SKIP_BPF;
+ /* Skip outgoing duplicate packets. */
+ if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) {
+ m->m_flags &= ~M_PROMISC;
return;
}
@@ -1421,7 +1421,7 @@
BPFIF_LOCK(bp);
LIST_FOREACH(d, &bp->bif_dlist, bd_next) {
- BPF_CHECK_DIRECTION(d, m)
+ if (BPF_CHECK_DIRECTION(d, m->m_pkthdr.rcvif))
continue;
BPFD_LOCK(d);
++d->bd_rcount;
==== //depot/projects/dtrace7/src/sys/netinet/ip_input.c#3 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netinet/ip_input.c,v 1.332.2.1 2007/12/19 08:10:30 guido Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/ip_input.c,v 1.332.2.2 2008/04/22 12:02:55 bz Exp $");
#include "opt_bootp.h"
#include "opt_ipfw.h"
@@ -1249,6 +1249,7 @@
struct in_ifaddr *ia = NULL;
struct mbuf *mcopy;
struct in_addr dest;
+ struct route ro;
int error, type = 0, code = 0, mtu = 0;
if (m->m_flags & (M_BCAST|M_MCAST) || in_canforward(ip->ip_dst) == 0) {
@@ -1326,7 +1327,6 @@
dest.s_addr = 0;
if (!srcrt && ipsendredirects && ia->ia_ifp == m->m_pkthdr.rcvif) {
struct sockaddr_in *sin;
- struct route ro;
struct rtentry *rt;
bzero(&ro, sizeof(ro));
@@ -1358,7 +1358,20 @@
RTFREE(rt);
}
- error = ip_output(m, NULL, NULL, IP_FORWARDING, NULL, NULL);
+ /*
+ * Try to cache the route MTU from ip_output so we can consider it for
+ * the ICMP_UNREACH_NEEDFRAG "Next-Hop MTU" field described in RFC1191.
+ */
+ bzero(&ro, sizeof(ro));
+ rtalloc_ign(&ro, RTF_CLONING);
+
+ error = ip_output(m, NULL, &ro, IP_FORWARDING, NULL, NULL);
+
+ if (error == EMSGSIZE && ro.ro_rt)
+ mtu = ro.ro_rt->rt_rmx.rmx_mtu;
+ if (ro.ro_rt)
+ RTFREE(ro.ro_rt);
+
if (error)
ipstat.ips_cantforward++;
else {
@@ -1394,14 +1407,23 @@
code = ICMP_UNREACH_NEEDFRAG;
#ifdef IPSEC
- mtu = ip_ipsec_mtu(m);
+ /*
+ * If IPsec is configured for this path,
+ * override any possibly mtu value set by ip_output.
+ */
+ mtu = ip_ipsec_mtu(m, mtu);
#endif /* IPSEC */
/*
+ * If the MTU was set before make sure we are below the
+ * interface MTU.
* If the MTU wasn't set before use the interface mtu or
* fall back to the next smaller mtu step compared to the
* current packet size.
*/
- if (mtu == 0) {
+ if (mtu != 0) {
+ if (ia != NULL)
+ mtu = min(mtu, ia->ia_ifp->if_mtu);
+ } else {
if (ia != NULL)
mtu = ia->ia_ifp->if_mtu;
else
==== //depot/projects/dtrace7/src/sys/netinet/ip_ipsec.c#3 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netinet/ip_ipsec.c,v 1.8.2.1 2008/03/21 23:22:06 bz Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/ip_ipsec.c,v 1.8.2.2 2008/04/22 12:02:55 bz Exp $");
#include "opt_ipsec.h"
@@ -191,9 +191,8 @@
* Returns MTU suggestion for ICMP needfrag reply.
*/
int
-ip_ipsec_mtu(struct mbuf *m)
+ip_ipsec_mtu(struct mbuf *m, int mtu)
{
- int mtu = 0;
/*
* If the packet is routed over IPsec tunnel, tell the
* originator the tunnel MTU.
==== //depot/projects/dtrace7/src/sys/netinet/ip_ipsec.h#2 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/netinet/ip_ipsec.h,v 1.2 2007/08/05 16:16:15 bz Exp $
+ * $FreeBSD: src/sys/netinet/ip_ipsec.h,v 1.2.2.1 2008/04/22 12:02:55 bz Exp $
*/
#ifndef _NETINET_IP_IPSEC_H_
@@ -35,7 +35,7 @@
int ip_ipsec_filtertunnel(struct mbuf *);
int ip_ipsec_fwd(struct mbuf *);
int ip_ipsec_input(struct mbuf *);
-int ip_ipsec_mtu(struct mbuf *);
+int ip_ipsec_mtu(struct mbuf *, int);
int ip_ipsec_output(struct mbuf **, struct inpcb *, int *, int *,
struct route **, struct route *, struct sockaddr_in **,
struct in_ifaddr **, struct ifnet **);
==== //depot/projects/dtrace7/src/sys/netinet/tcp_var.h#4 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* @(#)tcp_var.h 8.4 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.157.2.2 2008/03/11 06:34:28 silby Exp $
+ * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.157.2.3 2008/04/22 11:57:04 bz Exp $
*/
#ifndef _NETINET_TCP_VAR_H_
@@ -235,17 +235,14 @@
* to tcp_dooptions and tcp_addoptions.
* The binary order of the to_flags is relevant for packing of the
* options in tcp_addoptions.
- * SACK should be kept after TS; some broken cable modem / router
- * devices were found in the field that ignore SYN-ACKs with
- * SACK before TS.
*/
struct tcpopt {
u_long to_flags; /* which options are present */
#define TOF_MSS 0x0001 /* maximum segment size */
#define TOF_SCALE 0x0002 /* window scaling */
+#define TOF_SACKPERM 0x0004 /* SACK permitted */
#define TOF_TS 0x0010 /* timestamp */
-#define TOF_SIGNATURE 0x0020 /* TCP-MD5 signature option (RFC2385) */
-#define TOF_SACKPERM 0x0040 /* SACK permitted */
+#define TOF_SIGNATURE 0x0040 /* TCP-MD5 signature option (RFC2385) */
#define TOF_SACK 0x0080 /* Peer sent SACK option */
#define TOF_MAXOPT 0x0100
u_int32_t to_tsval; /* new timestamp */
More information about the p4-projects
mailing list