public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
@ 2008-09-03 15:53 Rui Sousa
  2008-09-04 14:39 ` Ingo Molnar
  0 siblings, 1 reply; 6+ messages in thread
From: Rui Sousa @ 2008-09-03 15:53 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

Hi,

This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever
disabled (which is currently not allowed by Kconfig). Alternatively
we could just remove the option altogether and the associated code
paths. Since the compilation error has been in the tree for at
least two years and no one noticed it, I guess we don't really have
the need for CONFIG_TRACE_IRQFLAGS_SUPPORT=n.
Boot tested on x86 UP.

Signed-off-by: Rui Sousa <rui.p.m.sousa@gmail.com>

---
diff --git a/include/linux/irqflags.h b/include/linux/irqflags.h
index 74bde13..f299351 100644
--- a/include/linux/irqflags.h
+++ b/include/linux/irqflags.h
@@ -52,10 +52,10 @@
 # define start_critical_timings() do { } while (0)
 #endif
 
-#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
-
 #include <asm/irqflags.h>
 
+#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
+
 #define local_irq_enable() \
 	do { trace_hardirqs_on(); raw_local_irq_enable(); } while (0)
 #define local_irq_disable() \
@@ -84,21 +84,20 @@
  * The local_irq_*() APIs are equal to the raw_local_irq*()
  * if !TRACE_IRQFLAGS.
  */
-# define raw_local_irq_disable()	local_irq_disable()
-# define raw_local_irq_enable()		local_irq_enable()
-# define raw_local_irq_save(flags)			\
+#define local_irq_disable()		raw_local_irq_disable()
+#define local_irq_enable()		raw_local_irq_enable()
+#define local_irq_save(flags)				\
 	do {						\
 		typecheck(unsigned long, flags);	\
-		local_irq_save(flags);			\
+		raw_local_irq_save(flags);		\
 	} while (0)
-# define raw_local_irq_restore(flags)			\
+# define local_irq_restore(flags)			\
 	do {						\
 		typecheck(unsigned long, flags);	\
-		local_irq_restore(flags);		\
+		raw_local_irq_restore(flags);		\
 	} while (0)
 #endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
 
-#ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
 #define safe_halt()						\
 	do {							\
 		trace_hardirqs_on();				\
@@ -124,6 +123,5 @@
 	typecheck(unsigned long, flags);	\
 	raw_irqs_disabled_flags(flags);		\
 })
-#endif		/* CONFIG_X86 */
 
 #endif

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

* Re: [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
  2008-09-03 15:53 [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set Rui Sousa
@ 2008-09-04 14:39 ` Ingo Molnar
  2008-09-04 17:14   ` Hiroshi Shimamoto
  0 siblings, 1 reply; 6+ messages in thread
From: Ingo Molnar @ 2008-09-04 14:39 UTC (permalink / raw)
  To: Rui Sousa; +Cc: linux-kernel, Peter Zijlstra, Thomas Gleixner, H. Peter Anvin


* Rui Sousa <rui.p.m.sousa@gmail.com> wrote:

> Hi,
> 
> This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever 
> disabled (which is currently not allowed by Kconfig). Alternatively we 
> could just remove the option altogether and the associated code paths. 
> Since the compilation error has been in the tree for at least two 
> years and no one noticed it, I guess we don't really have the need for 
> CONFIG_TRACE_IRQFLAGS_SUPPORT=n. Boot tested on x86 UP.

applied to tip/core/locking - thanks Rui.

since you fixed it i prefer the fix over the removal. We could still 
remove the !TRACE_IRQFLAGS_SUPPORT now (in a separate commit) and 
simpify this header a bit that way. Thus if someone needs the 
!TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be 
restored via a simple revert.

	Ingo

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

* Re: [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
  2008-09-04 14:39 ` Ingo Molnar
@ 2008-09-04 17:14   ` Hiroshi Shimamoto
  2008-09-04 17:47     ` Rui Sousa
  0 siblings, 1 reply; 6+ messages in thread
