]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/bridge/br_notify.c
[TIPC]: Fixed memory leak in tipc_link_send() when destination is unreachable
[linux-2.6-omap-h63xx.git] / net / bridge / br_notify.c
index 917311c6828b9c5c70d2290c617c4ebaf9be3405..20278494e4da0d11712cfad0ed31f410abc5eb35 100644 (file)
@@ -14,6 +14,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/rtnetlink.h>
 
 #include "br_private.h"
 
@@ -49,20 +50,13 @@ static int br_device_event(struct notifier_block *unused, unsigned long event, v
 
        case NETDEV_CHANGEADDR:
                br_fdb_changeaddr(p, dev->dev_addr);
+               br_ifinfo_notify(RTM_NEWLINK, p);
                br_stp_recalculate_bridge_id(br);
                break;
 
-       case NETDEV_CHANGE:     /* device is up but carrier changed */
-               if (!(br->dev->flags & IFF_UP))
-                       break;
-
-               if (netif_carrier_ok(dev)) {
-                       if (p->state == BR_STATE_DISABLED)
-                               br_stp_enable_port(p);
-               } else {
-                       if (p->state != BR_STATE_DISABLED)
-                               br_stp_disable_port(p);
-               }
+       case NETDEV_CHANGE:
+               if (br->dev->flags & IFF_UP)
+                       schedule_delayed_work(&p->carrier_check, BR_PORT_DEBOUNCE);
                break;
 
        case NETDEV_FEAT_CHANGE: