mm: document zone device struct page field usage

Patch series "mm/hmm: fixes for device private page migration", v3.

Testing the latest linux git tree turned up a few bugs with page
migration to and from ZONE_DEVICE private and anonymous pages.
Hopefully it clarifies how ZONE_DEVICE private struct page uses the same
mapping and index fields from the source anonymous page mapping.

This patch (of 3):

Struct page for ZONE_DEVICE private pages uses the page->mapping and and
page->index fields while the source anonymous pages are migrated to
device private memory.  This is so rmap_walk() can find the page when
migrating the ZONE_DEVICE private page back to system memory.
ZONE_DEVICE pmem backed fsdax pages also use the page->mapping and
page->index fields when files are mapped into a process address space.

Add comments to struct page and remove the unused "_zd_pad_1" field to
make this more clear.

Signed-off-by: Ralph Campbell <>
Reviewed-by: John Hubbard <>
Cc: Matthew Wilcox <>
Cc: Vlastimil Babka <>
Cc: Christoph Lameter <>
Cc: Dave Hansen <>
Cc: Jérôme Glisse <>
Cc: "Kirill A . Shutemov" <>
Cc: Lai Jiangshan <>
Cc: Martin Schwidefsky <>
Cc: Pekka Enberg <>
Cc: Randy Dunlap <>
Cc: Andrey Ryabinin <>
Cc: Christoph Hellwig <>
Cc: Jason Gunthorpe <>
Cc: Andrew Morton <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
1 file changed