[RFCv2 09/13] shmem: Fail shmem_getpage_gfp() on poisoned pages

From: Kirill A. Shutemov
Date: Fri Apr 16 2021 - 11:42:02 EST


Forbid access to poisoned pages.

TODO: Probably more fine-grained approach is needed. It shuld be a
allowed to fault-in these pages as hwpoison entries.

Not-Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
---
mm/shmem.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/mm/shmem.c b/mm/shmem.c
index 7c6b6d8f6c39..d29a0c9be19c 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1832,6 +1832,13 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index,

if (page)
hindex = page->index;
+
+ if (page && PageHWPoison(page)) {
+ unlock_page(page);
+ put_page(page);
+ return -EIO;
+ }
+
if (page && sgp == SGP_WRITE)
mark_page_accessed(page);

--
2.26.3