char *oneact;
        char *actions;
 
-       if (WARN_ON(block->finished))
-               return NULL;
+       if (block->finished)
+               return ERR_PTR(-EINVAL);
        if (block->cur_act_index + action_size >
            block->afa->max_acts_per_set) {
                struct mlxsw_afa_set *set;
                 */
                set = mlxsw_afa_set_create(false);
                if (!set)
-                       return NULL;
+                       return ERR_PTR(-ENOBUFS);
                set->prev = block->cur_set;
                block->cur_act_index = 0;
                block->cur_set->next = set;
                                                  MLXSW_AFA_VLAN_CODE,
                                                  MLXSW_AFA_VLAN_SIZE);
 
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_vlan_pack(act, MLXSW_AFA_VLAN_VLAN_TAG_CMD_NOP,
                            MLXSW_AFA_VLAN_CMD_SET_OUTER, vid,
                            MLXSW_AFA_VLAN_CMD_SET_OUTER, pcp,
                                                  MLXSW_AFA_TRAPDISC_CODE,
                                                  MLXSW_AFA_TRAPDISC_SIZE);
 
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_NOP,
                                MLXSW_AFA_TRAPDISC_FORWARD_ACTION_DISCARD, 0);
        return 0;
                                                  MLXSW_AFA_TRAPDISC_CODE,
                                                  MLXSW_AFA_TRAPDISC_SIZE);
 
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_TRAP,
                                MLXSW_AFA_TRAPDISC_FORWARD_ACTION_DISCARD,
                                trap_id);
                                                  MLXSW_AFA_TRAPDISC_CODE,
                                                  MLXSW_AFA_TRAPDISC_SIZE);
 
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_TRAP,
                                MLXSW_AFA_TRAPDISC_FORWARD_ACTION_FORWARD,
                                trap_id);
        char *act = mlxsw_afa_block_append_action(block,
                                                  MLXSW_AFA_TRAPDISC_CODE,
                                                  MLXSW_AFA_TRAPDISC_SIZE);
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_trapdisc_pack(act, MLXSW_AFA_TRAPDISC_TRAP_ACTION_NOP,
                                MLXSW_AFA_TRAPDISC_FORWARD_ACTION_FORWARD, 0);
        mlxsw_afa_trapdisc_mirror_pack(act, true, mirror_agent);
 
        act = mlxsw_afa_block_append_action(block, MLXSW_AFA_FORWARD_CODE,
                                            MLXSW_AFA_FORWARD_SIZE);
-       if (!act) {
-               err = -ENOBUFS;
+       if (IS_ERR(act)) {
+               err = PTR_ERR(act);
                goto err_append_action;
        }
        mlxsw_afa_forward_pack(act, MLXSW_AFA_FORWARD_TYPE_PBS,
 {
        char *act = mlxsw_afa_block_append_action(block, MLXSW_AFA_POLCNT_CODE,
                                                  MLXSW_AFA_POLCNT_SIZE);
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_polcnt_pack(act, MLXSW_AFA_POLCNT_COUNTER_SET_TYPE_PACKETS_BYTES,
                              counter_index);
        return 0;
        char *act = mlxsw_afa_block_append_action(block,
                                                  MLXSW_AFA_VIRFWD_CODE,
                                                  MLXSW_AFA_VIRFWD_SIZE);
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_virfwd_pack(act, MLXSW_AFA_VIRFWD_FID_CMD_SET, fid);
        return 0;
 }
        char *act = mlxsw_afa_block_append_action(block,
                                                  MLXSW_AFA_MCROUTER_CODE,
                                                  MLXSW_AFA_MCROUTER_SIZE);
-       if (!act)
-               return -ENOBUFS;
+       if (IS_ERR(act))
+               return PTR_ERR(act);
        mlxsw_afa_mcrouter_pack(act, MLXSW_AFA_MCROUTER_RPF_ACTION_TRAP,
                                expected_irif, min_mtu, rmid_valid, kvdl_index);
        return 0;