[PATCH] iomap: remove set_memor_ro() on zero page

Luis Chamberlain
2024-08-26T21:26:36Z

Stephen reported a boot failure on ppc power8 system where
set_memor_ro() on the new zero page failed [0]. Christophe Leroy
further clarifies we can't use this on on linear memory on ppc, and
so instead of special casing this just for PowerPC [2] remove the
call as suggested by Darrick.

[0] https://lore.kernel.org/all/20240826175931.1989f99e@canb.auug.org.au/T/#u
[1] https://lore.kernel.org/all/b0fe75b4-c1bb-47f7-a7c3-2534b31c1780@csgroup.eu/
[2] https://lore.kernel.org/all/ZszrJkFOpiy5rCma@bombadil.infradead.org/

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Suggested-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---

This applies to the vfs.blocksize branch on the vfs tree.

fs/iomap/direct-io.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
index c02b266bba52..f637aa0706a3 100644
--- a/fs/iomap/direct-io.c
+++ b/fs/iomap/direct-io.c
@@ -11,7 +11,6 @@
#include <linux/iomap.h>
#include <linux/backing-dev.h>
#include <linux/uio.h>
-#include <linux/set_memory.h>
#include <linux/task_io_accounting_ops.h>
#include "trace.h"

@@ -781,8 +780,6 @@ static int __init iomap_dio_init(void)
if (!zero_page)
return -ENOMEM;

- set_memory_ro((unsigned long)page_address(zero_page),
- 1U << IOMAP_ZERO_PAGE_ORDER);
return 0;
}
fs_initcall(iomap_dio_init);
--
2.43.0