Revision 35277d14 hw/vhost_net.c

b/hw/vhost_net.c
42 42
    struct vhost_dev dev;
43 43
    struct vhost_virtqueue vqs[2];
44 44
    int backend;
45
    NetClientState *vc;
45
    NetClientState *nc;
46 46
};
47 47

  
48 48
unsigned vhost_net_get_features(struct vhost_net *net, unsigned features)
......
104 104
    if (r < 0) {
105 105
        goto fail;
106 106
    }
107
    net->vc = backend;
107
    net->nc = backend;
108 108
    net->dev.backend_features = tap_has_vnet_hdr(backend) ? 0 :
109 109
        (1 << VHOST_NET_F_VIRTIO_NET_HDR);
110 110
    net->backend = r;
......
151 151
        goto fail_notifiers;
152 152
    }
153 153
    if (net->dev.acked_features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
154
        tap_set_vnet_hdr_len(net->vc,
154
        tap_set_vnet_hdr_len(net->nc,
155 155
                             sizeof(struct virtio_net_hdr_mrg_rxbuf));
156 156
    }
157 157

  
......
160 160
        goto fail_start;
161 161
    }
162 162

  
163
    net->vc->info->poll(net->vc, false);
163
    net->nc->info->poll(net->nc, false);
164 164
    qemu_set_fd_handler(net->backend, NULL, NULL, NULL);
165 165
    file.fd = net->backend;
166 166
    for (file.index = 0; file.index < net->dev.nvqs; ++file.index) {
......
177 177
        int r = ioctl(net->dev.control, VHOST_NET_SET_BACKEND, &file);
178 178
        assert(r >= 0);
179 179
    }
180
    net->vc->info->poll(net->vc, true);
180
    net->nc->info->poll(net->nc, true);
181 181
    vhost_dev_stop(&net->dev, dev);
182 182
    if (net->dev.acked_features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
183
        tap_set_vnet_hdr_len(net->vc, sizeof(struct virtio_net_hdr));
183
        tap_set_vnet_hdr_len(net->nc, sizeof(struct virtio_net_hdr));
184 184
    }
185 185
fail_start:
186 186
    vhost_dev_disable_notifiers(&net->dev, dev);
......
197 197
        int r = ioctl(net->dev.control, VHOST_NET_SET_BACKEND, &file);
198 198
        assert(r >= 0);
199 199
    }
200
    net->vc->info->poll(net->vc, true);
200
    net->nc->info->poll(net->nc, true);
201 201
    vhost_dev_stop(&net->dev, dev);
202 202
    if (net->dev.acked_features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
203
        tap_set_vnet_hdr_len(net->vc, sizeof(struct virtio_net_hdr));
203
        tap_set_vnet_hdr_len(net->nc, sizeof(struct virtio_net_hdr));
204 204
    }
205 205
    vhost_dev_disable_notifiers(&net->dev, dev);
206 206
}
......
209 209
{
210 210
    vhost_dev_cleanup(&net->dev);
211 211
    if (net->dev.acked_features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {
212
        tap_set_vnet_hdr_len(net->vc, sizeof(struct virtio_net_hdr));
212
        tap_set_vnet_hdr_len(net->nc, sizeof(struct virtio_net_hdr));
213 213
    }
214 214
    g_free(net);
215 215
}

Also available in: Unified diff