Re: [git patches] net driver fixes (50% rebased)
From: Jeff Garzik <[EMAIL PROTECTED]> Date: Sun, 24 Feb 2008 00:20:41 -0500 > > This is a 50% resend, rebased on top of net-2.6. > > Please pull from 'upstream-davem' branch of > master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git > upstream-davem > > to receive the following updates: Pulled and pushed back out, thanks Jeff. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes (50% rebased)
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
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
David Miller wrote: Jeff, I really don't want to pull that tree in. Please trust me as your upstream to handle merging issues, as needed. I trust you... Otherwise I wouldn't have volunteered to move my upstream from Linus to you :) My main issues/motivations were: * quite simply, just force of habit: I'm used to basing off of a recent Linus tree, to guarantee build testing against the latest. * worry about testing against a too-old tree, where non-networking fixes may have a relevant impact on my to-be-pushed netdrvr fixes. But in this case it's fair to say there are no such issues, and it was mainly just out of habit. So (as you saw in last email)... rebased and resend. Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
David Miller wrote: Jeff, I really don't want to pull that tree in. Please trust me as your upstream to handle merging issues, as needed. I trust you... Otherwise I wouldn't have volunteered to move my upstream from Linus to you :) My main issues/motivations were: * quite simply, just force of habit: I'm used to basing off of a recent Linus tree, to guarantee buildboot testing against the latest. * worry about testing against a too-old tree, where non-networking fixes may have a relevant impact on my to-be-pushed netdrvr fixes. But in this case it's fair to say there are no such issues, and it was mainly just out of habit. So (as you saw in last email)... rebased and resend. Jeff -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
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
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
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
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
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
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
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
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
Note: this is based off of Linus's latest commit (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous submissions are now upstream (thanks!). Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: MAINTAINERS| 11 +- drivers/net/cs89x0.c | 12 +- drivers/net/ehea/ehea.h| 34 +- drivers/net/ehea/ehea_main.c | 281 +--- drivers/net/fs_enet/fs_enet-main.c |7 +- drivers/net/gianfar.c | 14 +- drivers/net/igb/igb_main.c | 15 +-- drivers/net/pcmcia/pcnet_cs.c | 10 +- drivers/net/phy/mdio_bus.c |4 +- drivers/net/sis190.c | 15 ++- drivers/net/tlan.c | 64 drivers/net/tulip/uli526x.c| 12 ++- drivers/net/virtio_net.c |2 +- drivers/s390/net/claw.c| 39 +++--- 14 files changed, 399 insertions(+), 121 deletions(-) Adrian Bunk (1): net/phy/mdio_bus.c: fix a check-after-use Andy Gospodarek (1): igb: fix legacy mode irq issue Becky Bruce (1): gianfar: don't pass NULL dev ptr to DMA ops Bill Hayes (1): igb: Fix panic with NICs with 1000BASE-SX PHY Christian Borntraeger (1): virtio_net: Fix oops on early interrupts - introduced by virtio reset code Francois Romieu (1): sis190: read the mac address from the eeprom first Grant Grundler (2): update TULIP MAINTAINERS uli526x partially recognizing interface Harvey Harrison (1): tlan: add static to function definitions Julia Lawall (1): claw: make use of DIV_ROUND_UP Komuro (1): pcnet_cs: if AX88190-based card, printk "use axnet_cs instead" message. Leonardo Potenza (1): drivers/net/cs89x0.c: compilation warning fix Scott Wood (1): fs_enet: Don't call phy_mii_ioctl() in atomic context. Thomas Klein (1): ehea: add kdump support diff --git a/MAINTAINERS b/MAINTAINERS index 082d1ee..53b6e60 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3887,10 +3887,13 @@ M: [EMAIL PROTECTED] L: linux-kernel@vger.kernel.org S: Maintained -TULIP NETWORK DRIVER -L: [EMAIL PROTECTED] -W: http://sourceforge.net/projects/tulip/ -S: Orphan +TULIP NETWORK DRIVERS +P: Grant Grundler +M: [EMAIL PROTECTED] +P: Kyle McMartin +M: [EMAIL PROTECTED] +L: [EMAIL PROTECTED] +S: Maintained TUN/TAP driver P: Maxim Krasnyansky diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index 5717509..348371f 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c @@ -172,30 +172,30 @@ static char version[] __initdata = them to system IRQ numbers. This mapping is card specific and is set to the configuration of the Cirrus Eval board for this chip. */ #ifdef CONFIG_ARCH_CLPS7500 -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x80090303, 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; static unsigned int cs8900_irq_map[] = {12,0,0,0}; #elif defined(CONFIG_SH_HICOSH4) -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x0300, 0}; static unsigned int cs8900_irq_map[] = {1,0,0,0}; #elif defined(CONFIG_MACH_IXDP2351) -static unsigned int netcard_portlist[] __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; #include #elif defined(CONFIG_ARCH_IXDP2X01) #include -static unsigned int netcard_portlist[] __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0}; #elif defined(CONFIG_ARCH_PNX010X) #include #include #define CIRRUS_DEFAULT_BASEIO_ADDRESS(EXT_STATIC2_s0_BASE + 0x20) /* = Physical address 0x4820 */ #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ -static unsigned int netcard_portlist[] __initdata = {CIRRUS_DEFAULT_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; #else -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; static unsigned int cs8900_irq_map[] = {10,11,12,5}; #endif diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index 88fb53e..7c4ead3 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -40,7 +40,7 @@
[git patches] net driver fixes
Note: this is based off of Linus's latest commit (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous submissions are now upstream (thanks!). Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: MAINTAINERS| 11 +- drivers/net/cs89x0.c | 12 +- drivers/net/ehea/ehea.h| 34 +- drivers/net/ehea/ehea_main.c | 281 +--- drivers/net/fs_enet/fs_enet-main.c |7 +- drivers/net/gianfar.c | 14 +- drivers/net/igb/igb_main.c | 15 +-- drivers/net/pcmcia/pcnet_cs.c | 10 +- drivers/net/phy/mdio_bus.c |4 +- drivers/net/sis190.c | 15 ++- drivers/net/tlan.c | 64 drivers/net/tulip/uli526x.c| 12 ++- drivers/net/virtio_net.c |2 +- drivers/s390/net/claw.c| 39 +++--- 14 files changed, 399 insertions(+), 121 deletions(-) Adrian Bunk (1): net/phy/mdio_bus.c: fix a check-after-use Andy Gospodarek (1): igb: fix legacy mode irq issue Becky Bruce (1): gianfar: don't pass NULL dev ptr to DMA ops Bill Hayes (1): igb: Fix panic with NICs with 1000BASE-SX PHY Christian Borntraeger (1): virtio_net: Fix oops on early interrupts - introduced by virtio reset code Francois Romieu (1): sis190: read the mac address from the eeprom first Grant Grundler (2): update TULIP MAINTAINERS uli526x partially recognizing interface Harvey Harrison (1): tlan: add static to function definitions Julia Lawall (1): claw: make use of DIV_ROUND_UP Komuro (1): pcnet_cs: if AX88190-based card, printk use axnet_cs instead message. Leonardo Potenza (1): drivers/net/cs89x0.c: compilation warning fix Scott Wood (1): fs_enet: Don't call phy_mii_ioctl() in atomic context. Thomas Klein (1): ehea: add kdump support diff --git a/MAINTAINERS b/MAINTAINERS index 082d1ee..53b6e60 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3887,10 +3887,13 @@ M: [EMAIL PROTECTED] L: linux-kernel@vger.kernel.org S: Maintained -TULIP NETWORK DRIVER -L: [EMAIL PROTECTED] -W: http://sourceforge.net/projects/tulip/ -S: Orphan +TULIP NETWORK DRIVERS +P: Grant Grundler +M: [EMAIL PROTECTED] +P: Kyle McMartin +M: [EMAIL PROTECTED] +L: [EMAIL PROTECTED] +S: Maintained TUN/TAP driver P: Maxim Krasnyansky diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index 5717509..348371f 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c @@ -172,30 +172,30 @@ static char version[] __initdata = them to system IRQ numbers. This mapping is card specific and is set to the configuration of the Cirrus Eval board for this chip. */ #ifdef CONFIG_ARCH_CLPS7500 -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x80090303, 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; static unsigned int cs8900_irq_map[] = {12,0,0,0}; #elif defined(CONFIG_SH_HICOSH4) -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x0300, 0}; static unsigned int cs8900_irq_map[] = {1,0,0,0}; #elif defined(CONFIG_MACH_IXDP2351) -static unsigned int netcard_portlist[] __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; #include asm/irq.h #elif defined(CONFIG_ARCH_IXDP2X01) #include asm/irq.h -static unsigned int netcard_portlist[] __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0}; #elif defined(CONFIG_ARCH_PNX010X) #include asm/irq.h #include asm/arch/gpio.h #define CIRRUS_DEFAULT_BASEIO_ADDRESS(EXT_STATIC2_s0_BASE + 0x20) /* = Physical address 0x4820 */ #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ -static unsigned int netcard_portlist[] __initdata = {CIRRUS_DEFAULT_BASE, 0}; +static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; #else -static unsigned int netcard_portlist[] __initdata = +static unsigned int netcard_portlist[] __used __initdata = { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; static unsigned int cs8900_irq_map[] = {10,11,12,5}; #endif diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index 88fb53e..7c4ead3 100644 --- a/drivers/net/ehea/ehea.h +++
Re: [git patches] net driver fixes
From: Jeff Garzik [EMAIL PROTECTED] Date: Wed, 20 Feb 2008 11:55:57 -0500 Note: this is based off of Linus's latest commit (5d9c4a7de64d398604a978d267a6987f1f4025b7), since all my previous submissions are now upstream (thanks!). The whole point of my not rebasing net-2.6 is so that you can always use it as a base. With what you've giving me now I either have to: 1) Pull in Linus's tree to net-2.6, then pull from you. 2) Pull in directly from you to get it all. The whole point of my not touching or rebasing net-2.6 is so that everyonce can simply use it as a base and just keep working relative to it. If you have some need for upstream stuff outside networking (f.e. some ACPI bug prevents interrupts from working or there is some build failure), you can clone Linus's tree and pull net-2.6 and your driver bits into there for building and testing. Thanks for your consideration, I'm trying to show you mine by giving everyone a relatively stable tree in which all networking development can occur. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
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
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
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
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
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
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
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
Process note: 'upstream-davem' continues the git history that began the previous push. This sometimes happens when I continue to commit locally, working in parallel while waiting for changes to hit Linus upstream. As current net-2.6.git appears to have the same commit ids that I submitted in the previous push, this should be no problem at all, just wanted you to know. Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: drivers/net/e1000/e1000_ethtool.c |2 +- drivers/net/e1000/e1000_main.c|8 drivers/net/e1000e/netdev.c | 34 ++--- drivers/net/gianfar.c |4 +- drivers/net/gianfar_mii.c |4 +- drivers/net/hamradio/mkiss.c |5 +-- drivers/net/igb/igb_ethtool.c |2 +- drivers/net/igb/igb_main.c| 28 -- drivers/net/ixgb/ixgb_ethtool.c |2 +- drivers/net/ixgbe/ixgbe_main.c| 41 + drivers/net/pcmcia/smc91c92_cs.c | 12 +- drivers/net/tsi108_eth.c | 72 +--- 12 files changed, 114 insertions(+), 100 deletions(-) Al Viro (1): gianfar iomem misannotations Alex Bounine (5): Tsi108_eth: add missing linking to driver data Tsi108_eth: fix detection of 1000Mb mode Tsi108_eth: remove not needed code Tsi108_eth: fix link recovery after disconnect Tsi108_eth: Add ethtool support Auke Kok (7): e1000: warn if this driver is used for e1000e devices e1000e: Fix logic reversal keeping link active ixgbe: warn when device is in a x4 or lower width slot ixgbe: Disallow device reset during ethtool test ixgbe: remove accidentally added #ifdef e1000e: Fix CRC stripping in hardware context bug ixgbe: Correctly obtain protocol information on transmit Chuck Ebbert (1): Fix station address detection in smc David Graham (2): igb: PCIe devices do not need to unset MANC_ARP_ENA e1000e: PCIe devices do not need to unset MANC_ARP_ENA Jarek Poplawski (1): mkiss: ax_bump() locking fix Julia Lawall (1): replace code with FIELD_SIZEOF diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index d876787..85e66f4 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -50,7 +50,7 @@ struct e1000_stats { int stat_offset; }; -#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)->m), \ +#define E1000_STAT(m) FIELD_SIZEOF(struct e1000_adapter, m), \ offsetof(struct e1000_adapter, m) static const struct e1000_stats e1000_gstrings_stats[] = { { "rx_packets", E1000_STAT(stats.gprc) }, diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index d4ee8ec..0991648 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -1195,6 +1195,14 @@ e1000_probe(struct pci_dev *pdev, printk("%s\n", print_mac(mac, netdev->dev_addr)); + if (adapter->hw.bus_type == e1000_bus_type_pci_express) { + DPRINTK(PROBE, WARNING, "This device (id %04x:%04x) will no " + "longer be supported by this driver in the future.\n", + pdev->vendor, pdev->device); + DPRINTK(PROBE, WARNING, "please use the \"e1000e\" " + "driver instead.\n"); + } + /* reset the hardware with the new settings */ e1000_reset(adapter); diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index f58f017..3031d6d 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter) } } -static void e1000_release_manageability(struct e1000_adapter *adapter) -{ - if (adapter->flags & FLAG_MNG_PT_ENABLED) { - struct e1000_hw *hw = >hw; - - u32 manc = er32(MANC); - - /* re-enable hardware interception of ARP */ - manc |= E1000_MANC_ARP_EN; - manc &= ~E1000_MANC_EN_MNG2HOST; - - /* don't explicitly have to mess with MANC2H since -* MANC has an enable disable that gates MANC2H */ - ew32(MANC, manc); - } -} - /** * @e1000_alloc_ring - allocate memory for a ring structure **/ @@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter *adapter) manc = er32(MANC); - /* disable hardware interception of ARP */ - manc &= ~(E1000_MANC_ARP_EN); - /* enable receiving management packets to the host. this will probably * generate destination unreachable messages from the host OS, but * the packets will be handled on SMBUS */ @@ -1690,6 +1670,9 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
[git patches] net driver fixes
Process note: 'upstream-davem' continues the git history that began the previous push. This sometimes happens when I continue to commit locally, working in parallel while waiting for changes to hit Linus upstream. As current net-2.6.git appears to have the same commit ids that I submitted in the previous push, this should be no problem at all, just wanted you to know. Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: drivers/net/e1000/e1000_ethtool.c |2 +- drivers/net/e1000/e1000_main.c|8 drivers/net/e1000e/netdev.c | 34 ++--- drivers/net/gianfar.c |4 +- drivers/net/gianfar_mii.c |4 +- drivers/net/hamradio/mkiss.c |5 +-- drivers/net/igb/igb_ethtool.c |2 +- drivers/net/igb/igb_main.c| 28 -- drivers/net/ixgb/ixgb_ethtool.c |2 +- drivers/net/ixgbe/ixgbe_main.c| 41 + drivers/net/pcmcia/smc91c92_cs.c | 12 +- drivers/net/tsi108_eth.c | 72 +--- 12 files changed, 114 insertions(+), 100 deletions(-) Al Viro (1): gianfar iomem misannotations Alex Bounine (5): Tsi108_eth: add missing linking to driver data Tsi108_eth: fix detection of 1000Mb mode Tsi108_eth: remove not needed code Tsi108_eth: fix link recovery after disconnect Tsi108_eth: Add ethtool support Auke Kok (7): e1000: warn if this driver is used for e1000e devices e1000e: Fix logic reversal keeping link active ixgbe: warn when device is in a x4 or lower width slot ixgbe: Disallow device reset during ethtool test ixgbe: remove accidentally added #ifdef e1000e: Fix CRC stripping in hardware context bug ixgbe: Correctly obtain protocol information on transmit Chuck Ebbert (1): Fix station address detection in smc David Graham (2): igb: PCIe devices do not need to unset MANC_ARP_ENA e1000e: PCIe devices do not need to unset MANC_ARP_ENA Jarek Poplawski (1): mkiss: ax_bump() locking fix Julia Lawall (1): replace code with FIELD_SIZEOF diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index d876787..85e66f4 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -50,7 +50,7 @@ struct e1000_stats { int stat_offset; }; -#define E1000_STAT(m) sizeof(((struct e1000_adapter *)0)-m), \ +#define E1000_STAT(m) FIELD_SIZEOF(struct e1000_adapter, m), \ offsetof(struct e1000_adapter, m) static const struct e1000_stats e1000_gstrings_stats[] = { { rx_packets, E1000_STAT(stats.gprc) }, diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index d4ee8ec..0991648 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -1195,6 +1195,14 @@ e1000_probe(struct pci_dev *pdev, printk(%s\n, print_mac(mac, netdev-dev_addr)); + if (adapter-hw.bus_type == e1000_bus_type_pci_express) { + DPRINTK(PROBE, WARNING, This device (id %04x:%04x) will no + longer be supported by this driver in the future.\n, + pdev-vendor, pdev-device); + DPRINTK(PROBE, WARNING, please use the \e1000e\ + driver instead.\n); + } + /* reset the hardware with the new settings */ e1000_reset(adapter); diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index f58f017..3031d6d 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c @@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter) } } -static void e1000_release_manageability(struct e1000_adapter *adapter) -{ - if (adapter-flags FLAG_MNG_PT_ENABLED) { - struct e1000_hw *hw = adapter-hw; - - u32 manc = er32(MANC); - - /* re-enable hardware interception of ARP */ - manc |= E1000_MANC_ARP_EN; - manc = ~E1000_MANC_EN_MNG2HOST; - - /* don't explicitly have to mess with MANC2H since -* MANC has an enable disable that gates MANC2H */ - ew32(MANC, manc); - } -} - /** * @e1000_alloc_ring - allocate memory for a ring structure **/ @@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter *adapter) manc = er32(MANC); - /* disable hardware interception of ARP */ - manc = ~(E1000_MANC_ARP_EN); - /* enable receiving management packets to the host. this will probably * generate destination unreachable messages from the host OS, but * the packets will be handled on SMBUS */ @@ -1690,6 +1670,9 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) else
Re: [git patches] net driver fixes
From: Jeff Garzik [EMAIL PROTECTED] Date: Fri, 15 Feb 2008 11:03:14 -0500 Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem Pulled and pushed out. As I mentioned to John Linville just now, I'm going to try and keep net-2.6 running as long as I can without rebasing. So you can just keep piling patches into your upstream-davem branch without fear of my turning your world upside down with a rebase :-) -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
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
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
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
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
> > 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
First pass through the queue that built up over the weekend (plus a few others that just missed 2.6.24 release), with a focus specifically on fixes. Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: MAINTAINERS |2 - drivers/net/Kconfig |9 ++-- drivers/net/arm/at91_ether.c|2 +- drivers/net/bfin_mac.c | 107 +-- drivers/net/bfin_mac.h | 31 ++-- drivers/net/bonding/bond_main.c | 106 -- drivers/net/bonding/bonding.h |4 +- drivers/net/cxgb3/mc5.c |2 +- drivers/net/cxgb3/sge.c |2 +- drivers/net/cxgb3/t3_hw.c | 22 drivers/net/forcedeth.c | 61 ++ drivers/net/natsemi.c | 18 +-- drivers/net/pci-skeleton.c | 49 +- drivers/net/phy/Kconfig |5 ++ drivers/net/phy/Makefile|1 + drivers/net/phy/mdio_bus.c |2 +- drivers/net/phy/phy.c | 68 + drivers/net/phy/phy_device.c| 11 ++-- drivers/net/phy/realtek.c | 80 + drivers/net/sis190.c|2 +- drivers/net/sky2.c | 14 +++-- include/linux/phy.h |5 +- 22 files changed, 355 insertions(+), 248 deletions(-) create mode 100644 drivers/net/phy/realtek.c Aidan Williams (1): EMAC driver: bf537 MAC multicast hash filtering patch Alexey Demin (1): EMAC driver: fix bug - invalidate data cache of new_skb->data range when cache is WB Andy Gospodarek (1): bonding: fix race that causes invalid statistics Ayaz Abdulla (6): forcedeth: reset register fix forcedeth: checksum fix forcedeth: updated copyright section forcedeth: tx pause fix forcedeth: multicast fix forcedeth: mac address mcp77/79 Bryan Wu (3): EMAC driver: shorten the mdelay value to solve netperf performance issue EMAC driver: define MDC_CLK=2.5MHz and caculate mdc_div according to SCLK. EMAC driver: Fix bug: The clock divisor is set to all ones at reset. Jay Vosburgh (6): bonding: fix parameter parsing bonding: fix set_multicast_list locking bonding: fix NULL pointer deref in startup processing bonding: do not acquire rtnl in ARP monitor bonding: update version bonding: update MAINTAINERS Jeff Garzik (1): [netdrvr] sis190: build fix Jike Song (1): pci-skeleton: Misc fixes to build neatly Kim Phillips (1): phylib: Add Realtek 821x eth PHY support Mark Brown (1): natsemi: Update locking documentation Michael Hennerich (1): EMAC driver: ADSP-BF52x arch/mach support Mike Frysinger (1): EMAC driver: use simpler comment headers and strip out information that is maintained in the scm's log Nate Case (1): PHYLIB: Locking fixes for PHY I/O potentially sleeping Roel Kluin (1): drivers/net/arm/at91_ether.c: logical/bitand typo in function reset_phy() Roland Dreier (1): cxgb3: Remove incorrect __devinit annotations Stephen Hemminger (2): sky2: restore multicast addresses after recovery sky2: fix Wake On Lan interaction with BIOS Vitja Makarov (1): EMAC driver: add power down mode diff --git a/MAINTAINERS b/MAINTAINERS index 10011d9..77ad82a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -939,8 +939,6 @@ M: [EMAIL PROTECTED] S: Maintained BONDING DRIVER -P: Chad Tindel -M: [EMAIL PROTECTED] P: Jay Vosburgh M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 5a2d1dd..ca2552b 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -814,8 +814,8 @@ config ULTRA32 will be called smc-ultra32. config BFIN_MAC - tristate "Blackfin 536/537 on-chip mac support" - depends on NET_ETHERNET && (BF537 || BF536) && (!BF537_PORT_H) + tristate "Blackfin 527/536/537 on-chip mac support" + depends on NET_ETHERNET && (BF527 || BF537 || BF536) && (!BF537_PORT_H) select CRC32 select MII select PHYLIB @@ -828,7 +828,7 @@ config BFIN_MAC config BFIN_MAC_USE_L1 bool "Use L1 memory for rx/tx packets" - depends on BFIN_MAC && BF537 + depends on BFIN_MAC && (BF527 || BF537) default y help To get maximum network performance, you should use L1 memory as rx/tx buffers. @@ -855,7 +855,8 @@ config BFIN_RX_DESC_NUM config BFIN_MAC_RMII bool "RMII PHY Interface (EXPERIMENTAL)" depends on BFIN_MAC && EXPERIMENTAL - default n + default y if BFIN527_EZKIT + default n if BFIN537_STAMP help Use Reduced PHY MII Interface diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
[git patches] net driver fixes
First pass through the queue that built up over the weekend (plus a few others that just missed 2.6.24 release), with a focus specifically on fixes. Please pull from 'upstream-davem' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-davem to receive the following updates: MAINTAINERS |2 - drivers/net/Kconfig |9 ++-- drivers/net/arm/at91_ether.c|2 +- drivers/net/bfin_mac.c | 107 +-- drivers/net/bfin_mac.h | 31 ++-- drivers/net/bonding/bond_main.c | 106 -- drivers/net/bonding/bonding.h |4 +- drivers/net/cxgb3/mc5.c |2 +- drivers/net/cxgb3/sge.c |2 +- drivers/net/cxgb3/t3_hw.c | 22 drivers/net/forcedeth.c | 61 ++ drivers/net/natsemi.c | 18 +-- drivers/net/pci-skeleton.c | 49 +- drivers/net/phy/Kconfig |5 ++ drivers/net/phy/Makefile|1 + drivers/net/phy/mdio_bus.c |2 +- drivers/net/phy/phy.c | 68 + drivers/net/phy/phy_device.c| 11 ++-- drivers/net/phy/realtek.c | 80 + drivers/net/sis190.c|2 +- drivers/net/sky2.c | 14 +++-- include/linux/phy.h |5 +- 22 files changed, 355 insertions(+), 248 deletions(-) create mode 100644 drivers/net/phy/realtek.c Aidan Williams (1): EMAC driver: bf537 MAC multicast hash filtering patch Alexey Demin (1): EMAC driver: fix bug - invalidate data cache of new_skb-data range when cache is WB Andy Gospodarek (1): bonding: fix race that causes invalid statistics Ayaz Abdulla (6): forcedeth: reset register fix forcedeth: checksum fix forcedeth: updated copyright section forcedeth: tx pause fix forcedeth: multicast fix forcedeth: mac address mcp77/79 Bryan Wu (3): EMAC driver: shorten the mdelay value to solve netperf performance issue EMAC driver: define MDC_CLK=2.5MHz and caculate mdc_div according to SCLK. EMAC driver: Fix bug: The clock divisor is set to all ones at reset. Jay Vosburgh (6): bonding: fix parameter parsing bonding: fix set_multicast_list locking bonding: fix NULL pointer deref in startup processing bonding: do not acquire rtnl in ARP monitor bonding: update version bonding: update MAINTAINERS Jeff Garzik (1): [netdrvr] sis190: build fix Jike Song (1): pci-skeleton: Misc fixes to build neatly Kim Phillips (1): phylib: Add Realtek 821x eth PHY support Mark Brown (1): natsemi: Update locking documentation Michael Hennerich (1): EMAC driver: ADSP-BF52x arch/mach support Mike Frysinger (1): EMAC driver: use simpler comment headers and strip out information that is maintained in the scm's log Nate Case (1): PHYLIB: Locking fixes for PHY I/O potentially sleeping Roel Kluin (1): drivers/net/arm/at91_ether.c: logical/bitand typo in function reset_phy() Roland Dreier (1): cxgb3: Remove incorrect __devinit annotations Stephen Hemminger (2): sky2: restore multicast addresses after recovery sky2: fix Wake On Lan interaction with BIOS Vitja Makarov (1): EMAC driver: add power down mode diff --git a/MAINTAINERS b/MAINTAINERS index 10011d9..77ad82a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -939,8 +939,6 @@ M: [EMAIL PROTECTED] S: Maintained BONDING DRIVER -P: Chad Tindel -M: [EMAIL PROTECTED] P: Jay Vosburgh M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 5a2d1dd..ca2552b 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -814,8 +814,8 @@ config ULTRA32 will be called smc-ultra32. config BFIN_MAC - tristate Blackfin 536/537 on-chip mac support - depends on NET_ETHERNET (BF537 || BF536) (!BF537_PORT_H) + tristate Blackfin 527/536/537 on-chip mac support + depends on NET_ETHERNET (BF527 || BF537 || BF536) (!BF537_PORT_H) select CRC32 select MII select PHYLIB @@ -828,7 +828,7 @@ config BFIN_MAC config BFIN_MAC_USE_L1 bool Use L1 memory for rx/tx packets - depends on BFIN_MAC BF537 + depends on BFIN_MAC (BF527 || BF537) default y help To get maximum network performance, you should use L1 memory as rx/tx buffers. @@ -855,7 +855,8 @@ config BFIN_RX_DESC_NUM config BFIN_MAC_RMII bool RMII PHY Interface (EXPERIMENTAL) depends on BFIN_MAC EXPERIMENTAL - default n + default y if BFIN527_EZKIT + default n if BFIN537_STAMP help Use Reduced PHY MII Interface diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c index 25b114a..0ae0d83
Re: [git patches] net driver fixes
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
Jeff Garzik (1): [netdrvr] sis190: build fix But you did it wrong... sis190.c b/drivers/net/sis190.c index b570402..2e9e88b 100644 --- a/drivers/net/sis190.c +++ b/drivers/net/sis190.c @@ -326,7 +326,7 @@ static const struct { { SiS 191 PCI Gigabit Ethernet adapter }, }; -static struct pci_device_id sis190_pci_tbl[] __devinitdata = { +static struct pci_device_id sis190_pci_tbl[] = { { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 }, { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 }, { 0, }, The __devinitdata is OK, it is the following _devinitdata that had to be _devinitconst. Sam -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
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
On Wed, Jan 30, 2008 at 11:47:11PM +0100, Francois Romieu wrote: Sam Ravnborg [EMAIL PROTECTED] : [...] -static struct pci_device_id sis190_pci_tbl[] __devinitdata = { +static struct pci_device_id sis190_pci_tbl[] = { { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0190), 0, 0, 0 }, { PCI_DEVICE(PCI_VENDOR_ID_SI, 0x0191), 0, 0, 1 }, { 0, }, The __devinitdata is OK, it is the following _devinitdata that had to be _devinitconst. Strangely enough, removing the devinitdata from the sis190_pci_tbl silents the error message here. Do you have an explanation ? gcc compalins if you add const and non-const data to the same section which is the case in this driver. The bug are exposed now where __devinitdata are no longer an empty define. Sam -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS | 10 ++- drivers/net/3c509.c |4 + drivers/net/Kconfig | 20 +++--- drivers/net/fs_enet/fs_enet-main.c | 11 ++- drivers/net/loopback.c |2 +- drivers/net/netxen/netxen_nic.h | 69 + drivers/net/netxen/netxen_nic_init.c| 20 ++--- drivers/net/netxen/netxen_nic_main.c| 70 ++--- drivers/net/netxen/netxen_nic_niu.c |8 +- drivers/net/r8169.c |2 +- drivers/net/sky2.c | 48 +++- drivers/net/sky2.h |4 +- drivers/net/tulip/de4x5.c | 127 +++ drivers/net/tulip/tulip_core.c |3 +- drivers/net/tulip/xircom_cb.c | 54 ++--- drivers/net/usb/asix.c |6 +- drivers/net/wireless/rt2x00/rt2500usb.c |2 +- drivers/net/wireless/rt2x00/rt2x00pci.c | 20 - drivers/net/wireless/rt2x00/rt2x00usb.c | 17 - drivers/net/wireless/rt2x00/rt61pci.c | 12 +++ 20 files changed, 238 insertions(+), 271 deletions(-) Al Viro (3): xircom_cb endianness fixes de4x5 fixes endianness noise in tulip_core Anton Vorontsov (1): fs_enet: check for phydev existence in the ethtool handlers Dhananjay Phadke (1): netxen: fix byte-swapping in tx and rx Emil Medve (1): Fixed a small typo in the loopback driver Francois Romieu (1): r8169: fix missing loop variable increment Ivo van Doorn (2): rt2x00: Corectly initialize rt2500usb MAC rt2x00: Put 802.11 data on 4 byte boundary Jens Osterkamp (1): spidernet MAINTAINERship update Krzysztof Helt (1): 3c509: PnP resource management fix Mattias Nissler (1): rt2x00: Allow rt61 to catch up after a missing tx report Russ Dill (1): [usb netdev] asix: fix regression Stephen Hemminger (3): ip1000: menu location change sky2: large memory workaround. sky2: remove check for PCI wakeup setting from BIOS [EMAIL PROTECTED] (4): netxen: update MAINTAINERS netxen: update driver version netxen: stop second phy correctly netxen: optimize tx handling diff --git a/MAINTAINERS b/MAINTAINERS index b4f611c..92aa0a7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2739,8 +2739,8 @@ T:git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git S: Maintained NETXEN (1/10) GbE SUPPORT -P: Amit S. Kale -M: [EMAIL PROTECTED] +P: Dhananjay Phadke +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] W: http://www.netxen.com S: Supported @@ -3611,8 +3611,10 @@ L: linux-kernel@vger.kernel.org ? S: Supported SPIDERNET NETWORK DRIVER for CELL -P: Linas Vepstas -M: [EMAIL PROTECTED] +P: Ishizaki Kou +M: [EMAIL PROTECTED] +P: Jens Osterkamp +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] S: Supported diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c index edda6e1..8fafac9 100644 --- a/drivers/net/3c509.c +++ b/drivers/net/3c509.c @@ -385,6 +385,7 @@ static int __init el3_probe(int card_idx) #if defined(__ISAPNP__) static int pnp_cards; struct pnp_dev *idev = NULL; + int pnp_found = 0; if (nopnp == 1) goto no_pnp; @@ -430,6 +431,7 @@ __again: pnp_cards++; netdev_boot_setup_check(dev); + pnp_found = 1; goto found; } } @@ -560,6 +562,8 @@ no_pnp: lp = netdev_priv(dev); #if defined(__ISAPNP__) lp->dev = >dev; + if (pnp_found) + lp->type = EL3_PNP; #endif err = el3_common_init(dev); diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index d9107e5..114771a 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -166,16 +166,6 @@ config NET_SB1000 If you don't have this card, of course say N. -config IP1000 - tristate "IP1000 Gigabit Ethernet support" - depends on PCI && EXPERIMENTAL - select MII - ---help--- - This driver supports IP1000 gigabit Ethernet cards. - - To compile this driver as a module, choose M here: the module - will be called ipg. This is recommended. - source "drivers/net/arcnet/Kconfig" source "drivers/net/phy/Kconfig" @@ -1992,6 +1982,16 @@ config E1000E To compile this driver as a module, choose M here. The module will be called e1000e. +config IP1000 + tristate "IP1000 Gigabit Ethernet support" + depends on PCI && EXPERIMENTAL + select MII + ---help--- + This driver supports IP1000 gigabit Ethernet cards. + + To compile this
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS | 10 ++- drivers/net/3c509.c |4 + drivers/net/Kconfig | 20 +++--- drivers/net/fs_enet/fs_enet-main.c | 11 ++- drivers/net/loopback.c |2 +- drivers/net/netxen/netxen_nic.h | 69 + drivers/net/netxen/netxen_nic_init.c| 20 ++--- drivers/net/netxen/netxen_nic_main.c| 70 ++--- drivers/net/netxen/netxen_nic_niu.c |8 +- drivers/net/r8169.c |2 +- drivers/net/sky2.c | 48 +++- drivers/net/sky2.h |4 +- drivers/net/tulip/de4x5.c | 127 +++ drivers/net/tulip/tulip_core.c |3 +- drivers/net/tulip/xircom_cb.c | 54 ++--- drivers/net/usb/asix.c |6 +- drivers/net/wireless/rt2x00/rt2500usb.c |2 +- drivers/net/wireless/rt2x00/rt2x00pci.c | 20 - drivers/net/wireless/rt2x00/rt2x00usb.c | 17 - drivers/net/wireless/rt2x00/rt61pci.c | 12 +++ 20 files changed, 238 insertions(+), 271 deletions(-) Al Viro (3): xircom_cb endianness fixes de4x5 fixes endianness noise in tulip_core Anton Vorontsov (1): fs_enet: check for phydev existence in the ethtool handlers Dhananjay Phadke (1): netxen: fix byte-swapping in tx and rx Emil Medve (1): Fixed a small typo in the loopback driver Francois Romieu (1): r8169: fix missing loop variable increment Ivo van Doorn (2): rt2x00: Corectly initialize rt2500usb MAC rt2x00: Put 802.11 data on 4 byte boundary Jens Osterkamp (1): spidernet MAINTAINERship update Krzysztof Helt (1): 3c509: PnP resource management fix Mattias Nissler (1): rt2x00: Allow rt61 to catch up after a missing tx report Russ Dill (1): [usb netdev] asix: fix regression Stephen Hemminger (3): ip1000: menu location change sky2: large memory workaround. sky2: remove check for PCI wakeup setting from BIOS [EMAIL PROTECTED] (4): netxen: update MAINTAINERS netxen: update driver version netxen: stop second phy correctly netxen: optimize tx handling diff --git a/MAINTAINERS b/MAINTAINERS index b4f611c..92aa0a7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2739,8 +2739,8 @@ T:git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git S: Maintained NETXEN (1/10) GbE SUPPORT -P: Amit S. Kale -M: [EMAIL PROTECTED] +P: Dhananjay Phadke +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] W: http://www.netxen.com S: Supported @@ -3611,8 +3611,10 @@ L: linux-kernel@vger.kernel.org ? S: Supported SPIDERNET NETWORK DRIVER for CELL -P: Linas Vepstas -M: [EMAIL PROTECTED] +P: Ishizaki Kou +M: [EMAIL PROTECTED] +P: Jens Osterkamp +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] S: Supported diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c index edda6e1..8fafac9 100644 --- a/drivers/net/3c509.c +++ b/drivers/net/3c509.c @@ -385,6 +385,7 @@ static int __init el3_probe(int card_idx) #if defined(__ISAPNP__) static int pnp_cards; struct pnp_dev *idev = NULL; + int pnp_found = 0; if (nopnp == 1) goto no_pnp; @@ -430,6 +431,7 @@ __again: pnp_cards++; netdev_boot_setup_check(dev); + pnp_found = 1; goto found; } } @@ -560,6 +562,8 @@ no_pnp: lp = netdev_priv(dev); #if defined(__ISAPNP__) lp-dev = idev-dev; + if (pnp_found) + lp-type = EL3_PNP; #endif err = el3_common_init(dev); diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index d9107e5..114771a 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -166,16 +166,6 @@ config NET_SB1000 If you don't have this card, of course say N. -config IP1000 - tristate IP1000 Gigabit Ethernet support - depends on PCI EXPERIMENTAL - select MII - ---help--- - This driver supports IP1000 gigabit Ethernet cards. - - To compile this driver as a module, choose M here: the module - will be called ipg. This is recommended. - source drivers/net/arcnet/Kconfig source drivers/net/phy/Kconfig @@ -1992,6 +1982,16 @@ config E1000E To compile this driver as a module, choose M here. The module will be called e1000e. +config IP1000 + tristate IP1000 Gigabit Ethernet support + depends on PCI EXPERIMENTAL + select MII + ---help--- + This driver supports IP1000 gigabit Ethernet cards. + + To compile this driver as a
Re: [git patches] net driver fixes
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
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
On Sun, Dec 23, 2007 at 12:33:14AM -0500, Jeff Garzik wrote: > > A couple [minorly] notable wireless bug fixes, and plenty of viro fixes > for obscure issues :) Heh... FWIW, forcedeth patch (sent your way about two weeks ago) also belongs in the same set. If you need a resend - tell... There's another pile in drivers/net/wireless, but that's for linville to forward when he gets around to it. Pure annotation patches belong to past-2.6.24 merge. I also have starfire and epic100 fixes, but that'll have to wait until I get around to putting the cards into sparc box (mcast breakage for starfire and full-driver one for epic100; since nobody had cared for the latter since 2.3.late, well...) I think I'll have an ipg fix for you tomorrow, but I want to RTFM first to make sure that it makes sense. And there are several interesting issues in atl1, netxen and cxgb3, but those will have to wait for when I get around to asking maintainers just what the hell did they mean those to do. FWIW, drivers/net is fairly noise-free wrt sparse endianness warnings in my tree; the main exceptions are prism54 (oid_mgt.c and the nightmares it pulls) and skfp (AIX-shared vendor driver; 'nuff said, IMO). BTW, if you still have any documentation for xircom_cb from your fighting tulip-related stuff, it would be welcome - there are some oddities with rx ring handling (assuming that we care about that driver at all and it's not on the way out, that is). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
On Sun, Dec 23, 2007 at 12:33:14AM -0500, Jeff Garzik wrote: A couple [minorly] notable wireless bug fixes, and plenty of viro fixes for obscure issues :) Heh... FWIW, forcedeth patch (sent your way about two weeks ago) also belongs in the same set. If you need a resend - tell... There's another pile in drivers/net/wireless, but that's for linville to forward when he gets around to it. Pure annotation patches belong to past-2.6.24 merge. I also have starfire and epic100 fixes, but that'll have to wait until I get around to putting the cards into sparc box (mcast breakage for starfire and full-driver one for epic100; since nobody had cared for the latter since 2.3.late, well...) I think I'll have an ipg fix for you tomorrow, but I want to RTFM first to make sure that it makes sense. And there are several interesting issues in atl1, netxen and cxgb3, but those will have to wait for when I get around to asking maintainers just what the hell did they mean those to do. FWIW, drivers/net is fairly noise-free wrt sparse endianness warnings in my tree; the main exceptions are prism54 (oid_mgt.c and the nightmares it pulls) and skfp (AIX-shared vendor driver; 'nuff said, IMO). BTW, if you still have any documentation for xircom_cb from your fighting tulip-related stuff, it would be welcome - there are some oddities with rx ring handling (assuming that we care about that driver at all and it's not on the way out, that is). -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [git patches] net driver fixes
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
On Sun, Dec 23, 2007 at 01:42:14AM -0500, Jeff Garzik wrote: I applied it to #upstream (2.6.25) since forcedeth is not on any big-endian platforms AFAIK. All right, then... I hadn't been sure if it's onboard-only, that's all. I have an epic100 card too if you need it (though it sounds like you have something testable). Picked one for a fiver on ebay, just need to get around to putting it into that U60 box and testing; not a problem, just hadn't got around to doing that yet. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
A couple serious fixes (wireless, e100, sky2) and a bevy of minor ones. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS|6 ++ drivers/net/e100.c |5 ++- drivers/net/hamachi.c | 70 +--- drivers/net/ibm_newemac/debug.c|2 +- drivers/net/ixgb/ixgb_main.c | 16 +- drivers/net/pcmcia/pcnet_cs.c |1 + drivers/net/s2io.c |4 +- drivers/net/sis190.c | 10 ++-- drivers/net/sky2.c |9 +++- drivers/net/smc911x.h |2 +- drivers/net/starfire.c |2 +- drivers/net/sundance.c | 34 ++-- drivers/net/ucc_geth.c |2 +- drivers/net/ucc_geth_mii.h |2 +- drivers/net/wireless/Kconfig |1 + drivers/net/wireless/b43/leds.c|4 ++ drivers/net/wireless/b43/main.c| 22 drivers/net/wireless/b43/rfkill.c | 37 +++-- drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c |2 +- drivers/net/wireless/ipw2200.c |7 ++- drivers/net/wireless/iwlwifi/iwl3945-base.c|5 ++- drivers/net/wireless/iwlwifi/iwl4965-base.c|5 ++- drivers/net/wireless/zd1211rw/zd_mac.c | 10 +++- net/mac80211/ieee80211_rate.c |1 + 24 files changed, 168 insertions(+), 91 deletions(-) Adrian Bunk (3): drivers/net/sis190.c section fix drivers/net/s2io.c section fixes wireless/ipw2200.c: add __dev{init,exit} annotations Al Viro (4): sundance fixes starfire VLAN fix hamachi endianness fixes sis190 endianness Andrew Morton (2): ucc_geth: minor whitespace fix bcm43xx_debugfs sscanf fix Anton Vorontsov (1): ucc_geth: really fix section mismatch Auke Kok (1): e100: free IRQ to remove warningwhenrebooting Cyrill Gorcunov (2): ieee80211_rate: missed unlock iwlwifi3945/4965: fix rate control algo reference leak Dan Williams (1): libertas: select WIRELESS_EXT Jiri Slaby (1): Net: ibm_newemac, remove SPIN_LOCK_UNLOCKED Komuro (1): pcnet_cs: add new id Larry Finger (1): b43: Fix rfkill radio LED Matheos Worku (1): ixgb: make sure jumbos stay enabled after reset Paul Mundt (1): net: smc911x: shut up compiler warnings Stefano Brivio (1): libertas: add Dan Williams as maintainer Stephen Hemminger (1): sky2: RX lockup fix Ulrich Kunitz (1): zd1211rw: Fix alignment problems Zhu Yi (1): iwlwifi: fix rf_kill state inconsistent during suspend and resume diff --git a/MAINTAINERS b/MAINTAINERS index 9507b42..c331ba3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2489,6 +2489,12 @@ M: [EMAIL PROTECTED] W: ftp://ftp.kernel.org/pub/linux/docs/manpages S: Maintained +MARVELL LIBERTAS WIRELESS DRIVER +P: Dan Williams +M: [EMAIL PROTECTED] +L: [EMAIL PROTECTED] +S: Maintained + MARVELL MV643XX ETHERNET DRIVER P: Dale Farnsworth M: [EMAIL PROTECTED] diff --git a/drivers/net/e100.c b/drivers/net/e100.c index e1c8a0d..2b06e4b 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -2737,8 +2737,9 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state) pci_enable_wake(pdev, PCI_D3cold, 0); } - pci_disable_device(pdev); free_irq(pdev->irq, netdev); + + pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); return 0; @@ -2780,6 +2781,8 @@ static void e100_shutdown(struct pci_dev *pdev) pci_enable_wake(pdev, PCI_D3cold, 0); } + free_irq(pdev->irq, netdev); + pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); } diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c index ed407c8..b53f6b6 100644 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c @@ -204,8 +204,10 @@ KERN_INFO " Further modifications by Keith Underwood <[EMAIL PROTECTED]> /* Condensed bus+endian portability operations. */ #if ADDRLEN == 64 #define cpu_to_leXX(addr) cpu_to_le64(addr) +#define leXX_to_cpu(addr) le64_to_cpu(addr) #else #define cpu_to_leXX(addr) cpu_to_le32(addr) +#define leXX_to_cpu(addr) le32_to_cpu(addr) #endif @@ -465,12 +467,12 @@ enum intr_status_bits { /* The Hamachi Rx and Tx buffer descriptors. */ struct hamachi_desc { - u32 status_n_length; + __le32 status_n_length; #if ADDRLEN == 64 u32 pad; - u64 addr; + __le64 addr; #else - u32 addr; + __le32 addr; #endif }; @@ -874,13 +876,13 @@
[git patches] net driver fixes
A couple serious fixes (wireless, e100, sky2) and a bevy of minor ones. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS|6 ++ drivers/net/e100.c |5 ++- drivers/net/hamachi.c | 70 +--- drivers/net/ibm_newemac/debug.c|2 +- drivers/net/ixgb/ixgb_main.c | 16 +- drivers/net/pcmcia/pcnet_cs.c |1 + drivers/net/s2io.c |4 +- drivers/net/sis190.c | 10 ++-- drivers/net/sky2.c |9 +++- drivers/net/smc911x.h |2 +- drivers/net/starfire.c |2 +- drivers/net/sundance.c | 34 ++-- drivers/net/ucc_geth.c |2 +- drivers/net/ucc_geth_mii.h |2 +- drivers/net/wireless/Kconfig |1 + drivers/net/wireless/b43/leds.c|4 ++ drivers/net/wireless/b43/main.c| 22 drivers/net/wireless/b43/rfkill.c | 37 +++-- drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c |2 +- drivers/net/wireless/ipw2200.c |7 ++- drivers/net/wireless/iwlwifi/iwl3945-base.c|5 ++- drivers/net/wireless/iwlwifi/iwl4965-base.c|5 ++- drivers/net/wireless/zd1211rw/zd_mac.c | 10 +++- net/mac80211/ieee80211_rate.c |1 + 24 files changed, 168 insertions(+), 91 deletions(-) Adrian Bunk (3): drivers/net/sis190.c section fix drivers/net/s2io.c section fixes wireless/ipw2200.c: add __dev{init,exit} annotations Al Viro (4): sundance fixes starfire VLAN fix hamachi endianness fixes sis190 endianness Andrew Morton (2): ucc_geth: minor whitespace fix bcm43xx_debugfs sscanf fix Anton Vorontsov (1): ucc_geth: really fix section mismatch Auke Kok (1): e100: free IRQ to remove warningwhenrebooting Cyrill Gorcunov (2): ieee80211_rate: missed unlock iwlwifi3945/4965: fix rate control algo reference leak Dan Williams (1): libertas: select WIRELESS_EXT Jiri Slaby (1): Net: ibm_newemac, remove SPIN_LOCK_UNLOCKED Komuro (1): pcnet_cs: add new id Larry Finger (1): b43: Fix rfkill radio LED Matheos Worku (1): ixgb: make sure jumbos stay enabled after reset Paul Mundt (1): net: smc911x: shut up compiler warnings Stefano Brivio (1): libertas: add Dan Williams as maintainer Stephen Hemminger (1): sky2: RX lockup fix Ulrich Kunitz (1): zd1211rw: Fix alignment problems Zhu Yi (1): iwlwifi: fix rf_kill state inconsistent during suspend and resume diff --git a/MAINTAINERS b/MAINTAINERS index 9507b42..c331ba3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2489,6 +2489,12 @@ M: [EMAIL PROTECTED] W: ftp://ftp.kernel.org/pub/linux/docs/manpages S: Maintained +MARVELL LIBERTAS WIRELESS DRIVER +P: Dan Williams +M: [EMAIL PROTECTED] +L: [EMAIL PROTECTED] +S: Maintained + MARVELL MV643XX ETHERNET DRIVER P: Dale Farnsworth M: [EMAIL PROTECTED] diff --git a/drivers/net/e100.c b/drivers/net/e100.c index e1c8a0d..2b06e4b 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -2737,8 +2737,9 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state) pci_enable_wake(pdev, PCI_D3cold, 0); } - pci_disable_device(pdev); free_irq(pdev-irq, netdev); + + pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); return 0; @@ -2780,6 +2781,8 @@ static void e100_shutdown(struct pci_dev *pdev) pci_enable_wake(pdev, PCI_D3cold, 0); } + free_irq(pdev-irq, netdev); + pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); } diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c index ed407c8..b53f6b6 100644 --- a/drivers/net/hamachi.c +++ b/drivers/net/hamachi.c @@ -204,8 +204,10 @@ KERN_INFOFurther modifications by Keith Underwood [EMAIL PROTECTED] /* Condensed bus+endian portability operations. */ #if ADDRLEN == 64 #define cpu_to_leXX(addr) cpu_to_le64(addr) +#define leXX_to_cpu(addr) le64_to_cpu(addr) #else #define cpu_to_leXX(addr) cpu_to_le32(addr) +#define leXX_to_cpu(addr) le32_to_cpu(addr) #endif @@ -465,12 +467,12 @@ enum intr_status_bits { /* The Hamachi Rx and Tx buffer descriptors. */ struct hamachi_desc { - u32 status_n_length; + __le32 status_n_length; #if ADDRLEN == 64 u32 pad; - u64 addr; + __le64 addr; #else - u32 addr; + __le32 addr; #endif }; @@ -874,13 +876,13 @@ static
[git patches] net driver fixes
Nothing remarkable. Mainly bonding fixes and bringing ibm_newemac up to snuff. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: Documentation/networking/bonding.txt | 29 - arch/powerpc/boot/dts/sequoia.dts|5 ++ drivers/net/Kconfig |1 + drivers/net/bonding/bond_main.c | 116 +- drivers/net/bonding/bond_sysfs.c | 94 +--- drivers/net/bonding/bonding.h|4 +- drivers/net/cxgb3/regs.h | 27 - drivers/net/cxgb3/t3_hw.c|6 +- drivers/net/cxgb3/xgmac.c| 44 +- drivers/net/e100.c |6 +- drivers/net/e1000/e1000_ethtool.c|2 +- drivers/net/e1000e/ethtool.c |2 +- drivers/net/ibm_newemac/core.c | 56 +++- drivers/net/ibm_newemac/core.h | 11 +++- drivers/net/ibm_newemac/debug.c |5 ++ drivers/net/ibm_newemac/debug.h |5 ++ drivers/net/ibm_newemac/emac.h |5 ++ drivers/net/ibm_newemac/mal.c|5 ++ drivers/net/ibm_newemac/mal.h|5 ++ drivers/net/ibm_newemac/phy.c| 81 +++ drivers/net/ibm_newemac/phy.h|5 ++ drivers/net/ibm_newemac/rgmii.c | 25 +--- drivers/net/ibm_newemac/rgmii.h | 10 +++- drivers/net/ibm_newemac/tah.c|8 ++- drivers/net/ibm_newemac/tah.h|5 ++ drivers/net/ibm_newemac/zmii.c |9 +++- drivers/net/ibm_newemac/zmii.h |5 ++ drivers/net/s2io-regs.h |1 + drivers/net/s2io.c | 16 +- include/linux/if_bonding.h |3 +- 30 files changed, 423 insertions(+), 173 deletions(-) Auke Kok (1): e100: cleanup unneeded math Benjamin Herrenschmidt (5): ibm_newemac: Fix ZMII refcounting bug ibm_newemac: Workaround reset timeout when no link ibm_newemac: Cleanup/Fix RGMII MDIO support detection ibm_newemac: Cleanup/fix support for STACR register variants ibm_newemac: Update file headers copyright notices David Sterba (1): bonding: Fix time comparison Divy Le Ray (1): cxgb3 - T3C support update Eliezer Tamir (1): make bnx2x select ZLIB_INFLATE Hugh Blemings (1): ibm_newemac: Skip EMACs that are marked unused by the firmware Jay Vosburgh (2): bonding: Add new layer2+3 hash for xor/802.3ad modes bonding: Fix race at module unload Roel Kluin (1): e1000: fix memcpy in e1000_get_strings Sreenivasa Honnur (1): S2io: Check for register initialization completion before accesing device registers Stefan Roese (2): ibm_newemac: Add BCM5248 and Marvell 88E PHY support ibm_newemac: Add ET1011c PHY support Valentine Barshak (3): ibm_newemac: Correct opb_bus_freq value ibm_newemac: Fix typo reading TAH channel info ibm_newemac: Call dev_set_drvdata() before tah_reset() Wagner Ferenc (5): bonding: Remove trailing NULs from sysfs interface. bonding: Return nothing for not applicable values bonding: Purely cosmetic: rename a local variable bonding: Coding style: break line after the if condition bonding: Allow setting and querying xmit policy regardless of mode diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 1134062..6cc30e0 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt @@ -554,6 +554,30 @@ xmit_hash_policy This algorithm is 802.3ad compliant. + layer2+3 + + This policy uses a combination of layer2 and layer3 + protocol information to generate the hash. + + Uses XOR of hardware MAC addresses and IP addresses to + generate the hash. The formula is + + (((source IP XOR dest IP) AND 0x) XOR + ( source MAC XOR destination MAC )) + modulo slave count + + This algorithm will place all traffic to a particular + network peer on the same slave. For non-IP traffic, + the formula is the same as for the layer2 transmit + hash policy. + + This policy is intended to provide a more balanced + distribution of traffic than layer2 alone, especially + in environments where a layer3 gateway device is + required to reach most destinations. + + This algorithm is 802.3ad complient. + layer3+4 This policy uses upper layer protocol information, @@ -589,8 +613,9 @@ xmit_hash_policy or may not tolerate this noncompliance. The default value is layer2. This option was added in bonding -version 2.6.3. In earlier
[git patches] net driver fixes
Nothing remarkable. Mainly bonding fixes and bringing ibm_newemac up to snuff. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: Documentation/networking/bonding.txt | 29 - arch/powerpc/boot/dts/sequoia.dts|5 ++ drivers/net/Kconfig |1 + drivers/net/bonding/bond_main.c | 116 +- drivers/net/bonding/bond_sysfs.c | 94 +--- drivers/net/bonding/bonding.h|4 +- drivers/net/cxgb3/regs.h | 27 - drivers/net/cxgb3/t3_hw.c|6 +- drivers/net/cxgb3/xgmac.c| 44 +- drivers/net/e100.c |6 +- drivers/net/e1000/e1000_ethtool.c|2 +- drivers/net/e1000e/ethtool.c |2 +- drivers/net/ibm_newemac/core.c | 56 +++- drivers/net/ibm_newemac/core.h | 11 +++- drivers/net/ibm_newemac/debug.c |5 ++ drivers/net/ibm_newemac/debug.h |5 ++ drivers/net/ibm_newemac/emac.h |5 ++ drivers/net/ibm_newemac/mal.c|5 ++ drivers/net/ibm_newemac/mal.h|5 ++ drivers/net/ibm_newemac/phy.c| 81 +++ drivers/net/ibm_newemac/phy.h|5 ++ drivers/net/ibm_newemac/rgmii.c | 25 +--- drivers/net/ibm_newemac/rgmii.h | 10 +++- drivers/net/ibm_newemac/tah.c|8 ++- drivers/net/ibm_newemac/tah.h|5 ++ drivers/net/ibm_newemac/zmii.c |9 +++- drivers/net/ibm_newemac/zmii.h |5 ++ drivers/net/s2io-regs.h |1 + drivers/net/s2io.c | 16 +- include/linux/if_bonding.h |3 +- 30 files changed, 423 insertions(+), 173 deletions(-) Auke Kok (1): e100: cleanup unneeded math Benjamin Herrenschmidt (5): ibm_newemac: Fix ZMII refcounting bug ibm_newemac: Workaround reset timeout when no link ibm_newemac: Cleanup/Fix RGMII MDIO support detection ibm_newemac: Cleanup/fix support for STACR register variants ibm_newemac: Update file headers copyright notices David Sterba (1): bonding: Fix time comparison Divy Le Ray (1): cxgb3 - T3C support update Eliezer Tamir (1): make bnx2x select ZLIB_INFLATE Hugh Blemings (1): ibm_newemac: Skip EMACs that are marked unused by the firmware Jay Vosburgh (2): bonding: Add new layer2+3 hash for xor/802.3ad modes bonding: Fix race at module unload Roel Kluin (1): e1000: fix memcpy in e1000_get_strings Sreenivasa Honnur (1): S2io: Check for register initialization completion before accesing device registers Stefan Roese (2): ibm_newemac: Add BCM5248 and Marvell 88E PHY support ibm_newemac: Add ET1011c PHY support Valentine Barshak (3): ibm_newemac: Correct opb_bus_freq value ibm_newemac: Fix typo reading TAH channel info ibm_newemac: Call dev_set_drvdata() before tah_reset() Wagner Ferenc (5): bonding: Remove trailing NULs from sysfs interface. bonding: Return nothing for not applicable values bonding: Purely cosmetic: rename a local variable bonding: Coding style: break line after the if condition bonding: Allow setting and querying xmit policy regardless of mode diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 1134062..6cc30e0 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt @@ -554,6 +554,30 @@ xmit_hash_policy This algorithm is 802.3ad compliant. + layer2+3 + + This policy uses a combination of layer2 and layer3 + protocol information to generate the hash. + + Uses XOR of hardware MAC addresses and IP addresses to + generate the hash. The formula is + + (((source IP XOR dest IP) AND 0x) XOR + ( source MAC XOR destination MAC )) + modulo slave count + + This algorithm will place all traffic to a particular + network peer on the same slave. For non-IP traffic, + the formula is the same as for the layer2 transmit + hash policy. + + This policy is intended to provide a more balanced + distribution of traffic than layer2 alone, especially + in environments where a layer3 gateway device is + required to reach most destinations. + + This algorithm is 802.3ad complient. + layer3+4 This policy uses upper layer protocol information, @@ -589,8 +613,9 @@ xmit_hash_policy or may not tolerate this noncompliance. The default value is layer2. This option was added in bonding -version 2.6.3. In earlier
[git patches] net driver fixes
Fixes several ugly bugs... Please pull from 'upstream-fixes' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-fixes to receive the following updates: drivers/net/fec_mpc52xx.c|4 ++-- drivers/net/gianfar.c|2 +- drivers/net/pasemi_mac.c |4 ++-- drivers/net/phy/mdio_bus.c |9 + drivers/net/phy/phy_device.c | 12 drivers/net/sky2.c |6 ++ drivers/net/smc911x.c|2 +- include/linux/phy.h |1 + 8 files changed, 26 insertions(+), 14 deletions(-) mode change 100755 => 100644 drivers/net/chelsio/cxgb2.c mode change 100755 => 100644 drivers/net/chelsio/pm3393.c mode change 100755 => 100644 drivers/net/chelsio/sge.c mode change 100755 => 100644 drivers/net/chelsio/sge.h Anton Vorontsov (1): PHY: Add the phy_device_release device method. David Woodhouse (1): Don't claim to do IPv6 checksum offload Divy Le Ray (1): cxgb - revert file mode changes. Grant Likely (1): gianfar: fix compile warning Jon Smirl (1): Fix memory corruption in fec_mpc52xx Olof Johansson (1): pasemi_mac: Fix reuse of free'd skb Stephen Hemminger (1): sky2: recovery deadlock fix Wang Chen (1): SMC911X: Fix using of dereferenced skb after netif_rx diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/pm3393.c b/drivers/net/chelsio/pm3393.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h old mode 100755 new mode 100644 diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index bf5a7ca..79f7ead 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c @@ -422,7 +422,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id) rskb = bcom_retrieve_buffer(priv->rx_dmatsk, , (struct bcom_bd **)); - dma_unmap_single(>dev, bd->skb_pa, skb->len, DMA_FROM_DEVICE); + dma_unmap_single(>dev, bd->skb_pa, rskb->len, DMA_FROM_DEVICE); /* Test for errors in received frame */ if (status & BCOM_FEC_RX_BD_ERRORS) { @@ -467,7 +467,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id) bcom_prepare_next_buffer(priv->rx_dmatsk); bd->status = FEC_RX_BUFFER_SIZE; - bd->skb_pa = dma_map_single(>dev, rskb->data, + bd->skb_pa = dma_map_single(>dev, skb->data, FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE); bcom_submit_next_buffer(priv->rx_dmatsk, skb); diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 38268d7..0431e9e 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -696,7 +696,7 @@ int startup_gfar(struct net_device *dev) { struct txbd8 *txbdp; struct rxbd8 *rxbdp; - dma_addr_t addr; + dma_addr_t addr = 0; unsigned long vaddr; int i; struct gfar_private *priv = netdev_priv(dev); diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c index 09b4fde..816a59e 100644 --- a/drivers/net/pasemi_mac.c +++ b/drivers/net/pasemi_mac.c @@ -586,7 +586,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac *mac, int limit) /* CRC error flagged */ mac->netdev->stats.rx_errors++; mac->netdev->stats.rx_crc_errors++; - dev_kfree_skb_irq(skb); + /* No need to free skb, it'll be reused */ goto next; } @@ -1362,7 +1362,7 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netif_napi_add(dev, >napi, pasemi_mac_poll, 64); - dev->features = NETIF_F_HW_CSUM | NETIF_F_LLTX | NETIF_F_SG; + dev->features = NETIF_F_IP_CSUM | NETIF_F_LLTX | NETIF_F_SG; /* These should come out of the device tree eventually */ mac->dma_txch = index; diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index fc2f0e6..c30196d 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -91,9 +91,12 @@ int mdiobus_register(struct mii_bus *bus) err = device_register(>dev); - if (err) + if (err) { printk(KERN_ERR "phy %d failed to register\n", i); + phy_device_free(phydev); + phydev = NULL; + } } bus->phy_map[i] = phydev; @@ -110,10 +113,8 @@ void mdiobus_unregister(struct mii_bus *bus) int i; for
[git patches] net driver fixes
Fixes several ugly bugs... Please pull from 'upstream-fixes' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-fixes to receive the following updates: drivers/net/fec_mpc52xx.c|4 ++-- drivers/net/gianfar.c|2 +- drivers/net/pasemi_mac.c |4 ++-- drivers/net/phy/mdio_bus.c |9 + drivers/net/phy/phy_device.c | 12 drivers/net/sky2.c |6 ++ drivers/net/smc911x.c|2 +- include/linux/phy.h |1 + 8 files changed, 26 insertions(+), 14 deletions(-) mode change 100755 = 100644 drivers/net/chelsio/cxgb2.c mode change 100755 = 100644 drivers/net/chelsio/pm3393.c mode change 100755 = 100644 drivers/net/chelsio/sge.c mode change 100755 = 100644 drivers/net/chelsio/sge.h Anton Vorontsov (1): PHY: Add the phy_device_release device method. David Woodhouse (1): Don't claim to do IPv6 checksum offload Divy Le Ray (1): cxgb - revert file mode changes. Grant Likely (1): gianfar: fix compile warning Jon Smirl (1): Fix memory corruption in fec_mpc52xx Olof Johansson (1): pasemi_mac: Fix reuse of free'd skb Stephen Hemminger (1): sky2: recovery deadlock fix Wang Chen (1): SMC911X: Fix using of dereferenced skb after netif_rx diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/pm3393.c b/drivers/net/chelsio/pm3393.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c old mode 100755 new mode 100644 diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h old mode 100755 new mode 100644 diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index bf5a7ca..79f7ead 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c @@ -422,7 +422,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id) rskb = bcom_retrieve_buffer(priv-rx_dmatsk, status, (struct bcom_bd **)bd); - dma_unmap_single(dev-dev, bd-skb_pa, skb-len, DMA_FROM_DEVICE); + dma_unmap_single(dev-dev, bd-skb_pa, rskb-len, DMA_FROM_DEVICE); /* Test for errors in received frame */ if (status BCOM_FEC_RX_BD_ERRORS) { @@ -467,7 +467,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id) bcom_prepare_next_buffer(priv-rx_dmatsk); bd-status = FEC_RX_BUFFER_SIZE; - bd-skb_pa = dma_map_single(dev-dev, rskb-data, + bd-skb_pa = dma_map_single(dev-dev, skb-data, FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE); bcom_submit_next_buffer(priv-rx_dmatsk, skb); diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index 38268d7..0431e9e 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -696,7 +696,7 @@ int startup_gfar(struct net_device *dev) { struct txbd8 *txbdp; struct rxbd8 *rxbdp; - dma_addr_t addr; + dma_addr_t addr = 0; unsigned long vaddr; int i; struct gfar_private *priv = netdev_priv(dev); diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c index 09b4fde..816a59e 100644 --- a/drivers/net/pasemi_mac.c +++ b/drivers/net/pasemi_mac.c @@ -586,7 +586,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac *mac, int limit) /* CRC error flagged */ mac-netdev-stats.rx_errors++; mac-netdev-stats.rx_crc_errors++; - dev_kfree_skb_irq(skb); + /* No need to free skb, it'll be reused */ goto next; } @@ -1362,7 +1362,7 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent) netif_napi_add(dev, mac-napi, pasemi_mac_poll, 64); - dev-features = NETIF_F_HW_CSUM | NETIF_F_LLTX | NETIF_F_SG; + dev-features = NETIF_F_IP_CSUM | NETIF_F_LLTX | NETIF_F_SG; /* These should come out of the device tree eventually */ mac-dma_txch = index; diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index fc2f0e6..c30196d 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -91,9 +91,12 @@ int mdiobus_register(struct mii_bus *bus) err = device_register(phydev-dev); - if (err) + if (err) { printk(KERN_ERR phy %d failed to register\n, i); + phy_device_free(phydev); + phydev = NULL; + } } bus-phy_map[i] = phydev; @@ -110,10 +113,8 @@ void mdiobus_unregister(struct mii_bus *bus) int i;
Re: [LIKELY_SPAM][git patches] net driver fixes
Jeff Garzik wrote: Notes: 1) Several of these are resends from the last submission. 2) That chelsio file mode change (644->755) is a bit annoying. Can git do chmod as a changeset by itself? Sorry for this. I had not noticed it. If any help, I just submitted a patch reverting the file mode changes. Cheers, Divy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [LIKELY_SPAM][git patches] net driver fixes
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
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/Kconfig|2 +- drivers/net/amd8111e.c |6 ++ drivers/net/bfin_mac.c |2 +- drivers/net/ehea/ehea.h|2 +- drivers/net/ehea/ehea_main.c | 20 drivers/net/ehea/ehea_qmr.h|4 ++-- drivers/net/forcedeth.c| 38 +- drivers/net/ibm_newemac/core.c | 31 --- drivers/net/ibm_newemac/core.h |1 + drivers/net/sky2.c |6 +- drivers/net/smc911x.c | 19 +-- drivers/net/smc911x.h |2 +- drivers/net/smc91x.h |2 +- drivers/net/tulip/dmfe.c |4 ++-- drivers/net/usb/dm9601.c |2 +- include/linux/pci_ids.h|4 16 files changed, 84 insertions(+), 61 deletions(-) Ayaz Abdulla (2): forcedeth: new mcp79 pci ids forcedeth boot delay fix Benjamin Herrenschmidt (1): ibm_newemac: Fix possible lockup on close Jeff Garzik (1): dmfe: checkpatch fix (add whitespace) Jiri Bohac (1): amd8111e: don't call napi_enable if configured w/o NAPI Maxim Levitsky (1): NET: dmfe: don't access configuration space in D3 state Mike Frysinger (1): Blackfin SMC91x Driver: punt CONFIG_BFIN -- we already have CONFIG_BLACKFIN Peter Korsgaard (4): dm9601: Fix printk smc911x: Fix undefined CONFIG_ symbol warning smc911x: Fix unused variable warning. smc911x: Fix multicast handling Stephen Hemminger (1): sky2: disable rx checksum on Yukon XL Thomas Klein (2): ehea: Improve tx packets counting ehea: Reworked rcv queue handling to log only fatal errors Vitja Makarov (1): Blackfin EMAC driver: fix bug - NAT doesn't work with bfin_mac driver diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index e8d69b0..1437b37 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -888,7 +888,7 @@ config SMC91X tristate "SMC 91C9x/91C1xxx support" select CRC32 select MII - depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || SOC_AU1X00 || BFIN + depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || SOC_AU1X00 || BLACKFIN help This is a driver for SMC's 91x series of Ethernet chipsets, including the SMC91C94 and the SMC91C111. Say Y if you want it diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c index eebf5bb..e7fdd81 100644 --- a/drivers/net/amd8111e.c +++ b/drivers/net/amd8111e.c @@ -1340,7 +1340,9 @@ static int amd8111e_close(struct net_device * dev) struct amd8111e_priv *lp = netdev_priv(dev); netif_stop_queue(dev); +#ifdef CONFIG_AMD8111E_NAPI napi_disable(>napi); +#endif spin_lock_irq(>lock); @@ -1372,7 +1374,9 @@ static int amd8111e_open(struct net_device * dev ) dev->name, dev)) return -EAGAIN; +#ifdef CONFIG_AMD8111E_NAPI napi_enable(>napi); +#endif spin_lock_irq(>lock); @@ -1380,7 +1384,9 @@ static int amd8111e_open(struct net_device * dev ) if(amd8111e_restart(dev)){ spin_unlock_irq(>lock); +#ifdef CONFIG_AMD8111E_NAPI napi_disable(>napi); +#endif if (dev->irq) free_irq(dev->irq, dev); return -ENOMEM; diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 084acfd..f0f8516 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c @@ -676,7 +676,7 @@ static void bf537mac_rx(struct net_device *dev) skb->protocol = eth_type_trans(skb, dev); #if defined(BFIN_MAC_CSUM_OFFLOAD) skb->csum = current_rx_ptr->status.ip_payload_csum; - skb->ip_summed = CHECKSUM_PARTIAL; + skb->ip_summed = CHECKSUM_COMPLETE; #endif netif_rx(skb); diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index f78e5bf..5f82a46 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -40,7 +40,7 @@ #include #define DRV_NAME "ehea" -#define DRV_VERSION"EHEA_0080" +#define DRV_VERSION"EHEA_0083" /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index f0319f1..869e160 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -136,7 +136,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev) struct ehea_port *port = netdev_priv(dev); struct net_device_stats *stats = >stats; struct hcp_ehea_port_cb2 *cb2; - u64 hret, rx_packets; + u64 hret, rx_packets, tx_packets; int i; memset(stats, 0, sizeof(*stats)); @@ -162,7 +162,11 @@ static struct net_device_stats
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/Kconfig|2 +- drivers/net/amd8111e.c |6 ++ drivers/net/bfin_mac.c |2 +- drivers/net/ehea/ehea.h|2 +- drivers/net/ehea/ehea_main.c | 20 drivers/net/ehea/ehea_qmr.h|4 ++-- drivers/net/forcedeth.c| 38 +- drivers/net/ibm_newemac/core.c | 31 --- drivers/net/ibm_newemac/core.h |1 + drivers/net/sky2.c |6 +- drivers/net/smc911x.c | 19 +-- drivers/net/smc911x.h |2 +- drivers/net/smc91x.h |2 +- drivers/net/tulip/dmfe.c |4 ++-- drivers/net/usb/dm9601.c |2 +- include/linux/pci_ids.h|4 16 files changed, 84 insertions(+), 61 deletions(-) Ayaz Abdulla (2): forcedeth: new mcp79 pci ids forcedeth boot delay fix Benjamin Herrenschmidt (1): ibm_newemac: Fix possible lockup on close Jeff Garzik (1): dmfe: checkpatch fix (add whitespace) Jiri Bohac (1): amd8111e: don't call napi_enable if configured w/o NAPI Maxim Levitsky (1): NET: dmfe: don't access configuration space in D3 state Mike Frysinger (1): Blackfin SMC91x Driver: punt CONFIG_BFIN -- we already have CONFIG_BLACKFIN Peter Korsgaard (4): dm9601: Fix printk smc911x: Fix undefined CONFIG_ symbol warning smc911x: Fix unused variable warning. smc911x: Fix multicast handling Stephen Hemminger (1): sky2: disable rx checksum on Yukon XL Thomas Klein (2): ehea: Improve tx packets counting ehea: Reworked rcv queue handling to log only fatal errors Vitja Makarov (1): Blackfin EMAC driver: fix bug - NAT doesn't work with bfin_mac driver diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index e8d69b0..1437b37 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -888,7 +888,7 @@ config SMC91X tristate SMC 91C9x/91C1xxx support select CRC32 select MII - depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || SOC_AU1X00 || BFIN + depends on ARM || REDWOOD_5 || REDWOOD_6 || M32R || SUPERH || SOC_AU1X00 || BLACKFIN help This is a driver for SMC's 91x series of Ethernet chipsets, including the SMC91C94 and the SMC91C111. Say Y if you want it diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c index eebf5bb..e7fdd81 100644 --- a/drivers/net/amd8111e.c +++ b/drivers/net/amd8111e.c @@ -1340,7 +1340,9 @@ static int amd8111e_close(struct net_device * dev) struct amd8111e_priv *lp = netdev_priv(dev); netif_stop_queue(dev); +#ifdef CONFIG_AMD8111E_NAPI napi_disable(lp-napi); +#endif spin_lock_irq(lp-lock); @@ -1372,7 +1374,9 @@ static int amd8111e_open(struct net_device * dev ) dev-name, dev)) return -EAGAIN; +#ifdef CONFIG_AMD8111E_NAPI napi_enable(lp-napi); +#endif spin_lock_irq(lp-lock); @@ -1380,7 +1384,9 @@ static int amd8111e_open(struct net_device * dev ) if(amd8111e_restart(dev)){ spin_unlock_irq(lp-lock); +#ifdef CONFIG_AMD8111E_NAPI napi_disable(lp-napi); +#endif if (dev-irq) free_irq(dev-irq, dev); return -ENOMEM; diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 084acfd..f0f8516 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c @@ -676,7 +676,7 @@ static void bf537mac_rx(struct net_device *dev) skb-protocol = eth_type_trans(skb, dev); #if defined(BFIN_MAC_CSUM_OFFLOAD) skb-csum = current_rx_ptr-status.ip_payload_csum; - skb-ip_summed = CHECKSUM_PARTIAL; + skb-ip_summed = CHECKSUM_COMPLETE; #endif netif_rx(skb); diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index f78e5bf..5f82a46 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -40,7 +40,7 @@ #include asm/io.h #define DRV_NAME ehea -#define DRV_VERSIONEHEA_0080 +#define DRV_VERSIONEHEA_0083 /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index f0319f1..869e160 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -136,7 +136,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev) struct ehea_port *port = netdev_priv(dev); struct net_device_stats *stats = port-stats; struct hcp_ehea_port_cb2 *cb2; - u64 hret, rx_packets; + u64 hret, rx_packets, tx_packets; int i; memset(stats, 0, sizeof(*stats)); @@ -162,7 +162,11 @@ static struct net_device_stats
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS | 10 ++- drivers/net/Kconfig |2 +- drivers/net/bonding/bond_main.c |1 + drivers/net/bonding/bond_sysfs.c |4 +- drivers/net/pasemi_mac.c | 18 - drivers/net/qla3xxx.c| 42 +-- drivers/net/qla3xxx.h|1 + drivers/net/r8169.c | 26 ++- drivers/net/sky2.c | 116 ++ drivers/net/sky2.h |3 +- drivers/net/smc91x.h | 15 drivers/net/wireless/Kconfig |2 +- drivers/net/wireless/b43/Kconfig | 10 ++- drivers/net/wireless/b43/debugfs.c |2 +- drivers/net/wireless/b43/main.c | 19 +++--- drivers/net/wireless/b43/pcmcia.c| 52 +- drivers/net/wireless/b43/rfkill.c| 115 + drivers/net/wireless/b43/rfkill.h| 14 +--- drivers/net/wireless/b43legacy/debugfs.c |2 +- drivers/net/wireless/b43legacy/main.c| 21 +++--- drivers/net/wireless/hostap/hostap_pci.c |6 +- drivers/net/wireless/ipw2100.c |4 +- drivers/net/wireless/libertas/cmd.c | 10 ++- drivers/net/wireless/libertas/if_cs.c|7 ++- drivers/net/wireless/libertas/if_sdio.c |4 +- drivers/net/wireless/rt2x00/rt2x00mac.c |8 ++ 26 files changed, 285 insertions(+), 229 deletions(-) Ciaran McCreesh (1): r8169: add PCI ID for the 8168 in the Abit Fatal1ty F-190HD motherboard Francois Romieu (2): r8169: do not enable the TBI for the 8168 and the 81x0 r8169: prevent bit sign expansion error in mdio_write Holger Schurig (1): libertas: fixes for slow hardware Ivo van Doorn (1): rt2x00: Block adhoc & master mode Jay Vosburgh (2): bonding: fix rtnl locking merge error bonding: don't validate address at device open John W. Linville (1): hermes: clarify Intel reference in Kconfig help Magnus Damm (1): ax88796: add superh to kconfig dependencies Marcelo Tosatti (1): libertas: properly account for queue commands Mark Lord (2): r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (partly) r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (bis repetita) Michael Buesch (7): b43: pcmcia-host initialization bugfixes b43: Fix rfkill callback deadlock b43: debugfs SHM read buffer overrun fix b43: Rewrite and fix rfkill init b43: properly request pcmcia IRQ b43legacy: Fix sparse warning b43: Fix kconfig dependencies for rfkill and leds Olof Johansson (2): pasemi_mac: Don't set replace-source-address descriptor bits pasemi_mac: Fix CRC checks Pierre Ossman (1): libertas: make if_sdio align packets Randy Dunlap (1): hostap: fix section mismatch warning Roel Kluin (1): ipw2100: fix postfix decrement errors Ron Mercer (2): qla3xxx: bugfix: Move link state machine into a worker thread qla3xxx: bugfix: Fix bad logical operation in link state machine. Stefano Brivio (4): b43legacy: fix possible buffer overrun in debugfs b43legacy: add me as maintainer and fix URLs b43: fix shared IRQ race condition b43legacy: fix shared IRQ race condition Stephen Hemminger (9): sky2: enable PCI config writes sky2: status ring race fix sky2: longer PHY delay sky2: dont change LED after autoneg sky2: remove unneeded mask update sky2: handle advanced error recovery config issues sky2: version 1.20 sky2: netpoll on port 0 only sky2: new pci id's eric miao (1): add support for smc91x ethernet interface on zylonite diff --git a/MAINTAINERS b/MAINTAINERS index 1c7c229..6a97027 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -787,23 +787,25 @@ B43 WIRELESS DRIVER P: Michael Buesch M: [EMAIL PROTECTED] P: Stefano Brivio -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained B43LEGACY WIRELESS DRIVER P: Larry Finger M: [EMAIL PROTECTED] +P: Stefano Brivio +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION) P: Larry Finger M: [EMAIL PROTECTED] P: Stefano Brivio -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] W: http://bcm43xx.berlios.de/ S: Maintained diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index cb581eb..bf8890e 100644 --- a/drivers/net/Kconfig +++
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: MAINTAINERS | 10 ++- drivers/net/Kconfig |2 +- drivers/net/bonding/bond_main.c |1 + drivers/net/bonding/bond_sysfs.c |4 +- drivers/net/pasemi_mac.c | 18 - drivers/net/qla3xxx.c| 42 +-- drivers/net/qla3xxx.h|1 + drivers/net/r8169.c | 26 ++- drivers/net/sky2.c | 116 ++ drivers/net/sky2.h |3 +- drivers/net/smc91x.h | 15 drivers/net/wireless/Kconfig |2 +- drivers/net/wireless/b43/Kconfig | 10 ++- drivers/net/wireless/b43/debugfs.c |2 +- drivers/net/wireless/b43/main.c | 19 +++--- drivers/net/wireless/b43/pcmcia.c| 52 +- drivers/net/wireless/b43/rfkill.c| 115 + drivers/net/wireless/b43/rfkill.h| 14 +--- drivers/net/wireless/b43legacy/debugfs.c |2 +- drivers/net/wireless/b43legacy/main.c| 21 +++--- drivers/net/wireless/hostap/hostap_pci.c |6 +- drivers/net/wireless/ipw2100.c |4 +- drivers/net/wireless/libertas/cmd.c | 10 ++- drivers/net/wireless/libertas/if_cs.c|7 ++- drivers/net/wireless/libertas/if_sdio.c |4 +- drivers/net/wireless/rt2x00/rt2x00mac.c |8 ++ 26 files changed, 285 insertions(+), 229 deletions(-) Ciaran McCreesh (1): r8169: add PCI ID for the 8168 in the Abit Fatal1ty F-190HD motherboard Francois Romieu (2): r8169: do not enable the TBI for the 8168 and the 81x0 r8169: prevent bit sign expansion error in mdio_write Holger Schurig (1): libertas: fixes for slow hardware Ivo van Doorn (1): rt2x00: Block adhoc master mode Jay Vosburgh (2): bonding: fix rtnl locking merge error bonding: don't validate address at device open John W. Linville (1): hermes: clarify Intel reference in Kconfig help Magnus Damm (1): ax88796: add superh to kconfig dependencies Marcelo Tosatti (1): libertas: properly account for queue commands Mark Lord (2): r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (partly) r8169: revert 7da97ec96a0934319c7fbedd3d38baf533e20640 (bis repetita) Michael Buesch (7): b43: pcmcia-host initialization bugfixes b43: Fix rfkill callback deadlock b43: debugfs SHM read buffer overrun fix b43: Rewrite and fix rfkill init b43: properly request pcmcia IRQ b43legacy: Fix sparse warning b43: Fix kconfig dependencies for rfkill and leds Olof Johansson (2): pasemi_mac: Don't set replace-source-address descriptor bits pasemi_mac: Fix CRC checks Pierre Ossman (1): libertas: make if_sdio align packets Randy Dunlap (1): hostap: fix section mismatch warning Roel Kluin (1): ipw2100: fix postfix decrement errors Ron Mercer (2): qla3xxx: bugfix: Move link state machine into a worker thread qla3xxx: bugfix: Fix bad logical operation in link state machine. Stefano Brivio (4): b43legacy: fix possible buffer overrun in debugfs b43legacy: add me as maintainer and fix URLs b43: fix shared IRQ race condition b43legacy: fix shared IRQ race condition Stephen Hemminger (9): sky2: enable PCI config writes sky2: status ring race fix sky2: longer PHY delay sky2: dont change LED after autoneg sky2: remove unneeded mask update sky2: handle advanced error recovery config issues sky2: version 1.20 sky2: netpoll on port 0 only sky2: new pci id's eric miao (1): add support for smc91x ethernet interface on zylonite diff --git a/MAINTAINERS b/MAINTAINERS index 1c7c229..6a97027 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -787,23 +787,25 @@ B43 WIRELESS DRIVER P: Michael Buesch M: [EMAIL PROTECTED] P: Stefano Brivio -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained B43LEGACY WIRELESS DRIVER P: Larry Finger M: [EMAIL PROTECTED] +P: Stefano Brivio +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION) P: Larry Finger M: [EMAIL PROTECTED] P: Stefano Brivio -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: [EMAIL PROTECTED] W: http://bcm43xx.berlios.de/ S: Maintained diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index cb581eb..bf8890e 100644 --- a/drivers/net/Kconfig +++
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/82596.c |3 ++- drivers/net/phy/marvell.c| 23 ++- drivers/net/phy/phy_device.c |2 +- drivers/net/sunhme.c |4 ++-- 4 files changed, 23 insertions(+), 9 deletions(-) David Miller (1): SUNHME: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals Evgeniy Dushistov (1): 82596: free nonexistent resource fix Olof Johansson (2): phylib: Add ID for Marvell 88E1240 phylib: Silence driver registration diff --git a/drivers/net/82596.c b/drivers/net/82596.c index bb30d5b..2797da7 100644 --- a/drivers/net/82596.c +++ b/drivers/net/82596.c @@ -1192,6 +1192,8 @@ struct net_device * __init i82596_probe(int unit) goto out; } + dev->base_addr = ioaddr; + for (i = 0; i < 8; i++) { eth_addr[i] = inb(ioaddr + 8 + i); checksum += eth_addr[i]; @@ -1209,7 +1211,6 @@ struct net_device * __init i82596_probe(int unit) goto out1; } - dev->base_addr = ioaddr; dev->irq = 10; } #endif diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index d2ede5f..035fd41 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -265,7 +265,7 @@ static struct phy_driver marvell_drivers[] = { .read_status = _read_status, .ack_interrupt = _ack_interrupt, .config_intr = _config_intr, - .driver = {.owner = THIS_MODULE,}, + .driver = { .owner = THIS_MODULE }, }, { .phy_id = 0x01410c90, @@ -278,7 +278,7 @@ static struct phy_driver marvell_drivers[] = { .read_status = _read_status, .ack_interrupt = _ack_interrupt, .config_intr = _config_intr, - .driver = {.owner = THIS_MODULE,}, + .driver = { .owner = THIS_MODULE }, }, { .phy_id = 0x01410cc0, @@ -291,7 +291,7 @@ static struct phy_driver marvell_drivers[] = { .read_status = _read_status, .ack_interrupt = _ack_interrupt, .config_intr = _config_intr, - .driver = {.owner = THIS_MODULE,}, + .driver = { .owner = THIS_MODULE }, }, { .phy_id = 0x01410cd0, @@ -304,8 +304,21 @@ static struct phy_driver marvell_drivers[] = { .read_status = _read_status, .ack_interrupt = _ack_interrupt, .config_intr = _config_intr, - .driver = {.owner = THIS_MODULE,}, - } + .driver = { .owner = THIS_MODULE }, + }, + { + .phy_id = 0x01410e30, + .phy_id_mask = 0xfff0, + .name = "Marvell 88E1240", + .features = PHY_GBIT_FEATURES, + .flags = PHY_HAS_INTERRUPT, + .config_init = _config_init, + .config_aneg = _config_aneg, + .read_status = _read_status, + .ack_interrupt = _ack_interrupt, + .config_intr = _config_intr, + .driver = { .owner = THIS_MODULE }, + }, }; static int __init marvell_init(void) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index c046121..f6e4848 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -706,7 +706,7 @@ int phy_driver_register(struct phy_driver *new_driver) return retval; } - pr_info("%s: Registered new driver\n", new_driver->name); + pr_debug("%s: Registered new driver\n", new_driver->name); return 0; } diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c index 120c8af..c20a3bd 100644 --- a/drivers/net/sunhme.c +++ b/drivers/net/sunhme.c @@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev, dev->irq = pdev->irq; dev->dma = 0; - /* Happy Meal can do it all... */ - dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM; + /* Happy Meal can do it all... except VLAN. */ + dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED; #if defined(CONFIG_SBUS) && defined(CONFIG_PCI) /* Hook up PCI register/dma accessors. */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
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
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/Kconfig |4 +--- drivers/net/fec_mpc52xx.c |4 ++-- drivers/net/myri10ge/myri10ge.c |6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) Andrew Gallatin (1): Fix myri10ge NAPI oops & warnings Grant Likely (2): mpc5200: Fix Kconfig dependancies on MPC5200 FEC device driver Fix region size check in mpc5200 FEC driver diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 867cb73..5f800a6 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -1883,9 +1883,7 @@ config FEC2 config FEC_MPC52xx tristate "MPC52xx FEC driver" - depends on PPC_MPC52xx - select PPC_BESTCOMM - select PPC_BESTCOMM_FEC + depends on PPC_MERGE && PPC_MPC52xx && PPC_BESTCOMM_FEC select CRC32 select PHYLIB ---help--- diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index fc1cf0b..a8a0ee2 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c @@ -879,9 +879,9 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match) "Error while parsing device node resource\n" ); return rv; } - if ((mem.end - mem.start + 1) != sizeof(struct mpc52xx_fec)) { + if ((mem.end - mem.start + 1) < sizeof(struct mpc52xx_fec)) { printk(KERN_ERR DRIVER_NAME - " - invalid resource size (%lx != %x), check mpc52xx_devices.c\n", + " - invalid resource size (%lx < %x), check mpc52xx_devices.c\n", (unsigned long)(mem.end - mem.start + 1), sizeof(struct mpc52xx_fec)); return -EINVAL; } diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 366e62a..0f306dd 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c @@ -1151,7 +1151,7 @@ static inline int myri10ge_clean_rx_done(struct myri10ge_priv *mgp, int budget) u16 length; __wsum checksum; - while (rx_done->entry[idx].length != 0 && work_done++ < budget) { + while (rx_done->entry[idx].length != 0 && work_done < budget) { length = ntohs(rx_done->entry[idx].length); rx_done->entry[idx].length = 0; checksum = csum_unfold(rx_done->entry[idx].checksum); @@ -1167,6 +1167,7 @@ static inline int myri10ge_clean_rx_done(struct myri10ge_priv *mgp, int budget) rx_bytes += rx_ok * (unsigned long)length; cnt++; idx = cnt & (myri10ge_max_intr_slots - 1); + work_done++; } rx_done->idx = idx; rx_done->cnt = cnt; @@ -1233,13 +1234,12 @@ static int myri10ge_poll(struct napi_struct *napi, int budget) struct myri10ge_priv *mgp = container_of(napi, struct myri10ge_priv, napi); struct net_device *netdev = mgp->dev; - struct myri10ge_rx_done *rx_done = >rx_done; int work_done; /* process as many rx events as NAPI will allow */ work_done = myri10ge_clean_rx_done(mgp, budget); - if (rx_done->entry[rx_done->idx].length == 0 || !netif_running(netdev)) { + if (work_done < budget || !netif_running(netdev)) { netif_rx_complete(netdev, napi); put_be32(htonl(3), mgp->irq_claim); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
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
Fixes, and a new DM9601 USB NIC id. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/bfin_mac.c|2 - drivers/net/e1000/e1000.h |8 +++ drivers/net/e1000/e1000_ethtool.c | 29 ++-- drivers/net/e1000/e1000_hw.c |4 +- drivers/net/e1000/e1000_main.c|7 + drivers/net/e1000/e1000_param.c | 23 ++- drivers/net/e1000e/82571.c|2 +- drivers/net/e1000e/ethtool.c |4 +- drivers/net/e1000e/param.c| 35 +++-- drivers/net/ixgb/ixgb.h |7 ++ drivers/net/ixgb/ixgb_ethtool.c |7 + drivers/net/ixgb/ixgb_hw.c|4 +- drivers/net/ixgb/ixgb_main.c | 15 +--- drivers/net/ixgb/ixgb_param.c | 43 +++-- drivers/net/ixgbe/ixgbe.h |2 +- drivers/net/ixgbe/ixgbe_82598.c |3 +- drivers/net/ixgbe/ixgbe_main.c|9 --- drivers/net/usb/dm9601.c |4 +++ include/linux/mv643xx_eth.h |6 ++-- 19 files changed, 110 insertions(+), 104 deletions(-) Auke Kok (1): ixgb: fix TX hangs under heavy load Dale Farnsworth (1): mv643xx_eth: Fix MV643XX_ETH offsets used by Pegasos 2 Michael Hennerich (1): Blackfin EMAC driver: Fix Ethernet communication bug (dupliated and lost packets) Peter Korsgaard (1): DM9601: Support for ADMtek ADM8515 NIC Roel Kluin (1): e1000e: Fix typo ! & Stephen Hemminger (4): e1000e: fix sparse warnings ixgb: fix sparse warnings e1000: sparse warnings fixes ixgbe: minor sparse fixes diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 53fe7de..084acfd 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c @@ -371,7 +371,6 @@ static void bf537_adjust_link(struct net_device *dev) if (phydev->speed != lp->old_speed) { #if defined(CONFIG_BFIN_MAC_RMII) u32 opmode = bfin_read_EMAC_OPMODE(); - bf537mac_disable(); switch (phydev->speed) { case 10: opmode |= RMII_10; @@ -386,7 +385,6 @@ static void bf537_adjust_link(struct net_device *dev) break; } bfin_write_EMAC_OPMODE(opmode); - bf537mac_enable(); #endif new_state = 1; diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h index 781ed99..3b84028 100644 --- a/drivers/net/e1000/e1000.h +++ b/drivers/net/e1000/e1000.h @@ -351,4 +351,12 @@ enum e1000_state_t { __E1000_DOWN }; +extern char e1000_driver_name[]; +extern const char e1000_driver_version[]; + +extern void e1000_power_up_phy(struct e1000_adapter *); +extern void e1000_set_ethtool_ops(struct net_device *netdev); +extern void e1000_check_options(struct e1000_adapter *adapter); + + #endif /* _E1000_H_ */ diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 6c9a643..667f18b 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -32,9 +32,6 @@ #include -extern char e1000_driver_name[]; -extern char e1000_driver_version[]; - extern int e1000_up(struct e1000_adapter *adapter); extern void e1000_down(struct e1000_adapter *adapter); extern void e1000_reinit_locked(struct e1000_adapter *adapter); @@ -733,16 +730,16 @@ err_setup: #define REG_PATTERN_TEST(R, M, W) \ { \ - uint32_t pat, value; \ - uint32_t test[] = \ + uint32_t pat, val; \ + const uint32_t test[] =\ {0x5A5A5A5A, 0xA5A5A5A5, 0x, 0x}; \ - for (pat = 0; pat < ARRAY_SIZE(test); pat++) { \ + for (pat = 0; pat < ARRAY_SIZE(test); pat++) { \ E1000_WRITE_REG(>hw, R, (test[pat] & W)); \ - value = E1000_READ_REG(>hw, R); \ - if (value != (test[pat] & W & M)) { \ + val = E1000_READ_REG(>hw, R); \ + if (val != (test[pat] & W & M)) { \ DPRINTK(DRV, ERR, "pattern test reg %04X failed: got " \ "0x%08X expected 0x%08X\n",\ - E1000_##R, value, (test[pat] & W & M));\ +
[git patches] net driver fixes
Fixes, and a new DM9601 USB NIC id. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/bfin_mac.c|2 - drivers/net/e1000/e1000.h |8 +++ drivers/net/e1000/e1000_ethtool.c | 29 ++-- drivers/net/e1000/e1000_hw.c |4 +- drivers/net/e1000/e1000_main.c|7 + drivers/net/e1000/e1000_param.c | 23 ++- drivers/net/e1000e/82571.c|2 +- drivers/net/e1000e/ethtool.c |4 +- drivers/net/e1000e/param.c| 35 +++-- drivers/net/ixgb/ixgb.h |7 ++ drivers/net/ixgb/ixgb_ethtool.c |7 + drivers/net/ixgb/ixgb_hw.c|4 +- drivers/net/ixgb/ixgb_main.c | 15 +--- drivers/net/ixgb/ixgb_param.c | 43 +++-- drivers/net/ixgbe/ixgbe.h |2 +- drivers/net/ixgbe/ixgbe_82598.c |3 +- drivers/net/ixgbe/ixgbe_main.c|9 --- drivers/net/usb/dm9601.c |4 +++ include/linux/mv643xx_eth.h |6 ++-- 19 files changed, 110 insertions(+), 104 deletions(-) Auke Kok (1): ixgb: fix TX hangs under heavy load Dale Farnsworth (1): mv643xx_eth: Fix MV643XX_ETH offsets used by Pegasos 2 Michael Hennerich (1): Blackfin EMAC driver: Fix Ethernet communication bug (dupliated and lost packets) Peter Korsgaard (1): DM9601: Support for ADMtek ADM8515 NIC Roel Kluin (1): e1000e: Fix typo ! Stephen Hemminger (4): e1000e: fix sparse warnings ixgb: fix sparse warnings e1000: sparse warnings fixes ixgbe: minor sparse fixes diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 53fe7de..084acfd 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c @@ -371,7 +371,6 @@ static void bf537_adjust_link(struct net_device *dev) if (phydev-speed != lp-old_speed) { #if defined(CONFIG_BFIN_MAC_RMII) u32 opmode = bfin_read_EMAC_OPMODE(); - bf537mac_disable(); switch (phydev-speed) { case 10: opmode |= RMII_10; @@ -386,7 +385,6 @@ static void bf537_adjust_link(struct net_device *dev) break; } bfin_write_EMAC_OPMODE(opmode); - bf537mac_enable(); #endif new_state = 1; diff --git a/drivers/net/e1000/e1000.h b/drivers/net/e1000/e1000.h index 781ed99..3b84028 100644 --- a/drivers/net/e1000/e1000.h +++ b/drivers/net/e1000/e1000.h @@ -351,4 +351,12 @@ enum e1000_state_t { __E1000_DOWN }; +extern char e1000_driver_name[]; +extern const char e1000_driver_version[]; + +extern void e1000_power_up_phy(struct e1000_adapter *); +extern void e1000_set_ethtool_ops(struct net_device *netdev); +extern void e1000_check_options(struct e1000_adapter *adapter); + + #endif /* _E1000_H_ */ diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 6c9a643..667f18b 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -32,9 +32,6 @@ #include asm/uaccess.h -extern char e1000_driver_name[]; -extern char e1000_driver_version[]; - extern int e1000_up(struct e1000_adapter *adapter); extern void e1000_down(struct e1000_adapter *adapter); extern void e1000_reinit_locked(struct e1000_adapter *adapter); @@ -733,16 +730,16 @@ err_setup: #define REG_PATTERN_TEST(R, M, W) \ { \ - uint32_t pat, value; \ - uint32_t test[] = \ + uint32_t pat, val; \ + const uint32_t test[] =\ {0x5A5A5A5A, 0xA5A5A5A5, 0x, 0x}; \ - for (pat = 0; pat ARRAY_SIZE(test); pat++) { \ + for (pat = 0; pat ARRAY_SIZE(test); pat++) { \ E1000_WRITE_REG(adapter-hw, R, (test[pat] W)); \ - value = E1000_READ_REG(adapter-hw, R); \ - if (value != (test[pat] W M)) { \ + val = E1000_READ_REG(adapter-hw, R); \ + if (val != (test[pat] W M)) { \ DPRINTK(DRV, ERR, pattern test reg %04X failed: got \ 0x%08X expected 0x%08X\n,\ - E1000_##R, value, (test[pat] W M));\ +
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/Kconfig | 41 - drivers/net/dm9000.c|6 ++-- drivers/net/phy/mdio-bitbang.c |2 + drivers/net/tsi108_eth.c|2 +- drivers/net/tulip/Kconfig | 14 +++ drivers/net/wireless/b43/main.c |5 +-- drivers/net/wireless/b43legacy/main.c |2 +- drivers/net/wireless/ipw2100.c | 39 drivers/net/wireless/ipw2100.h |4 ++ drivers/net/wireless/iwlwifi/iwl-3945-rs.c |3 -- drivers/net/wireless/iwlwifi/iwl-3945.c |1 - drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 13 --- drivers/net/wireless/iwlwifi/iwl-4965.c |2 - drivers/net/wireless/iwlwifi/iwl3945-base.c | 44 +- drivers/net/wireless/iwlwifi/iwl4965-base.c | 52 +++--- drivers/net/wireless/iwlwifi/iwlwifi.h |7 +--- drivers/net/wireless/p54common.c|2 +- drivers/net/wireless/rt2x00/rt2x00dev.c |2 +- drivers/net/wireless/rt2x00/rt73usb.c |1 + drivers/net/wireless/rtl8187_dev.c | 35 -- drivers/net/wireless/zd1201.c |4 +- drivers/net/wireless/zd1211rw/zd_usb.c |7 +++- drivers/s390/net/qeth_main.c|3 +- 23 files changed, 158 insertions(+), 133 deletions(-) Adrian Bunk (1): iwl4965-base.c: fix off-by-one errors Dan Williams (1): ipw2100: send WEXT scan events Holger Schurig (1): janitorial: fix all double includes in drivers/net/wireless Ivo van Doorn (1): rt2x00: Add new rt73usb USB ID John W. Linville (1): zd1201: avoid null ptr access of skb->dev Larry Finger (1): b43legacy: Fix potential return of uninitialized variable Marc Pignat (1): zd1211rw, fix oops when ejecting install media Mattias Nissler (1): rt2x00: Fix residual check in PLCP calculations. Michael Buesch (1): b43: Make b43_stop() static Michael Wu (3): rtl8187: Fix more frag bit checking, rts duration calc rtl8187: remove NICMAC setting in configure_filters callback p54: Make filter configuration atomic Mike Rapoport (1): DM9000 initialization fix Olof Johansson (1): Fix build break in tsi108.c Randy Dunlap (3): phy/bitbang: missing MODULE_LICENSE NAPI: kconfig prompt and deleted doc file ir-functions.c:(.text+0xbce18): undefined reference to `input_event' Ron Rindjunsky (1): iwlwifi: set correct base rate for A band in rs_dbgfs_set_mcs Tomas Winkler (1): iwlwifi: Fix rate setting in probe request for HW sacn Ursula Braun (1): qeth: remove header_ops bug WANG Cong (1): drivers/net/wireless/b43/main.c: fix an uninitialized variable diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 83d52c8..2cafa5c 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -1293,9 +1293,6 @@ config PCNET32_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See for more - information. - If in doubt, say N. config AMD8111_ETH @@ -1313,7 +1310,7 @@ config AMD8111_ETH will be called amd8111e. config AMD8111E_NAPI - bool "Enable NAPI support" + bool "Use RX polling (NAPI)" depends on AMD8111_ETH help NAPI is a new driver API designed to reduce CPU and interrupt load @@ -1324,9 +1321,6 @@ config AMD8111E_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See for more - information. - If in doubt, say N. config ADAPTEC_STARFIRE @@ -1355,9 +1349,6 @@ config ADAPTEC_STARFIRE_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See for more - information. - If in doubt, say N. config AC3200 @@ -1431,7 +1422,7 @@ config FORCEDETH called forcedeth. config FORCEDETH_NAPI - bool "Use Rx and Tx Polling (NAPI) (EXPERIMENTAL)" + bool "Use Rx Polling (NAPI) (EXPERIMENTAL)" depends on FORCEDETH && EXPERIMENTAL help NAPI is a new driver API designed to reduce CPU and interrupt load @@ -1442,9 +1433,6 @@ config FORCEDETH_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See for more - information. - If in doubt, say N. config CS89x0 @@ -1756,9 +1744,6 @@ config VIA_RHINE_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See for more - information. - config LAN_SAA9730
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/Kconfig | 41 - drivers/net/dm9000.c|6 ++-- drivers/net/phy/mdio-bitbang.c |2 + drivers/net/tsi108_eth.c|2 +- drivers/net/tulip/Kconfig | 14 +++ drivers/net/wireless/b43/main.c |5 +-- drivers/net/wireless/b43legacy/main.c |2 +- drivers/net/wireless/ipw2100.c | 39 drivers/net/wireless/ipw2100.h |4 ++ drivers/net/wireless/iwlwifi/iwl-3945-rs.c |3 -- drivers/net/wireless/iwlwifi/iwl-3945.c |1 - drivers/net/wireless/iwlwifi/iwl-4965-rs.c | 13 --- drivers/net/wireless/iwlwifi/iwl-4965.c |2 - drivers/net/wireless/iwlwifi/iwl3945-base.c | 44 +- drivers/net/wireless/iwlwifi/iwl4965-base.c | 52 +++--- drivers/net/wireless/iwlwifi/iwlwifi.h |7 +--- drivers/net/wireless/p54common.c|2 +- drivers/net/wireless/rt2x00/rt2x00dev.c |2 +- drivers/net/wireless/rt2x00/rt73usb.c |1 + drivers/net/wireless/rtl8187_dev.c | 35 -- drivers/net/wireless/zd1201.c |4 +- drivers/net/wireless/zd1211rw/zd_usb.c |7 +++- drivers/s390/net/qeth_main.c|3 +- 23 files changed, 158 insertions(+), 133 deletions(-) Adrian Bunk (1): iwl4965-base.c: fix off-by-one errors Dan Williams (1): ipw2100: send WEXT scan events Holger Schurig (1): janitorial: fix all double includes in drivers/net/wireless Ivo van Doorn (1): rt2x00: Add new rt73usb USB ID John W. Linville (1): zd1201: avoid null ptr access of skb-dev Larry Finger (1): b43legacy: Fix potential return of uninitialized variable Marc Pignat (1): zd1211rw, fix oops when ejecting install media Mattias Nissler (1): rt2x00: Fix residual check in PLCP calculations. Michael Buesch (1): b43: Make b43_stop() static Michael Wu (3): rtl8187: Fix more frag bit checking, rts duration calc rtl8187: remove NICMAC setting in configure_filters callback p54: Make filter configuration atomic Mike Rapoport (1): DM9000 initialization fix Olof Johansson (1): Fix build break in tsi108.c Randy Dunlap (3): phy/bitbang: missing MODULE_LICENSE NAPI: kconfig prompt and deleted doc file ir-functions.c:(.text+0xbce18): undefined reference to `input_event' Ron Rindjunsky (1): iwlwifi: set correct base rate for A band in rs_dbgfs_set_mcs Tomas Winkler (1): iwlwifi: Fix rate setting in probe request for HW sacn Ursula Braun (1): qeth: remove header_ops bug WANG Cong (1): drivers/net/wireless/b43/main.c: fix an uninitialized variable diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 83d52c8..2cafa5c 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -1293,9 +1293,6 @@ config PCNET32_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See file:Documentation/networking/NAPI_HOWTO.txt for more - information. - If in doubt, say N. config AMD8111_ETH @@ -1313,7 +1310,7 @@ config AMD8111_ETH will be called amd8111e. config AMD8111E_NAPI - bool Enable NAPI support + bool Use RX polling (NAPI) depends on AMD8111_ETH help NAPI is a new driver API designed to reduce CPU and interrupt load @@ -1324,9 +1321,6 @@ config AMD8111E_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See file:Documentation/networking/NAPI_HOWTO.txt for more - information. - If in doubt, say N. config ADAPTEC_STARFIRE @@ -1355,9 +1349,6 @@ config ADAPTEC_STARFIRE_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See file:Documentation/networking/NAPI_HOWTO.txt for more - information. - If in doubt, say N. config AC3200 @@ -1431,7 +1422,7 @@ config FORCEDETH called forcedeth. config FORCEDETH_NAPI - bool Use Rx and Tx Polling (NAPI) (EXPERIMENTAL) + bool Use Rx Polling (NAPI) (EXPERIMENTAL) depends on FORCEDETH EXPERIMENTAL help NAPI is a new driver API designed to reduce CPU and interrupt load @@ -1442,9 +1433,6 @@ config FORCEDETH_NAPI deployed on potentially unfriendly networks (e.g. in a firewall), then say Y here. - See file:Documentation/networking/NAPI_HOWTO.txt for more - information. - If in doubt, say N. config CS89x0 @@ -1756,9 +1744,6 @@ config VIA_RHINE_NAPI deployed
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/3c59x.c|2 +- drivers/net/forcedeth.c| 27 ++--- drivers/net/fs_enet/fs_enet-main.c | 28 ++--- drivers/net/fs_enet/fs_enet.h |1 + drivers/net/gianfar.c |4 ++- drivers/net/gianfar.h |1 - drivers/net/ibm_newemac/mal.c |2 +- drivers/net/pcnet32.c | 58 drivers/net/sky2.c | 46 include/linux/netdevice.h | 18 +++ 10 files changed, 108 insertions(+), 79 deletions(-) Anton Vorontsov (1): gianfar: fix obviously wrong #ifdef CONFIG_GFAR_NAPI placement Badari Pulavarty (1): vortex_up should initialize "err" Benjamin Herrenschmidt (1): fix EMAC driver for proper napi_synchronize API Don Fry (3): pcnet32: fix non-napi packet reception pcnet32: remove compile warnings in non-napi mode pcnet32: remove private net_device_stats structure Ingo Molnar (1): forcedeth: fix rx-work condition in nv_rx_process_optimized() too Manfred Spraul (1): forcedeth msi bugfix Scott Wood (1): fs_enet: Update for API changes Sebastian Siewior (1): gianfar: remove orphan struct. Stephen Hemminger (2): napi_synchronize: waiting for NAPI sky2: shutdown cleanup diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 862f472..6f8e7d4 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c @@ -1491,7 +1491,7 @@ vortex_up(struct net_device *dev) struct vortex_private *vp = netdev_priv(dev); void __iomem *ioaddr = vp->ioaddr; unsigned int config; - int i, mii_reg1, mii_reg5, err; + int i, mii_reg1, mii_reg5, err = 0; if (VORTEX_PCI(vp)) { pci_set_power_state(VORTEX_PCI(vp), PCI_D0);/* Go active */ diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index cfbb7aa..70ddf1a 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c @@ -992,7 +992,7 @@ static void nv_enable_irq(struct net_device *dev) if (np->msi_flags & NV_MSI_X_ENABLED) enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - enable_irq(dev->irq); + enable_irq(np->pci_dev->irq); } else { enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); @@ -1008,7 +1008,7 @@ static void nv_disable_irq(struct net_device *dev) if (np->msi_flags & NV_MSI_X_ENABLED) disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - disable_irq(dev->irq); + disable_irq(np->pci_dev->irq); } else { disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); @@ -1607,7 +1607,7 @@ static void nv_do_rx_refill(unsigned long data) if (np->msi_flags & NV_MSI_X_ENABLED) disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - disable_irq(dev->irq); + disable_irq(np->pci_dev->irq); } else { disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); } @@ -1625,7 +1625,7 @@ static void nv_do_rx_refill(unsigned long data) if (np->msi_flags & NV_MSI_X_ENABLED) enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - enable_irq(dev->irq); + enable_irq(np->pci_dev->irq); } else { enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); } @@ -2408,13 +2408,13 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) struct fe_priv *np = netdev_priv(dev); u32 flags; u32 vlanflags = 0; - u32 rx_processed_cnt = 0; + int rx_work = 0; struct sk_buff *skb; int len; while((np->get_rx.ex != np->put_rx.ex) && !((flags = le32_to_cpu(np->get_rx.ex->flaglen)) & NV_RX2_AVAIL) && - (rx_processed_cnt++ < limit)) { + (rx_work < limit)) { dprintk(KERN_DEBUG "%s: nv_rx_process_optimized: flags 0x%x.\n", dev->name, flags); @@ -2517,9 +2517,11 @@ next_pkt: np->get_rx.ex = np->first_rx.ex; if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) np->get_rx_ctx = np->first_rx_ctx; + + rx_work++; } - return rx_processed_cnt; + return
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/3c59x.c|2 +- drivers/net/forcedeth.c| 27 ++--- drivers/net/fs_enet/fs_enet-main.c | 28 ++--- drivers/net/fs_enet/fs_enet.h |1 + drivers/net/gianfar.c |4 ++- drivers/net/gianfar.h |1 - drivers/net/ibm_newemac/mal.c |2 +- drivers/net/pcnet32.c | 58 drivers/net/sky2.c | 46 include/linux/netdevice.h | 18 +++ 10 files changed, 108 insertions(+), 79 deletions(-) Anton Vorontsov (1): gianfar: fix obviously wrong #ifdef CONFIG_GFAR_NAPI placement Badari Pulavarty (1): vortex_up should initialize err Benjamin Herrenschmidt (1): fix EMAC driver for proper napi_synchronize API Don Fry (3): pcnet32: fix non-napi packet reception pcnet32: remove compile warnings in non-napi mode pcnet32: remove private net_device_stats structure Ingo Molnar (1): forcedeth: fix rx-work condition in nv_rx_process_optimized() too Manfred Spraul (1): forcedeth msi bugfix Scott Wood (1): fs_enet: Update for API changes Sebastian Siewior (1): gianfar: remove orphan struct. Stephen Hemminger (2): napi_synchronize: waiting for NAPI sky2: shutdown cleanup diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 862f472..6f8e7d4 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c @@ -1491,7 +1491,7 @@ vortex_up(struct net_device *dev) struct vortex_private *vp = netdev_priv(dev); void __iomem *ioaddr = vp-ioaddr; unsigned int config; - int i, mii_reg1, mii_reg5, err; + int i, mii_reg1, mii_reg5, err = 0; if (VORTEX_PCI(vp)) { pci_set_power_state(VORTEX_PCI(vp), PCI_D0);/* Go active */ diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index cfbb7aa..70ddf1a 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c @@ -992,7 +992,7 @@ static void nv_enable_irq(struct net_device *dev) if (np-msi_flags NV_MSI_X_ENABLED) enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - enable_irq(dev-irq); + enable_irq(np-pci_dev-irq); } else { enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector); enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_TX].vector); @@ -1008,7 +1008,7 @@ static void nv_disable_irq(struct net_device *dev) if (np-msi_flags NV_MSI_X_ENABLED) disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - disable_irq(dev-irq); + disable_irq(np-pci_dev-irq); } else { disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector); disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_TX].vector); @@ -1607,7 +1607,7 @@ static void nv_do_rx_refill(unsigned long data) if (np-msi_flags NV_MSI_X_ENABLED) disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - disable_irq(dev-irq); + disable_irq(np-pci_dev-irq); } else { disable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector); } @@ -1625,7 +1625,7 @@ static void nv_do_rx_refill(unsigned long data) if (np-msi_flags NV_MSI_X_ENABLED) enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); else - enable_irq(dev-irq); + enable_irq(np-pci_dev-irq); } else { enable_irq(np-msi_x_entry[NV_MSI_X_VECTOR_RX].vector); } @@ -2408,13 +2408,13 @@ static int nv_rx_process_optimized(struct net_device *dev, int limit) struct fe_priv *np = netdev_priv(dev); u32 flags; u32 vlanflags = 0; - u32 rx_processed_cnt = 0; + int rx_work = 0; struct sk_buff *skb; int len; while((np-get_rx.ex != np-put_rx.ex) !((flags = le32_to_cpu(np-get_rx.ex-flaglen)) NV_RX2_AVAIL) - (rx_processed_cnt++ limit)) { + (rx_work limit)) { dprintk(KERN_DEBUG %s: nv_rx_process_optimized: flags 0x%x.\n, dev-name, flags); @@ -2517,9 +2517,11 @@ next_pkt: np-get_rx.ex = np-first_rx.ex; if (unlikely(np-get_rx_ctx++ == np-last_rx_ctx)) np-get_rx_ctx = np-first_rx_ctx; + + rx_work++; } - return rx_processed_cnt; + return rx_work; } static void set_bufsize(struct net_device
[git patches] net driver fixes (mostly)
Mostly fixes, except a couple things from Stephen H and myself. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/3c59x.c |8 +- drivers/net/Kconfig | 10 + drivers/net/bonding/bond_main.c | 11 +- drivers/net/bonding/bonding.h |4 +- drivers/net/e1000e/ethtool.c| 35 ++- drivers/net/e1000e/hw.h |2 +- drivers/net/forcedeth.c | 168 -- drivers/net/gianfar.c |7 +- drivers/net/ibm_newemac/mal.c | 25 ++- drivers/net/skge.c | 485 ++- drivers/net/skge.h | 17 +- drivers/net/tokenring/3c359.c |2 +- 12 files changed, 558 insertions(+), 216 deletions(-) Adrian Bunk (1): e1000e: fix error checks Auke Kok (2): e1000e: Fix debug printk macro e1000e: don't poke PHY registers to retreive link status Benjamin Herrenschmidt (1): net: Fix new EMAC driver for NAPI changes Ingo Molnar (1): forcedeth: fix NAPI rx poll function Jay Vosburgh (1): bonding: two small fixes for IPoIB support Jeff Garzik (2): [netdrvr] forcedeth: improved probe info; dev_printk() cleanups [netdrvr] forcedeth: remove in-driver copy of net_device_stats Li Yang (1): gianfar: Fix compile regression caused by 09f75cd7 Marcus Meissner (1): tokenring/3c359.c: fixed array index problem Steffen Klassert (1): WOL bugfix for 3c59x.c Stephen Hemminger (7): skge: fix ram buffer size calculation skge: changing MTU while running causes problems skge: XM PHY handling fixes skge: internal stats skge: eeprom support skge: add a debug interface skge 1.12 diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 8d3893d..862f472 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c @@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev) iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD); iowrite16(RxEnable, ioaddr + EL3_CMD); - pci_enable_wake(VORTEX_PCI(vp), 0, 1); + if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) { + printk(KERN_INFO "%s: WOL not supported.\n", + pci_name(VORTEX_PCI(vp))); + + vp->enable_wol = 0; + return; + } /* Change the power state to D3; RxEnable doesn't take effect. */ pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot); diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 8f99a06..83d52c8 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -2173,6 +2173,16 @@ config SKGE To compile this driver as a module, choose M here: the module will be called skge. This is recommended. +config SKGE_DEBUG + bool "Debugging interface" + depends on SKGE && DEBUG_FS + help +This option adds the ability to dump driver state for debugging. +The file debugfs/skge/ethX displays the state of the internal +transmit and receive rings. + +If unsure, say N. + config SKY2 tristate "SysKonnect Yukon2 support" depends on PCI diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index db80f24..6f85cc3 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev, struct bonding *bond = bond_dev->priv; bond_dev->neigh_setup = slave_dev->neigh_setup; + bond_dev->header_ops= slave_dev->header_ops; bond_dev->type = slave_dev->type; bond_dev->hard_header_len = slave_dev->hard_header_len; @@ -3351,7 +3352,10 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave switch (event) { case NETDEV_UNREGISTER: if (bond_dev) { - bond_release(bond_dev, slave_dev); + if (bond->setup_by_slave) + bond_release_and_destroy(bond_dev, slave_dev); + else + bond_release(bond_dev, slave_dev); } break; case NETDEV_CHANGE: @@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave * ... Or is it this? */ break; - case NETDEV_GOING_DOWN: - dprintk("slave %s is going down\n", slave_dev->name); - if (bond->setup_by_slave) - bond_release_and_destroy(bond_dev, slave_dev); - break; case NETDEV_CHANGEMTU: /*
[git patches] net driver fixes (mostly)
Mostly fixes, except a couple things from Stephen H and myself. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/3c59x.c |8 +- drivers/net/Kconfig | 10 + drivers/net/bonding/bond_main.c | 11 +- drivers/net/bonding/bonding.h |4 +- drivers/net/e1000e/ethtool.c| 35 ++- drivers/net/e1000e/hw.h |2 +- drivers/net/forcedeth.c | 168 -- drivers/net/gianfar.c |7 +- drivers/net/ibm_newemac/mal.c | 25 ++- drivers/net/skge.c | 485 ++- drivers/net/skge.h | 17 +- drivers/net/tokenring/3c359.c |2 +- 12 files changed, 558 insertions(+), 216 deletions(-) Adrian Bunk (1): e1000e: fix error checks Auke Kok (2): e1000e: Fix debug printk macro e1000e: don't poke PHY registers to retreive link status Benjamin Herrenschmidt (1): net: Fix new EMAC driver for NAPI changes Ingo Molnar (1): forcedeth: fix NAPI rx poll function Jay Vosburgh (1): bonding: two small fixes for IPoIB support Jeff Garzik (2): [netdrvr] forcedeth: improved probe info; dev_printk() cleanups [netdrvr] forcedeth: remove in-driver copy of net_device_stats Li Yang (1): gianfar: Fix compile regression caused by 09f75cd7 Marcus Meissner (1): tokenring/3c359.c: fixed array index problem Steffen Klassert (1): WOL bugfix for 3c59x.c Stephen Hemminger (7): skge: fix ram buffer size calculation skge: changing MTU while running causes problems skge: XM PHY handling fixes skge: internal stats skge: eeprom support skge: add a debug interface skge 1.12 diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c index 8d3893d..862f472 100644 --- a/drivers/net/3c59x.c +++ b/drivers/net/3c59x.c @@ -3118,7 +3118,13 @@ static void acpi_set_WOL(struct net_device *dev) iowrite16(SetRxFilter|RxStation|RxMulticast|RxBroadcast, ioaddr + EL3_CMD); iowrite16(RxEnable, ioaddr + EL3_CMD); - pci_enable_wake(VORTEX_PCI(vp), 0, 1); + if (pci_enable_wake(VORTEX_PCI(vp), PCI_D3hot, 1)) { + printk(KERN_INFO %s: WOL not supported.\n, + pci_name(VORTEX_PCI(vp))); + + vp-enable_wol = 0; + return; + } /* Change the power state to D3; RxEnable doesn't take effect. */ pci_set_power_state(VORTEX_PCI(vp), PCI_D3hot); diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 8f99a06..83d52c8 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -2173,6 +2173,16 @@ config SKGE To compile this driver as a module, choose M here: the module will be called skge. This is recommended. +config SKGE_DEBUG + bool Debugging interface + depends on SKGE DEBUG_FS + help +This option adds the ability to dump driver state for debugging. +The file debugfs/skge/ethX displays the state of the internal +transmit and receive rings. + +If unsure, say N. + config SKY2 tristate SysKonnect Yukon2 support depends on PCI diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index db80f24..6f85cc3 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev, struct bonding *bond = bond_dev-priv; bond_dev-neigh_setup = slave_dev-neigh_setup; + bond_dev-header_ops= slave_dev-header_ops; bond_dev-type = slave_dev-type; bond_dev-hard_header_len = slave_dev-hard_header_len; @@ -3351,7 +3352,10 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave switch (event) { case NETDEV_UNREGISTER: if (bond_dev) { - bond_release(bond_dev, slave_dev); + if (bond-setup_by_slave) + bond_release_and_destroy(bond_dev, slave_dev); + else + bond_release(bond_dev, slave_dev); } break; case NETDEV_CHANGE: @@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave * ... Or is it this? */ break; - case NETDEV_GOING_DOWN: - dprintk(slave %s is going down\n, slave_dev-name); - if (bond-setup_by_slave) - bond_release_and_destroy(bond_dev, slave_dev); - break; case NETDEV_CHANGEMTU: /* * TODO: Should
[git patches] net driver fixes
sky2 is really the only important fix, the others are trivial. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/sky2.c |3 --- drivers/net/wireless/bcm43xx/bcm43xx_wx.c |2 +- net/ieee80211/softmac/ieee80211softmac_wx.c |2 +- 3 files changed, 2 insertions(+), 5 deletions(-) Joe Perches (1): bcm43xx: Correct printk with PFX before KERN_ Richard Knutsson (1): softmac: Fix compiler-warning Stephen Hemminger (1): sky2: jumbo frame regression fix diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 162489b..ea117fc 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -2163,9 +2163,6 @@ static struct sk_buff *sky2_receive(struct net_device *dev, sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending; prefetch(sky2->rx_ring + sky2->rx_next); - if (length < ETH_ZLEN || length > sky2->rx_data_size) - goto len_error; - /* This chip has hardware problems that generates bogus status. * So do only marginal checking and expect higher level protocols * to handle crap frames. diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c index d6d9413..6acfdc4 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c @@ -444,7 +444,7 @@ static int bcm43xx_wx_set_xmitpower(struct net_device *net_dev, u16 maxpower; if ((data->txpower.flags & IW_TXPOW_TYPE) != IW_TXPOW_DBM) { - printk(PFX KERN_ERR "TX power not in dBm.\n"); + printk(KERN_ERR PFX "TX power not in dBm.\n"); return -EOPNOTSUPP; } diff --git a/net/ieee80211/softmac/ieee80211softmac_wx.c b/net/ieee80211/softmac/ieee80211softmac_wx.c index 442b987..5742dc8 100644 --- a/net/ieee80211/softmac/ieee80211softmac_wx.c +++ b/net/ieee80211/softmac/ieee80211softmac_wx.c @@ -114,7 +114,7 @@ check_assoc_again: sm->associnfo.associating = 1; /* queue lower level code to do work (if necessary) */ schedule_delayed_work(>associnfo.work, 0); -out: + mutex_unlock(>associnfo.mutex); return 0; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
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
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/mv643xx_eth.c |1 - drivers/net/qla3xxx.c |7 +++ drivers/net/usb/dm9601.c |2 +- 3 files changed, 8 insertions(+), 2 deletions(-) Dale Farnsworth (1): mv643xx_eth: Do not modify struct netdev tx_queue_len Peter Korsgaard (1): dm9601: Fix receive MTU Ron Mercer (2): qla3xxx: bugfix: Add memory barrier before accessing rx completion. qla3xxx: bugfix: Fix VLAN rx completion handling. diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 34288fe..3153356 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c @@ -1357,7 +1357,6 @@ static int mv643xx_eth_probe(struct platform_device *pdev) #endif dev->watchdog_timeo = 2 * HZ; - dev->tx_queue_len = mp->tx_ring_size; dev->base_addr = 0; dev->change_mtu = mv643xx_eth_change_mtu; dev->do_ioctl = mv643xx_eth_do_ioctl; diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c index 69da95b..ea15131 100755 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c @@ -2248,6 +2248,13 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev, qdev->rsp_consumer_index) && (work_done < work_to_do)) { net_rsp = qdev->rsp_current; + rmb(); + /* +* Fix 4032 chipe undocumented "feature" where bit-8 is set if the +* inbound completion is for a VLAN. +*/ + if (qdev->device_id == QL3032_DEVICE_ID) + net_rsp->opcode &= 0x7f; switch (net_rsp->opcode) { case OPCODE_OB_MAC_IOCB_FN0: diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c index 16c7a0e..a2de32f 100644 --- a/drivers/net/usb/dm9601.c +++ b/drivers/net/usb/dm9601.c @@ -405,7 +405,7 @@ static int dm9601_bind(struct usbnet *dev, struct usb_interface *intf) dev->net->ethtool_ops = _ethtool_ops; dev->net->hard_header_len += DM_TX_OVERHEAD; dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; - dev->rx_urb_size = dev->net->mtu + DM_RX_OVERHEAD; + dev->rx_urb_size = dev->net->mtu + ETH_HLEN + DM_RX_OVERHEAD; dev->mii.dev = dev->net; dev->mii.mdio_read = dm9601_mdio_read; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
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
And an e1000 id patch. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/e1000/e1000_ethtool.c |1 + drivers/net/e1000/e1000_hw.c |1 + drivers/net/e1000/e1000_hw.h |1 + drivers/net/e1000/e1000_main.c|2 + drivers/net/sky2.c| 53 +++-- 5 files changed, 44 insertions(+), 14 deletions(-) Auke Kok (1): e1000: Add device IDs of blade version of the 82571 quad port Stephen Hemminger (3): sky2: sky2 FE+ receive status workaround sky2: FE+ vlan workaround sky2: fix transmit state on resume diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 4c3785c..9ecc3ad 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -1726,6 +1726,7 @@ static int e1000_wol_exclusion(struct e1000_adapter *adapter, struct ethtool_wol case E1000_DEV_ID_82571EB_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: + case E1000_DEV_ID_82571PT_QUAD_COPPER: case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3: /* quad port adapters only support WoL on port A */ if (!adapter->quad_port_a) { diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c index ba120f7..8604adb 100644 --- a/drivers/net/e1000/e1000_hw.c +++ b/drivers/net/e1000/e1000_hw.c @@ -387,6 +387,7 @@ e1000_set_mac_type(struct e1000_hw *hw) case E1000_DEV_ID_82571EB_SERDES_DUAL: case E1000_DEV_ID_82571EB_SERDES_QUAD: case E1000_DEV_ID_82571EB_QUAD_COPPER: + case E1000_DEV_ID_82571PT_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: hw->mac_type = e1000_82571; diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/e1000/e1000_hw.h index fe87146..07f0ea7 100644 --- a/drivers/net/e1000/e1000_hw.h +++ b/drivers/net/e1000/e1000_hw.h @@ -475,6 +475,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw); #define E1000_DEV_ID_82571EB_FIBER 0x105F #define E1000_DEV_ID_82571EB_SERDES 0x1060 #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 +#define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5 #define E1000_DEV_ID_82571EB_QUAD_FIBER 0x10A5 #define E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE 0x10BC #define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9 diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 4a22595..e7c8951 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -108,6 +108,7 @@ static struct pci_device_id e1000_pci_tbl[] = { INTEL_E1000_ETHERNET_DEVICE(0x10BC), INTEL_E1000_ETHERNET_DEVICE(0x10C4), INTEL_E1000_ETHERNET_DEVICE(0x10C5), + INTEL_E1000_ETHERNET_DEVICE(0x10D5), INTEL_E1000_ETHERNET_DEVICE(0x10D9), INTEL_E1000_ETHERNET_DEVICE(0x10DA), /* required last entry */ @@ -1101,6 +1102,7 @@ e1000_probe(struct pci_dev *pdev, case E1000_DEV_ID_82571EB_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: + case E1000_DEV_ID_82571PT_QUAD_COPPER: /* if quad port adapter, disable WoL on all but port A */ if (global_quad_port_a != 0) adapter->eeprom_wol = 0; diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 0792031..162489b 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -910,6 +910,20 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) return le; } +static void tx_init(struct sky2_port *sky2) +{ + struct sky2_tx_le *le; + + sky2->tx_prod = sky2->tx_cons = 0; + sky2->tx_tcpsum = 0; + sky2->tx_last_mss = 0; + + le = get_tx_le(sky2); + le->addr = 0; + le->opcode = OP_ADDR64 | HW_OWNER; + sky2->tx_addr64 = 0; +} + static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, struct sky2_tx_le *le) { @@ -1320,7 +1334,8 @@ static int sky2_up(struct net_device *dev) GFP_KERNEL); if (!sky2->tx_ring) goto err_out; - sky2->tx_prod = sky2->tx_cons = 0; + + tx_init(sky2); sky2->rx_le = pci_alloc_consistent(hw->pdev, RX_LE_BYTES, >rx_le_map); @@ -2148,6 +2163,18 @@ static struct sk_buff *sky2_receive(struct net_device *dev, sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending; prefetch(sky2->rx_ring + sky2->rx_next); + if (length < ETH_ZLEN || length > sky2->rx_data_size) + goto len_error; + + /* This chip has hardware problems that generates bogus status. +* So do only marginal
[git patches] net driver fixes
And an e1000 id patch. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/e1000/e1000_ethtool.c |1 + drivers/net/e1000/e1000_hw.c |1 + drivers/net/e1000/e1000_hw.h |1 + drivers/net/e1000/e1000_main.c|2 + drivers/net/sky2.c| 53 +++-- 5 files changed, 44 insertions(+), 14 deletions(-) Auke Kok (1): e1000: Add device IDs of blade version of the 82571 quad port Stephen Hemminger (3): sky2: sky2 FE+ receive status workaround sky2: FE+ vlan workaround sky2: fix transmit state on resume diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c index 4c3785c..9ecc3ad 100644 --- a/drivers/net/e1000/e1000_ethtool.c +++ b/drivers/net/e1000/e1000_ethtool.c @@ -1726,6 +1726,7 @@ static int e1000_wol_exclusion(struct e1000_adapter *adapter, struct ethtool_wol case E1000_DEV_ID_82571EB_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: + case E1000_DEV_ID_82571PT_QUAD_COPPER: case E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3: /* quad port adapters only support WoL on port A */ if (!adapter-quad_port_a) { diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c index ba120f7..8604adb 100644 --- a/drivers/net/e1000/e1000_hw.c +++ b/drivers/net/e1000/e1000_hw.c @@ -387,6 +387,7 @@ e1000_set_mac_type(struct e1000_hw *hw) case E1000_DEV_ID_82571EB_SERDES_DUAL: case E1000_DEV_ID_82571EB_SERDES_QUAD: case E1000_DEV_ID_82571EB_QUAD_COPPER: + case E1000_DEV_ID_82571PT_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: hw-mac_type = e1000_82571; diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/e1000/e1000_hw.h index fe87146..07f0ea7 100644 --- a/drivers/net/e1000/e1000_hw.h +++ b/drivers/net/e1000/e1000_hw.h @@ -475,6 +475,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw); #define E1000_DEV_ID_82571EB_FIBER 0x105F #define E1000_DEV_ID_82571EB_SERDES 0x1060 #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 +#define E1000_DEV_ID_82571PT_QUAD_COPPER 0x10D5 #define E1000_DEV_ID_82571EB_QUAD_FIBER 0x10A5 #define E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE 0x10BC #define E1000_DEV_ID_82571EB_SERDES_DUAL 0x10D9 diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 4a22595..e7c8951 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c @@ -108,6 +108,7 @@ static struct pci_device_id e1000_pci_tbl[] = { INTEL_E1000_ETHERNET_DEVICE(0x10BC), INTEL_E1000_ETHERNET_DEVICE(0x10C4), INTEL_E1000_ETHERNET_DEVICE(0x10C5), + INTEL_E1000_ETHERNET_DEVICE(0x10D5), INTEL_E1000_ETHERNET_DEVICE(0x10D9), INTEL_E1000_ETHERNET_DEVICE(0x10DA), /* required last entry */ @@ -1101,6 +1102,7 @@ e1000_probe(struct pci_dev *pdev, case E1000_DEV_ID_82571EB_QUAD_COPPER: case E1000_DEV_ID_82571EB_QUAD_FIBER: case E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE: + case E1000_DEV_ID_82571PT_QUAD_COPPER: /* if quad port adapter, disable WoL on all but port A */ if (global_quad_port_a != 0) adapter-eeprom_wol = 0; diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 0792031..162489b 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -910,6 +910,20 @@ static inline struct sky2_tx_le *get_tx_le(struct sky2_port *sky2) return le; } +static void tx_init(struct sky2_port *sky2) +{ + struct sky2_tx_le *le; + + sky2-tx_prod = sky2-tx_cons = 0; + sky2-tx_tcpsum = 0; + sky2-tx_last_mss = 0; + + le = get_tx_le(sky2); + le-addr = 0; + le-opcode = OP_ADDR64 | HW_OWNER; + sky2-tx_addr64 = 0; +} + static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, struct sky2_tx_le *le) { @@ -1320,7 +1334,8 @@ static int sky2_up(struct net_device *dev) GFP_KERNEL); if (!sky2-tx_ring) goto err_out; - sky2-tx_prod = sky2-tx_cons = 0; + + tx_init(sky2); sky2-rx_le = pci_alloc_consistent(hw-pdev, RX_LE_BYTES, sky2-rx_le_map); @@ -2148,6 +2163,18 @@ static struct sk_buff *sky2_receive(struct net_device *dev, sky2-rx_next = (sky2-rx_next + 1) % sky2-rx_pending; prefetch(sky2-rx_ring + sky2-rx_next); + if (length ETH_ZLEN || length sky2-rx_data_size) + goto len_error; + + /* This chip has hardware problems that generates bogus status. +* So do only marginal checking and expect
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/pcmcia/3c589_cs.c |2 +- drivers/net/r8169.c | 14 +- drivers/net/sky2.c| 37 - drivers/net/sky2.h|2 +- 4 files changed, 39 insertions(+), 16 deletions(-) Edward Hsu (1): r8169: correct phy parameters for the 8110SC Francois Romieu (1): r8169: workaround against ignored TxPoll writes (8168) Jeff Garzik (1): Revert "drivers/net/pcmcia/3c589_cs: fix port configuration switcheroo" Stephen Hemminger (2): sky2: FE+ Phy initialization sky2: be more selective about FIFO watchdog diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c index c06cae3..503f268 100644 --- a/drivers/net/pcmcia/3c589_cs.c +++ b/drivers/net/pcmcia/3c589_cs.c @@ -116,7 +116,7 @@ struct el3_private { spinlock_t lock; }; -static const char *if_names[] = { "auto", "10base2", "10baseT", "AUI" }; +static const char *if_names[] = { "auto", "10baseT", "10base2", "AUI" }; /**/ diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index b85ab4a..c921ec3 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -1228,7 +1228,10 @@ static void rtl8169_hw_phy_config(struct net_device *dev) return; } - /* phy config for RTL8169s mac_version C chip */ + if ((tp->mac_version != RTL_GIGA_MAC_VER_02) && + (tp->mac_version != RTL_GIGA_MAC_VER_03)) + return; + mdio_write(ioaddr, 31, 0x0001); //w 31 2 0 1 mdio_write(ioaddr, 21, 0x1000); //w 21 15 0 1000 mdio_write(ioaddr, 24, 0x65c7); //w 24 15 0 65c7 @@ -2567,6 +2570,15 @@ static void rtl8169_tx_interrupt(struct net_device *dev, (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) { netif_wake_queue(dev); } + /* +* 8168 hack: TxPoll requests are lost when the Tx packets are +* too close. Let's kick an extra TxPoll request when a burst +* of start_xmit activity is detected (if it is not detected, +* it is slow enough). -- FR +*/ + smp_rmb(); + if (tp->cur_tx != dirty_tx) + RTL_W8(TxPoll, NPQ); } } diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index eaffe55..0792031 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -338,6 +338,16 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) if (!(hw->flags & SKY2_HW_GIGABIT)) { /* enable automatic crossover */ ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO) >> 1; + + if (hw->chip_id == CHIP_ID_YUKON_FE_P && + hw->chip_rev == CHIP_REV_YU_FE2_A0) { + u16 spec; + + /* Enable Class A driver for FE+ A0 */ + spec = gm_phy_read(hw, port, PHY_MARV_FE_SPEC_2); + spec |= PHY_M_FESC_SEL_CL_A; + gm_phy_write(hw, port, PHY_MARV_FE_SPEC_2, spec); + } } else { /* disable energy detect */ ctrl &= ~PHY_M_PC_EN_DET_MSK; @@ -816,7 +826,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_CLR); sky2_write16(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_OPER_ON); - if (!(hw->flags & SKY2_HW_RAMBUFFER)) { + /* On chips without ram buffer, pause is controled by MAC level */ + if (sky2_read8(hw, B2_E_0) == 0) { sky2_write8(hw, SK_REG(port, RX_GMF_LP_THR), 768/8); sky2_write8(hw, SK_REG(port, RX_GMF_UP_THR), 1024/8); @@ -1271,7 +1282,7 @@ static int sky2_up(struct net_device *dev) struct sky2_port *sky2 = netdev_priv(dev); struct sky2_hw *hw = sky2->hw; unsigned port = sky2->port; - u32 imask; + u32 imask, ramsize; int cap, err = -ENOMEM; struct net_device *otherdev = hw->dev[sky2->port^1]; @@ -1326,13 +1337,12 @@ static int sky2_up(struct net_device *dev) sky2_mac_init(hw, port); - if (hw->flags & SKY2_HW_RAMBUFFER) { - /* Register is number of 4K blocks on internal RAM buffer. */ - u32 ramsize = sky2_read8(hw, B2_E_0) * 4; + /* Register is number of 4K blocks on internal RAM buffer. */ + ramsize = sky2_read8(hw, B2_E_0) * 4; + if (ramsize > 0) { u32 rxspace; - printk(KERN_DEBUG PFX "%s: ram buffer %dK\n",
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/pcmcia/3c589_cs.c |2 +- drivers/net/r8169.c | 14 +- drivers/net/sky2.c| 37 - drivers/net/sky2.h|2 +- 4 files changed, 39 insertions(+), 16 deletions(-) Edward Hsu (1): r8169: correct phy parameters for the 8110SC Francois Romieu (1): r8169: workaround against ignored TxPoll writes (8168) Jeff Garzik (1): Revert drivers/net/pcmcia/3c589_cs: fix port configuration switcheroo Stephen Hemminger (2): sky2: FE+ Phy initialization sky2: be more selective about FIFO watchdog diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c index c06cae3..503f268 100644 --- a/drivers/net/pcmcia/3c589_cs.c +++ b/drivers/net/pcmcia/3c589_cs.c @@ -116,7 +116,7 @@ struct el3_private { spinlock_t lock; }; -static const char *if_names[] = { auto, 10base2, 10baseT, AUI }; +static const char *if_names[] = { auto, 10baseT, 10base2, AUI }; /**/ diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index b85ab4a..c921ec3 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -1228,7 +1228,10 @@ static void rtl8169_hw_phy_config(struct net_device *dev) return; } - /* phy config for RTL8169s mac_version C chip */ + if ((tp-mac_version != RTL_GIGA_MAC_VER_02) + (tp-mac_version != RTL_GIGA_MAC_VER_03)) + return; + mdio_write(ioaddr, 31, 0x0001); //w 31 2 0 1 mdio_write(ioaddr, 21, 0x1000); //w 21 15 0 1000 mdio_write(ioaddr, 24, 0x65c7); //w 24 15 0 65c7 @@ -2567,6 +2570,15 @@ static void rtl8169_tx_interrupt(struct net_device *dev, (TX_BUFFS_AVAIL(tp) = MAX_SKB_FRAGS)) { netif_wake_queue(dev); } + /* +* 8168 hack: TxPoll requests are lost when the Tx packets are +* too close. Let's kick an extra TxPoll request when a burst +* of start_xmit activity is detected (if it is not detected, +* it is slow enough). -- FR +*/ + smp_rmb(); + if (tp-cur_tx != dirty_tx) + RTL_W8(TxPoll, NPQ); } } diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index eaffe55..0792031 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -338,6 +338,16 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) if (!(hw-flags SKY2_HW_GIGABIT)) { /* enable automatic crossover */ ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO) 1; + + if (hw-chip_id == CHIP_ID_YUKON_FE_P + hw-chip_rev == CHIP_REV_YU_FE2_A0) { + u16 spec; + + /* Enable Class A driver for FE+ A0 */ + spec = gm_phy_read(hw, port, PHY_MARV_FE_SPEC_2); + spec |= PHY_M_FESC_SEL_CL_A; + gm_phy_write(hw, port, PHY_MARV_FE_SPEC_2, spec); + } } else { /* disable energy detect */ ctrl = ~PHY_M_PC_EN_DET_MSK; @@ -816,7 +826,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) sky2_write8(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_RST_CLR); sky2_write16(hw, SK_REG(port, TX_GMF_CTRL_T), GMF_OPER_ON); - if (!(hw-flags SKY2_HW_RAMBUFFER)) { + /* On chips without ram buffer, pause is controled by MAC level */ + if (sky2_read8(hw, B2_E_0) == 0) { sky2_write8(hw, SK_REG(port, RX_GMF_LP_THR), 768/8); sky2_write8(hw, SK_REG(port, RX_GMF_UP_THR), 1024/8); @@ -1271,7 +1282,7 @@ static int sky2_up(struct net_device *dev) struct sky2_port *sky2 = netdev_priv(dev); struct sky2_hw *hw = sky2-hw; unsigned port = sky2-port; - u32 imask; + u32 imask, ramsize; int cap, err = -ENOMEM; struct net_device *otherdev = hw-dev[sky2-port^1]; @@ -1326,13 +1337,12 @@ static int sky2_up(struct net_device *dev) sky2_mac_init(hw, port); - if (hw-flags SKY2_HW_RAMBUFFER) { - /* Register is number of 4K blocks on internal RAM buffer. */ - u32 ramsize = sky2_read8(hw, B2_E_0) * 4; + /* Register is number of 4K blocks on internal RAM buffer. */ + ramsize = sky2_read8(hw, B2_E_0) * 4; + if (ramsize 0) { u32 rxspace; - printk(KERN_DEBUG PFX %s: ram buffer %dK\n, dev-name, ramsize); - +
[git patches] net driver fixes
This includes the sky2 update that you and sch discussed. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/myri10ge/myri10ge.c |3 + drivers/net/phy/phy.c |1 + drivers/net/sky2.c | 368 +++ drivers/net/sky2.h | 41 - 4 files changed, 292 insertions(+), 121 deletions(-) Brice Goglin (1): myri10ge: Add support for PCI device id 9 Domen Puncer (1): phy: export phy_mii_ioctl Stephen Hemminger (6): sky2: fix VLAN receive processing (resend) sky2: ethtool speed report bug sky2: reorganize chip revision features sky2: fe+ chip support sky2: receive FIFO checking sky2: version 1.18 diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 1c42266..556962f 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c @@ -3094,9 +3094,12 @@ static void myri10ge_remove(struct pci_dev *pdev) } #define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E 0x0008 +#define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9 0x0009 static struct pci_device_id myri10ge_pci_tbl[] = { {PCI_DEVICE(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E)}, + {PCI_DEVICE +(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9)}, {0}, }; diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 0cc4369..cb230f4 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -409,6 +409,7 @@ int phy_mii_ioctl(struct phy_device *phydev, return 0; } +EXPORT_SYMBOL(phy_mii_ioctl); /** * phy_start_aneg - start auto-negotiation for this PHY device diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 5d812de..eaffe55 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -51,7 +51,7 @@ #include "sky2.h" #define DRV_NAME "sky2" -#define DRV_VERSION"1.17" +#define DRV_VERSION"1.18" #define PFXDRV_NAME " " /* @@ -118,12 +118,15 @@ static const struct pci_device_id sky2_id_table[] = { { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4351) }, /* 88E8036 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4360) }, /* 88E8052 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, /* 88E8050 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, /* 88E8053 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, /* 88E8055 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, /* 88E8056 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4365) }, /* 88E8070 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, /* 88EC036 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, /* 88EC032 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, /* 88EC034 */ @@ -147,6 +150,7 @@ static const char *yukon2_name[] = { "Extreme", /* 0xb5 */ "EC", /* 0xb6 */ "FE", /* 0xb7 */ + "FE+", /* 0xb8 */ }; static void sky2_set_multicast(struct net_device *dev); @@ -217,8 +221,7 @@ static void sky2_power_on(struct sky2_hw *hw) else sky2_write8(hw, B2_Y2_CLK_GATE, 0); - if (hw->chip_id == CHIP_ID_YUKON_EC_U || - hw->chip_id == CHIP_ID_YUKON_EX) { + if (hw->flags & SKY2_HW_ADV_POWER_CTL) { u32 reg; sky2_pci_write32(hw, PCI_DEV_REG3, 0); @@ -311,10 +314,8 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) struct sky2_port *sky2 = netdev_priv(hw->dev[port]); u16 ctrl, ct1000, adv, pg, ledctrl, ledover, reg; - if (sky2->autoneg == AUTONEG_ENABLE - && !(hw->chip_id == CHIP_ID_YUKON_XL -|| hw->chip_id == CHIP_ID_YUKON_EC_U -|| hw->chip_id == CHIP_ID_YUKON_EX)) { + if (sky2->autoneg == AUTONEG_ENABLE && + !(hw->flags & SKY2_HW_NEWER_PHY)) { u16 ectrl = gm_phy_read(hw, port, PHY_MARV_EXT_CTRL); ectrl &= ~(PHY_M_EC_M_DSC_MSK | PHY_M_EC_S_DSC_MSK | @@ -334,7 +335,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL); if (sky2_is_copper(hw)) { - if (hw->chip_id == CHIP_ID_YUKON_FE) { + if (!(hw->flags & SKY2_HW_GIGABIT)) { /* enable automatic crossover */ ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO) >> 1; } else { @@ -346,9 +347,7 @@ static void
[git patches] net driver fixes
This includes the sky2 update that you and sch discussed. Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/myri10ge/myri10ge.c |3 + drivers/net/phy/phy.c |1 + drivers/net/sky2.c | 368 +++ drivers/net/sky2.h | 41 - 4 files changed, 292 insertions(+), 121 deletions(-) Brice Goglin (1): myri10ge: Add support for PCI device id 9 Domen Puncer (1): phy: export phy_mii_ioctl Stephen Hemminger (6): sky2: fix VLAN receive processing (resend) sky2: ethtool speed report bug sky2: reorganize chip revision features sky2: fe+ chip support sky2: receive FIFO checking sky2: version 1.18 diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index 1c42266..556962f 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c @@ -3094,9 +3094,12 @@ static void myri10ge_remove(struct pci_dev *pdev) } #define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E 0x0008 +#define PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9 0x0009 static struct pci_device_id myri10ge_pci_tbl[] = { {PCI_DEVICE(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E)}, + {PCI_DEVICE +(PCI_VENDOR_ID_MYRICOM, PCI_DEVICE_ID_MYRICOM_MYRI10GE_Z8E_9)}, {0}, }; diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 0cc4369..cb230f4 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -409,6 +409,7 @@ int phy_mii_ioctl(struct phy_device *phydev, return 0; } +EXPORT_SYMBOL(phy_mii_ioctl); /** * phy_start_aneg - start auto-negotiation for this PHY device diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 5d812de..eaffe55 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -51,7 +51,7 @@ #include sky2.h #define DRV_NAME sky2 -#define DRV_VERSION1.17 +#define DRV_VERSION1.18 #define PFXDRV_NAME /* @@ -118,12 +118,15 @@ static const struct pci_device_id sky2_id_table[] = { { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4351) }, /* 88E8036 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4360) }, /* 88E8052 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, /* 88E8050 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, /* 88E8053 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, /* 88E8055 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, /* 88E8056 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4365) }, /* 88E8070 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, /* 88EC036 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, /* 88EC032 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, /* 88EC034 */ @@ -147,6 +150,7 @@ static const char *yukon2_name[] = { Extreme, /* 0xb5 */ EC, /* 0xb6 */ FE, /* 0xb7 */ + FE+, /* 0xb8 */ }; static void sky2_set_multicast(struct net_device *dev); @@ -217,8 +221,7 @@ static void sky2_power_on(struct sky2_hw *hw) else sky2_write8(hw, B2_Y2_CLK_GATE, 0); - if (hw-chip_id == CHIP_ID_YUKON_EC_U || - hw-chip_id == CHIP_ID_YUKON_EX) { + if (hw-flags SKY2_HW_ADV_POWER_CTL) { u32 reg; sky2_pci_write32(hw, PCI_DEV_REG3, 0); @@ -311,10 +314,8 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) struct sky2_port *sky2 = netdev_priv(hw-dev[port]); u16 ctrl, ct1000, adv, pg, ledctrl, ledover, reg; - if (sky2-autoneg == AUTONEG_ENABLE -!(hw-chip_id == CHIP_ID_YUKON_XL -|| hw-chip_id == CHIP_ID_YUKON_EC_U -|| hw-chip_id == CHIP_ID_YUKON_EX)) { + if (sky2-autoneg == AUTONEG_ENABLE + !(hw-flags SKY2_HW_NEWER_PHY)) { u16 ectrl = gm_phy_read(hw, port, PHY_MARV_EXT_CTRL); ectrl = ~(PHY_M_EC_M_DSC_MSK | PHY_M_EC_S_DSC_MSK | @@ -334,7 +335,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) ctrl = gm_phy_read(hw, port, PHY_MARV_PHY_CTRL); if (sky2_is_copper(hw)) { - if (hw-chip_id == CHIP_ID_YUKON_FE) { + if (!(hw-flags SKY2_HW_GIGABIT)) { /* enable automatic crossover */ ctrl |= PHY_M_PC_MDI_XMODE(PHY_M_PC_ENA_AUTO) 1; } else { @@ -346,9 +347,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned
Re: [git patches] net driver fixes
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
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
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
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
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
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
On Thu, 2007-09-13 at 01:30 -0400, Jeff Garzik wrote: > Please pull from 'upstream-linus' branch of > master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git > upstream-linus > > to receive the following updates: > > drivers/net/atl1/atl1_main.c | 19 +++ > drivers/net/ehea/ehea.h |5 - > drivers/net/ehea/ehea_main.c | 16 ++-- > drivers/net/phy/phy.c|4 ++-- > drivers/net/phy/phy_device.c |4 ++-- > drivers/net/sky2.c |9 - > drivers/net/spider_net.c | 12 > 7 files changed, 41 insertions(+), 28 deletions(-) > > Hans-Jürgen Koch (1): > Fix a lock problem in generic phy code > > Ishizaki Kou (1): > spidernet: fix interrupt reason recognition > > Jan-Bernd Themann (2): > ehea: propagate physical port state > ehea: fix last_rx update > > Luca Tettamanti (1): > atl1: disable broken 64-bit DMA > > Stephen Hemminger (1): > sky2: restore multicast list on resume and other ops > > diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c > index 3c1984e..f23e13c 100644 > --- a/drivers/net/atl1/atl1_main.c > +++ b/drivers/net/atl1/atl1_main.c > @@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev, > struct net_device *netdev; > struct atl1_adapter *adapter; > static int cards_found = 0; > - bool pci_using_64 = true; > int err; > > err = pci_enable_device(pdev); > if (err) > return err; > > - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); > + /* > + * 64-bit DMA currently has data corruption problems, so let's just > + * use 32-bit DMA for now. This is a big hack that is probably wrong. > + */ > + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); > if (err) { > - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); > - if (err) { > - dev_err(>dev, "no usable DMA configuration\n"); > - goto err_dma; > - } > - pci_using_64 = false; > + dev_err(>dev, "no usable DMA configuration\n"); > + goto err_dma; > } > /* Mark all PCI regions associated with PCI device >* pdev as being reserved by owner atl1_driver_name > @@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, > > netdev->ethtool_ops = _ethtool_ops; > adapter->bd_number = cards_found; > - adapter->pci_using_64 = pci_using_64; > > /* setup the private structure */ > err = atl1_sw_init(adapter); > @@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, >*/ > /* netdev->features |= NETIF_F_TSO; */ > > - if (pci_using_64) > - netdev->features |= NETIF_F_HIGHDMA; > - > netdev->features |= NETIF_F_LLTX; > > /* > diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h > index d67f97b..8d58be5 100644 > --- a/drivers/net/ehea/ehea.h > +++ b/drivers/net/ehea/ehea.h > @@ -39,7 +39,7 @@ > #include > > #define DRV_NAME "ehea" > -#define DRV_VERSION "EHEA_0073" > +#define DRV_VERSION "EHEA_0074" > > /* eHEA capability flags */ > #define DLPAR_PORT_ADD_REM 1 > @@ -402,6 +402,8 @@ struct ehea_mc_list { > > #define EHEA_PORT_UP 1 > #define EHEA_PORT_DOWN 0 > +#define EHEA_PHY_LINK_UP 1 > +#define EHEA_PHY_LINK_DOWN 0 > #define EHEA_MAX_PORT_RES 16 > struct ehea_port { > struct ehea_adapter *adapter;/* adapter that owns this port */ > @@ -427,6 +429,7 @@ struct ehea_port { > u32 msg_enable; > u32 sig_comp_iv; > u32 state; > + u8 phy_link; > u8 full_duplex; > u8 autoneg; > u8 num_def_qps; > diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c > index db57474..717b129 100644 > --- a/drivers/net/ehea/ehea_main.c > +++ b/drivers/net/ehea/ehea_main.c > @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3; > static int sq_entries = EHEA_DEF_ENTRIES_SQ; > static int use_mcs = 0; > static int num_tx_qps = EHEA_NUM_TX_QP; > +static int prop_carrier_state = 0; > > module_param(msg_level, int, 0); > module_param(rq1_entries, int, 0); > module_param(rq2_entries, int, 0); > module_param(rq3_entries, int, 0); > module_param(sq_entries, int, 0); > +module_param(prop_carrier_state, int, 0); > module_param(use_mcs, int, 0); > module_param(num_tx_qps, int, 0); > > MODULE_PARM_DESC(num_tx_qps, "Number of TX-QPS"); > MODULE_PARM_DESC(msg_level, "msg_level"); > +MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical " > + "port to stack. 1:yes, 0:no. Default = 0 "); WTF? why would the default be to _not_ propagate carrier state? Are there some mitigating circumstances that require this driver to not notify the stack of carrier on/off? Userspace stuff really should know about the carrier state, and this disables it by
Re: [git patches] net driver fixes
On Thu, 2007-09-13 at 01:30 -0400, Jeff Garzik wrote: Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/atl1/atl1_main.c | 19 +++ drivers/net/ehea/ehea.h |5 - drivers/net/ehea/ehea_main.c | 16 ++-- drivers/net/phy/phy.c|4 ++-- drivers/net/phy/phy_device.c |4 ++-- drivers/net/sky2.c |9 - drivers/net/spider_net.c | 12 7 files changed, 41 insertions(+), 28 deletions(-) Hans-Jürgen Koch (1): Fix a lock problem in generic phy code Ishizaki Kou (1): spidernet: fix interrupt reason recognition Jan-Bernd Themann (2): ehea: propagate physical port state ehea: fix last_rx update Luca Tettamanti (1): atl1: disable broken 64-bit DMA Stephen Hemminger (1): sky2: restore multicast list on resume and other ops diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index 3c1984e..f23e13c 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c @@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev, struct net_device *netdev; struct atl1_adapter *adapter; static int cards_found = 0; - bool pci_using_64 = true; int err; err = pci_enable_device(pdev); if (err) return err; - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); + /* + * 64-bit DMA currently has data corruption problems, so let's just + * use 32-bit DMA for now. This is a big hack that is probably wrong. + */ + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); if (err) { - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); - if (err) { - dev_err(pdev-dev, no usable DMA configuration\n); - goto err_dma; - } - pci_using_64 = false; + dev_err(pdev-dev, no usable DMA configuration\n); + goto err_dma; } /* Mark all PCI regions associated with PCI device * pdev as being reserved by owner atl1_driver_name @@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, netdev-ethtool_ops = atl1_ethtool_ops; adapter-bd_number = cards_found; - adapter-pci_using_64 = pci_using_64; /* setup the private structure */ err = atl1_sw_init(adapter); @@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, */ /* netdev-features |= NETIF_F_TSO; */ - if (pci_using_64) - netdev-features |= NETIF_F_HIGHDMA; - netdev-features |= NETIF_F_LLTX; /* diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index d67f97b..8d58be5 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -39,7 +39,7 @@ #include asm/io.h #define DRV_NAME ehea -#define DRV_VERSION EHEA_0073 +#define DRV_VERSION EHEA_0074 /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 @@ -402,6 +402,8 @@ struct ehea_mc_list { #define EHEA_PORT_UP 1 #define EHEA_PORT_DOWN 0 +#define EHEA_PHY_LINK_UP 1 +#define EHEA_PHY_LINK_DOWN 0 #define EHEA_MAX_PORT_RES 16 struct ehea_port { struct ehea_adapter *adapter;/* adapter that owns this port */ @@ -427,6 +429,7 @@ struct ehea_port { u32 msg_enable; u32 sig_comp_iv; u32 state; + u8 phy_link; u8 full_duplex; u8 autoneg; u8 num_def_qps; diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index db57474..717b129 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3; static int sq_entries = EHEA_DEF_ENTRIES_SQ; static int use_mcs = 0; static int num_tx_qps = EHEA_NUM_TX_QP; +static int prop_carrier_state = 0; module_param(msg_level, int, 0); module_param(rq1_entries, int, 0); module_param(rq2_entries, int, 0); module_param(rq3_entries, int, 0); module_param(sq_entries, int, 0); +module_param(prop_carrier_state, int, 0); module_param(use_mcs, int, 0); module_param(num_tx_qps, int, 0); MODULE_PARM_DESC(num_tx_qps, Number of TX-QPS); MODULE_PARM_DESC(msg_level, msg_level); +MODULE_PARM_DESC(prop_carrier_state, Propagate carrier state of physical + port to stack. 1:yes, 0:no. Default = 0 ); WTF? why would the default be to _not_ propagate carrier state? Are there some mitigating circumstances that require this driver to not notify the stack of carrier on/off? Userspace stuff really should know about the carrier state, and this disables it by default. Dan MODULE_PARM_DESC(rq3_entries, Number of entries for Receive Queue 3 [2^x - 1], x = [6..14]. Default =
Re: [git patches] net driver fixes
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
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
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
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
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
Dan Williams wrote: On Thu, 2007-09-13 at 01:30 -0400, Jeff Garzik wrote: Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/atl1/atl1_main.c | 19 +++ drivers/net/ehea/ehea.h |5 - drivers/net/ehea/ehea_main.c | 16 ++-- drivers/net/phy/phy.c|4 ++-- drivers/net/phy/phy_device.c |4 ++-- drivers/net/sky2.c |9 - drivers/net/spider_net.c | 12 7 files changed, 41 insertions(+), 28 deletions(-) Hans-Jürgen Koch (1): Fix a lock problem in generic phy code Ishizaki Kou (1): spidernet: fix interrupt reason recognition Jan-Bernd Themann (2): ehea: propagate physical port state ehea: fix last_rx update maybe a little bit late with this comment: ehea_error(Failed setting port speed); } } - netif_carrier_on(port-netdev); + if (!prop_carrier_state || (port-phy_link == EHEA_PHY_LINK_UP)) + netif_carrier_on(port-netdev); + kfree(cb4); out: return ret; @@ -869,13 +875,19 @@ static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe) } if (EHEA_BMASK_GET(NEQE_EXTSWITCH_PORT_UP, eqe)) { + port-phy_link = EHEA_PHY_LINK_UP; if (netif_msg_link(port)) ehea_info(%s: Physical port up, port-netdev-name); + if (prop_carrier_state) + netif_carrier_on(port-netdev); } else { + port-phy_link = EHEA_PHY_LINK_DOWN; if (netif_msg_link(port)) ehea_info(%s: Physical port down, port-netdev-name); + if (prop_carrier_state) + netif_carrier_off(port-netdev); maybe it was better to code this as 'ehea_carrier_off/on()' which then tests (prop_carrier_state) - this now begs for regressions where this isn't properly done in future commits, and on top of that there are all these extra conditions now. Cheers, Auke - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/atl1/atl1_main.c | 19 +++ drivers/net/ehea/ehea.h |5 - drivers/net/ehea/ehea_main.c | 16 ++-- drivers/net/phy/phy.c|4 ++-- drivers/net/phy/phy_device.c |4 ++-- drivers/net/sky2.c |9 - drivers/net/spider_net.c | 12 7 files changed, 41 insertions(+), 28 deletions(-) Hans-Jürgen Koch (1): Fix a lock problem in generic phy code Ishizaki Kou (1): spidernet: fix interrupt reason recognition Jan-Bernd Themann (2): ehea: propagate physical port state ehea: fix last_rx update Luca Tettamanti (1): atl1: disable broken 64-bit DMA Stephen Hemminger (1): sky2: restore multicast list on resume and other ops diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index 3c1984e..f23e13c 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c @@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev, struct net_device *netdev; struct atl1_adapter *adapter; static int cards_found = 0; - bool pci_using_64 = true; int err; err = pci_enable_device(pdev); if (err) return err; - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); + /* +* 64-bit DMA currently has data corruption problems, so let's just +* use 32-bit DMA for now. This is a big hack that is probably wrong. +*/ + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); if (err) { - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); - if (err) { - dev_err(>dev, "no usable DMA configuration\n"); - goto err_dma; - } - pci_using_64 = false; + dev_err(>dev, "no usable DMA configuration\n"); + goto err_dma; } /* Mark all PCI regions associated with PCI device * pdev as being reserved by owner atl1_driver_name @@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, netdev->ethtool_ops = _ethtool_ops; adapter->bd_number = cards_found; - adapter->pci_using_64 = pci_using_64; /* setup the private structure */ err = atl1_sw_init(adapter); @@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, */ /* netdev->features |= NETIF_F_TSO; */ - if (pci_using_64) - netdev->features |= NETIF_F_HIGHDMA; - netdev->features |= NETIF_F_LLTX; /* diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index d67f97b..8d58be5 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -39,7 +39,7 @@ #include #define DRV_NAME "ehea" -#define DRV_VERSION"EHEA_0073" +#define DRV_VERSION"EHEA_0074" /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 @@ -402,6 +402,8 @@ struct ehea_mc_list { #define EHEA_PORT_UP 1 #define EHEA_PORT_DOWN 0 +#define EHEA_PHY_LINK_UP 1 +#define EHEA_PHY_LINK_DOWN 0 #define EHEA_MAX_PORT_RES 16 struct ehea_port { struct ehea_adapter *adapter;/* adapter that owns this port */ @@ -427,6 +429,7 @@ struct ehea_port { u32 msg_enable; u32 sig_comp_iv; u32 state; + u8 phy_link; u8 full_duplex; u8 autoneg; u8 num_def_qps; diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index db57474..717b129 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3; static int sq_entries = EHEA_DEF_ENTRIES_SQ; static int use_mcs = 0; static int num_tx_qps = EHEA_NUM_TX_QP; +static int prop_carrier_state = 0; module_param(msg_level, int, 0); module_param(rq1_entries, int, 0); module_param(rq2_entries, int, 0); module_param(rq3_entries, int, 0); module_param(sq_entries, int, 0); +module_param(prop_carrier_state, int, 0); module_param(use_mcs, int, 0); module_param(num_tx_qps, int, 0); MODULE_PARM_DESC(num_tx_qps, "Number of TX-QPS"); MODULE_PARM_DESC(msg_level, "msg_level"); +MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical " +"port to stack. 1:yes, 0:no. Default = 0 "); MODULE_PARM_DESC(rq3_entries, "Number of entries for Receive Queue 3 " "[2^x - 1], x = [6..14]. Default = " __MODULE_STRING(EHEA_DEF_ENTRIES_RQ3) ")"); @@ -467,7 +471,7 @@ static struct ehea_cqe *ehea_proc_rwqes(struct net_device *dev, else netif_receive_skb(skb); - dev->last_rx = jiffies; + port->netdev->last_rx = jiffies; } else {
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/atl1/atl1_main.c | 19 +++ drivers/net/ehea/ehea.h |5 - drivers/net/ehea/ehea_main.c | 16 ++-- drivers/net/phy/phy.c|4 ++-- drivers/net/phy/phy_device.c |4 ++-- drivers/net/sky2.c |9 - drivers/net/spider_net.c | 12 7 files changed, 41 insertions(+), 28 deletions(-) Hans-Jürgen Koch (1): Fix a lock problem in generic phy code Ishizaki Kou (1): spidernet: fix interrupt reason recognition Jan-Bernd Themann (2): ehea: propagate physical port state ehea: fix last_rx update Luca Tettamanti (1): atl1: disable broken 64-bit DMA Stephen Hemminger (1): sky2: restore multicast list on resume and other ops diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index 3c1984e..f23e13c 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c @@ -2203,21 +2203,20 @@ static int __devinit atl1_probe(struct pci_dev *pdev, struct net_device *netdev; struct atl1_adapter *adapter; static int cards_found = 0; - bool pci_using_64 = true; int err; err = pci_enable_device(pdev); if (err) return err; - err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); + /* +* 64-bit DMA currently has data corruption problems, so let's just +* use 32-bit DMA for now. This is a big hack that is probably wrong. +*/ + err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); if (err) { - err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); - if (err) { - dev_err(pdev-dev, no usable DMA configuration\n); - goto err_dma; - } - pci_using_64 = false; + dev_err(pdev-dev, no usable DMA configuration\n); + goto err_dma; } /* Mark all PCI regions associated with PCI device * pdev as being reserved by owner atl1_driver_name @@ -2282,7 +2281,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, netdev-ethtool_ops = atl1_ethtool_ops; adapter-bd_number = cards_found; - adapter-pci_using_64 = pci_using_64; /* setup the private structure */ err = atl1_sw_init(adapter); @@ -2299,9 +2297,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev, */ /* netdev-features |= NETIF_F_TSO; */ - if (pci_using_64) - netdev-features |= NETIF_F_HIGHDMA; - netdev-features |= NETIF_F_LLTX; /* diff --git a/drivers/net/ehea/ehea.h b/drivers/net/ehea/ehea.h index d67f97b..8d58be5 100644 --- a/drivers/net/ehea/ehea.h +++ b/drivers/net/ehea/ehea.h @@ -39,7 +39,7 @@ #include asm/io.h #define DRV_NAME ehea -#define DRV_VERSIONEHEA_0073 +#define DRV_VERSIONEHEA_0074 /* eHEA capability flags */ #define DLPAR_PORT_ADD_REM 1 @@ -402,6 +402,8 @@ struct ehea_mc_list { #define EHEA_PORT_UP 1 #define EHEA_PORT_DOWN 0 +#define EHEA_PHY_LINK_UP 1 +#define EHEA_PHY_LINK_DOWN 0 #define EHEA_MAX_PORT_RES 16 struct ehea_port { struct ehea_adapter *adapter;/* adapter that owns this port */ @@ -427,6 +429,7 @@ struct ehea_port { u32 msg_enable; u32 sig_comp_iv; u32 state; + u8 phy_link; u8 full_duplex; u8 autoneg; u8 num_def_qps; diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index db57474..717b129 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -53,17 +53,21 @@ static int rq3_entries = EHEA_DEF_ENTRIES_RQ3; static int sq_entries = EHEA_DEF_ENTRIES_SQ; static int use_mcs = 0; static int num_tx_qps = EHEA_NUM_TX_QP; +static int prop_carrier_state = 0; module_param(msg_level, int, 0); module_param(rq1_entries, int, 0); module_param(rq2_entries, int, 0); module_param(rq3_entries, int, 0); module_param(sq_entries, int, 0); +module_param(prop_carrier_state, int, 0); module_param(use_mcs, int, 0); module_param(num_tx_qps, int, 0); MODULE_PARM_DESC(num_tx_qps, Number of TX-QPS); MODULE_PARM_DESC(msg_level, msg_level); +MODULE_PARM_DESC(prop_carrier_state, Propagate carrier state of physical +port to stack. 1:yes, 0:no. Default = 0 ); MODULE_PARM_DESC(rq3_entries, Number of entries for Receive Queue 3 [2^x - 1], x = [6..14]. Default = __MODULE_STRING(EHEA_DEF_ENTRIES_RQ3) )); @@ -467,7 +471,7 @@ static struct ehea_cqe *ehea_proc_rwqes(struct net_device *dev, else netif_receive_skb(skb); - dev-last_rx = jiffies; + port-netdev-last_rx = jiffies; } else {
[git patches] net driver fixes
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/infiniband/hw/cxgb3/cxio_hal.c |2 +- drivers/net/cxgb3/adapter.h|2 + drivers/net/cxgb3/common.h |3 +- drivers/net/cxgb3/cxgb3_main.c | 252 +++- drivers/net/cxgb3/cxgb3_offload.c | 16 ++- drivers/net/cxgb3/cxgb3_offload.h |2 + drivers/net/cxgb3/sge.c| 23 ++- drivers/net/cxgb3/t3_hw.c | 46 +- drivers/net/cxgb3/t3cdev.h |3 - drivers/net/ioc3-eth.c | 80 --- drivers/net/netxen/netxen_nic_hdr.h|6 +- drivers/net/netxen/netxen_nic_hw.c |8 +- drivers/net/netxen/netxen_nic_main.c | 19 +-- drivers/net/ps3_gelic_net.c|1 - drivers/s390/net/qeth.h|4 +- drivers/s390/net/qeth_main.c | 158 +++- drivers/s390/net/qeth_mpc.h|1 + drivers/s390/net/qeth_sys.c|8 +- 18 files changed, 428 insertions(+), 206 deletions(-) Divy Le Ray (2): cxgb3 - Fix dev->priv usage - cxgb3 engine microcode load Frank Blaschka (2): qeth: enforce a rate limit for inbound scatter gather messages qeth: Announce tx checksumming for qeth devices in TSO/EDDP mode Heiko Carstens (1): qeth: dont return the return values of void functions. Klaus D. Wacker (1): qeth: Drop ARP packages on HiperSockets interface with NOARP attribute. Masakazu Mokuno (1): PS3: fix the bug that 'ifconfig down' would hang Ralf Baechle (1): IOC3: Program UART predividers. Ursula Braun (3): qeth: ungrouping a device must not be interruptible qeth: crash during reboot after failing online setting qeth: provide specific message for OSA-adapters exclusively used [EMAIL PROTECTED] (2): netxen: Avoid firmware load in PCI probe netxen: fix crashes during module unload diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c index 1518b41..beb2a38 100644 --- a/drivers/infiniband/hw/cxgb3/cxio_hal.c +++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c @@ -916,7 +916,7 @@ int cxio_rdev_open(struct cxio_rdev *rdev_p) PDBG("%s opening rnic dev %s\n", __FUNCTION__, rdev_p->dev_name); memset(_p->ctrl_qp, 0, sizeof(rdev_p->ctrl_qp)); if (!rdev_p->t3cdev_p) - rdev_p->t3cdev_p = T3CDEV(netdev_p); + rdev_p->t3cdev_p = dev2t3cdev(netdev_p); rdev_p->t3cdev_p->ulp = (void *) rdev_p; err = rdev_p->t3cdev_p->ctl(rdev_p->t3cdev_p, RDMA_GET_PARAMS, &(rdev_p->rnic_info)); diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h index ab72563..20e887d 100644 --- a/drivers/net/cxgb3/adapter.h +++ b/drivers/net/cxgb3/adapter.h @@ -50,7 +50,9 @@ typedef irqreturn_t(*intr_handler_t) (int, void *); struct vlan_group; +struct adapter; struct port_info { + struct adapter *adapter; struct vlan_group *vlan_grp; const struct port_type_info *port_type; u8 port_id; diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h index 1637800..2129210 100644 --- a/drivers/net/cxgb3/common.h +++ b/drivers/net/cxgb3/common.h @@ -679,7 +679,8 @@ const struct adapter_info *t3_get_adapter_info(unsigned int board_id); int t3_seeprom_read(struct adapter *adapter, u32 addr, u32 *data); int t3_seeprom_write(struct adapter *adapter, u32 addr, u32 data); int t3_seeprom_wp(struct adapter *adapter, int enable); -int t3_check_tpsram_version(struct adapter *adapter); +int t3_get_tp_version(struct adapter *adapter, u32 *vers); +int t3_check_tpsram_version(struct adapter *adapter, int *must_load); int t3_check_tpsram(struct adapter *adapter, u8 *tp_ram, unsigned int size); int t3_set_proto_sram(struct adapter *adap, u8 *data); int t3_read_flash(struct adapter *adapter, unsigned int addr, diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c index dc5d269..5ab319c 100644 --- a/drivers/net/cxgb3/cxgb3_main.c +++ b/drivers/net/cxgb3/cxgb3_main.c @@ -358,11 +358,14 @@ static int init_dummy_netdevs(struct adapter *adap) for (j = 0; j < pi->nqsets - 1; j++) { if (!adap->dummy_netdev[dummy_idx]) { - nd = alloc_netdev(0, "", ether_setup); + struct port_info *p; + + nd = alloc_netdev(sizeof(*p), "", ether_setup); if (!nd) goto free_all; - nd->priv = adap; + p = netdev_priv(nd); + p->adapter = adap; nd->weight = 64;
Re: [git patches] net driver fixes
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
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/infiniband/hw/cxgb3/cxio_hal.c |2 +- drivers/net/cxgb3/adapter.h|2 + drivers/net/cxgb3/common.h |3 +- drivers/net/cxgb3/cxgb3_main.c | 252 +++- drivers/net/cxgb3/cxgb3_offload.c | 16 ++- drivers/net/cxgb3/cxgb3_offload.h |2 + drivers/net/cxgb3/sge.c| 23 ++- drivers/net/cxgb3/t3_hw.c | 46 +- drivers/net/cxgb3/t3cdev.h |3 - drivers/net/ioc3-eth.c | 80 --- drivers/net/netxen/netxen_nic_hdr.h|6 +- drivers/net/netxen/netxen_nic_hw.c |8 +- drivers/net/netxen/netxen_nic_main.c | 19 +-- drivers/net/ps3_gelic_net.c|1 - drivers/s390/net/qeth.h|4 +- drivers/s390/net/qeth_main.c | 158 +++- drivers/s390/net/qeth_mpc.h|1 + drivers/s390/net/qeth_sys.c|8 +- 18 files changed, 428 insertions(+), 206 deletions(-) Divy Le Ray (2): cxgb3 - Fix dev-priv usage - cxgb3 engine microcode load Frank Blaschka (2): qeth: enforce a rate limit for inbound scatter gather messages qeth: Announce tx checksumming for qeth devices in TSO/EDDP mode Heiko Carstens (1): qeth: dont return the return values of void functions. Klaus D. Wacker (1): qeth: Drop ARP packages on HiperSockets interface with NOARP attribute. Masakazu Mokuno (1): PS3: fix the bug that 'ifconfig down' would hang Ralf Baechle (1): IOC3: Program UART predividers. Ursula Braun (3): qeth: ungrouping a device must not be interruptible qeth: crash during reboot after failing online setting qeth: provide specific message for OSA-adapters exclusively used [EMAIL PROTECTED] (2): netxen: Avoid firmware load in PCI probe netxen: fix crashes during module unload diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c index 1518b41..beb2a38 100644 --- a/drivers/infiniband/hw/cxgb3/cxio_hal.c +++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c @@ -916,7 +916,7 @@ int cxio_rdev_open(struct cxio_rdev *rdev_p) PDBG(%s opening rnic dev %s\n, __FUNCTION__, rdev_p-dev_name); memset(rdev_p-ctrl_qp, 0, sizeof(rdev_p-ctrl_qp)); if (!rdev_p-t3cdev_p) - rdev_p-t3cdev_p = T3CDEV(netdev_p); + rdev_p-t3cdev_p = dev2t3cdev(netdev_p); rdev_p-t3cdev_p-ulp = (void *) rdev_p; err = rdev_p-t3cdev_p-ctl(rdev_p-t3cdev_p, RDMA_GET_PARAMS, (rdev_p-rnic_info)); diff --git a/drivers/net/cxgb3/adapter.h b/drivers/net/cxgb3/adapter.h index ab72563..20e887d 100644 --- a/drivers/net/cxgb3/adapter.h +++ b/drivers/net/cxgb3/adapter.h @@ -50,7 +50,9 @@ typedef irqreturn_t(*intr_handler_t) (int, void *); struct vlan_group; +struct adapter; struct port_info { + struct adapter *adapter; struct vlan_group *vlan_grp; const struct port_type_info *port_type; u8 port_id; diff --git a/drivers/net/cxgb3/common.h b/drivers/net/cxgb3/common.h index 1637800..2129210 100644 --- a/drivers/net/cxgb3/common.h +++ b/drivers/net/cxgb3/common.h @@ -679,7 +679,8 @@ const struct adapter_info *t3_get_adapter_info(unsigned int board_id); int t3_seeprom_read(struct adapter *adapter, u32 addr, u32 *data); int t3_seeprom_write(struct adapter *adapter, u32 addr, u32 data); int t3_seeprom_wp(struct adapter *adapter, int enable); -int t3_check_tpsram_version(struct adapter *adapter); +int t3_get_tp_version(struct adapter *adapter, u32 *vers); +int t3_check_tpsram_version(struct adapter *adapter, int *must_load); int t3_check_tpsram(struct adapter *adapter, u8 *tp_ram, unsigned int size); int t3_set_proto_sram(struct adapter *adap, u8 *data); int t3_read_flash(struct adapter *adapter, unsigned int addr, diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c index dc5d269..5ab319c 100644 --- a/drivers/net/cxgb3/cxgb3_main.c +++ b/drivers/net/cxgb3/cxgb3_main.c @@ -358,11 +358,14 @@ static int init_dummy_netdevs(struct adapter *adap) for (j = 0; j pi-nqsets - 1; j++) { if (!adap-dummy_netdev[dummy_idx]) { - nd = alloc_netdev(0, , ether_setup); + struct port_info *p; + + nd = alloc_netdev(sizeof(*p), , ether_setup); if (!nd) goto free_all; - nd-priv = adap; + p = netdev_priv(nd); + p-adapter = adap; nd-weight = 64; set_bit(__LINK_STATE_START,
Re: [git patches] net driver fixes
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
Please pull from 'upstream-linus' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus to receive the following updates: drivers/net/dm9000.c| 25 --- drivers/net/ehea/ehea_main.c|8 ++-- drivers/net/ehea/ehea_qmr.c |6 drivers/net/forcedeth.c |2 +- drivers/net/meth.c |2 +- drivers/net/myri10ge/myri10ge.c | 34 drivers/net/phy/phy_device.c|2 +- drivers/net/sgiseeq.c |4 ++- drivers/net/sky2.c | 64 +++--- drivers/net/sky2.h |3 +- 10 files changed, 64 insertions(+), 86 deletions(-) Brice Goglin (2): myri10ge: use pcie_get/set_readrq myri10ge: update driver version to 1.3.2-1.269 Domen Puncer (1): phy layer: fix genphy_setup_forced (don't reset) Florian Westphal (1): DM9000: fix interface hang under load Jan-Bernd Themann (3): ehea: fix interface to DLPAR tools ehea: fix module parameter description ehea: fix queue destructor Ralf Baechle (2): Don't use GFP_DMA for zone allocation. sgiseeq: Fix return type of sgiseeq_remove Stephen Hemminger (3): sky2: clear PCI power control reg at startup sky2: only bring up watchdog if link is active sky2 1.17 Willy Tarreau (1): fix realtek phy id in forcedeth diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index c3de81b..738aa59 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -700,6 +700,7 @@ dm9000_init_dm9000(struct net_device *dev) static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) { + unsigned long flags; board_info_t *db = (board_info_t *) dev->priv; PRINTK3("dm9000_start_xmit\n"); @@ -707,10 +708,7 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) if (db->tx_pkt_cnt > 1) return 1; - netif_stop_queue(dev); - - /* Disable all interrupts */ - iow(db, DM9000_IMR, IMR_PAR); + spin_lock_irqsave(>lock, flags); /* Move data to DM9000 TX RAM */ writeb(DM9000_MWCMD, db->io_addr); @@ -718,12 +716,9 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) (db->outblk)(db->io_data, skb->data, skb->len); db->stats.tx_bytes += skb->len; + db->tx_pkt_cnt++; /* TX control: First packet immediately send, second packet queue */ - if (db->tx_pkt_cnt == 0) { - - /* First Packet */ - db->tx_pkt_cnt++; - + if (db->tx_pkt_cnt == 1) { /* Set TX length to DM9000 */ iow(db, DM9000_TXPLL, skb->len & 0xff); iow(db, DM9000_TXPLH, (skb->len >> 8) & 0xff); @@ -732,23 +727,17 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) iow(db, DM9000_TCR, TCR_TXREQ); /* Cleared after TX complete */ dev->trans_start = jiffies; /* save the time stamp */ - } else { /* Second packet */ - db->tx_pkt_cnt++; db->queue_pkt_len = skb->len; + netif_stop_queue(dev); } + spin_unlock_irqrestore(>lock, flags); + /* free this SKB */ dev_kfree_skb(skb); - /* Re-enable resource check */ - if (db->tx_pkt_cnt == 1) - netif_wake_queue(dev); - - /* Re-enable interrupt */ - iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM); - return 0; } diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 9756211..db57474 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -76,7 +76,7 @@ MODULE_PARM_DESC(rq1_entries, "Number of entries for Receive Queue 1 " MODULE_PARM_DESC(sq_entries, " Number of entries for the Send Queue " "[2^x - 1], x = [6..14]. Default = " __MODULE_STRING(EHEA_DEF_ENTRIES_SQ) ")"); -MODULE_PARM_DESC(use_mcs, " 0:NAPI, 1:Multiple receive queues, Default = 1 "); +MODULE_PARM_DESC(use_mcs, " 0:NAPI, 1:Multiple receive queues, Default = 0 "); static int port_name_cnt = 0; static LIST_HEAD(adapter_list); @@ -2490,7 +2490,7 @@ static ssize_t ehea_show_port_id(struct device *dev, struct device_attribute *attr, char *buf) { struct ehea_port *port = container_of(dev, struct ehea_port, ofdev.dev); - return sprintf(buf, "0x%X", port->logical_port_id); + return sprintf(buf, "%d", port->logical_port_id); } static DEVICE_ATTR(log_port_id, S_IRUSR | S_IRGRP | S_IROTH, ehea_show_port_id, @@ -2781,7 +2781,7 @@ static ssize_t ehea_probe_port(struct device *dev, u32 logical_port_id; - sscanf(buf, "%X", _port_id); + sscanf(buf, "%d", _port_id); port = ehea_get_port(adapter, logical_port_id); @@ -2834,7 +2834,7 @@ static ssize_t ehea_remove_port(struct device