Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6ba9b7d8f0fe786954015ce5c0ef1837d5df56b7 Commit: 6ba9b7d8f0fe786954015ce5c0ef1837d5df56b7 Parent: aaa0e89023656c078c67cbd0460fc2ccbf3323c6 Author: Andi Kleen <[EMAIL PROTECTED]> AuthorDate: Wed Jan 30 13:33:52 2008 +0100 Committer: Ingo Molnar <[EMAIL PROTECTED]> CommitDate: Wed Jan 30 13:33:52 2008 +0100
x86: fix c_p_a() boot crash 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 <[EMAIL PROTECTED]> Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]> Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]> --- arch/x86/mm/pageattr-test.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c index c58fab0..91e05a2 100644 --- a/arch/x86/mm/pageattr-test.c +++ b/arch/x86/mm/pageattr-test.c @@ -177,7 +177,7 @@ static __init int exercise_pageattr(void) 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); @@ -212,7 +212,7 @@ static __init int exercise_pageattr(void) 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); - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html