[PATCH] scripts/decode_stacktrace: Accept dash/underscore in modules

From: Evan Green
Date: Fri May 31 2019 - 17:03:30 EST


The manpage for modprobe mentions that dashes and underscores are
treated interchangeably in module names. The stack trace dumps seem
to print module names with underscores. Use bash to replace _ with
the pattern [-_] so that file names with dashes or underscores can be
found.

For example, this line:
[ 27.919759] hda_widget_sysfs_init+0x2b8/0x3a5 [snd_hda_core]

should find a module named snd-hda-core.ko.

Signed-off-by: Evan Green <evgreen@xxxxxxxxxxxx>
---

Note: This should apply atop linux-next.

Thanks to Doug for showing me the bash string substitution magic.

---
scripts/decode_stacktrace.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/decode_stacktrace.sh b/scripts/decode_stacktrace.sh
index fa704f17275e..13e5fbafdf2f 100755
--- a/scripts/decode_stacktrace.sh
+++ b/scripts/decode_stacktrace.sh
@@ -28,7 +28,7 @@ parse_symbol() {
local objfile=${modcache[$module]}
else
[[ $modpath == "" ]] && return
- local objfile=$(find "$modpath" -name "$module.ko*" -print -quit)
+ local objfile=$(find "$modpath" -name "${module//_/[-_]}.ko*" -print -quit)
[[ $objfile == "" ]] && return
modcache[$module]=$objfile
fi
--
2.20.1