tree cbbe759b02e48c379ee711ad0654965a17bcbcf2
parent b48ccb095a0c9257241261ec2bd1cbb1bdabc48b
author Ming Lei <tom.leiming@gmail.com> 1240585806 +0800
committer Ingo Molnar <mingo@elte.hu> 1240762884 +0200

locking: Documentation: lockdep-design.txt, fix note of state bits

From source code of get_usage_char(), the previous note is not correct,
so fix it.

static char get_usage_char(struct lock_class *class, enum lock_usage_bit bit)
{
	char c = '.';

	if (class->usage_mask & lock_flag(bit + 2))/*LOCK_ENABLED_##STATE*/
		c = '+';
	if (class->usage_mask & lock_flag(bit)) {/*LOCK_USED_IN_##STATE*/
		c = '-';
		if (class->usage_mask & lock_flag(bit + 2))
			c = '?';
	}

	return c;
}

note:

1) The 'bit' parameter always is passed as  LOCK_USED_IN_##STATE
   or LOCK_USED_IN_##STATE_READ , from get_usage_chars().

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
LKML-Reference: <1240585806-5744-1-git-send-email-tom.leiming@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
