PERFORCE change 136745 for review

Rafal Jaworowski raj at FreeBSD.org
Mon Mar 3 14:17:28 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=136745

Change 136745 by raj at raj_mimi on 2008/03/03 14:17:22

	IFC @136744

Affected files ...

.. //depot/projects/e500/games/fortune/datfiles/fortunes#10 integrate
.. //depot/projects/e500/include/pthread_np.h#5 integrate
.. //depot/projects/e500/lib/libelf/elf_update.c#3 integrate
.. //depot/projects/e500/lib/libthr/pthread.map#7 integrate
.. //depot/projects/e500/lib/libthr/thread/Makefile.inc#2 integrate
.. //depot/projects/e500/lib/libthr/thread/thr_affinity.c#1 branch
.. //depot/projects/e500/share/man/man4/fwohci.4#3 integrate
.. //depot/projects/e500/share/misc/committers-ports.dot#7 integrate
.. //depot/projects/e500/sys/arm/xscale/ixp425/ixp425_iic.c#2 integrate
.. //depot/projects/e500/sys/dev/re/if_re.c#5 integrate
.. //depot/projects/e500/sys/modules/cxgb/cxgb_t3fw/Makefile#2 integrate
.. //depot/projects/e500/sys/netgraph/ng_pppoe.c#5 integrate
.. //depot/projects/e500/sys/netinet/ip_fw_pfil.c#4 integrate
.. //depot/projects/e500/sys/pci/if_rl.c#4 integrate
.. //depot/projects/e500/sys/pci/if_rlreg.h#5 integrate
.. //depot/projects/e500/sys/powerpc/include/pmap.h#6 edit
.. //depot/projects/e500/sys/powerpc/include/psl.h#3 integrate
.. //depot/projects/e500/sys/powerpc/include/pte.h#3 integrate
.. //depot/projects/e500/sys/powerpc/include/sf_buf.h#3 integrate
.. //depot/projects/e500/sys/powerpc/include/spr.h#5 integrate
.. //depot/projects/e500/sys/powerpc/include/trap.h#7 edit
.. //depot/projects/e500/sys/powerpc/include/vmparam.h#9 integrate
.. //depot/projects/e500/sys/ufs/ufs/ufs_extattr.c#5 integrate
.. //depot/projects/e500/usr.bin/calendar/calendars/calendar.freebsd#10 integrate
.. //depot/projects/e500/usr.bin/find/find.1#4 integrate
.. //depot/projects/e500/usr.bin/find/main.c#2 integrate
.. //depot/projects/e500/usr.bin/unifdef/unifdef.c#3 integrate

Differences ...

==== //depot/projects/e500/games/fortune/datfiles/fortunes#10 (text+ko) ====

@@ -1,5 +1,5 @@
 This fortune brought to you by:
-$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.257 2008/02/28 15:16:24 yar Exp $
+$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.258 2008/03/03 10:06:52 dds Exp $
 %
 =======================================================================
 ||								     ||
