KVM: Avoid livelock in pfncache hva_to_pfn_retry()
In some circumstances, the gpc_map() in the mmu_notifier retry loop can
cause it to livelock because it invalidates itself every time round the
loop.
Shift the gpc_map() outside the mmu_notifier_retry_cache() loop by using
a new gpc->pfn_valid flag to signal *partial* setup. It's used only by
the invalidation callback, to invalidate the GPC before we've even
finished mapping it.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>