xen/mm: return more precise error from xen_remap_domain_range()
authorDavid Vrabel <david.vrabel@citrix.com>
Thu, 30 Aug 2012 12:58:11 +0000 (13:58 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 5 Sep 2012 20:36:15 +0000 (16:36 -0400)
Callers of xen_remap_domain_range() need to know if the remap failed
because frame is currently paged out.  So they can retry the remap
later on.  Return -ENOENT in this case.

This assumes that the error codes returned by Xen are a subset of
those used by the kernel.  It is unclear if this is defined as part of
the hypercall ABI.

Acked-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/mmu.c

index 885a22354a9678af2741c85a3f4ce3949d46baea..2d9e7c9c0e7bb2fef31d39aef87027799bdd5384 100644 (file)
@@ -2331,8 +2331,8 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
                if (err)
                        goto out;
 
-               err = -EFAULT;
-               if (HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid) < 0)
+               err = HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid);
+               if (err < 0)
                        goto out;
 
                nr -= batch;