From: Rafael Aquini <aquini@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH v2] virtio_balloon: leak_balloon(): only tell host if we got pages deflated
Date: Thu, 6 Jun 2013 11:13:58 -0300 [thread overview]
Message-ID: <20130606141357.GD30387@optiplex.redhat.com> (raw)
In-Reply-To: <20130605211837.1fc9b902@redhat.com>
On Wed, Jun 05, 2013 at 09:18:37PM -0400, Luiz Capitulino wrote:
> The balloon_page_dequeue() function can return NULL. If it does for
> the first page being freed, then leak_balloon() will create a
> scatter list with len=0. Which in turn seems to generate an invalid
> virtio request.
>
> I didn't get this in practice, I found it by code review. On the other
> hand, such an invalid virtio request will cause errors in QEMU and
> fill_balloon() also performs the same check implemented by this commit.
>
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> Acked-by: Rafael Aquini <aquini@redhat.com>
> ---
>
> o v2
>
> - Improve changelog
>
> drivers/virtio/virtio_balloon.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index bd3ae32..71af7b5 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -191,7 +191,8 @@ static void leak_balloon(struct virtio_balloon *vb, size_t num)
> * virtio_has_feature(vdev, VIRTIO_BALLOON_F_MUST_TELL_HOST);
> * is true, we *have* to do it in this order
> */
> - tell_host(vb, vb->deflate_vq);
Luiz, sorry for not being clearer before. I was referring to add a commentary on
code, to explain in short words why we should not get rid of this check point.
> + if (vb->num_pfns != 0)
> + tell_host(vb, vb->deflate_vq);
> mutex_unlock(&vb->balloon_lock);
If the comment is regarded as unnecessary, then just ignore my suggestion. I'm
OK with your patch. :)
Cheers!
-- Rafael
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Rafael Aquini <aquini@redhat.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH v2] virtio_balloon: leak_balloon(): only tell host if we got pages deflated
Date: Thu, 6 Jun 2013 11:13:58 -0300 [thread overview]
Message-ID: <20130606141357.GD30387@optiplex.redhat.com> (raw)
In-Reply-To: <20130605211837.1fc9b902@redhat.com>
On Wed, Jun 05, 2013 at 09:18:37PM -0400, Luiz Capitulino wrote:
> The balloon_page_dequeue() function can return NULL. If it does for
> the first page being freed, then leak_balloon() will create a
> scatter list with len=0. Which in turn seems to generate an invalid
> virtio request.
>
> I didn't get this in practice, I found it by code review. On the other
> hand, such an invalid virtio request will cause errors in QEMU and
> fill_balloon() also performs the same check implemented by this commit.
>
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> Acked-by: Rafael Aquini <aquini@redhat.com>
> ---
>
> o v2
>
> - Improve changelog
>
> drivers/virtio/virtio_balloon.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index bd3ae32..71af7b5 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -191,7 +191,8 @@ static void leak_balloon(struct virtio_balloon *vb, size_t num)
> * virtio_has_feature(vdev, VIRTIO_BALLOON_F_MUST_TELL_HOST);
> * is true, we *have* to do it in this order
> */
> - tell_host(vb, vb->deflate_vq);
Luiz, sorry for not being clearer before. I was referring to add a commentary on
code, to explain in short words why we should not get rid of this check point.
> + if (vb->num_pfns != 0)
> + tell_host(vb, vb->deflate_vq);
> mutex_unlock(&vb->balloon_lock);
If the comment is regarded as unnecessary, then just ignore my suggestion. I'm
OK with your patch. :)
Cheers!
-- Rafael
next prev parent reply other threads:[~2013-06-06 14:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-06 1:18 [PATCH v2] virtio_balloon: leak_balloon(): only tell host if we got pages deflated Luiz Capitulino
2013-06-06 1:18 ` Luiz Capitulino
2013-06-06 14:13 ` Rafael Aquini [this message]
2013-06-06 14:13 ` Rafael Aquini
2013-06-06 14:19 ` Luiz Capitulino
2013-06-06 14:19 ` Luiz Capitulino
2013-06-17 17:17 ` Luiz Capitulino
2013-06-17 17:17 ` Luiz Capitulino
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=20130606141357.GD30387@optiplex.redhat.com \
--to=aquini@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/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.