• Michael Ellerman's avatar
    selftests/powerpc: Fix TM resched DSCR test with some compilers · ecca1170
    Michael Ellerman authored
    commit fe06fe86 upstream.
    
    The tm-resched-dscr test has started failing sometimes, depending on
    what compiler it's built with, eg:
    
      test: tm_resched_dscr
      Check DSCR TM context switch: tm-resched-dscr: tm-resched-dscr.c:76: test_body: Assertion `rv' failed.
      !! child died by signal 6
    
    When it fails we see that the compiler doesn't initialise rv to 1 before
    entering the inline asm block. Although that's counter intuitive, it
    is allowed because we tell the compiler that the inline asm will write
    to rv (using "=r"), meaning the original value is irrelevant.
    
    Marking it as a read/write parameter would presumably work, but it seems
    simpler to fix it by setting the initial value of rv in the inline asm.
    
    Fixes: 96d01610 ("powerpc: Correct DSCR during TM context switch")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Acked-by: default avatarMichael Neuling <mikey@neuling.org>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    ecca1170
tm-resched-dscr.c 2.25 KB