OSDN Git Service

staging: most: aim-network: fix startup scenario.
authorAndrey Shvetsov <andrey.shvetsov@k2l.de>
Tue, 4 Oct 2016 15:10:16 +0000 (17:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Oct 2016 08:25:11 +0000 (10:25 +0200)
In case the networking interface (running on MediaLB) is being started
before the MOST network is, it remains disabled even after the MOST network
has transitioned to active mode.

This patch removes the dependency on the MOST link status to keep the
networking queue active and the networking interface working for the
case described above.

Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/aim-network/networking.c

index 4659a64..5728270 100644 (file)
@@ -67,7 +67,6 @@ struct net_dev_context {
        struct most_interface *iface;
        bool channels_opened;
        bool is_mamac;
-       unsigned char link_stat;
        struct net_device *dev;
        struct net_dev_channel rx;
        struct net_dev_channel tx;
@@ -203,13 +202,10 @@ static int most_nd_open(struct net_device *dev)
        }
 
        nd->channels_opened = true;
+       netif_wake_queue(dev);
 
-       if (nd->is_mamac) {
-               nd->link_stat = 1;
-               netif_wake_queue(dev);
-       } else {
+       if (!nd->is_mamac)
                nd->iface->request_netinfo(nd->iface, nd->tx.ch_id);
-       }
 
        return 0;
 }
@@ -561,14 +557,6 @@ void most_deliver_netinfo(struct most_interface *iface,
 
        if (mac_addr)
                ether_addr_copy(dev->dev_addr, mac_addr);
-
-       if (nd->link_stat != link_stat) {
-               nd->link_stat = link_stat;
-               if (nd->link_stat)
-                       netif_wake_queue(dev);
-               else
-                       netif_stop_queue(dev);
-       }
 }
 EXPORT_SYMBOL(most_deliver_netinfo);