]> git.baikalelectronics.ru Git - kernel.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)
commit5febdae38dd451297930fd7933bb3a26205778b4
treeb7fe1b735170ae1760dc2f551bc24640120ec3d0
parentf36df330ff2bdd2e98f46726f39362b1ec163485
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