linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
@ 2008-12-16  8:08 KOSAKI Motohiro
  2008-12-16  8:34 ` Andrew Morton
  0 siblings, 1 reply; 11+ messages in thread
From: KOSAKI Motohiro @ 2008-12-16  8:08 UTC (permalink / raw)
  To: Yinghai Lu, Ingo Molnar, LKML, Andrew Morton, linux-next; +Cc: kosaki.motohiro



Applied after: linux-next.patch

==
Subject: [mmotm][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP

commit 08678b0841267c1d00d771fe01548d86043d065e introduced
irq_desc_lock_class variable.
But it is used only if CONFIG_LOCKDEP=Y.
otherwise, following warnings happend.

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


Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Yinghai Lu <yhlu.kernel@gmail.com>
CC: Ingo Molnar <mingo@elte.hu>
---
 kernel/irq/handle.c |    2 ++
 1 file changed, 2 insertions(+)

Index: b/kernel/irq/handle.c
===================================================================
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -20,10 +20,12 @@
 
 #include "internals.h"
 
+#ifdef CONFIG_LOCKDEP
 /*
  * lockdep: we want to handle all irq_desc locks as a single lock-class:
  */
 static struct lock_class_key irq_desc_lock_class;
+#endif
 
 /**
  * handle_bad_irq - handle spurious and unhandled irqs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16  8:08 [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP KOSAKI Motohiro
@ 2008-12-16  8:34 ` Andrew Morton
  2008-12-16 10:18   ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: Andrew Morton @ 2008-12-16  8:34 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: Yinghai Lu, Ingo Molnar, LKML, linux-next

On Tue, 16 Dec 2008 17:08:43 +0900 (JST) KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:

