From: Jeff Garzik <jgarzik@pobox.com>
To: Andrew Morton <akpm@osdl.org>, Linus Torvalds <torvalds@osdl.org>
Cc: netdev@oss.sgi.com, linux-kernel@vger.kernel.org
Subject: [BK PATCHES] 2.6.x net driver fixes
Date: Thu, 11 Nov 2004 17:44:29 -0500 [thread overview]
Message-ID: <20041111224429.GA2311@havoc.gtf.org> (raw)
Please do a
bk pull bk://gkernel.bkbits.net/net-drivers-2.6
This will update the following files:
drivers/net/bonding/bond_main.c | 15 +++++++++++----
drivers/net/bonding/bonding.h | 4 ++--
drivers/net/e1000/e1000_main.c | 4 +++-
drivers/net/ixgb/ixgb_main.c | 13 +++++++------
net/core/netpoll.c | 4 ++--
5 files changed, 25 insertions(+), 15 deletions(-)
through these ChangeSets:
<akpm@osdl.org> (04/11/11 1.2090)
[PATCH] Fix for 802.3ad shutdown issue
The patch below fixes a problem with shutting down 802.3ad bonds on the 2.6
kernel. Taking the interface down or removing the module causes a stack
dump if spinlock debugging is enabled. This patch was generated from the
2.6.9 kernel.
This patch has been peer reviewed by our Linux software engineering team,
and the fix has been verified by our test labs.
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
<akpm@osdl.org> (04/11/11 1.2089)
[PATCH] ixgb: fix ixgb_intr looping checks
This patch undoes a change that we believe will impact performance
adversely, by creating possibly too long a delay between servicing
completions. The comment pretty much explains it. We need to call both
cleanup routines each pass through the loop, this time we have a comment
explaining why.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
<akpm@osdl.org> (04/11/11 1.2088)
[PATCH] E1000 stop working after resume
Obviously pci_enable_device should be called after pci_restore_state.
Signed-off-by: Li Shaohua <shaohua.li@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
<akpm@osdl.org> (04/11/11 1.2087)
[PATCH] netpoll: fix null ifa_list pointer dereference
This fixes a bug where netpoll can dereference a null ifa_list pointer when
not supplied an IP address at module load and the interface is up but no IP
is configured.
Bonus: unrelated netif_running cleanup
Signed-off by: Jeff Moyer <jmoyer@redhat.com>
Signed-off by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
diff -Nru a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
--- a/drivers/net/bonding/bond_main.c 2004-11-11 17:43:44 -05:00
+++ b/drivers/net/bonding/bond_main.c 2004-11-11 17:43:44 -05:00
@@ -469,6 +469,13 @@
* * Add support for VLAN hardware acceleration capable slaves.
* * Add capability to tag self generated packets in ALB/TLB modes.
* Set version to 2.6.0.
+ * 2004/10/29 - Mitch Williams <mitch.a.williams at intel dot com>
+ * - Fixed bug when unloading module while using 802.3ad. If
+ * spinlock debugging is turned on, this causes a stack dump.
+ * Solution is to move call to dev_remove_pack outside of the
+ * spinlock.
+ * Set version to 2.6.1.
+ *
*/
//#define BONDING_DEBUG 1
@@ -3566,14 +3573,14 @@
{
struct bonding *bond = bond_dev->priv;
- write_lock_bh(&bond->lock);
-
- bond_mc_list_destroy(bond);
-
if (bond->params.mode == BOND_MODE_8023AD) {
/* Unregister the receive of LACPDUs */
bond_unregister_lacpdu(bond);
}
+
+ write_lock_bh(&bond->lock);
+
+ bond_mc_list_destroy(bond);
/* signal timers not to re-arm */
bond->kill_timers = 1;
diff -Nru a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
--- a/drivers/net/bonding/bonding.h 2004-11-11 17:43:44 -05:00
+++ b/drivers/net/bonding/bonding.h 2004-11-11 17:43:44 -05:00
@@ -36,8 +36,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"
-#define DRV_VERSION "2.6.0"
-#define DRV_RELDATE "January 14, 2004"
+#define DRV_VERSION "2.6.1"
+#define DRV_RELDATE "October 29, 2004"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
diff -Nru a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
--- a/drivers/net/e1000/e1000_main.c 2004-11-11 17:43:44 -05:00
+++ b/drivers/net/e1000/e1000_main.c 2004-11-11 17:43:44 -05:00
@@ -2885,9 +2885,11 @@
struct e1000_adapter *adapter = netdev->priv;
uint32_t manc, ret;
- ret = pci_enable_device(pdev);
pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
+ ret = pci_enable_device(pdev);
+ if (pdev->is_busmaster)
+ pci_set_master(pdev);
pci_enable_wake(pdev, 3, 0);
pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */
diff -Nru a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
--- a/drivers/net/ixgb/ixgb_main.c 2004-11-11 17:43:44 -05:00
+++ b/drivers/net/ixgb/ixgb_main.c 2004-11-11 17:43:44 -05:00
@@ -1613,13 +1613,14 @@
__netif_rx_schedule(netdev);
}
#else
- for (i = 0; i < IXGB_MAX_INTR; i++)
- if (ixgb_clean_rx_irq(adapter) == FALSE)
+ /* yes, that is actually a & and it is meant to make sure that
+ * every pass through this for loop checks both receive and
+ * transmit queues for completed descriptors, intended to
+ * avoid starvation issues and assist tx/rx fairness. */
+ for(i = 0; i < IXGB_MAX_INTR; i++)
+ if(!ixgb_clean_rx_irq(adapter) &
+ !ixgb_clean_tx_irq(adapter))
break;
- for (i = 0; i < IXGB_MAX_INTR; i++)
- if (ixgb_clean_tx_irq(adapter) == FALSE)
- break;
-
/* if RAIDC:EN == 1 and ICR:RXDMT0 == 1, we need to
* set IMS:RXDMT0 to 1 to restart the RBD timer (POLL)
*/
diff -Nru a/net/core/netpoll.c b/net/core/netpoll.c
--- a/net/core/netpoll.c 2004-11-11 17:43:44 -05:00
+++ b/net/core/netpoll.c 2004-11-11 17:43:44 -05:00
@@ -565,7 +565,7 @@
goto release;
}
- if (!(ndev->flags & IFF_UP)) {
+ if (!netif_running(ndev)) {
unsigned short oflags;
unsigned long atmost, atleast;
@@ -611,7 +611,7 @@
rcu_read_lock();
in_dev = __in_dev_get(ndev);
- if (!in_dev) {
+ if (!in_dev || !in_dev->ifa_list) {
rcu_read_unlock();
printk(KERN_ERR "%s: no IP address for %s, aborting\n",
np->name, np->dev_name);
next reply other threads:[~2004-11-11 22:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-11 22:44 Jeff Garzik [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-03-31 1:59 [BK PATCHES] 2.6.x net driver fixes Jeff Garzik
2005-03-29 21:04 Jeff Garzik
2005-03-12 4:33 Jeff Garzik
2005-02-21 2:30 Jeff Garzik
2005-02-13 20:18 Jeff Garzik
2005-01-27 23:45 Jeff Garzik
2004-11-24 21:02 Jeff Garzik
2004-11-08 2:32 Jeff Garzik
2004-10-18 23:52 Jeff Garzik
2004-10-04 22:08 Jeff Garzik
2004-09-04 2:56 Jeff Garzik
[not found] <20040714192706.GA24447@havoc.gtf.org>
[not found] ` <Pine.LNX.4.58.0407141229480.20824@ppc970.osdl.org>
[not found] ` <40F58EFD.7080904@pobox.com>
2004-07-14 21:28 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041111224429.GA2311@havoc.gtf.org \
--to=jgarzik@pobox.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@oss.sgi.com \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).