Projects STRLCPY criu Commits 54122475
🤬
  • arm: fix atomic_{add,sub}_return

    Now, this code doesn't pass this simple test:
    
            atomic_t a;;
            int c = 0;
            atomic_set(&a, c);
            c = atomic_inc(&a);
            if (c != 0) {
                    pr_err("c = %x &a = %p\n", c, &a);
                    return 1;
            }
    
    08:28:51.771: 26187: ERR: fd.c:36: c = 7ef47a60 &a = 0x7ef47a60
    
    Reported-by: Mr Jenkins
    Signed-off-by: Andrei Vagin <[email protected]>
    Reviewed-by: Dmitry Safonov <[email protected]>
    Signed-off-by: Andrei Vagin <[email protected]>
  • Loading...
  • Andrei Vagin committed with Pavel Emelyanov 5 years ago
    54122475
    1 parent 59930e5a
Revision indexing in progress... (symbol navigation in revisions will be accurate after indexed)
  • ■ ■ ■ ■ ■ ■
    test/zdtm/lib/arch/arm/include/asm/atomic.h
    skipped 24 lines
    25 25  " strex %1, %0, [%3]\n"
    26 26  " teq %1, #0\n"
    27 27  " bne 1b\n"
    28  - : "=&r" (result), "=&r" (tmp), "+Qo" (v)
    29  - : "r" (&v), "Ir" (i)
     28 + : "=&r" (result), "=&r" (tmp), "+Qo" (*v)
     29 + : "r" (v), "Ir" (i)
    30 30   : "cc");
    31 31   
    32 32   smp_mb();
    skipped 14 lines
    47 47  " strex %1, %0, [%3]\n"
    48 48  " teq %1, #0\n"
    49 49  " bne 1b\n"
    50  - : "=&r" (result), "=&r" (tmp), "+Qo" (v)
    51  - : "r" (&v), "Ir" (i)
     50 + : "=&r" (result), "=&r" (tmp), "+Qo" (*v)
     51 + : "r" (v), "Ir" (i)
    52 52   : "cc");
    53 53   
    54 54   smp_mb();
    skipped 15 lines
Please wait...
Page is in error, reload to recover