* [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup
@ 2019-08-12 9:39 Ioana Ciornei
2019-08-12 9:39 ` [PATCH 01/10] staging: fsl-dpaa2/ethsw: remove IGMP default address Ioana Ciornei
` (9 more replies)
0 siblings, 10 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
This patch set addresses some of the feedback received on the dpaa2-ethsw
driver: https://lore.kernel.org/patchwork/patch/1113335/.
There are no functional changes but rather just code cleanup.
Ioana Ciornei (10):
staging: fsl-dpaa2/ethsw: remove IGMP default address
staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open
staging: fsl-dpaa2/ethsw: add line terminator to all formats
staging: fsl-dpaa2/ethsw: remove debug message
staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding
state
staging: fsl-dpaa2/ethsw: remove unnecessary memset
staging: fsl-dpaa2/ethsw: remove redundant VLAN check
staging: fsl-dpaa2/ethsw: reword error message
staging: fsl-dpaa2/ethsw: register_netdev only when ready
staging: fsl-dpaa2/ethsw: do not force user to bring interface down
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 44 +++++-----
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 110 ++++++------------------
2 files changed, 50 insertions(+), 104 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 01/10] staging: fsl-dpaa2/ethsw: remove IGMP default address
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 02/10] staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open Ioana Ciornei
` (8 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
Do not add an IGMP multicast address by default since we do not support
Rx/Tx ar the moment.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index aac98ece2335..8032314d5cae 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -1506,7 +1506,6 @@ static int ethsw_init(struct fsl_mc_device *sw_dev)
static int ethsw_port_init(struct ethsw_port_priv *port_priv, u16 port)
{
- const char def_mcast[ETH_ALEN] = {0x01, 0x00, 0x5e, 0x00, 0x00, 0x01};
struct net_device *netdev = port_priv->netdev;
struct ethsw_core *ethsw = port_priv->ethsw_data;
struct dpsw_vlan_if_cfg vcfg;
@@ -1532,12 +1531,10 @@ static int ethsw_port_init(struct ethsw_port_priv *port_priv, u16 port)
err = dpsw_vlan_remove_if(ethsw->mc_io, 0, ethsw->dpsw_handle,
DEFAULT_VLAN_ID, &vcfg);
- if (err) {
+ if (err)
netdev_err(netdev, "dpsw_vlan_remove_if err %d\n", err);
- return err;
- }
- return ethsw_port_fdb_add_mc(port_priv, def_mcast);
+ return err;
}
static void ethsw_unregister_notifier(struct device *dev)
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 02/10] staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
2019-08-12 9:39 ` [PATCH 01/10] staging: fsl-dpaa2/ethsw: remove IGMP default address Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats Ioana Ciornei
` (7 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
At probe time, only the DPSW object should be enabled without the
associated ports, which will get enabled on dev_open. Remove the
ethsw_open() and ethsw_stop() functions and replace them only with
dpsw_enable()/_disable().
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 59 ++++-----------------------------
1 file changed, 6 insertions(+), 53 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 8032314d5cae..302842c3bdfe 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -1363,48 +1363,6 @@ static int ethsw_register_notifier(struct device *dev)
return err;
}
-static int ethsw_open(struct ethsw_core *ethsw)
-{
- struct ethsw_port_priv *port_priv = NULL;
- int i, err;
-
- err = dpsw_enable(ethsw->mc_io, 0, ethsw->dpsw_handle);
- if (err) {
- dev_err(ethsw->dev, "dpsw_enable err %d\n", err);
- return err;
- }
-
- for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
- port_priv = ethsw->ports[i];
- err = dev_open(port_priv->netdev, NULL);
- if (err) {
- netdev_err(port_priv->netdev, "dev_open err %d\n", err);
- return err;
- }
- }
-
- return 0;
-}
-
-static int ethsw_stop(struct ethsw_core *ethsw)
-{
- struct ethsw_port_priv *port_priv = NULL;
- int i, err;
-
- for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
- port_priv = ethsw->ports[i];
- dev_close(port_priv->netdev);
- }
-
- err = dpsw_disable(ethsw->mc_io, 0, ethsw->dpsw_handle);
- if (err) {
- dev_err(ethsw->dev, "dpsw_disable err %d\n", err);
- return err;
- }
-
- return 0;
-}
-
static int ethsw_init(struct fsl_mc_device *sw_dev)
{
struct device *dev = &sw_dev->dev;
@@ -1586,9 +1544,7 @@ static int ethsw_remove(struct fsl_mc_device *sw_dev)
destroy_workqueue(ethsw_owq);
- rtnl_lock();
- ethsw_stop(ethsw);
- rtnl_unlock();
+ dpsw_disable(ethsw->mc_io, 0, ethsw->dpsw_handle);
for (i = 0; i < ethsw->sw_attr.num_ifs; i++) {
port_priv = ethsw->ports[i];
@@ -1708,12 +1664,11 @@ static int ethsw_probe(struct fsl_mc_device *sw_dev)
goto err_free_ports;
}
- /* Switch starts up enabled */
- rtnl_lock();
- err = ethsw_open(ethsw);
- rtnl_unlock();
- if (err)
+ err = dpsw_enable(ethsw->mc_io, 0, ethsw->dpsw_handle);
+ if (err) {
+ dev_err(ethsw->dev, "dpsw_enable err %d\n", err);
goto err_free_ports;
+ }
/* Setup IRQs */
err = ethsw_setup_irqs(sw_dev);
@@ -1724,9 +1679,7 @@ static int ethsw_probe(struct fsl_mc_device *sw_dev)
return 0;
err_stop:
- rtnl_lock();
- ethsw_stop(ethsw);
- rtnl_unlock();
+ dpsw_disable(ethsw->mc_io, 0, ethsw->dpsw_handle);
err_free_ports:
/* Cleanup registered ports only */
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
2019-08-12 9:39 ` [PATCH 01/10] staging: fsl-dpaa2/ethsw: remove IGMP default address Ioana Ciornei
2019-08-12 9:39 ` [PATCH 02/10] staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 14:44 ` Greg KH
2019-08-12 9:39 ` [PATCH 04/10] staging: fsl-dpaa2/ethsw: remove debug message Ioana Ciornei
` (6 subsequent siblings)
9 siblings, 1 reply; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
Add the '\n' line terminator to the string formats missing it.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 2 +-
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
index 926a0c053e18..95e9f1096999 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
@@ -65,7 +65,7 @@ static void ethsw_get_drvinfo(struct net_device *netdev,
port_priv->idx,
&state);
if (err) {
- netdev_err(netdev, "ERROR %d getting link state", err);
+ netdev_err(netdev, "ERROR %d getting link state\n", err);
goto out;
}
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 302842c3bdfe..9ade73928e60 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -722,12 +722,12 @@ static irqreturn_t ethsw_irq0_handler_thread(int irq_num, void *arg)
err = dpsw_get_irq_status(ethsw->mc_io, 0, ethsw->dpsw_handle,
DPSW_IRQ_INDEX_IF, &status);
if (err) {
- dev_err(dev, "Can't get irq status (err %d)", err);
+ dev_err(dev, "Can't get irq status (err %d)\n", err);
err = dpsw_clear_irq_status(ethsw->mc_io, 0, ethsw->dpsw_handle,
DPSW_IRQ_INDEX_IF, 0xFFFFFFFF);
if (err)
- dev_err(dev, "Can't clear irq status (err %d)", err);
+ dev_err(dev, "Can't clear irq status (err %d)\n", err);
goto out;
}
@@ -772,21 +772,21 @@ static int ethsw_setup_irqs(struct fsl_mc_device *sw_dev)
IRQF_NO_SUSPEND | IRQF_ONESHOT,
dev_name(dev), dev);
if (err) {
- dev_err(dev, "devm_request_threaded_irq(): %d", err);
+ dev_err(dev, "devm_request_threaded_irq(): %d\n", err);
goto free_irq;
}
err = dpsw_set_irq_mask(ethsw->mc_io, 0, ethsw->dpsw_handle,
DPSW_IRQ_INDEX_IF, mask);
if (err) {
- dev_err(dev, "dpsw_set_irq_mask(): %d", err);
+ dev_err(dev, "dpsw_set_irq_mask(): %d\n", err);
goto free_devm_irq;
}
err = dpsw_set_irq_enable(ethsw->mc_io, 0, ethsw->dpsw_handle,
DPSW_IRQ_INDEX_IF, 1);
if (err) {
- dev_err(dev, "dpsw_set_irq_enable(): %d", err);
+ dev_err(dev, "dpsw_set_irq_enable(): %d\n", err);
goto free_devm_irq;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 04/10] staging: fsl-dpaa2/ethsw: remove debug message
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (2 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 05/10] staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding state Ioana Ciornei
` (5 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
Since ethtool will be loud enough if the .set_link_ksettings() callback
fails, remove the debug messages which do not add additional
information.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
index 95e9f1096999..12e33a3a1bf1 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
@@ -91,8 +91,6 @@ static void ethsw_get_drvinfo(struct net_device *netdev,
struct dpsw_link_cfg cfg = {0};
int err = 0;
- netdev_dbg(netdev, "Setting link parameters...");
-
/* Due to a temporary MC limitation, the DPSW port must be down
* in order to be able to change link settings. Taking steps to let
* the user know that.
@@ -116,11 +114,6 @@ static void ethsw_get_drvinfo(struct net_device *netdev,
port_priv->ethsw_data->dpsw_handle,
port_priv->idx,
&cfg);
- if (err)
- /* ethtool will be loud enough if we return an error; no point
- * in putting our own error message on the console by default
- */
- netdev_dbg(netdev, "ERROR %d setting link cfg", err);
return err;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 05/10] staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding state
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (3 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 04/10] staging: fsl-dpaa2/ethsw: remove debug message Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 06/10] staging: fsl-dpaa2/ethsw: remove unnecessary memset Ioana Ciornei
` (4 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
Use a bool instead of an u8 in ethsw_set_learning() and
ethsw_port_set_flood() to encode an binary type property.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 9ade73928e60..20519af4d804 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -149,12 +149,12 @@ static int ethsw_port_add_vlan(struct ethsw_port_priv *port_priv,
return 0;
}
-static int ethsw_set_learning(struct ethsw_core *ethsw, u8 flag)
+static int ethsw_set_learning(struct ethsw_core *ethsw, bool enable)
{
enum dpsw_fdb_learning_mode learn_mode;
int err;
- if (flag)
+ if (enable)
learn_mode = DPSW_FDB_LEARNING_MODE_HW;
else
learn_mode = DPSW_FDB_LEARNING_MODE_DIS;
@@ -165,24 +165,24 @@ static int ethsw_set_learning(struct ethsw_core *ethsw, u8 flag)
dev_err(ethsw->dev, "dpsw_fdb_set_learning_mode err %d\n", err);
return err;
}
- ethsw->learning = !!flag;
+ ethsw->learning = enable;
return 0;
}
-static int ethsw_port_set_flood(struct ethsw_port_priv *port_priv, u8 flag)
+static int ethsw_port_set_flood(struct ethsw_port_priv *port_priv, bool enable)
{
int err;
err = dpsw_if_set_flooding(port_priv->ethsw_data->mc_io, 0,
port_priv->ethsw_data->dpsw_handle,
- port_priv->idx, flag);
+ port_priv->idx, enable);
if (err) {
netdev_err(port_priv->netdev,
"dpsw_if_set_flooding err %d\n", err);
return err;
}
- port_priv->flood = !!flag;
+ port_priv->flood = enable;
return 0;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 06/10] staging: fsl-dpaa2/ethsw: remove unnecessary memset
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (4 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 05/10] staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding state Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 07/10] staging: fsl-dpaa2/ethsw: remove redundant VLAN check Ioana Ciornei
` (3 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
The ethtool core already zeroes the memory before calling
.get_ethtool_stats() thus making the memset unnecessary. Remove it.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
index 12e33a3a1bf1..0f9f8345e534 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
@@ -149,9 +149,6 @@ static void ethsw_ethtool_get_stats(struct net_device *netdev,
struct ethsw_port_priv *port_priv = netdev_priv(netdev);
int i, err;
- memset(data, 0,
- sizeof(u64) * ETHSW_NUM_COUNTERS);
-
for (i = 0; i < ETHSW_NUM_COUNTERS; i++) {
err = dpsw_if_get_counter(port_priv->ethsw_data->mc_io, 0,
port_priv->ethsw_data->dpsw_handle,
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 07/10] staging: fsl-dpaa2/ethsw: remove redundant VLAN check
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (5 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 06/10] staging: fsl-dpaa2/ethsw: remove unnecessary memset Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 08/10] staging: fsl-dpaa2/ethsw: reword error message Ioana Ciornei
` (2 subsequent siblings)
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
The ethsw_add_vlan() function is already called only when the VLAN is
not yet configured on the switch. Remove the redundant check.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 20519af4d804..b69b2b7be972 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -34,11 +34,6 @@ static int ethsw_add_vlan(struct ethsw_core *ethsw, u16 vid)
.fdb_id = 0,
};
- if (ethsw->vlans[vid]) {
- dev_err(ethsw->dev, "VLAN already configured\n");
- return -EEXIST;
- }
-
err = dpsw_vlan_add(ethsw->mc_io, 0,
ethsw->dpsw_handle, vid, &vcfg);
if (err) {
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 08/10] staging: fsl-dpaa2/ethsw: reword error message
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (6 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 07/10] staging: fsl-dpaa2/ethsw: remove redundant VLAN check Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 09/10] staging: fsl-dpaa2/ethsw: register_netdev only when ready Ioana Ciornei
2019-08-12 9:39 ` [PATCH 10/10] staging: fsl-dpaa2/ethsw: do not force user to bring interface down Ioana Ciornei
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
In the current state, the dpaa2-ethsw driver supports only one bridge
per DPSW object. Reword the error message so that this information is
much more clear.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index b69b2b7be972..28da109aef5e 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -1119,8 +1119,7 @@ static int port_bridge_join(struct net_device *netdev,
if (ethsw->ports[i]->bridge_dev &&
(ethsw->ports[i]->bridge_dev != upper_dev)) {
netdev_err(netdev,
- "Another switch port is connected to %s\n",
- ethsw->ports[i]->bridge_dev->name);
+ "Only one bridge supported per DPSW object!\n");
return -EINVAL;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 09/10] staging: fsl-dpaa2/ethsw: register_netdev only when ready
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (7 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 08/10] staging: fsl-dpaa2/ethsw: reword error message Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 10/10] staging: fsl-dpaa2/ethsw: do not force user to bring interface down Ioana Ciornei
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
The register_netdev() call should be made only when ready to process any
user request on the interface. Move the call to be the last one issued
in the probe sequence.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
index 28da109aef5e..14a9eebf687e 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw.c
@@ -1588,23 +1588,21 @@ static int ethsw_probe_port(struct ethsw_core *ethsw, u16 port_idx)
port_netdev->min_mtu = ETH_MIN_MTU;
port_netdev->max_mtu = ETHSW_MAX_FRAME_LENGTH;
+ err = ethsw_port_init(port_priv, port_idx);
+ if (err)
+ goto err_port_probe;
+
err = register_netdev(port_netdev);
if (err < 0) {
dev_err(dev, "register_netdev error %d\n", err);
- goto err_register_netdev;
+ goto err_port_probe;
}
ethsw->ports[port_idx] = port_priv;
- err = ethsw_port_init(port_priv, port_idx);
- if (err)
- goto err_ethsw_port_init;
-
return 0;
-err_ethsw_port_init:
- unregister_netdev(port_netdev);
-err_register_netdev:
+err_port_probe:
free_netdev(port_netdev);
return err;
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 10/10] staging: fsl-dpaa2/ethsw: do not force user to bring interface down
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
` (8 preceding siblings ...)
2019-08-12 9:39 ` [PATCH 09/10] staging: fsl-dpaa2/ethsw: register_netdev only when ready Ioana Ciornei
@ 2019-08-12 9:39 ` Ioana Ciornei
9 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-12 9:39 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: andrew, ruxandra.radulescu, Ioana Ciornei
Link settings can be changed only when the interface is down. Disable
and re-enable the interface, if necessary, behind the scenes so that we do
not force users to an if down/up sequence.
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
---
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 32 ++++++++++++++++++-------
1 file changed, 23 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
index 0f9f8345e534..99d658fefa14 100644
--- a/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
+++ b/drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
@@ -88,16 +88,21 @@ static void ethsw_get_drvinfo(struct net_device *netdev,
const struct ethtool_link_ksettings *link_ksettings)
{
struct ethsw_port_priv *port_priv = netdev_priv(netdev);
+ struct ethsw_core *ethsw = port_priv->ethsw_data;
struct dpsw_link_cfg cfg = {0};
- int err = 0;
-
- /* Due to a temporary MC limitation, the DPSW port must be down
- * in order to be able to change link settings. Taking steps to let
- * the user know that.
- */
- if (netif_running(netdev)) {
- netdev_info(netdev, "Sorry, interface must be brought down first.\n");
- return -EACCES;
+ bool if_running;
+ int err = 0, ret;
+
+ /* Interface needs to be down to change link settings */
+ if_running = netif_running(netdev);
+ if (if_running) {
+ err = dpsw_if_disable(ethsw->mc_io, 0,
+ ethsw->dpsw_handle,
+ port_priv->idx);
+ if (err) {
+ netdev_err(netdev, "dpsw_if_disable err %d\n", err);
+ return err;
+ }
}
cfg.rate = link_ksettings->base.speed;
@@ -115,6 +120,15 @@ static void ethsw_get_drvinfo(struct net_device *netdev,
port_priv->idx,
&cfg);
+ if (if_running) {
+ ret = dpsw_if_enable(ethsw->mc_io, 0,
+ ethsw->dpsw_handle,
+ port_priv->idx);
+ if (ret) {
+ return ret;
+ netdev_err(netdev, "dpsw_if_enable err %d\n", ret);
+ }
+ }
return err;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats
2019-08-12 9:39 ` [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats Ioana Ciornei
@ 2019-08-12 14:44 ` Greg KH
2019-08-13 7:29 ` Ioana Ciornei
0 siblings, 1 reply; 13+ messages in thread
From: Greg KH @ 2019-08-12 14:44 UTC (permalink / raw)
To: Ioana Ciornei; +Cc: linux-kernel, andrew, ruxandra.radulescu
On Mon, Aug 12, 2019 at 12:39:11PM +0300, Ioana Ciornei wrote:
> Add the '\n' line terminator to the string formats missing it.
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
> ---
> drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 2 +-
> drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 10 +++++-----
> 2 files changed, 6 insertions(+), 6 deletions(-)
Are you sure none of these patches should have a "Reported-by:" tag on
them? These were all done based on a review, so someone did that
review...
Please fix up the whole series and resend.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats
2019-08-12 14:44 ` Greg KH
@ 2019-08-13 7:29 ` Ioana Ciornei
0 siblings, 0 replies; 13+ messages in thread
From: Ioana Ciornei @ 2019-08-13 7:29 UTC (permalink / raw)
To: Greg KH; +Cc: linux-kernel, andrew, Ioana Ciocoi Radulescu
On 8/12/19 5:44 PM, Greg KH wrote:
> On Mon, Aug 12, 2019 at 12:39:11PM +0300, Ioana Ciornei wrote:
>> Add the '\n' line terminator to the string formats missing it.
>>
>> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
>> ---
>> drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c | 2 +-
>> drivers/staging/fsl-dpaa2/ethsw/ethsw.c | 10 +++++-----
>> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> Are you sure none of these patches should have a "Reported-by:" tag on
> them? These were all done based on a review, so someone did that
> review...
>
> Please fix up the whole series and resend.
>
> thanks,
>
> greg k-h
>
Sure, sorry for forgetting this. Will fix up.
Ioana
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-08-13 7:29 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-12 9:39 [PATCH 00/10] staging: fsl-dpaa2/ethsw: code cleanup Ioana Ciornei
2019-08-12 9:39 ` [PATCH 01/10] staging: fsl-dpaa2/ethsw: remove IGMP default address Ioana Ciornei
2019-08-12 9:39 ` [PATCH 02/10] staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open Ioana Ciornei
2019-08-12 9:39 ` [PATCH 03/10] staging: fsl-dpaa2/ethsw: add line terminator to all formats Ioana Ciornei
2019-08-12 14:44 ` Greg KH
2019-08-13 7:29 ` Ioana Ciornei
2019-08-12 9:39 ` [PATCH 04/10] staging: fsl-dpaa2/ethsw: remove debug message Ioana Ciornei
2019-08-12 9:39 ` [PATCH 05/10] staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding state Ioana Ciornei
2019-08-12 9:39 ` [PATCH 06/10] staging: fsl-dpaa2/ethsw: remove unnecessary memset Ioana Ciornei
2019-08-12 9:39 ` [PATCH 07/10] staging: fsl-dpaa2/ethsw: remove redundant VLAN check Ioana Ciornei
2019-08-12 9:39 ` [PATCH 08/10] staging: fsl-dpaa2/ethsw: reword error message Ioana Ciornei
2019-08-12 9:39 ` [PATCH 09/10] staging: fsl-dpaa2/ethsw: register_netdev only when ready Ioana Ciornei
2019-08-12 9:39 ` [PATCH 10/10] staging: fsl-dpaa2/ethsw: do not force user to bring interface down Ioana Ciornei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).