From: Hiroshi Shimamoto @ 2008-09-04 17:14 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Rui Sousa, linux-kernel, Peter Zijlstra, Thomas Gleixner,
	H. Peter Anvin

Ingo Molnar wrote:
> * Rui Sousa <rui.p.m.sousa@gmail.com> wrote:
> 
>> Hi,
>>
>> This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever 
>> disabled (which is currently not allowed by Kconfig). Alternatively we 
>> could just remove the option altogether and the associated code paths. 
>> Since the compilation error has been in the tree for at least two 
>> years and no one noticed it, I guess we don't really have the need for 
>> CONFIG_TRACE_IRQFLAGS_SUPPORT=n. Boot tested on x86 UP.
> 
> applied to tip/core/locking - thanks Rui.
> 
> since you fixed it i prefer the fix over the removal. We could still 
> remove the !TRACE_IRQFLAGS_SUPPORT now (in a separate commit) and 
> simpify this header a bit that way. Thus if someone needs the 
> !TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be 
> restored via a simple revert.

Hi, it seems that this patch breaks uml build.

kernel/printk.c: In function 'vprintk':
kernel/printk.c:674: error: implicit declaration of function 'raw_local_irq_save'
kernel/printk.c:772: error: implicit declaration of function 'raw_local_irq_restore'

thanks,
Hiroshi Shimamoto

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

