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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 build 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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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: linux-kernel@vger.kernel.org
 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: [EMAIL PROTECTED]
+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 
 #elif defined(CONFIG_ARCH_IXDP2X01)
 #include 
-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 
 #include 
 #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
+++ b/drivers/net/ehea/ehea.h
@@ -40,7 +40,7 @@
 

[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: linux-kernel@vger.kernel.org
 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: [EMAIL PROTECTED]
+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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 = >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)
   

[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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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

[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 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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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: [EMAIL PROTECTED]
 W: http://www.netxen.com
 S: Supported
@@ -3611,8 +3611,10 @@ L:   linux-kernel@vger.kernel.org ?
 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: [EMAIL PROTECTED]
 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 = >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 

[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: [EMAIL PROTECTED]
 W: http://www.netxen.com
 S: Supported
@@ -3611,8 +3611,10 @@ L:   linux-kernel@vger.kernel.org ?
 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: [EMAIL PROTECTED]
 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

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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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_INFO "   Further 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 @@ 

[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 

[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-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, ,
(struct bcom_bd **));
-   dma_unmap_single(>dev, bd->skb_pa, skb->len, 
DMA_FROM_DEVICE);
+   dma_unmap_single(>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, rskb->data,
+   bd->skb_pa = dma_map_single(>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, >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(>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;
 
for 

[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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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(>napi);
+#endif
 
spin_lock_irq(>lock);
 
@@ -1372,7 +1374,9 @@ static int amd8111e_open(struct net_device * dev )
 dev->name, dev))
return -EAGAIN;
 
+#ifdef CONFIG_AMD8111E_NAPI
napi_enable(>napi);
+#endif
 
spin_lock_irq(>lock);
 
@@ -1380,7 +1384,9 @@ static int amd8111e_open(struct net_device * dev )
 
if(amd8111e_restart(dev)){
spin_unlock_irq(>lock);
+#ifdef CONFIG_AMD8111E_NAPI
napi_disable(>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 
 
 #define DRV_NAME   "ehea"
-#define DRV_VERSION"EHEA_0080"
+#define DRV_VERSION"EHEA_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 = >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-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-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 = _read_status,
.ack_interrupt = _ack_interrupt,
.config_intr = _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 = _read_status,
.ack_interrupt = _ack_interrupt,
.config_intr = _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 = _read_status,
.ack_interrupt = _ack_interrupt,
.config_intr = _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 = _read_status,
.ack_interrupt = _ack_interrupt,
.config_intr = _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 = _config_init,
+   .config_aneg = _config_aneg,
+   .read_status = _read_status,
+   .ack_interrupt = _ack_interrupt,
+   .config_intr = _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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 = >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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 
 
-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(>hw, R, (test[pat] & W)); \
-   value = E1000_READ_REG(>hw, R);   \
-   if (value != (test[pat] & W & M)) { 
\
+   val = E1000_READ_REG(>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-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  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  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  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  for more
- information.
-
  If in doubt, say N.
 
 config CS89x0
@@ -1756,9 +1744,6 @@ config VIA_RHINE_NAPI
  deployed on potentially unfriendly networks (e.g. in a firewall),
  then say Y here.
 
- See  for more
- information.
-
 config LAN_SAA9730

[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 

[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:
/*

[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(>associnfo.work, 0);
-out:
+
mutex_unlock(>associnfo.mutex);
 
return 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 = _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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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,
   >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 

[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", 

[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_VERSION"1.17"
+#define DRV_VERSION"1.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 

[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 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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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(>dev, "no usable DMA configuration\n");
> - goto err_dma;
> - }
> - pci_using_64 = false;
> + dev_err(>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 = _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 
>  
>  #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 

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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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(>dev, "no usable DMA configuration\n");
-   goto err_dma;
-   }
-   pci_using_64 = false;
+   dev_err(>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 = _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 
 
 #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 ");
 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 {
 

[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 {
  

[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(_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;

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 linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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, 

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 linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[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(>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(>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", _port_id);
+   sscanf(buf, "%d", _port_id);
 
port = ehea_get_port(adapter, logical_port_id);
 
@@ -2834,7 +2834,7 @@ static ssize_t ehea_remove_port(struct device 

  1   2   >