diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2013-12-31 16:33:31 -0500 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2014-01-06 10:44:18 -0500 |
commit | 456847533b9ad18baa6685946a2f1e1fa9c05c34 (patch) | |
tree | 54801698862fcee9fa4706dad5e93c8db1a6c414 /drivers/xen/grant-table.c | |
parent | 7f256020cc599bc0b736c57d702b864dbbefcefb (diff) | |
download | linux-stable-456847533b9ad18baa6685946a2f1e1fa9c05c34.tar.gz linux-stable-456847533b9ad18baa6685946a2f1e1fa9c05c34.tar.bz2 linux-stable-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/grant-table.c')
-rw-r--r-- | drivers/xen/grant-table.c | 10 |
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) |