linux-stable-rt/include/asm-powerpc
Hugh Dickins 292f86f005 [POWERPC] Make mmiowb's io_sync preempt safe
If mmiowb() is always used prior to releasing spinlock as Doc suggests,
then it's safe against preemption; but I'm not convinced that's always
the case.  If preemption occurs between sync and get_paca()->io_sync = 0,
I believe there's no problem.  But in the unlikely event that gcc does
the store relative to another register than r13 (as it did with current),
then there's a small danger of setting another cpu's io_sync to 0, after
it had just set it to 1.  Rewrite ppc64 mmiowb to prevent that.

The remaining io_sync assignments in io.h all get_paca()->io_sync = 1,
which is harmless even if preempted to the wrong cpu (the context switch
itself syncs); and those in spinlock.h are while preemption is disabled.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-11-01 14:52:49 +11:00
..
iseries [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
8253pit.h
Kbuild
a.out.h
abs_addr.h
agp.h
asm-compat.h [POWERPC] Support feature fixups in vdso's 2006-10-25 11:54:07 +10:00
atomic.h
auxvec.h
backlight.h
bitops.h
bootx.h
btext.h
bug.h [PATCH] Let WARN_ON/WARN_ON_ONCE return the condition 2006-09-29 09:18:06 -07:00
bugs.h
byteorder.h
cache.h
cacheflush.h
checksum.h
compat.h
cputable.h [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
cputime.h
current.h [POWERPC] Make current preempt-safe 2006-11-01 14:52:48 +11:00
dbdma.h
delay.h
div64.h
dma-mapping.h
dma.h
eeh.h
eeh_event.h
elf.h
emergency-restart.h
errno.h
fcntl.h
firmware.h [POWERPC] Support feature fixups in vdso's 2006-10-25 11:54:07 +10:00
floppy.h
fs_pd.h POWERPC: Get rid of remapping the whole immr 2006-09-21 22:37:58 +04:00
futex.h
grackle.h
hardirq.h
heathrow.h
hvcall.h
hvconsole.h
hvcserver.h
hw_irq.h
i8259.h [POWERPC] Fix CHRP platforms with only 8259 2006-10-25 13:49:22 +10:00
ibmebus.h IRQ: Use the new typedef for interrupt handler function pointers 2006-10-09 12:19:47 +01:00
ide.h
immap_86xx.h
immap_qe.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
io.h [POWERPC] Make mmiowb's io_sync preempt safe 2006-11-01 14:52:49 +11:00
ioctl.h
ioctls.h
iommu.h [POWERPC] Use 4kB iommu pages even on 64kB-page systems 2006-11-01 14:52:48 +11:00
ipc.h
ipcbuf.h
ipic.h [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
irq.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
irqflags.h
kdebug.h
kdump.h
kexec.h
keylargo.h
kmap_types.h
kprobes.h [PATCH] kprobes: handle symbol resolution when <module:.symbol> is specified 2006-10-02 07:57:16 -07:00
linkage.h
lmb.h
local.h
lppaca.h
machdep.h [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
macio.h
mc146818rtc.h
mediabay.h
mman.h
mmu.h
mmu_context.h
mmzone.h
module.h
mpc85xx.h POWERPC: Add support for the mpc8560 eval board 2006-09-21 22:31:26 +04:00
mpc86xx.h
mpic.h [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
msgbuf.h
mutex.h
namei.h
nvram.h
of_device.h
ohare.h
oprofile_impl.h [POWERPC] Fix oprofile support for e500 in arch/powerpc 2006-11-01 14:52:48 +11:00
pSeries_reconfig.h
paca.h
page.h [POWERPC] Remove DISCONTIGMEM cruft from page.h 2006-09-22 15:19:58 +10:00
page_32.h
page_64.h
param.h
parport.h
pci-bridge.h Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
pci.h
percpu.h
pgalloc.h
pgtable-4k.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
pgtable-64k.h
pgtable.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h [POWERPC] Fix oprofile support for e500 in arch/powerpc 2006-11-01 14:52:48 +11:00
poll.h
posix_types.h
ppc-pci.h [POWERPC] EEH: enable MMIO/DMA on frozen slot 2006-09-21 22:59:14 +10:00
ppc_asm.h [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
processor.h
prom.h [POWERPC] Fix device_is_compatible() const warning 2006-10-25 11:54:24 +10:00
ptrace.h [PATCH] Add regs_return_value() helper 2006-10-02 07:57:16 -07:00
qe.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
qe_ic.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
reg.h [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
reg_8xx.h
resource.h
rtas.h
rtc.h
rwsem.h
scatterlist.h
seccomp.h
sections.h
semaphore.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
smu.h
socket.h
sockios.h
sparsemem.h
spinlock.h [PATCH] Directed yield: direct yield of spinlocks for powerpc 2006-10-01 00:39:22 -07:00
spinlock_types.h
spu.h [POWERPC] spufs: add infrastructure for finding elf objects 2006-10-05 09:21:02 +10:00
spu_csa.h
spu_priv1.h
sstep.h
stat.h
statfs.h
string.h
synch.h
syscalls.h
systbl.h
system.h [POWERPC] Fix rmb() for e500-based machines it 2006-11-01 14:52:48 +11:00
tce.h [POWERPC] Use 4kB iommu pages even on 64kB-page systems 2006-11-01 14:52:48 +11:00
termbits.h
termios.h
thread_info.h
time.h [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
timex.h [POWERPC] Cell timebase bug workaround 2006-10-25 11:54:18 +10:00
tlb.h
tlbflush.h
todc.h
topology.h [PATCH] sched: introduce child field in sched_domain 2006-10-03 08:04:06 -07:00
tsi108.h
tsi108_irq.h
types.h
uaccess.h
ucc.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
ucc_fast.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
ucc_slow.h [POWERPC] Add QUICC Engine (QE) infrastructure 2006-10-04 15:24:27 +10:00
ucontext.h
udbg.h
unaligned.h
uninorth.h
unistd.h [PATCH] rename the provided execve functions to kernel_execve 2006-10-02 07:57:23 -07:00
user.h
vdso.h
vdso_datapage.h
vga.h
vio.h
xmon.h [POWERPC] Fix xmon=off and cleanup xmon initialisation 2006-10-04 14:52:22 +10:00
xor.h