search for: has_cvq

Displaying 20 results from an estimated 130 matches for "has_cvq".

2019 Dec 21
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...ers/net/virtio_net.c > index 4d7d5434cc5d..709bcd34e485 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > u64 offloads; > int err; > > + if (!vi->has_cvq) > + return 0; > + Instead of checking for this in virtnet_set_features, how about we make configurability contingent on cvq in virtnet_probe: - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) + if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_O...
2019 Dec 21
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...ers/net/virtio_net.c > index 4d7d5434cc5d..709bcd34e485 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > u64 offloads; > int err; > > + if (!vi->has_cvq) > + return 0; > + Instead of checking for this in virtnet_set_features, how about we make configurability contingent on cvq in virtnet_probe: - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) + if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_O...
2014 Apr 21
2
[PATCH] virtio_net: return error when there is no virtqueue or MQ isn't support
...-git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 8a852b5..eaf8266 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1053,7 +1053,7 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) struct net_device *dev = vi->dev; if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) - return 0; + return -ENOTSUPP; s.virtqueue_pairs = queue_pairs; sg_init_one(&sg, &s, sizeof(s)); -- 1.9.0
2014 Apr 21
2
[PATCH] virtio_net: return error when there is no virtqueue or MQ isn't support
...-git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 8a852b5..eaf8266 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1053,7 +1053,7 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) struct net_device *dev = vi->dev; if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) - return 0; + return -ENOTSUPP; s.virtqueue_pairs = queue_pairs; sg_init_one(&sg, &s, sizeof(s)); -- 1.9.0
2019 Dec 22
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...> > --- a/drivers/net/virtio_net.c > > > +++ b/drivers/net/virtio_net.c > > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > > u64 offloads; > > > int err; > > > > > > + if (!vi->has_cvq) > > > + return 0; > > > + > > > > Instead of checking for this in virtnet_set_features, how about we > > make configurability contingent on cvq in virtnet_probe: > > > > - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLO...
2019 Dec 22
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...> > --- a/drivers/net/virtio_net.c > > > +++ b/drivers/net/virtio_net.c > > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > > u64 offloads; > > > int err; > > > > > > + if (!vi->has_cvq) > > > + return 0; > > > + > > > > Instead of checking for this in virtnet_set_features, how about we > > make configurability contingent on cvq in virtnet_probe: > > > > - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLO...
2019 Dec 22
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...; > +++ b/drivers/net/virtio_net.c > > > > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > > > > u64 offloads; > > > > > int err; > > > > > > > > > > + if (!vi->has_cvq) > > > > > + return 0; > > > > > + > > > > > > > > Instead of checking for this in virtnet_set_features, how about we > > > > make configurability contingent on cvq in virtnet_probe: > > > > > > > &...
2019 Dec 22
2
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...; > +++ b/drivers/net/virtio_net.c > > > > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > > > > u64 offloads; > > > > > int err; > > > > > > > > > > + if (!vi->has_cvq) > > > > > + return 0; > > > > > + > > > > > > > > Instead of checking for this in virtnet_set_features, how about we > > > > make configurability contingent on cvq in virtnet_probe: > > > > > > > &...
2014 Apr 22
2
[PATCH] virtio_net: return error when there is no virtqueue or MQ isn't support
...ndex 8a852b5..eaf8266 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -1053,7 +1053,7 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) > > struct net_device *dev = vi->dev; > > > > if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) > > - return 0; > > + return -ENOTSUPP; > > > > s.virtqueue_pairs = queue_pairs; > > sg_init_one(&sg, &s, sizeof(s)); > > How about check the return value of virtnet_set_queues() in > virtn...
2014 Apr 22
2
[PATCH] virtio_net: return error when there is no virtqueue or MQ isn't support
...ndex 8a852b5..eaf8266 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -1053,7 +1053,7 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) > > struct net_device *dev = vi->dev; > > > > if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) > > - return 0; > > + return -ENOTSUPP; > > > > s.virtqueue_pairs = queue_pairs; > > sg_init_one(&sg, &s, sizeof(s)); > > How about check the return value of virtnet_set_queues() in > virtn...
2017 Mar 29
2
[PATCH 4/6] virtio_net: allow specifying context for rx
...= kmalloc(total_vqs * sizeof(*names), GFP_KERNEL); if (!names) goto err_names; + if (vi->mergeable_rx_bufs) { + ctx = kzalloc(total_vqs * sizeof(*ctx), GFP_KERNEL); + if (!ctx) + goto err_ctx; + } else { + ctx = NULL; + } /* Parameters for control virtqueue, if any */ if (vi->has_cvq) { @@ -2077,9 +2085,12 @@ static int virtnet_find_vqs(struct virtnet_info *vi) sprintf(vi->sq[i].name, "output.%d", i); names[rxq2vq(i)] = vi->rq[i].name; names[txq2vq(i)] = vi->sq[i].name; + if (ctx) + ctx[rxq2vq(i)] = true; } - ret = virtio_find_vqs(vi->vdev,...
2017 Mar 29
2
[PATCH 4/6] virtio_net: allow specifying context for rx
...= kmalloc(total_vqs * sizeof(*names), GFP_KERNEL); if (!names) goto err_names; + if (vi->mergeable_rx_bufs) { + ctx = kzalloc(total_vqs * sizeof(*ctx), GFP_KERNEL); + if (!ctx) + goto err_ctx; + } else { + ctx = NULL; + } /* Parameters for control virtqueue, if any */ if (vi->has_cvq) { @@ -2077,9 +2085,12 @@ static int virtnet_find_vqs(struct virtnet_info *vi) sprintf(vi->sq[i].name, "output.%d", i); names[rxq2vq(i)] = vi->rq[i].name; names[txq2vq(i)] = vi->sq[i].name; + if (ctx) + ctx[rxq2vq(i)] = true; } - ret = virtio_find_vqs(vi->vdev,...
2013 Jun 06
4
[PATCH] virtio-net: put virtio net header inline with data
...| 6 +++++- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index c9e0038..d35a097 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -106,6 +106,9 @@ struct virtnet_info { /* Has control virtqueue */ bool has_cvq; + /* Host can handle any s/g split between our header and packet data */ + bool any_header_sg; + /* enable config space updates */ bool config_enable; @@ -668,12 +671,28 @@ static void free_old_xmit_skbs(struct send_queue *sq) static int xmit_skb(struct send_queue *sq, struct sk_buff *s...
2013 Jun 06
4
[PATCH] virtio-net: put virtio net header inline with data
...| 6 +++++- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index c9e0038..d35a097 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -106,6 +106,9 @@ struct virtnet_info { /* Has control virtqueue */ bool has_cvq; + /* Host can handle any s/g split between our header and packet data */ + bool any_header_sg; + /* enable config space updates */ bool config_enable; @@ -668,12 +671,28 @@ static void free_old_xmit_skbs(struct send_queue *sq) static int xmit_skb(struct send_queue *sq, struct sk_buff *s...
2016 Jun 02
1
[PATCH -next 2/2] virtio_net: Read the advised MTU
...rtio_net.c b/drivers/net/virtio_net.c > index e0638e5..ef5ee01 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1896,6 +1896,12 @@ static int virtnet_probe(struct virtio_device *vdev) > if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ)) > vi->has_cvq = true; > > + if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) { > + dev->mtu = virtio_cread16(vdev, > + offsetof(struct virtio_net_config, > + mtu)); > + } > + > if (vi->any_header_sg) > dev->needed_headroom = vi->hdr_len; > > @@...
2016 Jun 02
1
[PATCH -next 2/2] virtio_net: Read the advised MTU
...rtio_net.c b/drivers/net/virtio_net.c > index e0638e5..ef5ee01 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -1896,6 +1896,12 @@ static int virtnet_probe(struct virtio_device *vdev) > if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_VQ)) > vi->has_cvq = true; > > + if (virtio_has_feature(vdev, VIRTIO_NET_F_MTU)) { > + dev->mtu = virtio_cread16(vdev, > + offsetof(struct virtio_net_config, > + mtu)); > + } > + > if (vi->any_header_sg) > dev->needed_headroom = vi->hdr_len; > > @@...
2013 Jul 03
4
[PATCH net] virtio-net: fix the race between channels setting and refill
...x c9e0038..47b4882 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -901,7 +901,6 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) struct scatterlist sg; struct virtio_net_ctrl_mq s; struct net_device *dev = vi->dev; - int i; if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) return 0; @@ -915,10 +914,8 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) queue_pairs); return -EINVAL; } else { - for (i = vi->curr_queue_pairs; i < queue_pairs; i++) - if (!try_fill_recv(&...
2013 Jul 03
4
[PATCH net] virtio-net: fix the race between channels setting and refill
...x c9e0038..47b4882 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -901,7 +901,6 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) struct scatterlist sg; struct virtio_net_ctrl_mq s; struct net_device *dev = vi->dev; - int i; if (!vi->has_cvq || !virtio_has_feature(vi->vdev, VIRTIO_NET_F_MQ)) return 0; @@ -915,10 +914,8 @@ static int virtnet_set_queues(struct virtnet_info *vi, u16 queue_pairs) queue_pairs); return -EINVAL; } else { - for (i = vi->curr_queue_pairs; i < queue_pairs; i++) - if (!try_fill_recv(&...
2019 Dec 22
1
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...t; > > > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > > > > > > u64 offloads; > > > > > > > int err; > > > > > > > > > > > > > > + if (!vi->has_cvq) > > > > > > > + return 0; > > > > > > > + > > > > > > > > > > > > Instead of checking for this in virtnet_set_features, how about we > > > > > > make configurability contingent on cvq in v...
2019 Dec 22
0
[PATCH net] virtio-net: Skip set_features on non-cvq devices
...d5434cc5d..709bcd34e485 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -2560,6 +2560,9 @@ static int virtnet_set_features(struct net_device *dev, > > u64 offloads; > > int err; > > > > + if (!vi->has_cvq) > > + return 0; > > + > > Instead of checking for this in virtnet_set_features, how about we > make configurability contingent on cvq in virtnet_probe: > > - if (virtio_has_feature(vdev, VIRTIO_NET_F_CTRL_GUEST_OFFLOADS)) > + if (virtio_has...