From: jianhai luan <jianhai.luan@oracle.com>
To: gmarsden_org_ww@oracle.com, LINUX-UEK_WW@oracle.com,
xen-devel@lists.xensource.com
Subject: Re: [PATCH 3/4] review For Oracle bug 14470382
Date: Fri, 18 Jan 2013 09:54:23 +0800 [thread overview]
Message-ID: <50F8AB4F.9050106@oracle.com> (raw)
In-Reply-To: <50F8A979.6010709@oracle.com>
[-- Attachment #1: Type: text/plain, Size: 485 bytes --]
On 2013-1-18 9:46, jianhai luan wrote:
> orabug: 14470382
>
> When Dom0's network environment change, for example the issue, DomU
> should send send gratuitous ARP initially to notify how to reach it.
>
> To fix the bug, we should modify backend and frontend at the same
> time. For fixing frontend, i filer the new bug 16182568. The review
> only to backend.
>
> For fixing the backend, I have 4 patch for review.
>
[PATCH]Change function netdev_bonding_change
> Thanks,
> Jason
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-bonding-remap-muticast-addresses-without-using-dev_c.patch --]
[-- Type: text/plain; charset=gb18030; name="0003-bonding-remap-muticast-addresses-without-using-dev_c.patch", Size: 3050 bytes --]
From 75c78500ddad74b229cd0691496b8549490496a2 Mon Sep 17 00:00:00 2001
From: Moni Shoua <monis@voltaire.com>
Date: Tue, 15 Sep 2009 02:37:40 -0700
Subject: [PATCH] bonding: remap muticast addresses without using dev_close()
and dev_open()
This patch fixes commit e36b9d16c6a6d0f59803b3ef04ff3c22c3844c10. The approach
there is to call dev_close()/dev_open() whenever the device type is changed in
order to remap the device IP multicast addresses to HW multicast addresses.
This approach suffers from 2 drawbacks:
*. It assumes tha the device is UP when calling dev_close(), or otherwise
dev_close() has no affect. It is worth to mention that initscripts (Redhat)
and sysconfig (Suse) doesn't act the same in this matter.
*. dev_close() has other side affects, like deleting entries from the routing
table, which might be unnecessary.
The fix here is to directly remap the IP multicast addresses to HW multicast
addresses for a bonding device that changes its type, and nothing else.
Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Moni Shoua <monis@voltaire.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff -Nur linux-2.6.18.i686.0002/drivers/net/bonding/bond_main.c linux-2.6.18.i686/drivers/net/bonding/bond_main.c
--- linux-2.6.18.i686.0002/drivers/net/bonding/bond_main.c 2013-01-17 13:54:39.000000000 +0800
+++ linux-2.6.18.i686/drivers/net/bonding/bond_main.c 2013-01-17 14:07:49.000000000 +0800
@@ -1103,7 +1103,7 @@
write_unlock_bh(&bond->curr_slave_lock);
read_unlock(&bond->lock);
- netdev_bonding_change(bond->dev);
+ netdev_bonding_change(bond->dev, NETDEV_BONDING_FAILOVER);
read_lock(&bond->lock);
write_lock_bh(&bond->curr_slave_lock);
diff -Nur linux-2.6.18.i686.0002/include/linux/netdevice.h linux-2.6.18.i686/include/linux/netdevice.h
--- linux-2.6.18.i686.0002/include/linux/netdevice.h 2013-01-17 13:53:54.000000000 +0800
+++ linux-2.6.18.i686/include/linux/netdevice.h 2013-01-17 14:09:02.000000000 +0800
@@ -1004,7 +1004,8 @@
extern void dev_set_promiscuity(struct net_device *dev, int inc);
extern void dev_set_allmulti(struct net_device *dev, int inc);
extern void netdev_state_change(struct net_device *dev);
-extern void netdev_bonding_change(struct net_device *dev);
+extern void netdev_bonding_change(struct net_device *dev,
+ unsigned long event);
extern void netdev_features_change(struct net_device *dev);
/* Load a device via the kmod */
extern void dev_load(const char *name);
diff -Nur linux-2.6.18.i686.0002/net/core/dev.c linux-2.6.18.i686/net/core/dev.c
--- linux-2.6.18.i686.0002/net/core/dev.c 2013-01-17 13:53:54.000000000 +0800
+++ linux-2.6.18.i686/net/core/dev.c 2013-01-17 14:11:29.000000000 +0800
@@ -797,9 +797,9 @@
}
}
-void netdev_bonding_change(struct net_device *dev)
+void netdev_bonding_change(struct net_device *dev, unsigned long event)
{
- call_netdevice_notifiers(NETDEV_BONDING_FAILOVER, dev);
+ call_netdevice_notifiers(event, dev);
}
EXPORT_SYMBOL(netdev_bonding_change);
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-01-18 1:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-18 1:46 review For Oracle bug 14470382 jianhai luan
2013-01-18 1:50 ` [PATCH 1/4]review " jianhai luan
2013-01-18 1:52 ` [PATCH 2/4] review " jianhai luan
2013-01-18 1:54 ` jianhai luan [this message]
2013-01-18 1:57 ` [PATCH 4/4] " jianhai luan
2013-01-18 6:45 ` Dan Carpenter
2013-01-18 10:08 ` Ian Campbell
2013-01-18 10:26 ` Jan Beulich
2013-01-19 5:25 ` Jason Luan
2013-01-18 2:03 ` [Test Result] " jianhai luan
2013-01-18 2:38 ` jianhai luan
2013-01-18 2:44 ` jianhai luan
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=50F8AB4F.9050106@oracle.com \
--to=jianhai.luan@oracle.com \
--cc=LINUX-UEK_WW@oracle.com \
--cc=gmarsden_org_ww@oracle.com \
--cc=xen-devel@lists.xensource.com \
/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).