xen: add helpers for caching grant mapping pages
Instead of having similar helpers in multiple backend drivers use common helpers for caching pages allocated via gnttab_alloc_pages(). Make use of those helpers in blkback and scsiback. Cc: <stable@vger.kernel.org> # 5.9 Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Boris Ostrovsky <boris.ostrovksy@oracle.com> Signed-off-by: Juergen Gross <jgross@suse.com>
This commit is contained in:
@@ -198,6 +198,19 @@ void gnttab_free_auto_xlat_frames(void);
|
||||
int gnttab_alloc_pages(int nr_pages, struct page **pages);
|
||||
void gnttab_free_pages(int nr_pages, struct page **pages);
|
||||
|
||||
struct gnttab_page_cache {
|
||||
spinlock_t lock;
|
||||
struct list_head pages;
|
||||
unsigned int num_pages;
|
||||
};
|
||||
|
||||
void gnttab_page_cache_init(struct gnttab_page_cache *cache);
|
||||
int gnttab_page_cache_get(struct gnttab_page_cache *cache, struct page **page);
|
||||
void gnttab_page_cache_put(struct gnttab_page_cache *cache, struct page **page,
|
||||
unsigned int num);
|
||||
void gnttab_page_cache_shrink(struct gnttab_page_cache *cache,
|
||||
unsigned int num);
|
||||
|
||||
#ifdef CONFIG_XEN_GRANT_DMA_ALLOC
|
||||
struct gnttab_dma_alloc_args {
|
||||
/* Device for which DMA memory will be/was allocated. */
|
||||
|
Reference in New Issue
Block a user