diff options
author | David Vrabel <david.vrabel@citrix.com> | 2015-01-08 13:06:01 -0500 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2015-01-28 09:03:12 -0500 |
commit | ff4b156f166b3931894d2a8b5cdba6cdf4da0618 (patch) | |
tree | dfb7d79d269b365b2a95efa390c0fe62a8de935e /drivers/block/xen-blkback | |
parent | 0ae65f49af64d68f0daca37b83383115cae5e690 (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.c | 8 |
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 | ||
106 | static inline int get_free_page(struct xen_blkif *blkif, struct page **page) | 106 | static 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))) |