diff options
Diffstat (limited to 'drivers/net/cxgb4')
-rw-r--r-- | drivers/net/cxgb4/cxgb4_main.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/cxgb4/cxgb4_main.c b/drivers/net/cxgb4/cxgb4_main.c index bdc868ca47ec..c02b4d3b73fc 100644 --- a/drivers/net/cxgb4/cxgb4_main.c +++ b/drivers/net/cxgb4/cxgb4_main.c | |||
@@ -1460,6 +1460,7 @@ static int set_settings(struct net_device *dev, struct ethtool_cmd *cmd) | |||
1460 | unsigned int cap; | 1460 | unsigned int cap; |
1461 | struct port_info *p = netdev_priv(dev); | 1461 | struct port_info *p = netdev_priv(dev); |
1462 | struct link_config *lc = &p->link_cfg; | 1462 | struct link_config *lc = &p->link_cfg; |
1463 | u32 speed = ethtool_cmd_speed(cmd); | ||
1463 | 1464 | ||
1464 | if (cmd->duplex != DUPLEX_FULL) /* only full-duplex supported */ | 1465 | if (cmd->duplex != DUPLEX_FULL) /* only full-duplex supported */ |
1465 | return -EINVAL; | 1466 | return -EINVAL; |
@@ -1470,16 +1471,16 @@ static int set_settings(struct net_device *dev, struct ethtool_cmd *cmd) | |||
1470 | * being requested. | 1471 | * being requested. |
1471 | */ | 1472 | */ |
1472 | if (cmd->autoneg == AUTONEG_DISABLE && | 1473 | if (cmd->autoneg == AUTONEG_DISABLE && |
1473 | (lc->supported & speed_to_caps(cmd->speed))) | 1474 | (lc->supported & speed_to_caps(speed))) |
1474 | return 0; | 1475 | return 0; |
1475 | return -EINVAL; | 1476 | return -EINVAL; |
1476 | } | 1477 | } |
1477 | 1478 | ||
1478 | if (cmd->autoneg == AUTONEG_DISABLE) { | 1479 | if (cmd->autoneg == AUTONEG_DISABLE) { |
1479 | cap = speed_to_caps(cmd->speed); | 1480 | cap = speed_to_caps(speed); |
1480 | 1481 | ||
1481 | if (!(lc->supported & cap) || cmd->speed == SPEED_1000 || | 1482 | if (!(lc->supported & cap) || (speed == SPEED_1000) || |
1482 | cmd->speed == SPEED_10000) | 1483 | (speed == SPEED_10000)) |
1483 | return -EINVAL; | 1484 | return -EINVAL; |
1484 | lc->requested_speed = cap; | 1485 | lc->requested_speed = cap; |
1485 | lc->advertising = 0; | 1486 | lc->advertising = 0; |