]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
RDS: mark netdev UP for intfs added post module load
authorMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 2 Dec 2014 20:17:26 +0000 (12:17 -0800)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 8 Jul 2015 21:00:12 +0000 (14:00 -0700)
When interfaces are brought up after module load,
a NETDEV_UP event for which no matching port exists
triggers re-initialization of active bonding data
structures. The initialization however missed marking
the layer as up in flag tracking which layers are up.
The fix here marks that layer as UP in the flags since
the initialization is triggered by the NETDEV_UP event
processing!

Orabug: 20130536

Signed-off-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Acked-by: Chien Yen < chien.yen@oracle.com>
net/rds/ib.c

index 94a211414a150bf5842ba5727a2fe7dfe2955483..459263bb79dca4b76aee4eae5ac3e160c1a23471 100644 (file)
@@ -2290,6 +2290,22 @@ static void rds_ib_joining_ip(struct work_struct *_work)
                                                        ifa->ifa_broadcast,
                                                        ifa->ifa_mask);
                                }
+                               /*
+                                * Processing triggered by a NETDEV_UP event
+                                * mark the NETDEV layer UP.
+                                * (No failback/failover processing done for
+                                * this initial NETDEV_UP event for a new
+                                * device!)
+                                */
+                               ip_config[port].port_layerflags |=
+                                       RDSIBP_STATUS_NETDEVUP;
+                               if (!(ip_config[port].dev->flags & IFF_UP)) {
+                                       printk(KERN_WARNING "RDS/IB: Device %s "
+                                              "flag NOT marked UP in "
+                                              "NETDEV_UP(joining ip) "
+                                              "processing!\n",
+                                              ip_config[port].dev->name);
+                               }
                        }
                }
                printk(KERN_INFO "RDS/IB: Updated IP configuration..\n");