* [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).