summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>2008-04-24 11:03:54 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-26 19:36:40 +0200
commit3104c3ecef9b16898b335d4a74e9db88abd73c57 (patch)
tree29ce1255c8e4a151efe648cd3c6eb868476245a8 /kernel
parent33c8de9c440d8adb4d8c4c516345b9a738095f2d (diff)
Linux Kernel Markers - Use Immediate Values
Make markers use immediate values. Changelog : - Use imv_* instead of immediate_*. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/marker.c8
-rw-r--r--kernel/module.c1
2 files changed, 7 insertions, 2 deletions
diff --git a/kernel/marker.c b/kernel/marker.c
index 799ec68363ab..76e0fefaf249 100644
--- a/kernel/marker.c
+++ b/kernel/marker.c
@@ -23,6 +23,7 @@
#include <linux/rcupdate.h>
#include <linux/marker.h>
#include <linux/err.h>
+#include <linux/immediate.h>
extern struct marker __start___markers[];
extern struct marker __stop___markers[];
@@ -542,7 +543,7 @@ static int set_marker(struct marker_entry **entry, struct marker *elem,
*/
smp_wmb();
elem->ptype = (*entry)->ptype;
- elem->state = active;
+ elem->state__imv = active;
return 0;
}
@@ -556,7 +557,7 @@ static int set_marker(struct marker_entry **entry, struct marker *elem,
static void disable_marker(struct marker *elem)
{
/* leave "call" as is. It is known statically. */
- elem->state = 0;
+ elem->state__imv = 0;
elem->single.func = __mark_empty_function;
/* Update the function before setting the ptype */
smp_wmb();
@@ -620,6 +621,9 @@ static void marker_update_probes(void)
marker_update_probe_range(__start___markers, __stop___markers);
/* Markers in modules. */
module_update_markers();
+ /* Update immediate values */
+ core_imv_update();
+ module_imv_update();
}
/**
diff --git a/kernel/module.c b/kernel/module.c
index 187dbcb54d70..a5b47406bcae 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2052,6 +2052,7 @@ static struct module *load_module(void __user *umod,
mod->markers + mod->num_markers);
#endif
#ifdef CONFIG_IMMEDIATE
+ /* Immediate values must be updated after markers */
imv_update_range(mod->immediate,
mod->immediate + mod->num_immediate);
#endif