1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-05 21:57:27 +03:00

Merge pull request #6197 from ssahani/ethtool-port

ethtool: Fix speed in 593022fa377d40d9a645919759b04c53cf4eace8
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2017-06-26 20:19:53 -04:00 committed by GitHub
commit 3cdd4e487e
2 changed files with 7 additions and 6 deletions

View File

@ -527,7 +527,7 @@ int ethtool_set_glinksettings(int *fd, const char *ifname, struct link_config *l
}
if (link->speed)
u->base.speed = link->speed;
u->base.speed = DIV_ROUND_UP(link->speed, 1000000);
if (link->duplex != _DUP_INVALID)
u->base.duplex = link->duplex;

View File

@ -378,18 +378,19 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
if (!old_name)
return -EINVAL;
speed = DIV_ROUND_UP(config->speed, 1000000);
r = ethtool_set_glinksettings(&ctx->ethtool_fd, old_name, config);
if (r < 0) {
if (config->port != _NET_DEV_PORT_INVALID)
log_warning_errno(r, "Could not set port (%s) of %s: %m", port_to_string(config->port), old_name);
speed = DIV_ROUND_UP(config->speed, 1000000);
if (r == -EOPNOTSUPP)
r = ethtool_set_speed(&ctx->ethtool_fd, old_name, speed, config->duplex);
if (r < 0)
log_warning_errno(r, "Could not set speed, duplex or port (%s) of %s to %u Mbps (%s): %m",
port_to_string(config->port), old_name, speed, duplex_to_string(config->duplex));
log_warning_errno(r, "Could not set speed or duplex of %s to %u Mbps (%s): %m",
old_name, speed, duplex_to_string(config->duplex));
}
r = ethtool_set_wol(&ctx->ethtool_fd, old_name, config->wol);