|
@@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[];
|
|
|
extern unsigned long *ia32_gdt;
|
|
|
extern struct page *ia32_gate_page;
|
|
|
|
|
|
-struct page *
|
|
|
-ia32_install_shared_page (struct vm_area_struct *vma, unsigned long address, int *type)
|
|
|
+int
|
|
|
+ia32_install_shared_page (struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
|
{
|
|
|
- struct page *pg = ia32_shared_page[smp_processor_id()];
|
|
|
- get_page(pg);
|
|
|
- if (type)
|
|
|
- *type = VM_FAULT_MINOR;
|
|
|
- return pg;
|
|
|
+ vmf->page = ia32_shared_page[smp_processor_id()];
|
|
|
+ get_page(vmf->page);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
-struct page *
|
|
|
-ia32_install_gate_page (struct vm_area_struct *vma, unsigned long address, int *type)
|
|
|
+int
|
|
|
+ia32_install_gate_page (struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
|
{
|
|
|
- struct page *pg = ia32_gate_page;
|
|
|
- get_page(pg);
|
|
|
- if (type)
|
|
|
- *type = VM_FAULT_MINOR;
|
|
|
- return pg;
|
|
|
+ vmf->page = ia32_gate_page;
|
|
|
+ get_page(vmf->page);
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
static struct vm_operations_struct ia32_shared_page_vm_ops = {
|
|
|
- .nopage = ia32_install_shared_page
|
|
|
+ .fault = ia32_install_shared_page
|
|
|
};
|
|
|
|
|
|
static struct vm_operations_struct ia32_gate_page_vm_ops = {
|
|
|
- .nopage = ia32_install_gate_page
|
|
|
+ .fault = ia32_install_gate_page
|
|
|
};
|
|
|
|
|
|
void
|