diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/dsa/slave.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index d726307c7795..d8c3c0f00cf3 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c | |||
| @@ -74,9 +74,12 @@ static inline bool dsa_port_is_bridged(struct dsa_port *dp) | |||
| 74 | return !!dp->bridge_dev; | 74 | return !!dp->bridge_dev; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | static void dsa_port_set_stp_state(struct dsa_switch *ds, int port, u8 state) | 77 | static void dsa_slave_set_state(struct net_device *dev, u8 state) |
| 78 | { | 78 | { |
| 79 | struct dsa_port *dp = &ds->ports[port]; | 79 | struct dsa_slave_priv *p = netdev_priv(dev); |
| 80 | struct dsa_port *dp = p->dp; | ||
| 81 | struct dsa_switch *ds = dp->ds; | ||
| 82 | int port = dp->index; | ||
| 80 | 83 | ||
| 81 | if (ds->ops->port_stp_state_set) | 84 | if (ds->ops->port_stp_state_set) |
| 82 | ds->ops->port_stp_state_set(ds, port, state); | 85 | ds->ops->port_stp_state_set(ds, port, state); |
| @@ -133,7 +136,7 @@ static int dsa_slave_open(struct net_device *dev) | |||
| 133 | goto clear_promisc; | 136 | goto clear_promisc; |
| 134 | } | 137 | } |
| 135 | 138 | ||
| 136 | dsa_port_set_stp_state(ds, p->dp->index, stp_state); | 139 | dsa_slave_set_state(dev, stp_state); |
| 137 | 140 | ||
| 138 | if (p->phy) | 141 | if (p->phy) |
| 139 | phy_start(p->phy); | 142 | phy_start(p->phy); |
| @@ -175,7 +178,7 @@ static int dsa_slave_close(struct net_device *dev) | |||
| 175 | if (ds->ops->port_disable) | 178 | if (ds->ops->port_disable) |
| 176 | ds->ops->port_disable(ds, p->dp->index, p->phy); | 179 | ds->ops->port_disable(ds, p->dp->index, p->phy); |
| 177 | 180 | ||
| 178 | dsa_port_set_stp_state(ds, p->dp->index, BR_STATE_DISABLED); | 181 | dsa_slave_set_state(dev, BR_STATE_DISABLED); |
| 179 | 182 | ||
| 180 | return 0; | 183 | return 0; |
| 181 | } | 184 | } |
| @@ -382,7 +385,7 @@ static int dsa_slave_stp_state_set(struct net_device *dev, | |||
| 382 | if (switchdev_trans_ph_prepare(trans)) | 385 | if (switchdev_trans_ph_prepare(trans)) |
| 383 | return ds->ops->port_stp_state_set ? 0 : -EOPNOTSUPP; | 386 | return ds->ops->port_stp_state_set ? 0 : -EOPNOTSUPP; |
| 384 | 387 | ||
| 385 | dsa_port_set_stp_state(ds, p->dp->index, attr->u.stp_state); | 388 | dsa_slave_set_state(dev, attr->u.stp_state); |
| 386 | 389 | ||
| 387 | return 0; | 390 | return 0; |
| 388 | } | 391 | } |
| @@ -596,7 +599,7 @@ static void dsa_slave_bridge_port_leave(struct net_device *dev, | |||
| 596 | /* Port left the bridge, put in BR_STATE_DISABLED by the bridge layer, | 599 | /* Port left the bridge, put in BR_STATE_DISABLED by the bridge layer, |
| 597 | * so allow it to be in BR_STATE_FORWARDING to be kept functional | 600 | * so allow it to be in BR_STATE_FORWARDING to be kept functional |
| 598 | */ | 601 | */ |
| 599 | dsa_port_set_stp_state(ds, p->dp->index, BR_STATE_FORWARDING); | 602 | dsa_slave_set_state(dev, BR_STATE_FORWARDING); |
| 600 | } | 603 | } |
| 601 | 604 | ||
| 602 | static int dsa_slave_port_attr_get(struct net_device *dev, | 605 | static int dsa_slave_port_attr_get(struct net_device *dev, |
