Lines Matching refs:vcrypto

22 	struct virtio_crypto *vcrypto;  member
122 struct virtio_crypto *vcrypto = ctx->vcrypto; in virtio_crypto_alg_skcipher_init_session() local
136 spin_lock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_init_session()
138 vcrypto->ctrl.header.opcode = in virtio_crypto_alg_skcipher_init_session()
140 vcrypto->ctrl.header.algo = cpu_to_le32(alg); in virtio_crypto_alg_skcipher_init_session()
142 vcrypto->ctrl.header.queue_id = 0; in virtio_crypto_alg_skcipher_init_session()
144 vcrypto->input.status = cpu_to_le32(VIRTIO_CRYPTO_ERR); in virtio_crypto_alg_skcipher_init_session()
146 vcrypto->ctrl.u.sym_create_session.op_type = in virtio_crypto_alg_skcipher_init_session()
148 vcrypto->ctrl.u.sym_create_session.u.cipher.para.algo = in virtio_crypto_alg_skcipher_init_session()
149 vcrypto->ctrl.header.algo; in virtio_crypto_alg_skcipher_init_session()
150 vcrypto->ctrl.u.sym_create_session.u.cipher.para.keylen = in virtio_crypto_alg_skcipher_init_session()
152 vcrypto->ctrl.u.sym_create_session.u.cipher.para.op = in virtio_crypto_alg_skcipher_init_session()
155 sg_init_one(&outhdr, &vcrypto->ctrl, sizeof(vcrypto->ctrl)); in virtio_crypto_alg_skcipher_init_session()
163 sg_init_one(&inhdr, &vcrypto->input, sizeof(vcrypto->input)); in virtio_crypto_alg_skcipher_init_session()
166 err = virtqueue_add_sgs(vcrypto->ctrl_vq, sgs, num_out, in virtio_crypto_alg_skcipher_init_session()
167 num_in, vcrypto, GFP_ATOMIC); in virtio_crypto_alg_skcipher_init_session()
169 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_init_session()
173 virtqueue_kick(vcrypto->ctrl_vq); in virtio_crypto_alg_skcipher_init_session()
179 while (!virtqueue_get_buf(vcrypto->ctrl_vq, &tmp) && in virtio_crypto_alg_skcipher_init_session()
180 !virtqueue_is_broken(vcrypto->ctrl_vq)) in virtio_crypto_alg_skcipher_init_session()
183 if (le32_to_cpu(vcrypto->input.status) != VIRTIO_CRYPTO_OK) { in virtio_crypto_alg_skcipher_init_session()
184 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_init_session()
186 le32_to_cpu(vcrypto->input.status)); in virtio_crypto_alg_skcipher_init_session()
193 le64_to_cpu(vcrypto->input.session_id); in virtio_crypto_alg_skcipher_init_session()
196 le64_to_cpu(vcrypto->input.session_id); in virtio_crypto_alg_skcipher_init_session()
198 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_init_session()
211 struct virtio_crypto *vcrypto = ctx->vcrypto; in virtio_crypto_alg_skcipher_close_session() local
215 spin_lock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_close_session()
216 vcrypto->ctrl_status.status = VIRTIO_CRYPTO_ERR; in virtio_crypto_alg_skcipher_close_session()
218 vcrypto->ctrl.header.opcode = in virtio_crypto_alg_skcipher_close_session()
221 vcrypto->ctrl.header.queue_id = 0; in virtio_crypto_alg_skcipher_close_session()
223 destroy_session = &vcrypto->ctrl.u.destroy_session; in virtio_crypto_alg_skcipher_close_session()
232 sg_init_one(&outhdr, &vcrypto->ctrl, sizeof(vcrypto->ctrl)); in virtio_crypto_alg_skcipher_close_session()
236 sg_init_one(&status_sg, &vcrypto->ctrl_status.status, in virtio_crypto_alg_skcipher_close_session()
237 sizeof(vcrypto->ctrl_status.status)); in virtio_crypto_alg_skcipher_close_session()
240 err = virtqueue_add_sgs(vcrypto->ctrl_vq, sgs, num_out, in virtio_crypto_alg_skcipher_close_session()
241 num_in, vcrypto, GFP_ATOMIC); in virtio_crypto_alg_skcipher_close_session()
243 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_close_session()
246 virtqueue_kick(vcrypto->ctrl_vq); in virtio_crypto_alg_skcipher_close_session()
248 while (!virtqueue_get_buf(vcrypto->ctrl_vq, &tmp) && in virtio_crypto_alg_skcipher_close_session()
249 !virtqueue_is_broken(vcrypto->ctrl_vq)) in virtio_crypto_alg_skcipher_close_session()
252 if (vcrypto->ctrl_status.status != VIRTIO_CRYPTO_OK) { in virtio_crypto_alg_skcipher_close_session()
253 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_close_session()
255 vcrypto->ctrl_status.status, in virtio_crypto_alg_skcipher_close_session()
260 spin_unlock(&vcrypto->ctrl_lock); in virtio_crypto_alg_skcipher_close_session()
271 struct virtio_crypto *vcrypto = ctx->vcrypto; in virtio_crypto_alg_skcipher_init_sessions() local
273 if (keylen > vcrypto->max_cipher_key_len) { in virtio_crypto_alg_skcipher_init_sessions()
309 if (!ctx->vcrypto) { in virtio_crypto_skcipher_setkey()
312 struct virtio_crypto *vcrypto = in virtio_crypto_skcipher_setkey() local
315 if (!vcrypto) { in virtio_crypto_skcipher_setkey()
320 ctx->vcrypto = vcrypto; in virtio_crypto_skcipher_setkey()
329 virtcrypto_dev_put(ctx->vcrypto); in virtio_crypto_skcipher_setkey()
330 ctx->vcrypto = NULL; in virtio_crypto_skcipher_setkey()
347 struct virtio_crypto *vcrypto = ctx->vcrypto; in __virtio_crypto_skcipher_do_req() local
373 dev_to_node(&vcrypto->vdev->dev)); in __virtio_crypto_skcipher_do_req()
378 dev_to_node(&vcrypto->vdev->dev)); in __virtio_crypto_skcipher_do_req()
415 sizeof(vc_req->status) > vcrypto->max_size)) { in __virtio_crypto_skcipher_do_req()
435 dev_to_node(&vcrypto->vdev->dev)); in __virtio_crypto_skcipher_do_req()
489 struct virtio_crypto *vcrypto = ctx->vcrypto; in virtio_crypto_skcipher_encrypt() local
491 struct data_queue *data_vq = &vcrypto->data_vq[0]; in virtio_crypto_skcipher_encrypt()
514 struct virtio_crypto *vcrypto = ctx->vcrypto; in virtio_crypto_skcipher_decrypt() local
516 struct data_queue *data_vq = &vcrypto->data_vq[0]; in virtio_crypto_skcipher_decrypt()
549 if (!ctx->vcrypto) in virtio_crypto_skcipher_exit()
554 virtcrypto_dev_put(ctx->vcrypto); in virtio_crypto_skcipher_exit()
555 ctx->vcrypto = NULL; in virtio_crypto_skcipher_exit()
616 int virtio_crypto_algs_register(struct virtio_crypto *vcrypto) in virtio_crypto_algs_register() argument
628 if (!virtcrypto_algo_is_supported(vcrypto, service, algonum)) in virtio_crypto_algs_register()
638 dev_info(&vcrypto->vdev->dev, "Registered algo %s\n", in virtio_crypto_algs_register()
647 void virtio_crypto_algs_unregister(struct virtio_crypto *vcrypto) in virtio_crypto_algs_unregister() argument
659 !virtcrypto_algo_is_supported(vcrypto, service, algonum)) in virtio_crypto_algs_unregister()