Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 757e6aa3 authored by Lendacky, Thomas's avatar Lendacky, Thomas Committed by David S. Miller
Browse files

amd-xgbe: Verify forced speed matches the active speedset



When using ethtool to set the speed for the device, verify that the
specified speed is valid within the active speedset.

Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 79349422
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
 *
 * License 1: GPLv2
 *
 * Copyright (c) 2014 Advanced Micro Devices, Inc.
 * Copyright (c) 2014-2016 Advanced Micro Devices, Inc.
 *
 * This file is free software; you may copy, redistribute and/or modify
 * it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@
 *
 * License 2: Modified BSD
 *
 * Copyright (c) 2014 Advanced Micro Devices, Inc.
 * Copyright (c) 2014-2016 Advanced Micro Devices, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -318,8 +318,20 @@ static int xgbe_set_settings(struct net_device *netdev,
	if (cmd->autoneg == AUTONEG_DISABLE) {
		switch (speed) {
		case SPEED_10000:
			break;
		case SPEED_2500:
			if (pdata->speed_set != XGBE_SPEEDSET_2500_10000) {
				netdev_err(netdev, "unsupported speed %u\n",
					   speed);
				return -EINVAL;
			}
			break;
		case SPEED_1000:
			if (pdata->speed_set != XGBE_SPEEDSET_1000_10000) {
				netdev_err(netdev, "unsupported speed %u\n",
					   speed);
				return -EINVAL;
			}
			break;
		default:
			netdev_err(netdev, "unsupported speed %u\n", speed);