[FIX] correct calculation of page address
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 5 Sep 2013 08:53:39 +0000 (12:53 +0400)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 5 Sep 2013 08:53:39 +0000 (12:53 +0400)
Change-Id: I98c803de30366a508eefe245eac1913daec30bbb
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
us_manager/sspt/sspt_file.c

index bb968ed..081a37c 100644 (file)
@@ -188,13 +188,16 @@ void sspt_file_install(struct sspt_file *file)
        struct hlist_node *node = NULL;
        struct hlist_head *head = NULL;
        int i, table_size = (1 << file->page_probes_hash_bits);
+       unsigned long page_addr;
        struct mm_struct *mm;
 
        for (i = 0; i < table_size; ++i) {
                head = &file->page_probes_table[i];
                swap_hlist_for_each_entry_rcu(page, node, head, hlist) {
+                       page_addr = file->vm_start + page->offset;
                        mm = page->file->proc->task->mm;
-                       if (page_present(mm, page->offset))
+
+                       if (page_present(mm, page_addr))
                                sspt_register_page(page, file);
                }
        }