From: Anthony Liguori <anthony@codemonkey.ws>
To: Herve Poussineau <hpoussin@reactos.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] win32: pair qemu_memalign() with qemu_vfree()
Date: Tue, 26 Jan 2010 18:07:06 -0600 [thread overview]
Message-ID: <4B5F83AA.5000408@codemonkey.ws> (raw)
In-Reply-To: <1264368236-3024-1-git-send-email-hpoussin@reactos.org>
On 01/24/2010 03:23 PM, Herve Poussineau wrote:
> Win32 suffers from a very big memory leak when dealing with SCSI devices.
> Each read/write request allocates memory with qemu_memalign (ie
> VirtualAlloc) but frees it with qemu_free (ie free).
> Pair all qemu_memalign() calls with qemu_vfree() to prevent such leaks.
>
> Signed-off-by: Herve Poussineau<hpoussin@reactos.org>
>
Applied. Thanks.
Regards,
Anthony Liguori
> ---
> block.c | 2 +-
> block/raw-posix.c | 2 +-
> exec.c | 2 +-
> hw/scsi-disk.c | 2 +-
> qemu-nbd.c | 2 +-
> 5 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/block.c b/block.c
> index 73c26ec..6e440b7 100644
> --- a/block.c
> +++ b/block.c
> @@ -1629,7 +1629,7 @@ static void multiwrite_user_cb(MultiwriteCB *mcb)
> for (i = 0; i< mcb->num_callbacks; i++) {
> mcb->callbacks[i].cb(mcb->callbacks[i].opaque, mcb->error);
> qemu_free(mcb->callbacks[i].free_qiov);
> - qemu_free(mcb->callbacks[i].free_buf);
> + qemu_vfree(mcb->callbacks[i].free_buf);
> }
> }
>
> diff --git a/block/raw-posix.c b/block/raw-posix.c
> index 52bbcda..b4ff841 100644
> --- a/block/raw-posix.c
> +++ b/block/raw-posix.c
> @@ -595,7 +595,7 @@ static void raw_close(BlockDriverState *bs)
> close(s->fd);
> s->fd = -1;
> if (s->aligned_buf != NULL)
> - qemu_free(s->aligned_buf);
> + qemu_vfree(s->aligned_buf);
> }
> }
>
> diff --git a/exec.c b/exec.c
> index 1190591..76831a1 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3309,7 +3309,7 @@ void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len,
> if (is_write) {
> cpu_physical_memory_write(bounce.addr, bounce.buffer, access_len);
> }
> - qemu_free(bounce.buffer);
> + qemu_vfree(bounce.buffer);
> bounce.buffer = NULL;
> cpu_notify_map_clients();
> }
> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
> index e3924de..b34fbaa 100644
> --- a/hw/scsi-disk.c
> +++ b/hw/scsi-disk.c
> @@ -81,7 +81,7 @@ static SCSIDiskReq *scsi_new_request(SCSIDevice *d, uint32_t tag, uint32_t lun)
>
> static void scsi_remove_request(SCSIDiskReq *r)
> {
> - qemu_free(r->iov.iov_base);
> + qemu_vfree(r->iov.iov_base);
> scsi_req_free(&r->req);
> }
>
> diff --git a/qemu-nbd.c b/qemu-nbd.c
> index 4463679..eac0c21 100644
> --- a/qemu-nbd.c
> +++ b/qemu-nbd.c
> @@ -469,7 +469,7 @@ int main(int argc, char **argv)
> }
> }
> } while (persistent || nb_fds> 1);
> - qemu_free(data);
> + qemu_vfree(data);
>
> close(sharing_fds[0]);
> bdrv_close(bs);
>
prev parent reply other threads:[~2010-01-27 0:07 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-24 21:23 [Qemu-devel] [PATCH] win32: pair qemu_memalign() with qemu_vfree() Herve Poussineau
2010-01-27 0:07 ` Anthony Liguori [this message]
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=4B5F83AA.5000408@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=hpoussin@reactos.org \
--cc=qemu-devel@nongnu.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.