aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ixgb')
-rw-r--r--drivers/net/ixgb/ixgb_ethtool.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c
index 3fa113854eeb..94bc3d41cfa3 100644
--- a/drivers/net/ixgb/ixgb_ethtool.c
+++ b/drivers/net/ixgb/ixgb_ethtool.c
@@ -130,6 +130,12 @@ ixgb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
130 ixgb_down(adapter, TRUE); 130 ixgb_down(adapter, TRUE);
131 ixgb_reset(adapter); 131 ixgb_reset(adapter);
132 ixgb_up(adapter); 132 ixgb_up(adapter);
133 /* be optimistic about our link, since we were up before */
134 adapter->link_speed = 10000;
135 adapter->link_duplex = FULL_DUPLEX;
136 netif_carrier_on(netdev);
137 netif_wake_queue(netdev);
138
133 } else 139 } else
134 ixgb_reset(adapter); 140 ixgb_reset(adapter);
135 141
@@ -177,6 +183,11 @@ ixgb_set_pauseparam(struct net_device *netdev,
177 if(netif_running(adapter->netdev)) { 183 if(netif_running(adapter->netdev)) {
178 ixgb_down(adapter, TRUE); 184 ixgb_down(adapter, TRUE);
179 ixgb_up(adapter); 185 ixgb_up(adapter);
186 /* be optimistic about our link, since we were up before */
187 adapter->link_speed = 10000;
188 adapter->link_duplex = FULL_DUPLEX;
189 netif_carrier_on(netdev);
190 netif_wake_queue(netdev);
180 } else 191 } else
181 ixgb_reset(adapter); 192 ixgb_reset(adapter);
182 193
@@ -199,6 +210,11 @@ ixgb_set_rx_csum(struct net_device *netdev, uint32_t data)
199 if(netif_running(netdev)) { 210 if(netif_running(netdev)) {
200 ixgb_down(adapter,TRUE); 211 ixgb_down(adapter,TRUE);
201 ixgb_up(adapter); 212 ixgb_up(adapter);
213 /* be optimistic about our link, since we were up before */
214 adapter->link_speed = 10000;
215 adapter->link_duplex = FULL_DUPLEX;
216 netif_carrier_on(netdev);
217 netif_wake_queue(netdev);
202 } else 218 } else
203 ixgb_reset(adapter); 219 ixgb_reset(adapter);
204 return 0; 220 return 0;
@@ -573,6 +589,11 @@ ixgb_set_ringparam(struct net_device *netdev,
573 adapter->tx_ring = tx_new; 589 adapter->tx_ring = tx_new;
574 if((err = ixgb_up(adapter))) 590 if((err = ixgb_up(adapter)))
575 return err; 591 return err;
592 /* be optimistic about our link, since we were up before */
593 adapter->link_speed = 10000;
594 adapter->link_duplex = FULL_DUPLEX;
595 netif_carrier_on(netdev);
596 netif_wake_queue(netdev);
576 } 597 }
577 598
578 return 0; 599 return 0;