memory: Remove code for mr->may_overlap

The collision check does nothing and hasn't been used. Remove the
variable together with related code.

Backports commit b61359781958759317ee6fd1a45b59be0b7dbbe1 from qemu
This commit is contained in:
Fam Zheng 2018-02-24 02:55:16 -05:00 committed by Lioncash
parent feff56cc11
commit fb8135cd0d
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
2 changed files with 0 additions and 36 deletions

View file

@ -177,7 +177,6 @@ struct MemoryRegion {
MemoryRegion *alias;
hwaddr alias_offset;
int32_t priority;
bool may_overlap;
QTAILQ_HEAD(subregions, MemoryRegion) subregions;
QTAILQ_ENTRY(MemoryRegion) subregions_link;
const char *name;

View file

@ -934,13 +934,6 @@ static void memory_region_get_priority(struct uc_struct *uc,
visit_type_int32(v, name, &value, errp);
}
static bool memory_region_get_may_overlap(struct uc_struct *uc, Object *obj, Error **errp)
{
MemoryRegion *mr = MEMORY_REGION(uc, obj);
return mr->may_overlap;
}
static void memory_region_get_size(struct uc_struct *uc,
Object *obj, Visitor *v,
const char *name, void *opaque,
@ -979,10 +972,6 @@ static void memory_region_initfn(struct uc_struct *uc, Object *obj, void *opaque
memory_region_get_priority,
NULL, /* memory_region_set_priority */
NULL, NULL, &error_abort);
object_property_add_bool(mr->uc, OBJECT(mr), "may-overlap",
memory_region_get_may_overlap,
NULL, /* memory_region_set_may_overlap */
&error_abort);
object_property_add(mr->uc, OBJECT(mr), "size", "uint64",
memory_region_get_size,
NULL, /* memory_region_set_size, */
@ -1391,34 +1380,12 @@ bool memory_region_test_and_clear_dirty(MemoryRegion *mr, hwaddr addr,
static void memory_region_update_container_subregions(MemoryRegion *subregion)
{
hwaddr offset = subregion->addr;
MemoryRegion *mr = subregion->container;
MemoryRegion *other;
memory_region_transaction_begin(mr->uc);
memory_region_ref(subregion);
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
if (subregion->may_overlap || other->may_overlap) {
continue;
}
if (int128_ge(int128_make64(offset),
int128_add(int128_make64(other->addr), other->size))
|| int128_le(int128_add(int128_make64(offset), subregion->size),
int128_make64(other->addr))) {
continue;
}
#if 0
printf("warning: subregion collision %llx/%llx (%s) "
"vs %llx/%llx (%s)\n",
(unsigned long long)offset,
(unsigned long long)int128_get64(subregion->size),
subregion->name,
(unsigned long long)other->addr,
(unsigned long long)int128_get64(other->size),
other->name);
#endif
}
QTAILQ_FOREACH(other, &mr->subregions, subregions_link) {
if (subregion->priority >= other->priority) {
QTAILQ_INSERT_BEFORE(other, subregion, subregions_link);
@ -1446,7 +1413,6 @@ void memory_region_add_subregion(MemoryRegion *mr,
hwaddr offset,
MemoryRegion *subregion)
{
subregion->may_overlap = false;
subregion->priority = 0;
memory_region_add_subregion_common(mr, offset, subregion);
}
@ -1456,7 +1422,6 @@ void memory_region_add_subregion_overlap(MemoryRegion *mr,
MemoryRegion *subregion,
int priority)
{
subregion->may_overlap = true;
subregion->priority = priority;
memory_region_add_subregion_common(mr, offset, subregion);
}