diff mbox

[memory,v1,1/1] memory: Simplify mr_add_subregion() if-else

Message ID 3d7c5a7e41ccdaba646a79ca651fde44b270a652.1399882085.git.peter.crosthwaite@xilinx.com
State New
Headers show

Commit Message

Peter Crosthwaite May 12, 2014, 8:13 a.m. UTC
This if else is not needed. The previous call to memory_region_add
(whether _overlap or not) will always set priority and may_overlap
to desired values. And its not possible to get here without having
called memory_region_add_subregion due to the null guard on parent.
So we can just directly call memory_region_add_subregion_common.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 memory.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

Comments

Paolo Bonzini May 13, 2014, 10:24 a.m. UTC | #1
Il 12/05/2014 10:13, Peter Crosthwaite ha scritto:
> This if else is not needed. The previous call to memory_region_add
> (whether _overlap or not) will always set priority and may_overlap
> to desired values. And its not possible to get here without having
> called memory_region_add_subregion due to the null guard on parent.
> So we can just directly call memory_region_add_subregion_common.
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
>  memory.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/memory.c b/memory.c
> index 3f1df23..1352881 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -1501,8 +1501,6 @@ void memory_region_set_enabled(MemoryRegion *mr, bool enabled)
>  void memory_region_set_address(MemoryRegion *mr, hwaddr addr)
>  {
>      MemoryRegion *parent = mr->parent;
> -    int priority = mr->priority;
> -    bool may_overlap = mr->may_overlap;
>
>      if (addr == mr->addr || !parent) {
>          mr->addr = addr;
> @@ -1512,11 +1510,7 @@ void memory_region_set_address(MemoryRegion *mr, hwaddr addr)
>      memory_region_transaction_begin();
>      memory_region_ref(mr);
>      memory_region_del_subregion(parent, mr);
> -    if (may_overlap) {
> -        memory_region_add_subregion_overlap(parent, addr, mr, priority);
> -    } else {
> -        memory_region_add_subregion(parent, addr, mr);
> -    }
> +    memory_region_add_subregion_common(parent, addr, mr);
>      memory_region_unref(mr);
>      memory_region_transaction_commit();
>  }
>

Thanks, I'll include this in the next memory pull request.

Paolo
diff mbox

Patch

diff --git a/memory.c b/memory.c
index 3f1df23..1352881 100644
--- a/memory.c
+++ b/memory.c
@@ -1501,8 +1501,6 @@  void memory_region_set_enabled(MemoryRegion *mr, bool enabled)
 void memory_region_set_address(MemoryRegion *mr, hwaddr addr)
 {
     MemoryRegion *parent = mr->parent;
-    int priority = mr->priority;
-    bool may_overlap = mr->may_overlap;
 
     if (addr == mr->addr || !parent) {
         mr->addr = addr;
@@ -1512,11 +1510,7 @@  void memory_region_set_address(MemoryRegion *mr, hwaddr addr)
     memory_region_transaction_begin();
     memory_region_ref(mr);
     memory_region_del_subregion(parent, mr);
-    if (may_overlap) {
-        memory_region_add_subregion_overlap(parent, addr, mr, priority);
-    } else {
-        memory_region_add_subregion(parent, addr, mr);
-    }
+    memory_region_add_subregion_common(parent, addr, mr);
     memory_region_unref(mr);
     memory_region_transaction_commit();
 }