|
@@ -155,8 +155,6 @@ void t4vf_os_link_changed(struct adapter *adapter, int pidx, int link_ok)
|
|
const char *fc;
|
|
const char *fc;
|
|
const struct port_info *pi = netdev_priv(dev);
|
|
const struct port_info *pi = netdev_priv(dev);
|
|
|
|
|
|
- netif_carrier_on(dev);
|
|
|
|
-
|
|
|
|
switch (pi->link_cfg.speed) {
|
|
switch (pi->link_cfg.speed) {
|
|
case 100:
|
|
case 100:
|
|
s = "100Mbps";
|
|
s = "100Mbps";
|
|
@@ -202,7 +200,6 @@ void t4vf_os_link_changed(struct adapter *adapter, int pidx, int link_ok)
|
|
|
|
|
|
netdev_info(dev, "link up, %s, full-duplex, %s PAUSE\n", s, fc);
|
|
netdev_info(dev, "link up, %s, full-duplex, %s PAUSE\n", s, fc);
|
|
} else {
|
|
} else {
|
|
- netif_carrier_off(dev);
|
|
|
|
netdev_info(dev, "link down\n");
|
|
netdev_info(dev, "link down\n");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -278,6 +275,17 @@ static int link_start(struct net_device *dev)
|
|
*/
|
|
*/
|
|
if (ret == 0)
|
|
if (ret == 0)
|
|
ret = t4vf_enable_vi(pi->adapter, pi->viid, true, true);
|
|
ret = t4vf_enable_vi(pi->adapter, pi->viid, true, true);
|
|
|
|
+
|
|
|
|
+ /* The Virtual Interfaces are connected to an internal switch on the
|
|
|
|
+ * chip which allows VIs attached to the same port to talk to each
|
|
|
|
+ * other even when the port link is down. As a result, we generally
|
|
|
|
+ * want to always report a VI's link as being "up", provided there are
|
|
|
|
+ * no errors in enabling vi.
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+ if (ret == 0)
|
|
|
|
+ netif_carrier_on(dev);
|
|
|
|
+
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|