@@ -49242,7 +49242,7 @@
 admit it, I tell him, `Forget it'.  If they bring a car back late we
 overlook it.  If they've had a crash and it doesn't involve another vehicle
 we might overlook that too."
-	"Where's the ashtray?" asked on Los Angeles wife, as she settled
+	"Where's the ashtray?" asked one Los Angeles wife, as she settled
 into the ripped interior.  "Honey," said her husband, "the whole car's the
 ash tray."
 		-- Stephen Pile, "The Book of Heroic Failures"

==== //depot/projects/e500/include/pthread_np.h#5 (text+ko) ====

@@ -26,11 +26,14 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/include/pthread_np.h,v 1.20 2008/02/06 19:34:31 des Exp $
+ * $FreeBSD: src/include/pthread_np.h,v 1.21 2008/03/03 08:28:13 davidxu Exp $
  */
 #ifndef _PTHREAD_NP_H_
 #define _PTHREAD_NP_H_
 
+#include <sys/param.h>
+#include <sys/cpuset.h>
+
 /*
  * Non-POSIX type definitions:
  */
@@ -42,6 +45,9 @@
 __BEGIN_DECLS
 int pthread_attr_setcreatesuspend_np(pthread_attr_t *);
 int pthread_attr_get_np(pthread_t, pthread_attr_t *);
+int pthread_attr_getaffinity_np(const pthread_attr_t *, size_t, cpuset_t *);
+int pthread_attr_setaffinity_np(pthread_attr_t *, size_t, const cpuset_t *);
+int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *);
 int pthread_main_np(void);
 int pthread_multi_np(void);
 int pthread_mutexattr_getkind_np(pthread_mutexattr_t);
@@ -54,6 +60,7 @@
 int pthread_mutex_getyieldloops_np(pthread_mutex_t *mutex, int *count);
 int pthread_mutex_setyieldloops_np(pthread_mutex_t *mutex, int count);
 int pthread_mutex_isowned_np(pthread_mutex_t *mutex);
+int pthread_setaffinity_np(pthread_t, size_t, const cpuset_t *);
 int pthread_single_np(void);
 void pthread_suspend_all_np(void);
 int pthread_suspend_np(pthread_t);

==== //depot/projects/e500/lib/libelf/elf_update.c#3 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2006 Joseph Koshy
+ * Copyright (c) 2006-2008 Joseph Koshy
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libelf/elf_update.c,v 1.3 2007/09/08 08:20:12 jkoshy Exp $");
+__FBSDID("$FreeBSD: src/lib/libelf/elf_update.c,v 1.4 2008/03/03 04:29:25 jkoshy Exp $");
 
 #include <sys/mman.h>
 #include <sys/param.h>
@@ -246,13 +246,19 @@
 		tmin = t->s_offset;
 		tmax = tmin + t->s_size;
 
-		/* check if there is an overlap */
-		if (tmax < smin) {
+		if (tmax <= smin) {
+			/*
+			 * 't' lies entirely before 's': ...| t |...| s |...
+			 */
 			prevt = t;
 			continue;
-		} else if (smax < tmin)
+		} else if (smax <= tmin)
+			/*
+			 * 's' lies entirely before 't', and after 'prevt':
+			 *      ...| prevt |...| s |...| t |...
+			 */
 			break;
-		else {
+		else {	/* 's' and 't' overlap. */
 			LIBELF_SET_ERROR(LAYOUT, 0);
 			return (0);
 		}

==== //depot/projects/e500/lib/libthr/pthread.map#7 (text+ko) ====

@@ -1,5 +1,5 @@
 /*
- * $FreeBSD: src/lib/libthr/pthread.map,v 1.26 2008/02/06 20:45:46 des Exp $
+ * $FreeBSD: src/lib/libthr/pthread.map,v 1.27 2008/03/03 09:16:28 davidxu Exp $
  */
 
 /*
@@ -117,8 +117,8 @@
 	pthread_rwlockattr_getpshared;
 	pthread_rwlockattr_init;
 	pthread_rwlockattr_setpshared;
+	pthread_set_name_np;
 	pthread_self;
-	pthread_set_name_np;
 	pthread_setcancelstate;
 	pthread_setcanceltype;
 	pthread_setconcurrency;
@@ -388,6 +388,8 @@
 };
 
 FBSD_1.1 {
+	pthread_getaffinity_np;
+	pthread_setaffinity_np;
 	pthread_mutex_getspinloops_np;
 	pthread_mutex_getyieldloops_np;
 	pthread_mutex_isowned_np;

==== //depot/projects/e500/lib/libthr/thread/Makefile.inc#2 (text+ko) ====

@@ -1,9 +1,10 @@
-# $FreeBSD: src/lib/libthr/thread/Makefile.inc,v 1.16 2006/04/04 02:57:49 davidxu Exp $
+# $FreeBSD: src/lib/libthr/thread/Makefile.inc,v 1.17 2008/03/03 09:16:29 davidxu Exp $
 
 # thr sources
 .PATH: ${.CURDIR}/thread
 
 SRCS+= \
+	thr_affinity.c \
 	thr_attr.c \
 	thr_barrier.c \
 	thr_barrierattr.c \

==== //depot/projects/e500/share/man/man4/fwohci.4#3 (text+ko) ====

@@ -29,10 +29,10 @@
 .\" ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/fwohci.4,v 1.16 2007/06/17 10:40:25 simokawa Exp $
+.\" $FreeBSD: src/share/man/man4/fwohci.4,v 1.17 2008/03/03 08:55:50 brueffer Exp $
 .\"
 .\"
-.Dd June 23, 2005
+.Dd March 3, 2008
 .Dt FWOHCI 4
 .Os
 .Sh NAME
@@ -99,8 +99,6 @@
 .It
 Sony CX3022
 .It
-Sony i.LINK (CXD1947)
-.It
 Sony i.LINK (CXD3222)
 .It
 Sun PCIO-2 (RIO 1394)

==== //depot/projects/e500/share/misc/committers-ports.dot#7 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/misc/committers-ports.dot,v 1.66 2008/02/26 15:38:46 gahr Exp $
+# $FreeBSD: src/share/misc/committers-ports.dot,v 1.67 2008/03/03 13:12:27 jadawin Exp $
 
 # This file is meant to list all FreeBSD ports committers and describe the
 # mentor-mentee relationships between them.
@@ -80,6 +80,7 @@
 hq [label="Herve Quiroz\nhq at FreeBSD.org\n2004/08/05"]
 ijliao [label="Ying-Chieh Liao\nijliao at FreeBSD.org\n2001/01/20"]
 itetcu [label="Ion-Mihai Tetcu\nitetcu at FreeBSD.org\n2006/06/07"]
+jadawin [label="Philippe Audeoud\njadawin at FreeBSD.org\n2008/03/02"]
 jkim [label="Jung-uk Kim\njkim at FreeBSD.org\n2007/09/12"]
 jmelo [label="Jean Milanez Melo\njmelo at FreeBSD.org\n2006/03/31"]
 joerg [label="Joerg Wunsch\njoerg at FreeBSD.org\n1994/08/22"]
@@ -290,6 +291,10 @@
 
 steve -> netchild
 
+tabthorpe -> jadawin
+
+thierry -> jadawin
+
 tmclaugh -> itetcu
 tmclaugh -> xride
 

==== //depot/projects/e500/sys/arm/xscale/ixp425/ixp425_iic.c#2 (text+ko) ====

@@ -9,13 +9,6 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *      This product includes software developed for the NetBSD Project by
- *      Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- *    or promote products derived from this software without specific prior
- *    written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
@@ -31,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.1 2006/11/19 23:55:23 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_iic.c,v 1.2 2008/03/03 06:39:36 kevlo Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>

==== //depot/projects/e500/sys/dev/re/if_re.c#5 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.103 2008/01/17 23:37:47 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/re/if_re.c,v 1.106 2008/03/03 04:15:07 yongari Exp $");
 
 /*
  * RealTek 8139C+/8169/8169S/8110S/8168/8111/8101E PCI NIC driver
@@ -201,8 +201,7 @@
 	{ LINKSYS_VENDORID, LINKSYS_DEVICEID_EG1032, RL_HWREV_8169S,
 		"Linksys EG1032 (RTL8169S) Gigabit Ethernet" },
 	{ USR_VENDORID, USR_DEVICEID_997902, RL_HWREV_8169S,
-		"US Robotics 997902 (RTL8169S) Gigabit Ethernet" },
-	{ 0, 0, 0, NULL }
+		"US Robotics 997902 (RTL8169S) Gigabit Ethernet" }
 };
 
 static struct rl_hwrev re_hwrevs[] = {
@@ -280,6 +279,8 @@
 
 static void re_setmulti		(struct rl_softc *);
 static void re_reset		(struct rl_softc *);
+static void re_setwol		(struct rl_softc *);
+static void re_clrwol		(struct rl_softc *);
 
 #ifdef RE_DIAG
 static int re_diag		(struct rl_softc *);
@@ -916,51 +917,38 @@
 	device_t		dev;
 {
 	struct rl_type		*t;
-	struct rl_softc		*sc;
-	int			rid;
-	u_int32_t		hwrev;
+	uint16_t		devid, vendor;
+	uint16_t		revid, sdevid;
+	int			i;
+	
+	vendor = pci_get_vendor(dev);
+	devid = pci_get_device(dev);
+	revid = pci_get_revid(dev);
+	sdevid = pci_get_subdevice(dev);
 
-	t = re_devs;
-	sc = device_get_softc(dev);
-
-	while (t->rl_name != NULL) {
-		if ((pci_get_vendor(dev) == t->rl_vid) &&
-		    (pci_get_device(dev) == t->rl_did)) {
+	if (vendor == LINKSYS_VENDORID && devid == LINKSYS_DEVICEID_EG1032) {
+		if (sdevid != LINKSYS_SUBDEVICE_EG1032_REV3) {
 			/*
 			 * Only attach to rev. 3 of the Linksys EG1032 adapter.
-			 * Rev. 2 i supported by sk(4).
+			 * Rev. 2 is supported by sk(4).
 			 */
-			if ((t->rl_vid == LINKSYS_VENDORID) &&
-				(t->rl_did == LINKSYS_DEVICEID_EG1032) &&
-				(pci_get_subdevice(dev) !=
-				LINKSYS_SUBDEVICE_EG1032_REV3)) {
-				t++;
-				continue;
-			}
+			return (ENXIO);
+		}
+	}
+
+	if (vendor == RT_VENDORID && devid == RT_DEVICEID_8139) {
+		if (revid != 0x20) {
+			/* 8139, let rl(4) take care of this device. */
+			return (ENXIO);
+		}
+	}
 
-			/*
-			 * Temporarily map the I/O space
-			 * so we can read the chip ID register.
-			 */
-			rid = RL_RID;
-			sc->rl_res = bus_alloc_resource_any(dev, RL_RES, &rid,
-			    RF_ACTIVE);
-			if (sc->rl_res == NULL) {
-				device_printf(dev,
-				    "couldn't map ports/memory\n");
-				return (ENXIO);
-			}
-			sc->rl_btag = rman_get_bustag(sc->rl_res);
-			sc->rl_bhandle = rman_get_bushandle(sc->rl_res);
-			hwrev = CSR_READ_4(sc, RL_TXCFG) & RL_TXCFG_HWREV;
-			bus_release_resource(dev, RL_RES,
-			    RL_RID, sc->rl_res);
-			if (t->rl_basetype == hwrev) {
-				device_set_desc(dev, t->rl_name);
-				return (BUS_PROBE_DEFAULT);
-			}
+	t = re_devs;
+	for (i = 0; i < sizeof(re_devs) / sizeof(re_devs[0]); i++, t++) {
+		if (vendor == t->rl_vid && devid == t->rl_did) {
+			device_set_desc(dev, t->rl_name);
+			return (BUS_PROBE_DEFAULT);
 		}
-		t++;
 	}
 
 	return (ENXIO);
@@ -1266,6 +1254,11 @@
 		sc->rl_ldata.rl_tx_desc_cnt = RL_8139_TX_DESC_CNT;
 		sc->rl_ldata.rl_rx_desc_cnt = RL_8139_RX_DESC_CNT;
 	}
+	if (hw_rev->rl_desc == NULL) {
+		device_printf(dev, "Unsupported revision : 0x%08x\n", hwrev);
+		error = ENXIO;
+		goto fail;
+	}
 
 	error = re_allocmem(dev, sc);
 	if (error)
@@ -1334,6 +1327,9 @@
 	ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING;
 	if (ifp->if_capabilities & IFCAP_HWCSUM)
 		ifp->if_capabilities |= IFCAP_VLAN_HWCSUM;
+	/* Enable WOL if PM is supported. */
+	if (pci_find_extcap(sc->rl_dev, PCIY_PMG, &reg) == 0)
+		ifp->if_capabilities |= IFCAP_WOL;
 	ifp->if_capenable = ifp->if_capabilities;
 #ifdef DEVICE_POLLING
 	ifp->if_capabilities |= IFCAP_POLLING;
@@ -2635,10 +2631,18 @@
 
 	switch (command) {
 	case SIOCSIFMTU:
+		if (ifr->ifr_mtu < ETHERMIN || ifr->ifr_mtu > RL_JUMBO_MTU) {
+			error = EINVAL;
+			break;
+		}
+		if (sc->rl_type == RL_8139CPLUS &&
+		    ifr->ifr_mtu > RL_MAX_FRAMELEN) {
+			error = EINVAL;
+			break;
+		}
 		RL_LOCK(sc);
-		if (ifr->ifr_mtu > RL_JUMBO_MTU)
-			error = EINVAL;
-		ifp->if_mtu = ifr->ifr_mtu;
+		if (ifp->if_mtu != ifr->ifr_mtu)
+			ifp->if_mtu = ifr->ifr_mtu;
 		RL_UNLOCK(sc);
 		break;
 	case SIOCSIFFLAGS:
@@ -2715,6 +2719,15 @@
 			else
 				ifp->if_hwassist &= ~CSUM_TSO;
 		}
+		if ((mask & IFCAP_WOL) != 0 &&
+		    (ifp->if_capabilities & IFCAP_WOL) != 0) {
+			if ((mask & IFCAP_WOL_UCAST) != 0)
+				ifp->if_capenable ^= IFCAP_WOL_UCAST;
+			if ((mask & IFCAP_WOL_MCAST) != 0)
+				ifp->if_capenable ^= IFCAP_WOL_MCAST;
+			if ((mask & IFCAP_WOL_MAGIC) != 0)
+				ifp->if_capenable ^= IFCAP_WOL_MAGIC;
+		}
 		if (reinit && ifp->if_drv_flags & IFF_DRV_RUNNING)
 			re_init(sc);
 		VLAN_CAPABILITIES(ifp);
@@ -2820,6 +2833,7 @@
 
 	RL_LOCK(sc);
 	re_stop(sc);
+	re_setwol(sc);
 	sc->suspended = 1;
 	RL_UNLOCK(sc);
 
@@ -2848,6 +2862,11 @@
 	if (ifp->if_flags & IFF_UP)
 		re_init_locked(sc);
 
+	/*
+	 * Clear WOL matching such that normal Rx filtering
+	 * wouldn't interfere with WOL patterns.
+	 */
+	re_clrwol(sc);
 	sc->suspended = 0;
 	RL_UNLOCK(sc);
 
@@ -2874,7 +2893,95 @@
 	 * cases.
 	 */
 	sc->rl_ifp->if_flags &= ~IFF_UP;
+	re_setwol(sc);
 	RL_UNLOCK(sc);
 
 	return (0);
 }
+
+static void
+re_setwol(sc)
+	struct rl_softc		*sc;
+{
+	struct ifnet		*ifp;
+	int			pmc;
+	uint16_t		pmstat;
+	uint8_t			v;
+
+	RL_LOCK_ASSERT(sc);
+
+	if (pci_find_extcap(sc->rl_dev, PCIY_PMG, &pmc) != 0)
+		return;
+
+	ifp = sc->rl_ifp;
+	/* Enable config register write. */
+	CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE);
+
+	/* Enable PME. */
+	v = CSR_READ_1(sc, RL_CFG1);
+	v &= ~RL_CFG1_PME;
+	if ((ifp->if_capenable & IFCAP_WOL) != 0)
+		v |= RL_CFG1_PME;
+	CSR_WRITE_1(sc, RL_CFG1, v);
+
+	v = CSR_READ_1(sc, RL_CFG3);
+	v &= ~(RL_CFG3_WOL_LINK | RL_CFG3_WOL_MAGIC);
+	if ((ifp->if_capenable & IFCAP_WOL_MAGIC) != 0)
+		v |= RL_CFG3_WOL_MAGIC;
+	CSR_WRITE_1(sc, RL_CFG3, v);
+
+	/* Config register write done. */
+	CSR_WRITE_1(sc, RL_EECMD, 0);
+
+	v = CSR_READ_1(sc, RL_CFG5);
+	v &= ~(RL_CFG5_WOL_BCAST | RL_CFG5_WOL_MCAST | RL_CFG5_WOL_UCAST);
+	v &= ~RL_CFG5_WOL_LANWAKE;
+	if ((ifp->if_capenable & IFCAP_WOL_UCAST) != 0)
+		v |= RL_CFG5_WOL_UCAST;
+	if ((ifp->if_capenable & IFCAP_WOL_MCAST) != 0)
+		v |= RL_CFG5_WOL_MCAST | RL_CFG5_WOL_BCAST;
+	if ((ifp->if_capenable & IFCAP_WOL) != 0)
+		v |= RL_CFG5_WOL_LANWAKE;
+	CSR_WRITE_1(sc, RL_CFG5, v);
+
+	/*
+	 * It seems that hardware resets its link speed to 100Mbps in
+	 * power down mode so switching to 100Mbps in driver is not
+	 * needed.
+	 */
+
+	/* Request PME if WOL is requested. */
+	pmstat = pci_read_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, 2);
+	pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE);
+	if ((ifp->if_capenable & IFCAP_WOL) != 0)
+		pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE;
+	pci_write_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, pmstat, 2);
+}
+
+static void
+re_clrwol(sc)
+	struct rl_softc		*sc;
+{
+	int			pmc;
+	uint8_t			v;
+
+	RL_LOCK_ASSERT(sc);
+
+	if (pci_find_extcap(sc->rl_dev, PCIY_PMG, &pmc) != 0)
+		return;
+
+	/* Enable config register write. */
+	CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE);
+
+	v = CSR_READ_1(sc, RL_CFG3);
+	v &= ~(RL_CFG3_WOL_LINK | RL_CFG3_WOL_MAGIC);
+	CSR_WRITE_1(sc, RL_CFG3, v);
+
+	/* Config register write done. */
+	CSR_WRITE_1(sc, RL_EECMD, 0);
+
+	v = CSR_READ_1(sc, RL_CFG5);
+	v &= ~(RL_CFG5_WOL_BCAST | RL_CFG5_WOL_MCAST | RL_CFG5_WOL_UCAST);
+	v &= ~RL_CFG5_WOL_LANWAKE;
+	CSR_WRITE_1(sc, RL_CFG5, v);
+}

==== //depot/projects/e500/sys/modules/cxgb/cxgb_t3fw/Makefile#2 (text+ko) ====

@@ -1,8 +1,9 @@
-# $FreeBSD: src/sys/modules/cxgb/cxgb_t3fw/Makefile,v 1.1 2008/02/26 03:02:20 kmacy Exp $
+# $FreeBSD: src/sys/modules/cxgb/cxgb_t3fw/Makefile,v 1.2 2008/03/03 03:34:52 kmacy Exp $
 
 CXGB = ${.CURDIR}/../../../dev/cxgb
 .PATH: ${CXGB} 
 
+KMOD= cxgb_t3fw
 SRCS+= cxgb_t3fw.c
 
 .include <bsd.kmod.mk>
==== //depot/projects/e500/sys/netgraph/ng_pppoe.c#5 (text+ko) ====

@@ -37,7 +37,7 @@
  *
  * Author: Julian Elischer <julian at freebsd.org>
  *
- * $FreeBSD: src/sys/netgraph/ng_pppoe.c,v 1.92 2008/02/06 20:37:34 mav Exp $
+ * $FreeBSD: src/sys/netgraph/ng_pppoe.c,v 1.93 2008/03/02 23:26:35 mav Exp $
  * $Whistle: ng_pppoe.c,v 1.10 1999/11/01 09:24:52 julian Exp $
  */
 
@@ -281,45 +281,8 @@
  * Author:	Michal Ostrowski <mostrows at styx.uwaterloo.ca>		 *
  ************************************************************************/
 
-/*
- * Generate a new session id
- * XXX find out the FreeBSD locking scheme.
- */
-static uint16_t
-get_new_sid(node_p node)
-{
-	static int pppoe_sid = 10;
-	hook_p	hook;
-	uint16_t val;
-
-restart:
-	val = pppoe_sid++;
-	/*
-	 * Spec says 0xFFFF is reserved.
-	 * Also don't use 0x0000
-	 */
-	if (val == 0xffff) {
-		pppoe_sid = 20;
-		goto restart;
-	}
-
-	/* Check it isn't already in use. */
-	LIST_FOREACH(hook, &node->nd_hooks, hk_hooks) {
-		sessp sp = NG_HOOK_PRIVATE(hook);
-
-		/* Skip any nonsession hook. */
-		if (sp == NULL)
-			continue;
-		if (sp->Session_ID == val)
-			goto restart;
-	}
-
-	CTR2(KTR_NET, "%20s: new sid %d", __func__, val);
 
-	return (val);
-}
 
-
 /*
  * Return the location where the next tag can be put
  */
@@ -559,6 +522,42 @@
 /**************************************************************************
  * Routines to find a particular session that matches an incoming packet. *
  **************************************************************************/
+/* Find free session and add to hash. */
+static uint16_t
+pppoe_getnewsession(sessp sp)
+{
+	const priv_p privp = NG_NODE_PRIVATE(NG_HOOK_NODE(sp->hook));
+	static uint16_t pppoe_sid = 1;
+	sessp	tsp;
+	uint16_t val, hash;
+
+restart:
+	/* Atomicity is not needed here as value will be checked. */
+	val = pppoe_sid++;
+	/* Spec says 0xFFFF is reserved, also don't use 0x0000. */
+	if (val == 0xffff || val == 0x0000)
+		val = pppoe_sid = 1;
+
+	/* Check it isn't already in use. */
+	hash = SESSHASH(val);
+	mtx_lock(&privp->sesshash[hash].mtx);
+	TAILQ_FOREACH(tsp, &privp->sesshash[hash].head, sessions) {
+		if (tsp->Session_ID == val)
+			break;
+	}
+	if (!tsp) {
+		sp->Session_ID = val;
+		TAILQ_INSERT_HEAD(&privp->sesshash[hash].head, sp, sessions);
+	}
+	mtx_unlock(&privp->sesshash[hash].mtx);
+	if (tsp)
+		goto restart;
+
+	CTR2(KTR_NET, "%20s: new sid %d", __func__, val);
+
+	return (val);
+}
+
 /* Add specified session to hash. */
 static void
 pppoe_addsession(sessp sp)
@@ -1545,9 +1544,7 @@
 			neg->pkt->pkt_header.ph.code = PADS_CODE;
 			if (sp->Session_ID == 0) {
 				neg->pkt->pkt_header.ph.sid =
-				    htons(sp->Session_ID
-					= get_new_sid(node));
-				pppoe_addsession(sp);
+				    htons(pppoe_getnewsession(sp));
 			}
 			send_sessionid(sp);
 			neg->timeout = 0;

==== //depot/projects/e500/sys/netinet/ip_fw_pfil.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netinet/ip_fw_pfil.c,v 1.26 2007/11/06 23:01:42 oleg Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/ip_fw_pfil.c,v 1.27 2008/03/03 10:12:46 piso Exp $");
 
 #if !defined(KLD_MODULE)
 #include "opt_ipfw.h"
@@ -566,5 +566,5 @@
 	ipfw_modevent,
 	0
 };
-DECLARE_MODULE(ipfw, ipfwmod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY);
+DECLARE_MODULE(ipfw, ipfwmod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY - 256);
 MODULE_VERSION(ipfw, 2);

==== //depot/projects/e500/sys/pci/if_rl.c#4 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.172 2007/11/26 18:25:07 remko Exp $");
+__FBSDID("$FreeBSD: src/sys/pci/if_rl.c,v 1.173 2008/03/03 04:15:08 yongari Exp $");
 
 /*
  * RealTek 8129/8139 PCI NIC driver
@@ -175,8 +175,7 @@
 	{ LEVEL1_VENDORID, LEVEL1_DEVICEID_FPC0106TX, RL_8139,
 		"LevelOne FPC-0106TX" },
 	{ EDIMAX_VENDORID, EDIMAX_DEVICEID_EP4103DL, RL_8139,
-		"Edimax EP-4103DL CardBus" },
-	{ 0, 0, 0, NULL }
+		"Edimax EP-4103DL CardBus" }
 };
 
 static int rl_attach(device_t);
@@ -730,48 +729,26 @@
 static int
 rl_probe(device_t dev)
 {
-	struct rl_softc		*sc;
-	struct rl_type		*t = rl_devs;
-	int			rid;
-	uint32_t		hwrev;
+	struct rl_type		*t;
+	uint16_t		devid, revid, vendor;
+	int			i;
+	
+	vendor = pci_get_vendor(dev);
+	devid = pci_get_device(dev);
+	revid = pci_get_revid(dev);
 
-	sc = device_get_softc(dev);
-
-	while (t->rl_name != NULL) {
-		if ((pci_get_vendor(dev) == t->rl_vid) &&
-		    (pci_get_device(dev) == t->rl_did)) {
-			/*
-			 * Temporarily map the I/O space
-			 * so we can read the chip ID register.
-			 */
-			rid = RL_RID;
-			sc->rl_res = bus_alloc_resource_any(dev, RL_RES, &rid,
-			    RF_ACTIVE);
-			if (sc->rl_res == NULL) {
-				device_printf(dev,
-				    "couldn't map ports/memory\n");
-				return (ENXIO);
-			}
-			sc->rl_btag = rman_get_bustag(sc->rl_res);
-			sc->rl_bhandle = rman_get_bushandle(sc->rl_res);
-
-			hwrev = CSR_READ_4(sc, RL_TXCFG) & RL_TXCFG_HWREV;
-			bus_release_resource(dev, RL_RES, RL_RID, sc->rl_res);
-
-			/* Don't attach to 8139C+ or 8169/8110 chips. */
-			if (hwrev == RL_HWREV_8139CPLUS ||
-			    (hwrev == RL_HWREV_8169 &&
-			    t->rl_did == RT_DEVICEID_8169) ||
-			    hwrev == RL_HWREV_8169S ||
-			    hwrev == RL_HWREV_8110S) {
-				t++;
-				continue;
-			}
-
+	if (vendor == RT_VENDORID && devid == RT_DEVICEID_8139) {
+		if (revid == 0x20) {
+			/* 8139C+, let re(4) take care of this device. */
+			return (ENXIO);
+		}
+	}
+	t = rl_devs;
+	for (i = 0; i < sizeof(rl_devs) / sizeof(rl_devs[0]); i++, t++) {
+		if (vendor == t->rl_vid && devid == t->rl_did) {
 			device_set_desc(dev, t->rl_name);
 			return (BUS_PROBE_DEFAULT);
 		}
-		t++;
 	}
 
 	return (ENXIO);

==== //depot/projects/e500/sys/pci/if_rlreg.h#5 (text+ko) ====

@@ -29,7 +29,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/pci/if_rlreg.h,v 1.70 2008/01/15 01:10:31 yongari Exp $
+ * $FreeBSD: src/sys/pci/if_rlreg.h,v 1.72 2008/03/03 03:41:06 yongari Exp $
  */
 
 /*
@@ -76,7 +76,11 @@
 #define RL_EECMD	0x0050		/* EEPROM command register */
 #define RL_CFG0		0x0051		/* config register #0 */
 #define RL_CFG1		0x0052		/* config register #1 */
-                                        /* 0053-0057 reserved */   
+#define	RL_CFG2		0x0053		/* config register #2 */
+#define	RL_CFG3		0x0054		/* config register #3 */
+#define	RL_CFG4		0x0055		/* config register #4 */
+#define	RL_CFG5		0x0056		/* config register #5 */
+					/* 0057 reserved */
 #define RL_MEDIASTAT	0x0058		/* media status register (8139) */
 					/* 0059-005A reserved */
 #define RL_MII		0x005A		/* 8129 chip only */
@@ -359,16 +363,50 @@
  * Config 1 register
  */
 #define RL_CFG1_PWRDWN		0x01
+#define RL_CFG1_PME		0x01	
 #define RL_CFG1_SLEEP		0x02
+#define RL_CFG1_VPDEN		0x02
 #define RL_CFG1_IOMAP		0x04
 #define RL_CFG1_MEMMAP		0x08
 #define RL_CFG1_RSVD		0x10
+#define	RL_CFG1_LWACT		0x10
 #define RL_CFG1_DRVLOAD		0x20
 #define RL_CFG1_LED0		0x40
 #define RL_CFG1_FULLDUPLEX	0x40	/* 8129 only */
 #define RL_CFG1_LED1		0x80
 
 /*
+ * Config 2 register
+ */
+#define	RL_CFG2_PCI33MHZ	0x00
+#define	RL_CFG2_PCI66MHZ	0x01
+#define	RL_CFG2_PCI64BIT	0x08
+#define	RL_CFG2_AUXPWR		0x10
+
+/*
+ * Config 3 register
+ */
+#define	RL_CFG3_GRANTSEL	0x80
+#define	RL_CFG3_WOL_MAGIC	0x20
+#define	RL_CFG3_WOL_LINK	0x10
+#define	RL_CFG3_FAST_B2B	0x01
+
+/*
+ * Config 4 register
+ */
+#define	RL_CFG4_LWPTN		0x04
+#define	RL_CFG4_LWPME		0x10
+
+/*
+ * Config 5 register
+ */
+#define	RL_CFG5_WOL_BCAST	0x40
+#define	RL_CFG5_WOL_MCAST	0x20
+#define	RL_CFG5_WOL_UCAST	0x10
+#define	RL_CFG5_WOL_LANWAKE	0x02
+#define	RL_CFG5_PME_STS		0x01
+
+/*
  * 8139C+ register definitions
  */
 
@@ -684,6 +722,8 @@
 /* see comment in dev/re/if_re.c */
 #define RL_JUMBO_FRAMELEN	7440
 #define RL_JUMBO_MTU		(RL_JUMBO_FRAMELEN-ETHER_HDR_LEN-ETHER_CRC_LEN)
+#define	RL_MAX_FRAMELEN		\
+	(ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)
 
 struct rl_txdesc {
 	struct mbuf		*tx_m;

==== //depot/projects/e500/sys/powerpc/include/pmap.h#6 (text+ko) ====

@@ -26,7 +26,7 @@
  * 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/powerpc/include/pmap.h,v 1.20 2006/12/05 04:01:52 grehan Exp $
+ * $FreeBSD: src/sys/powerpc/include/pmap.h,v 1.21 2008/03/03 13:20:52 raj Exp $
  */
 /*-
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.

==== //depot/projects/e500/sys/powerpc/include/psl.h#3 (text+ko) ====

@@ -29,7 +29,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  *	$NetBSD: psl.h,v 1.5 2000/11/19 19:52:37 matt Exp $
- * $FreeBSD: src/sys/powerpc/include/psl.h,v 1.4 2005/01/07 02:29:19 imp Exp $
+ * $FreeBSD: src/sys/powerpc/include/psl.h,v 1.5 2008/03/03 13:20:52 raj Exp $
  */
 
 #ifndef	_MACHINE_PSL_H_

==== //depot/projects/e500/sys/powerpc/include/pte.h#3 (text+ko) ====

@@ -29,7 +29,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  *	$NetBSD: pte.h,v 1.2 1998/08/31 14:43:40 tsubai Exp $
- * $FreeBSD: src/sys/powerpc/include/pte.h,v 1.5 2005/11/11 12:03:28 grehan Exp $
+ * $FreeBSD: src/sys/powerpc/include/pte.h,v 1.6 2008/03/03 13:20:52 raj Exp $
  */
 
 #ifndef	_MACHINE_PTE_H_

==== //depot/projects/e500/sys/powerpc/include/sf_buf.h#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/powerpc/include/sf_buf.h,v 1.2 2004/04/18 08:10:04 alc Exp $
+ * $FreeBSD: src/sys/powerpc/include/sf_buf.h,v 1.3 2008/03/03 13:20:52 raj Exp $
  */
 
 #ifndef _MACHINE_SF_BUF_H_

==== //depot/projects/e500/sys/powerpc/include/spr.h#5 (text+ko) ====

@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * $NetBSD: spr.h,v 1.25 2002/08/14 15:38:40 matt Exp $
- * $FreeBSD: src/sys/powerpc/include/spr.h,v 1.7 2008/02/25 00:09:23 raj Exp $
+ * $FreeBSD: src/sys/powerpc/include/spr.h,v 1.8 2008/03/03 13:20:52 raj Exp $
  */
 #ifndef _POWERPC_SPR_H_
 #define	_POWERPC_SPR_H_

==== //depot/projects/e500/sys/powerpc/include/trap.h#7 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD$ */
+/* $FreeBSD: src/sys/powerpc/include/trap.h,v 1.6 2008/03/03 13:20:52 raj Exp $ */
 
 #if defined(AIM)
 #include <machine/trap_aim.h>

==== //depot/projects/e500/sys/powerpc/include/vmparam.h#9 (text+ko) ====

@@ -29,7 +29,7 @@
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  *	$NetBSD: vmparam.h,v 1.11 2000/02/11 19:25:16 thorpej Exp $
- * $FreeBSD: src/sys/powerpc/include/vmparam.h,v 1.11 2007/12/27 16:45:39 alc Exp $
+ * $FreeBSD: src/sys/powerpc/include/vmparam.h,v 1.12 2008/03/03 13:20:52 raj Exp $
  */
 
 #ifndef _MACHINE_VMPARAM_H_

==== //depot/projects/e500/sys/ufs/ufs/ufs_extattr.c#5 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_extattr.c,v 1.89 2008/01/24 12:34:30 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/ufs/ufs/ufs_extattr.c,v 1.90 2008/03/02 22:52:14 rwatson Exp $");
 
 #include "opt_ufs.h"
 
@@ -448,9 +448,17 @@
 ufs_extattr_autostart(struct mount *mp, struct thread *td)
 {
 	struct vnode *rvp, *attr_dvp, *attr_system_dvp, *attr_user_dvp;
+	struct ufsmount *ump = VFSTOUFS(mp);
 	int error;
 
 	/*
+	 * UFS_EXTATTR applies only to UFS1, as UFS2 uses native extended
+	 * attributes, so don't autostart.
+	 */
+	if (ump->um_fstype != UFS1)
+		return (0);
+
+	/*
 	 * Does UFS_EXTATTR_FSROOTSUBDIR exist off the filesystem root?
 	 * If so, automatically start EA's.
 	 */
@@ -706,6 +714,16 @@
 		return (error);
 	}
 
+	/*
+	 * We only allow extattrctl(2) on UFS1 file systems, as UFS2 uses
+	 * native extended attributes.
+	 */
+	if (ump->um_fstype != UFS1) {
+		if (filename_vp != NULL)
+			VOP_UNLOCK(filename_vp, 0);
+		return (EOPNOTSUPP);
+	}
+
 	switch(cmd) {
 	case UFS_EXTATTR_CMD_START:
 		if (filename_vp != NULL) {

==== //depot/projects/e500/usr.bin/calendar/calendars/calendar.freebsd#10 (text+ko) ====

@@ -1,7 +1,7 @@
 /*
  * FreeBSD
  *
- * $FreeBSD: src/usr.bin/calendar/calendars/calendar.freebsd,v 1.226 2008/02/27 07:39:31 ganbold Exp $
+ * $FreeBSD: src/usr.bin/calendar/calendars/calendar.freebsd,v 1.227 2008/03/03 13:14:39 jadawin Exp $
  */
 
 #ifndef _calendar_freebsd_
@@ -12,6 +12,7 @@
 01/02	Patrick Li <pat at FreeBSD.org> born in Beijing, People's Republic of China, 1985

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list