sysprof r435 - in trunk: . module
- From: ssp svn gnome org
- To: svn-commits-list gnome org
- Subject: sysprof r435 - in trunk: . module
- Date: Sun, 14 Sep 2008 20:07:08 +0000 (UTC)
Author: ssp
Date: Sun Sep 14 20:07:08 2008
New Revision: 435
URL: http://svn.gnome.org/viewvc/sysprof?rev=435&view=rev
Log:
Sun Sep 14 16:04:17 2008 SÃren Sandmann <sandmann redhat com>
* sysprof/module/sysprof-module.c: Update to work with new
vm_operations interface from 2.6.23. Patch from Chris Wilson.
Modified:
trunk/ChangeLog
trunk/module/sysprof-module.c
Modified: trunk/module/sysprof-module.c
==============================================================================
--- trunk/module/sysprof-module.c (original)
+++ trunk/module/sysprof-module.c Sun Sep 14 20:07:08 2008
@@ -459,6 +459,29 @@
return retval;
}
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23))
+static int
+sysprof_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+{
+ unsigned long area_start;
+ unsigned long virt;
+
+#if 0
+ printk (KERN_ALERT "fault called: %p (offset: %d) area: %p\n", vmf->virtual_address, addr - vma->vm_start, area);
+#endif
+
+ area_start = (unsigned long)area;
+
+ virt = area_start + ((unsigned long)vmf->virtual_address - vma->vm_start);
+ if (virt > area_start + sizeof (SysprofMmapArea))
+ return VM_FAULT_SIGBUS;
+
+ vmf->page = vmalloc_to_page ((void *)virt);
+ get_page (vmf->page);
+
+ return 0;
+}
+#else
static struct page *
sysprof_nopage(struct vm_area_struct *vma, unsigned long addr, int *type)
{
@@ -486,12 +509,17 @@
return page_ptr;
}
+#endif
static int
sysprof_mmap(struct file *filp, struct vm_area_struct *vma)
{
static struct vm_operations_struct ops = {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23))
+ .fault = sysprof_fault,
+#else
.nopage = sysprof_nopage,
+#endif
};
if (vma->vm_flags & (VM_WRITE | VM_EXEC))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]