* Re: [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
  2008-09-04 17:14   ` Hiroshi Shimamoto
@ 2008-09-04 17:47     ` Rui Sousa
  2008-09-04 18:29       ` Hiroshi Shimamoto
  0 siblings, 1 reply; 6+ messages in thread
From: Rui Sousa @ 2008-09-04 17:47 UTC (permalink / raw)
  To: Hiroshi Shimamoto
  Cc: Ingo Molnar, linux-kernel, Peter Zijlstra, Thomas Gleixner,
	H. Peter Anvin

On Thursday 4 September 2008 19:14, Hiroshi Shimamoto wrote:
> Ingo Molnar wrote:
> > * Rui Sousa <rui.p.m.sousa@gmail.com> wrote:
> >> Hi,
> >>
> >> This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever
> >> disabled (which is currently not allowed by Kconfig). Alternatively we
> >> could just remove the option altogether and the associated code paths.
> >> Since the compilation error has been in the tree for at least two
> >> years and no one noticed it, I guess we don't really have the need for
> >> CONFIG_TRACE_IRQFLAGS_SUPPORT=n. Boot tested on x86 UP.
> >
> > applied to tip/core/locking - thanks Rui.
> >
> > since you fixed it i prefer the fix over the removal. We could still
> > remove the !TRACE_IRQFLAGS_SUPPORT now (in a separate commit) and
> > simpify this header a bit that way. Thus if someone needs the
> > !TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be
> > restored via a simple revert.
>
> Hi, it seems that this patch breaks uml build.

Hi Hiroshi,

> kernel/printk.c: In function 'vprintk':
> kernel/printk.c:674: error: implicit declaration of function
> 'raw_local_irq_save' kernel/printk.c:772: error: implicit declaration of
> function 'raw_local_irq_restore'

With the patch bellow it compiles (make ARCH=um with a x86 host), but I'm 
really out of my league on this one...

> thanks,
> Hiroshi Shimamoto

Thanks,
Rui

---
diff --git a/include/asm-um/system-generic.h b/include/asm-um/system-generic.h
index 5bcfa35..f1ea4da 100644
--- a/include/asm-um/system-generic.h
+++ b/include/asm-um/system-generic.h
@@ -4,15 +4,15 @@
 #include "asm/arch/system.h"
 
 #undef switch_to
-#undef local_irq_save
-#undef local_irq_restore
-#undef local_irq_disable
-#undef local_irq_enable
-#undef local_save_flags
-#undef local_irq_restore
-#undef local_irq_enable
-#undef local_irq_disable
-#undef local_irq_save
+#undef raw_local_irq_save
+#undef raw_local_irq_restore
+#undef raw_local_irq_disable
+#undef raw_local_irq_enable
+#undef raw_local_save_flags
+#undef raw_local_irq_restore
+#undef raw_local_irq_enable
+#undef raw_local_irq_disable
+#undef raw_local_irq_save
 #undef irqs_disabled
 
 extern void *switch_to(void *prev, void *next, void *last);
@@ -23,21 +23,21 @@ extern int get_signals(void);
 extern void block_signals(void);
 extern void unblock_signals(void);
 
-#define local_save_flags(flags) do { typecheck(unsigned long, flags); \
+#define raw_local_save_flags(flags) do { typecheck(unsigned long, flags); \
 				     (flags) = get_signals(); } while(0)
-#define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
+#define raw_local_irq_restore(flags) do { typecheck(unsigned long, flags); \
 				      set_signals(flags); } while(0)
 
-#define local_irq_save(flags) do { local_save_flags(flags); \
-                                   local_irq_disable(); } while(0)
+#define raw_local_irq_save(flags) do { raw_local_save_flags(flags); \
+                                   raw_local_irq_disable(); } while(0)
 
-#define local_irq_enable() unblock_signals()
-#define local_irq_disable() block_signals()
+#define raw_local_irq_enable() unblock_signals()
+#define raw_local_irq_disable() block_signals()
 
 #define irqs_disabled()                 \
 ({                                      \
         unsigned long flags;            \
-        local_save_flags(flags);        \
+        raw_local_save_flags(flags);        \
         (flags == 0);                   \
 })
 

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

* Re: [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
  2008-09-04 17:47     ` Rui Sousa
@ 2008-09-04 18:29       ` Hiroshi Shimamoto
  2008-09-05 10:57         ` Ingo Molnar
  0 siblings, 1 reply; 6+ messages in thread
From: Hiroshi Shimamoto @ 2008-09-04 18:29 UTC (permalink / raw)
  To: Rui Sousa
  Cc: Ingo Molnar, linux-kernel, Peter Zijlstra, Thomas Gleixner,
	H. Peter Anvin, user-mode-linux-devel, Jeff Dike

Rui Sousa wrote:
> On Thursday 4 September 2008 19:14, Hiroshi Shimamoto wrote:
>> Ingo Molnar wrote:
>>> * Rui Sousa <rui.p.m.sousa@gmail.com> wrote:
>>>> Hi,
>>>>
>>>> This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever
>>>> disabled (which is currently not allowed by Kconfig). Alternatively we
>>>> could just remove the option altogether and the associated code paths.
>>>> Since the compilation error has been in the tree for at least two
>>>> years and no one noticed it, I guess we don't really have the need for
>>>> CONFIG_TRACE_IRQFLAGS_SUPPORT=n. Boot tested on x86 UP.
>>> applied to tip/core/locking - thanks Rui.
>>>
>>> since you fixed it i prefer the fix over the removal. We could still
>>> remove the !TRACE_IRQFLAGS_SUPPORT now (in a separate commit) and
>>> simpify this header a bit that way. Thus if someone needs the
>>> !TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be
>>> restored via a simple revert.
>> Hi, it seems that this patch breaks uml build.
> 
> Hi Hiroshi,
> 
>> kernel/printk.c: In function 'vprintk':
>> kernel/printk.c:674: error: implicit declaration of function
>> 'raw_local_irq_save' kernel/printk.c:772: error: implicit declaration of
>> function 'raw_local_irq_restore'
> 
> With the patch bellow it compiles (make ARCH=um with a x86 host), but I'm 
> really out of my league on this one...

Hi Rui,

with this patch, build and boot (on my x86_64 box) looks ok.

I CC-ed to uml people to check this.

thanks,
Hiroshi Shimamoto

> 
>> thanks,
>> Hiroshi Shimamoto
> 
> Thanks,
> Rui
> 
> ---
> diff --git a/include/asm-um/system-generic.h b/include/asm-um/system-generic.h
> index 5bcfa35..f1ea4da 100644
> --- a/include/asm-um/system-generic.h
> +++ b/include/asm-um/system-generic.h
> @@ -4,15 +4,15 @@
>  #include "asm/arch/system.h"
>  
>  #undef switch_to
> -#undef local_irq_save
> -#undef local_irq_restore
> -#undef local_irq_disable
> -#undef local_irq_enable
> -#undef local_save_flags
> -#undef local_irq_restore
> -#undef local_irq_enable
> -#undef local_irq_disable
> -#undef local_irq_save
> +#undef raw_local_irq_save
> +#undef raw_local_irq_restore
> +#undef raw_local_irq_disable
> +#undef raw_local_irq_enable
> +#undef raw_local_save_flags
> +#undef raw_local_irq_restore
> +#undef raw_local_irq_enable
> +#undef raw_local_irq_disable
> +#undef raw_local_irq_save
>  #undef irqs_disabled
>  
>  extern void *switch_to(void *prev, void *next, void *last);
> @@ -23,21 +23,21 @@ extern int get_signals(void);
>  extern void block_signals(void);
>  extern void unblock_signals(void);
>  
> -#define local_save_flags(flags) do { typecheck(unsigned long, flags); \
> +#define raw_local_save_flags(flags) do { typecheck(unsigned long, flags); \
>  				     (flags) = get_signals(); } while(0)
> -#define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
> +#define raw_local_irq_restore(flags) do { typecheck(unsigned long, flags); \
>  				      set_signals(flags); } while(0)
>  
> -#define local_irq_save(flags) do { local_save_flags(flags); \
> -                                   local_irq_disable(); } while(0)
> +#define raw_local_irq_save(flags) do { raw_local_save_flags(flags); \
> +                                   raw_local_irq_disable(); } while(0)
>  
> -#define local_irq_enable() unblock_signals()
> -#define local_irq_disable() block_signals()
> +#define raw_local_irq_enable() unblock_signals()
> +#define raw_local_irq_disable() block_signals()
>  
>  #define irqs_disabled()                 \
>  ({                                      \
>          unsigned long flags;            \
> -        local_save_flags(flags);        \
> +        raw_local_save_flags(flags);        \
>          (flags == 0);                   \
>  })
>  
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


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

