net: dsa: remove cross-chip support for MRP
The cross-chip notifiers for MRP are bypass operations, meaning that even though all switches in a tree are notified, only the switch specified in the info structure is targeted. We can eliminate the unnecessary complexity by deleting the cross-chip notifier logic and calling the ds->ops straight from port.c. Cc: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
ff91e1b684
commit
cad69019f2
@@ -701,58 +701,6 @@ dsa_switch_disconnect_tag_proto(struct dsa_switch *ds,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dsa_switch_mrp_add(struct dsa_switch *ds,
|
||||
struct dsa_notifier_mrp_info *info)
|
||||
{
|
||||
if (!ds->ops->port_mrp_add)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (ds->index == info->sw_index)
|
||||
return ds->ops->port_mrp_add(ds, info->port, info->mrp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dsa_switch_mrp_del(struct dsa_switch *ds,
|
||||
struct dsa_notifier_mrp_info *info)
|
||||
{
|
||||
if (!ds->ops->port_mrp_del)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (ds->index == info->sw_index)
|
||||
return ds->ops->port_mrp_del(ds, info->port, info->mrp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
dsa_switch_mrp_add_ring_role(struct dsa_switch *ds,
|
||||
struct dsa_notifier_mrp_ring_role_info *info)
|
||||
{
|
||||
if (!ds->ops->port_mrp_add_ring_role)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (ds->index == info->sw_index)
|
||||
return ds->ops->port_mrp_add_ring_role(ds, info->port,
|
||||
info->mrp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
dsa_switch_mrp_del_ring_role(struct dsa_switch *ds,
|
||||
struct dsa_notifier_mrp_ring_role_info *info)
|
||||
{
|
||||
if (!ds->ops->port_mrp_del_ring_role)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (ds->index == info->sw_index)
|
||||
return ds->ops->port_mrp_del_ring_role(ds, info->port,
|
||||
info->mrp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dsa_switch_event(struct notifier_block *nb,
|
||||
unsigned long event, void *info)
|
||||
{
|
||||
@@ -826,18 +774,6 @@ static int dsa_switch_event(struct notifier_block *nb,
|
||||
case DSA_NOTIFIER_TAG_PROTO_DISCONNECT:
|
||||
err = dsa_switch_disconnect_tag_proto(ds, info);
|
||||
break;
|
||||
case DSA_NOTIFIER_MRP_ADD:
|
||||
err = dsa_switch_mrp_add(ds, info);
|
||||
break;
|
||||
case DSA_NOTIFIER_MRP_DEL:
|
||||
err = dsa_switch_mrp_del(ds, info);
|
||||
break;
|
||||
case DSA_NOTIFIER_MRP_ADD_RING_ROLE:
|
||||
err = dsa_switch_mrp_add_ring_role(ds, info);
|
||||
break;
|
||||
case DSA_NOTIFIER_MRP_DEL_RING_ROLE:
|
||||
err = dsa_switch_mrp_del_ring_role(ds, info);
|
||||
break;
|
||||
case DSA_NOTIFIER_TAG_8021Q_VLAN_ADD:
|
||||
err = dsa_switch_tag_8021q_vlan_add(ds, info);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user