locking, irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
authorKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Wed, 17 Dec 2008 10:40:33 +0000 (19:40 +0900)
committerIngo Molnar <mingo@elte.hu>
Thu, 18 Dec 2008 13:35:53 +0000 (14:35 +0100)
commit74c8a6130486bed224e960790f4aa72dd09c061e
tree0d6da9737c66ca2f4b2a20b7eb34e6c2d04ba4cc
parent6f8a0ed4e5d86c01db5e7e3f95d9003b7cf9cb87
locking, irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP

Impact: simplify code

commit "08678b0: generic: sparse irqs: use irq_desc() [...]" introduced
the irq_desc_lock_class variable.

But it is used only if CONFIG_SPARSE_IRQ=Y or CONFIG_TRACE_IRQFLAGS=Y.
Otherwise, following warnings happen:

CC      kernel/irq/handle.o
kernel/irq/handle.c:26: warning: 'irq_desc_lock_class' defined but not used

Actually, current early_init_irq_lock_class has a bit strange and messy ifdef.
In addition, it is not valueable.

1. this function is protected by !CONFIG_SPARSE_IRQ, but that is not necessary.
   if CONFIG_SPARSE_IRQ=Y, desc of all irq number are initialized by NULL
   at first - then this function calling is safe.

2. this function protected by CONFIG_TRACE_IRQFLAGS too. but it is not
   necessary either, because lockdep_set_class() doesn't have bad side
   effect even if CONFIG_TRACE_IRQFLAGS=n.

This patch bloat kernel size a bit on CONFIG_TRACE_IRQFLAGS=n and
CONFIG_SPARSE_IRQ=Y - but that's ok. early_init_irq_lock_class() is not
a fastpatch at all.

To avoid messy ifdefs is more important than a few bytes diet.

Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
include/linux/lockdep.h
kernel/irq/handle.c