summaryrefslogtreecommitdiff
path: root/lib/bbdev
diff options
context:
space:
mode:
authorNicolas Chautru <[email protected]>2023-06-15 16:49:00 +0000
committerMaxime Coquelin <[email protected]>2023-09-21 14:21:18 +0200
commite797d0095084f7aefd31ae917550d51911d6c35e (patch)
tree3af60abf31936aca9ecada5810ed0095cce75061 /lib/bbdev
parentf4e6c4ef080bf7f7af1c43e8ae0a1d583ca305bd (diff)
bbdev: improve error handling for queue configuration
Refactor of the error handling based on available priority queue to be more generic. Signed-off-by: Nicolas Chautru <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]>
Diffstat (limited to 'lib/bbdev')
-rw-r--r--lib/bbdev/rte_bbdev.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/bbdev/rte_bbdev.c b/lib/bbdev/rte_bbdev.c
index 6b17c58298..155323e6ca 100644
--- a/lib/bbdev/rte_bbdev.c
+++ b/lib/bbdev/rte_bbdev.c
@@ -441,6 +441,7 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
const struct rte_bbdev_op_cap *p;
struct rte_bbdev_queue_conf *stored_conf;
const char *op_type_str;
+ unsigned int max_priority;
VALID_DEV_OR_RET_ERR(dev, dev_id);
VALID_DEV_OPS_OR_RET_ERR(dev, dev_id);
@@ -494,20 +495,16 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
conf->queue_size, queue_id, dev_id);
return -EINVAL;
}
- if (conf->op_type == RTE_BBDEV_OP_TURBO_DEC &&
- conf->priority > dev_info.max_ul_queue_priority) {
+ if ((uint8_t)conf->op_type >= RTE_BBDEV_OP_TYPE_SIZE_MAX) {
rte_bbdev_log(ERR,
- "Priority (%u) of queue %u of bbdev %u must be <= %u",
- conf->priority, queue_id, dev_id,
- dev_info.max_ul_queue_priority);
+ "Invalid operation type (%u) ", conf->op_type);
return -EINVAL;
}
- if (conf->op_type == RTE_BBDEV_OP_TURBO_ENC &&
- conf->priority > dev_info.max_dl_queue_priority) {
+ max_priority = dev_info.queue_priority[conf->op_type];
+ if (conf->priority > max_priority) {
rte_bbdev_log(ERR,
"Priority (%u) of queue %u of bbdev %u must be <= %u",
- conf->priority, queue_id, dev_id,
- dev_info.max_dl_queue_priority);
+ conf->priority, queue_id, dev_id, max_priority);
return -EINVAL;
}
}