Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp425962imu; Wed, 12 Dec 2018 20:34:19 -0800 (PST) X-Google-Smtp-Source: AFSGD/WQLWZy6rgfFwAgwtvS+oIuTDqd+PVv8afoB+NsUFKPxFfLOGovJU1lVLasREdJs3X0C6fx X-Received: by 2002:a65:4683:: with SMTP id h3mr19738857pgr.225.1544675659387; Wed, 12 Dec 2018 20:34:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544675659; cv=none; d=google.com; s=arc-20160816; b=bx915pMdN/mL4KOzgHRSjP3zElnj3Eyd8/PLNSJdmxkvihQpwYHDdIyUkmfzp8yKa1 VStZ4sWTalrayaUgtXlBGWQ0T6yzHXOAHLysYsFvhVIOVrhp7o4dI5PN4XMUvkGWbs8V +iUAENiQCyAjrt9TfN79lI7EHqf+BrTpeqSYChKagThm9vGA3Pxf2rC71e3KRNdOpz1j Xy9ji3ExhaoDIaf0aQnbTHDpWKw1eTMw3hLFW5mwhIG8fPcWE+RHzlpxxnbP8+XBZf2K PwWr0n3m5EcZy45yInyu8Qj+1yEJrprA7nyO9oH0If07WASnAhCr7rBX8nLZr7Ziy5p4 GLcg== 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=+VyG+rlpIyd/zILKeL68eH1Zra0Af/OfOc8t6lYsOm8=; b=A279QucxlWWT9GpLEWN+eAJ4+ROxPtHgCtNuKYyGMTD5SD9jNORsLoXv0fPOeBBv2G NcA1M6bptfB5vhg1H4CVAaCrBPPYx5xU2cyTAWDnL2s8PP7LrbkQQYeRo8E+WYntOblk uwJNP141XpTkfQL++nvhgcEg4jmTg+12NXNT8ltkw+kAmrzV3f9YqQ64rm8fpmmHTfQr yvxXt/k5tp4VmlWWlhsNnNE8AE8cL0KRQZxcp7iHiFYEiopTHdaHAMwosJxegzQubkx5 QAEXzTzYBByRweCyPculdpfX5F2AVOq0P+Uxk5CYjvYxSAegOm9iVY/bN3xtOkqX2f8J eDhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=j5hgVWtl; 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 b61si728753plb.70.2018.12.12.20.34.04; Wed, 12 Dec 2018 20:34:19 -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=j5hgVWtl; 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 S1729119AbeLMEcg (ORCPT + 99 others); Wed, 12 Dec 2018 23:32:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:45468 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727758AbeLMEce (ORCPT ); Wed, 12 Dec 2018 23:32:34 -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 453AD20672; Thu, 13 Dec 2018 04:32:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1544675553; bh=obCAhtDZPNOAQLzCuHx1YxeLKtW4GZW0eSf2JlEqtU4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j5hgVWtlb4jMnzQ/8I1CGtPJNNiscbmBa5xPJDNe/keYUG7xMo4A9TrK/boDCLQf0 /QPHDvvcJsTRPXe72LW/W1yKFXnWHNbyhMl0co4c82t62mT22V8UtmqqLFkyFXnKwi 3pbI9MTJLAstUq3tJSA/HWZDQMxRfNmxEvCOD5Xg= 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.9 19/34] net: phy: don't allow __set_phy_supported to add unsupported modes Date: Wed, 12 Dec 2018 23:31:45 -0500 Message-Id: <20181213043200.76295-19-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181213043200.76295-1-sashal@kernel.org> References: <20181213043200.76295-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 b131e555d3c2..f04be9e8980f 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -1579,20 +1579,17 @@ static int gen10g_resume(struct phy_device *phydev) 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