lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 8 Sep 2018 02:03:55 +0800 From: Zhang Yi <yi.z.zhang@...ux.intel.com> To: kvm@...r.kernel.org, linux-kernel@...r.kernel.org, linux-nvdimm@...ts.01.org, pbonzini@...hat.com, dan.j.williams@...el.com, dave.jiang@...el.com, yu.c.zhang@...el.com, pagupta@...hat.com, david@...hat.com, jack@...e.cz, hch@....de Cc: linux-mm@...ck.org, rkrcmar@...hat.com, jglisse@...hat.com, yi.z.zhang@...el.com, Zhang Yi <yi.z.zhang@...ux.intel.com> Subject: [PATCH V5 3/4] mm: add a function to differentiate the pages is from DAX device memory DAX driver hotplug the device memory and move it to memory zone, these pages will be marked reserved flag, however, some other kernel componet will misconceive these pages are reserved mmio (ex: we map these dev_dax or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages is DAX device memory or not. Signed-off-by: Zhang Yi <yi.z.zhang@...ux.intel.com> Signed-off-by: Zhang Yu <yu.c.zhang@...ux.intel.com> Acked-by: Jan Kara <jack@...e.cz> --- include/linux/mm.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index 68a5121..de5cbc3 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -889,6 +889,13 @@ static inline bool is_device_public_page(const struct page *page) page->pgmap->type == MEMORY_DEVICE_PUBLIC; } +static inline bool is_dax_page(const struct page *page) +{ + return is_zone_device_page(page) && + (page->pgmap->type == MEMORY_DEVICE_FS_DAX || + page->pgmap->type == MEMORY_DEVICE_DEV_DAX); +} + #else /* CONFIG_DEV_PAGEMAP_OPS */ static inline void dev_pagemap_get_ops(void) { @@ -912,6 +919,11 @@ static inline bool is_device_public_page(const struct page *page) { return false; } + +static inline bool is_dax_page(const struct page *page) +{ + return false; +} #endif /* CONFIG_DEV_PAGEMAP_OPS */ static inline void get_page(struct page *page) -- 2.7.4
Powered by blists - more mailing lists