@@ -306,17 +306,19 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
306
306
BusState * qbus = BUS (qdev_get_parent_bus (DEVICE (dev )));
307
307
VirtioBusState * vbus = VIRTIO_BUS (qbus );
308
308
VirtioBusClass * k = VIRTIO_BUS_GET_CLASS (vbus );
309
+ struct vhost_net * net ;
309
310
int r , e , i ;
311
+ NetClientState * peer ;
310
312
311
313
if (!k -> set_guest_notifiers ) {
312
314
error_report ("binding does not support guest notifiers" );
313
315
return - ENOSYS ;
314
316
}
315
317
316
318
for (i = 0 ; i < total_queues ; i ++ ) {
317
- struct vhost_net * net ;
318
319
319
- net = get_vhost_net (ncs [i ].peer );
320
+ peer = qemu_get_peer (ncs , i );
321
+ net = get_vhost_net (peer );
320
322
vhost_net_set_vq_index (net , i * 2 );
321
323
322
324
/* Suppress the masking guest notifiers on vhost user
@@ -335,15 +337,16 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
335
337
}
336
338
337
339
for (i = 0 ; i < total_queues ; i ++ ) {
338
- r = vhost_net_start_one (get_vhost_net (ncs [i ].peer ), dev );
340
+ peer = qemu_get_peer (ncs , i );
341
+ r = vhost_net_start_one (get_vhost_net (peer ), dev );
339
342
340
343
if (r < 0 ) {
341
344
goto err_start ;
342
345
}
343
346
344
- if (ncs [ i ]. peer -> vring_enable ) {
347
+ if (peer -> vring_enable ) {
345
348
/* restore vring enable state */
346
- r = vhost_set_vring_enable (ncs [ i ]. peer , ncs [ i ]. peer -> vring_enable );
349
+ r = vhost_set_vring_enable (peer , peer -> vring_enable );
347
350
348
351
if (r < 0 ) {
349
352
goto err_start ;
@@ -355,7 +358,8 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
355
358
356
359
err_start :
357
360
while (-- i >= 0 ) {
358
- vhost_net_stop_one (get_vhost_net (ncs [i ].peer ), dev );
361
+ peer = qemu_get_peer (ncs , i );
362
+ vhost_net_stop_one (get_vhost_net (peer ), dev );
359
363
}
360
364
e = k -> set_guest_notifiers (qbus -> parent , total_queues * 2 , false);
361
365
if (e < 0 ) {
0 commit comments