summaryrefslogtreecommitdiffstats
path: root/runtime/transport
diff options
context:
space:
mode:
authorhunt <hunt>2007-03-21 15:09:57 +0000
committerhunt <hunt>2007-03-21 15:09:57 +0000
commitc45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf (patch)
tree9a242cf5d0dbf2b9bd3013ac529c22de0c93faf1 /runtime/transport
parentee8d9a0d5b784bc02d07ff587d71b1f9d4557635 (diff)
downloadsystemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.tar.gz
systemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.tar.xz
systemtap-steved-c45f6fbff2e7e32b1b9cd4c6e726fa202a4542cf.zip
2007-03-21 Martin Hunt <hunt@redhat.com>
* sym.h: Declare _stp_module_relocate. * sym.c (_stp_module_relocate): Add comments, reformat, add a way for "last" cached values to be cleared when modules are removed. (_stp_symbol_print): Simplify and remove static buffer. (_stp_symbol_snprint): Ditto. * symbols.c (_stp_del_module): Add a call to _stp_module_relocate to clear its cache.
Diffstat (limited to 'runtime/transport')
-rw-r--r--runtime/transport/ChangeLog5
-rw-r--r--runtime/transport/symbols.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog
index 90661baf..f752ccd4 100644
--- a/runtime/transport/ChangeLog
+++ b/runtime/transport/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-21 Martin Hunt <hunt@redhat.com>
+
+ * symbols.c (_stp_del_module): Add a call to _stp_module_relocate
+ to clear its cache.
+
2007-03-20 Frank Ch. Eigler <fche@elastic.org>
* symbols.c (_stp_do_symbols): Add cautionary blurb for important
diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
index ee5e967e..9780b0b1 100644
--- a/runtime/transport/symbols.c
+++ b/runtime/transport/symbols.c
@@ -1,7 +1,7 @@
/* -*- linux-c -*-
* symbols.c - stp symbol and module functions
*
- * Copyright (C) Red Hat Inc, 2006
+ * Copyright (C) Red Hat Inc, 2006, 2007
*
* This file is part of systemtap, and is free software. You can
* redistribute it and/or modify it under the terms of the GNU General
@@ -110,6 +110,9 @@ static void _stp_del_module(struct _stp_module *mod)
// kbug("deleting %s\n", mod->name);
+ /* signal relocation code to clear its cache */
+ _stp_module_relocate((char *)-1, NULL, 0);
+
/* remove module from the arrays */
for (num = 0; num < _stp_num_modules; num++) {
if (_stp_modules[num] == mod)