]> Pileus Git - ~andy/linux/blobdiff - drivers/infiniband/hw/nes/nes.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[~andy/linux] / drivers / infiniband / hw / nes / nes.c
index 5b152a366dffd550e6b149a8bc56f841db9c1c6b..429141078eec632d2409b75f267193f4fb242f96 100644 (file)
@@ -135,6 +135,7 @@ static int nes_inetaddr_event(struct notifier_block *notifier,
        struct net_device *event_netdev = ifa->ifa_dev->dev;
        struct nes_device *nesdev;
        struct net_device *netdev;
+       struct net_device *upper_dev;
        struct nes_vnic *nesvnic;
        unsigned int is_bonded;
 
@@ -145,8 +146,9 @@ static int nes_inetaddr_event(struct notifier_block *notifier,
                                nesdev, nesdev->netdev[0]->name);
                netdev = nesdev->netdev[0];
                nesvnic = netdev_priv(netdev);
+               upper_dev = netdev_master_upper_dev_get(netdev);
                is_bonded = netif_is_bond_slave(netdev) &&
-                           (netdev->master == event_netdev);
+                           (upper_dev == event_netdev);
                if ((netdev == event_netdev) || is_bonded) {
                        if (nesvnic->rdma_enabled == 0) {
                                nes_debug(NES_DBG_NETDEV, "Returning without processing event for %s since"
@@ -179,9 +181,9 @@ static int nes_inetaddr_event(struct notifier_block *notifier,
                                        /* fall through */
                                case NETDEV_CHANGEADDR:
                                        /* Add the address to the IP table */
-                                       if (netdev->master)
+                                       if (upper_dev)
                                                nesvnic->local_ipaddr =
-                                                       ((struct in_device *)netdev->master->ip_ptr)->ifa_list->ifa_address;
+                                                       ((struct in_device *)upper_dev->ip_ptr)->ifa_list->ifa_address;
                                        else
                                                nesvnic->local_ipaddr = ifa->ifa_address;