struct nlattr *est, struct tc_action **a,
                              const struct tc_action_ops *ops, int bind,
                              u32 flags);
-void tcf_idr_insert_many(struct tc_action *actions[]);
+void tcf_idr_insert_many(struct tc_action *actions[], int init_res[]);
 void tcf_idr_cleanup(struct tc_action_net *tn, u32 index);
 int tcf_idr_check_alloc(struct tc_action_net *tn, u32 *index,
                        struct tc_action **a, int bind);
 
        [TCA_ACT_HW_STATS]      = NLA_POLICY_BITFIELD32(TCA_ACT_HW_STATS_ANY),
 };
 
-void tcf_idr_insert_many(struct tc_action *actions[])
+void tcf_idr_insert_many(struct tc_action *actions[], int init_res[])
 {
        struct tc_action *a;
        int i;
        tcf_act_for_each_action(i, a, actions) {
                struct tcf_idrinfo *idrinfo;
 
+               if (init_res[i] == 0) /* Bound */
+                       continue;
+
                idrinfo = a->idrinfo;
                mutex_lock(&idrinfo->lock);
-               /* Replace ERR_PTR(-EBUSY) allocated by tcf_idr_check_alloc if
-                * it is just created, otherwise this is just a nop.
-                */
+               /* Replace ERR_PTR(-EBUSY) allocated by tcf_idr_check_alloc */
                idr_replace(&idrinfo->action_idr, a, a->tcfa_index);
                mutex_unlock(&idrinfo->lock);
        }
        /* We have to commit them all together, because if any error happened in
         * between, we could not handle the failure gracefully.
         */
-       tcf_idr_insert_many(actions);
+       tcf_idr_insert_many(actions, init_res);
 
        *attr_size = tcf_action_full_attrs_size(sz);
        err = i - 1;
 
                        act->type = exts->type = TCA_OLD_COMPAT;
                        exts->actions[0] = act;
                        exts->nr_actions = 1;
-                       tcf_idr_insert_many(exts->actions);
+                       tcf_idr_insert_many(exts->actions, init_res);
                } else if (exts->action && tb[exts->action]) {
                        int err;