Skip to content

Commit 210a70f

Browse files
Jiri Pirkomstsirkin
authored andcommitted
virtio_crypto: convert to use virtio_find_vqs_info()
Instead of passing separate names and callbacks arrays to virtio_find_vqs(), allocate one of virtual_queue_info structs and pass it to virtio_find_vqs_info(). Suggested-by: Xuan Zhuo <[email protected]> Signed-off-by: Jiri Pirko <[email protected]> Message-Id: <[email protected]> Signed-off-by: Michael S. Tsirkin <[email protected]>
1 parent cd54c62 commit 210a70f

File tree

1 file changed

+12
-19
lines changed

1 file changed

+12
-19
lines changed

drivers/crypto/virtio/virtio_crypto_core.c

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,10 @@ static void virtcrypto_dataq_callback(struct virtqueue *vq)
9696

9797
static int virtcrypto_find_vqs(struct virtio_crypto *vi)
9898
{
99-
vq_callback_t **callbacks;
99+
struct virtqueue_info *vqs_info;
100100
struct virtqueue **vqs;
101101
int ret = -ENOMEM;
102102
int i, total_vqs;
103-
const char **names;
104103
struct device *dev = &vi->vdev->dev;
105104

106105
/*
@@ -114,26 +113,23 @@ static int virtcrypto_find_vqs(struct virtio_crypto *vi)
114113
vqs = kcalloc(total_vqs, sizeof(*vqs), GFP_KERNEL);
115114
if (!vqs)
116115
goto err_vq;
117-
callbacks = kcalloc(total_vqs, sizeof(*callbacks), GFP_KERNEL);
118-
if (!callbacks)
119-
goto err_callback;
120-
names = kcalloc(total_vqs, sizeof(*names), GFP_KERNEL);
121-
if (!names)
122-
goto err_names;
116+
vqs_info = kcalloc(total_vqs, sizeof(*vqs_info), GFP_KERNEL);
117+
if (!vqs_info)
118+
goto err_vqs_info;
123119

124120
/* Parameters for control virtqueue */
125-
callbacks[total_vqs - 1] = virtcrypto_ctrlq_callback;
126-
names[total_vqs - 1] = "controlq";
121+
vqs_info[total_vqs - 1].callback = virtcrypto_ctrlq_callback;
122+
vqs_info[total_vqs - 1].name = "controlq";
127123

128124
/* Allocate/initialize parameters for data virtqueues */
129125
for (i = 0; i < vi->max_data_queues; i++) {
130-
callbacks[i] = virtcrypto_dataq_callback;
126+
vqs_info[i].callback = virtcrypto_dataq_callback;
131127
snprintf(vi->data_vq[i].name, sizeof(vi->data_vq[i].name),
132128
"dataq.%d", i);
133-
names[i] = vi->data_vq[i].name;
129+
vqs_info[i].name = vi->data_vq[i].name;
134130
}
135131

136-
ret = virtio_find_vqs(vi->vdev, total_vqs, vqs, callbacks, names, NULL);
132+
ret = virtio_find_vqs_info(vi->vdev, total_vqs, vqs, vqs_info, NULL);
137133
if (ret)
138134
goto err_find;
139135

@@ -153,18 +149,15 @@ static int virtcrypto_find_vqs(struct virtio_crypto *vi)
153149
(unsigned long)&vi->data_vq[i]);
154150
}
155151

156-
kfree(names);
157-
kfree(callbacks);
152+
kfree(vqs_info);
158153
kfree(vqs);
159154

160155
return 0;
161156

162157
err_engine:
163158
err_find:
164-
kfree(names);
165-
err_names:
166-
kfree(callbacks);
167-
err_callback:
159+
kfree(vqs_info);
160+
err_vqs_info:
168161
kfree(vqs);
169162
err_vq:
170163
return ret;

0 commit comments

Comments
 (0)