diff options
author | David S. Miller <davem@davemloft.net> | 2015-11-03 13:41:45 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-11-03 13:41:45 -0500 |
commit | 73186df8d7fa574345f0ad626ebe89649f8308a5 (patch) | |
tree | 9e6ed2c499cb5cbbcc79415602f9114503bb6931 /net/ipv4/fib_frontend.c | |
parent | 0c63d80c3fac4e6eb0f01dff756e47bc7cd50092 (diff) | |
parent | ebac62fe3d24c0ce22dd83afa7b07d1a2aaef44d (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor overlapping changes in net/ipv4/ipmr.c, in 'net' we were
fixing the "BH-ness" of the counter bumps whilst in 'net-next'
the functions were modified to take an explicit 'net' parameter.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_frontend.c')
-rw-r--r-- | net/ipv4/fib_frontend.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index e786873c89f2..cc8f3e506cde 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
@@ -1112,9 +1112,10 @@ static void nl_fib_lookup_exit(struct net *net) | |||
1112 | net->ipv4.fibnl = NULL; | 1112 | net->ipv4.fibnl = NULL; |
1113 | } | 1113 | } |
1114 | 1114 | ||
1115 | static void fib_disable_ip(struct net_device *dev, unsigned long event) | 1115 | static void fib_disable_ip(struct net_device *dev, unsigned long event, |
1116 | bool force) | ||
1116 | { | 1117 | { |
1117 | if (fib_sync_down_dev(dev, event)) | 1118 | if (fib_sync_down_dev(dev, event, force)) |
1118 | fib_flush(dev_net(dev)); | 1119 | fib_flush(dev_net(dev)); |
1119 | rt_cache_flush(dev_net(dev)); | 1120 | rt_cache_flush(dev_net(dev)); |
1120 | arp_ifdown(dev); | 1121 | arp_ifdown(dev); |
@@ -1142,7 +1143,7 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event, | |||
1142 | /* Last address was deleted from this interface. | 1143 | /* Last address was deleted from this interface. |
1143 | * Disable IP. | 1144 | * Disable IP. |
1144 | */ | 1145 | */ |
1145 | fib_disable_ip(dev, event); | 1146 | fib_disable_ip(dev, event, true); |
1146 | } else { | 1147 | } else { |
1147 | rt_cache_flush(dev_net(dev)); | 1148 | rt_cache_flush(dev_net(dev)); |
1148 | } | 1149 | } |
@@ -1159,7 +1160,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo | |||
1159 | unsigned int flags; | 1160 | unsigned int flags; |
1160 | 1161 | ||
1161 | if (event == NETDEV_UNREGISTER) { | 1162 | if (event == NETDEV_UNREGISTER) { |
1162 | fib_disable_ip(dev, event); | 1163 | fib_disable_ip(dev, event, true); |
1163 | rt_flush_dev(dev); | 1164 | rt_flush_dev(dev); |
1164 | return NOTIFY_DONE; | 1165 | return NOTIFY_DONE; |
1165 | } | 1166 | } |
@@ -1180,14 +1181,14 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo | |||
1180 | rt_cache_flush(net); | 1181 | rt_cache_flush(net); |
1181 | break; | 1182 | break; |
1182 | case NETDEV_DOWN: | 1183 | case NETDEV_DOWN: |
1183 | fib_disable_ip(dev, event); | 1184 | fib_disable_ip(dev, event, false); |
1184 | break; | 1185 | break; |
1185 | case NETDEV_CHANGE: | 1186 | case NETDEV_CHANGE: |
1186 | flags = dev_get_flags(dev); | 1187 | flags = dev_get_flags(dev); |
1187 | if (flags & (IFF_RUNNING | IFF_LOWER_UP)) | 1188 | if (flags & (IFF_RUNNING | IFF_LOWER_UP)) |
1188 | fib_sync_up(dev, RTNH_F_LINKDOWN); | 1189 | fib_sync_up(dev, RTNH_F_LINKDOWN); |
1189 | else | 1190 | else |
1190 | fib_sync_down_dev(dev, event); | 1191 | fib_sync_down_dev(dev, event, false); |
1191 | /* fall through */ | 1192 | /* fall through */ |
1192 | case NETDEV_CHANGEMTU: | 1193 | case NETDEV_CHANGEMTU: |
1193 | rt_cache_flush(net); | 1194 | rt_cache_flush(net); |