From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH] grant-table: use page flag interfaces when copying a grant page Date: Tue, 23 Feb 2010 17:24:22 +0000 Message-ID: <1266945862-21830-1-git-send-email-ian.campbell@citrix.com> References: <1266944896.11737.6496.camel@zakaz.uk.xensource.com> Return-path: In-Reply-To: <1266944896.11737.6496.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Jeremy Fitzhardinge , Ian Campbell , Jan Beulich List-Id: xen-devel@lists.xenproject.org Use SetPage{Foreign,Reserved} instead of bit-bashing directly. Add an accessor for the foreign page destructor. Signed-off-by: Ian Campbell --- drivers/xen/grant-table.c | 5 ++--- include/linux/page-flags.h | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index 7079787..76fe621 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c @@ -556,10 +556,9 @@ int gnttab_copy_grant_page(grant_ref_t ref, struct page **pagep) } new_page->mapping = page->mapping; - new_page->index = page->index; - set_bit(PG_foreign, &new_page->flags); + SetPageForeign(new_page, _PageForeignDestructor(page)); if (PageReserved(page)) - set_bit(PG_reserved, &new_page->flags); + SetPageReserved(new_page); *pagep = new_page; SetPageForeign(page, gnttab_page_free); diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 86325f9..b03950e 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -287,8 +287,10 @@ CLEARPAGEFLAG(Foreign, foreign) BUG_ON((dtor) == (void (*)(struct page *, unsigned int))0); \ (_page)->index = (long)(dtor); \ } while (0) +#define _PageForeignDestructor(_page) \ + ((void (*)(struct page *, unsigned int))(_page)->index) #define PageForeignDestructor(_page, order) \ - ((void (*)(struct page *, unsigned int))(_page)->index)(_page, order) + _PageForeignDestructor(_page)(_page, order) #else PAGEFLAG_FALSE(Foreign) #endif -- 1.5.6.5