summaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2013-12-31 22:33:31 +0100
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2014-01-06 16:44:18 +0100
commit456847533b9ad18baa6685946a2f1e1fa9c05c34 (patch)
tree54801698862fcee9fa4706dad5e93c8db1a6c414 /drivers/xen
parentxen/grants: Remove gnttab_max_grant_frames dependency on gnttab_init. (diff)
downloadlinux-456847533b9ad18baa6685946a2f1e1fa9c05c34.tar.xz
linux-456847533b9ad18baa6685946a2f1e1fa9c05c34.zip
xen/grant-table: Refactor gnttab_init
We have this odd scenario of where for PV paths we take a shortcut but for the HVM paths we first ioremap xen_hvm_resume_frames, then assign it to gnttab_shared.addr. This is needed because gnttab_map uses gnttab_shared.addr. Instead of having: if (pv) return gnttab_map if (hvm) ... gnttab_map Lets move the HVM part before the gnttab_map and remove the first call to gnttab_map. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Reviewed-by: David Vrabel <david.vrabel@citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'drivers/xen')
-rw-r--r--drivers/xen/grant-table.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 99399cb0fd1c..e69c7780c208 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -1173,10 +1173,7 @@ static int gnttab_setup(void)
if (max_nr_gframes < nr_grant_frames)
return -ENOSYS;
- if (xen_pv_domain())
- return gnttab_map(0, nr_grant_frames - 1);
-
- if (gnttab_shared.addr == NULL) {
+ if (xen_feature(XENFEAT_auto_translated_physmap) && gnttab_shared.addr == NULL) {
gnttab_shared.addr = xen_remap(xen_hvm_resume_frames,
PAGE_SIZE * max_nr_gframes);
if (gnttab_shared.addr == NULL) {
@@ -1185,10 +1182,7 @@ static int gnttab_setup(void)
return -ENOMEM;
}
}
-
- gnttab_map(0, nr_grant_frames - 1);
-
- return 0;
+ return gnttab_map(0, nr_grant_frames - 1);
}
int gnttab_resume(void)