Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp433013imu; Wed, 12 Dec 2018 20:45:59 -0800 (PST) X-Google-Smtp-Source: AFSGD/XEmtyHZUxCqsf/n1SxCqFI95+F6/i8RIFPAJFRb1Jg5ypi2yK/0//n+V5TY+UPA3479zml X-Received: by 2002:a17:902:a40f:: with SMTP id p15mr22901417plq.286.1544676358994; Wed, 12 Dec 2018 20:45:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544676358; cv=none; d=google.com; s=arc-20160816; b=PalpK3wmdShB3s27bUMCiuy7Cwm7J16eSMsVtbUj1AV4yMliNVuNzHEPNKPl3Gm3Q0 uknoJKxVzchVhc+IK1lGqoYZAFiD1BITBORCl6yw4zYNOEoUIpy787PGiG01G8U1ceyz YHhDRujBF2jm4D4nASLdfDDY4Ww6wV5e7JxkSB0WCcpzFG0Rm1afd2FIuK8xTq0Cdm3+ rXzpz4VRspTKV1N8kRI+EhKOMCm0i2aGv/sBIEg1x06tYVjG/wFy/LOncDtTddAQkr1H xc9ABqEFkBUzBTMjjyD8f1JgnxLcIY3iLp+4ZE6h8qsE2+dYzFAgMt0I5FjuChfpyFTp nnkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ep6Ja6ShZlbN5s19tT689k7+kSa/6G/RwWA5K7NJfaM=; b=Wp5eHfUlHqfAJg037+CBNmWYIUo4aqcBjWgxo91WCJp48uoGU/sno4aPj7573eRA1L fchKicUM3ueLMC3YdQTgfM4vE3xDygZMQM3tcxtAYVaGk50ErxKnKgQpju0P8u+9JQR+ xgTN98sqrBPMbJfzglKMZJzlkv+5u99BQw3oKS1OVxmUunG92BoIa/ZK5p0AMjmxuaAj EhVVTTQBqMpxwd+LkvaE7xThsJbV8nEfRkfipnC6KGSh2HWA2YYvkckG6AzVLT2ng8Sz 5CpqQOTC+Sl/ngelL8bAPqfHeKDKKKC2BKavVCyoAYgdhSYJLJc8nVfPaORhATpRiN0E JEJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=R8o4pwHd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s27si652120pgm.501.2018.12.12.20.45.44; Wed, 12 Dec 2018 20:45:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=R8o4pwHd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729010AbeLMEna (ORCPT + 99 others); Wed, 12 Dec 2018 23:43:30 -0500 Received: from mail.kernel.org ([198.145.29.99]:44446 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728780AbeLMEbc (ORCPT ); Wed, 12 Dec 2018 23:31:32 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7735C20882; Thu, 13 Dec 2018 04:31:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544675492; bh=Lf+bRT+aV6qgnubGC6FFU6PdHEQY2fuPcUsIEAKlbxQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R8o4pwHdFyKsH7uGy9gT3AtsO/0sETiHzY+pbhJnL5o8vSCRo8Ypv9GUNyewAMxYw 84wEnqSqwqaLxWcEP28yd8t3U1qlACuL7weWsIvzD0EO87QybVKepzHHmQ7z6zHSUk IiiN6OOxBo/dH3tBTYTOWeEPgnDGEE1fPxOLVlVs= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Heiner Kallweit , "David S . Miller" , Sasha Levin , netdev@vger.kernel.org Subject: [PATCH AUTOSEL 4.14 23/41] net: phy: don't allow __set_phy_supported to add unsupported modes Date: Wed, 12 Dec 2018 23:30:36 -0500 Message-Id: <20181213043054.75891-23-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181213043054.75891-1-sashal@kernel.org> References: <20181213043054.75891-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heiner Kallweit [ Upstream commit d2a36971ef595069b7a600d1144c2e0881a930a1 ] Currently __set_phy_supported allows to add modes w/o checking whether the PHY supports them. This is wrong, it should never add modes but only remove modes we don't want to support. The commit marked as fixed didn't do anything wrong, it just copied existing functionality to the helper which is being fixed now. Fixes: f3a6bd393c2c ("phylib: Add phy_set_max_speed helper") Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/phy/phy_device.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index fe76e2c4022a..5b56a86e88ff 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1703,20 +1703,17 @@ EXPORT_SYMBOL(genphy_loopback); static int __set_phy_supported(struct phy_device *phydev, u32 max_speed) { - phydev->supported &= ~(PHY_1000BT_FEATURES | PHY_100BT_FEATURES | - PHY_10BT_FEATURES); - switch (max_speed) { - default: - return -ENOTSUPP; - case SPEED_1000: - phydev->supported |= PHY_1000BT_FEATURES; + case SPEED_10: + phydev->supported &= ~PHY_100BT_FEATURES; /* fall through */ case SPEED_100: - phydev->supported |= PHY_100BT_FEATURES; - /* fall through */ - case SPEED_10: - phydev->supported |= PHY_10BT_FEATURES; + phydev->supported &= ~PHY_1000BT_FEATURES; + break; + case SPEED_1000: + break; + default: + return -ENOTSUPP; } return 0; -- 2.19.1