vlan.c (c709002c23f91d90eb6ee2d4efbb548a8fe3cc80) vlan.c (9daae9bd47cff82a2a06aca23c458d6c79d09d52)
1/*
2 * INET 802.1Q VLAN
3 * Ethernet-type device handling.
4 *
5 * Authors: Ben Greear <greearb@candelatech.com>
6 * Please send support related email to: netdev@vger.kernel.org
7 * VLAN Home Page: http://www.candelatech.com/~greear/vlan.html
8 *

--- 346 unchanged lines hidden (view full) ---

355 struct net_device *dev = netdev_notifier_info_to_dev(ptr);
356 struct vlan_group *grp;
357 struct vlan_info *vlan_info;
358 int i, flgs;
359 struct net_device *vlandev;
360 struct vlan_dev_priv *vlan;
361 bool last = false;
362 LIST_HEAD(list);
1/*
2 * INET 802.1Q VLAN
3 * Ethernet-type device handling.
4 *
5 * Authors: Ben Greear <greearb@candelatech.com>
6 * Please send support related email to: netdev@vger.kernel.org
7 * VLAN Home Page: http://www.candelatech.com/~greear/vlan.html
8 *

--- 346 unchanged lines hidden (view full) ---

355 struct net_device *dev = netdev_notifier_info_to_dev(ptr);
356 struct vlan_group *grp;
357 struct vlan_info *vlan_info;
358 int i, flgs;
359 struct net_device *vlandev;
360 struct vlan_dev_priv *vlan;
361 bool last = false;
362 LIST_HEAD(list);
363 int err;
363
364 if (is_vlan_dev(dev)) {
365 int err = __vlan_device_event(dev, event);
366
367 if (err)
368 return notifier_from_errno(err);
369 }
370

--- 113 unchanged lines hidden (view full) ---

484
485 case NETDEV_NOTIFY_PEERS:
486 case NETDEV_BONDING_FAILOVER:
487 case NETDEV_RESEND_IGMP:
488 /* Propagate to vlan devices */
489 vlan_group_for_each_dev(grp, i, vlandev)
490 call_netdevice_notifiers(event, vlandev);
491 break;
364
365 if (is_vlan_dev(dev)) {
366 int err = __vlan_device_event(dev, event);
367
368 if (err)
369 return notifier_from_errno(err);
370 }
371

--- 113 unchanged lines hidden (view full) ---

485
486 case NETDEV_NOTIFY_PEERS:
487 case NETDEV_BONDING_FAILOVER:
488 case NETDEV_RESEND_IGMP:
489 /* Propagate to vlan devices */
490 vlan_group_for_each_dev(grp, i, vlandev)
491 call_netdevice_notifiers(event, vlandev);
492 break;
493
494 case NETDEV_CVLAN_FILTER_PUSH_INFO:
495 err = vlan_filter_push_vids(vlan_info, htons(ETH_P_8021Q));
496 if (err)
497 return notifier_from_errno(err);
498 break;
499
500 case NETDEV_CVLAN_FILTER_DROP_INFO:
501 vlan_filter_drop_vids(vlan_info, htons(ETH_P_8021Q));
502 break;
503
504 case NETDEV_SVLAN_FILTER_PUSH_INFO:
505 err = vlan_filter_push_vids(vlan_info, htons(ETH_P_8021AD));
506 if (err)
507 return notifier_from_errno(err);
508 break;
509
510 case NETDEV_SVLAN_FILTER_DROP_INFO:
511 vlan_filter_drop_vids(vlan_info, htons(ETH_P_8021AD));
512 break;
492 }
493
494out:
495 return NOTIFY_DONE;
496}
497
498static struct notifier_block vlan_notifier_block __read_mostly = {
499 .notifier_call = vlan_device_event,

--- 304 unchanged lines hidden ---
513 }
514
515out:
516 return NOTIFY_DONE;
517}
518
519static struct notifier_block vlan_notifier_block __read_mostly = {
520 .notifier_call = vlan_device_event,

--- 304 unchanged lines hidden ---