Re: [git patches] net driver fixes (50% rebased)

2008-02-24 Thread David Miller
From: Jeff Garzik [EMAIL PROTECTED]
Date: Sun, 24 Feb 2008 00:20:41 -0500

 
 This is a 50% resend, rebased on top of net-2.6.
 
 Please pull from 'upstream-davem' branch of
 master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git 
 upstream-davem
 
 to receive the following updates:

Pulled and pushed back out, thanks Jeff.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-23 Thread Jeff Garzik

David Miller wrote:

Jeff, I really don't want to pull that tree in.  Please trust me as
your upstream to handle merging issues, as needed.



I trust you...  Otherwise I wouldn't have volunteered to move my 
upstream from Linus to you :)


My main issues/motivations were:

* quite simply, just force of habit:  I'm used to basing off of a recent 
Linus tree, to guarantee buildboot testing against the latest.


* worry about testing against a too-old tree, where non-networking fixes 
may have a relevant impact on my to-be-pushed netdrvr fixes.


But in this case it's fair to say there are no such issues, and it was 
mainly just out of habit.


So (as you saw in last email)... rebased and resend.

Jeff


--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-23 Thread David Miller
From: Jeff Garzik [EMAIL PROTECTED]
Date: Sun, 24 Feb 2008 00:48:54 -0500

 I trust you...  Otherwise I wouldn't have volunteered to move my 
 upstream from Linus to you :)
...
 So (as you saw in last email)... rebased and resend.

Thanks :)
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2008-02-20 Thread Jeff Garzik

Note:  this is based off of Linus's latest commit
(5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous
submissions are now upstream (thanks!).


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

to receive the following updates:

 MAINTAINERS|   11 +-
 drivers/net/cs89x0.c   |   12 +-
 drivers/net/ehea/ehea.h|   34 +-
 drivers/net/ehea/ehea_main.c   |  281 +---
 drivers/net/fs_enet/fs_enet-main.c |7 +-
 drivers/net/gianfar.c  |   14 +-
 drivers/net/igb/igb_main.c |   15 +--
 drivers/net/pcmcia/pcnet_cs.c  |   10 +-
 drivers/net/phy/mdio_bus.c |4 +-
 drivers/net/sis190.c   |   15 ++-
 drivers/net/tlan.c |   64 
 drivers/net/tulip/uli526x.c|   12 ++-
 drivers/net/virtio_net.c   |2 +-
 drivers/s390/net/claw.c|   39 +++---
 14 files changed, 399 insertions(+), 121 deletions(-)

Adrian Bunk (1):
  net/phy/mdio_bus.c: fix a check-after-use

Andy Gospodarek (1):
  igb: fix legacy mode irq issue

Becky Bruce (1):
  gianfar: don't pass NULL dev ptr to DMA ops

Bill Hayes (1):
  igb: Fix panic with NICs with 1000BASE-SX PHY

Christian Borntraeger (1):
  virtio_net: Fix oops on early interrupts - introduced by virtio reset code

Francois Romieu (1):
  sis190: read the mac address from the eeprom first

Grant Grundler (2):
  update TULIP MAINTAINERS
  uli526x partially recognizing interface

Harvey Harrison (1):
  tlan: add static to function definitions

Julia Lawall (1):
  claw: make use of DIV_ROUND_UP

Komuro (1):
  pcnet_cs: if AX88190-based card, printk use axnet_cs instead message.

Leonardo Potenza (1):
  drivers/net/cs89x0.c: compilation warning fix

Scott Wood (1):
  fs_enet: Don't call phy_mii_ioctl() in atomic context.

Thomas Klein (1):
  ehea: add kdump support

diff --git a/MAINTAINERS b/MAINTAINERS
index 082d1ee..53b6e60 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3887,10 +3887,13 @@ M:  [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
 S: Maintained
 
-TULIP NETWORK DRIVER
-L: [EMAIL PROTECTED]
-W: http://sourceforge.net/projects/tulip/
-S: Orphan
+TULIP NETWORK DRIVERS
+P: Grant Grundler
+M: [EMAIL PROTECTED]
+P: Kyle McMartin
+M: [EMAIL PROTECTED]
+L: netdev@vger.kernel.org
+S: Maintained
 
 TUN/TAP driver
 P: Maxim Krasnyansky
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index 5717509..348371f 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -172,30 +172,30 @@ static char version[] __initdata =
them to system IRQ numbers. This mapping is card specific and is set to
the configuration of the Cirrus Eval board for this chip. */
 #ifdef CONFIG_ARCH_CLPS7500
-static unsigned int netcard_portlist[] __initdata =
+static unsigned int netcard_portlist[] __used __initdata =
{ 0x80090303, 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 
0x280, 0x2a0, 0x2c0, 0x2e0, 0};
 static unsigned int cs8900_irq_map[] = {12,0,0,0};
 #elif defined(CONFIG_SH_HICOSH4)
-static unsigned int netcard_portlist[] __initdata =
+static unsigned int netcard_portlist[] __used __initdata =
{ 0x0300, 0};
 static unsigned int cs8900_irq_map[] = {1,0,0,0};
 #elif defined(CONFIG_MACH_IXDP2351)
-static unsigned int netcard_portlist[] __initdata = 
{IXDP2351_VIRT_CS8900_BASE, 0};
+static unsigned int netcard_portlist[] __used __initdata = 
{IXDP2351_VIRT_CS8900_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
 #include asm/irq.h
 #elif defined(CONFIG_ARCH_IXDP2X01)
 #include asm/irq.h
-static unsigned int netcard_portlist[] __initdata = 
{IXDP2X01_CS8900_VIRT_BASE, 0};
+static unsigned int netcard_portlist[] __used __initdata = 
{IXDP2X01_CS8900_VIRT_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
 #elif defined(CONFIG_ARCH_PNX010X)
 #include asm/irq.h
 #include asm/arch/gpio.h
 #define CIRRUS_DEFAULT_BASEIO_ADDRESS(EXT_STATIC2_s0_BASE + 0x20)  
/* = Physical address 0x4820 */
 #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event 
inputs bank 1 - ID 35/bit 3 */
-static unsigned int netcard_portlist[] __initdata = {CIRRUS_DEFAULT_BASE, 0};
+static unsigned int netcard_portlist[] __used __initdata = 
{CIRRUS_DEFAULT_BASE, 0};
 static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0};
 #else
-static unsigned int netcard_portlist[] __initdata =
+static unsigned int netcard_portlist[] __used __initdata =
{ 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 
0x2c0, 0x2e0, 0};
 static unsigned int cs8900_irq_map[] = {10,11,12,5};
 #endif
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 88fb53e..7c4ead3 100644
--- a/drivers/net/ehea/ehea.h
+++ 

Re: [git patches] net driver fixes

2008-02-20 Thread David Miller
From: Jeff Garzik [EMAIL PROTECTED]
Date: Wed, 20 Feb 2008 11:55:57 -0500

 
 Note:  this is based off of Linus's latest commit
 (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous
 submissions are now upstream (thanks!).

The whole point of my not rebasing net-2.6 is so that you can always
use it as a base.

With what you've giving me now I either have to:

1) Pull in Linus's tree to net-2.6, then pull from you.

2) Pull in directly from you to get it all.

The whole point of my not touching or rebasing net-2.6 is so that
everyonce can simply use it as a base and just keep working relative
to it.

If you have some need for upstream stuff outside networking (f.e.
some ACPI bug prevents interrupts from working or there is some build
failure), you can clone Linus's tree and pull net-2.6 and your driver
bits into there for building and testing.

Thanks for your consideration, I'm trying to show you mine by
giving everyone a relatively stable tree in which all networking
development can occur.

--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread David Miller
From: J. Bruce Fields [EMAIL PROTECTED]
Date: Wed, 20 Feb 2008 16:23:02 -0500

 On Wed, Feb 20, 2008 at 01:15:30PM -0800, David Miller wrote:
  From: Jeff Garzik [EMAIL PROTECTED]
  Date: Wed, 20 Feb 2008 11:55:57 -0500
  
   
   Note:  this is based off of Linus's latest commit
   (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous
   submissions are now upstream (thanks!).
  
  The whole point of my not rebasing net-2.6 is so that you can always
  use it as a base.
  
  With what you've giving me now I either have to:
  
  1) Pull in Linus's tree to net-2.6, then pull from you.
  
  2) Pull in directly from you to get it all.
 
 Why are either of those a problem?

Because it forces me to pull Linus's upstream into net-2.6,
I don't have any choice in the matter.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread J. Bruce Fields
On Wed, Feb 20, 2008 at 01:15:30PM -0800, David Miller wrote:
 From: Jeff Garzik [EMAIL PROTECTED]
 Date: Wed, 20 Feb 2008 11:55:57 -0500
 
  
  Note:  this is based off of Linus's latest commit
  (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous
  submissions are now upstream (thanks!).
 
 The whole point of my not rebasing net-2.6 is so that you can always
 use it as a base.
 
 With what you've giving me now I either have to:
 
 1) Pull in Linus's tree to net-2.6, then pull from you.
 
 2) Pull in directly from you to get it all.

Why are either of those a problem?

--b.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread J. Bruce Fields
On Wed, Feb 20, 2008 at 01:42:57PM -0800, David Miller wrote:
 From: J. Bruce Fields [EMAIL PROTECTED]
 Date: Wed, 20 Feb 2008 16:23:02 -0500
 
  On Wed, Feb 20, 2008 at 01:15:30PM -0800, David Miller wrote:
   From: Jeff Garzik [EMAIL PROTECTED]
   Date: Wed, 20 Feb 2008 11:55:57 -0500
   

Note:  this is based off of Linus's latest commit
(5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous
submissions are now upstream (thanks!).
   
   The whole point of my not rebasing net-2.6 is so that you can always
   use it as a base.
   
   With what you've giving me now I either have to:
   
   1) Pull in Linus's tree to net-2.6, then pull from you.
   
   2) Pull in directly from you to get it all.
  
  Why are either of those a problem?
 
 Because it forces me to pull Linus's upstream into net-2.6,
 I don't have any choice in the matter.

Right.  I'm wondering what the problems are that you see with that.

The advantages include earlier warning of merge problems, and avoidance
of duplicate commits--if Jeff's done work that depends on patches that
already upstream, then he either does that work against upstream, or
includes backported patches in the branch he asks you to pull, and you
end up with both the original and the backported patch.  Which isn't the
end of the world, but the resulting history seems messier than
necessary.

Or I guess you could both wait to do this merge until you're ready to
pull in Linus's latest?

For non-git-using testers there may be an advantage to always keeping a
tree based on the latest tagged release, as it may simplify providing
them with patches in some cases.  But if the goal is to provide a basis
for other maintainer's work, I'd've thought the best policy would be
just to track the tip of every relevant branch (which includes Linus's
in this case).

--b.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread David Miller
From: J. Bruce Fields [EMAIL PROTECTED]
Date: Wed, 20 Feb 2008 17:25:30 -0500

 The advantages include earlier warning of merge problems, and avoidance
 of duplicate commits--if Jeff's done work that depends on patches that
 already upstream, then he either does that work against upstream, or
 includes backported patches in the branch he asks you to pull, and you
 end up with both the original and the backported patch.  Which isn't the
 end of the world, but the resulting history seems messier than
 necessary.
 
 Or I guess you could both wait to do this merge until you're ready to
 pull in Linus's latest?

I do a test pull and build of net-2.6 into Linus's current tree
before I send Linus a pull request.

If any non-trivial merges are necessary, which hasn't happened yet at
all, I would then do a merge into my net-2.6 tree and resolve the
conflicts.

There is no reason for someone downstream of net-2.6 to do this.

--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread Francois Romieu
David Miller [EMAIL PROTECTED] :
[...]
 Because it forces me to pull Linus's upstream into net-2.6,
 I don't have any choice in the matter.

Jeff's choice is a bit surprizing. That being said, it would had been nice
to fast-forward net-2.6 from a442585952f137bd4cdb1f2f3166e4157d383b82
to Linus's upstream before applying the content of
12aa343add3eced38a44bdb612b35fdf634d918c in order to keep the drift
with Linus's branch to a minimum during the bugfix cycle.

-- 
Ueimor
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-20 Thread David Miller
From: Francois Romieu [EMAIL PROTECTED]
Date: Wed, 20 Feb 2008 23:40:53 +0100

 David Miller [EMAIL PROTECTED] :
 [...]
  Because it forces me to pull Linus's upstream into net-2.6,
  I don't have any choice in the matter.
 
 Jeff's choice is a bit surprizing. That being said, it would had been nice
 to fast-forward net-2.6 from a442585952f137bd4cdb1f2f3166e4157d383b82
 to Linus's upstream before applying the content of
 12aa343add3eced38a44bdb612b35fdf634d918c in order to keep the drift
 with Linus's branch to a minimum during the bugfix cycle.

Keep in mind there are also pending fixes in my net-2.6 tree which
Linus hasn't pulled in yet as well.

I watch Linus's tree closely, and I'll see any potential merge issue
long before it matters, and I always double check before pushing
stuff out to him.

My job as tree master is to deal with all the merge hassles, should
they occur.  But up until now everything networking has gone through
my tree and everything is fine.

The net-2.6 tree isn't even a week old.  I planned to pull Linus's
tree in right before I leave for a short trip tomorrow afternoon.
I'm really not being allowed to make that choice by how these
changes are being merged to me.

Heck, Jeff even thanked me for making my net-2.6 tree stable and not
rebasing, so his method of merging this stuff is doubly surprising for
me.

Jeff, I really don't want to pull that tree in.  Please trust me as
your upstream to handle merging issues, as needed.

Thanks!
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2008-02-15 Thread Jeff Garzik
Process note:  'upstream-davem' continues the git history that began
the previous push.  This sometimes happens when I continue to commit
locally, working in parallel while waiting for changes to hit Linus
upstream.

As current net-2.6.git appears to have the same commit ids that I
submitted in the previous push, this should be no problem at all,
just wanted you to know.

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

to receive the following updates:

 drivers/net/e1000/e1000_ethtool.c |2 +-
 drivers/net/e1000/e1000_main.c|8 
 drivers/net/e1000e/netdev.c   |   34 ++---
 drivers/net/gianfar.c |4 +-
 drivers/net/gianfar_mii.c |4 +-
 drivers/net/hamradio/mkiss.c  |5 +--
 drivers/net/igb/igb_ethtool.c |2 +-
 drivers/net/igb/igb_main.c|   28 --
 drivers/net/ixgb/ixgb_ethtool.c   |2 +-
 drivers/net/ixgbe/ixgbe_main.c|   41 +
 drivers/net/pcmcia/smc91c92_cs.c  |   12 +-
 drivers/net/tsi108_eth.c  |   72 +---
 12 files changed, 114 insertions(+), 100 deletions(-)

Al Viro (1):
  gianfar iomem misannotations

Alex Bounine (5):
  Tsi108_eth: add missing linking to driver data
  Tsi108_eth: fix detection of 1000Mb mode
  Tsi108_eth: remove not needed code
  Tsi108_eth: fix link recovery after disconnect
  Tsi108_eth: Add ethtool support

Auke Kok (7):
  e1000: warn if this driver is used for e1000e devices
  e1000e: Fix logic reversal keeping link active
  ixgbe: warn when device is in a x4 or lower width slot
  ixgbe: Disallow device reset during ethtool test
  ixgbe: remove accidentally added #ifdef
  e1000e: Fix CRC stripping in hardware context bug
  ixgbe: Correctly obtain protocol information on transmit

Chuck Ebbert (1):
  Fix station address detection in smc

David Graham (2):
  igb: PCIe devices do not need to unset MANC_ARP_ENA
  e1000e: PCIe devices do not need to unset MANC_ARP_ENA

Jarek Poplawski (1):
  mkiss: ax_bump() locking fix

Julia Lawall (1):
  replace code with FIELD_SIZEOF

diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index d876787..85e66f4 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -50,7 +50,7 @@ struct e1000_stats {
int stat_offset;
 };
 
-#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)-m), \
+#define E1000_STAT(m) FIELD_SIZEOF(struct e1000_adapter, m), \
  offsetof(struct e1000_adapter, m)
 static const struct e1000_stats e1000_gstrings_stats[] = {
{ rx_packets, E1000_STAT(stats.gprc) },
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index d4ee8ec..0991648 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1195,6 +1195,14 @@ e1000_probe(struct pci_dev *pdev,
 
printk(%s\n, print_mac(mac, netdev-dev_addr));
 
+   if (adapter-hw.bus_type == e1000_bus_type_pci_express) {
+   DPRINTK(PROBE, WARNING, This device (id %04x:%04x) will no 
+   longer be supported by this driver in the future.\n,
+   pdev-vendor, pdev-device);
+   DPRINTK(PROBE, WARNING, please use the \e1000e\ 
+   driver instead.\n);
+   }
+
/* reset the hardware with the new settings */
e1000_reset(adapter);
 
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index f58f017..3031d6d 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct 
e1000_adapter *adapter)
}
 }
 
-static void e1000_release_manageability(struct e1000_adapter *adapter)
-{
-   if (adapter-flags  FLAG_MNG_PT_ENABLED) {
-   struct e1000_hw *hw = adapter-hw;
-
-   u32 manc = er32(MANC);
-
-   /* re-enable hardware interception of ARP */
-   manc |= E1000_MANC_ARP_EN;
-   manc = ~E1000_MANC_EN_MNG2HOST;
-
-   /* don't explicitly have to mess with MANC2H since
-* MANC has an enable disable that gates MANC2H */
-   ew32(MANC, manc);
-   }
-}
-
 /**
  * @e1000_alloc_ring - allocate memory for a ring structure
  **/
@@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter 
*adapter)
 
manc = er32(MANC);
 
-   /* disable hardware interception of ARP */
-   manc = ~(E1000_MANC_ARP_EN);
-
/* enable receiving management packets to the host. this will probably
 * generate destination unreachable messages from the host OS, but
 * the packets will be handled on SMBUS */
@@ -1690,6 +1670,9 @@ static void e1000_setup_rctl(struct e1000_adapter 
*adapter)
else
  

Re: [git patches] net driver fixes

2008-02-15 Thread David Miller
From: Jeff Garzik [EMAIL PROTECTED]
Date: Fri, 15 Feb 2008 11:03:14 -0500

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

Pulled and pushed out.

As I mentioned to John Linville just now, I'm going to try
and keep net-2.6 running as long as I can without rebasing.

So you can just keep piling patches into your upstream-davem
branch without fear of my turning your world upside down
with a rebase :-)
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-02-15 Thread Jeff Garzik

David Miller wrote:

From: Jeff Garzik [EMAIL PROTECTED]
Date: Fri, 15 Feb 2008 11:03:14 -0500


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


Pulled and pushed out.

As I mentioned to John Linville just now, I'm going to try
and keep net-2.6 running as long as I can without rebasing.

So you can just keep piling patches into your upstream-davem
branch without fear of my turning your world upside down
with a rebase :-)


Thanks, it's appreciated!

Jeff



--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2008-01-30 Thread Jeff Garzik
First pass through the queue that built up over the weekend (plus a few
others that just missed 2.6.24 release), with a focus specifically on
fixes.

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

to receive the following updates:

 MAINTAINERS |2 -
 drivers/net/Kconfig |9 ++--
 drivers/net/arm/at91_ether.c|2 +-
 drivers/net/bfin_mac.c  |  107 +--
 drivers/net/bfin_mac.h  |   31 ++--
 drivers/net/bonding/bond_main.c |  106 --
 drivers/net/bonding/bonding.h   |4 +-
 drivers/net/cxgb3/mc5.c |2 +-
 drivers/net/cxgb3/sge.c |2 +-
 drivers/net/cxgb3/t3_hw.c   |   22 
 drivers/net/forcedeth.c |   61 ++
 drivers/net/natsemi.c   |   18 +--
 drivers/net/pci-skeleton.c  |   49 +-
 drivers/net/phy/Kconfig |5 ++
 drivers/net/phy/Makefile|1 +
 drivers/net/phy/mdio_bus.c  |2 +-
 drivers/net/phy/phy.c   |   68 +
 drivers/net/phy/phy_device.c|   11 ++--
 drivers/net/phy/realtek.c   |   80 +
 drivers/net/sis190.c|2 +-
 drivers/net/sky2.c  |   14 +++--
 include/linux/phy.h |5 +-
 22 files changed, 355 insertions(+), 248 deletions(-)
 create mode 100644 drivers/net/phy/realtek.c

Aidan Williams (1):
  EMAC driver: bf537 MAC multicast hash filtering patch

Alexey Demin (1):
  EMAC driver: fix bug - invalidate data cache of new_skb-data range when 
cache is WB

Andy Gospodarek (1):
  bonding: fix race that causes invalid statistics

Ayaz Abdulla (6):
  forcedeth: reset register fix
  forcedeth: checksum fix
  forcedeth: updated copyright section
  forcedeth: tx pause fix
  forcedeth: multicast fix
  forcedeth: mac address mcp77/79

Bryan Wu (3):
  EMAC driver: shorten the mdelay value to solve netperf performance issue
  EMAC driver: define MDC_CLK=2.5MHz and caculate mdc_div according to SCLK.
  EMAC driver: Fix bug: The clock divisor is set to all ones at reset.

Jay Vosburgh (6):
  bonding: fix parameter parsing
  bonding: fix set_multicast_list locking
  bonding: fix NULL pointer deref in startup processing
  bonding: do not acquire rtnl in ARP monitor
  bonding: update version
  bonding: update MAINTAINERS

Jeff Garzik (1):
  [netdrvr] sis190: build fix

Jike Song (1):
  pci-skeleton: Misc fixes to build neatly

Kim Phillips (1):
  phylib: Add Realtek 821x eth PHY support

Mark Brown (1):
  natsemi: Update locking documentation

Michael Hennerich (1):
  EMAC driver: ADSP-BF52x arch/mach support

Mike Frysinger (1):
  EMAC driver: use simpler comment headers and strip out information that 
is maintained in the scm's log

Nate Case (1):
  PHYLIB: Locking fixes for PHY I/O potentially sleeping

Roel Kluin (1):
  drivers/net/arm/at91_ether.c: logical/bitand typo in function reset_phy()

Roland Dreier (1):
  cxgb3: Remove incorrect __devinit annotations

Stephen Hemminger (2):
  sky2: restore multicast addresses after recovery
  sky2: fix Wake On Lan interaction with BIOS

Vitja Makarov (1):
  EMAC driver: add power down mode

diff --git a/MAINTAINERS b/MAINTAINERS
index 10011d9..77ad82a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -939,8 +939,6 @@ M:  [EMAIL PROTECTED]
 S: Maintained
 
 BONDING DRIVER
-P: Chad Tindel
-M: [EMAIL PROTECTED]
 P: Jay Vosburgh
 M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 5a2d1dd..ca2552b 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -814,8 +814,8 @@ config ULTRA32
  will be called smc-ultra32.
 
 config BFIN_MAC
-   tristate Blackfin 536/537 on-chip mac support
-   depends on NET_ETHERNET  (BF537 || BF536)  (!BF537_PORT_H)
+   tristate Blackfin 527/536/537 on-chip mac support
+   depends on NET_ETHERNET  (BF527 || BF537 || BF536)  (!BF537_PORT_H)
select CRC32
select MII
select PHYLIB
@@ -828,7 +828,7 @@ config BFIN_MAC
 
 config BFIN_MAC_USE_L1
bool Use L1 memory for rx/tx packets
-   depends on BFIN_MAC  BF537
+   depends on BFIN_MAC  (BF527 || BF537)
default y
help
  To get maximum network performance, you should use L1 memory as rx/tx 
buffers.
@@ -855,7 +855,8 @@ config BFIN_RX_DESC_NUM
 config BFIN_MAC_RMII
bool RMII PHY Interface (EXPERIMENTAL)
depends on BFIN_MAC  EXPERIMENTAL
-   default n
+   default y if BFIN527_EZKIT
+   default n if BFIN537_STAMP
help
  Use Reduced PHY MII Interface
 
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index 25b114a..0ae0d83 

Re: [git patches] net driver fixes

2008-01-30 Thread Sam Ravnborg
 
 Jeff Garzik (1):
   [netdrvr] sis190: build fix

But you did it wrong...
sis190.c b/drivers/net/sis190.c
 index b570402..2e9e88b 100644
 --- a/drivers/net/sis190.c
 +++ b/drivers/net/sis190.c
 @@ -326,7 +326,7 @@ static const struct {
   { SiS 191 PCI Gigabit Ethernet adapter },
  };
  
 -static struct pci_device_id sis190_pci_tbl[] __devinitdata = {
 +static struct pci_device_id sis190_pci_tbl[] = {
   { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 },
   { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 },
   { 0, },

The __devinitdata is OK, it is the following _devinitdata that had to be 
_devinitconst.

Sam
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-30 Thread Jeff Garzik

Sam Ravnborg wrote:

Jeff Garzik (1):
  [netdrvr] sis190: build fix


But you did it wrong...
sis190.c b/drivers/net/sis190.c

index b570402..2e9e88b 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -326,7 +326,7 @@ static const struct {
{ SiS 191 PCI Gigabit Ethernet adapter },
 };
 
-static struct pci_device_id sis190_pci_tbl[] __devinitdata = {

+static struct pci_device_id sis190_pci_tbl[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 },
{ PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 },
{ 0, },


The __devinitdata is OK, it is the following _devinitdata that had to be 
_devinitconst.


Cool.  Either way is fine with me.  I just wanted to get a build fix 
upstream ASAP, one I was sure would work.


Jeff



--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-30 Thread Francois Romieu
Sam Ravnborg [EMAIL PROTECTED] :
[...]
  -static struct pci_device_id sis190_pci_tbl[] __devinitdata = {
  +static struct pci_device_id sis190_pci_tbl[] = {
  { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 },
  { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 },
  { 0, },
 
 The __devinitdata is OK, it is the following _devinitdata that had
 to be _devinitconst.

Strangely enough, removing the devinitdata from the sis190_pci_tbl
silents the error message here. Do you have an explanation ?

-- 
Ueimor
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-30 Thread Sam Ravnborg
On Wed, Jan 30, 2008 at 11:47:11PM +0100, Francois Romieu wrote:
 Sam Ravnborg [EMAIL PROTECTED] :
 [...]
   -static struct pci_device_id sis190_pci_tbl[] __devinitdata = {
   +static struct pci_device_id sis190_pci_tbl[] = {
 { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 },
 { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 },
 { 0, },
  
  The __devinitdata is OK, it is the following _devinitdata that had
  to be _devinitconst.
 
 Strangely enough, removing the devinitdata from the sis190_pci_tbl
 silents the error message here. Do you have an explanation ?
gcc compalins if you add const and non-const data to the same section
which is the case in this driver.

The bug are exposed now where __devinitdata are no longer an empty define.

Sam
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2008-01-23 Thread Jeff Garzik

Francois noted that these warranted promotion from net-2.6.25.git to
current 2.6.24-rc.

NOTE:  These changesets were cherry-picked from net-2.6.25, without any
modifications.  Any future rebase or merge should hopefully notice this
automatically.



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

to receive the following updates:

 drivers/net/sis190.c |   21 ++---
 1 files changed, 10 insertions(+), 11 deletions(-)

Francois Romieu (4):
  sis190: add cmos ram access code for the SiS19x/968 chipset pair
  sis190: remove duplicate INIT_WORK
  sis190: mdio operation failure is not correctly detected
  sis190: scheduling while atomic error

diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index 7eab072..b570402 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -372,7 +372,7 @@ static void __mdio_cmd(void __iomem *ioaddr, u32 ctl)
msleep(1);
}
 
-   if (i  999)
+   if (i  99)
printk(KERN_ERR PFX PHY command failed !\n);
 }
 
@@ -847,10 +847,8 @@ static void sis190_soft_reset(void __iomem *ioaddr)
 {
SIS_W32(IntrControl, 0x8000);
SIS_PCI_COMMIT();
-   msleep(1);
SIS_W32(IntrControl, 0x0);
sis190_asic_down(ioaddr);
-   msleep(1);
 }
 
 static void sis190_hw_start(struct net_device *dev)
@@ -1041,8 +1039,6 @@ static int sis190_open(struct net_device *dev)
if (rc  0)
goto err_free_rx_1;
 
-   INIT_WORK(tp-phy_task, sis190_phy_task);
-
sis190_request_timer(dev);
 
rc = request_irq(dev-irq, sis190_interrupt, IRQF_SHARED, dev-name, 
dev);
@@ -1549,28 +1545,31 @@ static int __devinit 
sis190_get_mac_addr_from_eeprom(struct pci_dev *pdev,
 }
 
 /**
- * sis190_get_mac_addr_from_apc - Get MAC address for SiS965 model
+ * sis190_get_mac_addr_from_apc - Get MAC address for SiS96x model
  * @pdev: PCI device
  * @dev:  network device to get address for
  *
- * SiS965 model, use APC CMOS RAM to store MAC address.
+ * SiS96x model, use APC CMOS RAM to store MAC address.
  * APC CMOS RAM is accessed through ISA bridge.
  * MAC address is read into @net_dev-dev_addr.
  */
 static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev *pdev,
  struct net_device *dev)
 {
+   static const u16 __devinitdata ids[] = { 0x0965, 0x0966, 0x0968 };
struct sis190_private *tp = netdev_priv(dev);
struct pci_dev *isa_bridge;
u8 reg, tmp8;
-   int i;
+   unsigned int i;
 
net_probe(tp, KERN_INFO %s: Read MAC address from APC.\n,
  pci_name(pdev));
 
-   isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0965, NULL);
-   if (!isa_bridge)
-   isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0966, NULL);
+   for (i = 0; i  ARRAY_SIZE(ids); i++) {
+   isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, ids[i], NULL);
+   if (isa_bridge)
+   break;
+   }
 
if (!isa_bridge) {
net_probe(tp, KERN_INFO %s: Can not find ISA bridge.\n,
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-23 Thread David Miller
From: Jeff Garzik [EMAIL PROTECTED]
Date: Wed, 23 Jan 2008 05:05:18 -0500

 master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git 
 upstream-davem

Pulled into net-2.6, thanks Jeff.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2008-01-12 Thread Jeff Garzik

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

to receive the following updates:

 MAINTAINERS |   10 ++-
 drivers/net/3c509.c |4 +
 drivers/net/Kconfig |   20 +++---
 drivers/net/fs_enet/fs_enet-main.c  |   11 ++-
 drivers/net/loopback.c  |2 +-
 drivers/net/netxen/netxen_nic.h |   69 +
 drivers/net/netxen/netxen_nic_init.c|   20 ++---
 drivers/net/netxen/netxen_nic_main.c|   70 ++---
 drivers/net/netxen/netxen_nic_niu.c |8 +-
 drivers/net/r8169.c |2 +-
 drivers/net/sky2.c  |   48 +++-
 drivers/net/sky2.h  |4 +-
 drivers/net/tulip/de4x5.c   |  127 +++
 drivers/net/tulip/tulip_core.c  |3 +-
 drivers/net/tulip/xircom_cb.c   |   54 ++---
 drivers/net/usb/asix.c  |6 +-
 drivers/net/wireless/rt2x00/rt2500usb.c |2 +-
 drivers/net/wireless/rt2x00/rt2x00pci.c |   20 -
 drivers/net/wireless/rt2x00/rt2x00usb.c |   17 -
 drivers/net/wireless/rt2x00/rt61pci.c   |   12 +++
 20 files changed, 238 insertions(+), 271 deletions(-)

Al Viro (3):
  xircom_cb endianness fixes
  de4x5 fixes
  endianness noise in tulip_core

Anton Vorontsov (1):
  fs_enet: check for phydev existence in the ethtool handlers

Dhananjay Phadke (1):
  netxen: fix byte-swapping in tx and rx

Emil Medve (1):
  Fixed a small typo in the loopback driver

Francois Romieu (1):
  r8169: fix missing loop variable increment

Ivo van Doorn (2):
  rt2x00: Corectly initialize rt2500usb MAC
  rt2x00: Put 802.11 data on 4 byte boundary

Jens Osterkamp (1):
  spidernet MAINTAINERship update

Krzysztof Helt (1):
  3c509: PnP resource management fix

Mattias Nissler (1):
  rt2x00: Allow rt61 to catch up after a missing tx report

Russ Dill (1):
  [usb netdev] asix: fix regression

Stephen Hemminger (3):
  ip1000: menu location change
  sky2: large memory workaround.
  sky2: remove check for PCI wakeup setting from BIOS

[EMAIL PROTECTED] (4):
  netxen: update MAINTAINERS
  netxen: update driver version
  netxen: stop second phy correctly
  netxen: optimize tx handling

diff --git a/MAINTAINERS b/MAINTAINERS
index b4f611c..92aa0a7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2739,8 +2739,8 @@ T:git 
kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
 S: Maintained
 
 NETXEN (1/10) GbE SUPPORT
-P: Amit S. Kale
-M: [EMAIL PROTECTED]
+P: Dhananjay Phadke
+M: [EMAIL PROTECTED]
 L: netdev@vger.kernel.org
 W: http://www.netxen.com
 S: Supported
@@ -3611,8 +3611,10 @@ L:   [EMAIL PROTECTED] ?
 S: Supported
 
 SPIDERNET NETWORK DRIVER for CELL
-P: Linas Vepstas
-M: [EMAIL PROTECTED]
+P: Ishizaki Kou
+M: [EMAIL PROTECTED]
+P: Jens Osterkamp
+M: [EMAIL PROTECTED]
 L: netdev@vger.kernel.org
 S: Supported
 
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index edda6e1..8fafac9 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -385,6 +385,7 @@ static int __init el3_probe(int card_idx)
 #if defined(__ISAPNP__)
static int pnp_cards;
struct pnp_dev *idev = NULL;
+   int pnp_found = 0;
 
if (nopnp == 1)
goto no_pnp;
@@ -430,6 +431,7 @@ __again:
pnp_cards++;
 
netdev_boot_setup_check(dev);
+   pnp_found = 1;
goto found;
}
}
@@ -560,6 +562,8 @@ no_pnp:
lp = netdev_priv(dev);
 #if defined(__ISAPNP__)
lp-dev = idev-dev;
+   if (pnp_found)
+   lp-type = EL3_PNP;
 #endif
err = el3_common_init(dev);
 
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index d9107e5..114771a 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -166,16 +166,6 @@ config NET_SB1000
 
  If you don't have this card, of course say N.
 
-config IP1000
-   tristate IP1000 Gigabit Ethernet support
-   depends on PCI  EXPERIMENTAL
-   select MII
-   ---help---
- This driver supports IP1000 gigabit Ethernet cards.
-
- To compile this driver as a module, choose M here: the module
- will be called ipg.  This is recommended.
-
 source drivers/net/arcnet/Kconfig
 
 source drivers/net/phy/Kconfig
@@ -1992,6 +1982,16 @@ config E1000E
  To compile this driver as a module, choose M here. The module
  will be called e1000e.
 
+config IP1000
+   tristate IP1000 Gigabit Ethernet support
+   depends on PCI  EXPERIMENTAL
+   select MII
+   ---help---
+ This driver supports IP1000 gigabit Ethernet cards.
+
+ To compile this driver as a 

Re: [git patches] net driver fixes

2008-01-10 Thread Meelis Roos
  Well, it's 2.6.24-rc7 already - any news?
 
 I put this into my net-2.6 tree last night since Jeff asked
 me to look over critical networking driver stuff for a little
 while.

Thanks, they are upstream now and it did fix tulip in my PPC - network 
is stable again.

-- 
Meelis Roos ([EMAIL PROTECTED])
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-07 Thread Meelis Roos
  JG A couple [minorly] notable wireless bug fixes, and plenty of viro fixes
  JG for obscure issues :)
  
  What about the tulip NAPI fix from Stephen Hemminger? Without this, my tulip
  is hosed easily.
  
  The thread where I reported it was Badness at net/core/dev.c:2199, around
  Dec 16.
 
 That's going up in the first post-Xmas batch.

Well, it's 2.6.24-rc7 already - any news?

-- 
Meelis Roos ([EMAIL PROTECTED])
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2008-01-07 Thread David Miller
From: Meelis Roos [EMAIL PROTECTED]
Date: Mon, 7 Jan 2008 14:44:03 +0200 (EET)

   JG A couple [minorly] notable wireless bug fixes, and plenty of viro 
   fixes
   JG for obscure issues :)
   
   What about the tulip NAPI fix from Stephen Hemminger? Without this, my 
   tulip
   is hosed easily.
   
   The thread where I reported it was Badness at net/core/dev.c:2199, 
   around
   Dec 16.
  
  That's going up in the first post-Xmas batch.
 
 Well, it's 2.6.24-rc7 already - any news?