> 
> 
> Applied after: linux-next.patch
> 
> ==
> Subject: [mmotm][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
> 
> commit 08678b0841267c1d00d771fe01548d86043d065e introduced
> irq_desc_lock_class variable.
> But it is used only if CONFIG_LOCKDEP=Y.
> otherwise, following warnings happend.
> 
> 	  CC      kernel/irq/handle.o
> 	kernel/irq/handle.c:26: warning: 'irq_desc_lock_class' defined but not used
> 
> 
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> CC: Yinghai Lu <yhlu.kernel@gmail.com>
> CC: Ingo Molnar <mingo@elte.hu>
> ---
>  kernel/irq/handle.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> Index: b/kernel/irq/handle.c
> ===================================================================
> --- a/kernel/irq/handle.c
> +++ b/kernel/irq/handle.c
> @@ -20,10 +20,12 @@
>  
>  #include "internals.h"
>  
> +#ifdef CONFIG_LOCKDEP
>  /*
>   * lockdep: we want to handle all irq_desc locks as a single lock-class:
>   */
>  static struct lock_class_key irq_desc_lock_class;
> +#endif
>  
>  /**
>   * handle_bad_irq - handle spurious and unhandled irqs
> 

No, lockdep.h (which we forgot to include) already handles that:

# define lockdep_set_class(lock, key)		do { (void)(key); } while (0)

the problem is that the code which references irq_desc_lock_class is
inside #ifdef CONFIG_SPARSE_IRQ, so this is a better fix:


--- a/kernel/irq/handle.c~irq-enclose-irq_desc_lock_class-in-config_lockdep
+++ a/kernel/irq/handle.c
@@ -13,6 +13,7 @@
 #include <linux/irq.h>
 #include <linux/module.h>
 #include <linux/random.h>
+#include <linux/lockdep.h>
 #include <linux/interrupt.h>
 #include <linux/kernel_stat.h>
 #include <linux/rculist.h>
@@ -20,11 +21,6 @@
 
 #include "internals.h"
 
-/*
- * lockdep: we want to handle all irq_desc locks as a single lock-class:
- */
-static struct lock_class_key irq_desc_lock_class;
-
 /**
  * handle_bad_irq - handle spurious and unhandled irqs
  * @irq:       the interrupt number
@@ -61,6 +57,12 @@ void __init __attribute__((weak)) arch_e
 }
 
 #ifdef CONFIG_SPARSE_IRQ
+
+/*
+ * lockdep: we want to handle all irq_desc locks as a single lock-class:
+ */
+static struct lock_class_key irq_desc_lock_class;
+
 static struct irq_desc irq_desc_init = {
 	.irq	    = -1,
 	.status	    = IRQ_DISABLED,
_

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16  8:34 ` Andrew Morton
@ 2008-12-16 10:18   ` Ingo Molnar
  2008-12-16 10:23     ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2008-12-16 10:18 UTC (permalink / raw)
  To: Andrew Morton; +Cc: KOSAKI Motohiro, Yinghai Lu, LKML, linux-next


* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Tue, 16 Dec 2008 17:08:43 +0900 (JST) KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:
> 
> > 
> > 
> > Applied after: linux-next.patch
> > 
> > ==
> > Subject: [mmotm][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
> > 
> > commit 08678b0841267c1d00d771fe01548d86043d065e introduced
> > irq_desc_lock_class variable.
> > But it is used only if CONFIG_LOCKDEP=Y.
> > otherwise, following warnings happend.
> > 
> > 	  CC      kernel/irq/handle.o
> > 	kernel/irq/handle.c:26: warning: 'irq_desc_lock_class' defined but not used
> > 
> > 
> > Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> > CC: Yinghai Lu <yhlu.kernel@gmail.com>
> > CC: Ingo Molnar <mingo@elte.hu>
> > ---
> >  kernel/irq/handle.c |    2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > Index: b/kernel/irq/handle.c
> > ===================================================================
> > --- a/kernel/irq/handle.c
> > +++ b/kernel/irq/handle.c
> > @@ -20,10 +20,12 @@
> >  
> >  #include "internals.h"
> >  
> > +#ifdef CONFIG_LOCKDEP
> >  /*
> >   * lockdep: we want to handle all irq_desc locks as a single lock-class:
> >   */
> >  static struct lock_class_key irq_desc_lock_class;
> > +#endif
> >  
> >  /**
> >   * handle_bad_irq - handle spurious and unhandled irqs
> > 
> 
> No, lockdep.h (which we forgot to include) already handles that:
> 
> # define lockdep_set_class(lock, key)		do { (void)(key); } while (0)
> 
> the problem is that the code which references irq_desc_lock_class is
> inside #ifdef CONFIG_SPARSE_IRQ, so this is a better fix:

agreed that this is the better fix - applied to tip/irq/sparseirq, thanks!

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 10:18   ` Ingo Molnar
@ 2008-12-16 10:23     ` Ingo Molnar
  2008-12-16 11:15       ` KOSAKI Motohiro
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2008-12-16 10:23 UTC (permalink / raw)
  To: Andrew Morton; +Cc: KOSAKI Motohiro, Yinghai Lu, LKML, linux-next


* Ingo Molnar <mingo@elte.hu> wrote:

> > >  #include "internals.h"
> > >  
> > > +#ifdef CONFIG_LOCKDEP
> > >  /*
> > >   * lockdep: we want to handle all irq_desc locks as a single lock-class:
> > >   */
> > >  static struct lock_class_key irq_desc_lock_class;
> > > +#endif
> > >  
> > >  /**
> > >   * handle_bad_irq - handle spurious and unhandled irqs
> > > 
> > 
> > No, lockdep.h (which we forgot to include) already handles that:
> > 
> > # define lockdep_set_class(lock, key)		do { (void)(key); } while (0)
> > 
> > the problem is that the code which references irq_desc_lock_class is
> > inside #ifdef CONFIG_SPARSE_IRQ, so this is a better fix:
> 
> agreed that this is the better fix - applied to tip/irq/sparseirq, 
> thanks!

actually, this breaks the build on !SPARSEIRQ because we will use that 
class in the non-sparseirq case. So we've converted a build warning to a 
build failure ;-)

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 10:23     ` Ingo Molnar
@ 2008-12-16 11:15       ` KOSAKI Motohiro
  2008-12-16 11:20         ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: KOSAKI Motohiro @ 2008-12-16 11:15 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next

Hi!

>> > No, lockdep.h (which we forgot to include) already handles that:
>> >
>> > # define lockdep_set_class(lock, key)               do { (void)(key); } while (0)
>> >
>> > the problem is that the code which references irq_desc_lock_class is
>> > inside #ifdef CONFIG_SPARSE_IRQ, so this is a better fix:
>>
>> agreed that this is the better fix - applied to tip/irq/sparseirq,
>> thanks!
>
> actually, this breaks the build on !SPARSEIRQ because we will use that
> class in the non-sparseirq case. So we've converted a build warning to a
> build failure ;-)

Please give me your .config and tell me your arch.
my ia64 box (ia64 is !SPARSEIRQ) can build the akpm patch.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 11:15       ` KOSAKI Motohiro
@ 2008-12-16 11:20         ` Ingo Molnar
  2008-12-16 11:45           ` KOSAKI Motohiro
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2008-12-16 11:20 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next


* KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:

> Hi!
> 
> >> > No, lockdep.h (which we forgot to include) already handles that:
> >> >
> >> > # define lockdep_set_class(lock, key)               do { (void)(key); } while (0)
> >> >
> >> > the problem is that the code which references irq_desc_lock_class is
> >> > inside #ifdef CONFIG_SPARSE_IRQ, so this is a better fix:
> >>
> >> agreed that this is the better fix - applied to tip/irq/sparseirq,
> >> thanks!
> >
> > actually, this breaks the build on !SPARSEIRQ because we will use that 
> > class in the non-sparseirq case. So we've converted a build warning to 
> > a build failure ;-)
> 
> Please give me your .config and tell me your arch. my ia64 box (ia64 is 
> !SPARSEIRQ) can build the akpm patch.

The expected build failure is obvious from reading the code:

 #ifdef CONFIG_TRACE_IRQFLAGS
 void early_init_irq_lock_class(void)
 {
 #ifndef CONFIG_SPARSE_IRQ
         struct irq_desc *desc;
         int i;

         for_each_irq_desc(i, desc) {
                 if (!desc)
                         continue;

                 lockdep_set_class(&desc->lock, &irq_desc_lock_class);

Note that it's an #ifndef sparseirq, not an #ifdef sparseirq condition.

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 11:20         ` Ingo Molnar
@ 2008-12-16 11:45           ` KOSAKI Motohiro
  2008-12-16 12:18             ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: KOSAKI Motohiro @ 2008-12-16 11:45 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next

>> > actually, this breaks the build on !SPARSEIRQ because we will use that
>> > class in the non-sparseirq case. So we've converted a build warning to
>> > a build failure ;-)
>>
>> Please give me your .config and tell me your arch. my ia64 box (ia64 is
>> !SPARSEIRQ) can build the akpm patch.
>
> The expected build failure is obvious from reading the code:
>
>  #ifdef CONFIG_TRACE_IRQFLAGS
>  void early_init_irq_lock_class(void)
>  {
>  #ifndef CONFIG_SPARSE_IRQ
>         struct irq_desc *desc;
>         int i;
>
>         for_each_irq_desc(i, desc) {
>                 if (!desc)
>                         continue;
>
>                 lockdep_set_class(&desc->lock, &irq_desc_lock_class);
>
> Note that it's an #ifndef sparseirq, not an #ifdef sparseirq condition.

I see. thanks.
It seems my first proposal is better.

or, following #ifdef ?

#if defined(CONFIG_SPARSE_IRQ) || defined(CONFIG_TRACE_IRQFLAGS)

 /*
 * lockdep: we want to handle all irq_desc locks as a single lock-class:
 */
 static struct lock_class_key irq_desc_lock_class;

#endif

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 11:45           ` KOSAKI Motohiro
@ 2008-12-16 12:18             ` Ingo Molnar
  2008-12-16 12:58               ` KOSAKI Motohiro
  0 siblings, 1 reply; 11+ messages in thread
From: Ingo Molnar @ 2008-12-16 12:18 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next


* KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:

> >> > actually, this breaks the build on !SPARSEIRQ because we will use that
> >> > class in the non-sparseirq case. So we've converted a build warning to
> >> > a build failure ;-)
> >>
> >> Please give me your .config and tell me your arch. my ia64 box (ia64 is
> >> !SPARSEIRQ) can build the akpm patch.
> >
> > The expected build failure is obvious from reading the code:
> >
> >  #ifdef CONFIG_TRACE_IRQFLAGS
> >  void early_init_irq_lock_class(void)
> >  {
> >  #ifndef CONFIG_SPARSE_IRQ
> >         struct irq_desc *desc;
> >         int i;
> >
> >         for_each_irq_desc(i, desc) {
> >                 if (!desc)
> >                         continue;
> >
> >                 lockdep_set_class(&desc->lock, &irq_desc_lock_class);
> >
> > Note that it's an #ifndef sparseirq, not an #ifdef sparseirq condition.
> 
> I see. thanks.
> It seems my first proposal is better.
> 
> or, following #ifdef ?
> 
> #if defined(CONFIG_SPARSE_IRQ) || defined(CONFIG_TRACE_IRQFLAGS)
> 
>  /*
>  * lockdep: we want to handle all irq_desc locks as a single lock-class:
>  */
>  static struct lock_class_key irq_desc_lock_class;

instead of increasing the #ifdef jungle, how about removing some? For 
example is this distinction:

> >  #ifndef CONFIG_SPARSE_IRQ

really needed? We should use symmetric lock class annotations, regardless 
of how irq_desc[] is laid out.

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 12:18             ` Ingo Molnar
@ 2008-12-16 12:58               ` KOSAKI Motohiro
  2008-12-17 10:40                 ` KOSAKI Motohiro
  0 siblings, 1 reply; 11+ messages in thread
From: KOSAKI Motohiro @ 2008-12-16 12:58 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next

>> or, following #ifdef ?
>>
>> #if defined(CONFIG_SPARSE_IRQ) || defined(CONFIG_TRACE_IRQFLAGS)
>>
>>  /*
>>  * lockdep: we want to handle all irq_desc locks as a single lock-class:
>>  */
>>  static struct lock_class_key irq_desc_lock_class;
>
> instead of increasing the #ifdef jungle, how about removing some? For
> example is this distinction:
>
>> >  #ifndef CONFIG_SPARSE_IRQ
>
> really needed? We should use symmetric lock class annotations, regardless
> of how irq_desc[] is laid out.

it seems make much sense. I'll test your idea tommorow.

thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-16 12:58               ` KOSAKI Motohiro
@ 2008-12-17 10:40                 ` KOSAKI Motohiro
  2008-12-18 13:36                   ` Ingo Molnar
  0 siblings, 1 reply; 11+ messages in thread
From: KOSAKI Motohiro @ 2008-12-17 10:40 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: kosaki.motohiro, Andrew Morton, Yinghai Lu, LKML, linux-next

> >> or, following #ifdef ?
> >>
> >> #if defined(CONFIG_SPARSE_IRQ) || defined(CONFIG_TRACE_IRQFLAGS)
> >>
> >>  /*
> >>  * lockdep: we want to handle all irq_desc locks as a single lock-class:
> >>  */
> >>  static struct lock_class_key irq_desc_lock_class;
> >
> > instead of increasing the #ifdef jungle, how about removing some? For
> > example is this distinction:
> >
> >> >  #ifndef CONFIG_SPARSE_IRQ
> >
> > really needed? We should use symmetric lock class annotations, regardless
> > of how irq_desc[] is laid out.
> 
> it seems make much sense. I'll test your idea tommorow.

Ingo, you are right. I confirmed your idea works well.


I tested following ten pattern.

o handle.c can compile without any warnings?

SPARSE_IRQ	TRACE_IRQ	LOCKDEP
------------------------------------------
n		n		n
Y		n		n
n		Y		n
n		n		Y
Y		Y		n
N		Y		Y
Y		n		Y
Y		Y		Y


o builded kernel works well? (tested on x86_64)

SPARSE_IRQ	TRACE_IRQ	LOCKDEP
------------------------------------------
n		n		n
Y		Y		Y


==
Subject: [PATCH] irq: remove unnecessary ifdef

commit 08678b0841267c1d00d771fe01548d86043d065e introduced
irq_desc_lock_class variable.

But it is used only if CONFIG_SPARSE_IRQ=Y or CONFIG_TRACE_IRQFLAGS=Y.
otherwise, following warnings happend.

	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 protected by !CONFIG_SPARSE_IRQ. but it 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 too.
   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.
that's ok. early_init_irq_lock_class() is not fastpatch at all.

To avoid ifdef messy is important than few byte diet.


Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Yinghai Lu <yhlu.kernel@gmail.com>
CC: Ingo Molnar <mingo@elte.hu>
---
 include/linux/lockdep.h |    2 +-
 kernel/irq/handle.c     |    5 -----
 2 files changed, 1 insertion(+), 6 deletions(-)

Index: b/kernel/irq/handle.c
===================================================================
--- a/kernel/irq/handle.c	2008-12-17 10:45:56.000000000 +0900
+++ b/kernel/irq/handle.c	2008-12-17 17:26:42.000000000 +0900
@@ -417,11 +417,8 @@ out:
 }
 #endif
 
-
-#ifdef CONFIG_TRACE_IRQFLAGS
 void early_init_irq_lock_class(void)
 {
-#ifndef CONFIG_SPARSE_IRQ
 	struct irq_desc *desc;
 	int i;
 
@@ -431,9 +428,7 @@ void early_init_irq_lock_class(void)
 
 		lockdep_set_class(&desc->lock, &irq_desc_lock_class);
 	}
-#endif
 }
-#endif
 
 #ifdef CONFIG_SPARSE_IRQ
 unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
Index: b/include/linux/lockdep.h
===================================================================
--- a/include/linux/lockdep.h	2008-12-17 10:46:26.000000000 +0900
+++ b/include/linux/lockdep.h	2008-12-17 17:27:18.000000000 +0900
@@ -407,7 +407,7 @@ do {								\
 
 #endif /* CONFIG_LOCKDEP */
 
-#if defined(CONFIG_TRACE_IRQFLAGS) && defined(CONFIG_GENERIC_HARDIRQS)
+#ifdef CONFIG_GENERIC_HARDIRQS
 extern void early_init_irq_lock_class(void);
 #else
 static inline void early_init_irq_lock_class(void)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  2008-12-17 10:40                 ` KOSAKI Motohiro
@ 2008-12-18 13:36                   ` Ingo Molnar
  0 siblings, 0 replies; 11+ messages in thread
From: Ingo Molnar @ 2008-12-18 13:36 UTC (permalink / raw)
  To: KOSAKI Motohiro; +Cc: Andrew Morton, Yinghai Lu, LKML, linux-next


* KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:

> > >> or, following #ifdef ?
> > >>
> > >> #if defined(CONFIG_SPARSE_IRQ) || defined(CONFIG_TRACE_IRQFLAGS)
> > >>
> > >>  /*
> > >>  * lockdep: we want to handle all irq_desc locks as a single lock-class:
> > >>  */
> > >>  static struct lock_class_key irq_desc_lock_class;
> > >
> > > instead of increasing the #ifdef jungle, how about removing some? For
> > > example is this distinction:
> > >
> > >> >  #ifndef CONFIG_SPARSE_IRQ
> > >
> > > really needed? We should use symmetric lock class annotations, regardless
> > > of how irq_desc[] is laid out.
> > 
> > it seems make much sense. I'll test your idea tommorow.
> 
> Ingo, you are right. I confirmed your idea works well.
> 
> 
> I tested following ten pattern.
> 
> o handle.c can compile without any warnings?
> 
> SPARSE_IRQ	TRACE_IRQ	LOCKDEP
> ------------------------------------------
> n		n		n
> Y		n		n
> n		Y		n
> n		n		Y
> Y		Y		n
> N		Y		Y
> Y		n		Y
> Y		Y		Y
> 
> 
> o builded kernel works well? (tested on x86_64)
> 
> SPARSE_IRQ	TRACE_IRQ	LOCKDEP
> ------------------------------------------
> n		n		n
> Y		Y		Y
> 
> 
> ==
> Subject: [PATCH] irq: remove unnecessary ifdef

Applied to tip/irq/sparseirq, thanks!

	Ingo

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-12-18 13:36 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-16  8:08 [mmotm and linux-next][PATCH] irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP KOSAKI Motohiro
2008-12-16  8:34 ` Andrew Morton
2008-12-16 10:18   ` Ingo Molnar
2008-12-16 10:23     ` Ingo Molnar
2008-12-16 11:15       ` KOSAKI Motohiro
2008-12-16 11:20         ` Ingo Molnar
2008-12-16 11:45           ` KOSAKI Motohiro
2008-12-16 12:18             ` Ingo Molnar
2008-12-16 12:58               ` KOSAKI Motohiro
2008-12-17 10:40                 ` KOSAKI Motohiro
2008-12-18 13:36                   ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).