diff options
author | David S. Miller <davem@davemloft.net> | 2018-10-13 00:38:46 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-13 00:38:46 -0400 |
commit | d864991b220b7c62e81d21209e1fd978fd67352c (patch) | |
tree | b570a1ad6fc1b959c5bcda6ceca0b321319c01e0 /net/ipv4/fib_frontend.c | |
parent | a688c53a0277d8ea21d86a5c56884892e3442c5e (diff) | |
parent | bab5c80b211035739997ebd361a679fa85b39465 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts were easy to resolve using immediate context mostly,
except the cls_u32.c one where I simply too the entire HEAD
chunk.
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 | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 038f511c73fa..0f1beceb47d5 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
@@ -1291,7 +1291,8 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event, | |||
1291 | static int fib_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) | 1291 | static int fib_netdev_event(struct notifier_block *this, unsigned long event, void *ptr) |
1292 | { | 1292 | { |
1293 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); | 1293 | struct net_device *dev = netdev_notifier_info_to_dev(ptr); |
1294 | struct netdev_notifier_changeupper_info *info; | 1294 | struct netdev_notifier_changeupper_info *upper_info = ptr; |
1295 | struct netdev_notifier_info_ext *info_ext = ptr; | ||
1295 | struct in_device *in_dev; | 1296 | struct in_device *in_dev; |
1296 | struct net *net = dev_net(dev); | 1297 | struct net *net = dev_net(dev); |
1297 | unsigned int flags; | 1298 | unsigned int flags; |
@@ -1326,16 +1327,19 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo | |||
1326 | fib_sync_up(dev, RTNH_F_LINKDOWN); | 1327 | fib_sync_up(dev, RTNH_F_LINKDOWN); |
1327 | else | 1328 | else |
1328 | fib_sync_down_dev(dev, event, false); | 1329 | fib_sync_down_dev(dev, event, false); |
1329 | /* fall through */ | 1330 | rt_cache_flush(net); |
1331 | break; | ||
1330 | case NETDEV_CHANGEMTU: | 1332 | case NETDEV_CHANGEMTU: |
1333 | fib_sync_mtu(dev, info_ext->ext.mtu); | ||
1331 | rt_cache_flush(net); | 1334 | rt_cache_flush(net); |
1332 | break; | 1335 | break; |
1333 | case NETDEV_CHANGEUPPER: | 1336 | case NETDEV_CHANGEUPPER: |
1334 | info = ptr; | 1337 | upper_info = ptr; |
1335 | /* flush all routes if dev is linked to or unlinked from | 1338 | /* flush all routes if dev is linked to or unlinked from |
1336 | * an L3 master device (e.g., VRF) | 1339 | * an L3 master device (e.g., VRF) |
1337 | */ | 1340 | */ |
1338 | if (info->upper_dev && netif_is_l3_master(info->upper_dev)) | 1341 | if (upper_info->upper_dev && |
1342 | netif_is_l3_master(upper_info->upper_dev)) | ||
1339 | fib_disable_ip(dev, NETDEV_DOWN, true); | 1343 | fib_disable_ip(dev, NETDEV_DOWN, true); |
1340 | break; | 1344 | break; |
1341 | } | 1345 | } |