Lines Matching defs:queue
232 struct device *dev = ctx->queue->dev_info->dev;
384 static int sec_send_request(struct sec_request *sec_req, struct sec_queue *queue)
392 * Add to hardware queue only under following circumstances
393 * 1) Software and hardware queue empty so no chain dependencies
394 * 2) No dependencies as new IV - (check software queue empty
398 * In other cases first insert onto the software queue which
401 if (!queue->havesoftqueue ||
402 (kfifo_is_empty(&queue->softqueue) &&
403 sec_queue_empty(queue))) {
404 ret = sec_queue_send(queue, &el->req, sec_req);
412 kfifo_put(&queue->softqueue, el);
432 struct device *dev = ctx->queue->dev_info->dev;
447 * on the queue. Error will be reported so requester so
452 spin_lock_bh(&ctx->queue->queuelock);
484 if (ctx->queue->havesoftqueue &&
485 !kfifo_is_empty(&ctx->queue->softqueue) &&
486 sec_queue_empty(ctx->queue)) {
487 ret = kfifo_get(&ctx->queue->softqueue, &nextrequest);
494 sec_queue_send(ctx->queue, &nextrequest->req,
501 if (sec_queue_can_enqueue(ctx->queue,
503 (ctx->queue->havesoftqueue &&
504 kfifo_avail(&ctx->queue->softqueue) >
506 sec_send_request(backlog_req, ctx->queue);
512 spin_unlock_bh(&ctx->queue->queuelock);
517 sec_alg_free_el(sec_req_el, ctx->queue->dev_info);
713 struct sec_queue *queue = ctx->queue;
715 struct sec_dev_info *info = queue->dev_info;
771 /* Set them all up then queue - cleaner error handling. */
792 * Only attempt to queue if the whole lot can fit in the queue -
801 spin_lock_bh(&queue->queuelock);
804 * Can go on to queue if we have space in either:
805 * 1) The hardware queue and no software queue
806 * 2) The software queue
808 * have to only queue to the backlog queue and return busy.
810 if ((!sec_queue_can_enqueue(queue, steps) &&
811 (!queue->havesoftqueue ||
812 kfifo_avail(&queue->softqueue) > steps)) ||
817 spin_unlock_bh(&queue->queuelock);
821 spin_unlock_bh(&queue->queuelock);
824 ret = sec_send_request(sec_req, queue);
825 spin_unlock_bh(&queue->queuelock);
880 ctx->queue = sec_queue_alloc_start_safe();
881 if (IS_ERR(ctx->queue))
882 return PTR_ERR(ctx->queue);
884 spin_lock_init(&ctx->queue->queuelock);
885 ctx->queue->havesoftqueue = false;
893 struct device *dev = ctx->queue->dev_info->dev;
900 sec_queue_stop_release(ctx->queue);
912 INIT_KFIFO(ctx->queue->softqueue);
913 ret = kfifo_alloc(&ctx->queue->softqueue, 512, GFP_KERNEL);
918 ctx->queue->havesoftqueue = true;
927 kfifo_free(&ctx->queue->softqueue);