• Paul Burton's avatar
    MIPS: Check Loongson3 LL/SC errata workaround correctness · e4acfbc1
    Paul Burton authored
    When Loongson3 LL/SC errata workarounds are enabled (ie.
    CONFIG_CPU_LOONGSON3_WORKAROUNDS=y) run a tool to scan through the
    compiled kernel & ensure that the workaround is applied correctly. That
    is, ensure that:
    
      - Every LL or LLD instruction is preceded by a sync instruction.
    
      - Any branches from within an LL/SC loop to outside of that loop
        target a sync instruction.
    
    Reasoning for these conditions can be found by reading the comment above
    the definition of __SYNC_loongson3_war in arch/mips/include/asm/sync.h.
    
    This tool will help ensure that we don't inadvertently introduce code
    paths that miss the required workarounds.
    Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
    Cc: linux-mips@vger.kernel.org
    Cc: Huacai Chen <chenhc@lemote.com>
    Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Cc: linux-kernel@vger.kernel.org
    e4acfbc1
loongson3-llsc-check.c 5.97 KB