Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1200365 > unrolled thread
| Started by | Jason Wang <jasowang@redhat.com> |
|---|---|
| First post | 2015-08-05 04:40 +0200 |
| Last post | 2015-08-07 09:20 +0200 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST Jason Wang <jasowang@redhat.com> - 2015-08-05 04:40 +0200
Re: [PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST "Michael S. Tsirkin" <mst@redhat.com> - 2015-08-05 08:40 +0200
Re: [PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST "Michael S. Tsirkin" <mst@redhat.com> - 2015-08-06 15:20 +0200
Re: [PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST David Miller <davem@davemloft.net> - 2015-08-07 00:50 +0200
Re: [PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST David Miller <davem@davemloft.net> - 2015-08-07 09:20 +0200
| From | Jason Wang <jasowang@redhat.com> |
|---|---|
| Date | 2015-08-05 04:40 +0200 |
| Subject | [PATCH net V2] virtio-net: drop NETIF_F_FRAGLIST |
| Message-ID | <pTWMy-4FP-21@gated-at.bofh.it> |
virtio declares support for NETIF_F_FRAGLIST, but assumes
that there are at most MAX_SKB_FRAGS + 2 fragments which isn't
always true with a fraglist.
A longer fraglist in the skb will make the call to skb_to_sgvec overflow
the sg array, leading to memory corruption.
Drop NETIF_F_FRAGLIST so we only get what we can handle.
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
- Change from V1: coding style fixes.
- The patch is needed for stable.
---
drivers/net/virtio_net.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 7fbca37..237f8e5 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1756,9 +1756,9 @@ static int virtnet_probe(struct virtio_device *vdev)
/* Do we support "hardware" checksums? */
if (virtio_has_feature(vdev, VIRTIO_NET_F_CSUM)) {
/* This opens up the world of extra features. */
- dev->hw_features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
+ dev->hw_features |= NETIF_F_HW_CSUM | NETIF_F_SG;
if (csum)
- dev->features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
+ dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2015-08-05 08:40 +0200 |
| Message-ID | <pU0wO-1Fr-5@gated-at.bofh.it> |
| In reply to | #1200365 |
On Wed, Aug 05, 2015 at 10:34:04AM +0800, Jason Wang wrote:
> virtio declares support for NETIF_F_FRAGLIST, but assumes
> that there are at most MAX_SKB_FRAGS + 2 fragments which isn't
> always true with a fraglist.
>
> A longer fraglist in the skb will make the call to skb_to_sgvec overflow
> the sg array, leading to memory corruption.
>
> Drop NETIF_F_FRAGLIST so we only get what we can handle.
>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> - Change from V1: coding style fixes.
> - The patch is needed for stable.
> ---
> drivers/net/virtio_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7fbca37..237f8e5 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -1756,9 +1756,9 @@ static int virtnet_probe(struct virtio_device *vdev)
> /* Do we support "hardware" checksums? */
> if (virtio_has_feature(vdev, VIRTIO_NET_F_CSUM)) {
> /* This opens up the world of extra features. */
> - dev->hw_features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
> + dev->hw_features |= NETIF_F_HW_CSUM | NETIF_F_SG;
> if (csum)
> - dev->features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
> + dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
>
> if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
> dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
> --
> 2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2015-08-06 15:20 +0200 |
| Message-ID | <pUtfr-1yv-1@gated-at.bofh.it> |
| In reply to | #1200365 |
On Wed, Aug 05, 2015 at 10:34:04AM +0800, Jason Wang wrote:
> virtio declares support for NETIF_F_FRAGLIST, but assumes
> that there are at most MAX_SKB_FRAGS + 2 fragments which isn't
> always true with a fraglist.
>
> A longer fraglist in the skb will make the call to skb_to_sgvec overflow
> the sg array, leading to memory corruption.
>
> Drop NETIF_F_FRAGLIST so we only get what we can handle.
>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
I noticed only now that this didn't Cc Dave, so of course it's
not applied. I'm preparing a pull request anyway, so
I'll merge this through my tree, and add Cc stable.
Dave - ok with you?
> ---
> - Change from V1: coding style fixes.
> - The patch is needed for stable.
> ---
> drivers/net/virtio_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 7fbca37..237f8e5 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -1756,9 +1756,9 @@ static int virtnet_probe(struct virtio_device *vdev)
> /* Do we support "hardware" checksums? */
> if (virtio_has_feature(vdev, VIRTIO_NET_F_CSUM)) {
> /* This opens up the world of extra features. */
> - dev->hw_features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
> + dev->hw_features |= NETIF_F_HW_CSUM | NETIF_F_SG;
> if (csum)
> - dev->features |= NETIF_F_HW_CSUM|NETIF_F_SG|NETIF_F_FRAGLIST;
> + dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
>
> if (virtio_has_feature(vdev, VIRTIO_NET_F_GSO)) {
> dev->hw_features |= NETIF_F_TSO | NETIF_F_UFO
> --
> 2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-08-07 00:50 +0200 |
| Message-ID | <pUC94-5Xj-5@gated-at.bofh.it> |
| In reply to | #1201719 |
From: "Michael S. Tsirkin" <mst@redhat.com> Date: Thu, 6 Aug 2015 16:13:11 +0300 > On Wed, Aug 05, 2015 at 10:34:04AM +0800, Jason Wang wrote: >> virtio declares support for NETIF_F_FRAGLIST, but assumes >> that there are at most MAX_SKB_FRAGS + 2 fragments which isn't >> always true with a fraglist. >> >> A longer fraglist in the skb will make the call to skb_to_sgvec overflow >> the sg array, leading to memory corruption. >> >> Drop NETIF_F_FRAGLIST so we only get what we can handle. >> >> Cc: Michael S. Tsirkin <mst@redhat.com> >> Signed-off-by: Jason Wang <jasowang@redhat.com> > > I noticed only now that this didn't Cc Dave, so of course it's > not applied. CC:'ing me isn't the requirement. CC:'ing netdev is, which he did. If you check patchwork, it's there in the queue. I'm just behind and heavily backlogged because I've been working on other things. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2015-08-07 09:20 +0200 |
| Message-ID | <pUK6D-N5-47@gated-at.bofh.it> |
| In reply to | #1200365 |
From: Jason Wang <jasowang@redhat.com> Date: Wed, 5 Aug 2015 10:34:04 +0800 > virtio declares support for NETIF_F_FRAGLIST, but assumes > that there are at most MAX_SKB_FRAGS + 2 fragments which isn't > always true with a fraglist. > > A longer fraglist in the skb will make the call to skb_to_sgvec overflow > the sg array, leading to memory corruption. > > Drop NETIF_F_FRAGLIST so we only get what we can handle. > > Cc: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Jason Wang <jasowang@redhat.com> Applied, thanks Jason. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web