diff options
author | David S. Miller <davem@davemloft.net> | 2017-10-26 17:05:04 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-26 17:05:04 +0900 |
commit | 95fa7a05677e425e175cbca724acb03f15449a7a (patch) | |
tree | f2e7f6bb100b80fe2784825f7d50cc1955e86fd1 /net | |
parent | c3c9f441d82f0f1a1a8841201fe5ad6f9cddd040 (diff) | |
parent | eaac97466ee4e0ab6ed67afbf9fc400862e64986 (diff) |
Merge branch 'dsa-dont-unmask-port-bitmaps'
Vivien Didelot says:
====================
net: dsa: don't unmask port bitmaps
DSA has several bitmaps to store the type of ports: cpu_port_mask,
dsa_port_mask and enabled_port_mask. But the code is inconsistently
unmasking them.
The legacy code tries to unmask cpu_port_mask and dsa_port_mask but
skips enabled_port_mask.
The new bindings unmasks cpu_port_mask and enabled_port_mask but skips
dsa_port_mask.
In fact there is no need to unmask them because we are in the error
path, and they won't be used after. Instead of fixing the unmasking,
simply remove them.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/dsa/dsa2.c | 4 | ||||
-rw-r--r-- | net/dsa/legacy.c | 4 |
2 files changed, 0 insertions, 8 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 9e8b8aab049d..62485a57dbfc 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -260,8 +260,6 @@ static void dsa_cpu_port_unapply(struct dsa_port *port) { devlink_port_unregister(&port->devlink_port); dsa_cpu_dsa_destroy(port); - port->ds->cpu_port_mask &= ~BIT(port->index); - } static int dsa_user_port_apply(struct dsa_port *port) @@ -300,7 +298,6 @@ static void dsa_user_port_unapply(struct dsa_port *port) if (port->slave) { dsa_slave_destroy(port->slave); port->slave = NULL; - port->ds->enabled_port_mask &= ~(1 << port->index); } } @@ -512,7 +509,6 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index, tag_ops = dsa_resolve_tag_protocol(tag_protocol); if (IS_ERR(tag_ops)) { dev_warn(ds->dev, "No tagger for this switch\n"); - ds->cpu_port_mask &= ~BIT(index); return PTR_ERR(tag_ops); } diff --git a/net/dsa/legacy.c b/net/dsa/legacy.c index b6c88fd33d4f..93c1c43bcc58 100644 --- a/net/dsa/legacy.c +++ b/net/dsa/legacy.c @@ -272,10 +272,6 @@ static void dsa_switch_destroy(struct dsa_switch *ds) if (!(dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port))) continue; dsa_cpu_dsa_destroy(&ds->ports[port]); - - /* Clearing a bit which is not set does no harm */ - ds->cpu_port_mask |= ~(1 << port); - ds->dsa_port_mask |= ~(1 << port); } if (ds->slave_mii_bus && ds->ops->phy_read) |