]> xenbits.xensource.com Git - people/aperard/linux.git/commitdiff
mm: add 'foreign' alias for the 'pinned' page flag
authorJennifer Herbert <jennifer.herbert@citrix.com>
Mon, 5 Jan 2015 13:24:09 +0000 (13:24 +0000)
committerAnthony PERARD <anthony.perard@citrix.com>
Thu, 7 May 2015 11:41:47 +0000 (12:41 +0100)
The foreign page flag will be used by Xen guests to mark pages that
have grant mappings of frames from other (foreign) guests.

The foreign flag is an alias for the existing (Xen-specific) pinned
flag.  This is safe because pinned is only used on pages used for page
tables and these cannot also be foreign.

Signed-off-by: Jennifer Herbert <jennifer.herbert@citrix.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
(cherry picked from commit d8ac3dd41aea245f65465449efc35dd3ac71e91d)

include/linux/page-flags.h

index 8304959ad33641b892f05fb216466b691b871caa..6b445af7547ac2bf07ddd5c487719264203fbe12 100644 (file)
@@ -121,8 +121,12 @@ enum pageflags {
        PG_fscache = PG_private_2,      /* page backed by cache */
 
        /* XEN */
+       /* Pinned in Xen as a read-only pagetable page. */
        PG_pinned = PG_owner_priv_1,
+       /* Pinned as part of domain save (see xen_mm_pin_all()). */
        PG_savepinned = PG_dirty,
+       /* Has a grant mapping of another (foreign) domain's page. */
+       PG_foreign = PG_owner_priv_1,
 
        /* SLOB */
        PG_slob_free = PG_private,
@@ -207,6 +211,7 @@ __PAGEFLAG(Slab, slab)
 PAGEFLAG(Checked, checked)             /* Used by some filesystems */
 PAGEFLAG(Pinned, pinned) TESTSCFLAG(Pinned, pinned)    /* Xen */
 PAGEFLAG(SavePinned, savepinned);                      /* Xen */
+PAGEFLAG(Foreign, foreign);                            /* Xen */
 PAGEFLAG(Reserved, reserved) __CLEARPAGEFLAG(Reserved, reserved)
 PAGEFLAG(SwapBacked, swapbacked) __CLEARPAGEFLAG(SwapBacked, swapbacked)
        __SETPAGEFLAG(SwapBacked, swapbacked)