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>
This commit is contained in:
parent
7f256020cc
commit
456847533b
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user