Re: [PATCH] markup_oops: Use modinfo to avoid confusion withunderscored module names

From: Amerigo Wang
Date: Thu Aug 06 2009 - 21:40:37 EST


On Thu, Aug 06, 2009 at 03:21:55PM +0300, Ozan ÃaÄlayan wrote:
>When EIP is at a module having an underscore in its name, the current
>code fails to find it because the module filenames has '-' instead of
>'_'.
>
>Use modinfo to correctly get the full path to the module.
>
>Signed-off-by: Ozan ÃaÄlayan <ozan@xxxxxxxxxxxxx>
>---
>This is just a trivial patch to pinpoint the problem. Usage of modinfo is faster than
>searching through the filesystem but may not be desirable as it brings a dependency
>to module-init-tools. Replacing underscore occurences by '-' can be another solution.
>
> scripts/markup_oops.pl | 5 +----
> 1 files changed, 1 insertions(+), 4 deletions(-)
>
>diff --git a/scripts/markup_oops.pl b/scripts/markup_oops.pl
>index 8977401..bc14f4c 100644
>--- a/scripts/markup_oops.pl
>+++ b/scripts/markup_oops.pl
>@@ -184,10 +184,7 @@ if ($target eq "0") {
>
> # if it's a module, we need to find the .ko file and calculate a load offset
> if ($module ne "") {
>- my $dir = dirname($filename);
>- $dir = $dir . "/";
>- my $mod = $module . ".ko";
>- my $modulefile = `find $dir -name $mod | head -1`;
>+ my $modulefile = `modinfo $module | grep 'filename' | gawk '{ print \$2 }'`;


I know this works, but how about grep '^filename:' ? This is more strict.

Also, although on most Linux awk is just a symbol link to gawk,
but it is still better to use awk instead of gawk for portability reason.


> chomp($modulefile);
> $filename = $modulefile;
> if ($filename eq "") {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/