* Re: [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set
  2008-09-04 18:29       ` Hiroshi Shimamoto
@ 2008-09-05 10:57         ` Ingo Molnar
  0 siblings, 0 replies; 6+ messages in thread
From: Ingo Molnar @ 2008-09-05 10:57 UTC (permalink / raw)
  To: Hiroshi Shimamoto
  Cc: Rui Sousa, linux-kernel, Peter Zijlstra, Thomas Gleixner,
	H. Peter Anvin, user-mode-linux-devel, Jeff Dike, Alexander Viro


* Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com> wrote:

> Rui Sousa wrote:
> > On Thursday 4 September 2008 19:14, Hiroshi Shimamoto wrote:
> >> Ingo Molnar wrote:
> >>> * Rui Sousa <rui.p.m.sousa@gmail.com> wrote:
> >>>> Hi,
> >>>>
> >>>> This patch fixes compilation if CONFIG_TRACE_IRQFLAGS_SUPPORT is ever
> >>>> disabled (which is currently not allowed by Kconfig). Alternatively we
> >>>> could just remove the option altogether and the associated code paths.
> >>>> Since the compilation error has been in the tree for at least two
> >>>> years and no one noticed it, I guess we don't really have the need for
> >>>> CONFIG_TRACE_IRQFLAGS_SUPPORT=n. Boot tested on x86 UP.
> >>> applied to tip/core/locking - thanks Rui.
> >>>
> >>> since you fixed it i prefer the fix over the removal. We could still
> >>> remove the !TRACE_IRQFLAGS_SUPPORT now (in a separate commit) and
> >>> simpify this header a bit that way. Thus if someone needs the
> >>> !TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be
> >>> restored via a simple revert.
> >> Hi, it seems that this patch breaks uml build.
> > 
> > Hi Hiroshi,
> > 
> >> kernel/printk.c: In function 'vprintk':
> >> kernel/printk.c:674: error: implicit declaration of function
> >> 'raw_local_irq_save' kernel/printk.c:772: error: implicit declaration of
> >> function 'raw_local_irq_restore'
> > 
> > With the patch bellow it compiles (make ARCH=um with a x86 host), but I'm 
> > really out of my league on this one...
> 
> Hi Rui,
> 
> with this patch, build and boot (on my x86_64 box) looks ok.
> 
> I CC-ed to uml people to check this.

i've applied the fix below to tip/core/locking - but would be nice if 
the UML folks had a comment as well.

	Ingo

>From 8c56250f48347750c82ab18d98d647dcf99ca674 Mon Sep 17 00:00:00 2001
From: Rui Sousa <rui.p.m.sousa@gmail.com>
Date: Thu, 4 Sep 2008 19:47:53 +0200
Subject: [PATCH] lockdep, UML: fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set

Hiroshi Shimamoto reported:

> > !TRACE_IRQFLAGS_SUPPORT mode of build for future work, it can be
> > restored via a simple revert.
>
> Hi, it seems that this patch breaks uml build.
>
> kernel/printk.c: In function 'vprintk':
> kernel/printk.c:674: error: implicit declaration of function
> 'raw_local_irq_save' kernel/printk.c:772: error: implicit declaration of
> function 'raw_local_irq_restore'

With the patch bellow it compiles (make ARCH=um with a x86 host), but I'm
really out of my league on this one...

Reported-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 include/asm-um/system-generic.h |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/include/asm-um/system-generic.h b/include/asm-um/system-generic.h
index 5bcfa35..f1ea4da 100644
--- a/include/asm-um/system-generic.h
+++ b/include/asm-um/system-generic.h
@@ -4,15 +4,15 @@
 #include "asm/arch/system.h"
 
 #undef switch_to
-#undef local_irq_save
-#undef local_irq_restore
-#undef local_irq_disable
-#undef local_irq_enable
-#undef local_save_flags
-#undef local_irq_restore
-#undef local_irq_enable
-#undef local_irq_disable
-#undef local_irq_save
+#undef raw_local_irq_save
+#undef raw_local_irq_restore
+#undef raw_local_irq_disable
+#undef raw_local_irq_enable
+#undef raw_local_save_flags
+#undef raw_local_irq_restore
+#undef raw_local_irq_enable
+#undef raw_local_irq_disable
+#undef raw_local_irq_save
 #undef irqs_disabled
 
 extern void *switch_to(void *prev, void *next, void *last);
@@ -23,21 +23,21 @@ extern int get_signals(void);
 extern void block_signals(void);
 extern void unblock_signals(void);
 
-#define local_save_flags(flags) do { typecheck(unsigned long, flags); \
+#define raw_local_save_flags(flags) do { typecheck(unsigned long, flags); \
 				     (flags) = get_signals(); } while(0)
