Pull pvops into release branch
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user