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;
 }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)