net: dpaa2-switch: refactor prechangeupper sanity checks
Make more room for some extra code in the NETDEV_PRECHANGEUPPER handler by moving what already exists into a dedicated function. Cc: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
123338d7d4
Коммит
45035febc4
|
@ -2030,6 +2030,28 @@ static int dpaa2_switch_prevent_bridging_with_8021q_upper(struct net_device *net
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
dpaa2_switch_prechangeupper_sanity_checks(struct net_device *netdev,
|
||||
struct net_device *upper_dev,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (!br_vlan_enabled(upper_dev)) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Cannot join a VLAN-unaware bridge");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
err = dpaa2_switch_prevent_bridging_with_8021q_upper(netdev);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack,
|
||||
"Cannot join a bridge while VLAN uppers are present");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dpaa2_switch_port_netdevice_event(struct notifier_block *nb,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
|
@ -2050,18 +2072,11 @@ static int dpaa2_switch_port_netdevice_event(struct notifier_block *nb,
|
|||
if (!netif_is_bridge_master(upper_dev))
|
||||
break;
|
||||
|
||||
if (!br_vlan_enabled(upper_dev)) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Cannot join a VLAN-unaware bridge");
|
||||
err = -EOPNOTSUPP;
|
||||
err = dpaa2_switch_prechangeupper_sanity_checks(netdev,
|
||||
upper_dev,
|
||||
extack);
|
||||
if (err)
|
||||
goto out;
|
||||
}
|
||||
|
||||
err = dpaa2_switch_prevent_bridging_with_8021q_upper(netdev);
|
||||
if (err) {
|
||||
NL_SET_ERR_MSG_MOD(extack,
|
||||
"Cannot join a bridge while VLAN uppers are present");
|
||||
goto out;
|
||||
}
|
||||
|
||||
break;
|
||||
case NETDEV_CHANGEUPPER:
|
||||
|
|
Загрузка…
Ссылка в новой задаче