summaryrefslogtreecommitdiffstats
path: root/runtime/transport
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/transport')
-rw-r--r--runtime/transport/ChangeLog8
-rw-r--r--runtime/transport/relayfs.c8
-rw-r--r--runtime/transport/transport.c7
-rw-r--r--runtime/transport/utt.c7
-rw-r--r--runtime/transport/utt.h2
5 files changed, 25 insertions, 7 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog
index 4872fa11..ee34ef19 100644
--- a/runtime/transport/ChangeLog
+++ b/runtime/transport/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-09 Martin Hunt <hunt@redhat.com>
+ PR 5281
+ * transport.c (_stp_detach, _stp_attach): Call utt_set_overwrite()
+ instead of setting a flag directly.
+ * utt.c (utt_set_overwrite): New. Set overwrite mode.
+ * relayfs.c (utt_set_overwrite): New. Set overwrite mode.
+ * utt.h: Remove global utt_overwrite_flag.
+
2007-11-01 Martin Hunt <hunt@redhat.com>
* procfs.c, control.c, transport.c: Recognize when stapio
diff --git a/runtime/transport/relayfs.c b/runtime/transport/relayfs.c
index 28bb0e65..2c7ca754 100644
--- a/runtime/transport/relayfs.c
+++ b/runtime/transport/relayfs.c
@@ -1,5 +1,5 @@
/* -*- linux-c -*-
- * relayfs.c - relayfstransport functions
+ * relayfs.c - relayfs transport functions
*
* Copyright (C) IBM Corporation, 2005, 2006
* Copyright (C) Red Hat Inc, 2005, 2006, 2007
@@ -122,6 +122,12 @@ err:
return NULL;
}
+void utt_set_overwrite(int overwrite)
+{
+ if (_stp_utt)
+ _stp_utt->rchan->overwrite = overwrite;
+}
+
int utt_trace_startstop(struct utt_trace *utt, int start,
unsigned int *trace_seq)
{
diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
index 0a959917..9aa26b79 100644
--- a/runtime/transport/transport.c
+++ b/runtime/transport/transport.c
@@ -21,13 +21,14 @@
#include "symbols.c"
#include "../procfs.c"
+static struct utt_trace *_stp_utt = NULL;
+
#ifdef STP_OLD_TRANSPORT
#include "relayfs.c"
#else
#include "utt.c"
#endif
-static struct utt_trace *_stp_utt = NULL;
static unsigned int utt_seq = 1;
static int _stp_start_finished = 0;
@@ -153,7 +154,7 @@ static void _stp_detach(void)
_stp_pid = 0;
if (!_stp_exit_flag)
- utt_overwrite_flag = 1;
+ utt_set_overwrite(1);
cancel_delayed_work(&_stp_work);
wake_up_interruptible(&_stp_ctl_wq);
@@ -167,7 +168,7 @@ static void _stp_attach(void)
kbug("attach\n");
_stp_attached = 1;
_stp_pid = current->pid;
- utt_overwrite_flag = 0;
+ utt_set_overwrite(0);
queue_delayed_work(_stp_wq, &_stp_work, STP_WORK_TIMER);
}
diff --git a/runtime/transport/utt.c b/runtime/transport/utt.c
index 0871266a..ac2e1513 100644
--- a/runtime/transport/utt.c
+++ b/runtime/transport/utt.c
@@ -29,7 +29,12 @@
#include <linux/relay.h>
#include "utt.h"
-int utt_overwrite_flag = 0;
+static int utt_overwrite_flag = 0;
+
+void utt_set_overwrite(int overwrite)
+{
+ utt_overwrite_flag = overwrite;
+}
static void utt_remove_root(struct utt_trace *utt)
{
diff --git a/runtime/transport/utt.h b/runtime/transport/utt.h
index 00da0f7e..b2c9fa9f 100644
--- a/runtime/transport/utt.h
+++ b/runtime/transport/utt.h
@@ -39,6 +39,4 @@ extern int utt_trace_startstop(struct utt_trace *utt, int start,
extern void utt_trace_cleanup(struct utt_trace *utt);
extern int utt_trace_remove(struct utt_trace *utt);
-extern int utt_overwrite_flag;
-
#endif