diff -Nru ktap-0.4+git20160427/debian/changelog ktap-0.4+git20160427/debian/changelog --- ktap-0.4+git20160427/debian/changelog 2017-08-09 10:12:13.000000000 -0300 +++ ktap-0.4+git20160427/debian/changelog 2019-11-15 16:30:33.000000000 -0300 @@ -1,3 +1,11 @@ +ktap (0.4+git20160427-1ubuntu4) bionic; urgency=medium + + * Linux 5.2 and 5.3 compatibility (LP: #1849569) + - debian/patches/fix-stacktrace-5.2.patch + - debian/patches/fix-tracing_generic_entry_update-5.3.patch + + -- Marcelo Henrique Cerri Fri, 15 Nov 2019 16:30:33 -0300 + ktap (0.4+git20160427-1ubuntu3) artful; urgency=medium * Linux 4.13 compatibility (LP: #1706427) diff -Nru ktap-0.4+git20160427/debian/patches/fix-stacktrace-5.2.patch ktap-0.4+git20160427/debian/patches/fix-stacktrace-5.2.patch --- ktap-0.4+git20160427/debian/patches/fix-stacktrace-5.2.patch 1969-12-31 21:00:00.000000000 -0300 +++ ktap-0.4+git20160427/debian/patches/fix-stacktrace-5.2.patch 2019-11-15 16:30:33.000000000 -0300 @@ -0,0 +1,104 @@ +--- a/runtime/kp_obj.c ++++ b/runtime/kp_obj.c +@@ -23,7 +23,7 @@ + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + */ + +-#include ++#include "kp_stacktrace.h" + #include + #include + #include +@@ -238,11 +238,10 @@ + return o; + } + +- + /* this function may be time consuming, move out from table set/get? */ + ktap_str_t *kp_obj_kstack2str(ktap_state_t *ks, uint16_t depth, uint16_t skip) + { +- struct stack_trace trace; ++ kp_stack_trace_t trace; + unsigned long *bt; + char *btstr, *p; + int i; +@@ -252,7 +251,7 @@ + trace.skip = skip; + trace.max_entries = depth; + trace.entries = (unsigned long *)(bt + 1); +- save_stack_trace(&trace); ++ kp_save_stack_trace(&trace); + + /* convert backtrace to string */ + p = btstr = kp_this_cpu_temp_buffer(ks); +--- /dev/null ++++ b/runtime/kp_stacktrace.h +@@ -0,0 +1,30 @@ ++#ifndef __KTAP_STACKTRACE_H__ ++#define __KTAP_STACKTRACE_H__ ++ ++#include ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 2, 0) ++typedef struct { ++ unsigned int nr_entries, max_entries; ++ unsigned long *entries; ++ int skip; ++} kp_stack_trace_t; ++ ++static void kp_save_stack_trace(kp_stack_trace_t *trace) ++{ ++ trace->nr_entries = stack_trace_save(trace->entries, ++ trace->max_entries, trace->skip); ++} ++ ++#else // 5.2.0 ++ ++typedef struct stack_trace kp_stack_trace_t; ++ ++static void kp_save_stack_trace(kp_stack_trace_t *trace) ++{ ++ save_stack_trace((struct stack_trace*) trace); ++} ++ ++#endif // 5.2.0 ++ ++#endif /* __KTAP_STACKTRACE_H__ */ +--- a/runtime/kp_transport.c ++++ b/runtime/kp_transport.c +@@ -21,7 +21,7 @@ + + #include "trace_events.h" + #include +-#include ++#include "kp_stacktrace.h" + #include + #include + #include +@@ -168,7 +168,7 @@ + static enum print_line_t print_trace_stack(struct trace_iterator *iter) + { + struct trace_entry *entry = iter->ent; +- struct stack_trace trace; ++ kp_stack_trace_t trace; + char str[KSYM_SYMBOL_LEN]; + int i; + +@@ -496,7 +496,7 @@ + KTAP_STATS(ks)->events_missed += 1; + return; + } else { +- struct stack_trace trace; ++ kp_stack_trace_t trace; + + entry = ring_buffer_event_data(event); + tracing_generic_entry_update(entry, 0, 0); +@@ -506,7 +506,7 @@ + trace.skip = skip; + trace.max_entries = depth; + trace.entries = (unsigned long *)(entry + 1); +- save_stack_trace(&trace); ++ kp_save_stack_trace(&trace); + + ring_buffer_unlock_commit(buffer, event); + } diff -Nru ktap-0.4+git20160427/debian/patches/fix-tracing_generic_entry_update-5.3.patch ktap-0.4+git20160427/debian/patches/fix-tracing_generic_entry_update-5.3.patch --- ktap-0.4+git20160427/debian/patches/fix-tracing_generic_entry_update-5.3.patch 1969-12-31 21:00:00.000000000 -0300 +++ ktap-0.4+git20160427/debian/patches/fix-tracing_generic_entry_update-5.3.patch 2019-11-15 16:30:33.000000000 -0300 @@ -0,0 +1,38 @@ +--- a/runtime/kp_transport.c ++++ b/runtime/kp_transport.c +@@ -499,7 +499,11 @@ + kp_stack_trace_t trace; + + entry = ring_buffer_event_data(event); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ tracing_generic_entry_update(entry, entry->type, 0, 0); ++#else + tracing_generic_entry_update(entry, 0, 0); ++#endif + entry->type = TRACE_STACK; + + trace.nr_entries = 0; +@@ -550,7 +554,11 @@ + } else { + entry = ring_buffer_event_data(event); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ tracing_generic_entry_update(entry, entry->type, 0, 0); ++#else + tracing_generic_entry_update(entry, 0, 0); ++#endif + entry->type = TRACE_PRINT; + memcpy(entry + 1, data, length); + +@@ -594,7 +602,11 @@ + } else { + entry = ring_buffer_event_data(event); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) ++ tracing_generic_entry_update(entry, entry->type, 0, 0); ++#else + tracing_generic_entry_update(entry, 0, 0); ++#endif + entry->type = TRACE_BPUTS; + *(unsigned long *)(entry + 1) = (unsigned long)str; + diff -Nru ktap-0.4+git20160427/debian/patches/series ktap-0.4+git20160427/debian/patches/series --- ktap-0.4+git20160427/debian/patches/series 2017-08-09 09:39:25.000000000 -0300 +++ ktap-0.4+git20160427/debian/patches/series 2019-11-15 16:30:33.000000000 -0300 @@ -2,3 +2,5 @@ perf-record-data.patch cycle-t.patch remove-strlen-user.patch +fix-stacktrace-5.2.patch +fix-tracing_generic_entry_update-5.3.patch