#define SWITCHDEV_F_NO_RECURSE BIT(0)
-enum switchdev_trans_ph {
- SWITCHDEV_TRANS_PREPARE,
- SWITCHDEV_TRANS_COMMIT,
-};
-
struct switchdev_trans_item {
struct list_head list;
void *data;
struct switchdev_trans {
struct list_head item_list;
- enum switchdev_trans_ph ph;
+ bool ph_prepare;
};
static inline bool switchdev_trans_ph_prepare(struct switchdev_trans *trans)
{
- return trans && trans->ph == SWITCHDEV_TRANS_PREPARE;
+ return trans && trans->ph_prepare;
}
static inline bool switchdev_trans_ph_commit(struct switchdev_trans *trans)
{
- return trans && trans->ph == SWITCHDEV_TRANS_COMMIT;
+ return trans && !trans->ph_prepare;
}
enum switchdev_attr_id {
* but should not commit the attr.
*/
- trans.ph = SWITCHDEV_TRANS_PREPARE;
+ trans.ph_prepare = true;
err = __switchdev_port_attr_set(dev, attr, &trans);
if (err) {
/* Prepare phase failed: abort the transaction. Any
* because the driver said everythings was OK in phase I.
*/
- trans.ph = SWITCHDEV_TRANS_COMMIT;
+ trans.ph_prepare = false;
err = __switchdev_port_attr_set(dev, attr, &trans);
WARN(err, "%s: Commit of attribute (id=%d) failed.\n",
dev->name, attr->id);
* but should not commit the obj.
*/
- trans.ph = SWITCHDEV_TRANS_PREPARE;
+ trans.ph_prepare = true;
err = __switchdev_port_obj_add(dev, obj, &trans);
if (err) {
/* Prepare phase failed: abort the transaction. Any
* because the driver said everythings was OK in phase I.
*/
- trans.ph = SWITCHDEV_TRANS_COMMIT;
+ trans.ph_prepare = false;
err = __switchdev_port_obj_add(dev, obj, &trans);
WARN(err, "%s: Commit of object (id=%d) failed.\n", dev->name, obj->id);
switchdev_trans_items_warn_destroy(dev, &trans);