Commit 45684753 authored by Konrad Rzeszutek Wilk's avatar Konrad Rzeszutek Wilk

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: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
Acked-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
parent 7f256020
...@@ -1173,10 +1173,7 @@ static int gnttab_setup(void) ...@@ -1173,10 +1173,7 @@ static int gnttab_setup(void)
if (max_nr_gframes < nr_grant_frames) if (max_nr_gframes < nr_grant_frames)
return -ENOSYS; return -ENOSYS;
if (xen_pv_domain()) if (xen_feature(XENFEAT_auto_translated_physmap) && gnttab_shared.addr == NULL) {
return gnttab_map(0, nr_grant_frames - 1);
if (gnttab_shared.addr == NULL) {
gnttab_shared.addr = xen_remap(xen_hvm_resume_frames, gnttab_shared.addr = xen_remap(xen_hvm_resume_frames,
PAGE_SIZE * max_nr_gframes); PAGE_SIZE * max_nr_gframes);
if (gnttab_shared.addr == NULL) { if (gnttab_shared.addr == NULL) {
...@@ -1185,10 +1182,7 @@ static int gnttab_setup(void) ...@@ -1185,10 +1182,7 @@ static int gnttab_setup(void)
return -ENOMEM; return -ENOMEM;
} }
} }
return gnttab_map(0, nr_grant_frames - 1);
gnttab_map(0, nr_grant_frames - 1);
return 0;
} }
int gnttab_resume(void) int gnttab_resume(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment