fix:
> hm, i just found a failing 64-bit .config while testing your CPA
> patchset:
>
> [ 1.916541] CPA mapping 4k 0 large 2048 gb 0 x 0[0-0] miss 0
> [ 1.919874] Unable to handle kernel paging request at
000000000335aea8 RIP:
> [ 1.919874] [<
ffffffff8021d2d3>] change_page_attr+0x3/0x61
> [ 1.919874] PGD 0
> [ 1.919874] Oops: 0000 [1]
> [ 1.919874] CPU 0
This handles addresses which don't have a mem_map entry.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
continue;
}
- err = change_page_attr(virt_to_page(addr[i]), len[i],
+ err = change_page_attr_addr(addr[i], len[i],
pte_pgprot(pte_clrhuge(pte_clrglobal(pte0))));
if (err < 0) {
printk(KERN_ERR "CPA %d failed %d\n", i, err);
failed++;
continue;
}
- err = change_page_attr(virt_to_page(addr[i]), len[i],
+ err = change_page_attr_addr(addr[i], len[i],
pte_pgprot(pte_mkglobal(*pte)));
if (err < 0) {
printk(KERN_ERR "CPA reverting failed: %d\n", err);