Commit 3ff176ca authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

lockdep: simplify get_user_chars()

there's too much repetition of code..
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 38aa2714
...@@ -467,54 +467,37 @@ const char * __get_key_name(struct lockdep_subclass_key *key, char *str) ...@@ -467,54 +467,37 @@ const char * __get_key_name(struct lockdep_subclass_key *key, char *str)
return kallsyms_lookup((unsigned long)key, NULL, NULL, NULL, str); return kallsyms_lookup((unsigned long)key, NULL, NULL, NULL, str);
} }
void static inline unsigned long lock_flag(enum lock_usage_bit bit)
get_usage_chars(struct lock_class *class, char *c1, char *c2, char *c3,
char *c4, char *c5, char *c6)
{ {
*c1 = '.', *c2 = '.', *c3 = '.', *c4 = '.', *c5 = '.', *c6 = '.'; return 1UL << bit;
}
if (class->usage_mask & LOCKF_USED_IN_HARDIRQ)
*c1 = '+';
else
if (class->usage_mask & LOCKF_ENABLED_HARDIRQ)
*c1 = '-';
if (class->usage_mask & LOCKF_USED_IN_SOFTIRQ)
*c2 = '+';
else
if (class->usage_mask & LOCKF_ENABLED_SOFTIRQ)
*c2 = '-';
if (class->usage_mask & LOCKF_ENABLED_HARDIRQ_READ) static char get_usage_char(struct lock_class *class, enum lock_usage_bit bit)
*c3 = '-'; {
if (class->usage_mask & LOCKF_USED_IN_HARDIRQ_READ) { char c = '.';
*c3 = '+';
if (class->usage_mask & LOCKF_ENABLED_HARDIRQ_READ)
*c3 = '?';
}
if (class->usage_mask & LOCKF_ENABLED_SOFTIRQ_READ) if (class->usage_mask & lock_flag(bit + 2))
*c4 = '-'; c = '+';
if (class->usage_mask & LOCKF_USED_IN_SOFTIRQ_READ) { if (class->usage_mask & lock_flag(bit)) {
*c4 = '+'; c = '-';
if (class->usage_mask & LOCKF_ENABLED_SOFTIRQ_READ) if (class->usage_mask & lock_flag(bit + 2))
*c4 = '?'; c = '?';
} }
if (class->usage_mask & LOCKF_USED_IN_RECLAIM_FS) return c;
*c5 = '+'; }
else
if (class->usage_mask & LOCKF_ENABLED_RECLAIM_FS)
*c5 = '-';
if (class->usage_mask & LOCKF_ENABLED_RECLAIM_FS_READ) void
*c6 = '-'; get_usage_chars(struct lock_class *class, char *c1, char *c2, char *c3,
if (class->usage_mask & LOCKF_USED_IN_RECLAIM_FS_READ) { char *c4, char *c5, char *c6)
*c6 = '+'; {
if (class->usage_mask & LOCKF_ENABLED_RECLAIM_FS_READ) *c1 = get_usage_char(class, LOCK_USED_IN_HARDIRQ);
*c6 = '?'; *c2 = get_usage_char(class, LOCK_USED_IN_SOFTITQ);
} *c3 = get_usage_char(class, LOCK_USED_IN_HARDIRQ_READ);
*c4 = get_usage_char(class, LOCK_USED_IN_SOFTITQ_READ);
*c5 = get_usage_char(class, LOCK_USED_IN_RECLAIM_FS);
*c6 = get_usage_char(class, LOCK_USED_IN_RECLAIM_FS_READ);
} }
static void print_lock_name(struct lock_class *class) static void print_lock_name(struct lock_class *class)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment