diff options
author | Tony Luck <aegl@agluck-desktop.(none)> | 2009-03-31 14:25:08 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2009-03-31 14:25:08 -0700 |
commit | c66b31f3926165bc1d4128adc97a064dcbab421a (patch) | |
tree | 13be75d33bd2b9d4ec45ec512ac38a2e7069062e /arch/ia64/mm | |
parent | 50fbe56c127efde659c686495eb1f925fd84ff0a (diff) | |
parent | 7120569c76028a6883697b7643564f0c419cfe07 (diff) | |
download | linux-stable-c66b31f3926165bc1d4128adc97a064dcbab421a.tar.gz linux-stable-c66b31f3926165bc1d4128adc97a064dcbab421a.tar.bz2 linux-stable-c66b31f3926165bc1d4128adc97a064dcbab421a.zip |
Pull pvops into release branch
Diffstat (limited to 'arch/ia64/mm')
-rw-r--r-- | arch/ia64/mm/init.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 56e12903973c..8503d534794f 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c @@ -35,6 +35,7 @@ #include <asm/uaccess.h> #include <asm/unistd.h> #include <asm/mca.h> +#include <asm/paravirt.h> DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); @@ -259,6 +260,7 @@ put_kernel_page (struct page *page, unsigned long address, pgprot_t pgprot) static void __init setup_gate (void) { + void *gate_section; struct page *page; /* @@ -266,10 +268,11 @@ setup_gate (void) * headers etc. and once execute-only page to enable * privilege-promotion via "epc": */ - page = virt_to_page(ia64_imva(__start_gate_section)); + gate_section = paravirt_get_gate_section(); + page = virt_to_page(ia64_imva(gate_section)); put_kernel_page(page, GATE_ADDR, PAGE_READONLY); #ifdef HAVE_BUGGY_SEGREL - page = virt_to_page(ia64_imva(__start_gate_section + PAGE_SIZE)); + page = virt_to_page(ia64_imva(gate_section + PAGE_SIZE)); put_kernel_page(page, GATE_ADDR + PAGE_SIZE, PAGE_GATE); #else put_kernel_page(page, GATE_ADDR + PERCPU_PAGE_SIZE, PAGE_GATE); @@ -667,8 +670,8 @@ mem_init (void) * code can tell them apart. */ for (i = 0; i < NR_syscalls; ++i) { - extern unsigned long fsyscall_table[NR_syscalls]; extern unsigned long sys_call_table[NR_syscalls]; + unsigned long *fsyscall_table = paravirt_get_fsyscall_table(); if (!fsyscall_table[i] || nolwsys) fsyscall_table[i] = sys_call_table[i] | 1; |