Skip to content

Commit 0cf3ace

Browse files
Nikolay Aleksandrovdavem330
authored andcommitted
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>
1 parent e02564e commit 0cf3ace

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/net/virtio_net.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,11 +1386,13 @@ static bool virtnet_validate_ethtool_cmd(const struct ethtool_cmd *cmd)
13861386
struct ethtool_cmd diff1 = *cmd;
13871387
struct ethtool_cmd diff2 = {};
13881388

1389-
/* advertising and cmd are usually set, ignore port because we set it */
1389+
/* cmd is always set so we need to clear it, validate the port type
1390+
* and also without autonegotiation we can ignore advertising
1391+
*/
13901392
ethtool_cmd_speed_set(&diff1, 0);
1393+
diff2.port = PORT_OTHER;
13911394
diff1.advertising = 0;
13921395
diff1.duplex = 0;
1393-
diff1.port = 0;
13941396
diff1.cmd = 0;
13951397

13961398
return !memcmp(&diff1, &diff2, sizeof(diff1));

0 commit comments

Comments
 (0)