diff options
author | David S. Miller | 2017-08-10 21:09:13 +0200 |
---|---|---|
committer | David S. Miller | 2017-08-10 21:09:13 +0200 |
commit | 2f7043a37708110aa98262b91702da6bc32e17b6 (patch) | |
tree | de0525dae8420a56f9a00def631ccc0108d9d091 /net/dsa | |
parent | sparc64: Revert 16GB huge page support. (diff) | |
parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (diff) | |
download | kernel-qcow2-linux-2f7043a37708110aa98262b91702da6bc32e17b6.tar.gz kernel-qcow2-linux-2f7043a37708110aa98262b91702da6bc32e17b6.tar.xz kernel-qcow2-linux-2f7043a37708110aa98262b91702da6bc32e17b6.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Diffstat (limited to 'net/dsa')
-rw-r--r-- | net/dsa/dsa2.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index 56e46090526b..c442051d5a55 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -509,21 +509,22 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index, dst->cpu_dp->netdev = ethernet_dev; } + /* Initialize cpu_port_mask now for drv->setup() + * to have access to a correct value, just like what + * net/dsa/dsa.c::dsa_switch_setup_one does. + */ + ds->cpu_port_mask |= BIT(index); + tag_protocol = ds->ops->get_tag_protocol(ds); dst->tag_ops = dsa_resolve_tag_protocol(tag_protocol); if (IS_ERR(dst->tag_ops)) { dev_warn(ds->dev, "No tagger for this switch\n"); + ds->cpu_port_mask &= ~BIT(index); return PTR_ERR(dst->tag_ops); } dst->rcv = dst->tag_ops->rcv; - /* Initialize cpu_port_mask now for drv->setup() - * to have access to a correct value, just like what - * net/dsa/dsa.c::dsa_switch_setup_one does. - */ - ds->cpu_port_mask |= BIT(index); - return 0; } |