I put this into my net-2.6 tree last night since Jeff asked
me to look over critical networking driver stuff for a little
while.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-12-22 Thread Al Viro
On Sun, Dec 23, 2007 at 12:33:14AM -0500, Jeff Garzik wrote:
 
 A couple [minorly] notable wireless bug fixes, and plenty of viro fixes
 for obscure issues :)

Heh...  FWIW, forcedeth patch (sent your way about two weeks ago) also
belongs in the same set.  If you need a resend - tell...

There's another pile in drivers/net/wireless, but that's for linville to
forward when he gets around to it.  Pure annotation patches belong to
past-2.6.24 merge.

I also have starfire and epic100 fixes, but that'll have to wait until
I get around to putting the cards into sparc box (mcast breakage for
starfire and full-driver one for epic100; since nobody had cared for
the latter since 2.3.late, well...)

I think I'll have an ipg fix for you tomorrow, but I want to RTFM first
to make sure that it makes sense.  And there are several interesting
issues in atl1, netxen and cxgb3, but those will have to wait for when
I get around to asking maintainers just what the hell did they mean those
to do.

FWIW, drivers/net is fairly noise-free wrt sparse endianness warnings
in my tree; the main exceptions are prism54 (oid_mgt.c and the nightmares
it pulls) and skfp (AIX-shared vendor driver; 'nuff said, IMO).

BTW, if you still have any documentation for xircom_cb from your fighting
tulip-related stuff, it would be welcome - there are some oddities with
rx ring handling (assuming that we care about that driver at all and it's
not on the way out, that is).
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-12-22 Thread Jeff Garzik

Al Viro wrote:

On Sun, Dec 23, 2007 at 12:33:14AM -0500, Jeff Garzik wrote:

A couple [minorly] notable wireless bug fixes, and plenty of viro fixes
for obscure issues :)


Heh...  FWIW, forcedeth patch (sent your way about two weeks ago) also
belongs in the same set.  If you need a resend - tell...


I applied it to #upstream (2.6.25) since forcedeth is not on any 
big-endian platforms AFAIK.


Is it .24 material for some obvious reason, which I missed?  :)



There's another pile in drivers/net/wireless, but that's for linville to
forward when he gets around to it.  Pure annotation patches belong to
past-2.6.24 merge.

I also have starfire and epic100 fixes, but that'll have to wait until
I get around to putting the cards into sparc box (mcast breakage for
starfire and full-driver one for epic100; since nobody had cared for
the latter since 2.3.late, well...)


I have an epic100 card too if you need it (though it sounds like you 
have something testable).




I think I'll have an ipg fix for you tomorrow, but I want to RTFM first
to make sure that it makes sense.  And there are several interesting
issues in atl1, netxen and cxgb3, but those will have to wait for when
I get around to asking maintainers just what the hell did they mean those
to do.

FWIW, drivers/net is fairly noise-free wrt sparse endianness warnings
in my tree; the main exceptions are prism54 (oid_mgt.c and the nightmares
it pulls) and skfp (AIX-shared vendor driver; 'nuff said, IMO).


Awesome :)



BTW, if you still have any documentation for xircom_cb from your fighting
tulip-related stuff, it would be welcome - there are some oddities with
rx ring handling (assuming that we care about that driver at all and it's
not on the way out, that is).


xircom_tulip_cb should probably be deleted, since it is the crappier of 
the two drivers for the same hardware (xircom_cb being the other one).


xircom_cb _the driver_ is pretty odd.  It is less like tulip than it 
should be, actually.  There are several things that could have been done 
to improve the throughput/etc. of the driver, but it was more important 
at the time to simply find a driver that always worked.  IIRC its RX 
filtering was broken, implying the need to enable promisc mode just to 
receive packets normally.


Jeff



--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-12-22 Thread Al Viro
On Sun, Dec 23, 2007 at 01:42:14AM -0500, Jeff Garzik wrote:
 I applied it to #upstream (2.6.25) since forcedeth is not on any 
 big-endian platforms AFAIK.

All right, then...  I hadn't been sure if it's onboard-only, that's all.
 
 I have an epic100 card too if you need it (though it sounds like you 
 have something testable).

Picked one for a fiver on ebay, just need to get around to putting it
into that U60 box and testing; not a problem, just hadn't got around to
doing that yet.
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-12-17 Thread Jeff Garzik

A couple serious fixes (wireless, e100, sky2) and a bevy of minor ones.

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

to receive the following updates:

 MAINTAINERS|6 ++
 drivers/net/e100.c |5 ++-
 drivers/net/hamachi.c  |   70 +---
 drivers/net/ibm_newemac/debug.c|2 +-
 drivers/net/ixgb/ixgb_main.c   |   16 +-
 drivers/net/pcmcia/pcnet_cs.c  |1 +
 drivers/net/s2io.c |4 +-
 drivers/net/sis190.c   |   10 ++--
 drivers/net/sky2.c |9 +++-
 drivers/net/smc911x.h  |2 +-
 drivers/net/starfire.c |2 +-
 drivers/net/sundance.c |   34 ++--
 drivers/net/ucc_geth.c |2 +-
 drivers/net/ucc_geth_mii.h |2 +-
 drivers/net/wireless/Kconfig   |1 +
 drivers/net/wireless/b43/leds.c|4 ++
 drivers/net/wireless/b43/main.c|   22 
 drivers/net/wireless/b43/rfkill.c  |   37 +++--
 drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c |2 +-
 drivers/net/wireless/ipw2200.c |7 ++-
 drivers/net/wireless/iwlwifi/iwl3945-base.c|5 ++-
 drivers/net/wireless/iwlwifi/iwl4965-base.c|5 ++-
 drivers/net/wireless/zd1211rw/zd_mac.c |   10 +++-
 net/mac80211/ieee80211_rate.c  |1 +
 24 files changed, 168 insertions(+), 91 deletions(-)

Adrian Bunk (3):
  drivers/net/sis190.c section fix
  drivers/net/s2io.c section fixes
  wireless/ipw2200.c: add __dev{init,exit} annotations

Al Viro (4):
  sundance fixes
  starfire VLAN fix
  hamachi endianness fixes
  sis190 endianness

Andrew Morton (2):
  ucc_geth: minor whitespace fix
  bcm43xx_debugfs sscanf fix

Anton Vorontsov (1):
  ucc_geth: really fix section mismatch

Auke Kok (1):
  e100: free IRQ to remove warningwhenrebooting

Cyrill Gorcunov (2):
  ieee80211_rate: missed unlock
  iwlwifi3945/4965: fix rate control algo reference leak

Dan Williams (1):
  libertas: select WIRELESS_EXT

Jiri Slaby (1):
  Net: ibm_newemac, remove SPIN_LOCK_UNLOCKED

Komuro (1):
  pcnet_cs: add new id

Larry Finger (1):
  b43: Fix rfkill radio LED

Matheos Worku (1):
  ixgb: make sure jumbos stay enabled after reset

Paul Mundt (1):
  net: smc911x: shut up compiler warnings

Stefano Brivio (1):
  libertas: add Dan Williams as maintainer

Stephen Hemminger (1):
  sky2: RX lockup fix

Ulrich Kunitz (1):
  zd1211rw: Fix alignment problems

Zhu Yi (1):
  iwlwifi: fix rf_kill state inconsistent during suspend and resume

diff --git a/MAINTAINERS b/MAINTAINERS
index 9507b42..c331ba3 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2489,6 +2489,12 @@ M:   [EMAIL PROTECTED]
 W: ftp://ftp.kernel.org/pub/linux/docs/manpages
 S: Maintained
 
+MARVELL LIBERTAS WIRELESS DRIVER
+P: Dan Williams
+M: [EMAIL PROTECTED]
+L: [EMAIL PROTECTED]
+S: Maintained
+
 MARVELL MV643XX ETHERNET DRIVER
 P: Dale Farnsworth
 M: [EMAIL PROTECTED]
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index e1c8a0d..2b06e4b 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2737,8 +2737,9 @@ static int e100_suspend(struct pci_dev *pdev, 
pm_message_t state)
pci_enable_wake(pdev, PCI_D3cold, 0);
}
 
-   pci_disable_device(pdev);
free_irq(pdev-irq, netdev);
+
+   pci_disable_device(pdev);
pci_set_power_state(pdev, PCI_D3hot);
 
return 0;
@@ -2780,6 +2781,8 @@ static void e100_shutdown(struct pci_dev *pdev)
pci_enable_wake(pdev, PCI_D3cold, 0);
}
 
+   free_irq(pdev-irq, netdev);
+
pci_disable_device(pdev);
pci_set_power_state(pdev, PCI_D3hot);
 }
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index ed407c8..b53f6b6 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -204,8 +204,10 @@ KERN_INFOFurther modifications by Keith Underwood 
[EMAIL PROTECTED]
 /* Condensed bus+endian portability operations. */
 #if ADDRLEN == 64
 #define cpu_to_leXX(addr)  cpu_to_le64(addr)
+#define leXX_to_cpu(addr)  le64_to_cpu(addr)
 #else
 #define cpu_to_leXX(addr)  cpu_to_le32(addr)
+#define leXX_to_cpu(addr)  le32_to_cpu(addr)
 #endif
 
 
@@ -465,12 +467,12 @@ enum intr_status_bits {
 
 /* The Hamachi Rx and Tx buffer descriptors. */
 struct hamachi_desc {
-   u32 status_n_length;
+   __le32 status_n_length;
 #if ADDRLEN == 64
u32 pad;
-   u64 addr;
+   __le64 addr;
 #else
-   u32 addr;
+   __le32 addr;
 #endif
 };
 
@@ -874,13 +876,13 @@ static 

Re: [git patches] net driver fixes

2007-12-17 Thread Divy Le Ray

Jeff Garzik wrote:


A couple serious fixes (wireless, e100, sky2) and a bevy of minor ones.

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




Hi Jeff,

Should I resend the 2 cxgb3 patches posted on 12/05 and 12/06 ?
I did not see them getting applied to the #upstream branch today.

Cheers,
Divy


--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-12-17 Thread Jeff Garzik

Divy Le Ray wrote:

Jeff Garzik wrote:


A couple serious fixes (wireless, e100, sky2) and a bevy of minor ones.

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




Hi Jeff,

Should I resend the 2 cxgb3 patches posted on 12/05 and 12/06 ?
I did not see them getting applied to the #upstream branch today.

Cheers,
Divy


--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html



The last thing I have from you, in netdev#upstream, is

commit 75758e8aa4b7d5c651261ce653dd8d0b716e1eda
Author: Divy Le Ray [EMAIL PROTECTED]
Date:   Wed Dec 5 10:15:01 2007 -0800

cxgb3 - T3C support update

Update GPIO mapping for T3C.
Update xgmac for T3C support.
Fix typo in mtu table.

and there's nothing in my inbox.

So if that is not the change you want, yes, please do resend.

Jeff


--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-12-17 Thread Divy Le Ray



http://vger.kernel.org/majordomo-info.html

The last thing I have from you, in netdev#upstream, is

commit 75758e8aa4b7d5c651261ce653dd8d0b716e1eda
Author: Divy Le Ray [EMAIL PROTECTED]
Date:   Wed Dec 5 10:15:01 2007 -0800

 cxgb3 - T3C support update

 Update GPIO mapping for T3C.
 Update xgmac for T3C support.
 Fix typo in mtu table.

and there's nothing in my inbox.

So if that is not the change you want, yes, please do resend.



Okay, I just resent. You originally attempted to apply these patches to 
the #upstream-fixes branch,
which failed for the 2 patches i just reposted. I guess it is why 
they're no longer in your inbox.


Cheers,
Divy

--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-12-07 Thread Jeff Garzik
Nothing remarkable.  Mainly bonding fixes and bringing ibm_newemac up to
snuff.


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

to receive the following updates:

 Documentation/networking/bonding.txt |   29 -
 arch/powerpc/boot/dts/sequoia.dts|5 ++
 drivers/net/Kconfig  |1 +
 drivers/net/bonding/bond_main.c  |  116 +-
 drivers/net/bonding/bond_sysfs.c |   94 +---
 drivers/net/bonding/bonding.h|4 +-
 drivers/net/cxgb3/regs.h |   27 -
 drivers/net/cxgb3/t3_hw.c|6 +-
 drivers/net/cxgb3/xgmac.c|   44 +-
 drivers/net/e100.c   |6 +-
 drivers/net/e1000/e1000_ethtool.c|2 +-
 drivers/net/e1000e/ethtool.c |2 +-
 drivers/net/ibm_newemac/core.c   |   56 +++-
 drivers/net/ibm_newemac/core.h   |   11 +++-
 drivers/net/ibm_newemac/debug.c  |5 ++
 drivers/net/ibm_newemac/debug.h  |5 ++
 drivers/net/ibm_newemac/emac.h   |5 ++
 drivers/net/ibm_newemac/mal.c|5 ++
 drivers/net/ibm_newemac/mal.h|5 ++
 drivers/net/ibm_newemac/phy.c|   81 +++
 drivers/net/ibm_newemac/phy.h|5 ++
 drivers/net/ibm_newemac/rgmii.c  |   25 +---
 drivers/net/ibm_newemac/rgmii.h  |   10 +++-
 drivers/net/ibm_newemac/tah.c|8 ++-
 drivers/net/ibm_newemac/tah.h|5 ++
 drivers/net/ibm_newemac/zmii.c   |9 +++-
 drivers/net/ibm_newemac/zmii.h   |5 ++
 drivers/net/s2io-regs.h  |1 +
 drivers/net/s2io.c   |   16 +-
 include/linux/if_bonding.h   |3 +-
 30 files changed, 423 insertions(+), 173 deletions(-)

Auke Kok (1):
  e100: cleanup unneeded math

Benjamin Herrenschmidt (5):
  ibm_newemac: Fix ZMII refcounting bug
  ibm_newemac: Workaround reset timeout when no link
  ibm_newemac: Cleanup/Fix RGMII MDIO support detection
  ibm_newemac: Cleanup/fix support for STACR register variants
  ibm_newemac: Update file headers copyright notices

David Sterba (1):
  bonding: Fix time comparison

Divy Le Ray (1):
  cxgb3 - T3C support update

Eliezer Tamir (1):
  make bnx2x select ZLIB_INFLATE

Hugh Blemings (1):
  ibm_newemac: Skip EMACs that are marked unused by the firmware

Jay Vosburgh (2):
  bonding: Add new layer2+3 hash for xor/802.3ad modes
  bonding: Fix race at module unload

Roel Kluin (1):
  e1000: fix memcpy in e1000_get_strings

Sreenivasa Honnur (1):
  S2io: Check for register initialization completion before accesing device 
registers

Stefan Roese (2):
  ibm_newemac: Add BCM5248 and Marvell 88E PHY support
  ibm_newemac: Add ET1011c PHY support

Valentine Barshak (3):
  ibm_newemac: Correct opb_bus_freq value
  ibm_newemac: Fix typo reading TAH channel info
  ibm_newemac: Call dev_set_drvdata() before tah_reset()

Wagner Ferenc (5):
  bonding: Remove trailing NULs from sysfs interface.
  bonding: Return nothing for not applicable values
  bonding: Purely cosmetic: rename a local variable
  bonding: Coding style: break line after the if condition
  bonding: Allow setting and querying xmit policy regardless of mode

diff --git a/Documentation/networking/bonding.txt 
b/Documentation/networking/bonding.txt
index 1134062..6cc30e0 100644
--- a/Documentation/networking/bonding.txt
+++ b/Documentation/networking/bonding.txt
@@ -554,6 +554,30 @@ xmit_hash_policy
 
This algorithm is 802.3ad compliant.
 
+   layer2+3
+
+   This policy uses a combination of layer2 and layer3
+   protocol information to generate the hash.
+
+   Uses XOR of hardware MAC addresses and IP addresses to
+   generate the hash.  The formula is
+
+   (((source IP XOR dest IP) AND 0x) XOR
+   ( source MAC XOR destination MAC ))
+   modulo slave count
+
+   This algorithm will place all traffic to a particular
+   network peer on the same slave.  For non-IP traffic,
+   the formula is the same as for the layer2 transmit
+   hash policy.
+
+   This policy is intended to provide a more balanced
+   distribution of traffic than layer2 alone, especially
+   in environments where a layer3 gateway device is
+   required to reach most destinations.
+
+   This algorithm is 802.3ad complient.
+
layer3+4
 
This policy uses upper layer protocol information,
@@ -589,8 +613,9 @@ xmit_hash_policy
or may not tolerate this noncompliance.
 
The default value is layer2.  This option was added in bonding
-version 2.6.3.  In earlier 

[git patches] net driver fixes

2007-12-04 Thread Jeff Garzik

Fixes several ugly bugs...


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

to receive the following updates:

 drivers/net/fec_mpc52xx.c|4 ++--
 drivers/net/gianfar.c|2 +-
 drivers/net/pasemi_mac.c |4 ++--
 drivers/net/phy/mdio_bus.c   |9 +
 drivers/net/phy/phy_device.c |   12 
 drivers/net/sky2.c   |6 ++
 drivers/net/smc911x.c|2 +-
 include/linux/phy.h  |1 +
 8 files changed, 26 insertions(+), 14 deletions(-)
 mode change 100755 = 100644 drivers/net/chelsio/cxgb2.c
 mode change 100755 = 100644 drivers/net/chelsio/pm3393.c
 mode change 100755 = 100644 drivers/net/chelsio/sge.c
 mode change 100755 = 100644 drivers/net/chelsio/sge.h

Anton Vorontsov (1):
  PHY: Add the phy_device_release device method.

David Woodhouse (1):
  Don't claim to do IPv6 checksum offload

Divy Le Ray (1):
  cxgb - revert file mode changes.

Grant Likely (1):
  gianfar: fix compile warning

Jon Smirl (1):
  Fix memory corruption in fec_mpc52xx

Olof Johansson (1):
  pasemi_mac: Fix reuse of free'd skb

Stephen Hemminger (1):
  sky2: recovery deadlock fix

Wang Chen (1):
  SMC911X: Fix using of dereferenced skb after netif_rx

diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
old mode 100755
new mode 100644
diff --git a/drivers/net/chelsio/pm3393.c b/drivers/net/chelsio/pm3393.c
old mode 100755
new mode 100644
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
old mode 100755
new mode 100644
diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h
old mode 100755
new mode 100644
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index bf5a7ca..79f7ead 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -422,7 +422,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void 
*dev_id)
 
rskb = bcom_retrieve_buffer(priv-rx_dmatsk, status,
(struct bcom_bd **)bd);
-   dma_unmap_single(dev-dev, bd-skb_pa, skb-len, 
DMA_FROM_DEVICE);
+   dma_unmap_single(dev-dev, bd-skb_pa, rskb-len, 
DMA_FROM_DEVICE);
 
/* Test for errors in received frame */
if (status  BCOM_FEC_RX_BD_ERRORS) {
@@ -467,7 +467,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void 
*dev_id)
bcom_prepare_next_buffer(priv-rx_dmatsk);
 
bd-status = FEC_RX_BUFFER_SIZE;
-   bd-skb_pa = dma_map_single(dev-dev, rskb-data,
+   bd-skb_pa = dma_map_single(dev-dev, skb-data,
FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);
 
bcom_submit_next_buffer(priv-rx_dmatsk, skb);
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 38268d7..0431e9e 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -696,7 +696,7 @@ int startup_gfar(struct net_device *dev)
 {
struct txbd8 *txbdp;
struct rxbd8 *rxbdp;
-   dma_addr_t addr;
+   dma_addr_t addr = 0;
unsigned long vaddr;
int i;
struct gfar_private *priv = netdev_priv(dev);
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 09b4fde..816a59e 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -586,7 +586,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac *mac, int 
limit)
/* CRC error flagged */
mac-netdev-stats.rx_errors++;
mac-netdev-stats.rx_crc_errors++;
-   dev_kfree_skb_irq(skb);
+   /* No need to free skb, it'll be reused */
goto next;
}
 
@@ -1362,7 +1362,7 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct 
pci_device_id *ent)
 
netif_napi_add(dev, mac-napi, pasemi_mac_poll, 64);
 
-   dev-features = NETIF_F_HW_CSUM | NETIF_F_LLTX | NETIF_F_SG;
+   dev-features = NETIF_F_IP_CSUM | NETIF_F_LLTX | NETIF_F_SG;
 
/* These should come out of the device tree eventually */
mac-dma_txch = index;
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index fc2f0e6..c30196d 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -91,9 +91,12 @@ int mdiobus_register(struct mii_bus *bus)
 
err = device_register(phydev-dev);
 
-   if (err)
+   if (err) {
printk(KERN_ERR phy %d failed to register\n,
i);
+   phy_device_free(phydev);
+   phydev = NULL;
+   }
}
 
bus-phy_map[i] = phydev;
@@ -110,10 +113,8 @@ void mdiobus_unregister(struct mii_bus *bus)
int i;
 

Re: [LIKELY_SPAM][git patches] net driver fixes

2007-12-01 Thread Divy Le Ray

Jeff Garzik wrote:


Notes:

1) Several of these are resends from the last submission.

2) That chelsio file mode change (644-755) is a bit annoying.  Can git
do chmod as a changeset by itself?



Sorry for this. I had not noticed it.
If any help, I just submitted a patch reverting the file mode changes.

Cheers,
Divy
--
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-11-26 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/Kconfig|2 +-
 drivers/net/amd8111e.c |6 ++
 drivers/net/bfin_mac.c |2 +-
 drivers/net/ehea/ehea.h|2 +-
 drivers/net/ehea/ehea_main.c   |   20 
 drivers/net/ehea/ehea_qmr.h|4 ++--
 drivers/net/forcedeth.c|   38 +-
 drivers/net/ibm_newemac/core.c |   31 ---
 drivers/net/ibm_newemac/core.h |1 +
 drivers/net/sky2.c |6 +-
 drivers/net/smc911x.c  |   19 +--
 drivers/net/smc911x.h  |2 +-
 drivers/net/smc91x.h   |2 +-
 drivers/net/tulip/dmfe.c   |4 ++--
 drivers/net/usb/dm9601.c   |2 +-
 include/linux/pci_ids.h|4 
 16 files changed, 84 insertions(+), 61 deletions(-)

Ayaz Abdulla (2):
  forcedeth: new mcp79 pci ids
  forcedeth boot delay fix

Benjamin Herrenschmidt (1):
  ibm_newemac: Fix possible lockup on close

Jeff Garzik (1):
  dmfe: checkpatch fix (add whitespace)

Jiri Bohac (1):
  amd8111e: don't call napi_enable if configured w/o NAPI

Maxim Levitsky (1):
  NET: dmfe: don't access configuration space in D3 state

Mike Frysinger (1):
  Blackfin SMC91x Driver: punt CONFIG_BFIN -- we already have 
CONFIG_BLACKFIN

Peter Korsgaard (4):
  dm9601: Fix printk
  smc911x: Fix undefined CONFIG_ symbol warning
  smc911x: Fix unused variable warning.
  smc911x: Fix multicast handling

Stephen Hemminger (1):
  sky2: disable rx checksum on Yukon XL

Thomas Klein (2):
  ehea: Improve tx packets counting
  ehea: Reworked rcv queue handling to log only fatal errors

Vitja Makarov (1):
  Blackfin EMAC driver: fix bug - NAT doesn't work with bfin_mac driver

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index e8d69b0..1437b37 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -888,7 +888,7 @@ config SMC91X
tristate SMC 91C9x/91C1xxx support
select CRC32
select MII
-   depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || 
SOC_AU1X00 || BFIN
+   depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || 
SOC_AU1X00 || BLACKFIN
help
  This is a driver for SMC's 91x series of Ethernet chipsets,
  including the SMC91C94 and the SMC91C111. Say Y if you want it
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index eebf5bb..e7fdd81 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1340,7 +1340,9 @@ static int amd8111e_close(struct net_device * dev)
struct amd8111e_priv *lp = netdev_priv(dev);
netif_stop_queue(dev);
 
+#ifdef CONFIG_AMD8111E_NAPI
napi_disable(lp-napi);
+#endif
 
spin_lock_irq(lp-lock);
 
@@ -1372,7 +1374,9 @@ static int amd8111e_open(struct net_device * dev )
 dev-name, dev))
return -EAGAIN;
 
+#ifdef CONFIG_AMD8111E_NAPI
napi_enable(lp-napi);
+#endif
 
spin_lock_irq(lp-lock);
 
@@ -1380,7 +1384,9 @@ static int amd8111e_open(struct net_device * dev )
 
if(amd8111e_restart(dev)){
spin_unlock_irq(lp-lock);
+#ifdef CONFIG_AMD8111E_NAPI
napi_disable(lp-napi);
+#endif
if (dev-irq)
free_irq(dev-irq, dev);
return -ENOMEM;
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 084acfd..f0f8516 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -676,7 +676,7 @@ static void bf537mac_rx(struct net_device *dev)
skb-protocol = eth_type_trans(skb, dev);
 #if defined(BFIN_MAC_CSUM_OFFLOAD)
skb-csum = current_rx_ptr-status.ip_payload_csum;
-   skb-ip_summed = CHECKSUM_PARTIAL;
+   skb-ip_summed = CHECKSUM_COMPLETE;
 #endif
 
netif_rx(skb);
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index f78e5bf..5f82a46 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -40,7 +40,7 @@
 #include asm/io.h
 
 #define DRV_NAME   ehea
-#define DRV_VERSIONEHEA_0080
+#define DRV_VERSIONEHEA_0083
 
 /* eHEA capability flags */
 #define DLPAR_PORT_ADD_REM 1
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index f0319f1..869e160 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -136,7 +136,7 @@ static struct net_device_stats *ehea_get_stats(struct 
net_device *dev)
struct ehea_port *port = netdev_priv(dev);
struct net_device_stats *stats = port-stats;
struct hcp_ehea_port_cb2 *cb2;
-   u64 hret, rx_packets;
+   u64 hret, rx_packets, tx_packets;
int i;
 
memset(stats, 0, sizeof(*stats));
@@ -162,7 +162,11 @@ static struct net_device_stats 

[git patches] net driver fixes

2007-11-10 Thread Jeff Garzik
Please pull from 'upstream-linus' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git 
upstream-linus

to receive the following updates:

 MAINTAINERS  |   10 ++-
 drivers/net/Kconfig  |2 +-
 drivers/net/bonding/bond_main.c  |1 +
 drivers/net/bonding/bond_sysfs.c |4 +-
 drivers/net/pasemi_mac.c |   18 -
 drivers/net/qla3xxx.c|   42 +--
 drivers/net/qla3xxx.h|1 +
 drivers/net/r8169.c  |   26 ++-
 drivers/net/sky2.c   |  116 ++
 drivers/net/sky2.h   |3 +-
 drivers/net/smc91x.h |   15 
 drivers/net/wireless/Kconfig |2 +-
 drivers/net/wireless/b43/Kconfig |   10 ++-
 drivers/net/wireless/b43/debugfs.c   |2 +-
 drivers/net/wireless/b43/main.c  |   19 +++---
 drivers/net/wireless/b43/pcmcia.c|   52 +-
 drivers/net/wireless/b43/rfkill.c|  115 +
 drivers/net/wireless/b43/rfkill.h|   14 +---
 drivers/net/wireless/b43legacy/debugfs.c |2 +-
 drivers/net/wireless/b43legacy/main.c|   21 +++---
 drivers/net/wireless/hostap/hostap_pci.c |6 +-
 drivers/net/wireless/ipw2100.c   |4 +-
 drivers/net/wireless/libertas/cmd.c  |   10 ++-
 drivers/net/wireless/libertas/if_cs.c|7 ++-
 drivers/net/wireless/libertas/if_sdio.c  |4 +-
 drivers/net/wireless/rt2x00/rt2x00mac.c  |8 ++
 26 files changed, 285 insertions(+), 229 deletions(-)

Ciaran McCreesh (1):
  r8169: add PCI ID for the 8168 in the Abit Fatal1ty F-190HD motherboard

Francois Romieu (2):
  r8169: do not enable the TBI for the 8168 and the 81x0
  r8169: prevent bit sign expansion error in mdio_write

Holger Schurig (1):
  libertas: fixes for slow hardware

Ivo van Doorn (1):
  rt2x00: Block adhoc  master mode

Jay Vosburgh (2):
  bonding: fix rtnl locking merge error
  bonding: don't validate address at device open

John W. Linville (1):
  hermes: clarify Intel reference in Kconfig help

Magnus Damm (1):
  ax88796: add superh to kconfig dependencies

Marcelo Tosatti (1):
  libertas: properly account for queue commands

Mark Lord (2):
  r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (partly)
  r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (bis repetita)

Michael Buesch (7):
  b43: pcmcia-host initialization bugfixes
  b43: Fix rfkill callback deadlock
  b43: debugfs SHM read buffer overrun fix
  b43: Rewrite and fix rfkill init
  b43: properly request pcmcia IRQ
  b43legacy: Fix sparse warning
  b43: Fix kconfig dependencies for rfkill and leds

Olof Johansson (2):
  pasemi_mac: Don't set replace-source-address descriptor bits
  pasemi_mac: Fix CRC checks

Pierre Ossman (1):
  libertas: make if_sdio align packets

Randy Dunlap (1):
  hostap: fix section mismatch warning

Roel Kluin (1):
  ipw2100: fix postfix decrement errors

Ron Mercer (2):
  qla3xxx: bugfix: Move link state machine into a worker thread
  qla3xxx: bugfix: Fix bad logical operation in link state machine.

Stefano Brivio (4):
  b43legacy: fix possible buffer overrun in debugfs
  b43legacy: add me as maintainer and fix URLs
  b43: fix shared IRQ race condition
  b43legacy: fix shared IRQ race condition

Stephen Hemminger (9):
  sky2: enable PCI config writes
  sky2: status ring race fix
  sky2: longer PHY delay
  sky2: dont change LED after autoneg
  sky2: remove unneeded mask update
  sky2: handle advanced error recovery config issues
  sky2: version 1.20
  sky2: netpoll on port 0 only
  sky2: new pci id's

eric miao (1):
  add support for smc91x ethernet interface on zylonite

diff --git a/MAINTAINERS b/MAINTAINERS
index 1c7c229..6a97027 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -787,23 +787,25 @@ B43 WIRELESS DRIVER
 P: Michael Buesch
 M: [EMAIL PROTECTED]
 P: Stefano Brivio
-M: [EMAIL PROTECTED]
+M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
-W: http://bcm43xx.berlios.de/
+W: http://linuxwireless.org/en/users/Drivers/b43
 S: Maintained
 
 B43LEGACY WIRELESS DRIVER
 P: Larry Finger
 M: [EMAIL PROTECTED]
+P: Stefano Brivio
+M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
-W: http://bcm43xx.berlios.de/
+W: http://linuxwireless.org/en/users/Drivers/b43
 S: Maintained
 
 BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION)
 P: Larry Finger
 M: [EMAIL PROTECTED]
 P: Stefano Brivio
-M: [EMAIL PROTECTED]
+M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
 W: http://bcm43xx.berlios.de/
 S: Maintained
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index cb581eb..bf8890e 100644
--- a/drivers/net/Kconfig
+++ 

[git patches] net driver fixes

2007-11-05 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/82596.c  |3 ++-
 drivers/net/phy/marvell.c|   23 ++-
 drivers/net/phy/phy_device.c |2 +-
 drivers/net/sunhme.c |4 ++--
 4 files changed, 23 insertions(+), 9 deletions(-)

David Miller (1):
  SUNHME: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals

Evgeniy Dushistov (1):
  82596: free nonexistent resource fix

Olof Johansson (2):
  phylib: Add ID for Marvell 88E1240
  phylib: Silence driver registration

diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index bb30d5b..2797da7 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -1192,6 +1192,8 @@ struct net_device * __init i82596_probe(int unit)
goto out;
}
 
+   dev-base_addr = ioaddr;
+
for (i = 0; i  8; i++) {
eth_addr[i] = inb(ioaddr + 8 + i);
checksum += eth_addr[i];
@@ -1209,7 +1211,6 @@ struct net_device * __init i82596_probe(int unit)
goto out1;
}
 
