From: Walter Harms <wharms@bfs.de>
To: Colin King <colin.king@canonical.com>,
Vladimir Oltean <olteanv@gmail.com>, Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Russell King <rmk+kernel@armlinux.org.uk>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "kernel-janitors@vger.kernel.org"
<kernel-janitors@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: AW: [PATCH] net: dsa: sja1105: fix speed setting for 10 MBPS
Date: Fri, 01 May 2020 18:00:52 +0000 [thread overview]
Message-ID: <9018be0b7dc441cd8aad625c6cc44e1c@bfs.de> (raw)
In-Reply-To: <20200501134310.289561-1-colin.king@canonical.com>
IMHO it would be better to use switch case here to improve readability.
switch (bmcr & mask) {
case BMCR_SPEED1000:
speed = SPEED_1000;
break;
case BMCR_SPEED100:
speed = SPEED_100;
break;
case BMCR_SPEED10:
speed = SPEED_10;
break;
default:
speed = SPEED_UNKNOWN
}
jm2c,
wh
btw: an_enabled ? why not !enabled, mich more easy to read
________________________________________
Von: kernel-janitors-owner@vger.kernel.org <kernel-janitors-owner@vger.kernel.org> im Auftrag von Colin King <colin.king@canonical.com>
Gesendet: Freitag, 1. Mai 2020 15:43:10
An: Vladimir Oltean; Andrew Lunn; Vivien Didelot; Florian Fainelli; David S . Miller; Russell King; linux-kernel@vger.kernel.org
Cc: kernel-janitors@vger.kernel.org; netdev@vger.kernel.org
Betreff: [PATCH] net: dsa: sja1105: fix speed setting for 10 MBPS
From: Colin Ian King <colin.king@canonical.com>
The current logic for speed checking will never set the speed to 10 MBPS
because bmcr & BMCR_SPEED10 is always 0 since BMCR_SPEED10 is 0. Also
the erroneous setting where BMCR_SPEED1000 and BMCR_SPEED100 are both
set causes the speed to be 1000 MBS. Fix this by masking bps and checking
for just the expected settings of BMCR_SPEED1000, BMCR_SPEED100 and
BMCR_SPEED10 and defaulting to the unknown speed otherwise.
Addresses-Coverity: ("Logically dead code")
Fixes: ffe10e679cec ("net: dsa: sja1105: Add support for the SGMII port")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/net/dsa/sja1105/sja1105_main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
index 472f4eb20c49..59a9038cdc4e 100644
--- a/drivers/net/dsa/sja1105/sja1105_main.c
+++ b/drivers/net/dsa/sja1105/sja1105_main.c
@@ -1600,6 +1600,7 @@ static const char * const sja1105_reset_reasons[] = {
int sja1105_static_config_reload(struct sja1105_private *priv,
enum sja1105_reset_reason reason)
{
+ const int mask = (BMCR_SPEED1000 | BMCR_SPEED100 | BMCR_SPEED10);
struct ptp_system_timestamp ptp_sts_before;
struct ptp_system_timestamp ptp_sts_after;
struct sja1105_mac_config_entry *mac;
@@ -1684,14 +1685,16 @@ int sja1105_static_config_reload(struct sja1105_private *priv,
sja1105_sgmii_pcs_config(priv, an_enabled, false);
if (!an_enabled) {
- int speed = SPEED_UNKNOWN;
+ int speed;
- if (bmcr & BMCR_SPEED1000)
+ if ((bmcr & mask) == BMCR_SPEED1000)
speed = SPEED_1000;
- else if (bmcr & BMCR_SPEED100)
+ else if ((bmcr & mask) == BMCR_SPEED100)
speed = SPEED_100;
- else if (bmcr & BMCR_SPEED10)
+ else if ((bmcr & mask) == BMCR_SPEED10)
speed = SPEED_10;
+ else
+ speed = SPEED_UNKNOWN;
sja1105_sgmii_pcs_force_speed(priv, speed);
}
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Walter Harms <wharms@bfs.de>
To: Colin King <colin.king@canonical.com>,
Vladimir Oltean <olteanv@gmail.com>, Andrew Lunn <andrew@lunn.ch>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S . Miller" <davem@davemloft.net>,
Russell King <rmk+kernel@armlinux.org.uk>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "kernel-janitors@vger.kernel.org"
<kernel-janitors@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: AW: [PATCH] net: dsa: sja1105: fix speed setting for 10 MBPS
Date: Fri, 1 May 2020 18:00:52 +0000 [thread overview]
Message-ID: <9018be0b7dc441cd8aad625c6cc44e1c@bfs.de> (raw)
In-Reply-To: <20200501134310.289561-1-colin.king@canonical.com>
IMHO it would be better to use switch case here to improve readability.
switch (bmcr & mask) {
case BMCR_SPEED1000:
speed = SPEED_1000;
break;
case BMCR_SPEED100:
speed = SPEED_100;
break;
case BMCR_SPEED10:
speed = SPEED_10;
break;
default:
speed = SPEED_UNKNOWN
}
jm2c,
wh
btw: an_enabled ? why not !enabled, mich more easy to read
________________________________________
Von: kernel-janitors-owner@vger.kernel.org <kernel-janitors-owner@vger.kernel.org> im Auftrag von Colin King <colin.king@canonical.com>
Gesendet: Freitag, 1. Mai 2020 15:43:10
An: Vladimir Oltean; Andrew Lunn; Vivien Didelot; Florian Fainelli; David S . Miller; Russell King; linux-kernel@vger.kernel.org
Cc: kernel-janitors@vger.kernel.org; netdev@vger.kernel.org
Betreff: [PATCH] net: dsa: sja1105: fix speed setting for 10 MBPS
From: Colin Ian King <colin.king@canonical.com>
The current logic for speed checking will never set the speed to 10 MBPS
because bmcr & BMCR_SPEED10 is always 0 since BMCR_SPEED10 is 0. Also
the erroneous setting where BMCR_SPEED1000 and BMCR_SPEED100 are both
set causes the speed to be 1000 MBS. Fix this by masking bps and checking
for just the expected settings of BMCR_SPEED1000, BMCR_SPEED100 and
BMCR_SPEED10 and defaulting to the unknown speed otherwise.
Addresses-Coverity: ("Logically dead code")
Fixes: ffe10e679cec ("net: dsa: sja1105: Add support for the SGMII port")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/net/dsa/sja1105/sja1105_main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
index 472f4eb20c49..59a9038cdc4e 100644
--- a/drivers/net/dsa/sja1105/sja1105_main.c
+++ b/drivers/net/dsa/sja1105/sja1105_main.c
@@ -1600,6 +1600,7 @@ static const char * const sja1105_reset_reasons[] = {
int sja1105_static_config_reload(struct sja1105_private *priv,
enum sja1105_reset_reason reason)
{
+ const int mask = (BMCR_SPEED1000 | BMCR_SPEED100 | BMCR_SPEED10);
struct ptp_system_timestamp ptp_sts_before;
struct ptp_system_timestamp ptp_sts_after;
struct sja1105_mac_config_entry *mac;
@@ -1684,14 +1685,16 @@ int sja1105_static_config_reload(struct sja1105_private *priv,
sja1105_sgmii_pcs_config(priv, an_enabled, false);
if (!an_enabled) {
- int speed = SPEED_UNKNOWN;
+ int speed;
- if (bmcr & BMCR_SPEED1000)
+ if ((bmcr & mask) == BMCR_SPEED1000)
speed = SPEED_1000;
- else if (bmcr & BMCR_SPEED100)
+ else if ((bmcr & mask) == BMCR_SPEED100)
speed = SPEED_100;
- else if (bmcr & BMCR_SPEED10)
+ else if ((bmcr & mask) == BMCR_SPEED10)
speed = SPEED_10;
+ else
+ speed = SPEED_UNKNOWN;
sja1105_sgmii_pcs_force_speed(priv, speed);
}
--
2.25.1
next prev parent reply other threads:[~2020-05-01 18:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-01 13:43 [PATCH] net: dsa: sja1105: fix speed setting for 10 MBPS Colin King
2020-05-01 13:43 ` Colin King
2020-05-01 18:00 ` Walter Harms [this message]
2020-05-01 18:00 ` AW: " Walter Harms
2020-05-01 18:37 ` Russell King - ARM Linux admin
2020-05-01 18:37 ` Russell King - ARM Linux admin
2020-05-02 12:21 ` Sergei Shtylyov
2020-05-02 12:21 ` Sergei Shtylyov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9018be0b7dc441cd8aad625c6cc44e1c@bfs.de \
--to=wharms@bfs.de \
--cc=andrew@lunn.ch \
--cc=colin.king@canonical.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=vivien.didelot@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.