From patchwork Sat Jun 1 10:37:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1108745 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qhNJiWJQ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 45GHp21Kk1z9sNf for ; Sat, 1 Jun 2019 20:37:46 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727158AbfFAKhp (ORCPT ); Sat, 1 Jun 2019 06:37:45 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:40601 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726130AbfFAKho (ORCPT ); Sat, 1 Jun 2019 06:37:44 -0400 Received: by mail-wr1-f65.google.com with SMTP id p11so3265655wre.7 for ; Sat, 01 Jun 2019 03:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cY/42OI+Ii/fXIKG3ZaWQxf1THJBYMkiloGgXUlIGeA=; b=qhNJiWJQop+Shlf3bU1TjveN4PNsBAtBbfrztDKGkpt1ic7ApgBFeGYxU95bS6PQdD SupPD3quh+pkdR92QNMPfRUtHIFeRmqTt4ZiD1Qr6PdF6/IDZvZM6wwHQ5tdZQKaFKX3 fEw0qZAjzFvOX8votkUcLdLGpa1u5cKtFB1AVackvBGPhlHu5s20n3rS2WTlcaYMd6hc WB6dhDDe6rN50Dfzn9FBJxHIFG7PQ4geu8cfcPglTegbaNAErlt/+Gfr8UA0YRqxsXb2 pXNhhQA8BmDi7rrZ3jA0yxazrC/TnvvNyzzgrsHPUDhDPY/YjSxkI9Tch2qTTaSmjWAz 7fmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cY/42OI+Ii/fXIKG3ZaWQxf1THJBYMkiloGgXUlIGeA=; b=VHu9I/q27xZhVxUt/bWWsyIxWecdSXTW4fGqrmMCOuzIhTaHxjqQtxCD00sVL7PBxI fn8vfEWIVJaqcsH1HtMvqftMR2nL7KcgMSj/01DrWdY8IQ+suCLp+sZn/Y4QMzt5cAaN xldGHIY33UxkhtasjM1ey7hSNOdvZxhFOg2Jt/Vawtu5yo8nQOqrQjZxF5KGhj5LtSSh MmoJqiG9WHFzgYOEwxTihDjQoXW9g7Kpt2lVs5A7zqhmp79nuckGLdGTejswhywQsJpG CnXZ9aNmwtUuaGT0qIW+7AsZbcnwTKaxu92H9X8KARa3PghJQbAdp4NOXBb85kFqPCaD +lCA== X-Gm-Message-State: APjAAAUlNI0uLJYS9ovl1f4Jw/QPGEsvcki10hHNOPfAY74lyiFB/Ia3 Btoke91Y3+cl3u2JKCG/tpg= X-Google-Smtp-Source: APXvYqyvysfwRlkX9dcrORDHmdIAKcpngdVI/q1GB2K0pe7S1rk5vOyDm+lhsLtTRyPCsaINe8Mx9g== X-Received: by 2002:adf:f00d:: with SMTP id j13mr9902741wro.178.1559385462483; Sat, 01 Jun 2019 03:37:42 -0700 (PDT) Received: from localhost.localdomain ([86.121.27.188]) by smtp.gmail.com with ESMTPSA id h90sm26273063wrh.15.2019.06.01.03.37.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Jun 2019 03:37:42 -0700 (PDT) From: Vladimir Oltean To: f.fainelli@gmail.com, vivien.didelot@gmail.com, andrew@lunn.ch, davem@davemloft.net Cc: netdev@vger.kernel.org, Vladimir Oltean Subject: [PATCH net 1/2] net: dsa: sja1105: Force a negative value for enum sja1105_speed_t Date: Sat, 1 Jun 2019 13:37:34 +0300 Message-Id: <20190601103735.27506-2-olteanv@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190601103735.27506-1-olteanv@gmail.com> References: <20190601103735.27506-1-olteanv@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The code in sja1105_adjust_port_config relies on the fact that an invalid link speed is detected by sja1105_get_speed_cfg and returned as -EINVAL. However storing this into an enum that only has positive members will cast it into an unsigned value, and it will miss the negative check. So make the -EINVAL value part of the enum, so that it is stored as a signed number and passes the negative check. Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch") Signed-off-by: Vladimir Oltean --- drivers/net/dsa/sja1105/sja1105.h | 1 + drivers/net/dsa/sja1105/sja1105_main.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/sja1105/sja1105.h b/drivers/net/dsa/sja1105/sja1105.h index 1e6d0f33a663..15df37ec63bf 100644 --- a/drivers/net/dsa/sja1105/sja1105.h +++ b/drivers/net/dsa/sja1105/sja1105.h @@ -160,6 +160,7 @@ typedef enum { SJA1105_SPEED_100MBPS = 2, SJA1105_SPEED_1000MBPS = 1, SJA1105_SPEED_AUTO = 0, + SJA1105_SPEED_INVALID = -EINVAL, } sja1105_speed_t; int sja1105pqrs_setup_rgmii_delay(const void *ctx, int port); diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c index b89d979ba213..12b1af52d84b 100644 --- a/drivers/net/dsa/sja1105/sja1105_main.c +++ b/drivers/net/dsa/sja1105/sja1105_main.c @@ -719,7 +719,7 @@ static sja1105_speed_t sja1105_get_speed_cfg(unsigned int speed_mbps) for (i = SJA1105_SPEED_AUTO; i <= SJA1105_SPEED_1000MBPS; i++) if (sja1105_speed[i] == speed_mbps) return i; - return -EINVAL; + return SJA1105_SPEED_INVALID; } /* Set link speed and enable/disable traffic I/O in the MAC configuration From patchwork Sat Jun 1 10:37:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1108746 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AOEnSqPo"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 45GHp325RWz9sNR for ; Sat, 1 Jun 2019 20:37:47 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727175AbfFAKhq (ORCPT ); Sat, 1 Jun 2019 06:37:46 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:39913 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726109AbfFAKhp (ORCPT ); Sat, 1 Jun 2019 06:37:45 -0400 Received: by mail-wr1-f65.google.com with SMTP id x4so8107673wrt.6 for ; Sat, 01 Jun 2019 03:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qC3cTC6iOsRLdr2pHn823m1pV0SUlxDOahYmCzMhqvA=; b=AOEnSqPo2I6hSQwt4xtvtrS/CQCvnZpJ1iMl+Vgyhprqt47s7fAfBsFYySyslm1UaZ nSHUOT7YeFwA+wWSxrIXPx+VTih1dQ44csSaU7SUhDcSOXsZKilnB3sKYEdUjF0RWenX 3lhPSvsFKTJobMWFGk83lndTR+M8Oz/h+B4QaEvuCosDEpfQ5w6b9F8PZETUytsaFBtd G/lOVrjb49OKPdXIZsUwZcBOD9HuFSQaXfJ8cKCjhvQkvdto/CsacWMV5WU4CmomMfbX 1nVUEAsjlPFX9IkaXgFn/9v2l+HIzTN9+mSV7UN8+t2nS0K27hk4dhFXyRb5X6FMpE62 zJ2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qC3cTC6iOsRLdr2pHn823m1pV0SUlxDOahYmCzMhqvA=; b=IFnQA0EIi22SSgRUXVomdOi3t+UzcA5l+wJU23HGa8LvfBSl8r2UizxGV0in1ZxYXA 0ZrgGeowl/wBQAEEk4/i+9S+jNX4X4IjPDhGeyltH2Yc02Xj+Vv/3wBWTHh+jkpTenZK MqJF4EAft1aLawfUKLpymafTd+ahuMJlZT7RnTwnAhDt2zX2HbXgwMBwMqqneEu7rbeO 0RNGQy4SgVP5SpXf/wgnMyMa/TkCQKs4ESAsOedLdoxPMtUzEVLqGlFNmHJDerCGuC3n eLlpS1WbkmOuC0kqIC4D+zpP6YhK0Fbo6vxxd6CeSa9pE/x2CzMCn5bwMzyFNn1tIoSg a89g== X-Gm-Message-State: APjAAAU74Zcm4zA9Zpa1qq2KGORCOT2vYR7SMnQndLZe1DCSjSJxs0e8 Mr+xbtpLrXBjgF7YnIv7OFA= X-Google-Smtp-Source: APXvYqw4b+OQTBBSxJb+8JDomo/JZzTBf3cBjcVjYVhjqk1ZctmikuMQ9Id/ojnEEnXyuABflm4DRw== X-Received: by 2002:a5d:4f0d:: with SMTP id c13mr10054106wru.117.1559385463380; Sat, 01 Jun 2019 03:37:43 -0700 (PDT) Received: from localhost.localdomain ([86.121.27.188]) by smtp.gmail.com with ESMTPSA id h90sm26273063wrh.15.2019.06.01.03.37.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Jun 2019 03:37:43 -0700 (PDT) From: Vladimir Oltean To: f.fainelli@gmail.com, vivien.didelot@gmail.com, andrew@lunn.ch, davem@davemloft.net Cc: netdev@vger.kernel.org, Vladimir Oltean Subject: [PATCH net 2/2] net: dsa: sja1105: Fix link speed not working at 100 Mbps and below Date: Sat, 1 Jun 2019 13:37:35 +0300 Message-Id: <20190601103735.27506-3-olteanv@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190601103735.27506-1-olteanv@gmail.com> References: <20190601103735.27506-1-olteanv@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The hardware values for link speed are held in the sja1105_speed_t enum. However they do not increase in the order that sja1105_get_speed_cfg was iterating over them (basically from SJA1105_SPEED_AUTO - 0 - to SJA1105_SPEED_1000MBPS - 1 - skipping the other two). Change the iteration from going through the enum values to going through the sja1105_speed array, which makes sure that all elements are visited regardless of underlying ordering. Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch") Signed-off-by: Vladimir Oltean --- drivers/net/dsa/sja1105/sja1105_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c index 12b1af52d84b..c3eab40b0500 100644 --- a/drivers/net/dsa/sja1105/sja1105_main.c +++ b/drivers/net/dsa/sja1105/sja1105_main.c @@ -716,7 +716,7 @@ static sja1105_speed_t sja1105_get_speed_cfg(unsigned int speed_mbps) { int i; - for (i = SJA1105_SPEED_AUTO; i <= SJA1105_SPEED_1000MBPS; i++) + for (i = 0; i < ARRAY_SIZE(sja1105_speed); i++) if (sja1105_speed[i] == speed_mbps) return i; return SJA1105_SPEED_INVALID;