]> git.sur5r.net Git - openocd/commitdiff
TARGET: fix handling return code of MMU translation
authorAntonio Borneo <borneo.antonio@gmail.com>
Sat, 12 Jun 2010 03:46:56 +0000 (11:46 +0800)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Sat, 12 Jun 2010 10:08:06 +0000 (12:08 +0200)
Function armv4_5_mmu_translate_va() now properly signals
errors in the return value.
Remove former error handling by setting variable "type" to
value "-1".

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
src/target/arm720t.c
src/target/arm920t.c
src/target/arm926ejs.c
src/target/armv4_5_mmu.c
src/target/cortex_a8.c
src/target/xscale.c

index 867eb94237fdd91f0b6d0b1b9d516b8095daf669..e7672b45a0a7dd67fc768c0961d309ed2f939368 100644 (file)
@@ -264,10 +264,6 @@ static int arm720_virt2phys(struct target *target,
        int retval = armv4_5_mmu_translate_va(target, &arm720t->armv4_5_mmu, virtual, &type, &cb, &domain, &ap, &ret);
        if (retval != ERROR_OK)
                return retval;
-       if (type == -1)
-       {
-               return ret;
-       }
        *physical = ret;
        return ERROR_OK;
 }
index d7096486b8b990adf21a5a9e6b8ada7b9932f3da..fe2ff015e742df4b37b5c1cc7242d833e810d35c 100644 (file)
@@ -519,10 +519,6 @@ static int arm920_virt2phys(struct target *target,
                        &arm920t->armv4_5_mmu, virt, &type, &cb, &domain, &ap, &ret);
        if (retval != ERROR_OK)
                return retval;
-       if (type == -1)
-       {
-               return ret;
-       }
        *phys = ret;
        return ERROR_OK;
 }
@@ -596,8 +592,6 @@ int arm920t_write_memory(struct target *target, uint32_t address,
                                address, &type, &cb, &domain, &ap, &pa);
                if (retval != ERROR_OK)
                        return retval;
-               if (type == -1)
-                       return pa;
 
                if (arm920t->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled)
                {
index a7aac550185e54d7aff323da61d715049ff99ad0..bfa2ab4ad401f6bdefc96d47b0af5abd1754d1b0 100644 (file)
@@ -730,10 +730,6 @@ static int arm926ejs_virt2phys(struct target *target, uint32_t virtual, uint32_t
        int retval = armv4_5_mmu_translate_va(target, &arm926ejs->armv4_5_mmu, virtual, &type, &cb, &domain, &ap, &ret);
        if (retval != ERROR_OK)
                return retval;
-       if (type == -1)
-       {
-               return ret;
-       }
        *physical = ret;
        return ERROR_OK;
 }
index 6990d13fc03c8e467105a7158f99d7b8443eafae..52756c11e6319885e698cf66cf91ae7100b032d5 100644 (file)
@@ -44,14 +44,12 @@ int armv4_5_mmu_translate_va(struct target *target, struct armv4_5_mmu_common *a
 
        if ((first_lvl_descriptor & 0x3) == 0)
        {
-               *type = -1;
                LOG_ERROR("Address translation failure");
                return ERROR_TARGET_TRANSLATION_FAULT;
        }
 
        if (!armv4_5_mmu->has_tiny_pages && ((first_lvl_descriptor & 0x3) == 3))
        {
-               *type = -1;
                LOG_ERROR("Address translation failure");
                return ERROR_TARGET_TRANSLATION_FAULT;
        }
@@ -94,7 +92,6 @@ int armv4_5_mmu_translate_va(struct target *target, struct armv4_5_mmu_common *a
 
        if ((second_lvl_descriptor & 0x3) == 0)
        {
-               *type = -1;
                LOG_ERROR("Address translation failure");
                return ERROR_TARGET_TRANSLATION_FAULT;
        }
@@ -130,7 +127,6 @@ int armv4_5_mmu_translate_va(struct target *target, struct armv4_5_mmu_common *a
        }
 
        /* should not happen */
-       *type = -1;
        LOG_ERROR("Address translation failure");
        return ERROR_TARGET_TRANSLATION_FAULT;
 }
index 2edb9e3ee1f921fa6742615afe208b20480822e2..f15417924332dbc121e22ca37fb42da41cdebe2e 100644 (file)
@@ -1825,10 +1825,6 @@ static int cortex_a8_virt2phys(struct target *target,
     /* Reset the flag. We don't want someone else to use it by error */
     cortex_a8->current_address_mode = ARM_MODE_ANY;
 
-       if (type == -1)
-       {
-               return ret;
-       }
        *phys = ret;
        return ERROR_OK;
 }
index ab7eee3dfe212b86fceaea67f4c1e9bb6deeefed..d16f8ec1facfff9b96645115e0818fabbbb2ec44 100644 (file)
@@ -3230,10 +3230,6 @@ static int xscale_virt2phys(struct target *target,
        int retval = armv4_5_mmu_translate_va(target, &xscale->armv4_5_mmu, virtual, &type, &cb, &domain, &ap, &ret);
        if (retval != ERROR_OK)
                return retval;
-       if (type == -1)
-       {
-               return ret;
-       }
        *physical = ret;
        return ERROR_OK;
 }