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 --- |