diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2017-08-31 16:25:59 -0700 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2017-08-31 16:25:59 -0700 |
| commit | 8f98ae0c9b90bb46097e4f28e81e9ae6148e5694 (patch) | |
| tree | c1d0f0d9b0733bf3271780e45d7a1c299fe2fc48 /net/dsa/dsa2.c | |
| parent | 58738c495e15badd2015e19ff41f1f1ed55200bc (diff) | |
| parent | 5e405595e5bf4c09fab9ca1e7dbe5b62872757b5 (diff) | |
Merge branch 'for-4.14/fs' into libnvdimm-for-next
Diffstat (limited to 'net/dsa/dsa2.c')
| -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; } |
