qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 0/4] Trivial branch for 6.0 patches
@ 2021-01-18 11:32 Laurent Vivier
  2021-01-18 11:32 ` [PULL 1/4] hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Laurent Vivier @ 2021-01-18 11:32 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-trivial, Michael Tokarev, Laurent Vivier

The following changes since commit e0cbcf1eea16e81f116560130a1b36da711fb102:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (=
2021-01-17 17:04:40 +0000)

are available in the Git repository at:

  git://github.com/vivier/qemu.git tags/trivial-branch-for-6.0-pull-request

for you to fetch changes up to 580e733321511ab4eda7d6ca14ca157d71ea8728:

  hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR) (2021-01-18 11=
:51:26 +0100)

----------------------------------------------------------------
Trivial patches 20210118

Fix memory leaks
Use qemu_log_mask(GUEST_ERROR) rather than error_report().

----------------------------------------------------------------

Gan Qixin (2):
  pl031: Use timer_free() in the finalize function to avoid memleaks
  misc/mos6522: Use timer_free() in the finalize function to avoid
    memleak

Philippe Mathieu-Daud=C3=A9 (2):
  hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR)
  hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR)

 hw/ide/ahci.c          | 8 +++++---
 hw/misc/mos6522.c      | 9 +++++++++
 hw/rtc/pl031.c         | 8 ++++++++
 hw/virtio/virtio-pci.c | 6 ++++--
 4 files changed, 26 insertions(+), 5 deletions(-)

--=20
2.29.2



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PULL 1/4] hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR)
  2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
@ 2021-01-18 11:32 ` Laurent Vivier
  2021-01-18 11:32 ` [PULL 2/4] pl031: Use timer_free() in the finalize function to avoid memleaks Laurent Vivier
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2021-01-18 11:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, qemu-trivial, Michael Tokarev, Laurent Vivier,
	Philippe Mathieu-Daudé,
	Stefano Garzarella

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Replace I/O write error reported with error_report() by
qemu_log_mask(GUEST_ERROR) which allow filtering.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20201210172834.178052-1-philmd@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/virtio/virtio-pci.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index f863f69ede4f..094c36aa3ea3 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -27,6 +27,7 @@
 #include "hw/qdev-properties.h"
 #include "qapi/error.h"
 #include "qemu/error-report.h"
+#include "qemu/log.h"
 #include "qemu/module.h"
 #include "hw/pci/msi.h"
 #include "hw/pci/msix.h"
@@ -365,8 +366,9 @@ static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val)
         virtio_queue_set_vector(vdev, vdev->queue_sel, val);
         break;
     default:
-        error_report("%s: unexpected address 0x%x value 0x%x",
-                     __func__, addr, val);
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "%s: unexpected address 0x%x value 0x%x\n",
+                      __func__, addr, val);
         break;
     }
 }
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PULL 2/4] pl031: Use timer_free() in the finalize function to avoid memleaks
  2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
  2021-01-18 11:32 ` [PULL 1/4] hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
@ 2021-01-18 11:32 ` Laurent Vivier
  2021-01-18 11:32 ` [PULL 3/4] misc/mos6522: Use timer_free() in the finalize function to avoid memleak Laurent Vivier
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2021-01-18 11:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, qemu-trivial, Michael Tokarev, Laurent Vivier,
	Gan Qixin, Euler Robot

From: Gan Qixin <ganqixin@huawei.com>

When running device-introspect-test, a memory leak occurred in the pl031_init
function, this patch use timer_free() in the finalize function to fix it.

ASAN shows memory leak stack:

Direct leak of 48 byte(s) in 1 object(s) allocated from:
    #0 0xffffab97e1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
    #1 0xffffab256800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
    #2 0xaaabf5621cfc in timer_new_full qemu/include/qemu/timer.h:523
    #3 0xaaabf5621cfc in timer_new qemu/include/qemu/timer.h:544
    #4 0xaaabf5621cfc in timer_new_ns qemu/include/qemu/timer.h:562
    #5 0xaaabf5621cfc in pl031_init qemu/hw/rtc/pl031.c:194
    #6 0xaaabf6339f6c in object_initialize_with_type qemu/qom/object.c:515
    #7 0xaaabf633a1e0 in object_new_with_type qemu/qom/object.c:729
    #8 0xaaabf6375e40 in qmp_device_list_properties qemu/qom/qom-qmp-cmds.c:153
    #9 0xaaabf5a95540 in qdev_device_help qemu/softmmu/qdev-monitor.c:283
    #10 0xaaabf5a96940 in qmp_device_add qemu/softmmu/qdev-monitor.c:801
    #11 0xaaabf5a96e70 in hmp_device_add qemu/softmmu/qdev-monitor.c:916
    #12 0xaaabf5ac0a2c in handle_hmp_command qemu/monitor/hmp.c:1100

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Gan Qixin <ganqixin@huawei.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210112112705.380534-2-ganqixin@huawei.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/rtc/pl031.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/hw/rtc/pl031.c b/hw/rtc/pl031.c
index ae47f09635da..2bbb2062ac85 100644
--- a/hw/rtc/pl031.c
+++ b/hw/rtc/pl031.c
@@ -194,6 +194,13 @@ static void pl031_init(Object *obj)
     s->timer = timer_new_ns(rtc_clock, pl031_interrupt, s);
 }
 
