* [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