systemtap/systemtap-2.6.28-fixes.diff

61 lines
2.9 KiB
Diff

--- tapsets.cxx-dist 2008-12-16 12:43:34.000000000 +0100
+++ tapsets.cxx 2008-12-16 12:46:33.000000000 +0100
@@ -8520,6 +8520,12 @@ hrtimer_derived_probe_group::emit_module
s.op->newline(-1) << "};";
s.op->newline();
+ // autoconf: add get/set expires if missing (pre 2.6.28-rc1)
+ s.op->newline() << "#ifndef STAPCONF_HRTIMER_GETSET_EXPIRES";
+ s.op->newline() << "#define hrtimer_get_expires(timer) ((timer)->expires)";
+ s.op->newline() << "#define hrtimer_set_expires(timer, time) (void)((timer)->expires = (time))";
+ s.op->newline() << "#endif";
+
// autoconf: adapt to HRTIMER_REL -> HRTIMER_MODE_REL renaming near 2.6.21
s.op->newline() << "#ifdef STAPCONF_HRTIMER_REL";
s.op->newline() << "#define HRTIMER_MODE_REL HRTIMER_REL";
@@ -8538,9 +8544,9 @@ hrtimer_derived_probe_group::emit_module
s.op->newline() << "if ((atomic_read (&session_state) == STAP_SESSION_STARTING) ||";
s.op->newline() << " (atomic_read (&session_state) == STAP_SESSION_RUNNING)) {";
// Compute next trigger time
- s.op->newline(1) << "timer->expires = ktime_add (timer->expires,";
+ s.op->newline(1) << "hrtimer_set_expires(timer, ktime_add (hrtimer_get_expires(timer),";
emit_interval (s.op);
- s.op->line() << ");";
+ s.op->line() << "));";
s.op->newline() << "rc = HRTIMER_RESTART;";
s.op->newline(-1) << "}";
s.op->newline() << "{";
--- runtime/autoconf-hrtimer-getset-expires.c-dist 2008-12-16 13:33:46.000000000 +0100
+++ runtime/autoconf-hrtimer-getset-expires.c 2008-12-16 13:33:59.000000000 +0100
@@ -0,0 +1,6 @@
+#include <linux/hrtimer.h>
+
+void ____autoconf_func(struct hrtimer *t)
+{
+ hrtimer_set_expires(t, hrtimer_get_expires(t));
+}
--- runtime/runtime.h-dist 2008-12-16 12:44:39.000000000 +0100
+++ runtime/runtime.h 2008-12-16 12:44:52.000000000 +0100
@@ -39,6 +39,11 @@
#define STP_OLD_TRANSPORT
#endif
+/* HACK for 2.6.28 */
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,27)
+#undef for_each_cpu
+#endif
+
#ifndef for_each_cpu
#define for_each_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map)
#endif
--- buildrun.cxx-dist 2008-12-16 13:33:08.000000000 +0100
+++ buildrun.cxx 2008-12-16 13:33:24.000000000 +0100
@@ -100,6 +100,7 @@ compile_pass (systemtap_session& s)
o << module_cflags << " += -Iinclude2/asm/mach-default" << endl;
o << module_cflags << " += $(call stap_check_build, $(SYSTEMTAP_RUNTIME)/autoconf-hrtimer-rel.c, -DSTAPCONF_HRTIMER_REL,)" << endl;
+ o << module_cflags << " += $(call stap_check_build, $(SYSTEMTAP_RUNTIME)/autoconf-hrtimer-getset-expires.c, -DSTAPCONF_HRTIMER_GETSET_EXPIRES,)" << endl;
o << module_cflags << " += $(call stap_check_build, $(SYSTEMTAP_RUNTIME)/autoconf-inode-private.c, -DSTAPCONF_INODE_PRIVATE,)" << endl;
o << module_cflags << " += $(call stap_check_build, $(SYSTEMTAP_RUNTIME)/autoconf-constant-tsc.c, -DSTAPCONF_CONSTANT_TSC,)" << endl;
o << module_cflags << " += $(call stap_check_build, $(SYSTEMTAP_RUNTIME)/autoconf-tsc-khz.c, -DSTAPCONF_TSC_KHZ,)" << endl;