diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2011-04-15 09:46:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-18 02:35:16 -0400 |
commit | 99606477a5888b0ead0284fecb13417b1da8e3af (patch) | |
tree | 7d5084ad6849034fd7676032d2f6868c7a6b48d1 /net/8021q | |
parent | f47b94646f30529624c82ab0f9cd5bd3f25ef9d2 (diff) |
vlan: Propagate NETDEV_NOTIFY_PEERS notifier
The NETDEV_NOTIFY_PEERS notifier indicates that a device moved to a
different physical link; this also applies to any VLAN devices on top
of it.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q')
-rw-r--r-- | net/8021q/vlan.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 14ef5efbc653..b2ff70fcf8ea 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
@@ -499,6 +499,17 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, | |||
499 | case NETDEV_PRE_TYPE_CHANGE: | 499 | case NETDEV_PRE_TYPE_CHANGE: |
500 | /* Forbid underlaying device to change its type. */ | 500 | /* Forbid underlaying device to change its type. */ |
501 | return NOTIFY_BAD; | 501 | return NOTIFY_BAD; |
502 | |||
503 | case NETDEV_NOTIFY_PEERS: | ||
504 | /* Propagate to vlan devices */ | ||
505 | for (i = 0; i < VLAN_N_VID; i++) { | ||
506 | vlandev = vlan_group_get_device(grp, i); | ||
507 | if (!vlandev) | ||
508 | continue; | ||
509 | |||
510 | call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, vlandev); | ||
511 | } | ||
512 | break; | ||
502 | } | 513 | } |
503 | 514 | ||
504 | out: | 515 | out: |