From: Chris Wright <chrisw@osdl.org>
To: linux-kernel@vger.kernel.org, stable@kernel.org,
Krzysztof Oledzki <olel@ans.pl>, Chris Wright <chrisw@osdl.org>
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Chuck Wolber <chuckw@quantumlinux.com>,
torvalds@osdl.org, akpm@osdl.org, alan@lxorguk.ukuu.org.uk,
Stephen Hemminger <shemminger@osdl.org>
Subject: [PATCH 08/10] [PATCH] skge: set mac address oops with bonding
Date: Thu, 29 Sep 2005 19:20:24 -0700 [thread overview]
Message-ID: <20050930022242.010635000@localhost.localdomain> (raw)
In-Reply-To: 20050930022016.640197000@localhost.localdomain
[-- Attachment #1: skge-set-mac-address-oops-with-bonding.patch --]
[-- Type: text/plain, Size: 1907 bytes --]
-stable review patch. If anyone has any objections, please let us know.
------------------
Here is the patch (fuzz removed) for 2.6.13.2 that fixes
OOPs when using bonding with skge.
Skge driver was bringing link up/down when changing mac
address. This doesn't work in the bonding environment, and is
more effort than needed.
Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=5271
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Sigend-off-by: Chris Wright <chrisw@osdl.org>
---
drivers/net/skge.c | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
Index: linux-2.6.13.y/drivers/net/skge.c
===================================================================
--- linux-2.6.13.y.orig/drivers/net/skge.c
+++ linux-2.6.13.y/drivers/net/skge.c
@@ -2828,21 +2828,29 @@ static void skge_netpoll(struct net_devi
static int skge_set_mac_address(struct net_device *dev, void *p)
{
struct skge_port *skge = netdev_priv(dev);
- struct sockaddr *addr = p;
- int err = 0;
+ struct skge_hw *hw = skge->hw;
+ unsigned port = skge->port;
+ const struct sockaddr *addr = p;
if (!is_valid_ether_addr(addr->sa_data))
return -EADDRNOTAVAIL;
- skge_down(dev);
+ spin_lock_bh(&hw->phy_lock);
memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
- memcpy_toio(skge->hw->regs + B2_MAC_1 + skge->port*8,
+ memcpy_toio(hw->regs + B2_MAC_1 + port*8,
dev->dev_addr, ETH_ALEN);
- memcpy_toio(skge->hw->regs + B2_MAC_2 + skge->port*8,
+ memcpy_toio(hw->regs + B2_MAC_2 + port*8,
dev->dev_addr, ETH_ALEN);
- if (dev->flags & IFF_UP)
- err = skge_up(dev);
- return err;
+
+ if (hw->chip_id == CHIP_ID_GENESIS)
+ xm_outaddr(hw, port, XM_SA, dev->dev_addr);
+ else {
+ gma_set_addr(hw, port, GM_SRC_ADDR_1L, dev->dev_addr);
+ gma_set_addr(hw, port, GM_SRC_ADDR_2L, dev->dev_addr);
+ }
+ spin_unlock_bh(&hw->phy_lock);
+
+ return 0;
}
static const struct {
--
next prev parent reply other threads:[~2005-09-30 2:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-30 2:20 [PATCH 00/10] -stable review Chris Wright
2005-09-30 2:20 ` [PATCH 01/10] [PATCH] yenta oops fix Chris Wright
2005-09-30 2:20 ` [PATCH 02/10] [PATCH] Fix fs/exec.c:788 (de_thread()) BUG_ON Chris Wright
2005-09-30 2:20 ` [PATCH 03/10] [PATCH] fix IPv6 per-socket multicast filtering in exact-match case Chris Wright
2005-09-30 2:20 ` [PATCH 04/10] [PATCH] ipvs: ip_vs_ftp breaks connections using persistence Chris Wright
2005-09-30 2:20 ` [PATCH 05/10] [PATCH]: Missing acct/mm calls in compat_do_execve() Chris Wright
2005-09-30 5:48 ` Hugh Dickins
2005-09-30 21:24 ` Chris Wright
2005-10-01 2:18 ` David S. Miller
2005-09-30 2:20 ` [uml-devel] [PATCH 06/10] [PATCH] uml - Fix x86_64 page leak Chris Wright
2005-09-30 2:20 ` Chris Wright
2005-09-30 2:20 ` [PATCH 07/10] [PATCH] check connect(2) status for IPv6 UDP socket Chris Wright
2005-09-30 6:25 ` Chuck Wolber
2005-09-30 7:10 ` David S. Miller
2005-09-30 11:05 ` Mitsuru KANDA / 神田 充
2005-10-05 19:00 ` Chris Wright
2005-10-05 19:05 ` David S. Miller
2005-09-30 2:20 ` Chris Wright [this message]
2005-09-30 2:20 ` [PATCH 09/10] [PATCH] tcp: set default congestion control correctly for incoming connections Chris Wright
2005-09-30 2:20 ` [PATCH 10/10] [TCP]: Dont over-clamp window in tcp_clamp_window() Chris Wright
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=20050930022242.010635000@localhost.localdomain \
--to=chrisw@osdl.org \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=chuckw@quantumlinux.com \
--cc=jmforbes@linuxtx.org \
--cc=linux-kernel@vger.kernel.org \
--cc=olel@ans.pl \
--cc=rdunlap@xenotime.net \
--cc=shemminger@osdl.org \
--cc=stable@kernel.org \
--cc=torvalds@osdl.org \
--cc=tytso@mit.edu \
--cc=zwane@arm.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.