From cf1ee0b037802b5dfc95e3b447b713514bec9e66 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 19 Jul 2007 01:49:01 -0700 Subject: [PATCH] --- yaml --- r: 61642 b: refs/heads/master c: d38e1d5aaee384698fcef9455d6e2df1d062a1d0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/lockdep_proc.c | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b07b2b24e823..a9134fab2025 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 96645678cd726e87ce42a0664de71e047e32bca4 +refs/heads/master: d38e1d5aaee384698fcef9455d6e2df1d062a1d0 diff --git a/trunk/kernel/lockdep_proc.c b/trunk/kernel/lockdep_proc.c index 7ff80135cbeb..9f17af4a2490 100644 --- a/trunk/kernel/lockdep_proc.c +++ b/trunk/kernel/lockdep_proc.c @@ -421,8 +421,30 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data) class = data->class; stats = &data->stats; - snprintf(name, 38, "%s", class->name); + namelen = 38; + if (class->name_version > 1) + namelen -= 2; /* XXX truncates versions > 9 */ + if (class->subclass) + namelen -= 2; + + if (!class->name) { + char str[KSYM_NAME_LEN]; + const char *key_name; + + key_name = __get_key_name(class->key, str); + snprintf(name, namelen, "%s", key_name); + } else { + snprintf(name, namelen, "%s", class->name); + } namelen = strlen(name); + if (class->name_version > 1) { + snprintf(name+namelen, 3, "#%d", class->name_version); + namelen += 2; + } + if (class->subclass) { + snprintf(name+namelen, 3, "/%d", class->subclass); + namelen += 2; + } if (stats->write_holdtime.nr) { if (stats->read_holdtime.nr)