On Mon, May 26, 2014 at 12:04:08PM +0200, Jiri Pirko wrote: > It indicates the number of elements in ncs field and makes sense to have > int inside NICPeers. Also in parse_netdev we do not need to access > container and work with NICPeers only. > > Signed-off-by: Jiri Pirko <j...@resnulli.us>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Please note that at least for virtio these are combined rx/tx queues. We probably should make this clear somewhere. > --- > hw/core/qdev-properties-system.c | 3 +-- > hw/net/virtio-net.c | 2 +- > include/net/net.h | 2 +- > net/net.c | 4 ++-- > 4 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/hw/core/qdev-properties-system.c > b/hw/core/qdev-properties-system.c > index 404cf18..3fd592c 100644 > --- a/hw/core/qdev-properties-system.c > +++ b/hw/core/qdev-properties-system.c > @@ -180,7 +180,6 @@ PropertyInfo qdev_prop_chr = { > static int parse_netdev(DeviceState *dev, const char *str, void **ptr) > { > NICPeers *peers_ptr = (NICPeers *)ptr; > - NICConf *conf = container_of(peers_ptr, NICConf, peers); > NetClientState **ncs = peers_ptr->ncs; > NetClientState *peers[MAX_QUEUE_NUM]; > int queues, i = 0; > @@ -219,7 +218,7 @@ static int parse_netdev(DeviceState *dev, const char > *str, void **ptr) > ncs[i]->queue_index = i; > } > > - conf->queues = queues; > + peers_ptr->queues = queues; > > return 0; > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index 940a7cf..b4cb277 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -1533,7 +1533,7 @@ static void virtio_net_device_realize(DeviceState *dev, > Error **errp) > > virtio_init(vdev, "virtio-net", VIRTIO_ID_NET, n->config_size); > > - n->max_queues = MAX(n->nic_conf.queues, 1); > + n->max_queues = MAX(n->nic_conf.peers.queues, 1); > n->vqs = g_malloc0(sizeof(VirtIONetQueue) * n->max_queues); > n->vqs[0].rx_vq = virtio_add_queue(vdev, 256, virtio_net_handle_rx); > n->curr_queues = 1; > diff --git a/include/net/net.h b/include/net/net.h > index 8166345..8a1db8a 100644 > --- a/include/net/net.h > +++ b/include/net/net.h > @@ -24,13 +24,13 @@ struct MACAddr { > > typedef struct NICPeers { > NetClientState *ncs[MAX_QUEUE_NUM]; > + int32_t queues; > } NICPeers; > > typedef struct NICConf { > MACAddr macaddr; > NICPeers peers; > int32_t bootindex; > - int32_t queues; > } NICConf; > > #define DEFINE_NIC_PROPERTIES(_state, _conf) \ > diff --git a/net/net.c b/net/net.c > index 0ff2e40..0246818 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -233,7 +233,7 @@ NICState *qemu_new_nic(NetClientInfo *info, > { > NetClientState **peers = conf->peers.ncs; > NICState *nic; > - int i, queues = MAX(1, conf->queues); > + int i, queues = MAX(1, conf->peers.queues); > > assert(info->type == NET_CLIENT_OPTIONS_KIND_NIC); > assert(info->size >= sizeof(NICState)); > @@ -346,7 +346,7 @@ void qemu_del_net_client(NetClientState *nc) > > void qemu_del_nic(NICState *nic) > { > - int i, queues = MAX(nic->conf->queues, 1); > + int i, queues = MAX(nic->conf->peers.queues, 1); > > /* If this is a peer NIC and peer has already been deleted, free it now. > */ > if (nic->peer_deleted) { > -- > 1.9.0