static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p)
{
return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_UNUSED;
-@@ -916,6 +926,13 @@ struct dsa_switch_ops {
+@@ -949,6 +959,13 @@ struct dsa_switch_ops {
int (*tag_8021q_vlan_add)(struct dsa_switch *ds, int port, u16 vid,
u16 flags);
int (*tag_8021q_vlan_del)(struct dsa_switch *ds, int port, u16 vid);
struct dsa_switchdev_event_work {
struct dsa_switch *ds;
int port;
-@@ -548,6 +555,12 @@ int dsa_tree_change_tag_proto(struct dsa
+@@ -549,6 +556,12 @@ int dsa_tree_change_tag_proto(struct dsa
struct net_device *master,
const struct dsa_device_ops *tag_ops,
const struct dsa_device_ops *old_tag_ops);
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
-@@ -2320,6 +2320,36 @@ static int dsa_slave_netdevice_event(str
+@@ -2311,6 +2311,36 @@ static int dsa_slave_netdevice_event(str
err = dsa_port_lag_change(dp, info->lower_state_info);
return notifier_from_errno(err);
}
case NETDEV_GOING_DOWN: {
struct dsa_port *dp, *cpu_dp;
struct dsa_switch_tree *dst;
-@@ -2331,6 +2361,8 @@ static int dsa_slave_netdevice_event(str
+@@ -2322,6 +2352,8 @@ static int dsa_slave_netdevice_event(str
cpu_dp = dev->dsa_ptr;
dst = cpu_dp->ds->dst;