act_api.c (16af6067392c40e454e49eec834843ab03643d96) act_api.c (4e8ddd7f1758ca4ddd0c1f7cf3e66fce736241d2)
1/*
2 * net/sched/act_api.c Packet action API.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 856 unchanged lines hidden (view full) ---

865 act = tcf_action_init_1(net, tp, tb[i], est, name, ovr, bind,
866 rtnl_held, extack);
867 if (IS_ERR(act)) {
868 err = PTR_ERR(act);
869 goto err;
870 }
871 act->order = i;
872 sz += tcf_action_fill_size(act);
1/*
2 * net/sched/act_api.c Packet action API.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 856 unchanged lines hidden (view full) ---

865 act = tcf_action_init_1(net, tp, tb[i], est, name, ovr, bind,
866 rtnl_held, extack);
867 if (IS_ERR(act)) {
868 err = PTR_ERR(act);
869 goto err;
870 }
871 act->order = i;
872 sz += tcf_action_fill_size(act);
873 if (ovr)
874 refcount_inc(&act->tcfa_refcnt);
875 list_add_tail(&act->list, actions);
876 }
877
878 *attr_size = tcf_action_full_attrs_size(sz);
879
880 /* Remove the temp refcnt which was necessary to protect against
881 * destroying an existing action which was being replaced
882 */

--- 779 unchanged lines hidden ---
873 list_add_tail(&act->list, actions);
874 }
875
876 *attr_size = tcf_action_full_attrs_size(sz);
877
878 /* Remove the temp refcnt which was necessary to protect against
879 * destroying an existing action which was being replaced
880 */

--- 779 unchanged lines hidden ---