aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/xen-blkback
diff options
context:
space:
mode:
authorDavid Vrabel <david.vrabel@citrix.com>2015-01-08 13:06:01 -0500
committerDavid Vrabel <david.vrabel@citrix.com>2015-01-28 09:03:12 -0500
commitff4b156f166b3931894d2a8b5cdba6cdf4da0618 (patch)
treedfb7d79d269b365b2a95efa390c0fe62a8de935e /drivers/block/xen-blkback
parent0ae65f49af64d68f0daca37b83383115cae5e690 (diff)
xen/grant-table: add helpers for allocating pages
Add gnttab_alloc_pages() and gnttab_free_pages() to allocate/free pages suitable to for granted maps. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'drivers/block/xen-blkback')
-rw-r--r--drivers/block/xen-blkback/blkback.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 63fc7f06a014..908e630240bd 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -100,7 +100,7 @@ module_param(log_stats, int, 0644);
100 100
101#define BLKBACK_INVALID_HANDLE (~0) 101#define BLKBACK_INVALID_HANDLE (~0)
102 102
103/* Number of free pages to remove on each call to free_xenballooned_pages */ 103/* Number of free pages to remove on each call to gnttab_free_pages */
104#define NUM_BATCH_FREE_PAGES 10 104#define NUM_BATCH_FREE_PAGES 10
105 105
106static inline int get_free_page(struct xen_blkif *blkif, struct page **page) 106static inline int get_free_page(struct xen_blkif *blkif, struct page **page)
@@ -111,7 +111,7 @@ static inline int get_free_page(struct xen_blkif *blkif, struct page **page)
111 if (list_empty(&blkif->free_pages)) { 111 if (list_empty(&blkif->free_pages)) {
112 BUG_ON(blkif->free_pages_num != 0); 112 BUG_ON(blkif->free_pages_num != 0);
113 spin_unlock_irqrestore(&blkif->free_pages_lock, flags); 113 spin_unlock_irqrestore(&blkif->free_pages_lock, flags);
114 return alloc_xenballooned_pages(1, page, false); 114 return gnttab_alloc_pages(1, page);
115 } 115 }
116 BUG_ON(blkif->free_pages_num == 0); 116 BUG_ON(blkif->free_pages_num == 0);
117 page[0] = list_first_entry(&blkif->free_pages, struct page, lru); 117 page[0] = list_first_entry(&blkif->free_pages, struct page, lru);
@@ -151,14 +151,14 @@ static inline void shrink_free_pagepool(struct xen_blkif *blkif, int num)
151 blkif->free_pages_num--; 151 blkif->free_pages_num--;
152 if (++num_pages == NUM_BATCH_FREE_PAGES) { 152 if (++num_pages == NUM_BATCH_FREE_PAGES) {
153 spin_unlock_irqrestore(&blkif->free_pages_lock, flags); 153 spin_unlock_irqrestore(&blkif->free_pages_lock, flags);
154 free_xenballooned_pages(num_pages, page); 154 gnttab_free_pages(num_pages, page);
155 spin_lock_irqsave(&blkif->free_pages_lock, flags); 155 spin_lock_irqsave(&blkif->free_pages_lock, flags);
156 num_pages = 0; 156 num_pages = 0;
157 } 157 }
158 } 158 }
159 spin_unlock_irqrestore(&blkif->free_pages_lock, flags); 159 spin_unlock_irqrestore(&blkif->free_pages_lock, flags);
160 if (num_pages != 0) 160 if (num_pages != 0)
161 free_xenballooned_pages(num_pages, page); 161 gnttab_free_pages(num_pages, page);
162} 162}
163 163
164#define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page))) 164#define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page)))