forked from Minki/linux
staging: fsl-dpaa2: ethsw: Handle PORT_PRE_BRIDGE_FLAGS
In preparation for removing SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS_SUPPORT, handle the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS attribute and check that the bridge port flags being configured are supported. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c19c44f867
commit
e1230246d0
@ -666,6 +666,16 @@ static int port_attr_stp_state_set(struct net_device *netdev,
|
||||
return ethsw_port_set_stp_state(port_priv, state);
|
||||
}
|
||||
|
||||
static int port_attr_br_flags_pre_set(struct net_device *netdev,
|
||||
struct switchdev_trans *trans,
|
||||
unsigned long flags)
|
||||
{
|
||||
if (flags & ~(BR_LEARNING | BR_FLOOD))
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int port_attr_br_flags_set(struct net_device *netdev,
|
||||
struct switchdev_trans *trans,
|
||||
unsigned long flags)
|
||||
@ -698,6 +708,10 @@ static int swdev_port_attr_set(struct net_device *netdev,
|
||||
err = port_attr_stp_state_set(netdev, trans,
|
||||
attr->u.stp_state);
|
||||
break;
|
||||
case SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS:
|
||||
err = port_attr_br_flags_pre_set(netdev, trans,
|
||||
attr->u.brport_flags);
|
||||
break;
|
||||
case SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS:
|
||||
err = port_attr_br_flags_set(netdev, trans,
|
||||
attr->u.brport_flags);
|
||||
|
Loading…
Reference in New Issue
Block a user