ethtool: Use full 32 bit speed range in ethtool's set_settings
[deliverable/linux.git] / drivers / net / bnx2.c
index bf729ee6acbdc7fc227668eaba2af71214e091c0..e43efd86425b3b2e48628855e8e1e2bce543ed1c 100644 (file)
@@ -6758,21 +6758,21 @@ bnx2_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
                advertising |= ADVERTISED_Autoneg;
        }
        else {
+               u32 speed = ethtool_cmd_speed(cmd);
                if (cmd->port == PORT_FIBRE) {
-                       if ((cmd->speed != SPEED_1000 &&
-                            cmd->speed != SPEED_2500) ||
+                       if ((speed != SPEED_1000 &&
+                            speed != SPEED_2500) ||
                            (cmd->duplex != DUPLEX_FULL))
                                goto err_out_unlock;
 
-                       if (cmd->speed == SPEED_2500 &&
+                       if (speed == SPEED_2500 &&
                            !(bp->phy_flags & BNX2_PHY_FLAG_2_5G_CAPABLE))
                                goto err_out_unlock;
-               }
-               else if (cmd->speed == SPEED_1000 || cmd->speed == SPEED_2500)
+               } else if (speed == SPEED_1000 || speed == SPEED_2500)
                        goto err_out_unlock;
 
                autoneg &= ~AUTONEG_SPEED;
-               req_line_speed = cmd->speed;
+               req_line_speed = speed;
                req_duplex = cmd->duplex;
                advertising = 0;
        }
This page took 0.025084 seconds and 5 git commands to generate.