diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index 50d29f5da02b4d355129eb85bc68b7603afc10e7..f51180c02b8fafd94d41f1c91b0a57e5cdbaf244 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -573,7 +573,6 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
 		set_memory_rw(begin, (end - begin)/PAGE_SIZE);
 		set_memory_np(begin, (end - begin)/PAGE_SIZE);
 		set_memory_nx(begin, (end - begin)/PAGE_SIZE);
-		rodata_test();
 	}
 #endif
 }
@@ -614,6 +613,8 @@ void mark_rodata_ro(void)
 	printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
 	       (end - start) >> 10);
 
+	rodata_test();
+
 #ifdef CONFIG_CPA_DEBUG
 	printk("Testing CPA: undo %lx-%lx\n", start, end);
 	set_memory_rw(start, (end-start) >> PAGE_SHIFT);