-#define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
+#define raw_local_irq_restore(flags) do { typecheck(unsigned long, flags); \
 				      set_signals(flags); } while(0)
 
-#define local_irq_save(flags) do { local_save_flags(flags); \
-                                   local_irq_disable(); } while(0)
+#define raw_local_irq_save(flags) do { raw_local_save_flags(flags); \
+                                   raw_local_irq_disable(); } while(0)
 
-#define local_irq_enable() unblock_signals()
-#define local_irq_disable() block_signals()
+#define raw_local_irq_enable() unblock_signals()
+#define raw_local_irq_disable() block_signals()
 
 #define irqs_disabled()                 \
 ({                                      \
         unsigned long flags;            \
-        local_save_flags(flags);        \
+        raw_local_save_flags(flags);        \
         (flags == 0);                   \
 })
 

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

end of thread, other threads:[~2008-09-05 10:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-03 15:53 [PATH] Fix compilation when CONFIG_TRACE_IRQFLAGS_SUPPORT is not set Rui Sousa
2008-09-04 14:39 ` Ingo Molnar
2008-09-04 17:14   ` Hiroshi Shimamoto
2008-09-04 17:47     ` Rui Sousa
2008-09-04 18:29       ` Hiroshi Shimamoto
2008-09-05 10:57         ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox