summaryrefslogtreecommitdiffstats
path: root/tapsets.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tapsets.cxx')
-rw-r--r--tapsets.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx
index 281fcd0a..7e1c196a 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -2348,9 +2348,12 @@ dwarf_query::build_blacklist()
blacklisted_probes.insert("_spin_unlock");
blacklisted_probes.insert("_spin_unlock_irqrestore");
- // __switch_to is only disallowed on x86_64
+ // __switch_to changes "current" on x86_64 and i686, so return probes
+ // would cause kernel panic, and it is marked as "__kprobes" on x86_64
if (sess.architecture == "x86_64")
blacklisted_probes.insert("__switch_to");
+ if (sess.architecture == "i686")
+ blacklisted_return_probes.insert("__switch_to");
// These functions don't return, so return probes would never be recovered
blacklisted_return_probes.insert("do_exit");