mirror of https://github.com/xemu-project/xemu.git
memory: fix subregion collision warning
Instead of the offset property use the proper addr property to calculate the offsets. Additionally, be a little more verbose on the warning and print the subregion name. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
be9c4183c4
commit
860329b251
13
memory.c
13
memory.c
|
@ -1190,16 +1190,19 @@ static void memory_region_add_subregion_common(MemoryRegion *mr,
|
||||||
if (subregion->may_overlap || other->may_overlap) {
|
if (subregion->may_overlap || other->may_overlap) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (offset >= other->offset + other->size
|
if (offset >= other->addr + other->size
|
||||||
|| offset + subregion->size <= other->offset) {
|
|| offset + subregion->size <= other->addr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
printf("warning: subregion collision %llx/%llx vs %llx/%llx\n",
|
printf("warning: subregion collision %llx/%llx (%s) "
|
||||||
|
"vs %llx/%llx (%s)\n",
|
||||||
(unsigned long long)offset,
|
(unsigned long long)offset,
|
||||||
(unsigned long long)subregion->size,
|
(unsigned long long)subregion->size,
|
||||||
(unsigned long long)other->offset,
|
subregion->name,
|
||||||
(unsigned long long)other->size);
|
(unsigned long long)other->addr,
|
||||||
|
(unsigned long long)other->size,
|
||||||
|
other->name);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
|
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
|
||||||
|
|
Loading…
Reference in New Issue