diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2007-07-22 11:12:29 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-22 11:03:37 -0700 |
commit | f51c94528a9bc73504928926ca4d791a2b7ddd7c (patch) | |
tree | 1562581d26098916a35a27ee58021f483c85b3da /arch/x86_64/mm | |
parent | abd4f7505bafdd6c5319fe3cb5caf9af6104e17a (diff) | |
download | kernel-crypto-f51c94528a9bc73504928926ca4d791a2b7ddd7c.tar.gz kernel-crypto-f51c94528a9bc73504928926ca4d791a2b7ddd7c.tar.xz kernel-crypto-f51c94528a9bc73504928926ca4d791a2b7ddd7c.zip |
x86_64: Use read and write crX in .c files
This patch uses the read and write functions provided at system.h
for control registers instead of writting raw assembly over and
over again in .c files. Functions to manipulate cr2 and cr8 were
provided, as they were lacking.
Also, removed some extra space after closing brackets
Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86_64/mm')
-rw-r--r-- | arch/x86_64/mm/fault.c | 4 | ||||
-rw-r--r-- | arch/x86_64/mm/init.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c index 5e9ac70c135..327c9f2fa62 100644 --- a/arch/x86_64/mm/fault.c +++ b/arch/x86_64/mm/fault.c @@ -159,7 +159,7 @@ void dump_pagetable(unsigned long address) pmd_t *pmd; pte_t *pte; - asm("movq %%cr3,%0" : "=r" (pgd)); + pgd = (pgd_t *)read_cr3(); pgd = __va((unsigned long)pgd & PHYSICAL_PAGE_MASK); pgd += pgd_index(address); @@ -316,7 +316,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, prefetchw(&mm->mmap_sem); /* get the address */ - __asm__("movq %%cr2,%0":"=r" (address)); + address = read_cr2(); info.si_code = SEGV_MAPERR; diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 88678e82e23..2044fa961c0 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c @@ -383,7 +383,7 @@ void __meminit init_memory_mapping(unsigned long start, unsigned long end) } if (!after_bootmem) - asm volatile("movq %%cr4,%0" : "=r" (mmu_cr4_features)); + mmu_cr4_features = read_cr4(); __flush_tlb_all(); } |