Heh, your .config is insidious: ffffffff9ffe3000 B __brk_base ffffffff9ffe3000 B __bss_stop ffffffff9fff3000 b .brk.dmi_alloc ffffffffa0003000 b .brk.early_pgt_alloc ffffffffa000f000 B _end ffffffffa000f000 B __brk_limit
dmi_alloc is __init, so it gets freed at some point and the PTEs zeroed out. That causes the warning when change_page_attr() sees the zero'd PTE. We just need to special-case the __init section along with the linear map in pageattr.c. I'll have some patches to do this shortly.