diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2013-08-04 15:39:40 +0100 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2013-08-09 11:23:24 -0400 |
commit | cd9151e26d31048b2b5e00fd02e110e07d2200c9 (patch) | |
tree | e1d5d1bc01d0835ffc359aea7efbb0fbb14ba4e5 /include/xen | |
parent | 73cc4bb0c79eebe1f0e92b700d9fe8d1c9b061bb (diff) | |
download | blackbird-op-linux-cd9151e26d31048b2b5e00fd02e110e07d2200c9.tar.gz blackbird-op-linux-cd9151e26d31048b2b5e00fd02e110e07d2200c9.zip |
xen/balloon: set a mapping for ballooned out pages
Currently ballooned out pages are mapped to 0 and have INVALID_P2M_ENTRY
in the p2m. These ballooned out pages are used to map foreign grants
by gntdev and blkback (see alloc_xenballooned_pages).
Allocate a page per cpu and map all the ballooned out pages to the
corresponding mfn. Set the p2m accordingly. This way reading from a
ballooned out page won't cause a kernel crash (see
http://lists.xen.org/archives/html/xen-devel/2012-12/msg01154.html).
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
CC: alex@alex.org.uk
CC: dcrisan@flexiant.com
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'include/xen')
-rw-r--r-- | include/xen/balloon.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/xen/balloon.h b/include/xen/balloon.h index cc2e1a7e44ec..a4c1c6a93691 100644 --- a/include/xen/balloon.h +++ b/include/xen/balloon.h @@ -29,6 +29,9 @@ int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem); void free_xenballooned_pages(int nr_pages, struct page **pages); +struct page *get_balloon_scratch_page(void); +void put_balloon_scratch_page(void); + struct device; #ifdef CONFIG_XEN_SELFBALLOONING extern int register_xen_selfballooning(struct device *dev); |