diff options
author | David S. Miller <davem@davemloft.net> | 2013-04-22 20:32:51 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-22 20:32:51 -0400 |
commit | 6e0895c2ea326cc4bb11e8fa2f654628d5754c31 (patch) | |
tree | 7089303ac11a12edc43a8c4fa1b23974e10937ea /net/ipv6/addrconf.c | |
parent | 55fbbe46e9eb3cbe6c335503f5550855a1128dce (diff) | |
parent | 60d509fa6a9c4653a86ad830e4c4b30360b23f0e (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
include/net/scm.h
net/batman-adv/routing.c
net/ipv4/tcp_input.c
The e{uid,gid} --> {uid,gid} credentials fix conflicted with the
cleanup in net-next to now pass cred structs around.
The be2net driver had a bug fix in 'net' that overlapped with the VLAN
interface changes by Patrick McHardy in net-next.
An IGB conflict existed because in 'net' the build_skb() support was
reverted, and in 'net-next' there was a comment style fix within that
code.
Several batman-adv conflicts were resolved by making sure that all
calls to batadv_is_my_mac() are changed to have a new bat_priv first
argument.
Eric Dumazet's TS ECR fix in TCP in 'net' conflicted with the F-RTO
rewrite in 'net-next', mostly overlapping changes.
Thanks to Stephen Rothwell and Antonio Quartulli for help with several
of these merge resolutions.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 28b61e89bbb8..d1ab6ab29a55 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c | |||
@@ -169,8 +169,6 @@ static void inet6_prefix_notify(int event, struct inet6_dev *idev, | |||
169 | static bool ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, | 169 | static bool ipv6_chk_same_addr(struct net *net, const struct in6_addr *addr, |
170 | struct net_device *dev); | 170 | struct net_device *dev); |
171 | 171 | ||
172 | static ATOMIC_NOTIFIER_HEAD(inet6addr_chain); | ||
173 | |||
174 | static struct ipv6_devconf ipv6_devconf __read_mostly = { | 172 | static struct ipv6_devconf ipv6_devconf __read_mostly = { |
175 | .forwarding = 0, | 173 | .forwarding = 0, |
176 | .hop_limit = IPV6_DEFAULT_HOPLIMIT, | 174 | .hop_limit = IPV6_DEFAULT_HOPLIMIT, |
@@ -910,7 +908,7 @@ out2: | |||
910 | rcu_read_unlock_bh(); | 908 | rcu_read_unlock_bh(); |
911 | 909 | ||
912 | if (likely(err == 0)) | 910 | if (likely(err == 0)) |
913 | atomic_notifier_call_chain(&inet6addr_chain, NETDEV_UP, ifa); | 911 | inet6addr_notifier_call_chain(NETDEV_UP, ifa); |
914 | else { | 912 | else { |
915 | kfree(ifa); | 913 | kfree(ifa); |
916 | ifa = ERR_PTR(err); | 914 | ifa = ERR_PTR(err); |
@@ -1000,7 +998,7 @@ static void ipv6_del_addr(struct inet6_ifaddr *ifp) | |||
1000 | 998 | ||
1001 | ipv6_ifa_notify(RTM_DELADDR, ifp); | 999 | ipv6_ifa_notify(RTM_DELADDR, ifp); |
1002 | 1000 | ||
1003 | atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifp); | 1001 | inet6addr_notifier_call_chain(NETDEV_DOWN, ifp); |
1004 | 1002 | ||
1005 | /* | 1003 | /* |
1006 | * Purge or update corresponding prefix | 1004 | * Purge or update corresponding prefix |
@@ -3087,7 +3085,7 @@ static int addrconf_ifdown(struct net_device *dev, int how) | |||
3087 | 3085 | ||
3088 | if (state != INET6_IFADDR_STATE_DEAD) { | 3086 | if (state != INET6_IFADDR_STATE_DEAD) { |
3089 | __ipv6_ifa_notify(RTM_DELADDR, ifa); | 3087 | __ipv6_ifa_notify(RTM_DELADDR, ifa); |
3090 | atomic_notifier_call_chain(&inet6addr_chain, NETDEV_DOWN, ifa); | 3088 | inet6addr_notifier_call_chain(NETDEV_DOWN, ifa); |
3091 | } | 3089 | } |
3092 | in6_ifa_put(ifa); | 3090 | in6_ifa_put(ifa); |
3093 | 3091 | ||
@@ -5054,22 +5052,6 @@ static struct pernet_operations addrconf_ops = { | |||
5054 | .exit = addrconf_exit_net, | 5052 | .exit = addrconf_exit_net, |
5055 | }; | 5053 | }; |
5056 | 5054 | ||
5057 | /* | ||
5058 | * Device notifier | ||
5059 | */ | ||
5060 | |||
5061 | int register_inet6addr_notifier(struct notifier_block *nb) | ||
5062 | { | ||
5063 | return atomic_notifier_chain_register(&inet6addr_chain, nb); | ||
5064 | } | ||
5065 | EXPORT_SYMBOL(register_inet6addr_notifier); | ||
5066 | |||
5067 | int unregister_inet6addr_notifier(struct notifier_block *nb) | ||
5068 | { | ||
5069 | return atomic_notifier_chain_unregister(&inet6addr_chain, nb); | ||
5070 | } | ||
5071 | EXPORT_SYMBOL(unregister_inet6addr_notifier); | ||
5072 | |||
5073 | static struct rtnl_af_ops inet6_ops = { | 5055 | static struct rtnl_af_ops inet6_ops = { |
5074 | .family = AF_INET6, | 5056 | .family = AF_INET6, |
5075 | .fill_link_af = inet6_fill_link_af, | 5057 | .fill_link_af = inet6_fill_link_af, |