From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Richard Henderson <rth@twiddle.net>,
Paolo Bonzini <pbonzini@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Igor Mammedov <imammedo@redhat.com>
Subject: [Qemu-devel] [PULL 6/7] pc: memhotplug: keep reserved-memory-end broken on 2.4 and earlier machines
Date: Thu, 10 Sep 2015 12:18:00 +0300 [thread overview]
Message-ID: <1441876643-7467-7-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1441876643-7467-1-git-send-email-mst@redhat.com>
From: Igor Mammedov <imammedo@redhat.com>
it will prevent guests on old machines from seeing
inconsistent memory mapping in firmware/ACPI views.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
---
include/hw/i386/pc.h | 1 +
hw/i386/pc.c | 8 ++++++--
hw/i386/pc_piix.c | 2 ++
hw/i386/pc_q35.c | 2 ++
4 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index d0cad87..ff0b48b 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -59,6 +59,7 @@ struct PCMachineClass {
MachineClass parent_class;
/*< public >*/
+ bool broken_reserved_end;
HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
DeviceState *dev);
};
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 354e1b3..b5107f7 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1412,8 +1412,12 @@ FWCfgState *pc_memory_init(PCMachineState *pcms,
if (guest_info->has_reserved_memory && pcms->hotplug_memory.base) {
uint64_t *val = g_malloc(sizeof(*val));
- uint64_t res_mem_end = pcms->hotplug_memory.base +
- memory_region_size(&pcms->hotplug_memory.mr);
+ PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
+ uint64_t res_mem_end = pcms->hotplug_memory.base;
+
+ if (!pcmc->broken_reserved_end) {
+ res_mem_end += memory_region_size(&pcms->hotplug_memory.mr);
+ }
*val = cpu_to_le64(ROUND_UP(res_mem_end, 0x1ULL << 30));
fw_cfg_add_file(fw_cfg, "etc/reserved-memory-end", val, sizeof(*val));
}
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 117f8dc..eab39fc 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -449,7 +449,9 @@ static void pc_i440fx_machine_options(MachineClass *m)
static void pc_i440fx_2_4_machine_options(MachineClass *m)
{
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_i440fx_machine_options(m);
+ pcmc->broken_reserved_end = true;
m->default_machine_opts = "firmware=bios-256k.bin";
m->default_display = "std";
m->alias = "pc";
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 4b38dee..11601ab 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -368,7 +368,9 @@ static void pc_q35_machine_options(MachineClass *m)
static void pc_q35_2_4_machine_options(MachineClass *m)
{
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_q35_machine_options(m);
+ pcmc->broken_reserved_end = true;
m->default_machine_opts = "firmware=bios-256k.bin";
m->default_display = "std";
m->no_floppy = 1;
--
MST
next prev parent reply other threads:[~2015-09-10 9:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-10 9:17 [Qemu-devel] [PULL 0/7] virtio,pc,acpi fixes, cleanups Michael S. Tsirkin
2015-09-10 9:17 ` [Qemu-devel] [PULL 1/7] pci: Fix pci_device_iommu_address_space() bus propagation Michael S. Tsirkin
2015-09-10 9:17 ` [Qemu-devel] [PULL 2/7] pc: Remove redundant arguments from xen_hvm_init() Michael S. Tsirkin
2015-09-10 9:17 ` Michael S. Tsirkin
2015-09-10 9:17 ` [Qemu-devel] [PULL 3/7] virtio: avoid leading underscores for helpers Michael S. Tsirkin
2015-09-10 9:17 ` [Qemu-devel] [PULL 4/7] acpi: Remove unused definition Michael S. Tsirkin
2015-09-10 9:17 ` [Qemu-devel] [PULL 5/7] pc: memhotplug: fix incorrectly set reserved-memory-end Michael S. Tsirkin
2015-09-10 9:18 ` Michael S. Tsirkin [this message]
2015-09-10 9:18 ` [Qemu-trivial] [PULL 7/7] hw/pci: fix pci_update_mappings() trace events Michael S. Tsirkin
2015-09-10 9:27 ` Michael S. Tsirkin
2015-09-10 9:18 ` [Qemu-devel] " Michael S. Tsirkin
2015-09-10 9:45 ` [Qemu-trivial] " Laszlo Ersek
2015-09-10 9:45 ` [Qemu-devel] " Laszlo Ersek
2015-09-10 9:54 ` [Qemu-trivial] " Michael S. Tsirkin
2015-09-10 9:54 ` [Qemu-devel] " Michael S. Tsirkin
2015-09-10 10:29 ` [Qemu-trivial] " Laszlo Ersek
2015-09-10 10:29 ` [Qemu-devel] " Laszlo Ersek
2015-09-10 12:55 ` [Qemu-devel] [PULL 0/7] virtio,pc,acpi fixes, cleanups Peter Maydell
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=1441876643-7467-7-git-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.