Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH 1/3] PPC 44x EMAC driver: add 440SPe support
From: Jeff Garzik @ 2005-10-29 22:07 UTC (permalink / raw)
  To: Eugene Surovegin; +Cc: netdev, linuxppc-embedded
In-Reply-To: <20051029194314.GB1865@gate.ebshome.net>

applied 1-3

^ permalink raw reply

* [PATCH 3/3] PPC 4xx EMAC driver: fix VSC8201 PHY initialization
From: Eugene Surovegin @ 2005-10-29 19:47 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev, linuxppc-embedded

* MII registers must override strap pins
* disable "echo" mode to make 10/HDX work (Franz Sirl)

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
---

 drivers/net/ibm_emac/ibm_emac_phy.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ibm_emac/ibm_emac_phy.c b/drivers/net/ibm_emac/ibm_emac_phy.c
index a27e49c..67935dd 100644
--- a/drivers/net/ibm_emac/ibm_emac_phy.c
+++ b/drivers/net/ibm_emac/ibm_emac_phy.c
@@ -236,12 +236,16 @@ static struct mii_phy_def genmii_phy_def
 };
 
 /* CIS8201 */
+#define MII_CIS8201_10BTCSR	0x16
+#define  TENBTCSR_ECHO_DISABLE	0x2000
 #define MII_CIS8201_EPCR	0x17
 #define  EPCR_MODE_MASK		0x3000
 #define  EPCR_GMII_MODE		0x0000
 #define  EPCR_RGMII_MODE	0x1000
 #define  EPCR_TBI_MODE		0x2000
 #define  EPCR_RTBI_MODE		0x3000
+#define MII_CIS8201_ACSR	0x1c
+#define  ACSR_PIN_PRIO_SELECT	0x0004
 
 static int cis8201_init(struct mii_phy *phy)
 {
@@ -269,6 +273,14 @@ static int cis8201_init(struct mii_phy *
 	}
 
 	phy_write(phy, MII_CIS8201_EPCR, epcr);
+	
+	/* MII regs override strap pins */
+	phy_write(phy, MII_CIS8201_ACSR, 
+		  phy_read(phy, MII_CIS8201_ACSR) | ACSR_PIN_PRIO_SELECT);
+
+	/* Disable TX_EN -> CRS echo mode, otherwise 10/HDX doesn't work */
+	phy_write(phy, MII_CIS8201_10BTCSR,
+		  phy_read(phy, MII_CIS8201_10BTCSR) | TENBTCSR_ECHO_DISABLE);
 
 	return 0;
 }

^ permalink raw reply related

* [PATCH 2/3] PPC 44x EMAC driver: add 440GR support
From: Eugene Surovegin @ 2005-10-29 19:45 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev, sr, linuxppc-embedded

Add PowerPC 440GR support

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
---

 drivers/net/Kconfig                  |    2 +-
 drivers/net/ibm_emac/ibm_emac.h      |    3 ++-
 drivers/net/ibm_emac/ibm_emac_core.c |    7 ++++---
 drivers/net/ibm_emac/ibm_emac_mal.h  |    2 +-
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 6d4f9ce..97760c1 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1203,7 +1203,7 @@ config IBM_EMAC_RX_SKB_HEADROOM
 
 config IBM_EMAC_PHY_RX_CLK_FIX
 	bool "PHY Rx clock workaround"
-	depends on IBM_EMAC && (405EP || 440GX || 440EP)
+	depends on IBM_EMAC && (405EP || 440GX || 440EP || 440GR)
 	help
 	  Enable this if EMAC attached to a PHY which doesn't generate
 	  RX clock if there is no link, if this is the case, you will 
diff --git a/drivers/net/ibm_emac/ibm_emac.h b/drivers/net/ibm_emac/ibm_emac.h
index d3166da..644edbf 100644
--- a/drivers/net/ibm_emac/ibm_emac.h
+++ b/drivers/net/ibm_emac/ibm_emac.h
@@ -26,7 +26,8 @@
 /* This is a simple check to prevent use of this driver on non-tested SoCs */
 #if !defined(CONFIG_405GP) && !defined(CONFIG_405GPR) && !defined(CONFIG_405EP) && \
     !defined(CONFIG_440GP) && !defined(CONFIG_440GX) && !defined(CONFIG_440SP) && \
-    !defined(CONFIG_440EP) && !defined(CONFIG_NP405H) && !defined(CONFIG_440SPE)
+    !defined(CONFIG_440EP) && !defined(CONFIG_NP405H) && !defined(CONFIG_440SPE) && \
+    !defined(CONFIG_440GR)
 #error	"Unknown SoC. Please, check chip user manual and make sure EMAC defines are OK"
 #endif
 
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index 48239e1..eb7d694 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -87,10 +87,11 @@ MODULE_LICENSE("GPL");
  */
 static u32 busy_phy_map;
 
-#if defined(CONFIG_IBM_EMAC_PHY_RX_CLK_FIX) && (defined(CONFIG_405EP) || defined(CONFIG_440EP))
+#if defined(CONFIG_IBM_EMAC_PHY_RX_CLK_FIX) && \
+    (defined(CONFIG_405EP) || defined(CONFIG_440EP) || defined(CONFIG_440GR))
 /* 405EP has "EMAC to PHY Control Register" (CPC0_EPCTL) which can help us
  * with PHY RX clock problem.
- * 440EP has more sane SDR0_MFR register implementation than 440GX, which
+ * 440EP/440GR has more sane SDR0_MFR register implementation than 440GX, which
  * also allows controlling each EMAC clock
  */
 static inline void EMAC_RX_CLK_TX(int idx)
