*/
        }
 
-       mutex_lock(&ctx->queue->queuelock);
+       spin_lock_bh(&ctx->queue->queuelock);
        /* Put the IV in place for chained cases */
        switch (ctx->cipher_alg) {
        case SEC_C_AES_CBC_128:
                        list_del(&backlog_req->backlog_head);
                }
        }
-       mutex_unlock(&ctx->queue->queuelock);
+       spin_unlock_bh(&ctx->queue->queuelock);
 
        mutex_lock(&sec_req->lock);
        list_del(&sec_req_el->head);
         */
 
        /* Grab a big lock for a long time to avoid concurrency issues */
-       mutex_lock(&queue->queuelock);
+       spin_lock_bh(&queue->queuelock);
 
        /*
         * Can go on to queue if we have space in either:
                ret = -EBUSY;
                if ((skreq->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG)) {
                        list_add_tail(&sec_req->backlog_head, &ctx->backlog);
-                       mutex_unlock(&queue->queuelock);
+                       spin_unlock_bh(&queue->queuelock);
                        goto out;
                }
 
-               mutex_unlock(&queue->queuelock);
+               spin_unlock_bh(&queue->queuelock);
                goto err_free_elements;
        }
        ret = sec_send_request(sec_req, queue);
-       mutex_unlock(&queue->queuelock);
+       spin_unlock_bh(&queue->queuelock);
        if (ret)
                goto err_free_elements;
 
        if (IS_ERR(ctx->queue))
                return PTR_ERR(ctx->queue);
 
-       mutex_init(&ctx->queue->queuelock);
+       spin_lock_init(&ctx->queue->queuelock);
        ctx->queue->havesoftqueue = false;
 
        return 0;