]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
ARM: 8009/1: dcscb.c: remove call to outer_flush_all()
authorNicolas Pitre <nicolas.pitre@linaro.org>
Mon, 24 Mar 2014 15:51:58 +0000 (16:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 7 Apr 2014 14:27:05 +0000 (15:27 +0100)
commitc9d347e0277696c80496161cbef47393b850a0aa
treeb7fe1b735170ae1760dc2f551bc24640120ec3d0
parentfff00db852f2ff0faf5f539b5e28ac498fc007f8
ARM: 8009/1: dcscb.c: remove call to outer_flush_all()

Strictly speaking this call is a no-op on the platform where dcscb.c is
used since it only has architected caches.  The call was there as a hint
to people inspired by this code when writing their own backend, but the
hint might not always be correct.

For example, if a PL310 were to be used it wouldn't be safe to call
the regular outer_flush_all() as atomic instructions for locking
are involved in that case and those instructions cannot be assumed to
still be operational after v7_exit_coherency_flush() has returned.
Given no other CPUs (in the cluster) should be running at that point
then standard concurrency concerns wouldn't apply.

So let's simply kill this call for now and enhance the existing comment.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-vexpress/dcscb.c