@@ -100,7 +101,7 @@ static inline void EMAC_RX_CLK_TX(int id
 
 #if defined(CONFIG_405EP)
 	mtdcr(0xf3, mfdcr(0xf3) | (1 << idx));
-#else /* CONFIG_440EP */
+#else /* CONFIG_440EP || CONFIG_440GR */
 	SDR_WRITE(DCRN_SDR_MFR, SDR_READ(DCRN_SDR_MFR) | (0x08000000 >> idx));
 #endif
 
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.h b/drivers/net/ibm_emac/ibm_emac_mal.h
index fb6dfe1..2a2d3b2 100644
--- a/drivers/net/ibm_emac/ibm_emac_mal.h
+++ b/drivers/net/ibm_emac/ibm_emac_mal.h
@@ -32,7 +32,7 @@
  * reflect the fact that 40x and 44x have slightly different MALs. --ebs
  */
 #if defined(CONFIG_405GP) || defined(CONFIG_405GPR) || defined(CONFIG_405EP) || \
-    defined(CONFIG_440EP) || defined(CONFIG_NP405H)
+    defined(CONFIG_440EP) || defined(CONFIG_440GR) || defined(CONFIG_NP405H)
 #define MAL_VERSION		1
 #elif defined(CONFIG_440GP) || defined(CONFIG_440GX) || defined(CONFIG_440SP) || \
       defined(CONFIG_440SPE)

^ permalink raw reply related

* [PATCH 1/3] PPC 44x EMAC driver: add 440SPe support
From: Eugene Surovegin @ 2005-10-29 19:43 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: netdev, linuxppc-embedded

For some reason, the hardware designers made the polarity of one bit
in the 440SPe's PHY interface register the opposite of all other PPC
440 chips.  To handle this, abstract our access to this bit and do the
right thing based on the configured CPU type.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
---

 drivers/net/ibm_emac/ibm_emac.h      |   21 ++++++++++++++++++++-
 drivers/net/ibm_emac/ibm_emac_core.c |   13 +++++++------
 drivers/net/ibm_emac/ibm_emac_mal.h  |    3 ++-
 3 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ibm_emac/ibm_emac.h b/drivers/net/ibm_emac/ibm_emac.h
index 28c476f..d3166da 100644
--- a/drivers/net/ibm_emac/ibm_emac.h
+++ b/drivers/net/ibm_emac/ibm_emac.h
@@ -26,7 +26,7 @@
 /* This is a simple check to prevent use of this driver on non-tested SoCs */
 #if !defined(CONFIG_405GP) && !defined(CONFIG_405GPR) && !defined(CONFIG_405EP) && \
     !defined(CONFIG_440GP) && !defined(CONFIG_440GX) && !defined(CONFIG_440SP) && \
-    !defined(CONFIG_440EP) && !defined(CONFIG_NP405H)
+    !defined(CONFIG_440EP) && !defined(CONFIG_NP405H) && !defined(CONFIG_440SPE)
 #error	"Unknown SoC. Please, check chip user manual and make sure EMAC defines are OK"
 #endif
 
@@ -246,6 +246,25 @@ struct emac_regs {
 #define EMAC_STACR_PCDA_SHIFT		5
 #define EMAC_STACR_PRA_MASK		0x1f
 
+/*
+ * For the 440SPe, AMCC inexplicably changed the polarity of
+ * the "operation complete" bit in the MII control register.
+ */
+#if defined(CONFIG_440SPE)
+static inline int emac_phy_done(u32 stacr)
+{
+	return !(stacr & EMAC_STACR_OC);
+};
+#define EMAC_STACR_START 		EMAC_STACR_OC
+
+#else /* CONFIG_440SPE */
+static inline int emac_phy_done(u32 stacr)
+{
+	return stacr & EMAC_STACR_OC;
+};
+#define EMAC_STACR_START 		0
+#endif /* !CONFIG_440SPE */
+
 /* EMACx_TRTR */
 #if !defined(CONFIG_IBM_EMAC4)
 #define EMAC_TRTR_SHIFT			27
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index 943fbd1..48239e1 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -546,7 +546,7 @@ static int __emac_mdio_read(struct ocp_e
 
 	/* Wait for management interface to become idle */
 	n = 10;
-	while (!(in_be32(&p->stacr) & EMAC_STACR_OC)) {
+	while (!emac_phy_done(in_be32(&p->stacr))) {
 		udelay(1);
 		if (!--n)
 			goto to;
@@ -556,11 +556,12 @@ static int __emac_mdio_read(struct ocp_e
 	out_be32(&p->stacr,
 		 EMAC_STACR_BASE(emac_opb_mhz()) | EMAC_STACR_STAC_READ |
 		 (reg & EMAC_STACR_PRA_MASK)
-		 | ((id & EMAC_STACR_PCDA_MASK) << EMAC_STACR_PCDA_SHIFT));
+		 | ((id & EMAC_STACR_PCDA_MASK) << EMAC_STACR_PCDA_SHIFT)
+		 | EMAC_STACR_START);
 
 	/* Wait for read to complete */
 	n = 100;
-	while (!((r = in_be32(&p->stacr)) & EMAC_STACR_OC)) {
+	while (!emac_phy_done(r = in_be32(&p->stacr))) {
 		udelay(1);
 		if (!--n)
 			goto to;
@@ -594,7 +595,7 @@ static void __emac_mdio_write(struct ocp
 
 	/* Wait for management interface to be idle */
 	n = 10;
-	while (!(in_be32(&p->stacr) & EMAC_STACR_OC)) {
+	while (!emac_phy_done(in_be32(&p->stacr))) {
 		udelay(1);
 		if (!--n)
 			goto to;
@@ -605,11 +606,11 @@ static void __emac_mdio_write(struct ocp
 		 EMAC_STACR_BASE(emac_opb_mhz()) | EMAC_STACR_STAC_WRITE |
 		 (reg & EMAC_STACR_PRA_MASK) |
 		 ((id & EMAC_STACR_PCDA_MASK) << EMAC_STACR_PCDA_SHIFT) |
-		 (val << EMAC_STACR_PHYD_SHIFT));
+		 (val << EMAC_STACR_PHYD_SHIFT) | EMAC_STACR_START);
 
 	/* Wait for write to complete */
 	n = 100;
-	while (!(in_be32(&p->stacr) & EMAC_STACR_OC)) {
+	while (!emac_phy_done(in_be32(&p->stacr))) {
 		udelay(1);
 		if (!--n)
 			goto to;
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.h b/drivers/net/ibm_emac/ibm_emac_mal.h
index 15b0bda..fb6dfe1 100644
--- a/drivers/net/ibm_emac/ibm_emac_mal.h
+++ b/drivers/net/ibm_emac/ibm_emac_mal.h
@@ -34,7 +34,8 @@
 #if defined(CONFIG_405GP) || defined(CONFIG_405GPR) || defined(CONFIG_405EP) || \
     defined(CONFIG_440EP) || defined(CONFIG_NP405H)
 #define MAL_VERSION		1
-#elif defined(CONFIG_440GP) || defined(CONFIG_440GX) || defined(CONFIG_440SP)
+#elif defined(CONFIG_440GP) || defined(CONFIG_440GX) || defined(CONFIG_440SP) || \
+      defined(CONFIG_440SPE)
 #define MAL_VERSION		2
 #else
 #error "Unknown SoC, please check chip manual and choose MAL 'version'"

^ permalink raw reply related

* [PATCH] natsemi: Option to use MII port with no PHY
From: Mark Brown @ 2005-10-29 18:24 UTC (permalink / raw)
  To: Tim Hockin; +Cc: netdev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 6271 bytes --]

This patch provides a module option which configures the natsemi driver
to use the external MII port on the chip but ignore any PHYs that may be
attached to it.  The link state will be left as it was when the driver
started and can be configured via ethtool.  Any PHYs that are present
can be accessed via the MII ioctl()s.

This is useful for systems where the device is connected without a PHY
or where either information or actions outside the scope of the natsemi
driver are required in order to use the PHYs.

Signed-off-by: Mark Brown <broonie@sirena.org.uk>

diff -uprN linux-2.6.14/drivers/net/natsemi.c linux/drivers/net/natsemi.c
--- linux-2.6.14/drivers/net/natsemi.c	2005-10-28 01:02:08.000000000 +0100
+++ linux/drivers/net/natsemi.c	2005-10-29 15:53:16.000000000 +0100
@@ -264,7 +264,7 @@ MODULE_PARM_DESC(debug, "DP8381x default
 MODULE_PARM_DESC(rx_copybreak, 
 	"DP8381x copy breakpoint for copy-only-tiny-frames");
 MODULE_PARM_DESC(options, 
-	"DP8381x: Bits 0-3: media type, bit 17: full duplex");
+	"DP8381x: Bits 0-3: media type, bit 17: full duplex, bit 18: ignore PHY");
 MODULE_PARM_DESC(full_duplex, "DP8381x full duplex setting(s) (1)");
 
 /*
@@ -693,6 +693,8 @@ struct netdev_private {
 	int oom;
 	/* Do not touch the nic registers */
 	int hands_off;
+	/* Don't pay attention to the reported link state. */
+	int ignore_phy;
 	/* external phy that is used: only valid if dev->if_port != PORT_TP */
 	int mii;
 	int phy_addr_external;
@@ -880,7 +882,19 @@ static int __devinit natsemi_probe1 (str
 	np->msg_enable = (debug >= 0) ? (1<<debug)-1 : NATSEMI_DEF_MSG;
 	np->hands_off = 0;
 
+	option = find_cnt < MAX_UNITS ? options[find_cnt] : 0;
+	if (dev->mem_start)
+		option = dev->mem_start;
+
+	/* Ignore the PHY status? */
+	if (option & 0x400) {
+		np->ignore_phy = 1;
+	} else {
+		np->ignore_phy = 0;
+	}
+
 	/* Initial port:
+	 * - If configured to ignore the PHY set up for external.
 	 * - If the nic was configured to use an external phy and if find_mii
 	 *   finds a phy: use external port, first phy that replies.
 	 * - Otherwise: internal port.
@@ -888,7 +902,7 @@ static int __devinit natsemi_probe1 (str
 	 * The address would be used to access a phy over the mii bus, but
 	 * the internal phy is accessed through mapped registers.
 	 */
-	if (readl(ioaddr + ChipConfig) & CfgExtPhy)
+	if (np->ignore_phy || readl(ioaddr + ChipConfig) & CfgExtPhy)
 		dev->if_port = PORT_MII;
 	else
 		dev->if_port = PORT_TP;
@@ -898,7 +912,9 @@ static int __devinit natsemi_probe1 (str
 
 	if (dev->if_port != PORT_TP) {
 		np->phy_addr_external = find_mii(dev);
-		if (np->phy_addr_external == PHY_ADDR_NONE) {
+		/* If we're ignoring the PHY it doesn't matter if we can't
+		 * find one. */
+		if (!np->ignore_phy && np->phy_addr_external == PHY_ADDR_NONE) {
 			dev->if_port = PORT_TP;
 			np->phy_addr_external = PHY_ADDR_INTERNAL;
 		}
@@ -906,10 +922,6 @@ static int __devinit natsemi_probe1 (str
 		np->phy_addr_external = PHY_ADDR_INTERNAL;
 	}
 
-	option = find_cnt < MAX_UNITS ? options[find_cnt] : 0;
-	if (dev->mem_start)
-		option = dev->mem_start;
-
 	/* The lower four bits are the media type. */
 	if (option) {
 		if (option & 0x200)
@@ -940,7 +952,10 @@ static int __devinit natsemi_probe1 (str
 	if (mtu)
 		dev->mtu = mtu;
 
-	netif_carrier_off(dev);
+	if (np->ignore_phy)
+		netif_carrier_on(dev);
+	else
+		netif_carrier_off(dev);
 
 	/* get the initial settings from hardware */
 	tmp            = mdio_read(dev, MII_BMCR);
@@ -988,6 +1003,8 @@ static int __devinit natsemi_probe1 (str
 		printk("%02x, IRQ %d", dev->dev_addr[i], irq);
 		if (dev->if_port == PORT_TP)
 			printk(", port TP.\n");
+		else if (np->ignore_phy)
+			printk(", port MII, ignoring PHY\n");
 		else
 			printk(", port MII, phy ad %d.\n", np->phy_addr_external);
 	}
@@ -1643,42 +1660,44 @@ static void check_link(struct net_device
 {
 	struct netdev_private *np = netdev_priv(dev);
 	void __iomem * ioaddr = ns_ioaddr(dev);
-	int duplex;
+	int duplex = np->full_duplex;
 	u16 bmsr;
-       
-	/* The link status field is latched: it remains low after a temporary
-	 * link failure until it's read. We need the current link status,
-	 * thus read twice.
-	 */
-	mdio_read(dev, MII_BMSR);
-	bmsr = mdio_read(dev, MII_BMSR);
 
-	if (!(bmsr & BMSR_LSTATUS)) {
-		if (netif_carrier_ok(dev)) {
+	/* If we're not paying attention to the PHY status then don't check. */
+	if (!np->ignore_phy) {       
+		/* The link status field is latched: it remains low
+		 * after a temporary link failure until it's read. We
+		 * need the current link status, thus read twice.
+		 */
+		mdio_read(dev, MII_BMSR);
+		bmsr = mdio_read(dev, MII_BMSR);
+
+		if (!(bmsr & BMSR_LSTATUS)) {
+			if (netif_carrier_ok(dev)) {
+				if (netif_msg_link(np))
+					printk(KERN_NOTICE "%s: link down.\n",
+					       dev->name);
+				netif_carrier_off(dev);
+				undo_cable_magic(dev);
+			}
+			return;
+		}
+		if (!netif_carrier_ok(dev)) {
 			if (netif_msg_link(np))
-				printk(KERN_NOTICE "%s: link down.\n",
-					dev->name);
-			netif_carrier_off(dev);
-			undo_cable_magic(dev);
+				printk(KERN_NOTICE "%s: link up.\n", dev->name);
+			netif_carrier_on(dev);
+			do_cable_magic(dev);
 		}
-		return;
-	}
-	if (!netif_carrier_ok(dev)) {
-		if (netif_msg_link(np))
-			printk(KERN_NOTICE "%s: link up.\n", dev->name);
-		netif_carrier_on(dev);
-		do_cable_magic(dev);
-	}
-
-	duplex = np->full_duplex;
-	if (!duplex) {
-		if (bmsr & BMSR_ANEGCOMPLETE) {
-			int tmp = mii_nway_result(
-				np->advertising & mdio_read(dev, MII_LPA));
-			if (tmp == LPA_100FULL || tmp == LPA_10FULL)
+		
+		if (!duplex) {
+			if (bmsr & BMSR_ANEGCOMPLETE) {
+				int tmp = mii_nway_result(
+					np->advertising & mdio_read(dev, MII_LPA));
+				if (tmp == LPA_100FULL || tmp == LPA_10FULL)
+					duplex = 1;
+			} else if (mdio_read(dev, MII_BMCR) & BMCR_FULLDPLX)
 				duplex = 1;
-		} else if (mdio_read(dev, MII_BMCR) & BMCR_FULLDPLX)
-			duplex = 1;
+		}
 	}
 
 	/* if duplex is set then bit 28 must be set, too */

-- 
"You grabbed my hand and we fell into it, like a daydream - or a fever."

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 307 bytes --]

^ permalink raw reply

* [git patches] 2.6.x net driver updates
From: Jeff Garzik @ 2005-10-29 18:21 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, linux-kernel


Please pull from 'upstream-linus' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

to receive the following random collection of updates and new drivers:

 MAINTAINERS                                |    8 
 drivers/net/Kconfig                        |   77 
 drivers/net/Makefile                       |    3 
 drivers/net/acenic.c                       |    6 
 drivers/net/amd8111e.c                     |    0 
 drivers/net/amd8111e.h                     |    0 
 drivers/net/au1000_eth.c                   |    6 
 drivers/net/b44.c                          |   28 
 drivers/net/bmac.c                         |    6 
 drivers/net/bnx2.c                         |   12 
 drivers/net/e1000/e1000_ethtool.c          |    7 
 drivers/net/e1000/e1000_main.c             |    9 
 drivers/net/eepro.c                        |    7 
 drivers/net/fs_enet/Kconfig                |   20 
 drivers/net/fs_enet/Makefile               |   10 
 drivers/net/fs_enet/fs_enet-main.c         | 1226 ++++++++++
 drivers/net/fs_enet/fs_enet-mii.c          |  507 ++++
 drivers/net/fs_enet/fs_enet.h              |  245 ++
 drivers/net/fs_enet/mac-fcc.c              |  578 ++++
 drivers/net/fs_enet/mac-fec.c              |  653 +++++
 drivers/net/fs_enet/mac-scc.c              |  524 ++++
 drivers/net/fs_enet/mii-bitbang.c          |  405 +++
 drivers/net/fs_enet/mii-fixed.c            |   92 
 drivers/net/hamradio/mkiss.c               |    6 
 drivers/net/ibm_emac/Makefile              |   13 
 drivers/net/ibm_emac/ibm_emac.h            |  418 +--
 drivers/net/ibm_emac/ibm_emac_core.c       | 3414 +++++++++++++++--------------
 drivers/net/ibm_emac/ibm_emac_core.h       |  313 +-
 drivers/net/ibm_emac/ibm_emac_debug.c      |  377 +--
 drivers/net/ibm_emac/ibm_emac_debug.h      |   63 
 drivers/net/ibm_emac/ibm_emac_mal.c        |  674 +++--
 drivers/net/ibm_emac/ibm_emac_mal.h        |  336 ++
 drivers/net/ibm_emac/ibm_emac_phy.c        |  335 +-
 drivers/net/ibm_emac/ibm_emac_phy.h        |  105 
 drivers/net/ibm_emac/ibm_emac_rgmii.c      |  201 +
 drivers/net/ibm_emac/ibm_emac_rgmii.h      |   68 
 drivers/net/ibm_emac/ibm_emac_tah.c        |  111 
 drivers/net/ibm_emac/ibm_emac_tah.h        |   96 
 drivers/net/ibm_emac/ibm_emac_zmii.c       |  255 ++
 drivers/net/ibm_emac/ibm_emac_zmii.h       |  114 
 drivers/net/ibmveth.c                      |  186 -
 drivers/net/ibmveth.h                      |   23 
 drivers/net/irda/donauboe.c                |    6 
 drivers/net/irda/irda-usb.c                |    6 
 drivers/net/irda/irport.c                  |    3 
 drivers/net/irda/sir_dev.c                 |    3 
 drivers/net/irda/vlsi_ir.c                 |    3 
 drivers/net/mace.c                         |    6 
 drivers/net/ne2k-pci.c                     |    1 
 drivers/net/ni65.c                         |    9 
 drivers/net/pcmcia/pcnet_cs.c              |    6 
 drivers/net/rrunner.c                      |    6 
 drivers/net/s2io.c                         |   13 
 drivers/net/saa9730.c                      |    8 
 drivers/net/sis190.c                       |    2 
 drivers/net/sis900.c                       |   16 
 drivers/net/smc91x.c                       |    4 
 drivers/net/starfire.c                     |    4 
 drivers/net/sundance.c                     |   62 
 drivers/net/tg3.c                          |   91 
 drivers/net/tg3.h                          |   12 
 drivers/net/tulip/de2104x.c                |    6 
 drivers/net/tulip/tulip_core.c             |    6 
 drivers/net/via-velocity.c                 |    6 
 drivers/net/wireless/airo.c                |   48 
 drivers/net/wireless/airo_cs.c             |    4 
 drivers/net/wireless/atmel.c               |    6 
 drivers/net/wireless/atmel_cs.c            |    3 
 drivers/net/wireless/hermes.c              |   38 
 drivers/net/wireless/hermes.h              |    2 
 drivers/net/wireless/hostap/hostap_ioctl.c |    9 
 drivers/net/wireless/ipw2200.c             |    4 
 drivers/net/wireless/orinoco.c             |   13 
 drivers/net/wireless/prism54/islpci_dev.c  |    3 
 drivers/net/wireless/prism54/islpci_eth.c  |   13 
 drivers/net/wireless/prism54/oid_mgt.c     |    9 
 drivers/net/wireless/strip.c               |   38 
 include/linux/fs_enet_pd.h                 |  136 +
 include/linux/pci_ids.h                    |    2 
 include/net/ax25.h                         |    3 
 include/net/netrom.h                       |    3 
 81 files changed, 8958 insertions(+), 3192 deletions(-)


Akinobu Mita:
      s2io: kconfig help fix

Al Viro:
      s2io iomem annotations

Alan Cox:
      Better fixup for the orinoco driver

Alexey Dobriyan:
      starfire: free_irq() on error path of netdev_open()

Andrew Morton:
      [netdrvr b44] include linux/dma-mapping.h to eliminate warning
      revert "orinoco: Information leakage due to incorrect padding"

Ashutosh Naik:
      e1000: Fixes e1000_suspend warning when CONFIG_PM is not enabled

Aurelien Jarno:
      sis190.c: fix multicast MAC filter

Deepak Saxena:
      Fix CS89x0 KConfig for IXDP2X01

Eugene Surovegin:
      New PowerPC 4xx on-chip ethernet controller driver
      Add MAINTAINER entry for the new PowerPC 4xx on-chip ethernet controller driver

Florin Malita:
      eepro.c: module_param_array cleanup

Jeff Garzik:
      [git] change permissions on drivers/net/amd8111e.[ch] to 0644,

Jesper Juhl:
      drivers/net: Remove pointless checks for NULL prior to calling kfree()

Komuro:
      pcnet_cs: fix mii init code for older DL10019 based cards
      [netdrvr] ne2k-pci based card does not support bus-mastering.

Martin J. Bligh:
      e1000: remove warning about e1000_suspend

Matthew Wilcox:
      b44 reports wrong advertised flags

Michael Chan:
      tg3: add 5714/5715 support
      tg3: fix ASF heartbeat
      tg3: update version and minor fixes

Nicolas Pitre:
      smc91x: shut down power after probing

Panagiotis Issaris:
      ipw2200: Missing kmalloc check

Pantelis Antoniou:
      Add fs_enet ethernet network driver, for several embedded platforms.

Patrick McHardy:
      prism54: Free skb after disabling interrupts

Pavel Machek:
      b44: fix suspend/resume

Philippe De Muyter:
      sundance: fix DFE-580TX Tx Underrun

Ravikiran G Thirumalai:
      e1000: use vmalloc_node()

Roger While:
      [wireless prism54] Fix frame length

Santiago Leon:
      ibmveth fix bonding
      ibmveth fix buffer pool management
      ibmveth fix buffer replenishing
      ibmveth lockless TX
      ibmveth fix failed addbuf

Tobias Klauser:
      drivers/net/tg3: Use the DMA_{32,64}BIT_MASK constants

Vasily Averin:
      sis900: come alive after temporary memory shortage

^ permalink raw reply

* Abolish all that you are indebted for without sending an other dollar
From: paris butler @ 2005-10-29 15:01 UTC (permalink / raw)
  To: Merlin Shaw

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 720 bytes --]

End the bothersome worry of those calls and letters.
We have pioneered an advanced system of proven strategies 
that will get the creditors and debt collectors off your back for good

Our debt termination program has legally stopped millions of dollars worth
of debt from being collected.


check out our Elimination Program here
http://in.geocities.com/leo_kemble/?1=45LT



no, then link above




"master malfoy moves with nobility that befits his pure blood," croaked
kreacher at once. "his features recall the fine bones of my mistress and his
manners are those of-"  . "and you wouldn't tell me if you knew," said
scrimgeour, "would you?" 
"-be good and.¡± , she was jogging to keep up now.

^ permalink raw reply

* Re: [PATCH 02/14] Big kfree NULL check cleanup - drivers/net
From: Jesper Juhl @ 2005-10-29 13:56 UTC (permalink / raw)
  To: Jeff Garzik
  Cc: linux-kernel, Andrew Morton, David S. Miller, Jes Sorensen,
	Matt Porter, Michael Chan, linux.nics, hans, Santiago Leon,
	Jean Tourrilhes, Paul Mackerras, Michael Hipp, Jes Sorensen,
	Carsten Langgaard, Benjamin Reed, Jouni Malinen, prism54-private,
	netdev, Stuart Cheshire, g4klx, Alan Cox
In-Reply-To: <43628FCB.9060202@pobox.com>

On 10/28/05, Jeff Garzik <jgarzik@pobox.com> wrote:
> Jesper Juhl wrote:
> > This is the drivers/net/ part of the big kfree cleanup patch.
> >
> > Remove pointless checks for NULL prior to calling kfree() in drivers/net/.
> >
> >
> > Sorry about the long Cc: list, but I wanted to make sure I included everyone
> > who's code I've changed with this patch.
> >
> >
> > Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
>
> applied 98% of this
>

Just currious, what bits are the 2% you did not apply?

--
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

^ permalink raw reply

* ICMP attacks & PMTUD mechanism
From: Fernando Gont @ 2005-10-29  8:48 UTC (permalink / raw)
  To: netdev

Folks,

A new revision of my internet-draft on "ICMP attacks against TCP" has been 
published. The draft is available at 
http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html , and at the 
IETF internet-draft public repository: 
http://www.ietf.org/internet-drafts/draft-gont-tcpm-icmp-attacks-05.txt

Linux does not yet implement the PMTUD attack-specific counter-measure, 
which is a very important one.

There are already two implementations of the PMTUD attack-specific 
counter-measure (which mitigates the possible attack even if large TCP 
windows are in use). OpenBSD implemented the first one, and NetBSD ported 
it to their OS. Both OSes now ship with the counter-measure enabled by default.

I personally built and tested OpenBSD's implementation, together with other 
developers. Even if you can guess a valid TCP sequence number (as you can 
expect if large windows are in use), you're still immune to the PMTUD attack.

The current version of the draft (-05) includes a pseudo-code version of 
the counter-measure, which makes its implementation very straight-forward.

You can find audit tools at my web site 
(http://www.gont.com.ar/tools/icmp-attacks/index.html), so that, if you 
decide to implement the counter-measure for Linux, you can test it.

P.S.: The latest version of my draft also discusses some corner cases of 
the PMTUD attack you may find it worthwhile reading, to check Linux 
behavior on this issue (see Section 7.1). (Talk about freezing 
IPSec-secured connections, for example)

Kindest regards,

--
Fernando Gont
e-mail: fernando@gont.com.ar || fgont@acm.org

^ permalink raw reply

* Re: [PATCH] AX.25: Use constant instead of magic number.
From: Arnaldo Carvalho de Melo @ 2005-10-28 22:47 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: David S. Miller, Arnaldo Carvalho de Melo, dann frazier, chrisw,
	netdev, linux-hams
In-Reply-To: <20051018203932.GA11053@linux-mips.org>

On 10/18/05, Ralf Baechle <ralf@linux-mips.org> wrote:
> Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
>
>  net/rose/rose_route.c |    2 +-
>  1 files changed, 1 insertion(+), 1 deletion(-)

Thanks, applied and already merged by Linus.

^ permalink raw reply

* Re: [PATCH 02/14] Big kfree NULL check cleanup - drivers/net
From: Jeff Garzik @ 2005-10-28 20:53 UTC (permalink / raw)
  To: Jesper Juhl
  Cc: linux-kernel, Andrew Morton, David S. Miller, Jes Sorensen,
	Matt Porter, Michael Chan, linux.nics, hans, Santiago Leon,
	Jean Tourrilhes, Paul Mackerras, Michael Hipp, Jes Sorensen,
	Carsten Langgaard, Benjamin Reed, Jouni Malinen, prism54-private,
	netdev, Stuart Cheshire, g4klx, Alan Cox
In-Reply-To: <200510132122.48035.jesper.juhl@gmail.com>

Jesper Juhl wrote:
> This is the drivers/net/ part of the big kfree cleanup patch.
> 
> Remove pointless checks for NULL prior to calling kfree() in drivers/net/.
> 
> 
> Sorry about the long Cc: list, but I wanted to make sure I included everyone
> who's code I've changed with this patch.
> 
> 
> Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>

applied 98% of this

^ permalink raw reply

* Re: [PATCH] Add Wake on LAN support to sis900 (2)
From: Jeff Garzik @ 2005-10-28 20:49 UTC (permalink / raw)
  To: Daniele Venzano; +Cc: NetDev, akpm
In-Reply-To: <20051011074430.GA29824@renditai.milesteg.arr>

applied to sis900-wol branch of netdev-2.6.git.  This will 
auto-propagate to -mm.  Let me know when sufficient testing has been 
had, and I will push it upstream.

^ permalink raw reply

* Re: [PATCH] sis900: come alive after temporary memory shortage
From: Jeff Garzik @ 2005-10-28 20:46 UTC (permalink / raw)
  To: Vasily Averin; +Cc: Daniele Venzano, Andrew Morton, NetDev, Stanislav Protassov
In-Reply-To: <4347C50A.9010501@sw.ru>

applied

^ permalink raw reply

* Re: [PATCH 1/5] ibmveth fix bonding
From: Jeff Garzik @ 2005-10-28 20:07 UTC (permalink / raw)
  To: Santiago Leon; +Cc: Andrew Morton, netdev, lkml
In-Reply-To: <20051026164539.21820.57374.sendpatchset@localhost.localdomain>

Santiago Leon wrote:
> This patch updates dev->trans_start and dev->last_rx so that the ibmveth
> driver can be used with the ARP monitor in the bonding driver. 
> 
> Signed-off-by: Santiago Leon <santil@us.ibm.com>

applied 1-5

^ permalink raw reply

* Re: [PATH] [MCAST] IPv6: Fix algorithm to compute Querier's Query Interval and Maximum Response Delay
From: Arnaldo Carvalho de Melo @ 2005-10-28 18:19 UTC (permalink / raw)
  To: David Stevens; +Cc: Yan Zheng, linux-kernel, netdev, netdev-owner
In-Reply-To: <OF7FABC1EE.FDB8A0D4-ON882570A8.005EDBB4-882570A8.005F14D9@us.ibm.com>

On 10/28/05, David Stevens <dlstevens@us.ibm.com> wrote:
> Yes, I think you're correct.
>
> Acked-by: David L Stevens <dlstevens@us.ibm.com>

Thanks, applying to my tree.

- Arnaldo

^ permalink raw reply

* Re: [PATH] [MCAST] IPv6: Fix algorithm to compute Querier's Query Interval and Maximum Response Delay
From: David Stevens @ 2005-10-28 17:18 UTC (permalink / raw)
  To: Yan Zheng; +Cc: linux-kernel, netdev, netdev-owner
In-Reply-To: <43624B98.6010405@21cn.com>

Yes, I think you're correct.

Acked-by: David L Stevens <dlstevens@us.ibm.com>
> 
> Signed-off-by: Yan Zheng <yanzheng@21cn.com>
> 
> Index: net/ipv6/mcast.c
> ===================================================================
> --- linux-2.6.14/net/ipv6/mcast.c   2005-10-28 08:02:08.000000000 +0800
> +++ linux/net/ipv6/mcast.c   2005-10-28 23:41:18.000000000 +0800
> @@ -164,7 +164,7 @@
>  #define MLDV2_MASK(value, nb) ((nb)>=32 ? (value) : ((1<<(nb))-1) & 
(value))
>  #define MLDV2_EXP(thresh, nbmant, nbexp, value) \
>     ((value) < (thresh) ? (value) : \
> -   ((MLDV2_MASK(value, nbmant) | (1<<(nbmant+nbexp))) << \
> +   ((MLDV2_MASK(value, nbmant) | (1<<(nbmant))) << \
>     (MLDV2_MASK((value) >> (nbmant), nbexp) + (nbexp))))
> 
>  #define MLDV2_QQIC(value) MLDV2_EXP(0x80, 4, 3, value)
> 
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH] 2.6.14-rc4: wider use of for_each_*cpu() in net
From: Arnaldo Carvalho de Melo @ 2005-10-28 16:02 UTC (permalink / raw)
  To: hawkes@sgi.com; +Cc: netdev, linux-kernel
In-Reply-To: <20051013190133.13192.46039.sendpatchset@tomahawk.engr.sgi.com>

On 10/13/05, hawkes@sgi.com <hawkes@sgi.com> wrote:
> In 'net' change the explicit use of for-loops and NR_CPUS into the
> general for_each_cpu() or for_each_online_cpu() constructs, as
> appropriate.  This widens the scope of potential future optimizations
> of the general constructs, as well as takes advantage of the existing
> optimizations of first_cpu() and next_cpu(), which is advantageous
> when the true CPU count is much smaller than NR_CPUS.
>
> Signed-off-by: John Hawkes <hawkes@sgi.com>

Thanks, applied and pushed to Linus,

- Arnaldo

^ permalink raw reply

* [PATH] [MCAST] IPv6: Fix algorithm to compute Querier's Query Interval and Maximum Response Delay
From: Yan Zheng @ 2005-10-28 16:02 UTC (permalink / raw)
  To: netdev; +Cc: linux-kernel

5.1.3.  Maximum Response Code

   The Maximum Response Code field specifies the maximum time allowed
   before sending a responding Report.  The actual time allowed, called
   the Maximum Response Delay, is represented in units of milliseconds,
   and is derived from the Maximum Response Code as follows:

   If Maximum Response Code < 32768,
      Maximum Response Delay = Maximum Response Code

   If Maximum Response Code >=32768, Maximum Response Code represents a
   floating-point value as follows:

       0 1 2 3 4 5 6 7 8 9 A B C D E F
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1| exp |          mant         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Maximum Response Delay = (mant | 0x1000) << (exp+3)


5.1.9.  QQIC (Querier's Query Interval Code)

   The Querier's Query Interval Code field specifies the [Query
   Interval] used by the Querier.  The actual interval, called the
   Querier's Query Interval (QQI), is represented in units of seconds,
   and is derived from the Querier's Query Interval Code as follows:

   If QQIC < 128, QQI = QQIC

   If QQIC >= 128, QQIC represents a floating-point value as follows:

       0 1 2 3 4 5 6 7
      +-+-+-+-+-+-+-+-+
      |1| exp | mant  |
      +-+-+-+-+-+-+-+-+

   QQI = (mant | 0x10) << (exp + 3)

                                                -- rfc3810

#define MLDV2_QQIC(value) MLDV2_EXP(0x80, 4, 3, value)
#define MLDV2_MRC(value) MLDV2_EXP(0x8000, 12, 3, value)

Above macro are defined in mcast.c. but 1 << 4 == 0x10 and 1 << 12 == 0x1000.
So the result computed by original Macro is larger.


Signed-off-by: Yan Zheng <yanzheng@21cn.com>

Index: net/ipv6/mcast.c
===================================================================
--- linux-2.6.14/net/ipv6/mcast.c	2005-10-28 08:02:08.000000000 +0800
+++ linux/net/ipv6/mcast.c	2005-10-28 23:41:18.000000000 +0800
@@ -164,7 +164,7 @@
 #define MLDV2_MASK(value, nb) ((nb)>=32 ? (value) : ((1<<(nb))-1) & (value))
 #define MLDV2_EXP(thresh, nbmant, nbexp, value) \
 	((value) < (thresh) ? (value) : \
-	((MLDV2_MASK(value, nbmant) | (1<<(nbmant+nbexp))) << \
+	((MLDV2_MASK(value, nbmant) | (1<<(nbmant))) << \
 	(MLDV2_MASK((value) >> (nbmant), nbexp) + (nbexp))))
 
 #define MLDV2_QQIC(value) MLDV2_EXP(0x80, 4, 3, value)

^ permalink raw reply

* Re: [PATCH] 2.6.14-rc5-mm1 net/ipv4/route.c: spin_unlock call fails to compile
From: Ingo Molnar @ 2005-10-28  9:00 UTC (permalink / raw)
  To: John Bowler; +Cc: netdev, linux-kernel
In-Reply-To: <001401c5db8e$650bd380$1001a8c0@kalmiopsis>


* John Bowler <jbowler@acm.org> wrote:

>  #else
> -# define rt_hash_lock_addr(slot) NULL
> +# define rt_hash_lock_addr(slot) ((spinlock_t*)NULL)
>  # define rt_hash_lock_init()

looks good to me - it gives (slightly) more type safety too.

	Ingo

^ permalink raw reply

* [PATCH] 2.6.14-rc5-mm1 net/ipv4/route.c: spin_unlock call fails to compile
From: John Bowler @ 2005-10-28  7:08 UTC (permalink / raw)
  To: netdev; +Cc: mingo, linux-kernel

The spin_unlock call which gets an rt_hash_lock_addr(i)
argument fails to compile on rc5-mm1 uniprocessor with
no CONFIG_DEBUG_SPINLOCK because, in mm1, the spin_unlock
macro expands to a statement of the form:

do { (void)&ptr->raw; } while (0)

and 'ptr' is 'NULL'.  Since the expression is address-of
(therefore not evaluated as an r-value - i.e. no attempt
is made to load the non-existent raw, just take its address)
this expression is harmless.

The patch makes 'ptr' ((spinlock_t*)NULL), which the compiler
can compile (sizeof *ptr is 0 in the case - the spinlock_t
struct is empty - so the patch is particularly safe.)

The patch applies to both 2.6.14 and 2.6.14-rc5-mm1 (although
only the latter requires it.)

Signed-off-by: John Bowler <jbowler@acm.org>

--- linux-2.6.14-rc5/net/ipv4/route.c	2005-10-26 08:37:20.752285410 -0700
+++ patched/net/ipv4/route.c	2005-10-26 12:17:00.761651111 -0700
@@ -231,7 +231,7 @@ static spinlock_t	*rt_hash_locks;
 			spin_lock_init(&rt_hash_locks[i]); \
 		}
 #else
-# define rt_hash_lock_addr(slot) NULL
+# define rt_hash_lock_addr(slot) ((spinlock_t*)NULL)
 # define rt_hash_lock_init()
 #endif
 

^ permalink raw reply

* [git patches] 2.6.x net driver updates
From: Jeff Garzik @ 2005-10-28  0:42 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, linux-kernel

Please pull from 'upstream' branch of
master.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git

to receive the following misc. updates, many of them minor fixes, and a
ton of accumulated wireless updates.

 drivers/net/gianfar_phy.c                     |  661 ------------
 drivers/net/gianfar_phy.h                     |  213 ----
 drivers/net/hamradio/mkiss.h                  |   62 -
 Documentation/networking/bonding.txt          |    5 
 drivers/net/8139cp.c                          |    5 
 drivers/net/8139too.c                         |    5 
 drivers/net/Kconfig                           |   23 
 drivers/net/Makefile                          |    4 
 drivers/net/au1000_eth.c                      |   13 
 drivers/net/b44.c                             |  136 ++
 drivers/net/b44.h                             |    2 
 drivers/net/bonding/bond_main.c               |   57 +
 drivers/net/declance.c                        |   37 
 drivers/net/e100.c                            |    4 
 drivers/net/e1000/e1000.h                     |   74 +
 drivers/net/e1000/e1000_ethtool.c             |   95 +
 drivers/net/e1000/e1000_hw.c                  |  220 +++-
 drivers/net/e1000/e1000_hw.h                  |   96 +
 drivers/net/e1000/e1000_main.c                | 1082 +++++++++++++++-----
 drivers/net/e1000/e1000_param.c               |   10 
 drivers/net/epic100.c                         |    4 
 drivers/net/forcedeth.c                       |  310 +++--
 drivers/net/gianfar.c                         |  412 +------
 drivers/net/gianfar.h                         |   30 
 drivers/net/gianfar_ethtool.c                 |  100 +
 drivers/net/gianfar_mii.c                     |  219 ++++
 drivers/net/gianfar_mii.h                     |   45 
 drivers/net/hamradio/Kconfig                  |    1 
 drivers/net/hamradio/bpqether.c               |    9 
 drivers/net/hamradio/mkiss.c                  |  182 ++-
 drivers/net/hp100.c                           |   48 
 drivers/net/irda/stir4200.c                   |    7 
 drivers/net/ixgb/ixgb_ethtool.c               |    8 
 drivers/net/ixgb/ixgb_main.c                  |    3 
 drivers/net/lne390.c                          |    2 
 drivers/net/mii.c                             |   15 
 drivers/net/mipsnet.c                         |  371 ++++++
 drivers/net/mipsnet.h                         |  127 ++
 drivers/net/ne.c                              |   15 
 drivers/net/ne2k-pci.c                        |    2 
 drivers/net/ns83820.c                         |    3 
 drivers/net/pcnet32.c                         |  278 ++++-
 drivers/net/phy/Kconfig                       |    8 
 drivers/net/phy/phy.c                         |    8 
 drivers/net/phy/phy_device.c                  |    3 
 drivers/net/r8169.c                           |    2 
 drivers/net/rionet.c                          |  574 ++++++++++
 drivers/net/s2io-regs.h                       |   11 
 drivers/net/s2io.c                            |  801 ++++++++++++---
 drivers/net/s2io.h                            |   50 
 drivers/net/sb1250-mac.c                      | 1380 +++++++++++++-------------
 drivers/net/sgiseeq.c                         |   37 
 drivers/net/skge.c                            |    2 
 drivers/net/sundance.c                        |   53 
 drivers/net/tokenring/ibmtr.c                 |    9 
 drivers/net/tokenring/olympic.c               |    2 
 drivers/net/tokenring/tms380tr.c              |    3 
 drivers/net/tulip/de2104x.c                   |    5 
 drivers/net/typhoon.c                         |    7 
 drivers/net/via-rhine.c                       |   38 
 drivers/net/wan/cosa.c                        |    6 
 drivers/net/wan/cycx_drv.c                    |    7 
 drivers/net/wan/cycx_main.c                   |    2 
 drivers/net/wan/cycx_x25.c                    |    5 
 drivers/net/wan/dscc4.c                       |   23 
 drivers/net/wan/farsync.c                     |   27 
 drivers/net/wan/hdlc_fr.c                     |    2 
 drivers/net/wan/lmc/lmc_debug.c               |   10 
 drivers/net/wan/lmc/lmc_media.c               |    8 
 drivers/net/wan/pc300.h                       |   16 
 drivers/net/wan/pc300_drv.c                   |   87 -
 drivers/net/wan/pc300_tty.c                   |   18 
 drivers/net/wan/sdla.c                        |   20 
 drivers/net/wan/sdla_fr.c                     |    4 
 drivers/net/wan/sdla_x25.c                    |    8 
 drivers/net/wan/sdladrv.c                     |   16 
 drivers/net/wan/syncppp.c                     |   10 
 drivers/net/wireless/airo.c                   |   37 
 drivers/net/wireless/airport.c                |   19 
 drivers/net/wireless/atmel.c                  |   24 
 drivers/net/wireless/hermes.c                 |   11 
 drivers/net/wireless/hermes.h                 |  111 +-
 drivers/net/wireless/hostap/hostap.c          |    6 
 drivers/net/wireless/hostap/hostap_80211_rx.c |   43 
 drivers/net/wireless/hostap/hostap_80211_tx.c |   28 
 drivers/net/wireless/hostap/hostap_ap.c       |   80 -
 drivers/net/wireless/hostap/hostap_ap.h       |    6 
 drivers/net/wireless/hostap/hostap_cs.c       |   50 
 drivers/net/wireless/hostap/hostap_hw.c       |   22 
 drivers/net/wireless/hostap/hostap_ioctl.c    |   23 
 drivers/net/wireless/hostap/hostap_pci.c      |   21 
 drivers/net/wireless/hostap/hostap_plx.c      |   11 
 drivers/net/wireless/hostap/hostap_wlan.h     |    2 
 drivers/net/wireless/ipw2100.c                |   24 
 drivers/net/wireless/ipw2100.h                |    2 
 drivers/net/wireless/ipw2200.c                |   27 
 drivers/net/wireless/ipw2200.h                |    4 
 drivers/net/wireless/netwave_cs.c             |  185 ---
 drivers/net/wireless/orinoco.c                |  235 +---
 drivers/net/wireless/orinoco.h                |   16 
 drivers/net/wireless/orinoco_cs.c             |  110 +-
 drivers/net/wireless/orinoco_nortel.c         |   20 
 drivers/net/wireless/orinoco_pci.c            |   18 
 drivers/net/wireless/orinoco_plx.c            |   18 
 drivers/net/wireless/orinoco_tmd.c            |   18 
 drivers/net/wireless/prism54/isl_ioctl.c      |   10 
 drivers/net/wireless/prism54/islpci_dev.c     |   10 
 drivers/net/wireless/prism54/islpci_dev.h     |    2 
 drivers/net/wireless/prism54/islpci_mgt.c     |    5 
 drivers/net/wireless/ray_cs.c                 |   46 
 drivers/net/wireless/spectrum_cs.c            |   79 -
 drivers/net/wireless/wavelan.c                |    8 
 drivers/net/wireless/wavelan.p.h              |    4 
 drivers/net/wireless/wavelan_cs.c             |    8 
 drivers/net/wireless/wavelan_cs.p.h           |    4 
 drivers/net/wireless/wl3501.h                 |    2 
 drivers/s390/net/qeth.h                       |   45 
 drivers/s390/net/qeth_fs.h                    |   12 
 drivers/s390/net/qeth_main.c                  |  419 +++++--
 drivers/s390/net/qeth_mpc.c                   |    6 
 drivers/s390/net/qeth_mpc.h                   |   15 
 drivers/s390/net/qeth_sys.c                   |   28 
 include/asm-mips/sgi/hpc3.h                   |   40 
 include/linux/cyclomx.h                       |    2 
 include/linux/cycx_drv.h                      |    1 
 include/linux/ibmtr.h                         |    4 
 include/linux/if_arp.h                        |    1 
 include/linux/mii.h                           |    1 
 include/linux/netdevice.h                     |    6 
 include/linux/sdladrv.h                       |    4 
 include/linux/wanpipe.h                       |    9 
 include/net/ieee80211.h                       |  523 +++++++--
 include/net/ieee80211_crypt.h                 |   38 
 include/net/ieee80211_radiotap.h              |  231 ++++
 include/net/syncppp.h                         |    1 
 net/ieee80211/Makefile                        |    3 
 net/ieee80211/ieee80211_crypt.c               |   59 -
 net/ieee80211/ieee80211_crypt_ccmp.c          |   75 -
 net/ieee80211/ieee80211_crypt_tkip.c          |  150 +-
 net/ieee80211/ieee80211_crypt_wep.c           |   26 
 net/ieee80211/ieee80211_geo.c                 |  141 ++
 net/ieee80211/ieee80211_module.c              |   65 -
 net/ieee80211/ieee80211_rx.c                  |  610 ++++++++---
 net/ieee80211/ieee80211_tx.c                  |  321 ++++--
 net/ieee80211/ieee80211_wx.c                  |  372 +++++--
 145 files changed, 8163 insertions(+), 4651 deletions(-)

Adrian Bunk:
      drivers/net/wan/: possible cleanups

Andrew Morton:
      e1000_intr build fix
      s2io build fix
      e1000 build fix

Andy Fleming:
      [netdrvr gianfar] use new phy layer

Ayaz Abdulla:
      [netdrvr forcedeth] scatter gather and segmentation offload support

Dale Farnsworth:
      mii: Add test for GigE support

Hong Liu:
      Fixed problem with not being able to decrypt/encrypt broadcast packets.
      Fixed oops if an uninitialized key is used for encryption.

Hubert WS Lin:
      pcnet32: set_ringparam implementation
      pcnet32: set min ring size to 4

Ivo van Doorn:
      This will move the ieee80211_is_ofdm_rate function to the ieee80211.h
      Currently the info_element is parsed by 2 seperate functions, this
      When an assoc_resp is received the network structure is not completely

James Ketrenos:
      Fixed some endian issues with 802.11 header usage in ieee80211_rx.c
      ieee80211 quality scaling algorithm extension handler
      ieee80211 Added wireless spy support
      Changed 802.11 headers to use ieee80211_info_element[0]
      ieee80211 Removed ieee80211_info_element_hdr
      ieee80211 Cleanup memcpy parameters.
      ieee80211 Switched to sscanf in store_debug_level
      ieee80211 Fixed type-o of abg_ture -> abg_true
      Updated ipw2200 to compile with ieee80211 abg_ture to abg_true change
      ieee80211: Updated ipw2100 to be compatible with ieee80211_hdr changes
      ieee80211: Updated ipw2100 to be compatible with ieee80211's hard_start_xmit change
      ieee80211: Updated ipw2200 to be compatible with ieee80211_hdr changes
      ieee80211: Updated ipw2200 to be compatible with ieee80211's hard_start_xmit change.
      ieee80211: Updated atmel to be compatible with ieee80211_hdr changes
      ieee80211: Fixed a kernel oops on module unload
      ieee80211: Hardware crypto and fragmentation offload support
      ieee80211: Fix time calculation, switching to use jiffies_to_msecs
      ieee80211: Fix kernel Oops when module unload
      ieee80211: Allow drivers to fix an issue when using wpa_supplicant with WEP
      ieee82011: Added WE-18 support to default wireless extension handler
      ieee80211: Renamed ieee80211_hdr to ieee80211_hdr_3addr
      ieee80211: adds support for the creation of RTS packets
      ieee82011: Added ieee80211_tx_frame to convert generic 802.11 data frames, and callbacks
      ieee80211: Fix TKIP, repeated fragmentation problem, and payload_size reporting
      ieee80211: Return NETDEV_TX_BUSY when QoS buffer full
      ieee80211: Add QoS (WME) support to the ieee80211 subsystem
      ieee80211: Added ieee80211_geo to provide helper functions
      ieee80211: Added ieee80211_radiotap.h
      ieee80211: Additional fixes for endian-aware types
      ieee80211: "extern inline" to "static inline"
      ieee80211: Type-o, capbility definition for QoS, and ERP parsing
      ieee80211: Mixed PTK/GTK CCMP/TKIP support
      ieee80211: Keep auth mode unchanged after iwconfig key off/on cycle
      ieee80211: Updated copyright dates
      ieee80211: Updated hostap to be compatible with ieee80211_hdr changes
      ieee80211: Updated hostap to be compatible with extra_prefix_len changes
      ieee82011: Remove WIRELESS_EXT ifdefs
      ieee80211: Added subsystem version string and reporting via MODULE_VERSION
      ieee80211: Added handle_deauth() callback, enhanced tkip/ccmp support of varying hw/sw offload
      ieee80211: added IE comments, reason_code to reason, removed info_element from ieee80211_disassoc
      ieee80211: in-tree driver updates to sync with latest ieee80211 series
      ieee80211: update orinoco, wl3501 drivers for latest struct naming
      Lindent and trailing whitespace script executed ieee80211 subsystem
      Update version ieee80211 stamp to 1.1.6
      ieee80211 build fix

Jean Tourrilhes:
      hostap: Add support for WE-19
      hostap: Use GFP_ATOMIC to get rid of weird might_sleep issue
      hostap: Remove iwe_stream_add_event kludge

Jeff Garzik:
      [netdrvr] delete CONFIG_PHYCONTROL
      Remove WIRELESS_EXT ifdefs from several wireless drivers.
      [wireless airo] remove needed dma_addr_t obfuscation
      e1000: fix warnings

Jiri Benc:
      ieee80211: division by zero fix

John Linville:
      [netdrvr s2io] Add a MODULE_VERSION entry

John W. Linville:
      8139cp: support ETHTOOL_GPERMADDR
      8139too: support ETHTOOL_GPERMADDR
      b44: support ETHTOOL_GPERMADDR
      e1000: support ETHTOOL_GPERMADDR
      e100: support ETHTOOL_GPERMADDR
      forcedeth: support ETHTOOL_GPERMADDR
      ixgb: support ETHTOOL_GPERMADDR
      ne2k-pci: support ETHTOOL_GPERMADDR
      pcnet32: support ETHTOOL_GPERMADDR
      r8169: support ETHTOOL_GPERMADDR
      skge: support ETHTOOL_GPERMADDR
      sundance: support ETHTOOL_GPERMADDR
      via-rhine: support ETHTOOL_GPERMADDR
      s2io: change strncpy length arg to use size of target
      bonding: replicate IGMP traffic in activebackup mode
      via-rhine: change mdelay to msleep and remove from ISR path
      epic100: fix counting of work_done in epic_poll
      bonding: fix typos in bonding documentation
      8139too: fix resume for Realtek 8100B/8139D
      bonding: cleanup comment for mode 1 IGMP xmit hack
      b44: alternate allocation option for DMA descriptors
      orinoco: remove redundance skb length check before padding
      sundance: remove if (1) { ... } block in sundance_probe1
      sundance: expand reset mask
      sundance: include MII address 0 in PHY probe

Jouni Malinen:
      hostap: Remove hw specific dev_open/close handlers
      hostap: Fix hostap_pci build with PRISM2_IO_DEBUG
      hostap: Do not free local->hw_priv before unregistering netdev
      hostap: Unregister netdevs before freeing local data

Mallikarjuna R Chilakala:
      e1000: Support for 82571 and 82572 controllers
      e1000: multi-queue defines/modification to data structures
      e1000: implementation of the multi-queue feature
      e1000: Enable custom configuration bits for 82571/2 controllers
      e1000: Fixes for packet split related issues
      e1000: Added msleep_interruptible delay
      e1000: Flush shadow RAM
      e1000: Driver version, white space, comments, device id & other

Manfred Spraul:
      forcedeth: add hardware tx checksumming

Mateusz Berezecki:
      [wireless ipw2200] remove redundant return statement

Matt Porter:
      Add rapidio net driver

Michael Buesch:
      ieee80211 subsystem:

Michael Wu:
      This patch fixes a typo in ieee80211.h: ieee82011_deauth -> ieee80211_deauth

Michal Schmidt:
      airo: fix resume

Nishanth Aravamudan:
      drivers/net: fix-up schedule_timeout() usage

Pavel Roskin:
      orinoco: WE-18 support
      orinoco: Remove conditionals that are useless in the kernel drivers.
      orinoco: Don't include <net/ieee80211.h> twice.
      orinoco: Update PCMCIA ID's.
      orinoco: Remove inneeded system includes.
      orinoco: Make nortel_pci_hw_init() static.
      orinoco: Fix memory leak and unneeded unlock in orinoco_join_ap()
      orinoco: orinoco_send_wevents() could return without unlocking.
      orinoco: Remove unneeded forward declarations.
      orinoco: Annotate endianess of variables and structure members.
      orinoco: Read only needed data in __orinoco_ev_txexc().
      orinoco: Bump version to 0.15rc3.
      hostap: Fix pci_driver name for hostap_plx and hostap_pci

Ralf Baechle:
      AX.25: Delete debug printk from mkiss driver
      AX.25: Convert mkiss.c to DEFINE_RWLOCK
      rcu in bpqether driver.
      SMACK support for mkiss
      Initialize the .owner field the tty_ldisc structure.
      sb1250-mac: Check the actual setting for reporting hw checksumming.
      sb1250-mac: Ensure 16-byte alignment of the descriptor ring.
      au1000_eth: Misc Au1000 net driver fixes.
      de2104x: Resurrect Cobalt support for 2.6.
      sgiseeq: Fix resource handling.
      sgiseeq: Configure PIO and DMA timing requests.
      declance: Convert to irqreturn_t.
      declance: Fix mapping of device.
      declance: Deal with the bloody KSEG vs CKSEG horror...
      declance: Use physical addresses at the interface level.
      ne: Support for RBHMA4500 eval board.
      mipsnet: Virtual ethernet driver for MIPSsim.
      Remove unused header.
      sb1250-mac: Get rid of all the funny SBMAC_WRITECSR and SBMAC_READCSR macros.
      sb1250-mac: Whitespace cleanup.
      sb1250-mac: PHY probing fixes.

Randy Dunlap:
      Fix implicit nocast warnings in ieee80211 code:

Ravinandan Arakali:
      S2io: MSI/MSI-X support (runtime configurable)

ravinandan.arakali@neterion.com:
      S2io: Offline diagnostics fixes

Tobias Klauser:
      Replace drivers/net/wan custom ctype macros with standard ones

Ursula Braun:
      s390: introducing support in qeth for new OSA CHPID type OSN

viro@ZenIV.linux.org.uk:
      lne390 bogus casts
      C99 initializers in ray_cs.c

^ permalink raw reply

* Re: <REAL> iBurst (TM) compatible driver
From: Stephen Hemminger @ 2005-10-27 22:31 UTC (permalink / raw)
  To: Nicholas Jefferson; +Cc: netdev, linux-kernel
In-Reply-To: <4cd031a50510270924r38ad4d5oa88ae92a514df3cf@mail.gmail.com>

It is good to see more hardware supported, but like many drivers
you are adding a lot of racy ugliness just for debug crap.
Did you actually read any of the other network device drivers first
or try to write code from scratch off some book?

In order of severity.

1. Your network device registration code is wrong.
   Read Documentation/netdevices.txt
   You need to use alloc_netdev() and make the device specific data
   be allocated there, not bury netdevice in a kmalloc'd structure.

2. Transmit routine is wrong. Drop packets if out of memory.
   You can only return NETDEV_TX_OKAY or NETDEV_TX_BUSY
   You probably don't need to allocate memory anyway if you use
   hard header space properly.

3. You need to flow control the transmit queue. When it gets full
   use netdev_stop_queue() and call netdev_wake_queue when you
   have more space.

4. WTF is the whole ib_net_tap file stuff, and why do you need it?
   You can eliminate a lot of module races etc, by just pulling it.

5. Why bother with a /proc interface?
6. If you must then use seq_file.
7. If you must then do one device per file.
8. Then you can get rid of having a global array of device structures
   which is hard to maintain properly.
9. If you don't support ioctl's just leave dev->ioctl as NULL
10. Error code's from call's like register_netdev() should propogate back
    out.
11. ib_net_open, ib_net_close only called from user context don't need irqsave
    use spin_lock_irq()
12. Coding style: don't use u_long it's a BSDism
13. Please have source code laid out as patch to kernel, not out of tree driver

-- 
Stephen Hemminger <shemminger@osdl.org>
OSDL http://developer.osdl.org/~shemminger

^ permalink raw reply

* Re: <REAL> iBurst (TM) compatible driver
From: Bongani Hlope @ 2005-10-27 21:25 UTC (permalink / raw)
  To: Andi Kleen; +Cc: John W. Linville, Nicholas Jefferson, netdev, linux-kernel
In-Reply-To: <200510271944.12452.ak@suse.de>

On Thursday 27 October 2005 19:44, Andi Kleen wrote:
> On Thursday 27 October 2005 19:07, John W. Linville wrote:
> > On Fri, Oct 28, 2005 at 02:24:20AM +1000, Nicholas Jefferson wrote:
> > > The latest release of the iBurst (TM) compatible driver [1] for the
> > > 2.6 kernel is now available. Thanks to ArrayComm (R) for the original
> >
> > <snip>
> >
> > > Signed-off-by: Nicholas Jefferson <xanthophile@gmail.com>
> >
> > -ENOPATCH?
>
> And no description what an "iBurst (tm)" actually is. It sounds like
> something to clear blocked drains with.
>
> -Andi

iBurst is a wireless broadband internet service, so far I only know that it is 
available in Austrailer and South Africa. Here in South Africa, there are two 
devices you can use for connectivity an internal and external "modem". With 
the external modem, you can use either  USB or ethernet to connect (pppoe). 
The PCMCIA currently is not documented and there is no driver for Linux.

I ordered the external modem (still waiting for it), I'll try to get some guys 
from our LUG to test it (only the PCMCIA version is causing pain), hopefuly 
someone is stuck with that version ;)

^ permalink raw reply

* Re: <REAL> iBurst (TM) compatible driver
From: Lennert Buytenhek @ 2005-10-27 17:45 UTC (permalink / raw)
  To: Andi Kleen; +Cc: John W. Linville, Nicholas Jefferson, netdev, linux-kernel
In-Reply-To: <200510271944.12452.ak@suse.de>

On Thu, Oct 27, 2005 at 07:44:12PM +0200, Andi Kleen wrote:

> And no description what an "iBurst (tm)" actually is. It sounds like
> something to clear blocked drains with.

>From reading http://sourceforge.net/projects/ibdriver, it appears
to be some kind of wireless adapter:

	Linux driver for the ArrayComm* "iBurst*" wireless broadband devices.


--L

^ permalink raw reply

* Re: <REAL> iBurst (TM) compatible driver
From: Andi Kleen @ 2005-10-27 17:44 UTC (permalink / raw)
  To: John W. Linville; +Cc: Nicholas Jefferson, netdev, linux-kernel
In-Reply-To: <20051027170727.GA26569@tuxdriver.com>

On Thursday 27 October 2005 19:07, John W. Linville wrote:
> On Fri, Oct 28, 2005 at 02:24:20AM +1000, Nicholas Jefferson wrote:
> > The latest release of the iBurst (TM) compatible driver [1] for the
> > 2.6 kernel is now available. Thanks to ArrayComm (R) for the original
> 
> <snip>
> 
> > Signed-off-by: Nicholas Jefferson <xanthophile@gmail.com>
> 
> -ENOPATCH?

And no description what an "iBurst (tm)" actually is. It sounds like
something to clear blocked drains with.

-Andi

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox