diff options
author | Nikolay Aleksandrov <naleksan@redhat.com> | 2012-09-05 00:11:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-05 17:40:07 -0400 |
commit | c6c13965f4ffca6163af0c9419095aedc103648c (patch) | |
tree | 1c23b7c0dacd86dcde7835070504abb4f0e6caef /net/core/net-sysfs.c | |
parent | f6fe569fe056388166575af1cfaed0bcbc688305 (diff) |
net: add unknown state to sysfs NIC duplex export
Currently when the NIC duplex state is DUPLEX_UNKNOWN it is exported as
full through sysfs, this patch adds support for DUPLEX_UNKNOWN. It is
handled the same way as in ethtool.
Signed-off-by: Nikolay Aleksandrov <naleksan@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r-- | net/core/net-sysfs.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 72607174ea5a..bcf02f608cbf 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c | |||
@@ -166,9 +166,21 @@ static ssize_t show_duplex(struct device *dev, | |||
166 | 166 | ||
167 | if (netif_running(netdev)) { | 167 | if (netif_running(netdev)) { |
168 | struct ethtool_cmd cmd; | 168 | struct ethtool_cmd cmd; |
169 | if (!__ethtool_get_settings(netdev, &cmd)) | 169 | if (!__ethtool_get_settings(netdev, &cmd)) { |
170 | ret = sprintf(buf, "%s\n", | 170 | const char *duplex; |
171 | cmd.duplex ? "full" : "half"); | 171 | switch (cmd.duplex) { |
172 | case DUPLEX_HALF: | ||
173 | duplex = "half"; | ||
174 | break; | ||
175 | case DUPLEX_FULL: | ||
176 | duplex = "full"; | ||
177 | break; | ||
178 | default: | ||
179 | duplex = "unknown"; | ||
180 | break; | ||
181 | } | ||
182 | ret = sprintf(buf, "%s\n", duplex); | ||
183 | } | ||
172 | } | 184 | } |
173 | rtnl_unlock(); | 185 | rtnl_unlock(); |
174 | return ret; | 186 | return ret; |