diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 53c89de89e46f653b5685bdc1a043a7727556c40..9a39009b15625e86fe659b087dd649492be982b6 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1156,8 +1156,11 @@ static void kernel_init_free_pages(struct page *page, int numpages)
 {
 	int i;
 
+	/* s390's use of memset() could override KASAN redzones. */
+	kasan_disable_current();
 	for (i = 0; i < numpages; i++)
 		clear_highpage(page + i);
+	kasan_enable_current();
 }
 
 static __always_inline bool free_pages_prepare(struct page *page,