Lines Matching defs:vi
97 static int virtcrypto_find_vqs(struct virtio_crypto *vi)
104 struct device *dev = &vi->vdev->dev;
111 total_vqs = vi->max_data_queues + 1;
129 for (i = 0; i < vi->max_data_queues; i++) {
131 snprintf(vi->data_vq[i].name, sizeof(vi->data_vq[i].name),
133 names[i] = vi->data_vq[i].name;
136 ret = virtio_find_vqs(vi->vdev, total_vqs, vqs, callbacks, names, NULL);
140 vi->ctrl_vq = vqs[total_vqs - 1];
142 for (i = 0; i < vi->max_data_queues; i++) {
143 spin_lock_init(&vi->data_vq[i].lock);
144 vi->data_vq[i].vq = vqs[i];
146 vi->data_vq[i].engine = crypto_engine_alloc_init_and_set(dev, true, NULL, true,
148 if (!vi->data_vq[i].engine) {
152 tasklet_init(&vi->data_vq[i].done_task, virtcrypto_done_task,
153 (unsigned long)&vi->data_vq[i]);
173 static int virtcrypto_alloc_queues(struct virtio_crypto *vi)
175 vi->data_vq = kcalloc(vi->max_data_queues, sizeof(*vi->data_vq),
177 if (!vi->data_vq)
183 static void virtcrypto_clean_affinity(struct virtio_crypto *vi, long hcpu)
187 if (vi->affinity_hint_set) {
188 for (i = 0; i < vi->max_data_queues; i++)
189 virtqueue_set_affinity(vi->data_vq[i].vq, NULL);
191 vi->affinity_hint_set = false;
224 static void virtcrypto_free_queues(struct virtio_crypto *vi)
226 kfree(vi->data_vq);
229 static int virtcrypto_init_vqs(struct virtio_crypto *vi)
234 ret = virtcrypto_alloc_queues(vi);
238 ret = virtcrypto_find_vqs(vi);
243 virtcrypto_set_affinity(vi);
249 virtcrypto_free_queues(vi);