Lines Matching full:vi

99 static int virtcrypto_find_vqs(struct virtio_crypto *vi)  in virtcrypto_find_vqs()  argument
106 struct device *dev = &vi->vdev->dev; in virtcrypto_find_vqs()
113 total_vqs = vi->max_data_queues + 1; in virtcrypto_find_vqs()
131 for (i = 0; i < vi->max_data_queues; i++) { in virtcrypto_find_vqs()
133 snprintf(vi->data_vq[i].name, sizeof(vi->data_vq[i].name), in virtcrypto_find_vqs()
135 names[i] = vi->data_vq[i].name; in virtcrypto_find_vqs()
138 ret = virtio_find_vqs(vi->vdev, total_vqs, vqs, callbacks, names, NULL); in virtcrypto_find_vqs()
142 vi->ctrl_vq = vqs[total_vqs - 1]; in virtcrypto_find_vqs()
144 for (i = 0; i < vi->max_data_queues; i++) { in virtcrypto_find_vqs()
145 spin_lock_init(&vi->data_vq[i].lock); in virtcrypto_find_vqs()
146 vi->data_vq[i].vq = vqs[i]; in virtcrypto_find_vqs()
148 vi->data_vq[i].engine = crypto_engine_alloc_init_and_set(dev, true, NULL, true, in virtcrypto_find_vqs()
150 if (!vi->data_vq[i].engine) { in virtcrypto_find_vqs()
154 tasklet_init(&vi->data_vq[i].done_task, virtcrypto_done_task, in virtcrypto_find_vqs()
155 (unsigned long)&vi->data_vq[i]); in virtcrypto_find_vqs()
175 static int virtcrypto_alloc_queues(struct virtio_crypto *vi) in virtcrypto_alloc_queues() argument
177 vi->data_vq = kcalloc(vi->max_data_queues, sizeof(*vi->data_vq), in virtcrypto_alloc_queues()
179 if (!vi->data_vq) in virtcrypto_alloc_queues()
185 static void virtcrypto_clean_affinity(struct virtio_crypto *vi, long hcpu) in virtcrypto_clean_affinity() argument
189 if (vi->affinity_hint_set) { in virtcrypto_clean_affinity()
190 for (i = 0; i < vi->max_data_queues; i++) in virtcrypto_clean_affinity()
191 virtqueue_set_affinity(vi->data_vq[i].vq, NULL); in virtcrypto_clean_affinity()
193 vi->affinity_hint_set = false; in virtcrypto_clean_affinity()
226 static void virtcrypto_free_queues(struct virtio_crypto *vi) in virtcrypto_free_queues() argument
228 kfree(vi->data_vq); in virtcrypto_free_queues()
231 static int virtcrypto_init_vqs(struct virtio_crypto *vi) in virtcrypto_init_vqs() argument
236 ret = virtcrypto_alloc_queues(vi); in virtcrypto_init_vqs()
240 ret = virtcrypto_find_vqs(vi); in virtcrypto_init_vqs()
245 virtcrypto_set_affinity(vi); in virtcrypto_init_vqs()
251 virtcrypto_free_queues(vi); in virtcrypto_init_vqs()