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&boot 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-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 @@
 #in

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 = &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

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
i

[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 

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/


[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 @@ sta

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

[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 

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(&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 
 
 #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 = &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

[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
+++ b/drivers

[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 = &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(&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
bool

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

[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

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 = &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,
   &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 

[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

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

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(&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 
>  
>  #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 dis

[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 
 
 #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;
 

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

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

[git patches] net driver fixes

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

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

to receive the following updates:

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

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-08-07 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Re: [git patches] net driver fixes

2007-07-30 Thread Satyam Sharma


On Mon, 30 Jul 2007, Jeff Garzik wrote:

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

Patch below:

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

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

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

---

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

diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 73da611..3446be9 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -1000,12 +1000,6 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id)
   int status;
   int IntrCnt = MACE_MAX_IR_ITERATIONS;
 
-  if (dev == NULL) {
-DEBUG(2, "mace_interrupt(): irq 0x%X for unknown device.\n",
- irq);
-return IRQ_NONE;
-  }
-
   if (lp->tx_irq_disabled) {
 printk(
   (lp->tx_irq_disabled?
-
To unsubscribe from this list: send the line "unsubscribe 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-07-30 Thread Jeff Garzik

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

-
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-07-30 Thread Satyam Sharma
Hi Jeff,


On Mon, 30 Jul 2007, Jeff Garzik wrote:

>   Fix a potential NULL pointer dereference in mace_interrupt() in 
> drivers/net/pcmcia/nmclan_cs.c

This oops is _programmatically_ impossible (the only way it can occur
is if the kernel has gone bazooka already anyway ...)

[ BTW even if it were possible, we haven't fixed it still ...
  note the use of the netdev_priv() before the (dev == NULL)
  check in the function below ... ]


> diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
> index 73da611..997c2d0 100644
> --- a/drivers/net/pcmcia/nmclan_cs.c
> +++ b/drivers/net/pcmcia/nmclan_cs.c
> @@ -996,7 +996,7 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id)
>  {
>struct net_device *dev = (struct net_device *) dev_id;
>mace_private *lp = netdev_priv(dev);
> -  kio_addr_t ioaddr = dev->base_addr;
> +  kio_addr_t ioaddr;
>int status;
>int IntrCnt = MACE_MAX_IR_ITERATIONS;
>  
> @@ -1006,6 +1006,8 @@ static irqreturn_t mace_interrupt(int irq, void *dev_id)
>  return IRQ_NONE;
>}
>  
> +  ioaddr = dev->base_addr;
> +
>if (lp->tx_irq_disabled) {
>  printk(
>(lp->tx_irq_disabled?

I suggest we should just get rid of the (bogus, always false) dev == NULL
check itself, instead.

Will submit patch, in a bit ...


>   Fix a potential NULL pointer dereference in write_bulk_callback() in 
> drivers/net/usb/pegasus.c

Ditto, for this. Impossible oops. And if it does occur, the kernel would
have gone irrevocably mad already ...


> diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
> index a05fd97..04cba6b 100644
> --- a/drivers/net/usb/pegasus.c
> +++ b/drivers/net/usb/pegasus.c
> @@ -768,11 +768,13 @@ done:
>  static void write_bulk_callback(struct urb *urb)
>  {
>   pegasus_t *pegasus = urb->context;
> - struct net_device *net = pegasus->net;
> + struct net_device *net;
>  
>   if (!pegasus)
>   return;
>  
> + net = pegasus->net;
> +
>   if (!netif_device_present(net) || !netif_running(net))
>   return;

Again, the (!pegasus) check is bogus (always false) and should be removed
instead. I believe the maintainer (CC'ed here) already has a patch for
exactly that.


Satyam
-
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-07-30 Thread Jeff Garzik
All are fixes except the two "S2IO: Remove ...from the driver" patches,
which remove two unused features, and a couple doc patches.

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  |4 +-
 drivers/net/forcedeth.c  |   36 ++-
 drivers/net/gianfar_mii.c|2 +-
 drivers/net/gianfar_mii.h|2 +-
 drivers/net/lib8390.c|   46 +++
 drivers/net/netxen/netxen_nic_main.c |   44 ++--
 drivers/net/pcmcia/nmclan_cs.c   |4 +-
 drivers/net/pcmcia/smc91c92_cs.c |   23 +-
 drivers/net/s2io-regs.h  |5 +-
 drivers/net/s2io.c   |  542 ++
 drivers/net/s2io.h   |   11 +-
 drivers/net/usb/pegasus.c|4 +-
 12 files changed, 279 insertions(+), 444 deletions(-)

Ayaz Abdulla (1):
  forcedeth: mac address correct

Dhananjay Phadke (1):
  netxen: drop redudant spinlock

Jarek Poplawski (1):
  lib8390: comment on locking by Alan Cox

Komuro (1):
  PATCH kernel 2.6.22] PCMCIA-NETDEV : modify smc91c92_cs.c to become SMP 
safe

Kumar Gala (1):
  gfar: Fix modpost warning

Micah Gruber (2):
  Fix a potential NULL pointer dereference in write_bulk_callback() in 
drivers/net/usb/pegasus.c
  Fix a potential NULL pointer dereference in mace_interrupt() in 
drivers/net/pcmcia/nmclan_cs.c

Ramkrishna Vepa (3):
  S2io: Mask spurious interrupts
  S2io: Fix crash when resetting adapter
  S2io: Increment received packet count correctly

Valerie Henson (1):
  tulip: Remove tulip maintainer

Veena Parat (4):
  S2IO: Removing 3 buffer mode support from the driver
  S2IO: Removing MSI support from driver
  S2IO: Checking for the return value of pci map function
  S2IO: Implementing review comments from old patches

[EMAIL PROTECTED] (2):
  netxen: re-init station address after h/w init
  netxen: Fix interrupt handling for multiport adapters

diff --git a/MAINTAINERS b/MAINTAINERS
index babd00b..5c784be 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3674,11 +3674,9 @@ W:   http://www.auk.cx/tms380tr/
 S: Maintained
 
 TULIP NETWORK DRIVER
-P: Valerie Henson
-M: [EMAIL PROTECTED]
 L: [EMAIL PROTECTED]
 W: http://sourceforge.net/projects/tulip/
-S: Maintained
+S: Orphan
 
 TUN/TAP driver
 P: Maxim Krasnyansky
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 661c747..51e1cb4 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -178,6 +178,7 @@
 #define DEV_HAS_STATISTICS_V2   0x0800  /* device supports hw statistics 
version 2 */
 #define DEV_HAS_TEST_EXTENDED   0x1000  /* device supports extended diagnostic 
test */
 #define DEV_HAS_MGMT_UNIT   0x2000  /* device supports management unit */
+#define DEV_HAS_CORRECT_MACADDR 0x4000  /* device supports correct mac address 
order */
 
 enum {
NvRegIrqStatus = 0x000,
@@ -5172,7 +5173,8 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, 
const struct pci_device_i
 
/* check the workaround bit for correct mac address order */
txreg = readl(base + NvRegTransmitPoll);
-   if (txreg & NVREG_TRANSMITPOLL_MAC_ADDR_REV) {
+   if ((txreg & NVREG_TRANSMITPOLL_MAC_ADDR_REV) ||
+   (id->driver_data & DEV_HAS_CORRECT_MACADDR)) {
/* mac address is already in correct order */
dev->dev_addr[0] = (np->orig_mac[0] >>  0) & 0xff;
dev->dev_addr[1] = (np->orig_mac[0] >>  8) & 0xff;
@@ -5500,67 +5502,67 @@ static struct pci_device_id pci_tbl[] = {
},
{   /* MCP61 Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, 
PCI_DEVICE_ID_NVIDIA_NVENET_16),
-   .driver_data = 
DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
+   .driver_data = 
DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
},
{   /* MCP61 Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, 
PCI_DEVICE_ID_NVIDIA_NVENET_17),
-   .driver_data = 
DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
+   .driver_data = 
DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
},
{   /* MCP61 Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, 
PCI_DEVI

Re: [git patches] net driver fixes

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

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

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

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

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

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

Does anyone have a suggestion how to do this better?

cu
Adrian

-- 

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

-
To unsubscribe from this list: send the line "unsubscribe 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-06-27 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/au1000_eth.c  |2 +-
 drivers/net/cxgb3/xgmac.c |8 +---
 drivers/net/s2io.c|   16 +---
 3 files changed, 15 insertions(+), 11 deletions(-)

Divy Le Ray (1):
  cxgb3 - fix register to stop bc/mc traffic

Olaf Hering (1):
  2.6.22: ERROR: "__ucmpdi2" [drivers/net/s2io.ko] undefined!

Ralf Baechle (1):
  au1000_eth: Fix warnings.

diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index c39ab80..c27cfce 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -34,7 +34,7 @@
  *
  *
  */
-
+#include 
 #include 
 #include 
 #include 
diff --git a/drivers/net/cxgb3/xgmac.c b/drivers/net/cxgb3/xgmac.c
index b261be1..c302b1a 100644
--- a/drivers/net/cxgb3/xgmac.c
+++ b/drivers/net/cxgb3/xgmac.c
@@ -335,11 +335,11 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
hwm = min(hwm, MAC_RXFIFO_SIZE - 8192);
lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4);
 
-   v = t3_read_reg(adap, A_XGM_RXFIFO_CFG + mac->offset);
if (adap->params.rev == T3_REV_B2 &&
(t3_read_reg(adap, A_XGM_RX_CTRL + mac->offset) & F_RXEN)) {
disable_exact_filters(mac);
-   t3_set_reg_field(adap, A_XGM_RXFIFO_CFG + mac->offset,
+   v = t3_read_reg(adap, A_XGM_RX_CFG + mac->offset);
+   t3_set_reg_field(adap, A_XGM_RX_CFG + mac->offset,
 F_ENHASHMCAST | F_COPYALLFRAMES, F_DISBCAST);
 
/* drain rx FIFO */
@@ -347,11 +347,12 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
A_XGM_RX_MAX_PKT_SIZE_ERR_CNT +
mac->offset,
1 << 31, 1, 20, 5)) {
-   t3_write_reg(adap, A_XGM_RXFIFO_CFG + mac->offset, v);
+   t3_write_reg(adap, A_XGM_RX_CFG + mac->offset, v);
enable_exact_filters(mac);
return -EIO;
}
t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu);
+   t3_write_reg(adap, A_XGM_RX_CFG + mac->offset, v);
enable_exact_filters(mac);
} else
t3_write_reg(adap, A_XGM_RX_MAX_PKT_SIZE + mac->offset, mtu);
@@ -362,6 +363,7 @@ int t3_mac_set_mtu(struct cmac *mac, unsigned int mtu)
 */
hwm = rx_fifo_hwm(mtu);
lwm = min(3 * (int)mtu, MAC_RXFIFO_SIZE / 4);
+   v = t3_read_reg(adap, A_XGM_RXFIFO_CFG + mac->offset);
v &= ~V_RXFIFOPAUSELWM(M_RXFIFOPAUSELWM);
v |= V_RXFIFOPAUSELWM(lwm / 8);
if (G_RXFIFOPAUSEHWM(v))
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index c6ba3de..09078ff 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2868,6 +2868,7 @@ static void tx_intr_handler(struct fifo_info *fifo_data)
struct tx_curr_get_info get_info, put_info;
struct sk_buff *skb;
struct TxD *txdlp;
+   u8 err_mask;
 
get_info = fifo_data->tx_curr_get_info;
memcpy(&put_info, &fifo_data->tx_curr_put_info, sizeof(put_info));
@@ -2886,8 +2887,8 @@ static void tx_intr_handler(struct fifo_info *fifo_data)
}
 
/* update t_code statistics */
-   err >>= 48;
-   switch(err) {
+   err_mask = err >> 48;
+   switch(err_mask) {
case 2:
nic->mac_control.stats_info->sw_stat.
tx_buf_abort_cnt++;
@@ -6805,6 +6806,7 @@ static int rx_osm_handler(struct ring_info *ring_data, 
struct RxD_t * rxdp)
u16 l3_csum, l4_csum;
unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
struct lro *lro;
+   u8 err_mask;
 
skb->dev = dev;
 
@@ -6813,8 +6815,8 @@ static int rx_osm_handler(struct ring_info *ring_data, 
struct RxD_t * rxdp)
if (err & 0x1) {
sp->mac_control.stats_info->sw_stat.parity_err_cnt++;
}
-   err >>= 48;
-   switch(err) {
+   err_mask = err >> 48;
+   switch(err_mask) {
case 1:
sp->mac_control.stats_info->sw_stat.
rx_parity_err_cnt++;
@@ -6867,9 +6869,9 @@ static int rx_osm_handler(struct ring_info *ring_data, 
struct RxD_t * rxdp)
* Note that in this case, since checksum will be incorrect,
* stack will validate the same.
*/
-   if (err != 0x5) {
-   DBG_PRINT(ERR_DBG, "%s: Rx error Value: 0x%llx\n",
-   dev->name, err);
+ 

[git patches] net driver fixes

2007-06-20 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/bonding/bond_3ad.c   |9 +--
 drivers/net/bonding/bond_main.c  |2 +-
 drivers/net/bonding/bond_sysfs.c |2 +-
 drivers/net/bonding/bonding.h|4 +-
 drivers/net/cxgb3/ael1002.c  |   10 +++-
 drivers/net/cxgb3/cxgb3_main.c   |   16 -
 drivers/net/cxgb3/regs.h |6 ++
 drivers/net/cxgb3/sge.c  |3 +-
 drivers/net/cxgb3/xgmac.c|   98 +++
 drivers/net/forcedeth.c  |4 +-
 drivers/net/natsemi.c|2 +-
 drivers/net/spider_net.c |  121 +++---
 drivers/net/spider_net.h |8 ++-
 drivers/net/spider_net_ethtool.c |   21 +--
 drivers/s390/net/claw.c  |   13 +++--
 drivers/s390/net/netiucv.c   |   23 ++-
 drivers/s390/net/qeth_eddp.c |3 +-
 drivers/s390/net/qeth_main.c |   52 -
 18 files changed, 273 insertions(+), 124 deletions(-)

Cornelia Huck (1):
  s390: Use ccw_device_get_id() in qeth/claw drivers

Divy Le Ray (5):
  cxgb3 - fix skb->dev dereference
  cxgb3 - fix netpoll hanlder
  cxgb3 - Fix direct XAUI support
  cxgb3 - Stop mac RX when changing MTU
  cxgb3 - MAC watchdog update

Frank Pavlic (1):
  s390: qeth: wrong packet length in qdio header

Gregory Haskins (1):
  natsemi irq flags

Jay Vosburgh (2):
  bonding: Fix use after free in unregister path
  bonding: Fix 802.3ad no carrier on "no partner found" instance

Linas Vepstas (5):
  spidernet: null out skb pointer after its been used.
  spidernet: Cure RX ram full bug
  spidernet: Don't terminate the RX ring
  spidernet: silence the ramfull messages
  spidernet: turn off descriptor chain end interrupt.

Martin Schwidefsky (1):
  s390: netiucv inlining cleanup

Stephen Hemminger (1):
  spidernet: checksum and ethtool

Thomas Gleixner (1):
  s390: netiucv spinlock initializer cleanup

Tim Mann (1):
  forcedeth: use unicast receive mode for WoL

Ursula Braun (4):
  s390: print correct level for HiperSockets devices
  s390: qeth driver does not recover
  s390: avoid inconsistent lock state in qeth
  s390: don't call iucv_path_connect from tasklet context

diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 7e03f41..f829e4a 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -2303,19 +2303,18 @@ void bond_3ad_handle_link_change(struct slave *slave, 
char link)
 }
 
 /*
- * set link state for bonding master: if we have an active partnered
+ * set link state for bonding master: if we have an active 
  * aggregator, we're up, if not, we're down.  Presumes that we cannot
  * have an active aggregator if there are no slaves with link up.
  *
+ * This behavior complies with IEEE 802.3 section 43.3.9.
+ *
  * Called by bond_set_carrier(). Return zero if carrier state does not
  * change, nonzero if it does.
  */
 int bond_3ad_set_carrier(struct bonding *bond)
 {
-   struct aggregator *agg;
-
-   agg = __get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator));
-   if (agg && MAC_ADDRESS_COMPARE(&agg->partner_system, &null_mac_addr)) {
+   if (__get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator))) {
if (!netif_carrier_ok(bond->dev)) {
netif_carrier_on(bond->dev);
return 1;
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 223517d..6287ffb 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4345,8 +4345,8 @@ static void bond_free_all(void)
bond_mc_list_destroy(bond);
/* Release the bonded slaves */
bond_release_all(bond_dev);
-   unregister_netdevice(bond_dev);
bond_deinit(bond_dev);
+   unregister_netdevice(bond_dev);
}
 
 #ifdef CONFIG_PROC_FS
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index a122baa..60cccf2 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -164,9 +164,9 @@ static ssize_t bonding_store_bonds(struct class *cls, const 
char *buffer, size_t
printk(KERN_INFO DRV_NAME
": %s is being deleted...\n",
bond->dev->name);
-   unregister_netdevice(bond->dev);
bond_deinit(bond->dev);
bond_destroy_sysfs_entry(bond);
+   unregister_netdevice(bond->dev);
rtnl_unlock();
goto out;
}
diff --git a/

[git patches] net driver fixes

2007-06-12 Thread Jeff Garzik

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

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

to receive the following updates:

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

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

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

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

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

[git patches] net driver fixes

2007-06-09 Thread Jeff Garzik

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

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

to receive the following updates:

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

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-06-03 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

Valerie Henson (1):
  Update tulip maintainer email address

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

[git patches] net driver fixes

2007-05-30 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-05-24 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

Mariusz Kozlowski (1):
  chelsio parenthesis fix

Ralf Baechle (1):
  meth driver renovation

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

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

[git patches] net driver fixes

2007-05-21 Thread Jeff Garzik

Two fixes and a one-line constant addition.

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

to receive the following updates:

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

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

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

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

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

to receive the following updates:

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

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-05-15 Thread Jeff Garzik

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

to receive the following updates:

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

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

Olof Johansson (1):
  pasemi_mac: Interrupt ack fixes

Vitaly Wool (1):
  smc911x: fix compilation breakage

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

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

[git patches] net driver fixes

2007-04-27 Thread Jeff Garzik

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


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


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

to receive the following updates:

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

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

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

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

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

to receive the following updates:

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

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

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

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

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

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

[git patches] net driver fixes

2007-04-19 Thread Jeff Garzik

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

to receive the following updates:

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

Dave Jiang (1):
  gianfar needs crc32 lib dependency

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

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

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

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

[git patches] net driver fixes

2007-04-11 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/cxgb3/common.h   |7 +-
 drivers/net/cxgb3/cxgb3_main.c   |   16 ++--
 drivers/net/cxgb3/cxgb3_offload.c|   14 +---
 drivers/net/cxgb3/regs.h |6 ++
 drivers/net/cxgb3/xgmac.c|  107 +++---
 drivers/net/myri10ge/myri10ge.c  |   37 ++---
 drivers/net/skge.c   |   93 ++-
 drivers/net/sky2.c   |   12 ++-
 drivers/net/wireless/bcm43xx/bcm43xx_main.c  |   20 +-
 drivers/net/wireless/bcm43xx/bcm43xx_phy.c   |   57 --
 drivers/net/wireless/zd1211rw/zd_chip.c  |   12 +--
 drivers/net/wireless/zd1211rw/zd_chip.h  |4 +-
 drivers/net/wireless/zd1211rw/zd_rf_al2230.c |6 ++
 13 files changed, 257 insertions(+), 134 deletions(-)

Brice Goglin (3):
  myri10ge: fix management of the firmware 4KB boundary crossing restriction
  myri10ge: more Intel chipsets providing aligned PCIe completions
  myri10ge: update driver version to 1.3.0-1.233

Daniel Drake (2):
  zd1211rw: Reject AL2230S devices
  zd1211rw: Fix E2P_PHY_REG patching

Divy Le Ray (3):
  cxgb3 - avoid deadlock with mac watchdog
  cxgb3 - MAC watchdog update
  cxgb3 - missing CPL hanler and register setting.

Larry Finger (2):
  bcm43xx: Fix 802.11b/g scan limits to match regulatory reqs
  bcm43xx: Fix PPC machine checks and match loopback gain specs

Stephen Hemminger (5):
  skge: turn carrier off when down
  sky2: turn carrier off when down
  sky2: turn on clocks when doing resume
  sky2: phy workarounds for Yukon EC-U A1
  skge: fix wake on lan

diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h
index 97128d8..8d13796 100644
--- a/drivers/net/cxgb3/common.h
+++ b/drivers/net/cxgb3/common.h
@@ -478,8 +478,11 @@ struct cmac {
struct adapter *adapter;
unsigned int offset;
unsigned int nucast;/* # of address filters for unicast MACs */
-   unsigned int tcnt;
-   unsigned int xcnt;
+   unsigned int tx_tcnt;
+   unsigned int tx_xcnt;
+   u64 tx_mcnt;
+   unsigned int rx_xcnt;
+   u64 rx_mcnt;
unsigned int toggle_cnt;
unsigned int txen;
struct mac_stats stats;
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 26240fd..67b4b21 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -194,15 +194,13 @@ void t3_os_link_changed(struct adapter *adapter, int 
port_id, int link_stat,
 
if (link_stat != netif_carrier_ok(dev)) {
if (link_stat) {
-   t3_set_reg_field(adapter,
-A_XGM_TXFIFO_CFG + mac->offset,
-F_ENDROPPKT, 0);
+   t3_mac_enable(mac, MAC_DIRECTION_RX);
netif_carrier_on(dev);
} else {
netif_carrier_off(dev);
-   t3_set_reg_field(adapter,
-A_XGM_TXFIFO_CFG + mac->offset,
-F_ENDROPPKT, F_ENDROPPKT);
+   pi->phy.ops->power_down(&pi->phy, 1);
+   t3_mac_disable(mac, MAC_DIRECTION_RX);
+   t3_link_start(&pi->phy, mac, &pi->link_config);
}
 
link_report(dev);
@@ -772,6 +770,8 @@ static int cxgb_up(struct adapter *adap)
if (err)
goto out;
 
+   t3_write_reg(adap, A_ULPRX_TDDP_PSZ, V_HPZ0(PAGE_SHIFT - 12));
+   
err = setup_sge_qsets(adap);
if (err)
goto out;
@@ -2119,7 +2119,9 @@ static void check_t3b2_mac(struct adapter *adapter)
 {
int i;
 
-   rtnl_lock();  /* synchronize with ifdown */
+   if (!rtnl_trylock())/* synchronize with ifdown */
+   return;
+
for_each_port(adapter, i) {
struct net_device *dev = adapter->port[i];
struct port_info *p = netdev_priv(dev);
diff --git a/drivers/net/cxgb3/cxgb3_offload.c 
b/drivers/net/cxgb3/cxgb3_offload.c
index eed7a48..4864924 100644
--- a/drivers/net/cxgb3/cxgb3_offload.c
+++ b/drivers/net/cxgb3/cxgb3_offload.c
@@ -743,17 +743,6 @@ static int do_act_establish(struct t3cdev *dev, struct 
sk_buff *skb)
}
 }
 
-static int do_set_tcb_rpl(struct t3cdev *dev, struct sk_buff *skb)
-{
-   struct cpl_set_tcb_rpl *rpl = cplhdr(skb);
-
-   if (rpl->status != CPL_ERR_NONE)
-   printk(KERN_ERR
-  "Unexpected SET_TCB_RPL status %u for tid %u\n",
-  rpl->status, GET_TID

[git patches] net driver fixes

2007-04-03 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

Re: [git patches] net driver fixes

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

> Guennadi Liakhovetski wrote:
>> Jeff, might be worth getting the sk_buff leak fix in ppp from 
>> http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?
>> 
>> Don't know how important it is for stable. It was present in 2.6.18 too.
>
> Can you resend the patch to me, please?
>
> Easier for the system to apply than the URL...

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

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

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

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

Don't leak an sk_buff on interface destruction.

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

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

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

-
To unsubscribe from this list: send the line "unsubscribe 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-03-29 Thread Samuel Ortiz

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

>On Thu, 29 Mar 2007, Jeff Garzik wrote:
>
>> Guennadi Liakhovetski wrote:
>>> Jeff, might be worth getting the sk_buff leak fix in ppp from
>>> http://www.spinics.net/lists/netdev/msg27706.html in 2.6.21 too?
>>>
>>> Don't know how important it is for stable. It was present in 2.6.18 too.
>>
>> Can you resend the patch to me, please?
>>
>> Easier for the system to apply than the URL...
>
>Sure, attached below. I think, though, this patch is already in someone's
>tree. Andrew has applied it to -mm under the name
>
>ppp-dont-leak-an-sk_buff-on-interface-destruction.patch
>
>but then dropped with the reasoning "This patch was dropped because it was
>merged into mainline or a subsystem tree". So, maybe it is now in Samuel's
>IrDA tree. Samuel?So, maybe all you have to do is to pull it from his
>tree.
It's already in Linus tree, and has landed there through davem's
net-2.6 tree.
So, this is all taken care of, Jeff doesn't need to worry about this one.

Cheers,
Samuel.


>Thanks
>Guennadi
>-
>Guennadi Liakhovetski, Ph.D.
>DSA Daten- und Systemtechnik GmbH
>Pascalstr. 28
>D-52076 Aachen
>Germany
>
>Don't leak an sk_buff on interface destruction.
>
>Signed-off-by: G. Liakhovetski <[EMAIL PROTECTED]>
>
>--- a/drivers/net/ppp_generic.c2007-03-23 13:04:04.0 +0100
>+++ b/drivers/net/ppp_generic.c2007-03-23 13:05:29.0 +0100
>@@ -2544,6 +2544,9 @@
>   ppp->active_filter = NULL;
>  #endif /* CONFIG_PPP_FILTER */
>
>+  if (ppp->xmit_pending)
>+  kfree_skb(ppp->xmit_pending);
>+
>   kfree(ppp);
>  }
>
-
To unsubscribe from this list: send the line "unsubscribe 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-03-29 Thread Jeff Garzik

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

to receive the following updates:

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

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

Francois Romieu (1):
  sis190: new PHY support

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

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

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


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


Can you resend the patch to me, please?

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

Jeff


-
To unsubscribe from this list: send the line "unsubscribe 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-03-27 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

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

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

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

Stefano Brivio (1):
  bcm43xx: fix radio_set_tx_iq

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

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

Re: [git patches] net driver fixes

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

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

Thanks
Guennadi
---
Guennadi Liakhovetski
-
To unsubscribe from this list: send the line "unsubscribe 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-03-22 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

Dale Farnsworth (1):
  mv643xx_eth: add mv643xx_eth_shutdown function

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

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

Larry Finger (1):
  bcm43xx: MANUALWLAN fixes

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

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

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

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

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

[git patches] net driver fixes

2007-03-15 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

Re: [git patches] net driver fixes

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

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

Applied, thanks Geert.
-
To unsubscribe from this list: send the line "unsubscribe 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-03-12 Thread Geert Uytterhoeven
On Tue, 6 Mar 2007, Jeff Garzik wrote:
> Jay Vosburgh (3):
>   bonding: Improve IGMP join processing

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

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

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

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
[EMAIL PROTECTED] --- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622  B-1935 Zaventem, Belgium
-
To unsubscribe from this list: send the line "unsubscribe 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-03-09 Thread Jeff Garzik

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

to receive the following updates:

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

Alan Cox (1):
  z85230: Fix FIFO handling

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

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

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

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-03-06 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

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

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

Sergei Shtylyov (1):
  natsemi: netpoll fixes

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

[git patches] net driver fixes

2007-03-02 Thread Jeff Garzik

Fixes du jour.

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

to receive the following updates:

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

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

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

Dave Jones (1):
  Fix mv643xx_eth compilation.

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

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

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

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

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

Stefano Brivio (1):
  bcm43xx: fix for 4309

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

[git patches] net driver fixes

2007-02-02 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

[git patches] net driver fixes

2007-01-30 Thread Jeff Garzik

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

to receive the following updates:

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

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

Andrew Morton (1):
  82596 warning fixes

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

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

Dmitriy Monakhov (1):
  Broadcom 4400 resume small fix

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

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

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

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

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

Re: [git patches] net driver fixes

2007-01-23 Thread Jeff Garzik

Auke Kok wrote:

Jeff Garzik wrote:

Auke Kok wrote:

Jeff Garzik wrote:

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


Jeff,

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


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


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


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


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


Jeff



-
To unsubscribe from this list: send the line "unsubscribe 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-01-22 Thread Jeff Garzik

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

to receive the following updates:

 drivers/net/ehea/ehea.h  |2 +-
 drivers/net/ehea/ehea_main.c |   56 +-
 drivers/net/ehea/ehea_phyp.c |   10 +-
 drivers/net/netxen/netxen_nic.h  |7 ++--
 drivers/net/netxen/netxen_nic_hw.c   |3 +-
 drivers/net/netxen/netxen_nic_main.c |2 +-
 drivers/net/pcmcia/3c589_cs.c|7 +++-
 drivers/net/phy/phy.c|3 +-
 8 files changed, 57 insertions(+), 33 deletions(-)

Amit S. Kale (2):
  NetXen: Firmware check modifications
  NetXen: Use pci_register_driver() instead of pci_module_init() in 
init_module

Komuro (1):
  modify 3c589_cs to be SMP safe

Kumar Gala (1):
  PHY: Export phy ethtool helpers

Thomas Klein (7):
  ehea: Fixed wrong dereferencation
  ehea: Fixing firmware queue config issue
  ehea: Modified initial autoneg state determination
  ehea: New method to determine number of available ports
  ehea: Improved logging of permission issues
  ehea: Added logging off associated errors
  ehea: Fixed possible nullpointer access

diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index 39ad9f7..be10a3a 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_0043"
+#define DRV_VERSION"EHEA_0044"
 
 #define EHEA_MSG_DEFAULT (NETIF_MSG_LINK | NETIF_MSG_TIMER \
| NETIF_MSG_RX_ERR | NETIF_MSG_TX_ERR)
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 83fa32f..1072e69 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -558,12 +558,12 @@ static irqreturn_t ehea_qp_aff_irq_handler(int irq, void 
*param)
u32 qp_token;
 
eqe = ehea_poll_eq(port->qp_eq);
-   ehea_debug("eqe=%p", eqe);
+
while (eqe) {
-   ehea_debug("*eqe=%lx", *(u64*)eqe);
-   eqe = ehea_poll_eq(port->qp_eq);
qp_token = EHEA_BMASK_GET(EHEA_EQE_QP_TOKEN, eqe->entry);
-   ehea_debug("next eqe=%p", eqe);
+   ehea_error("QP aff_err: entry=0x%lx, token=0x%x",
+  eqe->entry, qp_token);
+   eqe = ehea_poll_eq(port->qp_eq);
}
 
return IRQ_HANDLED;
@@ -575,8 +575,9 @@ static struct ehea_port *ehea_get_port(struct ehea_adapter 
*adapter,
int i;
 
for (i = 0; i < adapter->num_ports; i++)
-   if (adapter->port[i]->logical_port_id == logical_port)
-   return adapter->port[i];
+   if (adapter->port[i])
+   if (adapter->port[i]->logical_port_id == logical_port)
+   return adapter->port[i];
return NULL;
 }
 
@@ -642,6 +643,8 @@ int ehea_sense_port_attr(struct ehea_port *port)
break;
}
 
+   port->autoneg = 1;
+
/* Number of default QPs */
port->num_def_qps = cb0->num_default_qps;
 
@@ -728,10 +731,7 @@ int ehea_set_portspeed(struct ehea_port *port, u32 
port_speed)
}
} else {
if (hret == H_AUTHORITY) {
-   ehea_info("Hypervisor denied setting port speed. Either"
- " this partition is not authorized to set "
- "port speed or another partition has modified"
- " port speed first.");
+   ehea_info("Hypervisor denied setting port speed");
ret = -EPERM;
} else {
ret = -EIO;
@@ -998,7 +998,7 @@ static int ehea_configure_port(struct ehea_port *port)
 | EHEA_BMASK_SET(PXLY_RC_JUMBO_FRAME, 1);
 
for (i = 0; i < port->num_def_qps; i++)
-   cb0->default_qpn_arr[i] = port->port_res[i].qp->init_attr.qp_nr;
+   cb0->default_qpn_arr[i] = port->port_res[0].qp->init_attr.qp_nr;
 
if (netif_msg_ifup(port))
ehea_dump(cb0, sizeof(*cb0), "ehea_configure_port");
@@ -1485,11 +1485,12 @@ out:
 
 static void ehea_promiscuous_error(u64 hret, int enable)
 {
-   ehea_info("Hypervisor denied %sabling promiscuous mode.%s",
- enable == 1 ? "en" : "dis",
- hret != H_AUTHORITY ? "" : " Another partition owning a "
- "logical port on the same physical port might have altered "
- "promiscuous mode first.");
+   if (hret == H_AUTHORITY)
+   ehea_info("Hypervisor denied %sabling promiscuous mode",
+ enable == 1 ? "en" : "dis");
+   else
+   ehea_error("failed %sabling promiscuous mode",
+  enable == 1 ? "en" : "dis");
 }
 
 static void ehea_promiscuous(struc

Re: [git patches] net driver fixes

2007-01-22 Thread Auke Kok

Jeff Garzik wrote:

Auke Kok wrote:

Jeff Garzik wrote:

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


Jeff,

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


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


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



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-01-22 Thread Jeff Garzik

Auke Kok wrote:

Jeff Garzik wrote:

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


Jeff,

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


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


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


Jeff



-
To unsubscribe from this list: send the line "unsubscribe 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-01-22 Thread Auke Kok

Jeff Garzik wrote:

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


Jeff,

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


Cheers,

Auke
-
To unsubscribe from this list: send the line "unsubscribe 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-01-22 Thread Jeff Garzik

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

to receive the following updates:

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

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

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

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

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

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

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

[git patches] net driver fixes

2007-01-08 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/e1000/e1000_main.c  |6 
 drivers/net/ixgb/ixgb.h |1 +
 drivers/net/ixgb/ixgb_ethtool.c |1 +
 drivers/net/ixgb/ixgb_hw.c  |3 +-
 drivers/net/ixgb/ixgb_main.c|   57 ++
 drivers/net/qla3xxx.c   |   38 +++--
 drivers/net/wireless/ipw2100.c  |2 +-
 drivers/s390/net/qeth_main.c|   13 +---
 include/net/ieee80211.h |2 +-
 9 files changed, 88 insertions(+), 35 deletions(-)

Aaron Salter (1):
  ixgb: Write RA register high word first, increment version

Heiko Carstens (1):
  qeth: fix uaccess handling and get rid of unused variable

Jeff Garzik (1):
  Revert "e1000: disable TSO on the 82544 with slab debugging"

Jesse Brandeburg (2):
  ixgb: Fix early TSO completion
  ixgb: Maybe stop TX if not enough free descriptors

Ron Mercer (2):
  qla3xxx: Remove NETIF_F_LLTX from driver features.
  qla3xxx: Add delay to NVRAM register access.

Zhu Yi (2):
  ieee80211: WLAN_GET_SEQ_SEQ fix (select correct region)
  ipw2100: Fix dropping fragmented small packet problem

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 4c1ff75..c6259c7 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -995,12 +995,6 @@ e1000_probe(struct pci_dev *pdev,
   (adapter->hw.mac_type != e1000_82547))
netdev->features |= NETIF_F_TSO;
 
-#ifdef CONFIG_DEBUG_SLAB
-   /* 82544's work arounds do not play nicely with DEBUG SLAB */
-   if (adapter->hw.mac_type == e1000_82544)
-   netdev->features &= ~NETIF_F_TSO;
-#endif
-
 #ifdef NETIF_F_TSO6
if (adapter->hw.mac_type > e1000_82547_rev_2)
netdev->features |= NETIF_F_TSO6;
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h
index 50ffe90..f4aba43 100644
--- a/drivers/net/ixgb/ixgb.h
+++ b/drivers/net/ixgb/ixgb.h
@@ -171,6 +171,7 @@ struct ixgb_adapter {
 
/* TX */
struct ixgb_desc_ring tx_ring cacheline_aligned_in_smp;
+   unsigned int restart_queue;
unsigned long timeo_start;
uint32_t tx_cmd_type;
uint64_t hw_csum_tx_good;
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c
index cd22523..82c044d 100644
--- a/drivers/net/ixgb/ixgb_ethtool.c
+++ b/drivers/net/ixgb/ixgb_ethtool.c
@@ -79,6 +79,7 @@ static struct ixgb_stats ixgb_gstrings_stats[] = {
{"tx_window_errors", IXGB_STAT(net_stats.tx_window_errors)},
{"tx_deferred_ok", IXGB_STAT(stats.dc)},
{"tx_timeout_count", IXGB_STAT(tx_timeout_count) },
+   {"tx_restart_queue", IXGB_STAT(restart_queue) },
{"rx_long_length_errors", IXGB_STAT(stats.roc)},
{"rx_short_length_errors", IXGB_STAT(stats.ruc)},
 #ifdef NETIF_F_TSO
diff --git a/drivers/net/ixgb/ixgb_hw.c b/drivers/net/ixgb/ixgb_hw.c
index 02089b6..ecbf458 100644
--- a/drivers/net/ixgb/ixgb_hw.c
+++ b/drivers/net/ixgb/ixgb_hw.c
@@ -399,8 +399,9 @@ ixgb_init_rx_addrs(struct ixgb_hw *hw)
/* Zero out the other 15 receive addresses. */
DEBUGOUT("Clearing RAR[1-15]\n");
for(i = 1; i < IXGB_RAR_ENTRIES; i++) {
-   IXGB_WRITE_REG_ARRAY(hw, RA, (i << 1), 0);
+   /* Write high reg first to disable the AV bit first */
IXGB_WRITE_REG_ARRAY(hw, RA, ((i << 1) + 1), 0);
+   IXGB_WRITE_REG_ARRAY(hw, RA, (i << 1), 0);
}
 
return;
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index e628126..a083a91 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -36,7 +36,7 @@ static char ixgb_driver_string[] = "Intel(R) PRO/10GbE 
Network Driver";
 #else
 #define DRIVERNAPI "-NAPI"
 #endif
-#define DRV_VERSION"1.0.117-k2"DRIVERNAPI
+#define DRV_VERSION"1.0.126-k2"DRIVERNAPI
 char ixgb_driver_version[] = DRV_VERSION;
 static char ixgb_copyright[] = "Copyright (c) 1999-2006 Intel Corporation.";
 
@@ -1287,6 +1287,7 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff 
*skb,
struct ixgb_buffer *buffer_info;
int len = skb->len;
unsigned int offset = 0, size, count = 0, i;
+   unsigned int mss = skb_shinfo(skb)->gso_size;
 
unsigned int nr_frags = skb_shinfo(skb)->nr_frags;
unsigned int f;
@@ -1298,6 +1299,11 @@ ixgb_tx_map(struct ixgb_adapter *adapter, struct sk_buff 
*skb,
while(len) {
buffer_info = &tx_ring->buffer_info[i];
size = min(len, IXGB_MAX_DATA_PER_TXD);
+   /* Workaround for premature desc write-backs
+* in TSO mode.  Append 4-byte sentinel desc */
+   if (unlikely(mss && !nr_frags && size == len && size > 8))
+   size -= 4

Re: [git patches] net driver fixes

2007-01-01 Thread Herbert Xu
Jeff Garzik <[EMAIL PROTECTED]> wrote:
> 
>  e1000: Do not truncate TSO TCP header with 82544 workaround

This change obsoletes the following change.

>  e1000: disable TSO on the 82544 with slab debugging

So the slab debugging patch should be reverted.

Thanks,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
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

2006-12-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/bonding/bond_main.c   |   63 ++---
 drivers/net/cs89x0.c  |4 +-
 drivers/net/spider_net.c  |   20 ++--
 drivers/net/spider_net.h  |8 ++-
 drivers/net/wireless/zd1211rw/zd_ieee80211.h  |2 -
 drivers/net/wireless/zd1211rw/zd_mac.c|2 -
 drivers/net/wireless/zd1211rw/zd_mac.h|4 +-
 drivers/net/wireless/zd1211rw/zd_usb.c|   26 +-
 drivers/net/wireless/zd1211rw/zd_usb.h|   14 +++---
 net/ieee80211/ieee80211_tx.c  |4 +-
 net/ieee80211/softmac/ieee80211softmac_scan.c |2 -
 12 files changed, 76 insertions(+), 77 deletions(-)

George G. Davis:
  Fix an offset error when reading the CS89x0 ADD_PORT register

James K Lewis:
  Spidernet: remove ETH_ZLEN check in earlier patch

John W. Linville:
  Revert "zd1211rw: Removed unneeded packed attributes"

Laurent Riffard:
  bonding: fix an oops when slave device does not provide get_stats

Linas Vepstas:
  spidernet: poor network performance

Michael Buesch:
  softmac: remove netif_tx_disable when scanning

Ralf Baechle:
  drivers/net: SAA9730: Fix build error

Ulrich Kunitz:
  zd1211rw: Fix of a locking bug

Zhu Yi:
  ieee80211: Fix kernel panic when QoS is enabled

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 6e863aa..30ae712 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1769,8 +1769,8 @@ config VIA_RHINE_NAPI
  information.
 
 config LAN_SAA9730
-   bool "Philips SAA9730 Ethernet support (EXPERIMENTAL)"
-   depends on NET_PCI && EXPERIMENTAL && MIPS
+   bool "Philips SAA9730 Ethernet support"
+   depends on NET_PCI && PCI && MIPS_ATLAS
help
  The SAA9730 is a combined multimedia and peripheral controller used
  in thin clients, Internet access terminals, and diskless
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 17a4611..488d8ed 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1336,6 +1336,13 @@ int bond_enslave(struct net_device *bond
goto err_undo_flags;
}
 
+   if (slave_dev->get_stats == NULL) {
+   printk(KERN_NOTICE DRV_NAME
+   ": %s: the driver for slave device %s does not provide "
+   "get_stats function, network statistics will be "
+   "inaccurate.\n", bond_dev->name, slave_dev->name);
+   }
+
new_slave = kmalloc(sizeof(struct slave), GFP_KERNEL);
if (!new_slave) {
res = -ENOMEM;
@@ -3605,33 +3612,35 @@ static struct net_device_stats *bond_get
read_lock_bh(&bond->lock);
 
bond_for_each_slave(bond, slave, i) {
-   sstats = slave->dev->get_stats(slave->dev);
-
-   stats->rx_packets += sstats->rx_packets;
-   stats->rx_bytes += sstats->rx_bytes;
-   stats->rx_errors += sstats->rx_errors;
-   stats->rx_dropped += sstats->rx_dropped;
-
-   stats->tx_packets += sstats->tx_packets;
-   stats->tx_bytes += sstats->tx_bytes;
-   stats->tx_errors += sstats->tx_errors;
-   stats->tx_dropped += sstats->tx_dropped;
-
-   stats->multicast += sstats->multicast;
-   stats->collisions += sstats->collisions;
-
-   stats->rx_length_errors += sstats->rx_length_errors;
-   stats->rx_over_errors += sstats->rx_over_errors;
-   stats->rx_crc_errors += sstats->rx_crc_errors;
-   stats->rx_frame_errors += sstats->rx_frame_errors;
-   stats->rx_fifo_errors += sstats->rx_fifo_errors;
-   stats->rx_missed_errors += sstats->rx_missed_errors;
-
-   stats->tx_aborted_errors += sstats->tx_aborted_errors;
-   stats->tx_carrier_errors += sstats->tx_carrier_errors;
-   stats->tx_fifo_errors += sstats->tx_fifo_errors;
-   stats->tx_heartbeat_errors += sstats->tx_heartbeat_errors;
-   stats->tx_window_errors += sstats->tx_window_errors;
+   if (slave->dev->get_stats) {
+   sstats = slave->dev->get_stats(slave->dev);
+
+   stats->rx_packets += sstats->rx_packets;
+   stats->rx_bytes += sstats->rx_bytes;
+   stats->rx_errors += sstats->rx_errors;
+   stats->rx_dropped += sstats->rx_dropped;
+
+   stats->tx_packets += sstats->tx_packets;
+   stats->tx_bytes += sstats->tx_bytes;
+   stats->tx_errors += sstats->tx_errors;
+  

Re: [git patches] net driver fixes

2005-07-31 Thread Miles Bader
Linus Torvalds <[EMAIL PROTECTED]> writes:
> Ugh. It's not like we want people saying "Hi there" in our changelogs.

Well the _occasional_ friendly greeting might be kinda nice...

-miles

hi mom!
-- 
Ich bin ein Virus. Mach' mit und kopiere mich in Deine .signature. fnord.
-
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

2005-07-31 Thread Linus Torvalds


On Sun, 31 Jul 2005, Jeff Garzik wrote:
>
> Please pull from the 'upstream-fixes' branch of
> rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git
> 
> to obtain the fixes described in the attached diffstat/changelog/patch.

Could you please try to edit the emails you apply to something prettier 
than this:


[PATCH] Fix OMAP specific typo in smc91x.h

--ReaqsoxgOBHFXBhH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi Jeff,

Here's a little patch fixing a typo in smc91x.h.

Regards,

Tony

--ReaqsoxgOBHFXBhH
Content-Type: text/x-chdr; charset=us-ascii
Content-Disposition: inline; filename="patch-fix-typo-smc91x.h"
Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>

Ugh. It's not like we want people saying "Hi there" in our changelogs.

Linus
-
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/


  1   2   >