Are you saying you want me to outline most of the functions in asm/bitops.h , or do you want me somehow outline just the "else" clause that invokes raw_local_irq_{save_restore}? Jim On Thu, Aug 30, 2012 at 10:15 AM, Ralf Baechle <ralf@xxxxxxxxxxxxxx> wrote: > On Thu, Aug 30, 2012 at 10:06:30AM -0400, Jim Quinlan wrote: > >> I'm not sure the tangle is so easily undone. The first dependency I see is >> >> asm-offsets.c >> asm/processors.h >> linux/cpumask.h >> linux/kernel.h >> linux/bitops.h >> asm/bitops.h >> linux/irqflags.h >> asm/irqflags.h >> >> When compared to other architectures, the MIPS asm/bitops.h seems to >> include more files at the top, including linux/irqflags.h. >> Any suggestions? > > This is because MIPS bitops for some ancient processors which don't have > atomic operations and Cavium cnMIPS cores where disabling interrupts is > faster than the atomic operations are implemented by disabling interrupts. > > This makes these atomic operations relativly bloated in terms of code size > generated and may it'd be a good idea to outline the bits. With a bit > of luck we even get better cache locality - and fewer header file > inclusions. > > Ralf