[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 3/8] fw_cfg: fix FW_CFG_BOOT_DEVICE update on ppc
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL v2 3/8] fw_cfg: fix FW_CFG_BOOT_DEVICE update on ppc and sparc |
Date: |
Tue, 9 Jun 2015 14:27:30 +0200 |
From: "Gabriel L. Somlo" <address@hidden>
On ppc, sparc, and sparc64, the value of the FW_CFG_BOOT_DEVICE 16bit
fw_cfg entry is repeatedly modified from a series of callbacks, which
currently results in the previous value's dynamically allocated memory
being leaked.
This patch switches updating to the new fw_cfg_modify_i16() call, which
does not cause memory leaks.
Signed-off-by: Gabriel Somlo <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/ppc/mac_newworld.c | 2 +-
hw/ppc/mac_oldworld.c | 2 +-
hw/sparc/sun4m.c | 2 +-
hw/sparc64/sun4u.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index a365bf9..0f3e341 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -119,7 +119,7 @@ static const MemoryRegionOps unin_ops = {
static void fw_cfg_boot_set(void *opaque, const char *boot_device,
Error **errp)
{
- fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
+ fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
}
static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index f26133d..99879dd 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -52,7 +52,7 @@
static void fw_cfg_boot_set(void *opaque, const char *boot_device,
Error **errp)
{
- fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
+ fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
}
static uint64_t translate_kernel_address(void *opaque, uint64_t addr)
diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c
index 8a3599c..68ac4d8 100644
--- a/hw/sparc/sun4m.c
+++ b/hw/sparc/sun4m.c
@@ -124,7 +124,7 @@ void DMA_register_channel (int nchan,
static void fw_cfg_boot_set(void *opaque, const char *boot_device,
Error **errp)
{
- fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
+ fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
}
static void nvram_init(Nvram *nvram, uint8_t *macaddr,
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 6f34e87..30cfa0e 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -127,7 +127,7 @@ void DMA_register_channel (int nchan,
static void fw_cfg_boot_set(void *opaque, const char *boot_device,
Error **errp)
{
- fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
+ fw_cfg_modify_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]);
}
static int sun4u_NVRAM_set_params(Nvram *nvram, uint16_t NVRAM_size,
--
1.8.3.1
- [Qemu-devel] [PULL v2 0/8] fw_cfg patch queue, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 1/8] QemuOpts: increase number of vm_config_groups, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 5/8] fw_cfg: prevent selector key conflict, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 6/8] fw_cfg: prohibit insertion of duplicate fw_cfg file names, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 3/8] fw_cfg: fix FW_CFG_BOOT_DEVICE update on ppc and sparc,
Gerd Hoffmann <=
- [Qemu-devel] [PULL v2 2/8] fw_cfg: add fw_cfg_modify_i16 (update) method, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 8/8] bios-tables-test: handle false-positive smbios signature matches, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 7/8] fw_cfg: insert fw_cfg file blobs via qemu cmdline, Gerd Hoffmann, 2015/06/09
- [Qemu-devel] [PULL v2 4/8] fw_cfg: remove support for guest-side data writes, Gerd Hoffmann, 2015/06/09
- Re: [Qemu-devel] [PULL v2 0/8] fw_cfg patch queue, Peter Maydell, 2015/06/09