RE: [PATCH net-next 02/18] switchdev: flesh out get/set attr ops
From: Arad, Ronen <hidden>
Date: 2015-03-31 00:23:02
-----Original Message----- From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org] On Behalf Of sfeldma@gmail.com Sent: Monday, March 30, 2015 1:40 AM To: netdev@vger.kernel.org Cc: jiri@resnulli.us; roopa@cumulusnetworks.com; linux@roeck-us.net; f.fainelli@gmail.com Subject: [PATCH net-next 02/18] switchdev: flesh out get/set attr ops From: Scott Feldman <redacted>
[cut]
int swdev_port_attr_set(struct net_device *dev, struct swdev_attr *attr)
{
- return -EOPNOTSUPP;
+ struct swdev_attr prev = *attr;
+ int err, get_err;
+
+ get_err = swdev_port_attr_get(dev, &prev);
+
+ err = _swdev_port_attr_set(dev, attr);
+ if (err && !get_err && !(attr->flags & SWDEV_ATTR_F_NO_RECOVER))
+ /* Some err on set: revert to previous value */
+ _swdev_port_attr_set(dev, &prev);Netlink requests could contain multiple attributes within a single request. Reverting to the previous value applies only to the first swdev_port_attr_set error. It does not rollback all prior changes that were triggered by the same Netlink request.
+ + return err; } EXPORT_SYMBOL_GPL(swdev_port_attr_set); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html