+static void pl031_finalize(Object *obj)
+{
+    PL031State *s = PL031(obj);
+
+    timer_free(s->timer);
+}
+
 static int pl031_pre_save(void *opaque)
 {
     PL031State *s = opaque;
@@ -329,6 +336,7 @@ static const TypeInfo pl031_info = {
     .parent        = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(PL031State),
     .instance_init = pl031_init,
+    .instance_finalize = pl031_finalize,
     .class_init    = pl031_class_init,
 };
 
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PULL 3/4] misc/mos6522: Use timer_free() in the finalize function to avoid memleak
  2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
  2021-01-18 11:32 ` [PULL 1/4] hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
  2021-01-18 11:32 ` [PULL 2/4] pl031: Use timer_free() in the finalize function to avoid memleaks Laurent Vivier
@ 2021-01-18 11:32 ` Laurent Vivier
  2021-01-18 11:32 ` [PULL 4/4] hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
  2021-01-18 16:30 ` [PULL 0/4] Trivial branch for 6.0 patches Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2021-01-18 11:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, qemu-trivial, Michael Tokarev, Laurent Vivier,
	Gan Qixin, Euler Robot, David Gibson

From: Gan Qixin <ganqixin@huawei.com>

When running device-introspect-test, a memory leak occurred in the mos6522_init
function, this patch use timer_free() in the finalize function to fix it.

ASAN shows memory leak stack:

Direct leak of 96 byte(s) in 2 object(s) allocated from:
    #0 0xfffd5fe9e1f0 in __interceptor_calloc (/lib64/libasan.so.5+0xee1f0)
    #1 0xfffd5f7b6800 in g_malloc0 (/lib64/libglib-2.0.so.0+0x56800)
    #2 0xaaae50303d0c in timer_new_full qemu/include/qemu/timer.h:523
    #3 0xaaae50303d0c in timer_new qemu/include/qemu/timer.h:544
    #4 0xaaae50303d0c in timer_new_ns qemu/include/qemu/timer.h:562
    #5 0xaaae50303d0c in mos6522_init qemu/hw/misc/mos6522.c:490
    #6 0xaaae50b77d70 in object_init_with_type qemu/qom/object.c:371
    #7 0xaaae50b7ae84 in object_initialize_with_type qemu/qom/object.c:515
    #8 0xaaae50b7b0f8 in object_new_with_type qemu/qom/object.c:729
    #9 0xaaae50bb6d58 in qmp_device_list_properties qemu/qom/qom-qmp-cmds.c:153
    #10 0xaaae50d7e1dc in qmp_marshal_device_list_properties qemu/qapi/qapi-commands-qdev.c:59
    #11 0xaaae50dc87a0 in do_qmp_dispatch_bh qemu/qapi/qmp-dispatch.c:110
    #12 0xaaae50d931a0 in aio_bh_call qemu/util/async.c:136

Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Gan Qixin <ganqixin@huawei.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20210112112705.380534-3-ganqixin@huawei.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/misc/mos6522.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/hw/misc/mos6522.c b/hw/misc/mos6522.c
index ac4cd1d58ebe..1c57332b4004 100644
--- a/hw/misc/mos6522.c
+++ b/hw/misc/mos6522.c
@@ -490,6 +490,14 @@ static void mos6522_init(Object *obj)
     s->timers[1].timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, mos6522_timer2, s);
 }
 
+static void mos6522_finalize(Object *obj)
+{
+    MOS6522State *s = MOS6522(obj);
+
+    timer_free(s->timers[0].timer);
+    timer_free(s->timers[1].timer);
+}
+
 static Property mos6522_properties[] = {
     DEFINE_PROP_UINT64("frequency", MOS6522State, frequency, 0),
     DEFINE_PROP_END_OF_LIST()
@@ -519,6 +527,7 @@ static const TypeInfo mos6522_type_info = {
     .parent = TYPE_SYS_BUS_DEVICE,
     .instance_size = sizeof(MOS6522State),
     .instance_init = mos6522_init,
+    .instance_finalize = mos6522_finalize,
     .abstract = true,
     .class_size = sizeof(MOS6522DeviceClass),
     .class_init = mos6522_class_init,
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PULL 4/4] hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR)
  2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
                   ` (2 preceding siblings ...)
  2021-01-18 11:32 ` [PULL 3/4] misc/mos6522: Use timer_free() in the finalize function to avoid memleak Laurent Vivier
@ 2021-01-18 11:32 ` Laurent Vivier
  2021-01-18 16:30 ` [PULL 0/4] Trivial branch for 6.0 patches Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Laurent Vivier @ 2021-01-18 11:32 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-trivial, Philippe Mathieu-Daudé,
	Thomas Huth, Michael Tokarev, Laurent Vivier

From: Philippe Mathieu-Daudé <philmd@redhat.com>

Replace fprintf() calls by qemu_log_mask(LOG_GUEST_ERROR).

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20210112112955.1849212-1-philmd@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/ide/ahci.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 4b675b9cfd8d..6d50482b8d1a 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -465,8 +465,9 @@ static void ahci_mem_write(void *opaque, hwaddr addr,
 
     /* Only aligned reads are allowed on AHCI */
     if (addr & 3) {
-        fprintf(stderr, "ahci: Mis-aligned write to addr 0x"
-                TARGET_FMT_plx "\n", addr);
+        qemu_log_mask(LOG_GUEST_ERROR,
+                      "ahci: Mis-aligned write to addr 0x%03" HWADDR_PRIX "\n",
+                      addr);
         return;
     }
 
@@ -1111,7 +1112,8 @@ static void process_ncq_command(AHCIState *s, int port, uint8_t *cmd_fis,
     g_assert(is_ncq(ncq_fis->command));
     if (ncq_tfs->used) {
         /* error - already in use */
-        fprintf(stderr, "%s: tag %d already used\n", __func__, tag);
+        qemu_log_mask(LOG_GUEST_ERROR, "%s: tag %d already used\n",
+                      __func__, tag);
         return;
     }
 
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PULL 0/4] Trivial branch for 6.0 patches
  2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
                   ` (3 preceding siblings ...)
  2021-01-18 11:32 ` [PULL 4/4] hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
@ 2021-01-18 16:30 ` Peter Maydell
  4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2021-01-18 16:30 UTC (permalink / raw)
  To: Laurent Vivier; +Cc: QEMU Trivial, Michael Tokarev, QEMU Developers