-   dev-base_addr = ioaddr;
dev-irq = 10;
}
 #endif
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index d2ede5f..035fd41 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -265,7 +265,7 @@ static struct phy_driver marvell_drivers[] = {
.read_status = genphy_read_status,
.ack_interrupt = marvell_ack_interrupt,
.config_intr = marvell_config_intr,
-   .driver = {.owner = THIS_MODULE,},
+   .driver = { .owner = THIS_MODULE },
},
{
.phy_id = 0x01410c90,
@@ -278,7 +278,7 @@ static struct phy_driver marvell_drivers[] = {
.read_status = genphy_read_status,
.ack_interrupt = marvell_ack_interrupt,
.config_intr = marvell_config_intr,
-   .driver = {.owner = THIS_MODULE,},
+   .driver = { .owner = THIS_MODULE },
},
{
.phy_id = 0x01410cc0,
@@ -291,7 +291,7 @@ static struct phy_driver marvell_drivers[] = {
.read_status = genphy_read_status,
.ack_interrupt = marvell_ack_interrupt,
.config_intr = marvell_config_intr,
-   .driver = {.owner = THIS_MODULE,},
+   .driver = { .owner = THIS_MODULE },
},
{
.phy_id = 0x01410cd0,
@@ -304,8 +304,21 @@ static struct phy_driver marvell_drivers[] = {
.read_status = genphy_read_status,
.ack_interrupt = marvell_ack_interrupt,
.config_intr = marvell_config_intr,
-   .driver = {.owner = THIS_MODULE,},
-   }
+   .driver = { .owner = THIS_MODULE },
+   },
+   {
+   .phy_id = 0x01410e30,
+   .phy_id_mask = 0xfff0,
+   .name = Marvell 88E1240,
+   .features = PHY_GBIT_FEATURES,
+   .flags = PHY_HAS_INTERRUPT,
+   .config_init = m88e_config_init,
+   .config_aneg = marvell_config_aneg,
+   .read_status = genphy_read_status,
+   .ack_interrupt = marvell_ack_interrupt,
+   .config_intr = marvell_config_intr,
+   .driver = { .owner = THIS_MODULE },
+   },
 };
 
 static int __init marvell_init(void)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index c046121..f6e4848 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -706,7 +706,7 @@ int phy_driver_register(struct phy_driver *new_driver)
return retval;
}
 
-   pr_info(%s: Registered new driver\n, new_driver-name);
+   pr_debug(%s: Registered new driver\n, new_driver-name);
 
return 0;
 }
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index 120c8af..c20a3bd 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev 
*pdev,
dev-irq = pdev-irq;
dev-dma = 0;
 
-   /* Happy Meal can do it all... */
-   dev-features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+   /* Happy Meal can do it all... except VLAN. */
+   dev-features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED;
 
 #if defined(CONFIG_SBUS)  defined(CONFIG_PCI)
/* Hook up PCI register/dma accessors. */
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-11-01 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/Kconfig |4 +---
 drivers/net/fec_mpc52xx.c   |4 ++--
 drivers/net/myri10ge/myri10ge.c |6 +++---
 3 files changed, 6 insertions(+), 8 deletions(-)

Andrew Gallatin (1):
  Fix myri10ge NAPI oops  warnings

Grant Likely (2):
  mpc5200: Fix Kconfig dependancies on MPC5200 FEC device driver
  Fix region size check in mpc5200 FEC driver

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 867cb73..5f800a6 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1883,9 +1883,7 @@ config FEC2
 
 config FEC_MPC52xx
