diff options
author | Jens Axboe <axboe@fb.com> | 2015-10-09 10:08:39 -0600 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-10-09 10:08:39 -0600 |
commit | fd48ca384960c831d4fae4636282e422e140ca7c (patch) | |
tree | cfa3b992c3f589073aed67d46d13404f63a97283 /net/dsa/slave.c | |
parent | 53cbf3b157a0428d40989ab1c7df9228a1976fc2 (diff) | |
parent | 049e6dde7e57f0054fdc49102e7ef4830c698b46 (diff) |
Merge tag 'v4.3-rc4' into for-4.4/core
Linux 4.3-rc4
Pulling in v4.3-rc4 to avoid conflicts with NVMe fixes that have gone
in since for-4.4/core was based.
Diffstat (limited to 'net/dsa/slave.c')
-rw-r--r-- | net/dsa/slave.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index cce97385f743..7d91f4612ac0 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -458,12 +458,17 @@ static int dsa_slave_stp_update(struct net_device *dev, u8 state) static int dsa_slave_port_attr_set(struct net_device *dev, struct switchdev_attr *attr) { - int ret = 0; + struct dsa_slave_priv *p = netdev_priv(dev); + struct dsa_switch *ds = p->parent; + int ret; switch (attr->id) { case SWITCHDEV_ATTR_PORT_STP_STATE: - if (attr->trans == SWITCHDEV_TRANS_COMMIT) - ret = dsa_slave_stp_update(dev, attr->u.stp_state); + if (attr->trans == SWITCHDEV_TRANS_PREPARE) + ret = ds->drv->port_stp_update ? 0 : -EOPNOTSUPP; + else + ret = ds->drv->port_stp_update(ds, p->port, + attr->u.stp_state); break; default: ret = -EOPNOTSUPP; |