On Mon, 18 Jan 2021 at 11:34, Laurent Vivier <laurent@vivier.eu> wrote:
>
> The following changes since commit e0cbcf1eea16e81f116560130a1b36da711fb102:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (=
> 2021-01-17 17:04:40 +0000)
>
> are available in the Git repository at:
>
>   git://github.com/vivier/qemu.git tags/trivial-branch-for-6.0-pull-request
>
> for you to fetch changes up to 580e733321511ab4eda7d6ca14ca157d71ea8728:
>
>   hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR) (2021-01-18 11=
> :51:26 +0100)
>
> ----------------------------------------------------------------
> Trivial patches 20210118
>
> Fix memory leaks
> Use qemu_log_mask(GUEST_ERROR) rather than error_report().
>
> ----------------------------------------------------------------
>
> Gan Qixin (2):
>   pl031: Use timer_free() in the finalize function to avoid memleaks
>   misc/mos6522: Use timer_free() in the finalize function to avoid
>     memleak
>
> Philippe Mathieu-Daud=C3=A9 (2):
>   hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR)
>   hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR)

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-01-18 16:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-18 11:32 [PULL 0/4] Trivial branch for 6.0 patches Laurent Vivier
2021-01-18 11:32 ` [PULL 1/4] hw/virtio-pci: Replace error_report() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
2021-01-18 11:32 ` [PULL 2/4] pl031: Use timer_free() in the finalize function to avoid memleaks Laurent Vivier
2021-01-18 11:32 ` [PULL 3/4] misc/mos6522: Use timer_free() in the finalize function to avoid memleak Laurent Vivier
2021-01-18 11:32 ` [PULL 4/4] hw/ide/ahci: Replace fprintf() by qemu_log_mask(GUEST_ERROR) Laurent Vivier
2021-01-18 16:30 ` [PULL 0/4] Trivial branch for 6.0 patches Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).