mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-28 13:40:02 -04:00
cxgb4: do not return DUPLEX_UNKNOWN when link is down
We were returning DUPLEX_UNKNOWN in get_link_ksettings() when the link was down. Unfortunately, this causes a problem when "ethtool -s autoneg on" is issued for a link which is down because the ethtool code first reads the settings and then reapplies them with only the changes provided on the command line. Which results in us diving into set_link_ksettings() with DUPLEX_UNKNOWN which is not DUPLEX_FULL, so set_link_ksettings() throws an -EINVAL error. do not return DUPLEX_UNKNOWN to fix the issue. Signed-off-by: Casey Leedom <leedom@chelsio.com> Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
d9f37d01e2
commit
bc1b50309c
@@ -628,13 +628,10 @@ static int get_link_ksettings(struct net_device *dev,
|
||||
fw_caps_to_lmm(pi->port_type, pi->link_cfg.lpacaps,
|
||||
link_ksettings->link_modes.lp_advertising);
|
||||
|
||||
if (netif_carrier_ok(dev)) {
|
||||
base->speed = pi->link_cfg.speed;
|
||||
base->duplex = DUPLEX_FULL;
|
||||
} else {
|
||||
base->speed = SPEED_UNKNOWN;
|
||||
base->duplex = DUPLEX_UNKNOWN;
|
||||
}
|
||||
base->speed = (netif_carrier_ok(dev)
|
||||
? pi->link_cfg.speed
|
||||
: SPEED_UNKNOWN);
|
||||
base->duplex = DUPLEX_FULL;
|
||||
|
||||
if (pi->link_cfg.fc & PAUSE_RX) {
|
||||
if (pi->link_cfg.fc & PAUSE_TX) {
|
||||
|
||||
Reference in New Issue
Block a user