From: Russell King - ARM Linux linux@arm.linux.org.uk Date: Wed, 16 Apr 2014 21:22:43 +0100
I'm thinking that both flush_icache_alias() and flush_pfn_alias() want at least a preemption disabled around each so that we don't end up with two threads being preempted here.
Yes, you would need to disable preemption to keep another thread of control from potentially using the same flush slot.