summaryrefslogtreecommitdiff
path: root/kernel/freezer.c
diff options
context:
space:
mode:
authorJimi Xenidis <jimix@pobox.com>2012-02-28 13:27:07 (GMT)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-03-07 06:06:09 (GMT)
commitde801de139ba2a2f2c74393ea00a321477ecc0dc (patch)
treef1850331426e3c1d4b0e7a20e633095f2546bf8f /kernel/freezer.c
parenta6cf7ed5119fb22f54584a9f867b638edd3c4384 (diff)
downloadlinux-fsl-qoriq-de801de139ba2a2f2c74393ea00a321477ecc0dc.tar.xz
powerpc/icswx: Fix race condition with IPI setting ACOP
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: Jimi Xenidis <jimix@pobox.com> Cc: Anton Blanchard <anton@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'kernel/freezer.c')
0 files changed, 0 insertions, 0 deletions