Lines Matching refs:trans
40 void switchdev_trans_item_enqueue(struct switchdev_trans *trans, in switchdev_trans_item_enqueue() argument
46 list_add_tail(&tritem->list, &trans->item_list); in switchdev_trans_item_enqueue()
51 __switchdev_trans_item_dequeue(struct switchdev_trans *trans) in __switchdev_trans_item_dequeue() argument
55 if (list_empty(&trans->item_list)) in __switchdev_trans_item_dequeue()
57 tritem = list_first_entry(&trans->item_list, in __switchdev_trans_item_dequeue()
68 void *switchdev_trans_item_dequeue(struct switchdev_trans *trans) in switchdev_trans_item_dequeue() argument
72 tritem = __switchdev_trans_item_dequeue(trans); in switchdev_trans_item_dequeue()
78 static void switchdev_trans_init(struct switchdev_trans *trans) in switchdev_trans_init() argument
80 INIT_LIST_HEAD(&trans->item_list); in switchdev_trans_init()
83 static void switchdev_trans_items_destroy(struct switchdev_trans *trans) in switchdev_trans_items_destroy() argument
87 while ((tritem = __switchdev_trans_item_dequeue(trans))) in switchdev_trans_items_destroy()
92 struct switchdev_trans *trans) in switchdev_trans_items_warn_destroy() argument
94 WARN(!list_empty(&trans->item_list), "%s: transaction item queue is not empty.\n", in switchdev_trans_items_warn_destroy()
96 switchdev_trans_items_destroy(trans); in switchdev_trans_items_warn_destroy()
222 struct switchdev_trans *trans) in __switchdev_port_attr_set() argument
230 err = ops->switchdev_port_attr_set(dev, attr, trans); in __switchdev_port_attr_set()
243 err = __switchdev_port_attr_set(lower_dev, attr, trans); in __switchdev_port_attr_set()
258 struct switchdev_trans trans; in switchdev_port_attr_set_now() local
261 switchdev_trans_init(&trans); in switchdev_port_attr_set_now()
270 trans.ph_prepare = true; in switchdev_port_attr_set_now()
271 err = __switchdev_port_attr_set(dev, attr, &trans); in switchdev_port_attr_set_now()
279 switchdev_trans_items_destroy(&trans); in switchdev_port_attr_set_now()
289 trans.ph_prepare = false; in switchdev_port_attr_set_now()
290 err = __switchdev_port_attr_set(dev, attr, &trans); in switchdev_port_attr_set_now()
293 switchdev_trans_items_warn_destroy(dev, &trans); in switchdev_port_attr_set_now()
357 struct switchdev_trans *trans) in __switchdev_port_obj_add() argument
365 return ops->switchdev_port_obj_add(dev, obj, trans); in __switchdev_port_obj_add()
373 err = __switchdev_port_obj_add(lower_dev, obj, trans); in __switchdev_port_obj_add()
384 struct switchdev_trans trans; in switchdev_port_obj_add_now() local
389 switchdev_trans_init(&trans); in switchdev_port_obj_add_now()
398 trans.ph_prepare = true; in switchdev_port_obj_add_now()
399 err = __switchdev_port_obj_add(dev, obj, &trans); in switchdev_port_obj_add_now()
407 switchdev_trans_items_destroy(&trans); in switchdev_port_obj_add_now()
417 trans.ph_prepare = false; in switchdev_port_obj_add_now()
418 err = __switchdev_port_obj_add(dev, obj, &trans); in switchdev_port_obj_add_now()
420 switchdev_trans_items_warn_destroy(dev, &trans); in switchdev_port_obj_add_now()