X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_compressdev%2Frte_comp.c;h=06e3d442ae06bd0703f91e9486d65f53173eff9d;hb=c04172b5f0311ce7af586b6004b1f27993a5cc48;hp=98ad0cfd929634a37819086a42fabfb5101fbcba;hpb=0260571c99e08966dd8eeefc2e44c33b8a14f626;p=dpdk.git diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c index 98ad0cfd92..06e3d442ae 100644 --- a/lib/librte_compressdev/rte_comp.c +++ b/lib/librte_compressdev/rte_comp.c @@ -83,8 +83,8 @@ struct rte_comp_op_pool_private { * @param nb_ops * Number of operations to allocate * @return - * - 0: Success - * - -ENOENT: Not enough entries in the mempool; no ops are retrieved. + * - nb_ops: Success, the nb_ops requested was allocated + * - 0: Not enough entries in the mempool; no ops are retrieved. */ static inline int rte_comp_op_raw_bulk_alloc(struct rte_mempool *mempool, @@ -174,7 +174,7 @@ rte_comp_op_alloc(struct rte_mempool *mempool) int retval; retval = rte_comp_op_raw_bulk_alloc(mempool, &op, 1); - if (unlikely(retval < 0)) + if (unlikely(retval != 1)) return NULL; rte_comp_op_reset(op); @@ -186,12 +186,12 @@ int __rte_experimental rte_comp_op_bulk_alloc(struct rte_mempool *mempool, struct rte_comp_op **ops, uint16_t nb_ops) { - int ret; + int retval; uint16_t i; - ret = rte_comp_op_raw_bulk_alloc(mempool, ops, nb_ops); - if (unlikely(ret < nb_ops)) - return ret; + retval = rte_comp_op_raw_bulk_alloc(mempool, ops, nb_ops); + if (unlikely(retval != nb_ops)) + return 0; for (i = 0; i < nb_ops; i++) rte_comp_op_reset(ops[i]); @@ -213,3 +213,15 @@ rte_comp_op_free(struct rte_comp_op *op) if (op != NULL && op->mempool != NULL) rte_mempool_put(op->mempool, op); } + +void __rte_experimental +rte_comp_op_bulk_free(struct rte_comp_op **ops, uint16_t nb_ops) +{ + uint16_t i; + + for (i = 0; i < nb_ops; i++) { + if (ops[i] != NULL && ops[i]->mempool != NULL) + rte_mempool_put(ops[i]->mempool, ops[i]); + ops[i] = NULL; + } +}