armv7a_mmu: Check earlier for PAR read 15/5215/3
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 5 Jun 2019 22:23:33 +0000 (15:23 -0700)
committerMatthias Welwarsky <matthias@welwarsky.de>
Wed, 12 Jun 2019 14:14:27 +0000 (15:14 +0100)
Check earlier that the read of the PAR register was successful instead
of starting the decoding and then checking for an error reading that
register.

Change-Id: Id96c2b2f76d2d1c745fcfa55ad4c1e6db92106f9
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-on: http://openocd.zylin.com/5215
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
src/target/armv7a_mmu.c

index 153bfcc..859332a 100644 (file)
@@ -143,14 +143,14 @@ int armv7a_mmu_translate_va_pa(struct target *target, uint32_t va,
        retval = dpm->instr_read_data_r0(dpm,
                        ARMV4_5_MRC(15, 0, 0, 7, 4, 0),
                        val);
+       if (retval != ERROR_OK)
+               goto done;
        /* decode memory attribute */
        NOS = (*val >> 10) & 1; /*  Not Outer shareable */
        NS = (*val >> 9) & 1;   /* Non secure */
        INNER = (*val >> 4) &  0x7;
        OUTER = (*val >> 2) & 0x3;
 
-       if (retval != ERROR_OK)
-               goto done;
        *val = (*val & ~0xfff)  +  (va & 0xfff);
        if (meminfo) {
                LOG_INFO("%" PRIx32 " : %" PRIx32 " %s outer shareable %s secured",