Lines Matching full:vi
97 static int virtcrypto_find_vqs(struct virtio_crypto *vi) in virtcrypto_find_vqs() argument
103 struct device *dev = &vi->vdev->dev; in virtcrypto_find_vqs()
110 total_vqs = vi->max_data_queues + 1; in virtcrypto_find_vqs()
125 for (i = 0; i < vi->max_data_queues; i++) { in virtcrypto_find_vqs()
127 snprintf(vi->data_vq[i].name, sizeof(vi->data_vq[i].name), in virtcrypto_find_vqs()
129 vqs_info[i].name = vi->data_vq[i].name; in virtcrypto_find_vqs()
132 ret = virtio_find_vqs(vi->vdev, total_vqs, vqs, vqs_info, NULL); in virtcrypto_find_vqs()
136 vi->ctrl_vq = vqs[total_vqs - 1]; in virtcrypto_find_vqs()
138 for (i = 0; i < vi->max_data_queues; i++) { in virtcrypto_find_vqs()
139 spin_lock_init(&vi->data_vq[i].lock); in virtcrypto_find_vqs()
140 vi->data_vq[i].vq = vqs[i]; in virtcrypto_find_vqs()
142 vi->data_vq[i].engine = crypto_engine_alloc_init_and_set(dev, true, NULL, true, in virtcrypto_find_vqs()
144 if (!vi->data_vq[i].engine) { in virtcrypto_find_vqs()
148 tasklet_init(&vi->data_vq[i].done_task, virtcrypto_done_task, in virtcrypto_find_vqs()
149 (unsigned long)&vi->data_vq[i]); in virtcrypto_find_vqs()
166 static int virtcrypto_alloc_queues(struct virtio_crypto *vi) in virtcrypto_alloc_queues() argument
168 vi->data_vq = kcalloc(vi->max_data_queues, sizeof(*vi->data_vq), in virtcrypto_alloc_queues()
170 if (!vi->data_vq) in virtcrypto_alloc_queues()
176 static void virtcrypto_clean_affinity(struct virtio_crypto *vi, long hcpu) in virtcrypto_clean_affinity() argument
180 if (vi->affinity_hint_set) { in virtcrypto_clean_affinity()
181 for (i = 0; i < vi->max_data_queues; i++) in virtcrypto_clean_affinity()
182 virtqueue_set_affinity(vi->data_vq[i].vq, NULL); in virtcrypto_clean_affinity()
184 vi->affinity_hint_set = false; in virtcrypto_clean_affinity()
217 static void virtcrypto_free_queues(struct virtio_crypto *vi) in virtcrypto_free_queues() argument
219 kfree(vi->data_vq); in virtcrypto_free_queues()
222 static int virtcrypto_init_vqs(struct virtio_crypto *vi) in virtcrypto_init_vqs() argument
227 ret = virtcrypto_alloc_queues(vi); in virtcrypto_init_vqs()
231 ret = virtcrypto_find_vqs(vi); in virtcrypto_init_vqs()
236 virtcrypto_set_affinity(vi); in virtcrypto_init_vqs()
242 virtcrypto_free_queues(vi); in virtcrypto_init_vqs()