On Thu, 26 Aug 2010, David Howells wrote: > 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. Nice one. > [Note that this patch only alters X86, FRV, MN10300, ARM and Blackfin at the > moment. The other arches will need altering too as part of this patch]. > > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > Tested-by: Catalin Marinas <catalin.marinas@xxxxxxx> Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html