Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp435787imu; Wed, 12 Dec 2018 20:51:01 -0800 (PST) X-Google-Smtp-Source: AFSGD/UhNv+NRGz/HoSEBpTwSEWEC3qDCkAAC3Yih/wmIv0DR5g7wgJWhivr+R7kQz83+pRz428G X-Received: by 2002:a17:902:5066:: with SMTP id f35mr22458885plh.78.1544676661849; Wed, 12 Dec 2018 20:51:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544676661; cv=none; d=google.com; s=arc-20160816; b=zVH05UYBk1FQdrLiv3v3kL8GU1JXfl0bK6u4W2XfdOONcfA8Ds3hCNDrK8fhjZmYJS Obvwcq7nC2UQU8qjgoS8Egd/qYzlGFnuvtSqoWSUPMcRAmaOEFnMwdI5Be/+fYLbtnRX eS1E9Z/AavYZ4B8Ccy1+j2gsJF3fm2ww4bJKKNUmNRrPf3s8KvQ2jVEAzhTW+LcScfcF 9qC5QZxo90kTT6jClWMyW2X6u3y3NlbwLuMiBFRwGfQxQ/DRL1PEvv9aNfY0ArkOsllv BLNV70F7xpD5SvLa0uk5MxX5QqwikFXYqSGvGm9HZu4OfC/1bn8x2iUv6idplv2So/5N oF4g== 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=/AS4e8MMHpWj8rHK9G4qoifJRvZVHCVhZ5/iit7cxU4=; b=ZuVWpFHY82ZEzUOGhagz5RU2hWoBVxN8oBbE1iYVcycGKw8fKIgUh7Yp88Mm3rO1P0 Jffv3702/Nk0K4rg2TiothsfRPSxbelkuHvZ4j1xy6rS34Rez3dX0HhPGMTuos4Wp4YZ C9cxiZShwkK15OqZauiC0HmPkoZUtBPrwzP3wVy0H2JZQveXLNZKLfIZD7WWPmULOJ4s Tyj8+hKt/raCQZv8dif52yYsbehlfxDtsbfGi0TgpFVunIC7Up8LBN447ZxX0ToTkT4R JwkCb/tAsCjJRTheQRRnzryMs/sbbMOOd3s8wui7AgZ2m8XSAKIubCwjttB4/NdCyYnU hoGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=w25mVZdg; 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 z5si712380pgj.177.2018.12.12.20.50.47; Wed, 12 Dec 2018 20:51:01 -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=w25mVZdg; 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 S1728701AbeLMEtO (ORCPT + 99 others); Wed, 12 Dec 2018 23:49:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:42942 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727901AbeLMEaB (ORCPT ); Wed, 12 Dec 2018 23:30:01 -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 C697A20879; Thu, 13 Dec 2018 04:29:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544675400; bh=n6HhcqaFl9aGw8SajgMuXO42PlMmzPSsGMneHHCn/h0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=w25mVZdgcnUa6ZZNiKi8dnRnSAZnb+B00w5O9/SJtMipzvOoUxu1t2ciOrowDDdf5 k3LZ0EwiGhoJevvjlKes1cdFAP46T3/eAcSMLS0hHpvx4sG/Y4fjkgWf75hv4ahoBR F7YCqTug2aFPxVkyalZJrNvioYbuADN3YjvASytI= 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.19 42/73] net: phy: don't allow __set_phy_supported to add unsupported modes Date: Wed, 12 Dec 2018 23:28:07 -0500 Message-Id: <20181213042838.75160-42-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181213042838.75160-1-sashal@kernel.org> References: <20181213042838.75160-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 733e35b7c4bb..20d1be2b070b 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1738,20 +1738,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