All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Fam Zheng <famz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	Jason Wang <jasowang@redhat.com>,
	QEMU Developers <qemu-devel@nongnu.org>,
	qemu-stable <qemu-stable@nongnu.org>,
	Anthony Liguori <aliguori@amazon.com>
Subject: Re: [Qemu-devel] [2.2 PATCH V2] virtio-net: fix unmap leak
Date: Thu, 27 Nov 2014 17:03:39 +0200	[thread overview]
Message-ID: <20141127150339.GA26331@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1411271450340.14135@kaball.uk.xensource.com>

On Thu, Nov 27, 2014 at 02:54:47PM +0000, Stefano Stabellini wrote:
> On Thu, 27 Nov 2014, Peter Maydell wrote:
> > On 27 November 2014 at 12:42, Peter Maydell <peter.maydell@linaro.org> wrote:
> > > On 27 November 2014 at 12:33, Michael S. Tsirkin <mst@redhat.com> wrote:
> > >> On Thu, Nov 27, 2014 at 06:04:03PM +0800, Jason Wang wrote:
> > >>> virtio_net_handle_ctrl() and other functions that process control vq
> > >>> request call iov_discard_front() which will shorten the iov. This will
> > >>> lead unmapping in virtqueue_push() leaks mapping.
> > >>>
> > >>> Fixes this by keeping the original iov untouched and using a temp variable
> > >>> in those functions.
> > >>>
> > >>> Cc: Wen Congyang <wency@cn.fujitsu.com>
> > >>> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > >>> Cc: qemu-stable@nongnu.org
> > >>> Signed-off-by: Jason Wang <jasowang@redhat.com>
> > >>
> > >> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> > >>
> > >> Peter, can you pick this up or do you want a pull request?
> > >
> > > I can pick it up. I was waiting a bit to check that everybody
> > > was happy that this is the correct way to fix the bug and the
> > > patch is ok...
> > 
> > ...but discussing this with Stefan H on IRC we realised that the same
> > issue also (at least potentially) affects virtio-blk, which suggests
> > that we should fix this by making the core virtio code cope with
> > backends which modify the sglists.
> 
> I think that a similar patch could be produced against
> hw/block/virtio-blk.c:virtio_blk_handle_request

Hmm, this is a data path operation. Adding malloc/free calls
there will slow things down measureably.

> Alternatively my series would help by introducing virtqueue_unmap_sg and
> moving it out of virtqueue_fill. We could call virtqueue_unmap_sg from
> the drivers (instead of calling it from virtqueue_push) and that would
> solve the issue.

  reply	other threads:[~2014-11-27 15:04 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27 10:04 [Qemu-devel] [2.2 PATCH V2] virtio-net: fix unmap leak Jason Wang
2014-11-27 10:28 ` Stefano Stabellini
2014-11-27 10:31 ` Fam Zheng
2014-11-27 12:33 ` Michael S. Tsirkin
2014-11-27 12:42   ` Peter Maydell
2014-11-27 12:46     ` [Qemu-devel] [2.2 PATCH V2 for-4.5] " Stefano Stabellini
2014-11-27 14:09     ` [Qemu-devel] [2.2 PATCH V2] " Peter Maydell
2014-11-27 14:45       ` Michael S. Tsirkin
2014-11-27 14:54       ` Stefano Stabellini
2014-11-27 15:03         ` Michael S. Tsirkin [this message]
2014-11-27 16:40       ` Michael S. Tsirkin
2014-11-28 13:05 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141127150339.GA26331@redhat.com \
    --to=mst@redhat.com \
    --cc=aliguori@amazon.com \
    --cc=famz@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-stable@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=stefano.stabellini@eu.citrix.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.