* [Qemu-devel] [PATCH] sparc: Fix assertion caused by empty memory slot with 0 byte
@ 2011-04-14 17:19 Stefan Weil
2011-04-15 18:19 ` Blue Swirl
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Weil @ 2011-04-14 17:19 UTC (permalink / raw)
To: QEMU Developers; +Cc: Blue Swirl
If the memory size given on the command line is equal to the
maximum size of memory defined by the hardware, there is no
"empty slot" after physical memory.
The following command
qemu-system-sparc -m 256
raised an assertion:
exec.c:2614: cpu_register_physical_memory_offset: Assertion `size' failed
This can be fixed either at the caller side (don't call empty_slot_init)
or in empty_slot_init (do nothing) when size == 0. The second solution
was choosen here because it is more robust.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
---
hw/empty_slot.c | 21 ++++++++++++---------
1 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/hw/empty_slot.c b/hw/empty_slot.c
index 664b8d9..da8adc4 100644
--- a/hw/empty_slot.c
+++ b/hw/empty_slot.c
@@ -53,18 +53,21 @@ static CPUWriteMemoryFunc * const empty_slot_write[3] = {
void empty_slot_init(target_phys_addr_t addr, uint64_t slot_size)
{
- DeviceState *dev;
- SysBusDevice *s;
- EmptySlot *e;
+ if (slot_size > 0) {
+ /* Only empty slots larger than 0 byte need handling. */
+ DeviceState *dev;
+ SysBusDevice *s;
+ EmptySlot *e;
- dev = qdev_create(NULL, "empty_slot");
- s = sysbus_from_qdev(dev);
- e = FROM_SYSBUS(EmptySlot, s);
- e->size = slot_size;
+ dev = qdev_create(NULL, "empty_slot");
+ s = sysbus_from_qdev(dev);
+ e = FROM_SYSBUS(EmptySlot, s);
+ e->size = slot_size;
- qdev_init_nofail(dev);
+ qdev_init_nofail(dev);
- sysbus_mmio_map(s, 0, addr);
+ sysbus_mmio_map(s, 0, addr);
+ }
}
static int empty_slot_init1(SysBusDevice *dev)
--
1.7.2.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] sparc: Fix assertion caused by empty memory slot with 0 byte
2011-04-14 17:19 [Qemu-devel] [PATCH] sparc: Fix assertion caused by empty memory slot with 0 byte Stefan Weil
@ 2011-04-15 18:19 ` Blue Swirl
0 siblings, 0 replies; 2+ messages in thread
From: Blue Swirl @ 2011-04-15 18:19 UTC (permalink / raw)
To: Stefan Weil; +Cc: QEMU Developers
Thanks, applied.
On Thu, Apr 14, 2011 at 8:19 PM, Stefan Weil <weil@mail.berlios.de> wrote:
> If the memory size given on the command line is equal to the
> maximum size of memory defined by the hardware, there is no
> "empty slot" after physical memory.
>
> The following command
>
> qemu-system-sparc -m 256
>
> raised an assertion:
> exec.c:2614: cpu_register_physical_memory_offset: Assertion `size' failed
>
> This can be fixed either at the caller side (don't call empty_slot_init)
> or in empty_slot_init (do nothing) when size == 0. The second solution
> was choosen here because it is more robust.
>
> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
> ---
> hw/empty_slot.c | 21 ++++++++++++---------
> 1 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/hw/empty_slot.c b/hw/empty_slot.c
> index 664b8d9..da8adc4 100644
> --- a/hw/empty_slot.c
> +++ b/hw/empty_slot.c
> @@ -53,18 +53,21 @@ static CPUWriteMemoryFunc * const empty_slot_write[3] = {
>
> void empty_slot_init(target_phys_addr_t addr, uint64_t slot_size)
> {
> - DeviceState *dev;
> - SysBusDevice *s;
> - EmptySlot *e;
> + if (slot_size > 0) {
> + /* Only empty slots larger than 0 byte need handling. */
> + DeviceState *dev;
> + SysBusDevice *s;
> + EmptySlot *e;
>
> - dev = qdev_create(NULL, "empty_slot");
> - s = sysbus_from_qdev(dev);
> - e = FROM_SYSBUS(EmptySlot, s);
> - e->size = slot_size;
> + dev = qdev_create(NULL, "empty_slot");
> + s = sysbus_from_qdev(dev);
> + e = FROM_SYSBUS(EmptySlot, s);
> + e->size = slot_size;
>
> - qdev_init_nofail(dev);
> + qdev_init_nofail(dev);
>
> - sysbus_mmio_map(s, 0, addr);
> + sysbus_mmio_map(s, 0, addr);
> + }
> }
>
> static int empty_slot_init1(SysBusDevice *dev)
> --
> 1.7.2.5
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-04-15 18:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-14 17:19 [Qemu-devel] [PATCH] sparc: Fix assertion caused by empty memory slot with 0 byte Stefan Weil
2011-04-15 18:19 ` Blue Swirl
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).