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)
committerDavid Vrabel <david.vrabel@citrix.com>
Wed, 28 Jan 2015 14:03:09 +0000 (14:03 +0000)
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>
include/linux/page-flags.h

index e1f5fcd..5ed7bda 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,
@@ -215,6 +219,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)