mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
virtio_net: validate ethtool port setting and explain the user validation
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>
This commit is contained in:
parent
e02564ee33
commit
0cf3ace9e7
1 changed files with 4 additions and 2 deletions
|
@ -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));
|
||||
|
|
Loading…
Reference in a new issue