linux/include
Benjamin Herrenschmidt 2d3fbbb391 Add hard_irq_disable()
Some architectures, like powerpc, implement lazy disabling of interrupts.
That means that on those, local_irq_disable() doesn't actually disable
interrupts on the CPU, but only sets some per CPU flag which cause them to be
disabled only if an interrupt actually occurs.

However, in some cases, such as stop_machine, we really want interrupts to be
fully disabled.  For example, I have code using stop machine to do ECC error
injection, used to verify operations of the ECC hardware, that sort of thing.
It really needs to make sure that nothing is actually writing to memory while
the injection happens.  Similar examples can be found in other low level bits
and pieces.

This patch implements a generic hard_irq_disable() function which is meant to
be called -after- local_irq_disable() and ensures that interrupts are fully
disabled on that CPU.  The default implementation is a nop, though powerpc
does already provide an appropriate one.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-11 08:29:34 -07:00
..
acpi ACPICA: Lindent 2007-05-09 23:34:35 -04:00
asm-alpha Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-arm Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-arm26 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-avr32 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-blackfin rename thread_info to stack 2007-05-09 12:30:56 -07:00
asm-cris Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-frv Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-generic Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-h8300 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-i386 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-ia64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-m32r Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-m68k Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-m68knommu Remove tas() 2007-05-08 11:15:20 -07:00
asm-mips Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-parisc Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-powerpc powerpc: fixup hard_irq_disable semantics 2007-05-11 08:29:34 -07:00
asm-ppc Merge branch 'linux-2.6' 2007-05-10 21:08:37 +10:00
asm-s390 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sh Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sh64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sparc Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sparc64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-um uml: iRQ stacks 2007-05-11 08:29:34 -07:00
asm-v850 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-x86_64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-xtensa Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
crypto [CRYPTO] cryptd: Add software async crypto daemon 2007-05-02 14:38:32 +10:00
keys [AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both 2007-04-26 15:48:28 -07:00
linux Add hard_irq_disable() 2007-05-11 08:29:34 -07:00
math-emu Delete unused header file math-emu/extended.h 2007-05-08 11:15:05 -07:00
media i2c: Cleanup the includes of <linux/i2c.h> 2007-05-01 23:26:29 +02:00
mtd UBI: Unsorted Block Images 2007-04-27 14:23:33 +03:00
net Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream 2007-05-09 18:54:49 -04:00
pcmcia add new_id to PCMCIA drivers 2007-05-07 12:12:50 -07:00
rdma IB: Put rlimit accounting struct in struct ib_umem 2007-05-08 18:00:37 -07:00
rxrpc [AF_RXRPC]: Delete the old RxRPC code. 2007-04-26 15:55:48 -07:00
scsi [SCSI] sas_scsi_host: Convert to use the kthread API 2007-05-06 09:33:17 -05:00
sound [ALSA] version 1.0.14rc3 2007-03-14 08:25:52 +01:00
video atyfb: halve XCLK with Mobility and 32bit memory 2007-05-08 11:15:32 -07:00
Kbuild