summaryrefslogtreecommitdiffstats
path: root/runtime/uprobes/uprobes.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2007-11-04 14:11:15 -0500
committerFrank Ch. Eigler <fche@elastic.org>2007-11-04 14:11:15 -0500
commit806b26a85d30f59af7dcb0025c68a50bf4bbb352 (patch)
tree8b1cc9edab49eda46278199a7027d956549f6ddb /runtime/uprobes/uprobes.c
parent24993e4fcae48ca014e6b53f3f9a011c9cfa8f06 (diff)
parent600e72b28cc0676dc581b8fc5d54c09772979b79 (diff)
downloadsystemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.tar.gz
systemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.tar.xz
systemtap-steved-806b26a85d30f59af7dcb0025c68a50bf4bbb352.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime/uprobes/uprobes.c')
-rw-r--r--runtime/uprobes/uprobes.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/uprobes/uprobes.c b/runtime/uprobes/uprobes.c
index 9f5fddd0..50930709 100644
--- a/runtime/uprobes/uprobes.c
+++ b/runtime/uprobes/uprobes.c
@@ -40,6 +40,8 @@
#define SET_ENGINE_FLAGS 1
#define CLEAR_ENGINE_FLAGS 0
+#define MAX_SSOL_SLOTS 1024
+
extern int access_process_vm(struct task_struct *tsk, unsigned long addr,
void *buf, int len, int write);
static int utask_fake_quiesce(struct uprobe_task *utask);
@@ -1240,6 +1242,8 @@ static noinline void uprobe_init_ssol(struct uprobe_process *uproc)
return;
area->nfree = area->nslots = PAGE_SIZE / MAX_UINSN_BYTES;
+ if (area->nslots > MAX_SSOL_SLOTS)
+ area->nfree = area->nslots = MAX_SSOL_SLOTS;
area->slots = (struct uprobe_ssol_slot *)
kzalloc(sizeof(struct uprobe_ssol_slot) * area->nslots,
GFP_USER);