Fix IRQ flag handling naming
authorDavid Howells <dhowells@redhat.com>
Thu, 7 Oct 2010 13:08:55 +0000 (14:08 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 7 Oct 2010 13:08:55 +0000 (14:08 +0100)
commitdf9ee29270c11dba7d0fe0b83ce47a4d8e8d2101
tree0c9a87ef1ea042c4432f122c3d03614d21156fc1
parentca4d3e6746bdcfccb517349bce2d2c5b5614fb6f
Fix IRQ flag handling naming

Fix the IRQ flag handling naming.  In linux/irqflags.h under one configuration,
it maps:

local_irq_enable() -> raw_local_irq_enable()
local_irq_disable() -> raw_local_irq_disable()
local_irq_save() -> raw_local_irq_save()
...

and under the other configuration, it maps:

raw_local_irq_enable() -> local_irq_enable()
raw_local_irq_disable() -> local_irq_disable()
raw_local_irq_save() -> local_irq_save()
...

This is quite confusing.  There should be one set of names expected of the
arch, and this should be wrapped to give another set of names that are expected
by users of this facility.

Change this to have the arch provide:

flags = arch_local_save_flags()
flags = arch_local_irq_save()
arch_local_irq_restore(flags)
arch_local_irq_disable()
arch_local_irq_enable()
arch_irqs_disabled_flags(flags)
arch_irqs_disabled()
arch_safe_halt()

Then linux/irqflags.h wraps these to provide:

raw_local_save_flags(flags)
raw_local_irq_save(flags)
raw_local_irq_restore(flags)
raw_local_irq_disable()
raw_local_irq_enable()
raw_irqs_disabled_flags(flags)
raw_irqs_disabled()
raw_safe_halt()

with type checking on the flags 'arguments', and then wraps those to provide:

local_save_flags(flags)
local_irq_save(flags)
local_irq_restore(flags)
local_irq_disable()
local_irq_enable()
irqs_disabled_flags(flags)
irqs_disabled()
safe_halt()

with tracing included if enabled.

The arch functions can now all be inline functions rather than some of them
having to be macros.

Signed-off-by: David Howells <dhowells@redhat.com> [X86, FRV, MN10300]
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> [Tile]
Signed-off-by: Michal Simek <monstr@monstr.eu> [Microblaze]
Tested-by: Catalin Marinas <catalin.marinas@arm.com> [ARM]
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com> [AVR]
Acked-by: Tony Luck <tony.luck@intel.com> [IA-64]
Acked-by: Hirokazu Takata <takata@linux-m32r.org> [M32R]
Acked-by: Greg Ungerer <gerg@uclinux.org> [M68K/M68KNOMMU]
Acked-by: Ralf Baechle <ralf@linux-mips.org> [MIPS]
Acked-by: Kyle McMartin <kyle@mcmartin.ca> [PA-RISC]
Acked-by: Paul Mackerras <paulus@samba.org> [PowerPC]
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> [S390]
Acked-by: Chen Liqin <liqin.chen@sunplusct.com> [Score]
Acked-by: Matt Fleming <matt@console-pimps.org> [SH]
Acked-by: David S. Miller <davem@davemloft.net> [Sparc]
Acked-by: Chris Zankel <chris@zankel.net> [Xtensa]
Reviewed-by: Richard Henderson <rth@twiddle.net> [Alpha]
Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp> [H8300]
Cc: starvik@axis.com [CRIS]
Cc: jesper.nilsson@axis.com [CRIS]
Cc: linux-cris-kernel@axis.com
63 files changed:
arch/alpha/include/asm/irqflags.h [new file with mode: 0644]
arch/alpha/include/asm/system.h
arch/arm/include/asm/irqflags.h
arch/avr32/include/asm/irqflags.h
arch/blackfin/include/asm/irqflags.h
arch/blackfin/kernel/trace.c
arch/cris/include/arch-v10/arch/irqflags.h [new file with mode: 0644]
arch/cris/include/arch-v10/arch/system.h
arch/cris/include/arch-v32/arch/irqflags.h [new file with mode: 0644]
arch/cris/include/arch-v32/arch/system.h
arch/cris/include/asm/irqflags.h [new file with mode: 0644]
arch/cris/include/asm/system.h
arch/frv/include/asm/irqflags.h [new file with mode: 0644]
arch/frv/include/asm/system.h
arch/h8300/include/asm/irqflags.h [new file with mode: 0644]
arch/h8300/include/asm/system.h
arch/ia64/include/asm/irqflags.h [new file with mode: 0644]
arch/ia64/include/asm/system.h
arch/m32r/include/asm/irqflags.h [new file with mode: 0644]
arch/m32r/include/asm/system.h
arch/m68k/include/asm/entry_no.h
arch/m68k/include/asm/irqflags.h [new file with mode: 0644]
arch/m68k/include/asm/system_mm.h
arch/m68k/include/asm/system_no.h
arch/m68knommu/kernel/asm-offsets.c
arch/m68knommu/platform/coldfire/head.S
arch/microblaze/include/asm/irqflags.h
arch/mips/include/asm/irqflags.h
arch/mips/kernel/smtc.c
arch/mn10300/include/asm/irqflags.h [new file with mode: 0644]
arch/mn10300/include/asm/system.h
arch/mn10300/kernel/entry.S
arch/parisc/include/asm/irqflags.h [new file with mode: 0644]
arch/parisc/include/asm/system.h
arch/powerpc/include/asm/hw_irq.h
arch/powerpc/include/asm/irqflags.h
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/kernel/irq.c
arch/s390/include/asm/irqflags.h
arch/s390/include/asm/system.h
arch/s390/kernel/mem_detect.c
arch/s390/mm/init.c
arch/s390/mm/maccess.c
arch/score/include/asm/irqflags.h
arch/sh/include/asm/irqflags.h
arch/sh/kernel/irq_32.c
arch/sparc/include/asm/irqflags_32.h
arch/sparc/include/asm/irqflags_64.h
arch/sparc/kernel/irq_32.c
arch/sparc/prom/p1275.c
arch/tile/include/asm/irqflags.h
arch/x86/include/asm/irqflags.h
arch/x86/include/asm/paravirt.h
arch/x86/xen/spinlock.c
arch/xtensa/include/asm/irqflags.h [new file with mode: 0644]
arch/xtensa/include/asm/system.h
drivers/s390/char/sclp.c
include/asm-generic/atomic.h
include/asm-generic/cmpxchg-local.h
include/asm-generic/hardirq.h
include/asm-generic/irqflags.h
include/linux/irqflags.h
include/linux/spinlock.h