aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Walle <michael@walle.cc>2011-09-15 23:16:49 +0200
committerAvi Kivity <avi@redhat.com>2011-09-18 14:55:16 +0300
commit860329b2513cf754c5f7d5400f7bcf5dd1a44489 (patch)
tree5af633d3cf737902a0b047bcd63e8340a2cd1489
parentbe9c4183c44fcde64730446eb76bd68083dfa0db (diff)
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>
-rw-r--r--memory.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/memory.c b/memory.c
index 101b67c935..ba74435a9b 100644
--- a/memory.c
+++ b/memory.c
@@ -1190,16 +1190,19 @@ static void memory_region_add_subregion_common(MemoryRegion *mr,
if (subregion->may_overlap || other->may_overlap) {
continue;
}
- if (offset >= other->offset + other->size
- || offset + subregion->size <= other->offset) {
+ if (offset >= other->addr + other->size
+ || offset + subregion->size <= other->addr) {
continue;
}
#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)subregion->size,
- (unsigned long long)other->offset,
- (unsigned long long)other->size);
+ subregion->name,
+ (unsigned long long)other->addr,
+ (unsigned long long)other->size,
+ other->name);
#endif
}
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {