[ARM] arm32ve: Fix usage of mmu_lpae_map_page() in cpu_vcpu_stage2_map()

Lets say we have SMP Guest with 2 VCPUs running on SMP Host.
Now if the VCPUs are scheduled on different host CPUs then
we hit a potential race condition where both VCPUs get Stage2
abort simultaneously accessing same Guest region. If we hit
this race condition then the call to mmu_lpae_map_page() from
cpu_vcpu_stage2_map() will fail for one of the VCPUs.

The issue will manifest for SMP Guest running on SMP host only
because we share same Stage2 ttbl for all VCPUs of SMP Guest
and we assume that mmu_lpae_map_page() will always succeed when
called from cpu_vcpu_stage2_map().

This patch fixes this issue by re-checking if Stage2 page is
already mapped when mmu_lpae_map_page() fails.

Reported-by: Po-wen Cheng <sting.cheng@gmail.com>
Signed-off-by: Anup Patel <anup@brainfault.org>