Skip to content

Commit

Permalink
ALSA: core - strip too long file names in snd_print*()
Browse files Browse the repository at this point in the history
When modules are built with M= option, they pass long file paths to
__FILE__.  This results in ugly outputs of snd_print*() when
CONFIG_SND_VERBOSE_PRINTK is set.

This patch adds a check of the path and strips the leading path dirs
if the file name is an absolute path to improve the readability of logs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Aug 27, 2009
1 parent 422bef8 commit 1b0053a
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions sound/core/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,17 @@ void release_and_free_resource(struct resource *res)
EXPORT_SYMBOL(release_and_free_resource);

#ifdef CONFIG_SND_VERBOSE_PRINTK
void snd_verbose_printk(const char *file, int line, const char *format, ...)
static const char *sanity_file_name(const char *path)
{
if (*path == '/')
return strrchr(path, '/') + 1;
else
return path;
}

void snd_verbose_printk(const char *path, int line, const char *format, ...)
{
const char *file = sanity_file_name(path);
va_list args;

if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') {
Expand All @@ -56,8 +65,9 @@ EXPORT_SYMBOL(snd_verbose_printk);
#endif

#if defined(CONFIG_SND_DEBUG) && defined(CONFIG_SND_VERBOSE_PRINTK)
void snd_verbose_printd(const char *file, int line, const char *format, ...)
void snd_verbose_printd(const char *path, int line, const char *format, ...)
{
const char *file = sanity_file_name(path);
va_list args;

if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') {
Expand Down

0 comments on commit 1b0053a

Please sign in to comment.