> > +int mv88e6xxx_port_bridge_join(struct dsa_switch *ds, int port, u32 
> > members)
> > +{
> > +   struct mv88e6xxx_priv_state *ps = ds_to_priv(ds);
> > +   const u16 pvid = 4000 + ds->index * DSA_MAX_PORTS + port;
> > +   int err;
> > +
> > +   /* The port joined a bridge, so leave its reserved VLAN */
> > +   mutex_lock(&ps->smi_mutex);
> > +   err = _mv88e6xxx_port_vlan_del(ds, port, pvid);
> > +   if (!err)
> > +           err = _mv88e6xxx_port_pvid_set(ds, port, 0);
> 
> Does that mean that the following happens:
> 
> - bridge is created and port joins it
> - port is configured to be in pvid 0 while joining
> - port is then configured again by the bridge layer to be in whatever
> pvid the user has decided
> 
> The other question is, does that break isolation between multiple
> bridges on the same switch? Should we use the bridge ifindex here
> somehow as a pvid indication?

Hi Florian

The old code which got changed when VLAN support was added used some
property from the bridge to handle multiple bridges.

But that is probably a different bug to the one being fixed here.
This is all about using ports individually.

     Andrew
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to