tristate MPC52xx FEC driver
-   depends on PPC_MPC52xx
-   select PPC_BESTCOMM
-   select PPC_BESTCOMM_FEC
+   depends on PPC_MERGE  PPC_MPC52xx  PPC_BESTCOMM_FEC
select CRC32
select PHYLIB
---help---
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index fc1cf0b..a8a0ee2 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -879,9 +879,9 @@ mpc52xx_fec_probe(struct of_device *op, const struct 
of_device_id *match)
Error while parsing device node resource\n );
return rv;
}
-   if ((mem.end - mem.start + 1) != sizeof(struct mpc52xx_fec)) {
+   if ((mem.end - mem.start + 1)  sizeof(struct mpc52xx_fec)) {
printk(KERN_ERR DRIVER_NAME
-- invalid resource size (%lx != %x), check 
mpc52xx_devices.c\n,
+- invalid resource size (%lx  %x), check 
mpc52xx_devices.c\n,
(unsigned long)(mem.end - mem.start + 1), sizeof(struct 
mpc52xx_fec));
return -EINVAL;
}
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 366e62a..0f306dd 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1151,7 +1151,7 @@ static inline int myri10ge_clean_rx_done(struct 
myri10ge_priv *mgp, int budget)
u16 length;
__wsum checksum;
 
-   while (rx_done-entry[idx].length != 0  work_done++  budget) {
+   while (rx_done-entry[idx].length != 0  work_done  budget) {
length = ntohs(rx_done-entry[idx].length);
rx_done-entry[idx].length = 0;
checksum = csum_unfold(rx_done-entry[idx].checksum);
@@ -1167,6 +1167,7 @@ static inline int myri10ge_clean_rx_done(struct 
myri10ge_priv *mgp, int budget)
rx_bytes += rx_ok * (unsigned long)length;
cnt++;
idx = cnt  (myri10ge_max_intr_slots - 1);
+   work_done++;
}
rx_done-idx = idx;
rx_done-cnt = cnt;
@@ -1233,13 +1234,12 @@ static int myri10ge_poll(struct napi_struct *napi, int 
budget)
struct myri10ge_priv *mgp =
container_of(napi, struct myri10ge_priv, napi);
struct net_device *netdev = mgp-dev;
-   struct myri10ge_rx_done *rx_done = mgp-rx_done;
int work_done;
 
/* process as many rx events as NAPI will allow */
work_done = myri10ge_clean_rx_done(mgp, budget);
 
-   if (rx_done-entry[rx_done-idx].length == 0 || !netif_running(netdev)) 
{
+   if (work_done  budget || !netif_running(netdev)) {
netif_rx_complete(netdev, napi);
put_be32(htonl(3), mgp-irq_claim);
}
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-10-30 Thread Jeff Garzik

Fixes, and a new DM9601 USB NIC id.

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

to receive the following updates:

 drivers/net/bfin_mac.c|2 -
 drivers/net/e1000/e1000.h |8 +++
 drivers/net/e1000/e1000_ethtool.c |   29 ++--
 drivers/net/e1000/e1000_hw.c  |4 +-
 drivers/net/e1000/e1000_main.c|7 +
 drivers/net/e1000/e1000_param.c   |   23 ++-
 drivers/net/e1000e/82571.c|2 +-
 drivers/net/e1000e/ethtool.c  |4 +-
 drivers/net/e1000e/param.c|   35 +++--
 drivers/net/ixgb/ixgb.h   |7 ++
 drivers/net/ixgb/ixgb_ethtool.c   |7 +
 drivers/net/ixgb/ixgb_hw.c|4 +-
 drivers/net/ixgb/ixgb_main.c  |   15 +---
 drivers/net/ixgb/ixgb_param.c |   43 +++--
 drivers/net/ixgbe/ixgbe.h |2 +-
 drivers/net/ixgbe/ixgbe_82598.c   |3 +-
 drivers/net/ixgbe/ixgbe_main.c|9 ---
 drivers/net/usb/dm9601.c  |4 +++
 include/linux/mv643xx_eth.h   |6 ++--
 19 files changed, 110 insertions(+), 104 deletions(-)

Auke Kok (1):
  ixgb: fix TX hangs under heavy load

Dale Farnsworth (1):
  mv643xx_eth: Fix MV643XX_ETH offsets used by Pegasos 2

Michael Hennerich (1):
  Blackfin EMAC driver: Fix Ethernet communication bug (dupliated and lost 
packets)

Peter Korsgaard (1):
  DM9601: Support for ADMtek ADM8515 NIC

Roel Kluin (1):
  e1000e: Fix typo ! 

Stephen Hemminger (4):
  e1000e: fix sparse warnings
  ixgb: fix sparse warnings
  e1000: sparse warnings fixes
  ixgbe: minor sparse fixes

diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c
index 53fe7de..084acfd 100644
--- a/drivers/net/bfin_mac.c
+++ b/drivers/net/bfin_mac.c
@@ -371,7 +371,6 @@ static void bf537_adjust_link(struct net_device *dev)
if (phydev-speed != lp-old_speed) {
 #if defined(CONFIG_BFIN_MAC_RMII)
u32 opmode = bfin_read_EMAC_OPMODE();
-   bf537mac_disable();
switch (phydev-speed) {
case 10:
opmode |= RMII_10;
@@ -386,7 +385,6 @@ static void bf537_adjust_link(struct net_device *dev)
break;
}
bfin_write_EMAC_OPMODE(opmode);
-   bf537mac_enable();
 #endif
 
new_state = 1;
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h
index 781ed99..3b84028 100644
--- a/drivers/net/e1000/e1000.h
+++ b/drivers/net/e1000/e1000.h
@@ -351,4 +351,12 @@ enum e1000_state_t {
__E1000_DOWN
 };
 
+extern char e1000_driver_name[];
+extern const char e1000_driver_version[];
+
+extern void e1000_power_up_phy(struct e1000_adapter *);
+extern void e1000_set_ethtool_ops(struct net_device *netdev);
+extern void e1000_check_options(struct e1000_adapter *adapter);
+
+
 #endif /* _E1000_H_ */
diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index 6c9a643..667f18b 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -32,9 +32,6 @@
 
 #include asm/uaccess.h
 
-extern char e1000_driver_name[];
-extern char e1000_driver_version[];
-
 extern int e1000_up(struct e1000_adapter *adapter);
 extern void e1000_down(struct e1000_adapter *adapter);
 extern void e1000_reinit_locked(struct e1000_adapter *adapter);
@@ -733,16 +730,16 @@ err_setup:
 
 #define REG_PATTERN_TEST(R, M, W)  
\
 {  
\
-   uint32_t pat, value;   \
-   uint32_t test[] =  \
+   uint32_t pat, val; \
+   const uint32_t test[] =\
{0x5A5A5A5A, 0xA5A5A5A5, 0x, 0x};  \
-   for (pat = 0; pat  ARRAY_SIZE(test); pat++) {  \
+   for (pat = 0; pat  ARRAY_SIZE(test); pat++) { \
E1000_WRITE_REG(adapter-hw, R, (test[pat]  W)); \
-   value = E1000_READ_REG(adapter-hw, R);   \
-   if (value != (test[pat]  W  M)) { 
\
+   val = E1000_READ_REG(adapter-hw, R); \
+   if (val != (test[pat]  W  M)) {  \
DPRINTK(DRV, ERR, pattern test reg %04X failed: got  \
0x%08X expected 0x%08X\n,\
-   E1000_##R, value, (test[pat]  W  M));\
+ 

[git patches] net driver fixes

2007-10-19 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/Kconfig |   41 -
 drivers/net/dm9000.c|6 ++--
 drivers/net/phy/mdio-bitbang.c  |2 +
 drivers/net/tsi108_eth.c|2 +-
 drivers/net/tulip/Kconfig   |   14 +++
 drivers/net/wireless/b43/main.c |5 +--
 drivers/net/wireless/b43legacy/main.c   |2 +-
 drivers/net/wireless/ipw2100.c  |   39 
 drivers/net/wireless/ipw2100.h  |4 ++
 drivers/net/wireless/iwlwifi/iwl-3945-rs.c  |3 --
 drivers/net/wireless/iwlwifi/iwl-3945.c |1 -
 drivers/net/wireless/iwlwifi/iwl-4965-rs.c  |   13 ---
 drivers/net/wireless/iwlwifi/iwl-4965.c |2 -
 drivers/net/wireless/iwlwifi/iwl3945-base.c |   44 +-
 drivers/net/wireless/iwlwifi/iwl4965-base.c |   52 +++---
 drivers/net/wireless/iwlwifi/iwlwifi.h  |7 +---
 drivers/net/wireless/p54common.c|2 +-
 drivers/net/wireless/rt2x00/rt2x00dev.c |2 +-
 drivers/net/wireless/rt2x00/rt73usb.c   |1 +
 drivers/net/wireless/rtl8187_dev.c  |   35 --
 drivers/net/wireless/zd1201.c   |4 +-
 drivers/net/wireless/zd1211rw/zd_usb.c  |7 +++-
 drivers/s390/net/qeth_main.c|3 +-
 23 files changed, 158 insertions(+), 133 deletions(-)

Adrian Bunk (1):
  iwl4965-base.c: fix off-by-one errors

Dan Williams (1):
  ipw2100: send WEXT scan events

Holger Schurig (1):
  janitorial: fix all double includes in drivers/net/wireless

Ivo van Doorn (1):
  rt2x00: Add new rt73usb USB ID

John W. Linville (1):
  zd1201: avoid null ptr access of skb-dev

Larry Finger (1):
  b43legacy: Fix potential return of uninitialized variable

Marc Pignat (1):
  zd1211rw, fix oops when ejecting install media

Mattias Nissler (1):
  rt2x00: Fix residual check in PLCP calculations.

Michael Buesch (1):
  b43: Make b43_stop() static

Michael Wu (3):
  rtl8187: Fix more frag bit checking, rts duration calc
  rtl8187: remove NICMAC setting in configure_filters callback
  p54: Make filter configuration atomic

Mike Rapoport (1):
  DM9000 initialization fix

Olof Johansson (1):
  Fix build break in tsi108.c

Randy Dunlap (3):
  phy/bitbang: missing MODULE_LICENSE
  NAPI: kconfig prompt and deleted doc file
  ir-functions.c:(.text+0xbce18): undefined reference to `input_event'

Ron Rindjunsky (1):
  iwlwifi: set correct base rate for A band in rs_dbgfs_set_mcs

Tomas Winkler (1):
  iwlwifi: Fix rate setting in probe request for HW sacn

Ursula Braun (1):
  qeth: remove header_ops bug

WANG Cong (1):
  drivers/net/wireless/b43/main.c: fix an uninitialized variable

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 83d52c8..2cafa5c 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1293,9 +1293,6 @@ config PCNET32_NAPI
  deployed on potentially unfriendly networks (e.g. in a firewall),
  then say Y here.
 
- See file:Documentation/networking/NAPI_HOWTO.txt for more
- information.
-
  If in doubt, say N.
 
 config AMD8111_ETH
@@ -1313,7 +1310,7 @@ config AMD8111_ETH
  will be called amd8111e.
 
 config AMD8111E_NAPI
-   bool Enable NAPI support
+   bool Use RX polling (NAPI)
depends on AMD8111_ETH
help
  NAPI is a new driver API designed to reduce CPU and interrupt load
@@ -1324,9 +1321,6 @@ config AMD8111E_NAPI
  deployed on potentially unfriendly networks (e.g. in a firewall),
  then say Y here.
 
- See file:Documentation/networking/NAPI_HOWTO.txt for more
- information.
-
  If in doubt, say N.
 
 config ADAPTEC_STARFIRE
@@ -1355,9 +1349,6 @@ config ADAPTEC_STARFIRE_NAPI
  deployed on potentially unfriendly networks (e.g. in a firewall),
  then say Y here.
 
- See file:Documentation/networking/NAPI_HOWTO.txt for more
- information.
-
  If in doubt, say N.
 
 config AC3200
@@ -1431,7 +1422,7 @@ config FORCEDETH
  called forcedeth.
 
 config FORCEDETH_NAPI
-   bool Use Rx and Tx Polling (NAPI) (EXPERIMENTAL)
+   bool Use Rx Polling (NAPI) (EXPERIMENTAL)
depends on FORCEDETH  EXPERIMENTAL
help
  NAPI is a new driver API designed to reduce CPU and interrupt load
@@ -1442,9 +1433,6 @@ config FORCEDETH_NAPI
  deployed on potentially unfriendly networks (e.g. in a firewall),
  then say Y here.
 
- See file:Documentation/networking/NAPI_HOWTO.txt for more
- information.
-
  If in doubt, say N.
 
 config CS89x0
@@ -1756,9 +1744,6 @@ config VIA_RHINE_NAPI
  deployed 

[git patches] net driver fixes

2007-10-17 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/3c59x.c|2 +-
 drivers/net/forcedeth.c|   27 ++---
 drivers/net/fs_enet/fs_enet-main.c |   28 ++---
 drivers/net/fs_enet/fs_enet.h  |1 +
 drivers/net/gianfar.c  |4 ++-
 drivers/net/gianfar.h  |1 -
 drivers/net/ibm_newemac/mal.c  |2 +-
 drivers/net/pcnet32.c  |   58 
 drivers/net/sky2.c |   46 
 include/linux/netdevice.h  |   18 +++
 10 files changed, 108 insertions(+), 79 deletions(-)

Anton Vorontsov (1):
  gianfar: fix obviously wrong #ifdef CONFIG_GFAR_NAPI placement

Badari Pulavarty (1):
  vortex_up should initialize err

Benjamin Herrenschmidt (1):
  fix EMAC driver for proper napi_synchronize API

Don Fry (3):
  pcnet32: fix non-napi packet reception
  pcnet32: remove compile warnings in non-napi mode
  pcnet32: remove private net_device_stats structure

Ingo Molnar (1):
  forcedeth: fix rx-work condition in nv_rx_process_optimized() too

Manfred Spraul (1):
  forcedeth msi bugfix

Scott Wood (1):
  fs_enet: Update for API changes

Sebastian Siewior (1):
  gianfar: remove orphan struct.

Stephen Hemminger (2):
  napi_synchronize: waiting for NAPI
  sky2: shutdown cleanup

diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 862f472..6f8e7d4 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1491,7 +1491,7 @@ vortex_up(struct net_device *dev)
struct vortex_private *vp = netdev_priv(dev);
void __iomem *ioaddr = vp-ioaddr;
unsigned int config;
-   int i, mii_reg1, mii_reg5, err;
+   int i, mii_reg1, mii_reg5, err = 0;
 
if (VORTEX_PCI(vp)) {
pci_set_power_state(VORTEX_PCI(vp), PCI_D0);/* Go active */
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index cfbb7aa..70ddf1a 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -992,7 +992,7 @@ static void nv_enable_irq(struct net_device *dev)
if (np-msi_flags  NV_MSI_X_ENABLED)
enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
else
-   enable_irq(dev-irq);
+   enable_irq(np-pci_dev-irq);
} else {
enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_TX].vector);
@@ -1008,7 +1008,7 @@ static void nv_disable_irq(struct net_device *dev)
if (np-msi_flags  NV_MSI_X_ENABLED)

disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
else
-   disable_irq(dev-irq);
+   disable_irq(np-pci_dev-irq);
} else {
disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_TX].vector);
@@ -1607,7 +1607,7 @@ static void nv_do_rx_refill(unsigned long data)
if (np-msi_flags  NV_MSI_X_ENABLED)

disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
else
-   disable_irq(dev-irq);
+   disable_irq(np-pci_dev-irq);
} else {
disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
}
@@ -1625,7 +1625,7 @@ static void nv_do_rx_refill(unsigned long data)
if (np-msi_flags  NV_MSI_X_ENABLED)
enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
else
-   enable_irq(dev-irq);
+   enable_irq(np-pci_dev-irq);
} else {
enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
}
@@ -2408,13 +2408,13 @@ static int nv_rx_process_optimized(struct net_device 
*dev, int limit)
struct fe_priv *np = netdev_priv(dev);
u32 flags;
u32 vlanflags = 0;
-   u32 rx_processed_cnt = 0;
+   int rx_work = 0;
struct sk_buff *skb;
int len;
 
while((np-get_rx.ex != np-put_rx.ex) 
  !((flags = le32_to_cpu(np-get_rx.ex-flaglen))  NV_RX2_AVAIL) 
- (rx_processed_cnt++  limit)) {
+ (rx_work  limit)) {
 
dprintk(KERN_DEBUG %s: nv_rx_process_optimized: flags 0x%x.\n,
dev-name, flags);
@@ -2517,9 +2517,11 @@ next_pkt:
np-get_rx.ex = np-first_rx.ex;
if (unlikely(np-get_rx_ctx++ == np-last_rx_ctx))
np-get_rx_ctx = np-first_rx_ctx;
+
+   rx_work++;
}
 
-   return rx_processed_cnt;
+   return rx_work;
 }
 
 static void set_bufsize(struct net_device 

[git patches] net driver fixes (mostly)

2007-10-16 Thread Jeff Garzik
Mostly fixes, except a couple things from Stephen H and myself.

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

to receive the following updates:

 drivers/net/3c59x.c |8 +-
 drivers/net/Kconfig |   10 +
 drivers/net/bonding/bond_main.c |   11 +-
 drivers/net/bonding/bonding.h   |4 +-
 drivers/net/e1000e/ethtool.c|   35 ++-
 drivers/net/e1000e/hw.h |2 +-
 drivers/net/forcedeth.c |  168 --
 drivers/net/gianfar.c   |7 +-
 drivers/net/ibm_newemac/mal.c   |   25 ++-
 drivers/net/skge.c  |  485 ++-
 drivers/net/skge.h  |   17 +-
 drivers/net/tokenring/3c359.c   |2 +-
 12 files changed, 558 insertions(+), 216 deletions(-)

Adrian Bunk (1):
  e1000e: fix error checks

Auke Kok (2):
  e1000e: Fix debug printk macro
  e1000e: don't poke PHY registers to retreive link status

Benjamin Herrenschmidt (1):
  net: Fix new EMAC driver for NAPI changes

Ingo Molnar (1):
  forcedeth: fix NAPI rx poll function

Jay Vosburgh (1):
  bonding: two small fixes for IPoIB support

Jeff Garzik (2):
  [netdrvr] forcedeth: improved probe info; dev_printk() cleanups
  [netdrvr] forcedeth: remove in-driver copy of net_device_stats

Li Yang (1):
  gianfar: Fix compile regression caused by 09f75cd7

Marcus Meissner (1):
  tokenring/3c359.c: fixed array index problem

Steffen Klassert (1):
  WOL bugfix for 3c59x.c

Stephen Hemminger (7):
  skge: fix ram buffer size calculation
  skge: changing MTU while running causes problems
  skge: XM PHY handling fixes
  skge: internal stats
  skge: eeprom support
  skge: add a debug interface
  skge 1.12

diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 8d3893d..862f472 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev)
iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr 
+ EL3_CMD);
iowrite16(RxEnable, ioaddr + EL3_CMD);
 
-   pci_enable_wake(VORTEX_PCI(vp), 0, 1);
+   if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) {
+   printk(KERN_INFO %s: WOL not supported.\n,
+   pci_name(VORTEX_PCI(vp)));
+
+   vp-enable_wol = 0;
+   return;
+   }
 
/* Change the power state to D3; RxEnable doesn't take effect. 
*/
pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot);
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 8f99a06..83d52c8 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2173,6 +2173,16 @@ config SKGE
  To compile this driver as a module, choose M here: the module
  will be called skge.  This is recommended.
 
+config SKGE_DEBUG
+   bool Debugging interface
+   depends on SKGE  DEBUG_FS
+   help
+This option adds the ability to dump driver state for debugging.
+The file debugfs/skge/ethX displays the state of the internal
+transmit and receive rings.
+
+If unsure, say N.
+
 config SKY2
tristate SysKonnect Yukon2 support
depends on PCI
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index db80f24..6f85cc3 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device 
*bond_dev,
struct bonding *bond = bond_dev-priv;
 
bond_dev-neigh_setup   = slave_dev-neigh_setup;
+   bond_dev-header_ops= slave_dev-header_ops;
 
bond_dev-type  = slave_dev-type;
bond_dev-hard_header_len   = slave_dev-hard_header_len;
@@ -3351,7 +3352,10 @@ static int bond_slave_netdev_event(unsigned long event, 
struct net_device *slave
switch (event) {
case NETDEV_UNREGISTER:
if (bond_dev) {
-   bond_release(bond_dev, slave_dev);
+   if (bond-setup_by_slave)
+   bond_release_and_destroy(bond_dev, slave_dev);
+   else
+   bond_release(bond_dev, slave_dev);
}
break;
case NETDEV_CHANGE:
@@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, 
struct net_device *slave
 * ... Or is it this?
 */
break;
-   case NETDEV_GOING_DOWN:
-   dprintk(slave %s is going down\n, slave_dev-name);
-   if (bond-setup_by_slave)
-   bond_release_and_destroy(bond_dev, slave_dev);
-   break;
case NETDEV_CHANGEMTU:
/*
 * TODO: Should 

[git patches] net driver fixes

2007-10-03 Thread Jeff Garzik

sky2 is really the only important fix, the others are trivial.


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

to receive the following updates:

 drivers/net/sky2.c  |3 ---
 drivers/net/wireless/bcm43xx/bcm43xx_wx.c   |2 +-
 net/ieee80211/softmac/ieee80211softmac_wx.c |2 +-
 3 files changed, 2 insertions(+), 5 deletions(-)

Joe Perches (1):
  bcm43xx: Correct printk with PFX before KERN_

Richard Knutsson (1):
  softmac: Fix compiler-warning

Stephen Hemminger (1):
  sky2: jumbo frame regression fix

diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 162489b..ea117fc 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2163,9 +2163,6 @@ static struct sk_buff *sky2_receive(struct net_device 
*dev,
sky2-rx_next = (sky2-rx_next + 1) % sky2-rx_pending;
prefetch(sky2-rx_ring + sky2-rx_next);
 
-   if (length  ETH_ZLEN || length  sky2-rx_data_size)
-   goto len_error;
-
/* This chip has hardware problems that generates bogus status.
 * So do only marginal checking and expect higher level protocols
 * to handle crap frames.
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c 
b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
index d6d9413..6acfdc4 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
@@ -444,7 +444,7 @@ static int bcm43xx_wx_set_xmitpower(struct net_device 
*net_dev,
u16 maxpower;
 
if ((data-txpower.flags  IW_TXPOW_TYPE) != IW_TXPOW_DBM) {
-   printk(PFX KERN_ERR TX power not in dBm.\n);
+   printk(KERN_ERR PFX TX power not in dBm.\n);
return -EOPNOTSUPP;
}
 
diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c 
b/net/ieee80211/softmac/ieee80211softmac_wx.c
index 442b987..5742dc8 100644
--- a/net/ieee80211/softmac/ieee80211softmac_wx.c
+++ b/net/ieee80211/softmac/ieee80211softmac_wx.c
@@ -114,7 +114,7 @@ check_assoc_again:
sm-associnfo.associating = 1;
/* queue lower level code to do work (if necessary) */
schedule_delayed_work(sm-associnfo.work, 0);
-out:
+
mutex_unlock(sm-associnfo.mutex);
 
return 0;
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-10-02 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/mv643xx_eth.c |1 -
 drivers/net/qla3xxx.c |7 +++
 drivers/net/usb/dm9601.c  |2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

Dale Farnsworth (1):
  mv643xx_eth: Do not modify struct netdev tx_queue_len

Peter Korsgaard (1):
  dm9601: Fix receive MTU

Ron Mercer (2):
  qla3xxx: bugfix: Add memory barrier before accessing rx completion.
  qla3xxx: bugfix: Fix VLAN rx completion handling.

diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 34288fe..3153356 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -1357,7 +1357,6 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
 #endif
 
dev-watchdog_timeo = 2 * HZ;
-   dev-tx_queue_len = mp-tx_ring_size;
dev-base_addr = 0;
dev-change_mtu = mv643xx_eth_change_mtu;
dev-do_ioctl = mv643xx_eth_do_ioctl;
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 69da95b..ea15131 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2248,6 +2248,13 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev,
qdev-rsp_consumer_index)  (work_done  work_to_do)) {
 
net_rsp = qdev-rsp_current;
+   rmb();
+   /*
+* Fix 4032 chipe undocumented feature where bit-8 is set if 
the
+* inbound completion is for a VLAN.
+*/
+   if (qdev-device_id == QL3032_DEVICE_ID)
+   net_rsp-opcode = 0x7f;
switch (net_rsp-opcode) {
 
case OPCODE_OB_MAC_IOCB_FN0:
diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c
index 16c7a0e..a2de32f 100644
--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -405,7 +405,7 @@ static int dm9601_bind(struct usbnet *dev, struct 
usb_interface *intf)
dev-net-ethtool_ops = dm9601_ethtool_ops;
dev-net-hard_header_len += DM_TX_OVERHEAD;
dev-hard_mtu = dev-net-mtu + dev-net-hard_header_len;
-   dev-rx_urb_size = dev-net-mtu + DM_RX_OVERHEAD;
+   dev-rx_urb_size = dev-net-mtu + ETH_HLEN + DM_RX_OVERHEAD;
 
dev-mii.dev = dev-net;
dev-mii.mdio_read = dm9601_mdio_read;
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-09-27 Thread Jeff Garzik

And an e1000 id patch.

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

to receive the following updates:

 drivers/net/e1000/e1000_ethtool.c |1 +
 drivers/net/e1000/e1000_hw.c  |1 +
 drivers/net/e1000/e1000_hw.h  |1 +
 drivers/net/e1000/e1000_main.c|2 +
 drivers/net/sky2.c|   53 +++--
 5 files changed, 44 insertions(+), 14 deletions(-)

Auke Kok (1):
  e1000: Add device IDs of blade version of the 82571 quad port

Stephen Hemminger (3):
  sky2: sky2 FE+ receive status workaround
  sky2: FE+ vlan workaround
  sky2: fix transmit state on resume

diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index 4c3785c..9ecc3ad 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -1726,6 +1726,7 @@ static int e1000_wol_exclusion(struct e1000_adapter 
*adapter, struct ethtool_wol
case E1000_DEV_ID_82571EB_QUAD_COPPER:
case E1000_DEV_ID_82571EB_QUAD_FIBER:
case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE:
+   case E1000_DEV_ID_82571PT_QUAD_COPPER:
case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
/* quad port adapters only support WoL on port A */
if (!adapter-quad_port_a) {
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index ba120f7..8604adb 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -387,6 +387,7 @@ e1000_set_mac_type(struct e1000_hw *hw)
case E1000_DEV_ID_82571EB_SERDES_DUAL:
case E1000_DEV_ID_82571EB_SERDES_QUAD:
case E1000_DEV_ID_82571EB_QUAD_COPPER:
+   case E1000_DEV_ID_82571PT_QUAD_COPPER:
case E1000_DEV_ID_82571EB_QUAD_FIBER:
case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE:
hw-mac_type = e1000_82571;
diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/e1000/e1000_hw.h
index fe87146..07f0ea7 100644
--- a/drivers/net/e1000/e1000_hw.h
+++ b/drivers/net/e1000/e1000_hw.h
@@ -475,6 +475,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw);
 #define E1000_DEV_ID_82571EB_FIBER   0x105F
 #define E1000_DEV_ID_82571EB_SERDES  0x1060
 #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4
+#define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5
 #define E1000_DEV_ID_82571EB_QUAD_FIBER  0x10A5
 #define E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE  0x10BC
 #define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 4a22595..e7c8951 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -108,6 +108,7 @@ static struct pci_device_id e1000_pci_tbl[] = {
INTEL_E1000_ETHERNET_DEVICE(0x10BC),
INTEL_E1000_ETHERNET_DEVICE(0x10C4),
INTEL_E1000_ETHERNET_DEVICE(0x10C5),
+   INTEL_E1000_ETHERNET_DEVICE(0x10D5),
INTEL_E1000_ETHERNET_DEVICE(0x10D9),
INTEL_E1000_ETHERNET_DEVICE(0x10DA),
/* required last entry */
@@ -1101,6 +1102,7 @@ e1000_probe(struct pci_dev *pdev,
case E1000_DEV_ID_82571EB_QUAD_COPPER:
case E1000_DEV_ID_82571EB_QUAD_FIBER:
case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE:
+   case E1000_DEV_ID_82571PT_QUAD_COPPER:
/* if quad port adapter, disable WoL on all but port A */
if (global_quad_port_a != 0)
adapter-eeprom_wol = 0;
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 0792031..162489b 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -910,6 +910,20 @@ static inline struct sky2_tx_le *get_tx_le(struct 
sky2_port *sky2)
return le;
 }
 
+static void tx_init(struct sky2_port *sky2)
+{
+   struct sky2_tx_le *le;
+
+   sky2-tx_prod = sky2-tx_cons = 0;
+   sky2-tx_tcpsum = 0;
+   sky2-tx_last_mss = 0;
+
+   le = get_tx_le(sky2);
+   le-addr = 0;
+   le-opcode = OP_ADDR64 | HW_OWNER;
+   sky2-tx_addr64 = 0;
+}
+
 static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2,
struct sky2_tx_le *le)
 {
@@ -1320,7 +1334,8 @@ static int sky2_up(struct net_device *dev)
GFP_KERNEL);
if (!sky2-tx_ring)
goto err_out;
-   sky2-tx_prod = sky2-tx_cons = 0;
+
+   tx_init(sky2);
 
sky2-rx_le = pci_alloc_consistent(hw-pdev, RX_LE_BYTES,
   sky2-rx_le_map);
@@ -2148,6 +2163,18 @@ static struct sk_buff *sky2_receive(struct net_device 
*dev,
sky2-rx_next = (sky2-rx_next + 1) % sky2-rx_pending;
prefetch(sky2-rx_ring + sky2-rx_next);
 
+   if (length  ETH_ZLEN || length  sky2-rx_data_size)
+   goto len_error;
+
+   /* This chip has hardware problems that generates bogus status.
+* So do only marginal checking and expect 

[git patches] net driver fixes

2007-09-24 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/pcmcia/3c589_cs.c |2 +-
 drivers/net/r8169.c   |   14 +-
 drivers/net/sky2.c|   37 -
 drivers/net/sky2.h|2 +-
 4 files changed, 39 insertions(+), 16 deletions(-)

Edward Hsu (1):
  r8169: correct phy parameters for the 8110SC

Francois Romieu (1):
  r8169: workaround against ignored TxPoll writes (8168)

Jeff Garzik (1):
  Revert drivers/net/pcmcia/3c589_cs: fix port configuration switcheroo

Stephen Hemminger (2):
  sky2: FE+ Phy initialization
  sky2: be more selective about FIFO watchdog

diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index c06cae3..503f268 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -116,7 +116,7 @@ struct el3_private {
 spinlock_t lock;
 };
 
-static const char *if_names[] = { auto, 10base2, 10baseT, AUI };
+static const char *if_names[] = { auto, 10baseT, 10base2, AUI };
 
 /**/
 
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index b85ab4a..c921ec3 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1228,7 +1228,10 @@ static void rtl8169_hw_phy_config(struct net_device *dev)
return;
}
 
-   /* phy config for RTL8169s mac_version C chip */
+   if ((tp-mac_version != RTL_GIGA_MAC_VER_02) 
+   (tp-mac_version != RTL_GIGA_MAC_VER_03))
+   return;
+
mdio_write(ioaddr, 31, 0x0001); //w 31 2 0 1
mdio_write(ioaddr, 21, 0x1000); //w 21 15 0 1000
mdio_write(ioaddr, 24, 0x65c7); //w 24 15 0 65c7
@@ -2567,6 +2570,15 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
(TX_BUFFS_AVAIL(tp) = MAX_SKB_FRAGS)) {
netif_wake_queue(dev);
}
+   /*
+* 8168 hack: TxPoll requests are lost when the Tx packets are
+* too close. Let's kick an extra TxPoll request when a burst
+* of start_xmit activity is detected (if it is not detected,
+* it is slow enough). -- FR
+*/
+   smp_rmb();
+   if (tp-cur_tx != dirty_tx)
+   RTL_W8(TxPoll, NPQ);
}
 }
 
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index eaffe55..0792031 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -338,6 +338,16 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned 
port)
if (!(hw-flags  SKY2_HW_GIGABIT)) {
/* enable automatic crossover */
ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO)  1;
+
+   if (hw-chip_id == CHIP_ID_YUKON_FE_P 
+   hw-chip_rev == CHIP_REV_YU_FE2_A0) {
+   u16 spec;
+
+   /* Enable Class A driver for FE+ A0 */
+   spec = gm_phy_read(hw, port, 
PHY_MARV_FE_SPEC_2);
+   spec |= PHY_M_FESC_SEL_CL_A;
+   gm_phy_write(hw, port, PHY_MARV_FE_SPEC_2, 
spec);
+   }
} else {
/* disable energy detect */
ctrl = ~PHY_M_PC_EN_DET_MSK;
@@ -816,7 +826,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port)
sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_CLR);
sky2_write16(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_OPER_ON);
 
-   if (!(hw-flags  SKY2_HW_RAMBUFFER)) {
+   /* On chips without ram buffer, pause is controled by MAC level */
+   if (sky2_read8(hw, B2_E_0) == 0) {
sky2_write8(hw, SK_REG(port, RX_GMF_LP_THR), 768/8);
sky2_write8(hw, SK_REG(port, RX_GMF_UP_THR), 1024/8);
 
@@ -1271,7 +1282,7 @@ static int sky2_up(struct net_device *dev)
struct sky2_port *sky2 = netdev_priv(dev);
struct sky2_hw *hw = sky2-hw;
unsigned port = sky2-port;
-   u32 imask;
+   u32 imask, ramsize;
int cap, err = -ENOMEM;
struct net_device *otherdev = hw-dev[sky2-port^1];
 
@@ -1326,13 +1337,12 @@ static int sky2_up(struct net_device *dev)
 
sky2_mac_init(hw, port);
 
-   if (hw-flags  SKY2_HW_RAMBUFFER) {
-   /* Register is number of 4K blocks on internal RAM buffer. */
-   u32 ramsize = sky2_read8(hw, B2_E_0) * 4;
+   /* Register is number of 4K blocks on internal RAM buffer. */
+   ramsize = sky2_read8(hw, B2_E_0) * 4;
+   if (ramsize  0) {
u32 rxspace;
 
-   printk(KERN_DEBUG PFX %s: ram buffer %dK\n, dev-name, 
ramsize);
-
+   

[git patches] net driver fixes

2007-09-20 Thread Jeff Garzik

This includes the sky2 update that you and sch discussed.

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

to receive the following updates:

 drivers/net/myri10ge/myri10ge.c |3 +
 drivers/net/phy/phy.c   |1 +
 drivers/net/sky2.c  |  368 +++
 drivers/net/sky2.h  |   41 -
 4 files changed, 292 insertions(+), 121 deletions(-)

Brice Goglin (1):
  myri10ge: Add support for PCI device id 9

Domen Puncer (1):
  phy: export phy_mii_ioctl

Stephen Hemminger (6):
  sky2: fix VLAN receive processing (resend)
  sky2: ethtool speed report bug
  sky2: reorganize chip revision features
  sky2: fe+ chip support
  sky2: receive FIFO checking
  sky2: version 1.18

diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 1c42266..556962f 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -3094,9 +3094,12 @@ static void myri10ge_remove(struct pci_dev *pdev)
 }
 
 #define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E 0x0008
+#define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9   0x0009
 
 static struct pci_device_id myri10ge_pci_tbl[] = {
{PCI_DEVICE(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E)},
+   {PCI_DEVICE
+(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9)},
{0},
 };
 
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 0cc4369..cb230f4 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -409,6 +409,7 @@ int phy_mii_ioctl(struct phy_device *phydev,
 
return 0;
 }
+EXPORT_SYMBOL(phy_mii_ioctl);
 
 /**
  * phy_start_aneg - start auto-negotiation for this PHY device
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 5d812de..eaffe55 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -51,7 +51,7 @@
 #include sky2.h
 
 #define DRV_NAME   sky2
-#define DRV_VERSION1.17
+#define DRV_VERSION1.18
 #define PFXDRV_NAME  
 
 /*
@@ -118,12 +118,15 @@ static const struct pci_device_id sky2_id_table[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4351) }, /* 88E8036 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */
+   { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */
+   { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4360) }, /* 88E8052 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, /* 88E8050 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, /* 88E8053 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, /* 88E8055 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, /* 88E8056 */
+   { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4365) }, /* 88E8070 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, /* 88EC036 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, /* 88EC032 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, /* 88EC034 */
@@ -147,6 +150,7 @@ static const char *yukon2_name[] = {
Extreme,  /* 0xb5 */
EC,   /* 0xb6 */
FE,   /* 0xb7 */
+   FE+,  /* 0xb8 */
 };
 
 static void sky2_set_multicast(struct net_device *dev);
@@ -217,8 +221,7 @@ static void sky2_power_on(struct sky2_hw *hw)
else
sky2_write8(hw, B2_Y2_CLK_GATE, 0);
 
-   if (hw-chip_id == CHIP_ID_YUKON_EC_U ||
-   hw-chip_id == CHIP_ID_YUKON_EX) {
+   if (hw-flags  SKY2_HW_ADV_POWER_CTL) {
u32 reg;
 
sky2_pci_write32(hw, PCI_DEV_REG3, 0);
@@ -311,10 +314,8 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned 
port)
struct sky2_port *sky2 = netdev_priv(hw-dev[port]);
u16 ctrl, ct1000, adv, pg, ledctrl, ledover, reg;
 
-   if (sky2-autoneg == AUTONEG_ENABLE
-!(hw-chip_id == CHIP_ID_YUKON_XL
-|| hw-chip_id == CHIP_ID_YUKON_EC_U
-|| hw-chip_id == CHIP_ID_YUKON_EX)) {
+   if (sky2-autoneg == AUTONEG_ENABLE 
+   !(hw-flags  SKY2_HW_NEWER_PHY)) {
u16 ectrl = gm_phy_read(hw, port, PHY_MARV_EXT_CTRL);
 
ectrl = ~(PHY_M_EC_M_DSC_MSK | PHY_M_EC_S_DSC_MSK |
@@ -334,7 +335,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port)
 
ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL);
if (sky2_is_copper(hw)) {
-   if (hw-chip_id == CHIP_ID_YUKON_FE) {
+   if (!(hw-flags  SKY2_HW_GIGABIT)) {
/* enable automatic crossover */
ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO)  1;
} else {
@@ -346,9 +347,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned 

Re: [git patches] net driver fixes

2007-09-14 Thread Dan Williams
On Thu, 2007-09-13 at 01:30 -0400, Jeff Garzik wrote:
 Please pull from 'upstream-linus' branch of
 master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git 
 upstream-linus
 
 to receive the following updates:
 
  drivers/net/atl1/atl1_main.c |   19 +++
  drivers/net/ehea/ehea.h  |5 -
  drivers/net/ehea/ehea_main.c |   16 ++--
  drivers/net/phy/phy.c|4 ++--
  drivers/net/phy/phy_device.c |4 ++--
  drivers/net/sky2.c   |9 -
  drivers/net/spider_net.c |   12 
  7 files changed, 41 insertions(+), 28 deletions(-)
 
 Hans-Jürgen Koch (1):
   Fix a lock problem in generic phy code
 
 Ishizaki Kou (1):
   spidernet: fix interrupt reason recognition
 
 Jan-Bernd Themann (2):
   ehea: propagate physical port state
   ehea: fix last_rx update
 
 Luca Tettamanti (1):
   atl1: disable broken 64-bit DMA
 
 Stephen Hemminger (1):
   sky2: restore multicast list on resume and other ops
 
 diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
 index 3c1984e..f23e13c 100644
 --- a/drivers/net/atl1/atl1_main.c
 +++ b/drivers/net/atl1/atl1_main.c
 @@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
   struct net_device *netdev;
   struct atl1_adapter *adapter;
   static int cards_found = 0;
 - bool pci_using_64 = true;
   int err;
  
   err = pci_enable_device(pdev);
   if (err)
   return err;
  
 - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
 + /*
 +  * 64-bit DMA currently has data corruption problems, so let's just
 +  * use 32-bit DMA for now.  This is a big hack that is probably wrong.
 +  */
 + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
   if (err) {
 - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
 - if (err) {
 - dev_err(pdev-dev, no usable DMA configuration\n);
 - goto err_dma;
 - }
 - pci_using_64 = false;
 + dev_err(pdev-dev, no usable DMA configuration\n);
 + goto err_dma;
   }
   /* Mark all PCI regions associated with PCI device
* pdev as being reserved by owner atl1_driver_name
 @@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
  
   netdev-ethtool_ops = atl1_ethtool_ops;
   adapter-bd_number = cards_found;
 - adapter-pci_using_64 = pci_using_64;
  
   /* setup the private structure */
   err = atl1_sw_init(adapter);
 @@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
*/
   /* netdev-features |= NETIF_F_TSO; */
  
 - if (pci_using_64)
 - netdev-features |= NETIF_F_HIGHDMA;
 -
   netdev-features |= NETIF_F_LLTX;
  
   /*
 diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
 index d67f97b..8d58be5 100644
 --- a/drivers/net/ehea/ehea.h
 +++ b/drivers/net/ehea/ehea.h
 @@ -39,7 +39,7 @@
  #include asm/io.h
  
  #define DRV_NAME ehea
 -#define DRV_VERSION  EHEA_0073
 +#define DRV_VERSION  EHEA_0074
  
  /* eHEA capability flags */
  #define DLPAR_PORT_ADD_REM 1
 @@ -402,6 +402,8 @@ struct ehea_mc_list {
  
  #define EHEA_PORT_UP 1
  #define EHEA_PORT_DOWN 0
 +#define EHEA_PHY_LINK_UP 1
 +#define EHEA_PHY_LINK_DOWN 0
  #define EHEA_MAX_PORT_RES 16
  struct ehea_port {
   struct ehea_adapter *adapter;/* adapter that owns this port */
 @@ -427,6 +429,7 @@ struct ehea_port {
   u32 msg_enable;
   u32 sig_comp_iv;
   u32 state;
 + u8 phy_link;
   u8 full_duplex;
   u8 autoneg;
   u8 num_def_qps;
 diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
 index db57474..717b129 100644
 --- a/drivers/net/ehea/ehea_main.c
 +++ b/drivers/net/ehea/ehea_main.c
 @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3;
  static int sq_entries = EHEA_DEF_ENTRIES_SQ;
  static int use_mcs = 0;
  static int num_tx_qps = EHEA_NUM_TX_QP;
 +static int prop_carrier_state = 0;
  
  module_param(msg_level, int, 0);
  module_param(rq1_entries, int, 0);
  module_param(rq2_entries, int, 0);
  module_param(rq3_entries, int, 0);
  module_param(sq_entries, int, 0);
 +module_param(prop_carrier_state, int, 0);
  module_param(use_mcs, int, 0);
  module_param(num_tx_qps, int, 0);
  
  MODULE_PARM_DESC(num_tx_qps, Number of TX-QPS);
  MODULE_PARM_DESC(msg_level, msg_level);
 +MODULE_PARM_DESC(prop_carrier_state, Propagate carrier state of physical 
 +  port to stack. 1:yes, 0:no.  Default = 0 );

WTF?  why would the default be to _not_ propagate carrier state?  Are
there some mitigating circumstances that require this driver to not
notify the stack of carrier on/off?  Userspace stuff really should know
about the carrier state, and this disables it by default.

Dan

  MODULE_PARM_DESC(rq3_entries, Number of entries for Receive Queue 3 
[2^x - 1], x = [6..14]. Default = 
   

Re: [git patches] net driver fixes

2007-09-14 Thread Jeff Garzik

Dan Williams wrote:

WTF?  why would the default be to _not_ propagate carrier state?  Are
there some mitigating circumstances that require this driver to not
notify the stack of carrier on/off?  Userspace stuff really should know
about the carrier state, and this disables it by default.



The commit explains that...

Jeff


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-09-14 Thread Dan Williams
On Fri, 2007-09-14 at 14:17 -0400, Jeff Garzik wrote:
 Dan Williams wrote:
  WTF?  why would the default be to _not_ propagate carrier state?  Are
  there some mitigating circumstances that require this driver to not
  notify the stack of carrier on/off?  Userspace stuff really should know
  about the carrier state, and this disables it by default.
 
 
 The commit explains that...

I admit that I probably don't understand the system architecture of
where ehea would be used, but would this
cause /sys/class/net/ethX/carrier to be TRUE even if the device has no
carrier?  That seems quite wrong IMHO.  When does ehea not have a
carrier?  And in that case, does sysfs say 1 or 0 for the carrier?

Dan


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-09-14 Thread Jay Vosburgh
Dan Williams [EMAIL PROTECTED] wrote:
[...]
I admit that I probably don't understand the system architecture of
where ehea would be used, but would this
cause /sys/class/net/ethX/carrier to be TRUE even if the device has no
carrier?  That seems quite wrong IMHO.  When does ehea not have a
carrier?  And in that case, does sysfs say 1 or 0 for the carrier?

I don't work on ehea, but I'm generally familiar with it, and
particularly with this patch.

The usual environment for ehea devices is on large systems
subdivided into multiple logical partitions.  One ehea device serves
many partitions.  By having ehea always report link up to the logical
ports (the ports seen by the partitions), the partitions can communicate
amongst themselves even if the external ports (the ports that go to the
switch or whatever) have no link.  

The ehea device, more or less, acts as a switch connecting the
partitions together.  This switch type of functionality is not dependent
upon the link state of the external ports (any more than the
functionality of any switch is dependent upon whether or not it is
connected to a gateway).

This, if I'm not mistaken, is the way ehea has always operated
until this particular patch was added.

This patch (to optionally pass carrier state to the logical
ports) was added largely for bonding, so that the bonding driver can
detect link failures on the external ports (when so desired).  The
default behavior remains the original behavior, i.e., do not pass
external port link state to the logical ports.

Anyway, to answer your question, the carrier state reported for
the ehea interface on the partition will always be true.  Think of it as
reporting the link state from the logical interface to the switch that
connects the partitions; that link exists only within the ehea device
itself, and really can't fail unless the ehea device itself fails.

With the new option enabled, then ehea is more or less mimicing
a trunk failover type of function, and passing the carrier state of the
external switch port to the internal port.

-J

---
-Jay Vosburgh, IBM Linux Technology Center, [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-09-14 Thread Dan Williams
On Fri, 2007-09-14 at 12:19 -0700, Jay Vosburgh wrote:
 Dan Williams [EMAIL PROTECTED] wrote:
 [...]
 I admit that I probably don't understand the system architecture of
 where ehea would be used, but would this
 cause /sys/class/net/ethX/carrier to be TRUE even if the device has no
 carrier?  That seems quite wrong IMHO.  When does ehea not have a
 carrier?  And in that case, does sysfs say 1 or 0 for the carrier?
 
   I don't work on ehea, but I'm generally familiar with it, and
 particularly with this patch.
 
   The usual environment for ehea devices is on large systems
 subdivided into multiple logical partitions.  One ehea device serves
 many partitions.  By having ehea always report link up to the logical
 ports (the ports seen by the partitions), the partitions can communicate
 amongst themselves even if the external ports (the ports that go to the
 switch or whatever) have no link.  

(forgive my ignorance of course)

So essentially the ehea device has a 1(+) external ports that may/may
not be connected, but all lpars share the physical hardware itself,
which is quite happy to let all the lpars talk to each other essentially
via loopback even if there is no actual carrier detected on the external
port(s)?  How does addressing work here, is it just L2 addresses?  Feel
free to point me to some docs and tell me to shut up :)

At least these days module parameters can be changed at runtime through
sysfs.  Stuff that can only be set at module load doesn't provide
userspace the flexibility it needs to configure stuff on the fly.

Dan

   The ehea device, more or less, acts as a switch connecting the
 partitions together.  This switch type of functionality is not dependent
 upon the link state of the external ports (any more than the
 functionality of any switch is dependent upon whether or not it is
 connected to a gateway).
 
   This, if I'm not mistaken, is the way ehea has always operated
 until this particular patch was added.
 
   This patch (to optionally pass carrier state to the logical
 ports) was added largely for bonding, so that the bonding driver can
 detect link failures on the external ports (when so desired).  The
 default behavior remains the original behavior, i.e., do not pass
 external port link state to the logical ports.
 
   Anyway, to answer your question, the carrier state reported for
 the ehea interface on the partition will always be true.  Think of it as
 reporting the link state from the logical interface to the switch that
 connects the partitions; that link exists only within the ehea device
 itself, and really can't fail unless the ehea device itself fails.
 
   With the new option enabled, then ehea is more or less mimicing
 a trunk failover type of function, and passing the carrier state of the
 external switch port to the internal port.
 
   -J
 
 ---
   -Jay Vosburgh, IBM Linux Technology Center, [EMAIL PROTECTED]

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-09-14 Thread Jay Vosburgh
Dan Williams [EMAIL PROTECTED] wrote:
[...]
So essentially the ehea device has a 1(+) external ports that may/may
not be connected, but all lpars share the physical hardware itself,
which is quite happy to let all the lpars talk to each other essentially
via loopback even if there is no actual carrier detected on the external
port(s)? [...]

Yes.

[...]  How does addressing work here, is it just L2 addresses?  

Yes.  The logical ports all have unique MAC addresses.

 [...] Feel
free to point me to some docs and tell me to shut up :)

http://www.redbooks.ibm.com/redpieces/abstracts/redp4340.html

I found this via google; I haven't read it in detail, but it
seems to cover the HEA architecture at a high level.  It talks about the
whole IVE (integrated virtual ethernet: the adapter, hypervisor, etc)
system, but HEA is part of that, so it's probably got the answers you're
looking for.

-J

---
-Jay Vosburgh, IBM Linux Technology Center, [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-09-14 Thread Kok, Auke

Dan Williams wrote:

On Thu, 2007-09-13 at 01:30 -0400, Jeff Garzik wrote:

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

to receive the following updates:

 drivers/net/atl1/atl1_main.c |   19 +++
 drivers/net/ehea/ehea.h  |5 -
 drivers/net/ehea/ehea_main.c |   16 ++--
 drivers/net/phy/phy.c|4 ++--
 drivers/net/phy/phy_device.c |4 ++--
 drivers/net/sky2.c   |9 -
 drivers/net/spider_net.c |   12 
 7 files changed, 41 insertions(+), 28 deletions(-)

Hans-Jürgen Koch (1):
  Fix a lock problem in generic phy code

Ishizaki Kou (1):
  spidernet: fix interrupt reason recognition

Jan-Bernd Themann (2):
  ehea: propagate physical port state
  ehea: fix last_rx update



maybe a little bit late with this comment:


ehea_error(Failed setting port speed);
}
}
-   netif_carrier_on(port-netdev);
+   if (!prop_carrier_state || (port-phy_link == EHEA_PHY_LINK_UP))
+   netif_carrier_on(port-netdev);
+
kfree(cb4);
 out:
return ret;
@@ -869,13 +875,19 @@ static void ehea_parse_eqe(struct ehea_adapter *adapter, 
u64 eqe)
}
 
 		if (EHEA_BMASK_GET(NEQE_EXTSWITCH_PORT_UP, eqe)) {

+   port-phy_link = EHEA_PHY_LINK_UP;
if (netif_msg_link(port))
ehea_info(%s: Physical port up,
  port-netdev-name);
+   if (prop_carrier_state)
+   netif_carrier_on(port-netdev);
} else {
+   port-phy_link = EHEA_PHY_LINK_DOWN;
if (netif_msg_link(port))
ehea_info(%s: Physical port down,
  port-netdev-name);
+   if (prop_carrier_state)
+   netif_carrier_off(port-netdev);


maybe it was better to code this as 'ehea_carrier_off/on()' which then tests 
(prop_carrier_state) - this now begs for regressions where this isn't properly 
done in future commits, and on top of that there are all these extra conditions now.


Cheers,

Auke

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-09-12 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/atl1/atl1_main.c |   19 +++
 drivers/net/ehea/ehea.h  |5 -
 drivers/net/ehea/ehea_main.c |   16 ++--
 drivers/net/phy/phy.c|4 ++--
 drivers/net/phy/phy_device.c |4 ++--
 drivers/net/sky2.c   |9 -
 drivers/net/spider_net.c |   12 
 7 files changed, 41 insertions(+), 28 deletions(-)

Hans-Jürgen Koch (1):
  Fix a lock problem in generic phy code

Ishizaki Kou (1):
  spidernet: fix interrupt reason recognition

Jan-Bernd Themann (2):
  ehea: propagate physical port state
  ehea: fix last_rx update

Luca Tettamanti (1):
  atl1: disable broken 64-bit DMA

Stephen Hemminger (1):
  sky2: restore multicast list on resume and other ops

diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index 3c1984e..f23e13c 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
struct net_device *netdev;
struct atl1_adapter *adapter;
static int cards_found = 0;
-   bool pci_using_64 = true;
int err;
 
err = pci_enable_device(pdev);
if (err)
return err;
 
-   err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
+   /*
+* 64-bit DMA currently has data corruption problems, so let's just
+* use 32-bit DMA for now.  This is a big hack that is probably wrong.
+*/
+   err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
if (err) {
-   err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
-   if (err) {
-   dev_err(pdev-dev, no usable DMA configuration\n);
-   goto err_dma;
-   }
-   pci_using_64 = false;
+   dev_err(pdev-dev, no usable DMA configuration\n);
+   goto err_dma;
}
/* Mark all PCI regions associated with PCI device
 * pdev as being reserved by owner atl1_driver_name
@@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
 
netdev-ethtool_ops = atl1_ethtool_ops;
adapter-bd_number = cards_found;
-   adapter-pci_using_64 = pci_using_64;
 
/* setup the private structure */
err = atl1_sw_init(adapter);
@@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
 */
/* netdev-features |= NETIF_F_TSO; */
 
-   if (pci_using_64)
-   netdev-features |= NETIF_F_HIGHDMA;
-
netdev-features |= NETIF_F_LLTX;
 
/*
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index d67f97b..8d58be5 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
 #include asm/io.h
 
 #define DRV_NAME   ehea
-#define DRV_VERSIONEHEA_0073
+#define DRV_VERSIONEHEA_0074
 
 /* eHEA capability flags */
 #define DLPAR_PORT_ADD_REM 1
@@ -402,6 +402,8 @@ struct ehea_mc_list {
 
 #define EHEA_PORT_UP 1
 #define EHEA_PORT_DOWN 0
+#define EHEA_PHY_LINK_UP 1
+#define EHEA_PHY_LINK_DOWN 0
 #define EHEA_MAX_PORT_RES 16
 struct ehea_port {
struct ehea_adapter *adapter;/* adapter that owns this port */
@@ -427,6 +429,7 @@ struct ehea_port {
u32 msg_enable;
u32 sig_comp_iv;
u32 state;
+   u8 phy_link;
u8 full_duplex;
u8 autoneg;
u8 num_def_qps;
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index db57474..717b129 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3;
 static int sq_entries = EHEA_DEF_ENTRIES_SQ;
 static int use_mcs = 0;
 static int num_tx_qps = EHEA_NUM_TX_QP;
+static int prop_carrier_state = 0;
 
 module_param(msg_level, int, 0);
 module_param(rq1_entries, int, 0);
 module_param(rq2_entries, int, 0);
 module_param(rq3_entries, int, 0);
 module_param(sq_entries, int, 0);
+module_param(prop_carrier_state, int, 0);
 module_param(use_mcs, int, 0);
 module_param(num_tx_qps, int, 0);
 
 MODULE_PARM_DESC(num_tx_qps, Number of TX-QPS);
 MODULE_PARM_DESC(msg_level, msg_level);
+MODULE_PARM_DESC(prop_carrier_state, Propagate carrier state of physical 
+port to stack. 1:yes, 0:no.  Default = 0 );
 MODULE_PARM_DESC(rq3_entries, Number of entries for Receive Queue 3 
 [2^x - 1], x = [6..14]. Default = 
 __MODULE_STRING(EHEA_DEF_ENTRIES_RQ3) ));
@@ -467,7 +471,7 @@ static struct ehea_cqe *ehea_proc_rwqes(struct net_device 
*dev,
else
netif_receive_skb(skb);
 
-   dev-last_rx = jiffies;
+   port-netdev-last_rx = jiffies;
} else {
  

Re: [git patches] net driver fixes

2007-08-31 Thread Jeff Garzik

Satyam Sharma wrote:


On Mon, 30 Jul 2007, Jeff Garzik wrote:


true, we should just remove the dev==NULL check


Patch below:

[PATCH] nmclan_cs: Remove bogus (dev==NULL) check in mace_interrupt()

The (dev == NULL) check in drivers/net/pcmcia/nmclan_cs.c:mace_interrupt()
handler is always false, so let's remove it.

Signed-off-by: Satyam Sharma [EMAIL PROTECTED]

---

 drivers/net/pcmcia/nmclan_cs.c |6 --
 1 files changed, 0 insertions(+), 6 deletions(-)


ACK, but patch does not apply to netdev-2.6.git#upstream alas


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-08-31 Thread Jeff Garzik

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

to receive the following updates:

 drivers/infiniband/hw/cxgb3/cxio_hal.c |2 +-
 drivers/net/cxgb3/adapter.h|2 +
 drivers/net/cxgb3/common.h |3 +-
 drivers/net/cxgb3/cxgb3_main.c |  252 +++-
 drivers/net/cxgb3/cxgb3_offload.c  |   16 ++-
 drivers/net/cxgb3/cxgb3_offload.h  |2 +
 drivers/net/cxgb3/sge.c|   23 ++-
 drivers/net/cxgb3/t3_hw.c  |   46 +-
 drivers/net/cxgb3/t3cdev.h |3 -
 drivers/net/ioc3-eth.c |   80 ---
 drivers/net/netxen/netxen_nic_hdr.h|6 +-
 drivers/net/netxen/netxen_nic_hw.c |8 +-
 drivers/net/netxen/netxen_nic_main.c   |   19 +--
 drivers/net/ps3_gelic_net.c|1 -
 drivers/s390/net/qeth.h|4 +-
 drivers/s390/net/qeth_main.c   |  158 +++-
 drivers/s390/net/qeth_mpc.h|1 +
 drivers/s390/net/qeth_sys.c|8 +-
 18 files changed, 428 insertions(+), 206 deletions(-)

Divy Le Ray (2):
  cxgb3 - Fix dev-priv usage
  - cxgb3 engine microcode load

Frank Blaschka (2):
  qeth: enforce a rate limit for inbound scatter gather messages
  qeth: Announce tx checksumming for qeth devices in TSO/EDDP mode

Heiko Carstens (1):
  qeth: dont return the return values of void functions.

Klaus D. Wacker (1):
  qeth: Drop ARP packages on HiperSockets interface with NOARP attribute.

Masakazu Mokuno (1):
  PS3: fix the bug that 'ifconfig down' would hang

Ralf Baechle (1):
  IOC3: Program UART predividers.

Ursula Braun (3):
  qeth: ungrouping a device must not be interruptible
  qeth: crash during reboot after failing online setting
  qeth: provide specific message for OSA-adapters exclusively used

[EMAIL PROTECTED] (2):
  netxen: Avoid firmware load in PCI probe
  netxen: fix crashes during module unload

diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c 
b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 1518b41..beb2a38 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -916,7 +916,7 @@ int cxio_rdev_open(struct cxio_rdev *rdev_p)
PDBG(%s opening rnic dev %s\n, __FUNCTION__, rdev_p-dev_name);
memset(rdev_p-ctrl_qp, 0, sizeof(rdev_p-ctrl_qp));
if (!rdev_p-t3cdev_p)
-   rdev_p-t3cdev_p = T3CDEV(netdev_p);
+   rdev_p-t3cdev_p = dev2t3cdev(netdev_p);
rdev_p-t3cdev_p-ulp = (void *) rdev_p;
err = rdev_p-t3cdev_p-ctl(rdev_p-t3cdev_p, RDMA_GET_PARAMS,
 (rdev_p-rnic_info));
diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h
index ab72563..20e887d 100644
--- a/drivers/net/cxgb3/adapter.h
+++ b/drivers/net/cxgb3/adapter.h
@@ -50,7 +50,9 @@ typedef irqreturn_t(*intr_handler_t) (int, void *);
 
 struct vlan_group;
 
+struct adapter;
 struct port_info {
+   struct adapter *adapter;
struct vlan_group *vlan_grp;
const struct port_type_info *port_type;
u8 port_id;
diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h
index 1637800..2129210 100644
--- a/drivers/net/cxgb3/common.h
+++ b/drivers/net/cxgb3/common.h
@@ -679,7 +679,8 @@ const struct adapter_info *t3_get_adapter_info(unsigned int 
board_id);
 int t3_seeprom_read(struct adapter *adapter, u32 addr, u32 *data);
 int t3_seeprom_write(struct adapter *adapter, u32 addr, u32 data);
 int t3_seeprom_wp(struct adapter *adapter, int enable);
-int t3_check_tpsram_version(struct adapter *adapter);
+int t3_get_tp_version(struct adapter *adapter, u32 *vers);
+int t3_check_tpsram_version(struct adapter *adapter, int *must_load);
 int t3_check_tpsram(struct adapter *adapter, u8 *tp_ram, unsigned int size);
 int t3_set_proto_sram(struct adapter *adap, u8 *data);
 int t3_read_flash(struct adapter *adapter, unsigned int addr,
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index dc5d269..5ab319c 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -358,11 +358,14 @@ static int init_dummy_netdevs(struct adapter *adap)
 
for (j = 0; j  pi-nqsets - 1; j++) {
if (!adap-dummy_netdev[dummy_idx]) {
-   nd = alloc_netdev(0, , ether_setup);
+   struct port_info *p;
+
+   nd = alloc_netdev(sizeof(*p), , ether_setup);
if (!nd)
goto free_all;
 
-   nd-priv = adap;
+   p = netdev_priv(nd);
+   p-adapter = adap;
nd-weight = 64;
set_bit(__LINK_STATE_START, 

[git patches] net driver fixes

2007-08-25 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/dm9000.c|   25 ---
 drivers/net/ehea/ehea_main.c|8 ++--
 drivers/net/ehea/ehea_qmr.c |6 
 drivers/net/forcedeth.c |2 +-
 drivers/net/meth.c  |2 +-
 drivers/net/myri10ge/myri10ge.c |   34 
 drivers/net/phy/phy_device.c|2 +-
 drivers/net/sgiseeq.c   |4 ++-
 drivers/net/sky2.c  |   64 +++---
 drivers/net/sky2.h  |3 +-
 10 files changed, 64 insertions(+), 86 deletions(-)

Brice Goglin (2):
  myri10ge: use pcie_get/set_readrq
  myri10ge: update driver version to 1.3.2-1.269

Domen Puncer (1):
  phy layer: fix genphy_setup_forced (don't reset)

Florian Westphal (1):
  DM9000: fix interface hang under load

Jan-Bernd Themann (3):
  ehea: fix interface to DLPAR tools
  ehea: fix module parameter description
  ehea: fix queue destructor

Ralf Baechle (2):
  Don't use GFP_DMA for zone allocation.
  sgiseeq: Fix return type of sgiseeq_remove

Stephen Hemminger (3):
  sky2: clear PCI power control reg at startup
  sky2: only bring up watchdog if link is active
  sky2 1.17

Willy Tarreau (1):
  fix realtek phy id in forcedeth

diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index c3de81b..738aa59 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -700,6 +700,7 @@ dm9000_init_dm9000(struct net_device *dev)
 static int
 dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
+   unsigned long flags;
board_info_t *db = (board_info_t *) dev-priv;
 
PRINTK3(dm9000_start_xmit\n);
@@ -707,10 +708,7 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device 
*dev)
if (db-tx_pkt_cnt  1)
return 1;
 
-   netif_stop_queue(dev);
-
-   /* Disable all interrupts */
-   iow(db, DM9000_IMR, IMR_PAR);
+   spin_lock_irqsave(db-lock, flags);
 
/* Move data to DM9000 TX RAM */
writeb(DM9000_MWCMD, db-io_addr);
@@ -718,12 +716,9 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device 
*dev)
(db-outblk)(db-io_data, skb-data, skb-len);
db-stats.tx_bytes += skb-len;
 
+   db-tx_pkt_cnt++;
/* TX control: First packet immediately send, second packet queue */
-   if (db-tx_pkt_cnt == 0) {
-
-   /* First Packet */
-   db-tx_pkt_cnt++;
-
+   if (db-tx_pkt_cnt == 1) {
/* Set TX length to DM9000 */
iow(db, DM9000_TXPLL, skb-len  0xff);
iow(db, DM9000_TXPLH, (skb-len  8)  0xff);
@@ -732,23 +727,17 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device 
*dev)
iow(db, DM9000_TCR, TCR_TXREQ); /* Cleared after TX complete */
 
dev-trans_start = jiffies; /* save the time stamp */
-
} else {
/* Second packet */
-   db-tx_pkt_cnt++;
db-queue_pkt_len = skb-len;
+   netif_stop_queue(dev);
}
 
+   spin_unlock_irqrestore(db-lock, flags);
+
/* free this SKB */
dev_kfree_skb(skb);
 
-   /* Re-enable resource check */
-   if (db-tx_pkt_cnt == 1)
-   netif_wake_queue(dev);
-
-   /* Re-enable interrupt */
-   iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM);
-
return 0;
 }
 
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 9756211..db57474 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -76,7 +76,7 @@ MODULE_PARM_DESC(rq1_entries, Number of entries for Receive 
Queue 1 
 MODULE_PARM_DESC(sq_entries,  Number of entries for the Send Queue  
 [2^x - 1], x = [6..14]. Default = 
 __MODULE_STRING(EHEA_DEF_ENTRIES_SQ) ));
-MODULE_PARM_DESC(use_mcs,  0:NAPI, 1:Multiple receive queues, Default = 1 );
+MODULE_PARM_DESC(use_mcs,  0:NAPI, 1:Multiple receive queues, Default = 0 );
 
 static int port_name_cnt = 0;
 static LIST_HEAD(adapter_list);
@@ -2490,7 +2490,7 @@ static ssize_t ehea_show_port_id(struct device *dev,
 struct device_attribute *attr, char *buf)
 {
struct ehea_port *port = container_of(dev, struct ehea_port, ofdev.dev);
-   return sprintf(buf, 0x%X, port-logical_port_id);
+   return sprintf(buf, %d, port-logical_port_id);
 }
 
 static DEVICE_ATTR(log_port_id, S_IRUSR | S_IRGRP | S_IROTH, ehea_show_port_id,
@@ -2781,7 +2781,7 @@ static ssize_t ehea_probe_port(struct device *dev,
 
u32 logical_port_id;
 
-   sscanf(buf, %X, logical_port_id);
+   sscanf(buf, %d, logical_port_id);
 
port = ehea_get_port(adapter, logical_port_id);
 
@@ -2834,7 +2834,7 @@ static ssize_t ehea_remove_port(struct device *dev,
int i;

[git patches] net driver fixes

2007-08-14 Thread Jeff Garzik
Minor stuff except for the xen-netfront fix.  e1000 change is an
adds-pci-ids-only change.

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

to receive the following updates:

 MAINTAINERS   |6 ++
 drivers/net/3c59x.c   |1 +
 drivers/net/ax88796.c |5 +++--
 drivers/net/e1000/e1000_ethtool.c |2 ++
 drivers/net/e1000/e1000_hw.c  |5 +
 drivers/net/e1000/e1000_hw.h  |3 +++
 drivers/net/e1000/e1000_main.c|4 
 drivers/net/myri10ge/myri10ge.c   |   25 ++---
 drivers/net/natsemi.c |3 +++
 drivers/net/via-rhine.c   |6 ++
 drivers/net/xen-netfront.c|7 ---
 11 files changed, 55 insertions(+), 12 deletions(-)

Andrew Morton (2):
  ax88796 printk fixes
  natsemi: fix netdev error acounting

Auke Kok (1):
  e1000: Add device IDs of new 82571 board variants

Brice Goglin (1):
  myri10ge: Use the pause counter to avoid a needless device reset

Dustin Marquess (1):
  via-rhine: disable rx_copybreak on archs that don't allow unaligned DMA 
access

Jeremy Fitzhardinge (1):
  xen-netfront: Avoid deref'ing skbafter it is potentially freed.

Steffen Klassert (2):
  3c59x: fix duplex configuration
  3c59x maintainer

diff --git a/MAINTAINERS b/MAINTAINERS
index d3a0684..e4dde7f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -97,6 +97,12 @@ M:   [EMAIL PROTECTED]
 L: netdev@vger.kernel.org
 S: Maintained
 
+3C59X NETWORK DRIVER
+P: Steffen Klassert
+M: [EMAIL PROTECTED]
+L: netdev@vger.kernel.org
+S: Maintained
+
 3CR990 NETWORK DRIVER
 P: David Dillow
 M: [EMAIL PROTECTED]
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 001c66d..a8c0f43 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1555,6 +1555,7 @@ vortex_up(struct net_device *dev)
mii_reg1 = mdio_read(dev, vp-phys[0], MII_BMSR);
mii_reg5 = mdio_read(dev, vp-phys[0], MII_LPA);
vp-partner_flow_ctrl = ((mii_reg5  0x0400) != 0);
+   vp-mii.full_duplex = vp-full_duplex;
 
vortex_check_media(dev, 1);
}
diff --git a/drivers/net/ax88796.c b/drivers/net/ax88796.c
index 83da177..90e0734 100644
--- a/drivers/net/ax88796.c
+++ b/drivers/net/ax88796.c
@@ -821,8 +821,9 @@ static int ax_probe(struct platform_device *pdev)
dev-base_addr = (unsigned long)ei_status.mem;
 
if (ei_status.mem == NULL) {
-   dev_err(pdev-dev, Cannot ioremap area (%08zx,%08zx)\n,
-   res-start, res-end);
+   dev_err(pdev-dev, Cannot ioremap area (%08llx,%08llx)\n,
+   (unsigned long long)res-start,
+   (unsigned long long)res-end);
 
ret = -ENXIO;
goto exit_req;
diff --git a/drivers/net/e1000/e1000_ethtool.c 
b/drivers/net/e1000/e1000_ethtool.c
index c90c92e..4c3785c 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -1706,6 +1706,7 @@ static int e1000_wol_exclusion(struct e1000_adapter 
*adapter, struct ethtool_wol
case E1000_DEV_ID_82545EM_COPPER:
case E1000_DEV_ID_82546GB_QUAD_COPPER:
case E1000_DEV_ID_82546GB_PCIE:
+   case E1000_DEV_ID_82571EB_SERDES_QUAD:
/* these don't support WoL at all */
wol-supported = 0;
break;
@@ -1723,6 +1724,7 @@ static int e1000_wol_exclusion(struct e1000_adapter 
*adapter, struct ethtool_wol
retval = 0;
break;
case E1000_DEV_ID_82571EB_QUAD_COPPER:
+   case E1000_DEV_ID_82571EB_QUAD_FIBER:
case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE:
case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3:
/* quad port adapters only support WoL on port A */
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index 9be4469..ba120f7 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -384,7 +384,10 @@ e1000_set_mac_type(struct e1000_hw *hw)
case E1000_DEV_ID_82571EB_COPPER:
case E1000_DEV_ID_82571EB_FIBER:
case E1000_DEV_ID_82571EB_SERDES:
+   case E1000_DEV_ID_82571EB_SERDES_DUAL:
+   case E1000_DEV_ID_82571EB_SERDES_QUAD:
case E1000_DEV_ID_82571EB_QUAD_COPPER:
+   case E1000_DEV_ID_82571EB_QUAD_FIBER:
case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE:
hw-mac_type = e1000_82571;
break;
@@ -485,6 +488,8 @@ e1000_set_media_type(struct e1000_hw *hw)
 case E1000_DEV_ID_82545GM_SERDES:
 case E1000_DEV_ID_82546GB_SERDES:
 case E1000_DEV_ID_82571EB_SERDES:
+case E1000_DEV_ID_82571EB_SERDES_DUAL:
+case E1000_DEV_ID_82571EB_SERDES_QUAD:
 case E1000_DEV_ID_82572EI_SERDES:
 case E1000_DEV_ID_80003ES2LAN_SERDES_DPT:
 

[git patches] net driver fixes

2007-08-07 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/atl1/atl1_main.c|4 +--
 drivers/net/ehea/ehea.h |2 +-
 drivers/net/ehea/ehea_main.c|   44 ++
 drivers/net/ibmveth.c   |   27 +---
 drivers/net/ibmveth.h   |3 --
 drivers/net/phy/phy.c   |4 +-
 drivers/net/r8169.c |   24 ++-
 drivers/net/sis190.c|3 ++
 drivers/net/smc91x.h|4 +--
 drivers/net/ucc_geth_ethtool.c  |1 -
 drivers/net/ucc_geth_mii.c  |3 +-
 drivers/net/wireless/bcm43xx/bcm43xx_phy.c  |2 +-
 drivers/net/wireless/rtl8187_dev.c  |2 +-
 drivers/net/wireless/zd1211rw/zd_mac.c  |2 +-
 fs/compat_ioctl.c   |3 --
 net/ieee80211/softmac/ieee80211softmac_wx.c |   11 +--
 16 files changed, 69 insertions(+), 70 deletions(-)

Brian King (1):
  ibmveth: Fix rx pool deactivate oops

Domen Puncer (2):
  ucc_geth: fix section mismatch
  phy layer: fix phy_mii_ioctl for autonegotiation

Francois Romieu (1):
  r8169: avoid needless NAPI poll scheduling

Ingo Molnar (1):
  atl1: use spin_trylock_irqsave()

Jan Altenberg (1):
  ucc_geth: remove get_perm_addr from ucc_geth_ethtool.c

John W. Linville (1):
  Revert [PATCH] bcm43xx: Fix deviation from specifications in 
set_baseband_attenuation

Mariusz Kozlowski (1):
  drivers/net/ibmveth.c: memset fix

Masakazu Mokuno (1):
  remove duplicated ioctl entries in compat_ioctl.c

Michael Buesch (1):
  softmac: Fix deadlock of wx_set_essid with assoc work

Michael Wu (1):
  rtl8187: ensure priv-hwaddr is always valid

Neil Muller (1):
  sis190 check for ISA bridge on SiS966

Paul Mundt (1):
  net: smc91x: Build fixes for general sh boards.

Roger So (1):
  r8169: PHY power-on fix

Thomas Klein (3):
  ehea: Fix workqueue handling
  ehea: Simplify resource usage check
  ehea: Eliminated some compiler warnings

Ulrich Kunitz (1):
  zd1211rw: fix filter for PSPOLL frames

diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index 56f6389..3c1984e 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -1704,10 +1704,8 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct 
net_device *netdev)
}
}
 
-   local_irq_save(flags);
-   if (!spin_trylock(adapter-lock)) {
+   if (!spin_trylock_irqsave(adapter-lock, flags)) {
/* Can't get lock - tell upper layer to requeue */
-   local_irq_restore(flags);
dev_printk(KERN_DEBUG, adapter-pdev-dev, tx locked\n);
return NETDEV_TX_LOCKED;
}
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 8ee2c2c..d67f97b 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
 #include asm/io.h
 
 #define DRV_NAME   ehea
-#define DRV_VERSIONEHEA_0072
+#define DRV_VERSIONEHEA_0073
 
 /* eHEA capability flags */
 #define DLPAR_PORT_ADD_REM 1
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 58702f5..9756211 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -1326,7 +1326,6 @@ static void write_swqe2_TSO(struct sk_buff *skb,
u8 *imm_data = swqe-u.immdata_desc.immediate_data[0];
int skb_data_size = skb-len - skb-data_len;
int headersize;
-   u64 tmp_addr;
 
/* Packet is TCP with TSO enabled */
swqe-tx_control |= EHEA_SWQE_TSO;
@@ -1347,9 +1346,8 @@ static void write_swqe2_TSO(struct sk_buff *skb,
/* set sg1entry data */
sg1entry-l_key = lkey;
sg1entry-len = skb_data_size - headersize;
-
-   tmp_addr = (u64)(skb-data + headersize);
-   sg1entry-vaddr = ehea_map_vaddr(tmp_addr);
+   sg1entry-vaddr =
+   ehea_map_vaddr(skb-data + headersize);
swqe-descriptors++;
}
} else
@@ -1362,7 +1360,6 @@ static void write_swqe2_nonTSO(struct sk_buff *skb,
int skb_data_size = skb-len - skb-data_len;
u8 *imm_data = swqe-u.immdata_desc.immediate_data[0];
struct ehea_vsgentry *sg1entry = swqe-u.immdata_desc.sg_entry;
-   u64 tmp_addr;
 
/* Packet is any nonTSO type
 *
@@ -1379,8 +1376,8 @@ static void write_swqe2_nonTSO(struct sk_buff *skb,
/* copy sg1entry data */
sg1entry-l_key = lkey;
sg1entry-len = skb_data_size - SWQE2_MAX_IMM;
-   tmp_addr = 

Re: [git patches] net driver fixes

2007-07-30 Thread Satyam Sharma


On Mon, 30 Jul 2007, Jeff Garzik wrote:

 true, we should just remove the dev==NULL check

Patch below:

[PATCH] nmclan_cs: Remove bogus (dev==NULL) check in mace_interrupt()

The (dev == NULL) check in drivers/net/pcmcia/nmclan_cs.c:mace_interrupt()
handler is always false, so let's remove it.

Signed-off-by: Satyam Sharma [EMAIL PROTECTED]

---

 drivers/net/pcmcia/nmclan_cs.c |6 --
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 73da611..3446be9 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -1000,12 +1000,6 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id)
   int status;
   int IntrCnt = MACE_MAX_IR_ITERATIONS;
 
-  if (dev == NULL) {
-DEBUG(2, mace_interrupt(): irq 0x%X for unknown device.\n,
- irq);
-return IRQ_NONE;
-  }
-
   if (lp-tx_irq_disabled) {
 printk(
   (lp-tx_irq_disabled?
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-07-02 Thread Adrian Bunk
On Mon, Jul 02, 2007 at 10:54:01AM -0400, Jeff Garzik wrote:
...
 maximilian attems (1):
   starfire list alpha as 64 bit arch
...
 --- a/drivers/net/starfire.c
 +++ b/drivers/net/starfire.c
 @@ -152,7 +152,7 @@ static int full_duplex[MAX_UNITS] = {0, };
   * This SUCKS.
   * We need a much better method to determine if dma_addr_t is 64-bit.
   */
 -#if (defined(__i386__)  defined(CONFIG_HIGHMEM64G)) || defined(__x86_64__) 
 || defined (__ia64__) || defined(__mips64__) || (defined(__mips__)  
 defined(CONFIG_HIGHMEM)  defined(CONFIG_64BIT_PHYS_ADDR))
 +#if (defined(__i386__)  defined(CONFIG_HIGHMEM64G)) || defined(__x86_64__) 
 || defined (__ia64__) || defined(__alpha__) || defined(__mips64__) || 
 (defined(__mips__)  defined(CONFIG_HIGHMEM)  
 defined(CONFIG_64BIT_PHYS_ADDR))
  /* 64-bit dma_addr_t */
  #define ADDR_64BITS  /* This chip uses 64 bit addresses. */
  #define netdrv_addr_t u64
...

The patch is correct and definitely the best solution at this time of 
the 2.6.22 development cycle.

But the comment in the context exactly matches what I thought when
I saw this code...

Does anyone have a suggestion how to do this better?

cu
Adrian

-- 

   Is there not promise of rain? Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   Only a promise, Lao Er said.
   Pearl S. Buck - Dragon Seed

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-07-02 Thread Stephen Hemminger
On Tue, 3 Jul 2007 00:13:29 +0200
Adrian Bunk [EMAIL PROTECTED] wrote:

 On Mon, Jul 02, 2007 at 10:54:01AM -0400, Jeff Garzik wrote:
 ...
  maximilian attems (1):
starfire list alpha as 64 bit arch
 ...
  --- a/drivers/net/starfire.c
  +++ b/drivers/net/starfire.c
  @@ -152,7 +152,7 @@ static int full_duplex[MAX_UNITS] = {0, };
* This SUCKS.
* We need a much better method to determine if dma_addr_t is 64-bit.
*/
  -#if (defined(__i386__)  defined(CONFIG_HIGHMEM64G)) || 
  defined(__x86_64__) || defined (__ia64__) || defined(__mips64__) || 
  (defined(__mips__)  defined(CONFIG_HIGHMEM)  
  defined(CONFIG_64BIT_PHYS_ADDR))
  +#if (defined(__i386__)  defined(CONFIG_HIGHMEM64G)) || 
  defined(__x86_64__) || defined (__ia64__) || defined(__alpha__) || 
  defined(__mips64__) || (defined(__mips__)  defined(CONFIG_HIGHMEM)  
  defined(CONFIG_64BIT_PHYS_ADDR))
   /* 64-bit dma_addr_t */
   #define ADDR_64BITS/* This chip uses 64 bit addresses. */
   #define netdrv_addr_t u64
 ...
 
 The patch is correct and definitely the best solution at this time of 
 the 2.6.22 development cycle.
 
 But the comment in the context exactly matches what I thought when
 I saw this code...
 
 Does anyone have a suggestion how to do this better?
 
 cu
 Adrian
 

Yeah, write code that handles it in compiler. Like:
if (sizeof(dma_addr_t)  sizeof(u32)) {
do something...
}
That means that it gets checked even if optimizer removes it as
unneeded.

-- 
Stephen Hemminger [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-06-12 Thread Jeff Garzik

This is a resend of the submission from June 9th, along with added stuff:
* big update to new (in 2.6.22) wireless driver libertas
* revert e100 's-bit' change; see commit message for more info
* more myri, NetXen fixes

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

to receive the following updates:

 drivers/net/e100.c |   72 ++-
 drivers/net/ehea/ehea.h|2 +-
 drivers/net/ehea/ehea_main.c   |   12 +-
 drivers/net/ibmveth.c  |   80 +-
 drivers/net/myri10ge/myri10ge.c|   29 +-
 drivers/net/netxen/netxen_nic.h|   48 +-
 drivers/net/netxen/netxen_nic_ethtool.c|8 +-
 drivers/net/netxen/netxen_nic_hw.c |   12 +-
 drivers/net/netxen/netxen_nic_init.c   |   44 +-
 drivers/net/netxen/netxen_nic_isr.c|   24 +
 drivers/net/netxen/netxen_nic_main.c   |7 +
 drivers/net/netxen/netxen_nic_niu.c|8 +-
 drivers/net/phy/marvell.c  |   62 +-
 drivers/net/usb/Kconfig|4 +-
 drivers/net/via-velocity.c |2 +-
 drivers/net/wireless/Kconfig   |   19 +-
 drivers/net/wireless/libertas/11d.c|  152 ++--
 drivers/net/wireless/libertas/11d.h|6 +-
 drivers/net/wireless/libertas/Makefile |4 +-
 drivers/net/wireless/libertas/README   |   52 +-
 drivers/net/wireless/libertas/assoc.c  |  358 +---
 drivers/net/wireless/libertas/assoc.h  |   10 +-
 drivers/net/wireless/libertas/cmd.c|  559 +--
 drivers/net/wireless/libertas/cmdresp.c|  376 
 drivers/net/wireless/libertas/debugfs.c|  432 
 drivers/net/wireless/libertas/decl.h   |   20 +-
 drivers/net/wireless/libertas/defs.h   |  101 ++-
 drivers/net/wireless/libertas/dev.h|   99 +-
 drivers/net/wireless/libertas/ethtool.c|   55 +-
 drivers/net/wireless/libertas/fw.c |  111 +--
 drivers/net/wireless/libertas/fw.h |   13 -
 drivers/net/wireless/libertas/host.h   |   17 +-
 drivers/net/wireless/libertas/hostcmd.h|  392 
 drivers/net/wireless/libertas/if_bootcmd.c |6 +-
 drivers/net/wireless/libertas/if_usb.c |  448 +
 drivers/net/wireless/libertas/if_usb.h |   32 +-
 drivers/net/wireless/libertas/ioctl.c  |  286 --
 drivers/net/wireless/libertas/join.c   |  464 -
 drivers/net/wireless/libertas/join.h   |   13 +-
 drivers/net/wireless/libertas/main.c   |  690 ++---
 drivers/net/wireless/libertas/rx.c |   64 +-
 drivers/net/wireless/libertas/sbi.h|   40 -
 drivers/net/wireless/libertas/scan.c   | 1529 +---
 drivers/net/wireless/libertas/scan.h   |   81 +-
 drivers/net/wireless/libertas/thread.h |8 +-
 drivers/net/wireless/libertas/tx.c |   74 +-
 drivers/net/wireless/libertas/types.h  |   63 +-
 drivers/net/wireless/libertas/wext.c   |  778 ---
 drivers/net/wireless/libertas/wext.h   |   13 +-
 49 files changed, 4001 insertions(+), 3778 deletions(-)
 delete mode 100644 drivers/net/wireless/libertas/fw.h
 delete mode 100644 drivers/net/wireless/libertas/sbi.h

Brian King (2):
  ibmveth: Fix h_free_logical_lan error on pool resize
  ibmveth: Automatically enable larger rx buffer pools for larger mtu

Brice Goglin (3):
  myri10ge: limit the number of recoveries
  myri10ge: report when the link partner is running in Myrinet mode
  myri10ge: update driver version

Chris Ball (1):
  libertas: wakeup both mesh and normal wakeup when getting out of scan

Dan Williams (26):
  libertas: call SET_NETDEV_DEV from common code
  libertas: replace 'macaddress' with 'bssid'
  libertas: correctly unregister mesh netdev on error
  libertas: don't tear down netdev in libertas_activate_card
  libertas: make scan result handling more flexible
  libertas: fix 'keep previous scan' behavior
  libertas: move channel changing into association framework
  libertas: make association paths consistent
  libertas: use MAC_FMT and MAC_ARG where appropriate
  libertas: use compare_ether_addr() rather than memcmp() where appropriate
  libertas: fix debug enter/leave prints for libertas_execute_next_command
  libertas: correctly balance locking in libertas_process_rx_command
  libertas: correct error report paths for wlan_fwt_list_ioctl
  libertas: fix deadlock SIOCGIWSCAN handler
  libertas: fix default adhoc channel
  libertas: honor specific channel requests during association
  libertas: send SIOCGIWSCAN event after partial scans too
  libertas: debug print spacing fixes in assoc.c
  libertas: add more verbose debugging to libertas_cmd_80211_authenticate
  libertas: Make WPA work through supplicant handshake
  libertas: sparse fixes
  

[git patches] net driver fixes

2007-06-09 Thread Jeff Garzik

A big batch of fixes for the newly added libertas wireless driver is
coming soon, too.

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

to receive the following updates:

 drivers/net/ehea/ehea.h |2 +-
 drivers/net/ehea/ehea_main.c|   12 ++---
 drivers/net/ibmveth.c   |   80 +--
 drivers/net/netxen/netxen_nic.h |   47 +-
 drivers/net/netxen/netxen_nic_ethtool.c |8 ++--
 drivers/net/netxen/netxen_nic_hw.c  |   12 ++--
 drivers/net/netxen/netxen_nic_init.c|   23 +
 drivers/net/netxen/netxen_nic_main.c|7 +++
 drivers/net/netxen/netxen_nic_niu.c |8 +--
 drivers/net/phy/marvell.c   |   62 +---
 drivers/net/usb/Kconfig |4 +-
 drivers/net/via-velocity.c  |2 +-
 12 files changed, 172 insertions(+), 95 deletions(-)

Brian King (2):
  ibmveth: Fix h_free_logical_lan error on pool resize
  ibmveth: Automatically enable larger rx buffer pools for larger mtu

Dave Jones (1):
  typo in via-velocity.c

Kim Phillips (1):
  phylib: add RGMII-ID mode to the Marvell m88e PHY to fix broken 
ucc_geth

Mithlesh Thukral (2):
  NetXen: Fix ping issue after reboot on Blades with 3.4.19 firmware
  NetXen: Fix compile failure seen on PPC architecture

Sam Ravnborg (1):
  net: fix typo in drivers/net/usb/Kconfig

Thomas Klein (1):
  ehea: Fixed possible kernel panic on VLAN packet recv

diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index e85a933..c0f81b5 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
 #include asm/io.h
 
 #define DRV_NAME   ehea
-#define DRV_VERSIONEHEA_0061
+#define DRV_VERSIONEHEA_0064
 
 #define EHEA_MSG_DEFAULT (NETIF_MSG_LINK | NETIF_MSG_TIMER \
| NETIF_MSG_RX_ERR | NETIF_MSG_TX_ERR)
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 152bb20..9e13433 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -451,7 +451,8 @@ static struct ehea_cqe *ehea_proc_rwqes(struct net_device 
*dev,
processed_rq3++;
}
 
-   if (cqe-status  EHEA_CQE_VLAN_TAG_XTRACT)
+   if ((cqe-status  EHEA_CQE_VLAN_TAG_XTRACT)
+port-vgrp)
vlan_hwaccel_receive_skb(skb, port-vgrp,
 cqe-vlan_tag);
else
@@ -1910,10 +1911,7 @@ static void ehea_vlan_rx_register(struct net_device *dev,
goto out;
}
 
-   if (grp)
-   memset(cb1-vlan_filter, 0, sizeof(cb1-vlan_filter));
-   else
-   memset(cb1-vlan_filter, 0xFF, sizeof(cb1-vlan_filter));
+   memset(cb1-vlan_filter, 0, sizeof(cb1-vlan_filter));
 
hret = ehea_h_modify_ehea_port(adapter-handle, port-logical_port_id,
   H_PORT_CB1, H_PORT_CB1_ALL, cb1);
@@ -1947,7 +1945,7 @@ static void ehea_vlan_rx_add_vid(struct net_device *dev, 
unsigned short vid)
}
 
index = (vid / 64);
-   cb1-vlan_filter[index] |= ((u64)(1  (vid  0x3F)));
+   cb1-vlan_filter[index] |= ((u64)(0x8000  (vid  0x3F)));
 
hret = ehea_h_modify_ehea_port(adapter-handle, port-logical_port_id,
   H_PORT_CB1, H_PORT_CB1_ALL, cb1);
@@ -1982,7 +1980,7 @@ static void ehea_vlan_rx_kill_vid(struct net_device *dev, 
unsigned short vid)
}
 
index = (vid / 64);
-   cb1-vlan_filter[index] = ~((u64)(1  (vid  0x3F)));
+   cb1-vlan_filter[index] = ~((u64)(0x8000  (vid  0x3F)));
 
hret = ehea_h_modify_ehea_port(adapter-handle, port-logical_port_id,
   H_PORT_CB1, H_PORT_CB1_ALL, cb1);
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 3bec0f7..6ec3d50 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -915,17 +915,36 @@ static int ibmveth_change_mtu(struct net_device *dev, int 
new_mtu)
 {
struct ibmveth_adapter *adapter = dev-priv;
int new_mtu_oh = new_mtu + IBMVETH_BUFF_OH;
-   int i;
+   int reinit = 0;
+   int i, rc;
 
if (new_mtu  IBMVETH_MAX_MTU)
return -EINVAL;
 
+   for (i = 0; i  IbmVethNumBufferPools; i++)
+   if (new_mtu_oh  adapter-rx_buff_pool[i].buff_size)
+   break;
+
+   if (i == IbmVethNumBufferPools)
+   return -EINVAL;
+
/* Look for an active buffer pool that can hold the new MTU */
for(i = 0; iIbmVethNumBufferPools; i++) {
-   if (!adapter-rx_buff_pool[i].active)
-   continue;
+   if 

[git patches] net driver fixes

2007-06-03 Thread Jeff Garzik

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

to receive the following updates:

 MAINTAINERS  |9 ++-
 drivers/net/8139cp.c |   17 +++---
 drivers/net/acenic.c |   21 ++---
 drivers/net/acenic.h |1 -
 drivers/net/amd8111e.c   |   11 +
 drivers/net/atl1/atl1_main.c |   33 +---
 drivers/net/bnx2.c   |   14 
 drivers/net/chelsio/cxgb2.c  |   10 
 drivers/net/cxgb3/cxgb3_main.c   |6 -
 drivers/net/e1000/e1000_main.c   |   11 ++---
 drivers/net/forcedeth.c  |8 +--
 drivers/net/gianfar.c|   16 -
 drivers/net/myri10ge/myri10ge.c  |1 +
 drivers/net/netxen/netxen_nic_main.c |2 -
 drivers/net/ns83820.c|   12 --
 drivers/net/qla3xxx.c|2 +-
 drivers/net/r8169.c  |   11 -
 drivers/net/s2io.c   |   12 --
 drivers/net/sky2.c   |   31 +++---
 drivers/net/smc91x.h |5 +---
 drivers/net/spider_net.c |   40 --
 drivers/net/tg3.c|   16 -
 drivers/net/typhoon.c|   11 +
 net/8021q/vlan.c |   10 ++--
 24 files changed, 45 insertions(+), 265 deletions(-)

Auke Kok (1):
  e1000: disable polling before registering netdevice

Brice Goglin (1):
  myri10ge: report link up/down in standard ethtool way

Li Yang (1):
  NET: add MAINTAINERS entry for ucc_geth driver

Mithlesh Thukral (1):
  NetXen: Removal of extra free_irq call

Paul Mundt (1):
  smc91x: sh solution engine fixes.

Stephen Hemminger (6):
  qla3xxx: device doesnt do hardware checksumming.
  VLAN: kill_vid is only useful for VLAN filtering devices
  sky2: Fix VLAN unregistration
  8139cp: fix VLAN unregistration
  atl1: eliminate unneeded kill_vid code
  network drivers: eliminate unneeded kill_vid code

Valerie Henson (1):
  Update tulip maintainer email address

diff --git a/MAINTAINERS b/MAINTAINERS
index 124b950..f3b5a39 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1487,6 +1487,13 @@ L:   [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
 S: Maintained
 
+FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
+P: Li Yang
+M: [EMAIL PROTECTED]
+L: netdev@vger.kernel.org
+L: [EMAIL PROTECTED]
+S: Maintained
+
 FILE LOCKING (flock() and fcntl()/lockf())
 P: Matthew Wilcox
 M: [EMAIL PROTECTED]
@@ -3545,7 +3552,7 @@ S:Maintained
 
 TULIP NETWORK DRIVER
 P: Valerie Henson
-M: [EMAIL PROTECTED]
+M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
 W: http://sourceforge.net/projects/tulip/
 S: Maintained
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index e8c9f27..a804965 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -435,20 +435,12 @@ static void cp_vlan_rx_register(struct net_device *dev, 
struct vlan_group *grp)
 
spin_lock_irqsave(cp-lock, flags);
cp-vlgrp = grp;
-   cp-cpcmd |= RxVlanOn;
-   cpw16(CpCmd, cp-cpcmd);
-   spin_unlock_irqrestore(cp-lock, flags);
-}
-
-static void cp_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
-{
-   struct cp_private *cp = netdev_priv(dev);
-   unsigned long flags;
+   if (grp)
+   cp-cpcmd |= RxVlanOn;
+   else
+   cp-cpcmd = ~RxVlanOn;
 
-   spin_lock_irqsave(cp-lock, flags);
-   cp-cpcmd = ~RxVlanOn;
cpw16(CpCmd, cp-cpcmd);
-   vlan_group_set_device(cp-vlgrp, vid, NULL);
spin_unlock_irqrestore(cp-lock, flags);
 }
 #endif /* CP_VLAN_TAG_USED */
@@ -1944,7 +1936,6 @@ static int cp_init_one (struct pci_dev *pdev, const 
struct pci_device_id *ent)
 #if CP_VLAN_TAG_USED
dev-features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
dev-vlan_rx_register = cp_vlan_rx_register;
-   dev-vlan_rx_kill_vid = cp_vlan_rx_kill_vid;
 #endif
 
if (pci_using_dac)
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 7122b7b..04382f9 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -480,12 +480,10 @@ static int __devinit acenic_probe_one(struct pci_dev 
*pdev,
 #if ACENIC_DO_VLAN
dev-features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
dev-vlan_rx_register = ace_vlan_rx_register;
-   dev-vlan_rx_kill_vid = ace_vlan_rx_kill_vid;
 #endif
-   if (1) {
-   dev-tx_timeout = ace_watchdog;
-   dev-watchdog_timeo = 5*HZ;
-   }
+
+   dev-tx_timeout = ace_watchdog;
+   dev-watchdog_timeo = 5*HZ;
 
dev-open = ace_open;
dev-stop = ace_close;
@@ -2283,19 +2281,6 @@ static void 

[git patches] net driver fixes

2007-05-30 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/defxx.c |1 +
 drivers/net/e1000/e1000_main.c  |9 +++-
 drivers/net/ehea/ehea.h |2 +-
 drivers/net/ehea/ehea_main.c|2 +-
 drivers/net/sky2.c  |6 ++--
 drivers/net/sky2.h  |   24 +--
 drivers/net/wireless/hostap/hostap_80211_tx.c   |   13 +++
 drivers/net/wireless/prism54/islpci_eth.c   |5 ++-
 net/ieee80211/ieee80211_module.c|2 +-
 net/ieee80211/softmac/ieee80211softmac_module.c |5 +++-
 10 files changed, 31 insertions(+), 38 deletions(-)

Akinobu Mita (2):
  ieee80211: fix incomplete error message
  softmac: alloc_ieee80211() NULL check

Björn Steinbrink (1):
  prism54: fix monitor mode oops

Brandon Craig Rhodes (1):
  hostap: Allocate enough tailroom for TKIP

Herbert Xu (1):
  e1000: restore netif_poll_enable call but make sure IRQs are off

Maciej W. Rozycki (1):
  defxx: Fix the handling of ioremap() failures

Stephen Hemminger (4):
  sky2: dont set bogus bit in PHY register
  sky2: checksum offload plus vlan bug
  sky2: program proper register for fiber PHY
  sky2: enable IRQ on duplex renegotiation

Thomas Klein (1):
  ehea: Fixed multi queue RX bug

diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index 571d82f..7df23dc 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -566,6 +566,7 @@ static int __devinit dfx_register(struct device *bdev)
bp-base.mem = ioremap_nocache(bar_start, bar_len);
if (!bp-base.mem) {
printk(KERN_ERR %s: Cannot map MMIO\n, print_name);
+   err = -ENOMEM;
goto err_out_region;
}
} else {
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index cbc7feb..9ec35b7 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1325,7 +1325,10 @@ e1000_sw_init(struct e1000_adapter *adapter)
spin_lock_init(adapter-tx_queue_lock);
 #endif
 
-   atomic_set(adapter-irq_sem, 1);
+   /* Explicitly disable IRQ since the NIC can be in any state. */
+   atomic_set(adapter-irq_sem, 0);
+   e1000_irq_disable(adapter);
+
spin_lock_init(adapter-stats_lock);
 
set_bit(__E1000_DOWN, adapter-flags);
@@ -1431,6 +1434,10 @@ e1000_open(struct net_device *netdev)
/* From here on the code is the same as e1000_up() */
clear_bit(__E1000_DOWN, adapter-flags);
 
+#ifdef CONFIG_E1000_NAPI
+   netif_poll_enable(netdev);
+#endif
+
e1000_irq_enable(adapter);
 
/* fire a link status change interrupt to start the watchdog */
diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 602872d..e85a933 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
 #include asm/io.h
 
 #define DRV_NAME   ehea
-#define DRV_VERSIONEHEA_0058
+#define DRV_VERSIONEHEA_0061
 
 #define EHEA_MSG_DEFAULT (NETIF_MSG_LINK | NETIF_MSG_TIMER \
| NETIF_MSG_RX_ERR | NETIF_MSG_TX_ERR)
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index f6e0cb1..152bb20 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -428,7 +428,7 @@ static struct ehea_cqe *ehea_proc_rwqes(struct net_device 
*dev,
}
skb_copy_to_linear_data(skb, ((char*)cqe) + 64,
   cqe-num_bytes_transfered - 4);
-   ehea_fill_skb(dev, skb, cqe);
+   ehea_fill_skb(port-netdev, skb, cqe);
} else if (rq == 2) {  /* RQ2 */
skb = get_skb_by_index(skb_arr_rq2,
   skb_arr_rq2_len, cqe);
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 832fd69..adfbe81 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -364,7 +364,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port)
/* for SFP-module set SIGDET polarity to low */
ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL);
ctrl |= PHY_M_FIB_SIGD_POL;
-   gm_phy_write(hw, port, PHY_MARV_CTRL, ctrl);
+   gm_phy_write(hw, port, PHY_MARV_PHY_CTRL, ctrl);
}
 
gm_phy_write(hw, port, PHY_MARV_EXT_ADR, pg);
@@ -658,7 +658,7 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port)
const u8 *addr = hw-dev[port]-dev_addr;
 
sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET);
-   

[git patches] net driver fixes

2007-05-24 Thread Jeff Garzik

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

to receive the following updates:

 arch/mips/sgi-ip32/Makefile |2 +-
 arch/mips/sgi-ip32/ip32-platform.c  |   20 +
 drivers/net/Kconfig |2 +-
 drivers/net/chelsio/suni1x10gexp_regs.h |2 +-
 drivers/net/forcedeth.c |2 +-
 drivers/net/meth.c  |   68 --
 drivers/net/phy/fixed.c |4 ++
 drivers/net/spider_net.c|6 +-
 drivers/net/ucc_geth.c  |3 -
 drivers/net/ucc_geth_mii.c  |2 -
 drivers/net/usb/asix.c  |4 ++
 drivers/net/wireless/libertas/decl.h|2 +-
 drivers/net/wireless/libertas/fw.c  |   14 --
 drivers/net/wireless/libertas/rx.c  |   24 ++-
 14 files changed, 95 insertions(+), 60 deletions(-)
 create mode 100644 arch/mips/sgi-ip32/ip32-platform.c

Ayaz Abdulla (1):
  forcedeth: fix cpu irq mask

David Hollis (1):
  asix.c - Add Belkin F5D5055 ids

Denver Gingerich (1):
  fix compiler warning in fixed.c

Eugene Teo (2):
  drivers/net/wireless/libertas/fw.c: fix use-before-check
  drivers/net/wireless/libertas/rx.c: fix use-after-free

Florin Malita (2):
  libertas: skb dereferenced after netif_rx
  spidernet: skb used after netif_receive_skb

Li Yang (2):
  ucc_geth: Fix MODULE_DEVICE_TABLE() duplication
  ucc_geth:trivial fix

Mariusz Kozlowski (1):
  chelsio parenthesis fix

Ralf Baechle (1):
  meth driver renovation

Yoichi Yuasa (1):
  remove unnecessary dependency on VIA velocity config

diff --git a/arch/mips/sgi-ip32/Makefile b/arch/mips/sgi-ip32/Makefile
index 7e14167..60f0227 100644
--- a/arch/mips/sgi-ip32/Makefile
+++ b/arch/mips/sgi-ip32/Makefile
@@ -3,5 +3,5 @@
 # under Linux.
 #
 
-obj-y  += ip32-berr.o ip32-irq.o ip32-setup.o ip32-reset.o \
+obj-y  += ip32-berr.o ip32-irq.o ip32-platform.o ip32-setup.o ip32-reset.o \
   crime.o ip32-memory.o
diff --git a/arch/mips/sgi-ip32/ip32-platform.c 
b/arch/mips/sgi-ip32/ip32-platform.c
new file mode 100644
index 000..120b159
--- /dev/null
+++ b/arch/mips/sgi-ip32/ip32-platform.c
@@ -0,0 +1,20 @@
+#include linux/init.h
+#include linux/platform_device.h
+
+static __init int meth_devinit(void)
+{
+   struct platform_device *pd;
+   int ret;
+
+   pd = platform_device_alloc(meth, -1);
+   if (!pd)
+   return -ENOMEM;
+
+   ret = platform_device_add(pd);
+   if (ret)
+   platform_device_put(pd);
+
+   return ret;
+}
+
+device_initcall(meth_devinit);
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index c5baa19..30fd479 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2218,7 +2218,7 @@ config SK98LIN
 
 config VIA_VELOCITY
tristate VIA Velocity support
-   depends on NET_PCI  PCI
+   depends on PCI
select CRC32
select CRC_CCITT
select MII
diff --git a/drivers/net/chelsio/suni1x10gexp_regs.h 
b/drivers/net/chelsio/suni1x10gexp_regs.h
index 269d097..d0f87d8 100644
--- a/drivers/net/chelsio/suni1x10gexp_regs.h
+++ b/drivers/net/chelsio/suni1x10gexp_regs.h
@@ -105,7 +105,7 @@
 #define mSUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_LOW(filterId) (0x204A + 
mSUNI1x10GEXP_MAC_FILTER_OFFSET(filterId))
 #define mSUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_MID(filterId) (0x204B + 
mSUNI1x10GEXP_MAC_FILTER_OFFSET(filterId))
 #define mSUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_HIGH(filterId)(0x204C + 
mSUNI1x10GEXP_MAC_FILTER_OFFSET(filterId))
-#define mSUNI1x10GEXP_REG_RXXG_EXACT_MATCH_VID(filterId)  (0x2062 + 
mSUNI1x10GEXP_MAC_VID_FILTER_OFFSET(filterId)
+#define mSUNI1x10GEXP_REG_RXXG_EXACT_MATCH_VID(filterId)  (0x2062 + 
mSUNI1x10GEXP_MAC_VID_FILTER_OFFSET(filterId))
 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_0_LOW 0x204A
 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_0_MID 0x204B
 #define SUNI1x10GEXP_REG_RXXG_EXACT_MATCH_ADDR_0_HIGH0x204C
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 7a01802..4154fd0 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -195,7 +195,7 @@ enum {
 #define NVREG_IRQ_TX_FORCED0x0100
 #define NVREG_IRQ_RECOVER_ERROR0x8000
 #define NVREG_IRQMASK_THROUGHPUT   0x00df
-#define NVREG_IRQMASK_CPU  0x0040
+#define NVREG_IRQMASK_CPU  0x0060
 #define NVREG_IRQ_TX_ALL   
(NVREG_IRQ_TX_ERR|NVREG_IRQ_TX_OK|NVREG_IRQ_TX_FORCED)
 #define NVREG_IRQ_RX_ALL   
(NVREG_IRQ_RX_ERROR|NVREG_IRQ_RX|NVREG_IRQ_RX_NOBUF|NVREG_IRQ_RX_FORCED)
 #define NVREG_IRQ_OTHER
(NVREG_IRQ_TIMER|NVREG_IRQ_LINK|NVREG_IRQ_RECOVER_ERROR)
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index 0343ea1..92b403b 100644
--- 

[git patches] net driver fixes

2007-05-21 Thread Jeff Garzik

Two fixes and a one-line constant addition.

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

to receive the following updates:

 drivers/net/declance.c |2 --
 drivers/net/e1000/e1000_main.c |4 
 include/linux/if_ether.h   |1 +
 3 files changed, 1 insertions(+), 6 deletions(-)

Auke Kok (2):
  e1000: Don't enable polling in open() (was: e1000: assertion hit in 
e1000_clean(), kernel 2.6.21.1)
  Add constant for FCS/CRC length (frame check sequence)

Maciej W. Rozycki (1):
  declance: Remove a dangling spin_unlock_irq() thingy

diff --git a/drivers/net/declance.c b/drivers/net/declance.c
index 95d854e..b2577f4 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -932,8 +932,6 @@ static int lance_start_xmit(struct sk_buff *skb, struct 
net_device *dev)
/* Kick the lance: transmit now */
writereg(ll-rdp, LE_C0_INEA | LE_C0_TDMD);
 
-   spin_unlock_irq(lp-lock);
-
dev-trans_start = jiffies;
dev_kfree_skb(skb);
 
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 49be393..cbc7feb 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1431,10 +1431,6 @@ e1000_open(struct net_device *netdev)
/* From here on the code is the same as e1000_up() */
clear_bit(__E1000_DOWN, adapter-flags);
 
-#ifdef CONFIG_E1000_NAPI
-   netif_poll_enable(netdev);
-#endif
-
e1000_irq_enable(adapter);
 
/* fire a link status change interrupt to start the watchdog */
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index 1db774c..3213f6f 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
@@ -33,6 +33,7 @@
 #define ETH_ZLEN   60  /* Min. octets in frame sans FCS */
 #define ETH_DATA_LEN   1500/* Max. octets in payload*/
 #define ETH_FRAME_LEN  1514/* Max. octets in frame sans FCS */
+#define ETH_FCS_LEN4   /* Octets in the FCS */
 
 /*
  * These are the defined Ethernet Protocol ID's.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-05-17 Thread Jeff Garzik

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

to receive the following updates:

 Documentation/networking/netdevices.txt |2 +-
 drivers/net/e1000/e1000.h   |4 +-
 drivers/net/e1000/e1000_main.c  |   39 ++---
 drivers/net/gianfar.c   |   11 +
 drivers/net/ibm_emac/ibm_emac_core.c|2 +-
 drivers/net/ibm_emac/ibm_emac_mal.c |3 +-
 drivers/net/ibm_emac/ibm_emac_mal.h |3 +-
 drivers/net/ibm_emac/ibm_emac_phy.c |   60 ---
 drivers/net/ibm_emac/ibm_emac_rgmii.c   |2 +-
 drivers/net/ibm_emac/ibm_emac_rgmii.h   |2 +-
 drivers/net/ibm_emac/ibm_emac_tah.c |2 +-
 drivers/net/ibm_emac/ibm_emac_tah.h |2 +-
 drivers/net/ibm_emac/ibm_emac_zmii.c|2 +-
 drivers/net/ibm_emac/ibm_emac_zmii.h|2 +-
 drivers/net/ixgb/ixgb.h |2 -
 drivers/net/ixgb/ixgb_main.c|   36 +++-
 drivers/net/netxen/netxen_nic_init.c|2 +-
 drivers/net/sky2.c  |   69 ---
 drivers/net/spider_net.c|3 +-
 19 files changed, 125 insertions(+), 123 deletions(-)

Auke Kok (2):
  ixgb: don't print error if pci_enable_msi() fails, cleanup minor leak
  e1000: Fix msi enable leak on error, don't print error message, cleanup

Christoph Hellwig (2):
  small netdevices.txt fix
  spidernet: node-aware skbuff allocation

Eugene Surovegin (3):
  ibm_emac: fix section mismatch warnings
  ibm_emac: improved PHY support
  ibm_emac: fix link speed detection change

Mithlesh Thukral (1):
  NetXen: Fix NetXen driver ping on system-p

Scott Wood (1):
  gianfar: Add I/O barriers when touching buffer descriptor ownership.

Stephen Hemminger (6):
  sky2: remove Gigabyte 88e8056 restriction
  sky2: PHY register settings
  sky2: keep track of receive alloc failures
  sky2: MIB counter overflow handling
  sky2: remove dual port workaround
  sky2: memory barriers change

diff --git a/Documentation/networking/netdevices.txt 
b/Documentation/networking/netdevices.txt
index 847cedb..ce1361f 100644
--- a/Documentation/networking/netdevices.txt
+++ b/Documentation/networking/netdevices.txt
@@ -49,7 +49,7 @@ dev-hard_start_xmit:
for this and return -1 when the spin lock fails. 
The locking there should also properly protect against 
set_multicast_list
-   Context: BHs disabled
+   Context: Process with BHs disabled or BH (timer).
Notes: netif_queue_stopped() is guaranteed false
Interrupts must be enabled when calling hard_start_xmit.
 (Interrupts must also be enabled when enabling the BH handler.)
diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h
index a9ea67e..16a6edf 100644
--- a/drivers/net/e1000/e1000.h
+++ b/drivers/net/e1000/e1000.h
@@ -333,11 +333,9 @@ struct e1000_adapter {
struct e1000_tx_ring test_tx_ring;
struct e1000_rx_ring test_rx_ring;
 
-
int msg_enable;
-#ifdef CONFIG_PCI_MSI
boolean_t have_msi;
-#endif
+
/* to not mess up cache alignment, always add to the bottom */
boolean_t tso_force;
boolean_t smart_power_down; /* phy smart power down */
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 637ae8f..49be393 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -158,9 +158,7 @@ static struct net_device_stats * e1000_get_stats(struct 
net_device *netdev);
 static int e1000_change_mtu(struct net_device *netdev, int new_mtu);
 static int e1000_set_mac(struct net_device *netdev, void *p);
 static irqreturn_t e1000_intr(int irq, void *data);
-#ifdef CONFIG_PCI_MSI
 static irqreturn_t e1000_intr_msi(int irq, void *data);
-#endif
 static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter,
 struct e1000_tx_ring *tx_ring);
 #ifdef CONFIG_E1000_NAPI
@@ -300,31 +298,26 @@ module_exit(e1000_exit_module);
 static int e1000_request_irq(struct e1000_adapter *adapter)
 {
struct net_device *netdev = adapter-netdev;
-   int flags, err = 0;
+   void (*handler) = e1000_intr;
+   int irq_flags = IRQF_SHARED;
+   int err;
 
-   flags = IRQF_SHARED;
-#ifdef CONFIG_PCI_MSI
if (adapter-hw.mac_type = e1000_82571) {
-   adapter-have_msi = TRUE;
-   if ((err = pci_enable_msi(adapter-pdev))) {
-   DPRINTK(PROBE, ERR,
-Unable to allocate MSI interrupt Error: %d\n, err);
-   adapter-have_msi = FALSE;
+   adapter-have_msi = !pci_enable_msi(adapter-pdev);
+   if (adapter-have_msi) {
+   handler = e1000_intr_msi;
+   irq_flags = 0;
}
}
-   

[git patches] net driver fixes

2007-05-15 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/pasemi_mac.c   |   45 +++
 drivers/net/pasemi_mac.h   |4 +-
 drivers/net/smc911x.c  |6 +---
 drivers/net/ucc_geth.c |   40 +++---
 drivers/net/ucc_geth_mii.c |9 ---
 drivers/net/ucc_geth_mii.h |   10 
 6 files changed, 58 insertions(+), 56 deletions(-)

Kim Phillips (1):
  ucc_geth: eliminate max-speed, change interface-type to 
phy-connection-type

Olof Johansson (1):
  pasemi_mac: Interrupt ack fixes

Vitaly Wool (1):
  smc911x: fix compilation breakage

[EMAIL PROTECTED] (3):
  pasemi_mac: Fix register defines
  pasemi_mac: Terminate PCI ID list
  pasemi_mac: Fix local-mac-address parsing

diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index bc7f3de..8d38425 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -85,6 +85,7 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac)
 {
struct pci_dev *pdev = mac-pdev;
struct device_node *dn = pci_device_to_OF_node(pdev);
+   int len;
const u8 *maddr;
u8 addr[6];
 
@@ -94,9 +95,17 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac)
return -ENOENT;
}
 
-   maddr = of_get_property(dn, local-mac-address, NULL);
+   maddr = of_get_property(dn, local-mac-address, len);
+
+   if (maddr  len == 6) {
+   memcpy(mac-mac_addr, maddr, 6);
+   return 0;
+   }
+
+   /* Some old versions of firmware mistakenly uses mac-address
+* (and as a string) instead of a byte array in local-mac-address.
+*/
 
-   /* Fall back to mac-address for older firmware */
if (maddr == NULL)
maddr = of_get_property(dn, mac-address, NULL);
 
@@ -106,6 +115,7 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac)
return -ENOENT;
}
 
+
if (sscanf(maddr, %hhx:%hhx:%hhx:%hhx:%hhx:%hhx, addr[0],
   addr[1], addr[2], addr[3], addr[4], addr[5]) != 6) {
dev_warn(pdev-dev,
@@ -113,7 +123,8 @@ static int pasemi_get_mac_addr(struct pasemi_mac *mac)
return -EINVAL;
}
 
-   memcpy(mac-mac_addr, addr, sizeof(addr));
+   memcpy(mac-mac_addr, addr, 6);
+
return 0;
 }
 
@@ -384,17 +395,14 @@ static void pasemi_mac_replenish_rx_ring(struct 
net_device *dev)
 
 static void pasemi_mac_restart_rx_intr(struct pasemi_mac *mac)
 {
-   unsigned int reg, stat;
+   unsigned int reg, pcnt;
/* Re-enable packet count interrupts: finally
 * ack the packet count interrupt we got in rx_intr.
 */
 
-   pci_read_config_dword(mac-iob_pdev,
- PAS_IOB_DMA_RXCH_STAT(mac-dma_rxch),
- stat);
+   pcnt = *mac-rx_status  PAS_STATUS_PCNT_M;
 
-   reg = PAS_IOB_DMA_RXCH_RESET_PCNT(stat  PAS_IOB_DMA_RXCH_STAT_CNTDEL_M)
-   | PAS_IOB_DMA_RXCH_RESET_PINTC;
+   reg = PAS_IOB_DMA_RXCH_RESET_PCNT(pcnt) | PAS_IOB_DMA_RXCH_RESET_PINTC;
 
pci_write_config_dword(mac-iob_pdev,
   PAS_IOB_DMA_RXCH_RESET(mac-dma_rxch),
@@ -403,14 +411,12 @@ static void pasemi_mac_restart_rx_intr(struct pasemi_mac 
*mac)
 
 static void pasemi_mac_restart_tx_intr(struct pasemi_mac *mac)
 {
-   unsigned int reg, stat;
+   unsigned int reg, pcnt;
 
/* Re-enable packet count interrupts */
-   pci_read_config_dword(mac-iob_pdev,
- PAS_IOB_DMA_TXCH_STAT(mac-dma_txch), stat);
+   pcnt = *mac-tx_status  PAS_STATUS_PCNT_M;
 
-   reg = PAS_IOB_DMA_TXCH_RESET_PCNT(stat  PAS_IOB_DMA_TXCH_STAT_CNTDEL_M)
-   | PAS_IOB_DMA_TXCH_RESET_PINTC;
+   reg = PAS_IOB_DMA_TXCH_RESET_PCNT(pcnt) | PAS_IOB_DMA_TXCH_RESET_PINTC;
 
pci_write_config_dword(mac-iob_pdev,
   PAS_IOB_DMA_TXCH_RESET(mac-dma_txch), reg);
@@ -591,21 +597,24 @@ static irqreturn_t pasemi_mac_tx_intr(int irq, void *data)
 {
struct net_device *dev = data;
struct pasemi_mac *mac = netdev_priv(dev);
-   unsigned int reg;
+   unsigned int reg, pcnt;
 
if (!(*mac-tx_status  PAS_STATUS_CAUSE_M))
return IRQ_NONE;
 
pasemi_mac_clean_tx(mac);
 
-   reg = PAS_IOB_DMA_TXCH_RESET_PINTC;
+   pcnt = *mac-tx_status  PAS_STATUS_PCNT_M;
+
+   reg = PAS_IOB_DMA_TXCH_RESET_PCNT(pcnt) | PAS_IOB_DMA_TXCH_RESET_PINTC;
 
if (*mac-tx_status  PAS_STATUS_SOFT)
reg |= PAS_IOB_DMA_TXCH_RESET_SINTC;
if (*mac-tx_status  PAS_STATUS_ERROR)
reg |= PAS_IOB_DMA_TXCH_RESET_DINTC;
 
-   pci_write_config_dword(mac-iob_pdev, 
PAS_IOB_DMA_TXCH_RESET(mac-dma_txch),
+   

[git patches] net driver fixes

2007-04-27 Thread Jeff Garzik

As mentioned previously, the big batch queued for 2.6.22 is coming
after the dust settles.


[EMAIL PROTECTED] folks:  the sis900 patch should be in 2.6.21.x


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

to receive the following updates:

 drivers/net/sis900.c  |9 +
 drivers/usb/net/pegasus.c |   10 --
 drivers/usb/net/pegasus.h |3 +--
 3 files changed, 6 insertions(+), 16 deletions(-)

Dan Williams (1):
  usb-net/pegasus: simplify carrier detection

Neil Horman (1):
  sis900: Allocate rx replacement buffer before rx operation

diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index dea0126..2cb2e15 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -1753,6 +1753,7 @@ static int sis900_rx(struct net_device *net_dev)
sis_priv-rx_ring[entry].cmdsts = RX_BUF_SIZE;
} else {
struct sk_buff * skb;
+   struct sk_buff * rx_skb;
 
pci_unmap_single(sis_priv-pci_dev,
sis_priv-rx_ring[entry].bufptr, RX_BUF_SIZE,
@@ -1786,10 +1787,10 @@ static int sis900_rx(struct net_device *net_dev)
}
 
/* give the socket buffer to upper layers */
-   skb = sis_priv-rx_skbuff[entry];
-   skb_put(skb, rx_size);
-   skb-protocol = eth_type_trans(skb, net_dev);
-   netif_rx(skb);
+   rx_skb = sis_priv-rx_skbuff[entry];
+   skb_put(rx_skb, rx_size);
+   rx_skb-protocol = eth_type_trans(rx_skb, net_dev);
+   netif_rx(rx_skb);
 
/* some network statistics */
if ((rx_status  BCAST) == MCAST)
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
index 1ad4ee5..a05fd97 100644
--- a/drivers/usb/net/pegasus.c
+++ b/drivers/usb/net/pegasus.c
@@ -847,16 +847,6 @@ static void intr_callback(struct urb *urb)
 * d[0].NO_CARRIER kicks in only with failed TX.
 * ... so monitoring with MII may be safest.
 */
-   if (pegasus-features  TRUST_LINK_STATUS) {
-   if (d[5]  LINK_STATUS)
-   netif_carrier_on(net);
-   else
-   netif_carrier_off(net);
-   } else {
-   /* Never set carrier _on_ based on ! NO_CARRIER */
-   if (d[0]  NO_CARRIER)
-   netif_carrier_off(net); 
-   }
 
/* bytes 3-4 == rx_lostpkt, reg 2E/2F */
pegasus-stats.rx_missed_errors += ((d[3]  0x7f)  8) | d[4];
diff --git a/drivers/usb/net/pegasus.h b/drivers/usb/net/pegasus.h
index c7aadb4..c746782 100644
--- a/drivers/usb/net/pegasus.h
+++ b/drivers/usb/net/pegasus.h
@@ -11,7 +11,6 @@
 
 #definePEGASUS_II  0x8000
 #defineHAS_HOME_PNA0x4000
-#defineTRUST_LINK_STATUS   0x2000
 
 #definePEGASUS_MTU 1536
 #defineRX_SKBS 4
@@ -204,7 +203,7 @@ PEGASUS_DEV( AEI USB Fast Ethernet Adapter, 
VENDOR_AEILAB, 0x1701,
 PEGASUS_DEV( Allied Telesyn Int. AT-USB100, VENDOR_ALLIEDTEL, 0xb100,
DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( Belkin F5D5050 USB Ethernet, VENDOR_BELKIN, 0x0121,
-   DEFAULT_GPIO_RESET | PEGASUS_II | TRUST_LINK_STATUS )
+   DEFAULT_GPIO_RESET | PEGASUS_II )
 PEGASUS_DEV( Billionton USB-100, VENDOR_BILLIONTON, 0x0986,
DEFAULT_GPIO_RESET )
 PEGASUS_DEV( Billionton USBLP-100, VENDOR_BILLIONTON, 0x0987,
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-04-24 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/depca.c   |3 +-
 drivers/net/hamradio/baycom_ser_fdx.c |6 +++-
 drivers/net/sis900.c  |   44 +++--
 drivers/usb/net/pegasus.c |   17 +---
 drivers/usb/net/pegasus.h |3 +-
 5 files changed, 40 insertions(+), 33 deletions(-)

Andrea Righi (1):
  [netdrvr] depca: handle platform_device_add() failure

Andrew Morton (1):
  drivers/net/hamradio/baycom_ser_fdx build fix

Dan Williams (1):
  usb-net/pegasus: fix pegasus carrier detection

Neil Horman (1):
  sis900: Allocate rx replacement buffer before rx operation

diff --git a/drivers/net/depca.c b/drivers/net/depca.c
index 5113eef..f3807aa 100644
--- a/drivers/net/depca.c
+++ b/drivers/net/depca.c
@@ -1491,8 +1491,9 @@ static void __init depca_platform_probe (void)
depca_io_ports[i].device = pldev;
 
if (platform_device_add(pldev)) {
-   platform_device_put(pldev);
depca_io_ports[i].device = NULL;
+   pldev-dev.platform_data = NULL;
+   platform_device_put(pldev);
continue;
}
 
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c 
b/drivers/net/hamradio/baycom_ser_fdx.c
index 59214e7..30baf6e 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -75,12 +75,14 @@
 #include linux/ioport.h
 #include linux/string.h
 #include linux/init.h
-#include asm/uaccess.h
-#include asm/io.h
 #include linux/hdlcdrv.h
 #include linux/baycom.h
 #include linux/jiffies.h
 
+#include asm/uaccess.h
+#include asm/io.h
+#include asm/irq.h
+
 /* - */
 
 #define BAYCOM_DEBUG
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index b3750f2..b2a3b19 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -1755,6 +1755,24 @@ static int sis900_rx(struct net_device *net_dev)
} else {
struct sk_buff * skb;
 
+   pci_unmap_single(sis_priv-pci_dev,
+   sis_priv-rx_ring[entry].bufptr, RX_BUF_SIZE,
+   PCI_DMA_FROMDEVICE);
+
+   /* refill the Rx buffer, what if there is not enought
+* memory for new socket buffer ?? */
+   if ((skb = dev_alloc_skb(RX_BUF_SIZE)) == NULL) {
+   /*
+* Not enough memory to refill the buffer
+* so we need to recycle the old one so
+* as to avoid creating a memory hole
+* in the rx ring
+*/
+   skb = sis_priv-rx_skbuff[entry];
+   sis_priv-stats.rx_dropped++;
+   goto refill_rx_ring;
+   }   
+
/* This situation should never happen, but due to
   some unknow bugs, it is possible that
   we are working on NULL sk_buff :-( */
@@ -1768,9 +1786,6 @@ static int sis900_rx(struct net_device *net_dev)
break;
}
 
-   pci_unmap_single(sis_priv-pci_dev,
-   sis_priv-rx_ring[entry].bufptr, RX_BUF_SIZE,
-   PCI_DMA_FROMDEVICE);
/* give the socket buffer to upper layers */
skb = sis_priv-rx_skbuff[entry];
skb_put(skb, rx_size);
@@ -1783,33 +1798,14 @@ static int sis900_rx(struct net_device *net_dev)
net_dev-last_rx = jiffies;
sis_priv-stats.rx_bytes += rx_size;
sis_priv-stats.rx_packets++;
-
-   /* refill the Rx buffer, what if there is not enought
-* memory for new socket buffer ?? */
-   if ((skb = dev_alloc_skb(RX_BUF_SIZE)) == NULL) {
-   /* not enough memory for skbuff, this makes a
-* hole on the buffer ring, it is not clear
-* how the hardware will react to this kind
-* of degenerated buffer */
-   if (netif_msg_rx_status(sis_priv))
-   printk(KERN_INFO %s: Memory squeeze,
-   deferring packet.\n,
-   net_dev-name);
-   

[git patches] net driver fixes

2007-04-19 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/Kconfig   |1 +
 drivers/net/cxgb3/cxgb3_defs.h|5 +-
 drivers/net/cxgb3/cxgb3_offload.c |   69 +++
 drivers/net/cxgb3/t3_hw.c |   18 +++--
 drivers/net/sky2.c|  176 +++--
 drivers/net/sky2.h|   11 +++
 drivers/net/spider_net.c  |2 +-
 7 files changed, 190 insertions(+), 92 deletions(-)

Dave Jiang (1):
  gianfar needs crc32 lib dependency

Divy Le Ray (2):
  cxgb3 - Fix low memory conditions
  cxgb3 - PHY interrupts and GPIO pins.

Linas Vepstas (1):
  spidernet: Fix problem sending IP fragments

Stephen Hemminger (6):
  sky2: disable support for 88E8056
  sky2: handle descriptor errors
  sky2: disable ASF on all chip types
  sky2: EC-U performance and jumbo support
  sky2: no jumbo on Yukon FE
  sky2: version 1.14

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index c3f9f59..a3d46ea 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2263,6 +2263,7 @@ config GIANFAR
tristate Gianfar Ethernet
depends on 85xx || 83xx || PPC_86xx
select PHYLIB
+   select CRC32
help
  This driver supports the Gigabit TSEC on the MPC83xx, MPC85xx,
  and MPC86xx family of chips, and the FEC on the 8540.
diff --git a/drivers/net/cxgb3/cxgb3_defs.h b/drivers/net/cxgb3/cxgb3_defs.h
index e14862b..483a594 100644
--- a/drivers/net/cxgb3/cxgb3_defs.h
+++ b/drivers/net/cxgb3/cxgb3_defs.h
@@ -67,7 +67,10 @@ static inline union listen_entry *stid2entry(const struct 
tid_info *t,
 static inline struct t3c_tid_entry *lookup_tid(const struct tid_info *t,
   unsigned int tid)
 {
-   return tid  t-ntids ? (t-tid_tab[tid]) : NULL;
+   struct t3c_tid_entry *t3c_tid = tid  t-ntids ?
+   (t-tid_tab[tid]) : NULL;
+
+   return (t3c_tid  t3c_tid-client) ? t3c_tid : NULL;
 }
 
 /*
diff --git a/drivers/net/cxgb3/cxgb3_offload.c 
b/drivers/net/cxgb3/cxgb3_offload.c
index 4864924..199e506 100644
--- a/drivers/net/cxgb3/cxgb3_offload.c
+++ b/drivers/net/cxgb3/cxgb3_offload.c
@@ -508,6 +508,7 @@ void cxgb3_queue_tid_release(struct t3cdev *tdev, unsigned 
int tid)
 
spin_lock_bh(td-tid_release_lock);
p-ctx = (void *)td-tid_release_list;
+   p-client = NULL;
td-tid_release_list = p;
if (!p-ctx)
schedule_work(td-tid_release_task);
@@ -623,7 +624,8 @@ static int do_act_open_rpl(struct t3cdev *dev, struct 
sk_buff *skb)
struct t3c_tid_entry *t3c_tid;
 
t3c_tid = lookup_atid((T3C_DATA(dev))-tid_maps, atid);
-   if (t3c_tid-ctx  t3c_tid-client  t3c_tid-client-handlers 
+   if (t3c_tid  t3c_tid-ctx  t3c_tid-client 
+   t3c_tid-client-handlers 
t3c_tid-client-handlers[CPL_ACT_OPEN_RPL]) {
return t3c_tid-client-handlers[CPL_ACT_OPEN_RPL] (dev, skb,
t3c_tid-
@@ -642,7 +644,7 @@ static int do_stid_rpl(struct t3cdev *dev, struct sk_buff 
*skb)
struct t3c_tid_entry *t3c_tid;
 
t3c_tid = lookup_stid((T3C_DATA(dev))-tid_maps, stid);
-   if (t3c_tid-ctx  t3c_tid-client-handlers 
+   if (t3c_tid  t3c_tid-ctx  t3c_tid-client-handlers 
t3c_tid-client-handlers[p-opcode]) {
return t3c_tid-client-handlers[p-opcode] (dev, skb,
 t3c_tid-ctx);
@@ -660,7 +662,7 @@ static int do_hwtid_rpl(struct t3cdev *dev, struct sk_buff 
*skb)
struct t3c_tid_entry *t3c_tid;
 
t3c_tid = lookup_tid((T3C_DATA(dev))-tid_maps, hwtid);
-   if (t3c_tid-ctx  t3c_tid-client-handlers 
+   if (t3c_tid  t3c_tid-ctx  t3c_tid-client-handlers 
t3c_tid-client-handlers[p-opcode]) {
return t3c_tid-client-handlers[p-opcode]
(dev, skb, t3c_tid-ctx);
@@ -689,6 +691,28 @@ static int do_cr(struct t3cdev *dev, struct sk_buff *skb)
}
 }
 
+/*
+ * Returns an sk_buff for a reply CPL message of size len.  If the input
+ * sk_buff has no other users it is trimmed and reused, otherwise a new buffer
+ * is allocated.  The input skb must be of size at least len.  Note that this
+ * operation does not destroy the original skb data even if it decides to reuse
+ * the buffer.
+ */
+static struct sk_buff *cxgb3_get_cpl_reply_skb(struct sk_buff *skb, size_t len,
+  int gfp)
+{
+   if (likely(!skb_cloned(skb))) {
+   BUG_ON(skb-len  len);
+   __skb_trim(skb, len);
+   skb_get(skb);
+   } else {
+   skb = alloc_skb(len, gfp);
+   if (skb)
+   __skb_put(skb, len);
+   }
+  

[git patches] net driver fixes

2007-04-03 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/b44.c |2 +-
 drivers/net/cxgb3/common.h|9 +--
 drivers/net/cxgb3/cxgb3_main.c|   35 +++-
 drivers/net/cxgb3/cxgb3_offload.c |4 ++-
 drivers/net/cxgb3/mc5.c   |3 ++
 drivers/net/cxgb3/regs.h  |4 +++
 drivers/net/cxgb3/sge.c   |2 +-
 drivers/net/cxgb3/t3_hw.c |   24 ++-
 drivers/net/cxgb3/version.h   |5 +++-
 drivers/net/cxgb3/xgmac.c |1 -
 drivers/net/r8169.c   |   46 -
 11 files changed, 89 insertions(+), 46 deletions(-)

Bill Helfinstine (1):
  b44: fix IFF_ALLMULTI handling of CAM slots

Divy Le Ray (4):
  cxgb3 - Safeguard TCAM size usage
  cxgb3 - detect NIC only adapters
  cxgb3 - Tighten xgmac workaround
  cxgb3 - Firwmare update

Francois Romieu (2):
  r8169: issue request_irq after the private data are completely initialized
  r8169: fix suspend/resume for down interface

diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index aaada57..d742bfe 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -1709,7 +1709,7 @@ static void __b44_set_rx_mode(struct net_device *dev)
bw32(bp, B44_RXCONFIG, val);
} else {
unsigned char zero[6] = {0, 0, 0, 0, 0, 0};
-   int i = 0;
+   int i = 1;
 
__b44_set_mac_addr(bp);
 
diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h
index 85e5543..97128d8 100644
--- a/drivers/net/cxgb3/common.h
+++ b/drivers/net/cxgb3/common.h
@@ -112,8 +112,7 @@ enum {
 };
 
 enum {
-   SUPPORTED_OFFLOAD = 1  24,
-   SUPPORTED_IRQ = 1  25
+   SUPPORTED_IRQ  = 1  24
 };
 
 enum { /* adapter interrupt-maintained statistics */
@@ -358,6 +357,9 @@ enum {
MC5_MODE_72_BIT = 2
 };
 
+/* MC5 min active region size */
+enum { MC5_MIN_TIDS = 16 };
+
 struct vpd_params {
unsigned int cclk;
unsigned int mclk;
@@ -402,6 +404,7 @@ struct adapter_params {
unsigned int stats_update_period;   /* MAC stats accumulation 
period */
unsigned int linkpoll_period;   /* link poll period in 0.1s */
unsigned int rev;   /* chip revision */
+   unsigned int offload;
 };
 
 enum { /* chip revisions */
@@ -602,7 +605,7 @@ static inline int is_10G(const struct adapter *adap)
 
 static inline int is_offload(const struct adapter *adap)
 {
-   return adapter_info(adap)-caps  SUPPORTED_OFFLOAD;
+   return adap-params.offload;
 }
 
 static inline unsigned int core_ticks_per_usec(const struct adapter *adap)
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index d553836..26240fd 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -185,16 +185,26 @@ void t3_os_link_changed(struct adapter *adapter, int 
port_id, int link_stat,
int speed, int duplex, int pause)
 {
struct net_device *dev = adapter-port[port_id];
+   struct port_info *pi = netdev_priv(dev);
+   struct cmac *mac = pi-mac;
 
/* Skip changes from disabled ports. */
if (!netif_running(dev))
return;
 
if (link_stat != netif_carrier_ok(dev)) {
-   if (link_stat)
+   if (link_stat) {
+   t3_set_reg_field(adapter,
+A_XGM_TXFIFO_CFG + mac-offset,
+F_ENDROPPKT, 0);
netif_carrier_on(dev);
-   else
+   } else {
netif_carrier_off(dev);
+   t3_set_reg_field(adapter,
+A_XGM_TXFIFO_CFG + mac-offset,
+F_ENDROPPKT, F_ENDROPPKT);
+   }
+
link_report(dev);
}
 }
@@ -407,7 +417,7 @@ static void quiesce_rx(struct adapter *adap)
 static int setup_sge_qsets(struct adapter *adap)
 {
int i, j, err, irq_idx = 0, qset_idx = 0, dummy_dev_idx = 0;
-   unsigned int ntxq = is_offload(adap) ? SGE_TXQ_PER_SET : 1;
+   unsigned int ntxq = SGE_TXQ_PER_SET;
 
if (adap-params.rev  0  !(adap-flags  USING_MSI))
irq_idx = -1;
@@ -485,12 +495,14 @@ static ssize_t show_##name(struct device *d, struct 
device_attribute *attr, \
 static ssize_t set_nfilters(struct net_device *dev, unsigned int val)
 {
struct adapter *adap = dev-priv;
+   int min_tids = is_offload(adap) ? MC5_MIN_TIDS : 0;
 
if (adap-flags  FULL_INIT_DONE)
return -EBUSY;
if (val  adap-params.rev == 0)
return -EINVAL;
-   if (val  

Re: [git patches] net driver fixes

2007-03-30 Thread Guennadi Liakhovetski
On Thu, 29 Mar 2007, Jeff Garzik wrote:

 Guennadi Liakhovetski wrote:
 Jeff, might be worth getting the sk_buff leak fix in ppp from 
 http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?
 
 Don't know how important it is for stable. It was present in 2.6.18 too.

 Can you resend the patch to me, please?

 Easier for the system to apply than the URL...

Sure, attached below. I think, though, this patch is already in someone's 
tree. Andrew has applied it to -mm under the name

ppp-dont-leak-an-sk_buff-on-interface-destruction.patch

but then dropped with the reasoning This patch was dropped because it was 
merged into mainline or a subsystem tree. So, maybe it is now in Samuel's 
IrDA tree. Samuel?So, maybe all you have to do is to pull it from his 
tree.

Thanks
Guennadi
-
Guennadi Liakhovetski, Ph.D.
DSA Daten- und Systemtechnik GmbH
Pascalstr. 28
D-52076 Aachen
Germany

Don't leak an sk_buff on interface destruction.

Signed-off-by: G. Liakhovetski [EMAIL PROTECTED]

--- a/drivers/net/ppp_generic.c 2007-03-23 13:04:04.0 +0100
+++ b/drivers/net/ppp_generic.c 2007-03-23 13:05:29.0 +0100
@@ -2544,6 +2544,9 @@
ppp-active_filter = NULL;
  #endif /* CONFIG_PPP_FILTER */

+   if (ppp-xmit_pending)
+   kfree_skb(ppp-xmit_pending);
+
kfree(ppp);
  }

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-30 Thread Samuel Ortiz

On 3/30/2007, Guennadi Liakhovetski [EMAIL PROTECTED] wrote:

On Thu, 29 Mar 2007, Jeff Garzik wrote:

 Guennadi Liakhovetski wrote:
 Jeff, might be worth getting the sk_buff leak fix in ppp from
 http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?

 Don't know how important it is for stable. It was present in 2.6.18 too.

 Can you resend the patch to me, please?

 Easier for the system to apply than the URL...

Sure, attached below. I think, though, this patch is already in someone's
tree. Andrew has applied it to -mm under the name

ppp-dont-leak-an-sk_buff-on-interface-destruction.patch

but then dropped with the reasoning This patch was dropped because it was
merged into mainline or a subsystem tree. So, maybe it is now in Samuel's
IrDA tree. Samuel?So, maybe all you have to do is to pull it from his
tree.
It's already in Linus tree, and has landed there through davem's
net-2.6 tree.
So, this is all taken care of, Jeff doesn't need to worry about this one.

Cheers,
Samuel.


Thanks
Guennadi
-
Guennadi Liakhovetski, Ph.D.
DSA Daten- und Systemtechnik GmbH
Pascalstr. 28
D-52076 Aachen
Germany

Don't leak an sk_buff on interface destruction.

Signed-off-by: G. Liakhovetski [EMAIL PROTECTED]

--- a/drivers/net/ppp_generic.c2007-03-23 13:04:04.0 +0100
+++ b/drivers/net/ppp_generic.c2007-03-23 13:05:29.0 +0100
@@ -2544,6 +2544,9 @@
   ppp-active_filter = NULL;
  #endif /* CONFIG_PPP_FILTER */

+  if (ppp-xmit_pending)
+  kfree_skb(ppp-xmit_pending);
+
   kfree(ppp);
  }

-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-29 Thread Jeff Garzik

Guennadi Liakhovetski wrote:
Jeff, might be worth getting the sk_buff leak fix in ppp from 
http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?


Don't know how important it is for stable. It was present in 2.6.18 too.


Can you resend the patch to me, please?

Easier for the system to apply than the URL...

Jeff


-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-03-29 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/atl1/atl1_main.c |   10 ++
 drivers/net/netxen/netxen_nic_init.c |3 ++-
 drivers/net/sis190.c |1 +
 3 files changed, 13 insertions(+), 1 deletions(-)

Chris Snook (1):
  atl1: save mac address on remove

Francois Romieu (1):
  sis190: new PHY support

Linsys Contractor Adhiraj Joshi (1):
  NetXen: Fix hardware access for ppc architecture.

diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c
index dee3638..8606eac 100644
--- a/drivers/net/atl1/atl1_main.c
+++ b/drivers/net/atl1/atl1_main.c
@@ -2320,6 +2320,16 @@ static void __devexit atl1_remove(struct pci_dev *pdev)
return;
 
adapter = netdev_priv(netdev);
+
+   /* Some atl1 boards lack persistent storage for their MAC, and get it
+* from the BIOS during POST.  If we've been messing with the MAC
+* address, we need to save the permanent one.
+*/
+   if (memcmp(adapter-hw.mac_addr, adapter-hw.perm_mac_addr, ETH_ALEN)) {
+   memcpy(adapter-hw.mac_addr, adapter-hw.perm_mac_addr, 
ETH_ALEN);
+   atl1_set_mac_addr(adapter-hw);
+   }
+
iowrite16(0, adapter-hw.hw_addr + REG_GPHY_ENABLE);
unregister_netdev(netdev);
pci_iounmap(pdev, adapter-hw.hw_addr);
diff --git a/drivers/net/netxen/netxen_nic_init.c 
b/drivers/net/netxen/netxen_nic_init.c
index 229aa1c..eff965d 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -438,6 +438,7 @@ do_rom_fast_read_words(struct netxen_adapter *adapter, int 
addr,
 
for (addridx = addr; addridx  (addr + size); addridx += 4) {
ret = do_rom_fast_read(adapter, addridx, (int *)bytes);
+   *(int *)bytes = cpu_to_le32(*(int *)bytes);
if (ret != 0)
break;
bytes += 4;
@@ -497,7 +498,7 @@ static inline int do_rom_fast_write_words(struct 
netxen_adapter *adapter,
int timeout = 0;
int data;
 
-   data = *(u32*)bytes;
+   data = le32_to_cpu((*(u32*)bytes));
 
ret = do_rom_fast_write(adapter, addridx, data);
if (ret  0)
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index b08508b..34463ce 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -324,6 +324,7 @@ static struct mii_chip_info {
u32 feature;
 } mii_chip_table[] = {
{ Broadcom PHY BCM5461, { 0x0020, 0x60c0 }, LAN, F_PHY_BCM5461 },
+   { Broadcom PHY AC131,   { 0x0143, 0xbc70 }, LAN, 0 },
{ Agere PHY ET1101B,{ 0x0282, 0xf010 }, LAN, 0 },
{ Marvell PHY 88E,  { 0x0141, 0x0cc0 }, LAN, F_PHY_88E },
{ Realtek PHY RTL8201,  { 0x, 0x8200 }, LAN, 0 },
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-03-28 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/atl1/atl1_hw.c   |1 -
 drivers/net/forcedeth.c  |8 ++-
 drivers/net/mv643xx_eth.c|4 +-
 drivers/net/myri10ge/myri10ge.c  |7 +-
 drivers/net/qla3xxx.c|  110 +++--
 drivers/net/qla3xxx.h|3 +-
 drivers/net/sun3lance.c  |   16 -
 drivers/net/wireless/bcm43xx/bcm43xx_phy.c   |4 +-
 drivers/net/wireless/bcm43xx/bcm43xx_radio.c |   12 ++--
 fs/compat_ioctl.c|9 ++
 include/linux/wireless.h |   21 -
 include/net/iw_handler.h |   30 +--
 net/core/rtnetlink.c |3 +-
 net/core/wireless.c  |   82 
 14 files changed, 182 insertions(+), 128 deletions(-)

Ayaz Abdulla (2):
  forcedeth: fix nic poll
  forcedeth: fix tx timeout

Brice Goglin (1):
  myri10ge: correctly detect when TSO should be used

Cyrill V. Gorcunov (1):
  SUN3/3X Lance trivial fix improved

David Woodhouse (1):
  bcm43xx: Fix machine check on PPC for version 1 PHY

Gabriel Paubert (1):
  mv643xx_eth: Fix use of uninitialized port_num field

Jay Cliburn (1):
  atl1: remove unnecessary crc inversion

Jean Tourrilhes (2):
  wext: Add missing ioctls to 64-32 conversion
  WE-22 : prevent information leak on 64 bit

Larry Finger (1):
  bcm43xx: Fix code for confusion between PHY revision and PHY version

Ron Mercer (4):
  qla3xxx: bugfix: Add tx control block memset.
  qla3xxx: bugfix: Multi segment sends were getting whacked.
  qla3xxx: bugfix: Dropping interrupt under heavy network load.
  qla3xxx: bugfix: Jumbo frame handling.

Stefano Brivio (1):
  bcm43xx: fix radio_set_tx_iq

diff --git a/drivers/net/atl1/atl1_hw.c b/drivers/net/atl1/atl1_hw.c
index 314dbaa..69482e0 100644
--- a/drivers/net/atl1/atl1_hw.c
+++ b/drivers/net/atl1/atl1_hw.c
@@ -334,7 +334,6 @@ u32 atl1_hash_mc_addr(struct atl1_hw *hw, u8 *mc_addr)
int i;
 
crc32 = ether_crc_le(6, mc_addr);
-   crc32 = ~crc32;
for (i = 0; i  32; i++)
value |= (((crc32  i)  1)  (31 - i));
 
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 46e1697..d04214e 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2050,9 +2050,10 @@ static void nv_tx_timeout(struct net_device *dev)
nv_drain_tx(dev);
nv_init_tx(dev);
setup_hw_rings(dev, NV_SETUP_TX_RING);
-   netif_wake_queue(dev);
}
 
+   netif_wake_queue(dev);
+
/* 4) restart tx engine */
nv_start_tx(dev);
spin_unlock_irq(np-lock);
@@ -3536,7 +3537,10 @@ static void nv_do_nic_poll(unsigned long data)
pci_push(base);
 
if (!using_multi_irqs(dev)) {
-   nv_nic_irq(0, dev);
+   if (np-desc_ver == DESC_VER_3)
+   nv_nic_irq_optimized(0, dev);
+   else
+   nv_nic_irq(0, dev);
if (np-msi_flags  NV_MSI_X_ENABLED)

enable_irq_lockdep(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
else
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index c9f55bc..8015a7c 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -1379,7 +1379,7 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
 
spin_lock_init(mp-lock);
 
-   port_num = pd-port_number;
+   port_num = mp-port_num = pd-port_number;
 
/* set default config values */
eth_port_uc_addr_get(dev, dev-dev_addr);
@@ -1411,8 +1411,6 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
duplex = pd-duplex;
speed = pd-speed;
 
-   mp-port_num = port_num;
-
/* Hook up MII support for ethtool */
mp-mii.dev = dev;
mp-mii.mdio_read = mv643xx_mdio_read;
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index b05b20e..c216e6a 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -71,7 +71,7 @@
 #include myri10ge_mcp.h
 #include myri10ge_mcp_gen_header.h
 
-#define MYRI10GE_VERSION_STR 1.3.0-1.226
+#define MYRI10GE_VERSION_STR 1.3.0-1.227
 
 MODULE_DESCRIPTION(Myricom 10G driver (10GbE));
 MODULE_AUTHOR(Maintainer: [EMAIL PROTECTED]);
@@ -2015,10 +2015,9 @@ again:
mss = 0;
max_segments = MXGEFW_MAX_SEND_DESC;
 
-   if (skb-len  (dev-mtu + ETH_HLEN)) {
+   if (skb_is_gso(skb)) {
mss = skb_shinfo(skb)-gso_size;
-   if (mss != 0)
-   max_segments = MYRI10GE_MAX_SEND_DESC_TSO;
+   max_segments = 

Re: [git patches] net driver fixes

2007-03-23 Thread Guennadi Liakhovetski
Jeff, might be worth getting the sk_buff leak fix in ppp from 
http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?

Don't know how important it is for stable. It was present in 2.6.18 too.

Thanks
Guennadi
---
Guennadi Liakhovetski
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-03-22 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/Kconfig  |   25 ++--
 drivers/net/cxgb3/common.h   |   15 ++
 drivers/net/cxgb3/cxgb3_main.c   |   90 --
 drivers/net/cxgb3/regs.h |   22 +++
 drivers/net/cxgb3/t3_hw.c|   15 ++-
 drivers/net/cxgb3/xgmac.c|  133 +--
 drivers/net/ewrk3.c  |3 +-
 drivers/net/mv643xx_eth.c|   14 ++
 drivers/net/myri10ge/myri10ge.c  |   22 +++-
 drivers/net/pci-skeleton.c   |4 +-
 drivers/net/saa9730.c|  177 +-
 drivers/net/skge.c   |  110 +---
 drivers/net/skge.h   |6 +-
 drivers/net/ucc_geth.c   |3 +-
 drivers/net/wireless/airo.c  |4 +-
 drivers/net/wireless/bcm43xx/bcm43xx_radio.c |   14 +-
 16 files changed, 460 insertions(+), 197 deletions(-)

Anton Blanchard (1):
  Fix return code in pci-skeleton.c

Brice Goglin (4):
  myri10ge: Serverworks HT2100 provides aligned PCIe completion
  myri10ge: update wcfifo and intr_coal_delay default values
  myri10ge: fix management of 4kB allocated pages
  myri10ge: update driver version to 1.3.0-1.226

Dale Farnsworth (1):
  mv643xx_eth: add mv643xx_eth_shutdown function

Divy Le Ray (5):
  cxgb3 - fix ethtool cmd on multiple queues port
  cxgb3 - Auto-load FW if mismatch detected
  cxgb3 - Fix potential MAC hang
  cxgb3 - T3B2 pcie config space
  cxgb3 - fix white spaces in drivers/net/Kconfig

Jeff Garzik (1):
  [netdrvr] ewrk3: correct card detection bug

Larry Finger (1):
  bcm43xx: MANUALWLAN fixes

Li Yang (1):
  Revert ucc_geth: returns NETDEV_TX_BUSY when BD ring is full

Michal Schmidt (1):
  airo: Fix an error path memory leak

Ralf Baechle (1):
  SAA9730: Fix large pile of warnings

Stephen Hemminger (3):
  skge: deadlock on tx timeout
  skge: mask irqs when device down
  skge: use per-port phy locking

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 5ff0922..c3f9f59 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2372,22 +2372,23 @@ config CHELSIO_T1_NAPI
  when the driver is receiving lots of packets from the card.
 
 config CHELSIO_T3
-tristate Chelsio Communications T3 10Gb Ethernet support
-depends on PCI
-help
-  This driver supports Chelsio T3-based gigabit and 10Gb Ethernet
-  adapters.
+   tristate Chelsio Communications T3 10Gb Ethernet support
+   depends on PCI
+   select FW_LOADER
+   help
+ This driver supports Chelsio T3-based gigabit and 10Gb Ethernet
+ adapters.
 
-  For general information about Chelsio and our products, visit
-  our website at http://www.chelsio.com.
+ For general information about Chelsio and our products, visit
+ our website at http://www.chelsio.com.
 
-  For customer support, please visit our customer support page at
-  http://www.chelsio.com/support.htm.
+ For customer support, please visit our customer support page at
+ http://www.chelsio.com/support.htm.
 
-  Please send feedback to [EMAIL PROTECTED].
+ Please send feedback to [EMAIL PROTECTED].
 
-  To compile this driver as a module, choose M here: the module
-  will be called cxgb3.
+ To compile this driver as a module, choose M here: the module
+ will be called cxgb3.
 
 config EHEA
tristate eHEA Ethernet support
diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h
index e23deeb..85e5543 100644
--- a/drivers/net/cxgb3/common.h
+++ b/drivers/net/cxgb3/common.h
@@ -260,6 +260,10 @@ struct mac_stats {
unsigned long serdes_signal_loss;
unsigned long xaui_pcs_ctc_err;
unsigned long xaui_pcs_align_change;
+
+   unsigned long num_toggled; /* # times toggled TxEn due to stuck TX */
+   unsigned long num_resets;  /* # times reset due to stuck TX */
+
 };
 
 struct tp_mib_stats {
@@ -400,6 +404,12 @@ struct adapter_params {
unsigned int rev;   /* chip revision */
 };
 
+enum { /* chip revisions */
+   T3_REV_A  = 0,
+   T3_REV_B  = 2,
+   T3_REV_B2 = 3,
+};
+
 struct trace_params {
u32 sip;
u32 sip_mask;
@@ -465,6 +475,10 @@ struct cmac {
struct adapter *adapter;
unsigned int offset;
unsigned int nucast;/* # of address filters for unicast MACs */
+   unsigned int tcnt;
+   unsigned int xcnt;
+   unsigned int toggle_cnt;
+   unsigned int txen;
struct mac_stats stats;
 };
 
@@ 

[git patches] net driver fixes

2007-03-15 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/natsemi.c   |   58 --
 drivers/net/netxen/netxen_nic.h |1 +
 drivers/net/netxen/netxen_nic_ethtool.c |1 +
 drivers/net/netxen/netxen_nic_hw.c  |5 ++-
 drivers/net/netxen/netxen_nic_init.c|   11 +-
 drivers/net/skge.c  |   28 +--
 6 files changed, 63 insertions(+), 41 deletions(-)

[EMAIL PROTECTED] (3):
  natsemi: Consistently use interrupt enable/disable functions
  natsemi: Fix NAPI for interrupt sharing
  natsemi: Avoid IntrStatus lossage if RX state machine resets.

Linsys Contractor Mithlesh Thukral (2):
  NetXen: Bug fix for Jumbo frames on XG card
  NetXen: Fix softlockup seen during hardware access

Stephen Hemminger (1):
  skge: set mac address bonding fix

diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index c6172a7..349b96a 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -1712,7 +1712,7 @@ static void init_registers(struct net_device *dev)
 
/* Enable interrupts by setting the interrupt mask. */
writel(DEFAULT_INTR, ioaddr + IntrMask);
-   writel(1, ioaddr + IntrEnable);
+   natsemi_irq_enable(dev);
 
writel(RxOn | TxOn, ioaddr + ChipCmd);
writel(StatsClear, ioaddr + StatsCtrl); /* Clear Stats */
@@ -2119,28 +2119,35 @@ static irqreturn_t intr_handler(int irq, void 
*dev_instance)
struct netdev_private *np = netdev_priv(dev);
void __iomem * ioaddr = ns_ioaddr(dev);
 
-   if (np-hands_off)
+   /* Reading IntrStatus automatically acknowledges so don't do
+* that while interrupts are disabled, (for example, while a
+* poll is scheduled).  */
+   if (np-hands_off || !readl(ioaddr + IntrEnable))
return IRQ_NONE;
 
-   /* Reading automatically acknowledges. */
np-intr_status = readl(ioaddr + IntrStatus);
 
+   if (!np-intr_status)
+   return IRQ_NONE;
+
if (netif_msg_intr(np))
printk(KERN_DEBUG
   %s: Interrupt, status %#08x, mask %#08x.\n,
   dev-name, np-intr_status,
   readl(ioaddr + IntrMask));
 
-   if (!np-intr_status)
-   return IRQ_NONE;
-
prefetch(np-rx_skbuff[np-cur_rx % RX_RING_SIZE]);
 
if (netif_rx_schedule_prep(dev)) {
/* Disable interrupts and register for poll */
natsemi_irq_disable(dev);
__netif_rx_schedule(dev);
-   }
+   } else
+   printk(KERN_WARNING
+  %s: Ignoring interrupt, status %#08x, mask %#08x.\n,
+  dev-name, np-intr_status,
+  readl(ioaddr + IntrMask));
+
return IRQ_HANDLED;
 }
 
@@ -2156,6 +2163,20 @@ static int natsemi_poll(struct net_device *dev, int 
*budget)
int work_done = 0;
 
do {
+   if (netif_msg_intr(np))
+   printk(KERN_DEBUG
+  %s: Poll, status %#08x, mask %#08x.\n,
+  dev-name, np-intr_status,
+  readl(ioaddr + IntrMask));
+
+   /* netdev_rx() may read IntrStatus again if the RX state
+* machine falls over so do it first. */
+   if (np-intr_status 
+   (IntrRxDone | IntrRxIntr | RxStatusFIFOOver |
+IntrRxErr | IntrRxOverrun)) {
+   netdev_rx(dev, work_done, work_to_do);
+   }
+
if (np-intr_status 
(IntrTxDone | IntrTxIntr | IntrTxIdle | IntrTxErr)) {
spin_lock(np-lock);
@@ -2167,12 +2188,6 @@ static int natsemi_poll(struct net_device *dev, int 
*budget)
if (np-intr_status  IntrAbnormalSummary)
netdev_error(dev, np-intr_status);
 
-   if (np-intr_status 
-   (IntrRxDone | IntrRxIntr | RxStatusFIFOOver |
-IntrRxErr | IntrRxOverrun)) {
-   netdev_rx(dev, work_done, work_to_do);
-   }
-
*budget -= work_done;
dev-quota -= work_done;
 
@@ -2399,19 +2414,8 @@ static struct net_device_stats *get_stats(struct 
net_device *dev)
 #ifdef CONFIG_NET_POLL_CONTROLLER
 static void natsemi_poll_controller(struct net_device *dev)
 {
-   struct netdev_private *np = netdev_priv(dev);
-
disable_irq(dev-irq);
-
-   /*
-* A real interrupt might have already reached us at this point
-* but NAPI might still haven't called us back.  As the interrupt
-* status register is cleared by reading, we should prevent an
-* interrupt loss in this case...
-*/
-   if (!np-intr_status)
-  

Re: [git patches] net driver fixes

2007-03-12 Thread Geert Uytterhoeven
On Tue, 6 Mar 2007, Jeff Garzik wrote:
 Jay Vosburgh (3):
   bonding: Improve IGMP join processing

ip_mc_rejoin_group: Kill warning about unused variable `in_dev' when
CONFIG_IP_MULTICAST is not set.

Signed-off-by: Geert Uytterhoeven [EMAIL PROTECTED]

diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index 1c6a084..8cedb2a 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -1255,9 +1255,9 @@ out:
  */
 void ip_mc_rejoin_group(struct ip_mc_list *im)
 {
+#ifdef CONFIG_IP_MULTICAST
struct in_device *in_dev = im-interface;
 
-#ifdef CONFIG_IP_MULTICAST
if (im-multiaddr == IGMP_ALL_HOSTS)
return;
 

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
[EMAIL PROTECTED] --- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622  B-1935 Zaventem, Belgium
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-12 Thread David Miller
From: Geert Uytterhoeven [EMAIL PROTECTED]
Date: Mon, 12 Mar 2007 11:02:43 +0100 (CET)

 On Tue, 6 Mar 2007, Jeff Garzik wrote:
  Jay Vosburgh (3):
bonding: Improve IGMP join processing
 
 ip_mc_rejoin_group: Kill warning about unused variable `in_dev' when
 CONFIG_IP_MULTICAST is not set.
 
 Signed-off-by: Geert Uytterhoeven [EMAIL PROTECTED]

Applied, thanks Geert.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-03-09 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/3c59x.c |   28 -
 drivers/net/mv643xx_eth.c   |   10 --
 drivers/net/myri10ge/myri10ge.c |   42 +--
 drivers/net/netxen/netxen_nic_hw.c  |5 ++-
 drivers/net/r8169.c |   14 
 drivers/net/sky2.c  |   24 +--
 drivers/net/tokenring/ibmtr.c   |   25 +++
 drivers/net/via-rhine.c |   32 +++-
 drivers/net/wan/z85230.c|2 +-
 drivers/net/wireless/bcm43xx/bcm43xx_main.c |6 ++--
 drivers/net/wireless/bcm43xx/bcm43xx_phy.c  |   10 +-
 drivers/net/wireless/bcm43xx/bcm43xx_wx.c   |   10 +-
 12 files changed, 145 insertions(+), 63 deletions(-)

Alan Cox (1):
  z85230: Fix FIFO handling

Brice Goglin (4):
  myri10ge: fix error checking and return value in myri10ge_allocate_rings
  myri10ge: use pci_map_page to prepare the dmatest buffer
  myri10ge: prevent 4k rdma on SGI TIOCE chipset
  myri10ge: add a wc_enabled flag to myri10ge_priv

Dale Farnsworth (1):
  mv643xx: Clear pending interrupts before calling request_irq

Francois Romieu (2):
  r8169: revert bogus BMCR reset
  r8169: fix a race between PCI probe and dev_open

Joerg Sommer (1):
  bcm43xx: Fix bug in frequency to channel conversion

Larry Finger (1):
  bcm43xx: Fix errors in specs to code translation in B6PHY init

Pavel Roskin (1):
  bcm43xx: Fix assertion failures in interrupt handler

Ralf Baechle (3):
  netxen: fix warnings
  3c59x: Fix several modpost warnings
  ibmtr: Drain rich supply of modpost warnings.

Roger Luethi (1):
  via-rhine: set avoid_D3 for broken BIOSes

Stephen Hemminger (1):
  sky2: turn off Rx checksum on bad hardware

diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index 7299577..b406ecf 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -858,19 +858,7 @@ static struct eisa_device_id vortex_eisa_ids[] = {
 };
 MODULE_DEVICE_TABLE(eisa, vortex_eisa_ids);
 
-static int vortex_eisa_probe(struct device *device);
-static int vortex_eisa_remove(struct device *device);
-
-static struct eisa_driver vortex_eisa_driver = {
-   .id_table = vortex_eisa_ids,
-   .driver   = {
-   .name= 3c59x,
-   .probe   = vortex_eisa_probe,
-   .remove  = vortex_eisa_remove
-   }
-};
-
-static int vortex_eisa_probe(struct device *device)
+static int __init vortex_eisa_probe(struct device *device)
 {
void __iomem *ioaddr;
struct eisa_device *edev;
@@ -893,7 +881,7 @@ static int vortex_eisa_probe(struct device *device)
return 0;
 }
 
-static int vortex_eisa_remove(struct device *device)
+static int __devexit vortex_eisa_remove(struct device *device)
 {
struct eisa_device *edev;
struct net_device *dev;
@@ -918,7 +906,17 @@ static int vortex_eisa_remove(struct device *device)
free_netdev(dev);
return 0;
 }
-#endif
+
+static struct eisa_driver vortex_eisa_driver = {
+   .id_table = vortex_eisa_ids,
+   .driver   = {
+   .name= 3c59x,
+   .probe   = vortex_eisa_probe,
+   .remove  = __devexit_p(vortex_eisa_remove)
+   }
+};
+
+#endif /* CONFIG_EISA */
 
 /* returns count found (= 0), or negative on error */
 static int __init vortex_eisa_init(void)
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 9ba21e0..1ee27c3 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -787,6 +787,12 @@ static int mv643xx_eth_open(struct net_device *dev)
unsigned int size;
int err;
 
+   /* Clear any pending ethernet port interrupts */
+   mv_write(MV643XX_ETH_INTERRUPT_CAUSE_REG(port_num), 0);
+   mv_write(MV643XX_ETH_INTERRUPT_CAUSE_EXTEND_REG(port_num), 0);
+   /* wait for previous write to complete */
+   mv_read (MV643XX_ETH_INTERRUPT_CAUSE_EXTEND_REG(port_num));
+
err = request_irq(dev-irq, mv643xx_eth_int_handler,
IRQF_SHARED | IRQF_SAMPLE_RANDOM, dev-name, dev);
if (err) {
@@ -875,10 +881,6 @@ static int mv643xx_eth_open(struct net_device *dev)
 
mv643xx_eth_rx_refill_descs(dev);   /* Fill RX ring with skb's */
 
-   /* Clear any pending ethernet port interrupts */
-   mv_write(MV643XX_ETH_INTERRUPT_CAUSE_REG(port_num), 0);
-   mv_write(MV643XX_ETH_INTERRUPT_CAUSE_EXTEND_REG(port_num), 0);
-
eth_port_start(dev);
 
/* Interrupt Coalescing */
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index b05dc6e..ac02b3b 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -181,6 +181,7 @@ 

[git patches] net driver fixes

2007-03-06 Thread Jeff Garzik

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

to receive the following updates:

 arch/mips/momentum/jaguar_atx/platform.c  |8 +-
 arch/mips/momentum/ocelot_3/platform.c|8 +-
 arch/mips/momentum/ocelot_c/platform.c|4 +
 arch/powerpc/platforms/chrp/pegasos_eth.c |2 +
 arch/ppc/syslib/mv64x60.c |   12 ++-
 drivers/net/3c59x.c   |8 +-
 drivers/net/bonding/bond_main.c   |   86 +
 drivers/net/mv643xx_eth.c |   53 
 drivers/net/natsemi.c |   24 +++-
 drivers/net/pcnet32.c |4 +-
 drivers/net/sis900.c  |   10 +-
 drivers/net/tulip/de2104x.c   |6 +-
 drivers/net/tulip/dmfe.c  |  204 +++-
 drivers/net/ucc_geth.c|   17 ++-
 include/linux/igmp.h  |2 +
 include/linux/mv643xx.h   |1 +
 net/ipv4/igmp.c   |   23 
 17 files changed, 302 insertions(+), 170 deletions(-)

Andrew Morton (2):
  revert drivers/net/tulip/dmfe: support basic carrier detection
  sis900 warning fixes

Dale Farnsworth (1):
  mv643xx_eth: Place explicit port number in mv643xx_eth_platform_data

Dmitriy Monakhov (1):
  3c59x: Handle pci_enable_device() failure while resuming

Don Fry (1):
  pcnet32: Fix PCnet32 performance bug on non-coherent architecutres

Jay Vosburgh (3):
  bonding: fix double dev_add_pack
  bonding: only receive ARPs for us
  bonding: Improve IGMP join processing

Li Yang (2):
  ucc_geth: Fix BD processing
  ucc_geth: returns NETDEV_TX_BUSY when BD ring is full

Maxim Levitsky (3):
  dmfe: trivial/spelling fixes
  dmfe: fix two bugs
  dmfe: Fix link detection

Prarit Bhargava (1):
  __devinit  __devexit cleanups for de2104x driver

Sergei Shtylyov (1):
  natsemi: netpoll fixes

diff --git a/arch/mips/momentum/jaguar_atx/platform.c 
b/arch/mips/momentum/jaguar_atx/platform.c
index 771e55f..5618448 100644
--- a/arch/mips/momentum/jaguar_atx/platform.c
+++ b/arch/mips/momentum/jaguar_atx/platform.c
@@ -48,6 +48,8 @@ static struct resource mv64x60_eth0_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth0_pd = {
+   .port_number= 0,
+
.tx_sram_addr   = MV_SRAM_BASE_ETH0,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -77,6 +79,8 @@ static struct resource mv64x60_eth1_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth1_pd = {
+   .port_number= 1,
+
.tx_sram_addr   = MV_SRAM_BASE_ETH1,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -105,7 +109,9 @@ static struct resource mv64x60_eth2_resources[] = {
},
 };
 
-static struct mv643xx_eth_platform_data eth2_pd;
+static struct mv643xx_eth_platform_data eth2_pd = {
+   .port_number= 2,
+};
 
 static struct platform_device eth2_device = {
.name   = MV643XX_ETH_NAME,
diff --git a/arch/mips/momentum/ocelot_3/platform.c 
b/arch/mips/momentum/ocelot_3/platform.c
index b80733f..44e4c3f 100644
--- a/arch/mips/momentum/ocelot_3/platform.c
+++ b/arch/mips/momentum/ocelot_3/platform.c
@@ -48,6 +48,8 @@ static struct resource mv64x60_eth0_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth0_pd = {
+   .port_number= 0,
+
.tx_sram_addr   = MV_SRAM_BASE_ETH0,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -77,6 +79,8 @@ static struct resource mv64x60_eth1_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth1_pd = {
+   .port_number= 1,
+
.tx_sram_addr   = MV_SRAM_BASE_ETH1,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -105,7 +109,9 @@ static struct resource mv64x60_eth2_resources[] = {
},
 };
 
-static struct mv643xx_eth_platform_data eth2_pd;
+static struct mv643xx_eth_platform_data eth2_pd = {
+   .port_number= 2,
+};
 
 static struct platform_device eth2_device = {
.name   = MV643XX_ETH_NAME,
diff --git a/arch/mips/momentum/ocelot_c/platform.c 
b/arch/mips/momentum/ocelot_c/platform.c
index f7cd303..7780aa0 100644
--- a/arch/mips/momentum/ocelot_c/platform.c
+++ b/arch/mips/momentum/ocelot_c/platform.c
@@ -47,6 +47,8 @@ static struct resource mv64x60_eth0_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth0_pd = {
+   .port_number= 0,
+
.tx_sram_addr   = MV_SRAM_BASE_ETH0,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -76,6 +78,8 @@ static struct resource mv64x60_eth1_resources[] = {
 };
 
 static struct mv643xx_eth_platform_data eth1_pd = {
+   .port_number  

Re: [git patches] net driver fixes

2007-03-02 Thread Linus Torvalds


On Thu, 1 Mar 2007, Kok, Auke wrote:

 Linus Torvalds wrote:
  
  Ok, here's an interesting one: my e1000 card no longer worked for a while.
  
  The green link-light blinks on/off once a second, and in time to that, my
  dmesg fills up with an endless supply of
  
  e1000: eth0: e1000_watchdog: NIC Link is Down
  e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow 
  Control: None
  e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO
  
  and networking obviously doesn't actually work.
 
 Just out of curiosity, which e1000 chipset+motherboard are you running this
 on?

The kernel prints out:

e1000: :00:19.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1) 
00:16:76:c7:eb:fe
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection

and lspci says:

00:19.0 Ethernet controller: Intel Corporation 82566DM Gigabit Network 
Connection (rev 02)
Subsystem: Intel Corporation Unknown device 0001
Flags: bus master, fast devsel, latency 0, IRQ 506
Memory at e040 (32-bit, non-prefetchable) [size=128K]
Memory at e0424000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 20c0 [size=32]
Capabilities: access denied
00: 86 80 4a 10 07 04 10 00 02 00 00 02 00 00 00 00
10: 00 00 40 e0 00 40 42 e0 c1 20 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 01 00
30: 00 00 00 00 c8 00 00 00 00 00 00 00 0b 01 00 00

It's an Intel system (Host bridge: Intel Corporation 82Q963/Q965) with 
integrated graphics: PCI ID 8086:2990 (rev 02) for the host bridge.

DMI info isn't very interesting, but it's an all-Intel board:

OEM-specific Type
Strings:
Intel_ASF
Intel_ASF_001
..
Base Board Information
Manufacturer: Intel Corporation
Product Name: DQ965GF
Version: AAD41676-305
Serial Number: BQGF635009R2
...
BIOS Information
Vendor: Intel Corp.
Version: CO96510J.86A.4462.2006.0804.2059
Release Date: 08/04/2006

so it's all-intel chipset, all-intel board, and all-intel BIOS ;)

 there have been problems reported with AMT2 on several chipsets (AMT2 is
 not supported under linux, unlike AMT1), and having it enabled in the BIOS
 produces this phenomenon.

Is there some way to at least disable AMT2 from the Linux driver (ie I 
assume this is some issue of Intel not documenting it all - but maybe you 
can add a turn off that bit to the affected chip).

If I'm not the only one to see it, it's obviously not just my personal 
ethernet switch bug, but apparently the e1000 becoming confused by some 
link detection event (and powering down the switch probably just gets it 
out of its confusion).

Linus
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-02 Thread Kok, Auke

Linus Torvalds wrote:

On Thu, 1 Mar 2007, Kok, Auke wrote:
and lspci says:

00:19.0 Ethernet controller: Intel Corporation 82566DM Gigabit Network 
Connection (rev 02)



DMI info isn't very interesting, but it's an all-Intel board:

so it's all-intel chipset, all-intel board, and all-intel BIOS ;)


It's like the devil plays with it. We just discussed adding a piece of text 
about this issue to our README.



there have been problems reported with AMT2 on several chipsets (AMT2 is
not supported under linux, unlike AMT1), and having it enabled in the BIOS
produces this phenomenon.


Is there some way to at least disable AMT2 from the Linux driver (ie I 
assume this is some issue of Intel not documenting it all - but maybe you 
can add a turn off that bit to the affected chip).


Our suggestion is (IOW will be in the README) to turn AMT2 off completely in the 
BIOS, but I'll investigate if your suggestion is possible. It may be another 
workaround but this one indeed hurts.


If I'm not the only one to see it, it's obviously not just my personal 
ethernet switch bug, but apparently the e1000 becoming confused by some 
link detection event (and powering down the switch probably just gets it 
out of its confusion).


No, this fits the description perfectly of this issue. I'll get right on it and 
owe you a patch for the `e1000: not ready for irq` problem too, which seems to 
hold out after tests...


Cheers,

Auke
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-03-02 Thread Jeff Garzik

Fixes du jour.

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

to receive the following updates:

 arch/mips/jmr3927/rbhma3100/setup.c |4 -
 arch/mips/momentum/jaguar_atx/platform.c|   20 +---
 arch/mips/momentum/ocelot_3/platform.c  |   20 +---
 arch/mips/momentum/ocelot_c/platform.c  |   12 +--
 drivers/net/cxgb3/version.h |2 +-
 drivers/net/mv643xx_eth.c   |2 +-
 drivers/net/mv643xx_eth.h   |4 +-
 drivers/net/myri10ge/myri10ge.c |   22 ++--
 drivers/net/netxen/netxen_nic.h |4 +-
 drivers/net/netxen/netxen_nic_ethtool.c |  144 +--
 drivers/net/netxen/netxen_nic_hw.c  |5 +-
 drivers/net/netxen/netxen_nic_init.c|   23 +++--
 drivers/net/netxen/netxen_nic_main.c|   13 +--
 drivers/net/netxen/netxen_nic_phan_reg.h|3 +
 drivers/net/qla3xxx.c   |2 +-
 drivers/net/tc35815.c   |   13 ---
 drivers/net/tulip/de2104x.c |2 +-
 drivers/net/tulip/tulip_core.c  |2 +-
 drivers/net/wireless/bcm43xx/bcm43xx_main.c |5 +-
 include/linux/mv643xx.h |2 +-
 20 files changed, 87 insertions(+), 217 deletions(-)

Brice Goglin (1):
  myri10ge: fix copyright and license

Dale Farnsworth (1):
  mv643xx_eth: move mac_addr inside mv643xx_eth_platform_data

Dave Jones (1):
  Fix mv643xx_eth compilation.

Divy Le Ray (1):
  cxgb3 - Tag driver version

Jeff Garzik (1):
  [netdrvr] tulip, de2104x: fix typo: s/__sparc_/__sparc__/

Linsys Contractor Mithlesh Thukral (2):
  NetXen: Updates, removal of unsupported features and minor bug fixes.
  NetXen: Fix second rmmod failure observed on PowerPC machines.

Ralf Baechle (1):
  jmr3927: do not call tc35815_killall().

Ron Mercer (1):
  qla3xxx: bugfix for line omitted in previous patch.

Stefano Brivio (1):
  bcm43xx: fix for 4309

diff --git a/arch/mips/jmr3927/rbhma3100/setup.c 
b/arch/mips/jmr3927/rbhma3100/setup.c
index 7ca3d6d..ecabe5b 100644
--- a/arch/mips/jmr3927/rbhma3100/setup.c
+++ b/arch/mips/jmr3927/rbhma3100/setup.c
@@ -137,10 +137,6 @@ int jmr3927_ccfg_toeon = 0;
 
 static inline void do_reset(void)
 {
-#ifdef CONFIG_TC35815
-   extern void tc35815_killall(void);
-   tc35815_killall();
-#endif
 #if 1  /* Resetting PCI bus */
jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR);
jmr3927_ioc_reg_out(JMR3927_IOC_RESET_PCI, JMR3927_IOC_RESET_ADDR);
diff --git a/arch/mips/momentum/jaguar_atx/platform.c 
b/arch/mips/momentum/jaguar_atx/platform.c
index 3df36ed..771e55f 100644
--- a/arch/mips/momentum/jaguar_atx/platform.c
+++ b/arch/mips/momentum/jaguar_atx/platform.c
@@ -47,11 +47,7 @@ static struct resource mv64x60_eth0_resources[] = {
},
 };
 
-static char eth0_mac_addr[ETH_ALEN];
-
 static struct mv643xx_eth_platform_data eth0_pd = {
-   .mac_addr   = eth0_mac_addr,
-
.tx_sram_addr   = MV_SRAM_BASE_ETH0,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -80,11 +76,7 @@ static struct resource mv64x60_eth1_resources[] = {
},
 };
 
-static char eth1_mac_addr[ETH_ALEN];
-
 static struct mv643xx_eth_platform_data eth1_pd = {
-   .mac_addr   = eth1_mac_addr,
-
.tx_sram_addr   = MV_SRAM_BASE_ETH1,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,
.tx_queue_size  = MV_SRAM_TXRING_SIZE / 16,
@@ -113,11 +105,7 @@ static struct resource mv64x60_eth2_resources[] = {
},
 };
 
-static char eth2_mac_addr[ETH_ALEN];
-
-static struct mv643xx_eth_platform_data eth2_pd = {
-   .mac_addr   = eth2_mac_addr,
-};
+static struct mv643xx_eth_platform_data eth2_pd;
 
 static struct platform_device eth2_device = {
.name   = MV643XX_ETH_NAME,
@@ -200,9 +188,9 @@ static int __init mv643xx_eth_add_pds(void)
int ret;
 
get_mac(mac);
-   eth_mac_add(eth0_mac_addr, mac, 0);
-   eth_mac_add(eth1_mac_addr, mac, 1);
-   eth_mac_add(eth2_mac_addr, mac, 2);
+   eth_mac_add(eth0_pd.mac_addr, mac, 0);
+   eth_mac_add(eth1_pd.mac_addr, mac, 1);
+   eth_mac_add(eth2_pd.mac_addr, mac, 2);
ret = platform_add_devices(mv643xx_eth_pd_devs,
ARRAY_SIZE(mv643xx_eth_pd_devs));
 
diff --git a/arch/mips/momentum/ocelot_3/platform.c 
b/arch/mips/momentum/ocelot_3/platform.c
index 024aef2..b80733f 100644
--- a/arch/mips/momentum/ocelot_3/platform.c
+++ b/arch/mips/momentum/ocelot_3/platform.c
@@ -47,11 +47,7 @@ static struct resource mv64x60_eth0_resources[] = {
},
 };
 
-static char eth0_mac_addr[ETH_ALEN];
-
 static struct mv643xx_eth_platform_data eth0_pd = {
-   .mac_addr   = eth0_mac_addr,
-
.tx_sram_addr   = MV_SRAM_BASE_ETH0,
.tx_sram_size   = MV_SRAM_TXRING_SIZE,

Re: [git patches] net driver fixes

2007-03-01 Thread Linus Torvalds


Ok, here's an interesting one: my e1000 card no longer worked for a while.

The green link-light blinks on/off once a second, and in time to that, my 
dmesg fills up with an endless supply of

e1000: eth0: e1000_watchdog: NIC Link is Down
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow 
Control: None
e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

and networking obviously doesn't actually work.

I tried to do bisection, but my log made no sense, since it seemed to say 
that the problem was introduced between git commits 2442d310 and bff288c1, 
and there aren't even any commits to drivers/net/ in that range!

SO...

It seems to be that what actually happened is that my switch got confused 
(I ended up just power-cycling the switch when I hit the impossible 
situation, and that seems to be what made it start working again, rather 
than any kernel changes due to bisection ;)

Regardless, the spam the logs every second is a *bad* idea. I'll try to 
see if I can re-create the problem (probably not), but I thought I'd 
report this message spamming regardless. If there really is some link 
problem, no way do I want to see a message about it every second for all 
eternity. Hmm?

Does this once a second link issue ring any bells for anybody? Suggested 
fixes? I realize people do want to know about link problems, but that was 
a bit excessive and since it happened with a reboot, I thought it was a 
kernel bug (it may still be - I'll have to try to recreate it, but my 
suspicion right now is that the reboot just caused some noise and/or link 
renegotiation on the ethernet link that was what actually confused my 
switch).

Linus
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-01 Thread Dan Williams

On 3/1/07, Linus Torvalds [EMAIL PROTECTED] wrote:



Ok, here's an interesting one: my e1000 card no longer worked for a while.

The green link-light blinks on/off once a second, and in time to that, my
dmesg fills up with an endless supply of

e1000: eth0: e1000_watchdog: NIC Link is Down
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow 
Control: None
e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

and networking obviously doesn't actually work.

I tried to do bisection, but my log made no sense, since it seemed to say
that the problem was introduced between git commits 2442d310 and bff288c1,
and there aren't even any commits to drivers/net/ in that range!

SO...

It seems to be that what actually happened is that my switch got confused
(I ended up just power-cycling the switch when I hit the impossible
situation, and that seems to be what made it start working again, rather
than any kernel changes due to bisection ;)

Regardless, the spam the logs every second is a *bad* idea. I'll try to
see if I can re-create the problem (probably not), but I thought I'd
report this message spamming regardless. If there really is some link
problem, no way do I want to see a message about it every second for all
eternity. Hmm?

Does this once a second link issue ring any bells for anybody? Suggested
fixes? I realize people do want to know about link problems, but that was
a bit excessive and since it happened with a reboot, I thought it was a
kernel bug (it may still be - I'll have to try to recreate it, but my
suspicion right now is that the reboot just caused some noise and/or link
renegotiation on the ethernet link that was what actually confused my
switch).


I have seen this occasionally with the e1000 on Xscale IOP development
boards.  The driver prints the up/down messages and makes no progress.
I can also confirm that resetting the switch (SMC8505T) fixed things
for me.  It might be nice to just print e1000 link can not be
established try resetting your switch? after some time.

It's not clear what the steps are to reproduce this, and it doesn't
happen frequently enough to be a show stopper in my environment.  The
IOP boards in the lab typically run an NFS root and are often power
cycled without running shutdown.

So at least an I see it too for what it's worth.


Linus


--
Dan
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-03-01 Thread Kok, Auke

Linus Torvalds wrote:


Ok, here's an interesting one: my e1000 card no longer worked for a while.

The green link-light blinks on/off once a second, and in time to that, my 
dmesg fills up with an endless supply of


e1000: eth0: e1000_watchdog: NIC Link is Down
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow 
Control: None
e1000: eth0: e1000_watchdog: 10/100 speed: disabling TSO

and networking obviously doesn't actually work.


Just out of curiosity, which e1000 chipset+motherboard are you running this on? 
there have been problems reported with AMT2 on several chipsets (AMT2 is not 
supported under linux, unlike AMT1), and having it enabled in the BIOS produces 
this phenomenon.


I have to dig up which nic was affected, don't know by heart.

Cheers,

Auke
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-02-02 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/e100.c  |7 +--
 drivers/net/netxen/netxen_nic.h |  136 +++
 drivers/net/netxen/netxen_nic_ethtool.c |   22 +++---
 drivers/net/netxen/netxen_nic_hw.c  |   43 --
 drivers/net/netxen/netxen_nic_hw.h  |   74 +-
 drivers/net/netxen/netxen_nic_init.c|   15 ++--
 drivers/net/netxen/netxen_nic_isr.c |4 +-
 drivers/net/netxen/netxen_nic_main.c|8 +-
 drivers/net/netxen/netxen_nic_niu.c |  106 
 drivers/net/spider_net.c|2 +
 10 files changed, 199 insertions(+), 218 deletions(-)

Al Viro (1):
  netxen patches (trivial sparse annotations)

Auke Kok (1):
  e100: fix napi ifdefs removing needed code

Jens Osterkamp (1):
  spidernet : fix memory leak in spider_net_stop

diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 3208dac..0cefef5 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2718,14 +2718,12 @@ static int e100_suspend(struct pci_dev *pdev, 
pm_message_t state)
struct net_device *netdev = pci_get_drvdata(pdev);
struct nic *nic = netdev_priv(netdev);
 
-#ifdef CONFIG_E100_NAPI
if (netif_running(netdev))
netif_poll_disable(nic-netdev);
-#endif
del_timer_sync(nic-watchdog);
netif_carrier_off(nic-netdev);
-
netif_device_detach(netdev);
+
pci_save_state(pdev);
 
if ((nic-flags  wol_magic) | e100_asf(nic)) {
@@ -2761,16 +2759,13 @@ static int e100_resume(struct pci_dev *pdev)
 }
 #endif /* CONFIG_PM */
 
-
 static void e100_shutdown(struct pci_dev *pdev)
 {
struct net_device *netdev = pci_get_drvdata(pdev);
struct nic *nic = netdev_priv(netdev);
 
-#ifdef CONFIG_E100_NAPI
if (netif_running(netdev))
netif_poll_disable(nic-netdev);
-#endif
del_timer_sync(nic-watchdog);
netif_carrier_off(nic-netdev);
 
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 59324b1..e8598b8 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -239,49 +239,39 @@ extern unsigned long long netxen_dma_mask;
 
 typedef u32 netxen_ctx_msg;
 
-#define _netxen_set_bits(config_word, start, bits, val){\
-   unsigned long long mask = (((1ULL  (bits)) - 1)  (start));  \
-   unsigned long long value = (val);   \
-   (config_word) = ~mask; \
-   (config_word) |= (((value)  (start))  mask); \
-}
-
 #define netxen_set_msg_peg_id(config_word, val)\
-   _netxen_set_bits(config_word, 0, 2, val)
+   ((config_word) = ~3, (config_word) |= val  3)
 #define netxen_set_msg_privid(config_word) \
-   set_bit(2, (unsigned long*)config_word)
+   ((config_word) |= 1  2)
 #define netxen_set_msg_count(config_word, val) \
-   _netxen_set_bits(config_word, 3, 15, val)
+   ((config_word) = ~(0x7fff3), (config_word) |= (val  0x7fff)  3)
 #define netxen_set_msg_ctxid(config_word, val) \
-   _netxen_set_bits(config_word, 18, 10, val)
+   ((config_word) = ~(0x3ff18), (config_word) |= (val  0x3ff)  18)
 #define netxen_set_msg_opcode(config_word, val)\
-   _netxen_set_bits(config_word, 28, 4, val)
+   ((config_word) = ~(0xf24), (config_word) |= (val  0xf)  24)
 
 struct netxen_rcv_context {
-   u32 rcv_ring_addr_lo;
-   u32 rcv_ring_addr_hi;
-   u32 rcv_ring_size;
-   u32 rsrvd;
+   __le64 rcv_ring_addr;
+   __le32 rcv_ring_size;
+   __le32 rsrvd;
 };
 
 struct netxen_ring_ctx {
 
/* one command ring */
-   u64 cmd_consumer_offset;
-   u32 cmd_ring_addr_lo;
-   u32 cmd_ring_addr_hi;
-   u32 cmd_ring_size;
-   u32 rsrvd;
+   __le64 cmd_consumer_offset;
+   __le64 cmd_ring_addr;
+   __le32 cmd_ring_size;
+   __le32 rsrvd;
 
/* three receive rings */
struct netxen_rcv_context rcv_ctx[3];
 
/* one status ring */
-   u32 sts_ring_addr_lo;
-   u32 sts_ring_addr_hi;
-   u32 sts_ring_size;
+   __le64 sts_ring_addr;
+   __le32 sts_ring_size;
 
-   u32 ctx_id;
+   __le32 ctx_id;
 } __attribute__ ((aligned(64)));
 
 /*
@@ -305,81 +295,85 @@ struct netxen_ring_ctx {
((cmd_desc)-port_ctxid |= ((var)  0x0F))
 
 #define netxen_set_cmd_desc_flags(cmd_desc, val)   \
-   _netxen_set_bits((cmd_desc)-flags_opcode, 0, 7, val)
+   ((cmd_desc)-flags_opcode = ~cpu_to_le16(0x7f), \
+   (cmd_desc)-flags_opcode |= cpu_to_le16((val)  0x7f))
 #define netxen_set_cmd_desc_opcode(cmd_desc, val)  \
-   _netxen_set_bits((cmd_desc)-flags_opcode, 7, 6, val)
+   ((cmd_desc)-flags_opcode = ~cpu_to_le16(0x3f7), \
+   (cmd_desc)-flags_opcode |= cpu_to_le16((val)  (0x3f7)))
 
 #define 

[git patches] net driver fixes

2007-01-30 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/82596.c   |7 +++--
 drivers/net/b44.c |   52 ++--
 drivers/net/bonding/bonding.h |7 +++--
 drivers/net/e100.c|2 +
 drivers/net/ehea/ehea.h   |2 +-
 drivers/net/ehea/ehea_main.c  |   31 +++-
 drivers/net/fs_enet/mac-fec.c |   13 +++---
 drivers/net/fs_enet/mac-scc.c |6 +++-
 drivers/net/ifb.c |3 +-
 drivers/net/phy/fixed.c   |2 +-
 10 files changed, 84 insertions(+), 41 deletions(-)

Al Viro (1):
  b44: src_desc-addr is little-endian

Andrew Morton (1):
  82596 warning fixes

Andy Gospodarek (1):
  bonding: ARP monitoring broken on x86_64

Auke Kok (1):
  e100: fix irq leak on suspend/resume

Dmitriy Monakhov (1):
  Broadcom 4400 resume small fix

Mariusz Kozlowski (1):
  net: ifb error path loop fix

Michael Chan (1):
  b44: Fix frequent link changes

Thomas Klein (2):
  ehea: Fixed wrong jumbo frames status query
  ehea: Fixed missing tasklet_kill() call

Vitaly Bordug (1):
  FS_ENET: OF-related fixup for FEC and SCC MAC's

diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index 8236f26..640d7ca 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -1066,8 +1066,8 @@ static int i596_start_xmit(struct sk_buff *skb, struct 
net_device *dev)
short length = skb-len;
dev-trans_start = jiffies;
 
-   DEB(DEB_STARTTX,printk(KERN_DEBUG %s: i596_start_xmit(%x,%x) 
called\n, dev-name,
-   skb-len, (unsigned int)skb-data));
+   DEB(DEB_STARTTX,printk(KERN_DEBUG %s: i596_start_xmit(%x,%p) called\n,
+   dev-name, skb-len, skb-data));
 
if (skb-len  ETH_ZLEN) {
if (skb_padto(skb, ETH_ZLEN))
@@ -1246,7 +1246,8 @@ struct net_device * __init i82596_probe(int unit)
dev-priv = (void *)(dev-mem_start);
 
lp = dev-priv;
-   DEB(DEB_INIT,printk(KERN_DEBUG %s: lp at 0x%08lx (%d bytes), lp-scb 
at 0x%08lx\n,
+   DEB(DEB_INIT,printk(KERN_DEBUG %s: lp at 0x%08lx (%zd bytes), 
+   lp-scb at 0x%08lx\n,
dev-name, (unsigned long)lp,
sizeof(struct i596_private), (unsigned long)lp-scb));
memset((void *) lp, 0, sizeof(struct i596_private));
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 5eb2ec6..303a8d9 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -110,6 +110,11 @@ MODULE_DEVICE_TABLE(pci, b44_pci_tbl);
 
 static void b44_halt(struct b44 *);
 static void b44_init_rings(struct b44 *);
+
+#define B44_FULL_RESET 1
+#define B44_FULL_RESET_SKIP_PHY2
+#define B44_PARTIAL_RESET  3
+
 static void b44_init_hw(struct b44 *, int);
 
 static int dma_desc_align_mask;
@@ -752,7 +757,7 @@ static void b44_recycle_rx(struct b44 *bp, int src_idx, u32 
dest_idx_unmasked)
 dest_idx * sizeof(dest_desc),
 DMA_BIDIRECTIONAL);
 
-   pci_dma_sync_single_for_device(bp-pdev, src_desc-addr,
+   pci_dma_sync_single_for_device(bp-pdev, le32_to_cpu(src_desc-addr),
   RX_PKT_BUF_SZ,
   PCI_DMA_FROMDEVICE);
 }
@@ -884,7 +889,7 @@ static int b44_poll(struct net_device *netdev, int *budget)
spin_lock_irqsave(bp-lock, flags);
b44_halt(bp);
b44_init_rings(bp);
-   b44_init_hw(bp, 1);
+   b44_init_hw(bp, B44_FULL_RESET_SKIP_PHY);
netif_wake_queue(bp-dev);
spin_unlock_irqrestore(bp-lock, flags);
done = 1;
@@ -954,7 +959,7 @@ static void b44_tx_timeout(struct net_device *dev)
 
b44_halt(bp);
b44_init_rings(bp);
-   b44_init_hw(bp, 1);
+   b44_init_hw(bp, B44_FULL_RESET);
 
spin_unlock_irq(bp-lock);
 
@@ -1071,7 +1076,7 @@ static int b44_change_mtu(struct net_device *dev, int 
new_mtu)
b44_halt(bp);
dev-mtu = new_mtu;
b44_init_rings(bp);
-   b44_init_hw(bp, 1);
+   b44_init_hw(bp, B44_FULL_RESET);
spin_unlock_irq(bp-lock);
 
b44_enable_ints(bp);
@@ -1368,12 +1373,12 @@ static int b44_set_mac_addr(struct net_device *dev, 
void *p)
  * packet processing.  Invoked with bp-lock held.
  */
 static void __b44_set_rx_mode(struct net_device *);
-static void b44_init_hw(struct b44 *bp, int full_reset)
+static void b44_init_hw(struct b44 *bp, int reset_kind)
 {
u32 val;
 
b44_chip_reset(bp);
-   if (full_reset) {
+   if (reset_kind == B44_FULL_RESET) {
b44_phy_reset(bp);
b44_setup_phy(bp);
}
@@ -1390,7 +1395,10 @@ static void b44_init_hw(struct b44 *bp, int 

Re: [git patches] net driver fixes

2007-01-23 Thread Jeff Garzik

Auke Kok wrote:

Jeff Garzik wrote:

Auke Kok wrote:

Jeff Garzik wrote:

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


Jeff,

is there a reason that you didn't pull the e1000 tree from us? I send 
you all the information 5 days ago, WITH the changes that you requested.


I did pull the tree.  The fixes were far more than just obvious 
one-liners, so they got pulled into #upstream.


Forgive me for not seeing the 'pulled' message! I still don't see them 
in your tree on kernel.org either. Is it just slow again?


hrm, no, at the time of your message everything has been mirrored out. 
So, WYSIWYG.


I ACK'd your latest update of the patch series, so resend the pull info 
and I'll pull.  Sorry about that.


Jeff



-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[git patches] net driver fixes

2007-01-22 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/8139cp.c|7 +-
 drivers/net/myri10ge/myri10ge.c |   23 -
 drivers/net/sis190.c|2 +-
 drivers/net/ucc_geth.c  |   12 ++-
 drivers/net/ucc_geth_phy.c  |  134 +--
 drivers/net/wireless/bcm43xx/bcm43xx_main.c |   11 ++-
 6 files changed, 103 insertions(+), 86 deletions(-)

Brice Goglin (3):
  myri10ge: make wc_fifo usage load-time tunable
  myri10ge: check that we can get an irq
  myri10ge: update driver version to 1.2.0

Chris Lalancette (1):
  8139cp: Don't blindly enable interrupts

Francois Romieu (1):
  sis190: failure to set the MAC address from EEPROM

Larry Finger (1):
  bcm43xx: Fix failure to deliver PCI-E interrupts

Timur Tabi (2):
  Update ucc_geth.c for new workqueue structure
  Fix phy_read/write redefinition errors in ucc_geth_phy.c

diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index e2cb19b..6f93a76 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -765,17 +765,18 @@ static int cp_start_xmit (struct sk_buff *skb, struct 
net_device *dev)
struct cp_private *cp = netdev_priv(dev);
unsigned entry;
u32 eor, flags;
+   unsigned long intr_flags;
 #if CP_VLAN_TAG_USED
u32 vlan_tag = 0;
 #endif
int mss = 0;
 
-   spin_lock_irq(cp-lock);
+   spin_lock_irqsave(cp-lock, intr_flags);
 
/* This is a hard error, log it. */
if (TX_BUFFS_AVAIL(cp) = (skb_shinfo(skb)-nr_frags + 1)) {
netif_stop_queue(dev);
-   spin_unlock_irq(cp-lock);
+   spin_unlock_irqrestore(cp-lock, intr_flags);
printk(KERN_ERR PFX %s: BUG! Tx Ring full when queue awake!\n,
   dev-name);
return 1;
@@ -908,7 +909,7 @@ static int cp_start_xmit (struct sk_buff *skb, struct 
net_device *dev)
if (TX_BUFFS_AVAIL(cp) = (MAX_SKB_FRAGS + 1))
netif_stop_queue(dev);
 
-   spin_unlock_irq(cp-lock);
+   spin_unlock_irqrestore(cp-lock, intr_flags);
 
cpw8(TxPoll, NormalTxPoll);
dev-trans_start = jiffies;
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 07cf574..61cbd4a 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -71,7 +71,7 @@
 #include myri10ge_mcp.h
 #include myri10ge_mcp_gen_header.h
 
-#define MYRI10GE_VERSION_STR 1.1.0
+#define MYRI10GE_VERSION_STR 1.2.0
 
 MODULE_DESCRIPTION(Myricom 10G driver (10GbE));
 MODULE_AUTHOR(Maintainer: [EMAIL PROTECTED]);
@@ -274,6 +274,10 @@ static int myri10ge_fill_thresh = 256;
 module_param(myri10ge_fill_thresh, int, S_IRUGO | S_IWUSR);
 MODULE_PARM_DESC(myri10ge_fill_thresh, Number of empty rx slots allowed\n);
 
+static int myri10ge_wcfifo = 1;
+module_param(myri10ge_wcfifo, int, S_IRUGO);
+MODULE_PARM_DESC(myri10ge_wcfifo, Enable WC Fifo when WC is enabled\n);
+
 #define MYRI10GE_FW_OFFSET 1024*1024
 #define MYRI10GE_HIGHPART_TO_U32(X) \
 (sizeof (X) == 8) ? ((u32)((u64)(X)  32)) : (0)
@@ -1714,7 +1718,7 @@ static int myri10ge_open(struct net_device *dev)
goto abort_with_irq;
}
 
-   if (mgp-mtrr = 0) {
+   if (myri10ge_wcfifo  mgp-mtrr = 0) {
mgp-tx.wc_fifo = (u8 __iomem *) mgp-sram + MXGEFW_ETH_SEND_4;
mgp-rx_small.wc_fifo =
(u8 __iomem *) mgp-sram + MXGEFW_ETH_RECV_SMALL;
@@ -2878,7 +2882,6 @@ static int myri10ge_probe(struct pci_dev *pdev, const 
struct pci_device_id *ent)
netdev-hard_start_xmit = myri10ge_xmit;
netdev-get_stats = myri10ge_get_stats;
netdev-base_addr = mgp-iomem_base;
-   netdev-irq = pdev-irq;
netdev-change_mtu = myri10ge_change_mtu;
netdev-set_multicast_list = myri10ge_set_multicast_list;
netdev-set_mac_address = myri10ge_set_mac_address;
@@ -2888,6 +2891,15 @@ static int myri10ge_probe(struct pci_dev *pdev, const 
struct pci_device_id *ent)
netdev-poll = myri10ge_poll;
netdev-weight = myri10ge_napi_weight;
 
+   /* make sure we can get an irq, and that MSI can be
+* setup (if available).  Also ensure netdev-irq
+* is set to correct value if MSI is enabled */
+   status = myri10ge_request_irq(mgp);
+   if (status != 0)
+   goto abort_with_firmware;
+   netdev-irq = pdev-irq;
+   myri10ge_free_irq(mgp);
+
/* Save configuration space to be restored if the
 * nic resets due to a parity error */
pci_save_state(pdev);
@@ -2903,8 +2915,9 @@ static int myri10ge_probe(struct pci_dev *pdev, const 
struct pci_device_id *ent)
dev_err(pdev-dev, register_netdev failed: %d\n, status);
goto abort_with_state;
 

Re: [git patches] net driver fixes

2007-01-22 Thread Auke Kok

Jeff Garzik wrote:

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


Jeff,

is there a reason that you didn't pull the e1000 tree from us? I send you all 
the information 5 days ago, WITH the changes that you requested.


Cheers,

Auke
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [git patches] net driver fixes

2007-01-22 Thread Jeff Garzik

Auke Kok wrote:

Jeff Garzik wrote:

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


Jeff,

is there a reason that you didn't pull the e1000 tree from us? I send 
you all the information 5 days ago, WITH the changes that you requested.


I did pull the tree.  The fixes were far more than just obvious 
one-liners, so they got pulled into #upstream.


Given the past history of breakage during -rc from huge Intel fix 
patchsets, there's no way I'm going to push those fixes to Linus without 
plenty of testing in -mm first.


Jeff



-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


  1   2   >