• Jimi Xenidis's avatar
    powerpc/icswx: Fix race condition with IPI setting ACOP · de801de1
    Jimi Xenidis authored
    There is a race where a thread causes a coprocessor type to be valid
    in its own ACOP _and_ in the current context, but it does not
    propagate to the ACOP register of other threads in time for them to
    use it.  The original code tries to solve this by sending an IPI to
    all threads on the system, which is heavy handed, but unfortunately
    still provides a window where the icswx is issued by other threads and
    the ACOP is not up to date.
    
    This patch detects that the ACOP DSI fault was a "false positive" and
    syncs the ACOP and causes the icswx to be replayed.
    Signed-off-by: default avatarJimi Xenidis <jimix@pobox.com>
    Cc: Anton Blanchard <anton@samba.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    de801de1
icswx.c 7.88 KB