Skip to content

Commit

Permalink
virtio_net: validate ethtool port setting and explain the user valida…
Browse files Browse the repository at this point in the history
…tion

We should validate the port setting that we got from the user and check
if it's what we've set it to (PORT_OTHER), also add explanation that
ignoring advertising is good as long as we don't have autonegotiation.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Nikolay Aleksandrov authored and David S. Miller committed Feb 11, 2016
1 parent e02564e commit 0cf3ace
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/net/virtio_net.c
Original file line number Diff line number Diff line change
Expand Up @@ -1386,11 +1386,13 @@ static bool virtnet_validate_ethtool_cmd(const struct ethtool_cmd *cmd)
struct ethtool_cmd diff1 = *cmd;
struct ethtool_cmd diff2 = {};

/* advertising and cmd are usually set, ignore port because we set it */
/* cmd is always set so we need to clear it, validate the port type
* and also without autonegotiation we can ignore advertising
*/
ethtool_cmd_speed_set(&diff1, 0);
diff2.port = PORT_OTHER;
diff1.advertising = 0;
diff1.duplex = 0;
diff1.port = 0;
diff1.cmd = 0;

return !memcmp(&diff1, &diff2, sizeof(diff1));
Expand Down

0 comments on commit 0cf3ace

Please sign in to comment.