}
}
-int sspt_register_page(struct sspt_page *page,
- struct sspt_file *file,
- struct task_struct *task)
+int sspt_register_page(struct sspt_page *page, struct sspt_file *file)
{
int err = 0;
struct us_ip *ip, *n;
spin_lock(&page->lock);
if (sspt_page_is_install(page)) {
+ struct task_struct *task = page->file->procs->task;
+
printk("page %lx in %s task[tgid=%u, pid=%u] already installed\n",
page->offset, file->dentry->d_iname, task->tgid, task->pid);
goto unlock;
void sspt_set_all_ip_addr(struct sspt_page *page, const struct sspt_file *file);
-int sspt_register_page(struct sspt_page *page,
- struct sspt_file *file,
- struct task_struct *task);
+int sspt_register_page(struct sspt_page *page, struct sspt_file *file);
int sspt_unregister_page(struct sspt_page *page,
enum US_FLAGS flag,
page = sspt_find_page_mapped(file, page_addr);
if (page) {
- sspt_register_page(page, file, task);
+ sspt_register_page(page, file);
}
}
}
for (i = 0; i < table_size; ++i) {
head = &file->page_probes_table[i];
swap_hlist_for_each_entry_rcu(page, node, head, hlist) {
- sspt_register_page(page, file, task);
+ sspt_register_page(page, file);
}
}
}