uprobes: Add exports for module use
The original pull message for uprobes (commit 654443e2
) noted:
This tree includes uprobes support in 'perf probe' - but SystemTap
(and other tools) can take advantage of user probe points as well.
In order to actually be usable in module-based tools like SystemTap, the
interface needs to be exported. This patch first adds the obvious
exports for uprobe_register and uprobe_unregister. Then it also adds
one for task_user_regset_view, which is necessary to get the correct
state of userspace registers.
Signed-off-by: Josh Stone <jistone@redhat.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
This commit is contained in:
parent
af4355e91f
commit
e8440c1458
2 changed files with 9 additions and 0 deletions
|
@ -27,6 +27,7 @@
|
|||
#include <linux/pagemap.h> /* read_mapping_page */
|
||||
#include <linux/slab.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/rmap.h> /* anon_vma_prepare */
|
||||
#include <linux/mmu_notifier.h> /* set_pte_at_notify */
|
||||
#include <linux/swap.h> /* try_to_free_swap */
|
||||
|
@ -851,6 +852,7 @@ int uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *
|
|||
goto retry;
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(uprobe_register);
|
||||
|
||||
/*
|
||||
* uprobe_unregister - unregister a already registered probe.
|
||||
|
@ -871,6 +873,7 @@ void uprobe_unregister(struct inode *inode, loff_t offset, struct uprobe_consume
|
|||
up_write(&uprobe->register_rwsem);
|
||||
put_uprobe(uprobe);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(uprobe_unregister);
|
||||
|
||||
static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm)
|
||||
{
|
||||
|
|
|
@ -712,6 +712,12 @@ static int ptrace_regset(struct task_struct *task, int req, unsigned int type,
|
|||
kiov->iov_len, kiov->iov_base);
|
||||
}
|
||||
|
||||
/*
|
||||
* This is declared in linux/regset.h and defined in machine-dependent
|
||||
* code. We put the export here, near the primary machine-neutral use,
|
||||
* to ensure no machine forgets it.
|
||||
*/
|
||||
EXPORT_SYMBOL_GPL(task_user_regset_view);
|
||||
#endif
|
||||
|
||||
int ptrace_request(struct task_struct *child, long request,
|
||||
|
|
Loading…
Reference in a new issue