linux/arch/tile/include/asm
Chris Metcalf 51007004f4 arch/tile: use interrupt critical sections less
In general we want to avoid ever touching memory while within an
interrupt critical section, since the page fault path goes through
a different path from the hypervisor when in an interrupt critical
section, and we carefully decided with tilegx that we didn't need
to support this path in the kernel.  (On tilepro we did implement
that path as part of supporting atomic instructions in software.)

In practice we always need to touch the kernel stack, since that's
where we store the interrupt state before releasing the critical
section, but this change cleans up a few things.  The IRQ_ENABLE
macro is split up so that when we want to enable interrupts in a
deferred way (e.g. for cpu_idle or for interrupt return) we can
read the per-cpu enable mask before entering the critical section.
The cache-migration code is changed to use interrupt masking instead
of interrupt critical sections.  And, the interrupt-entry code is
changed so that we defer loading "tp" from per-cpu data until after
we have released the interrupt critical section.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2012-05-25 12:48:20 -04:00
..
asm-offsets.h
atomic_32.h arch/tile: revert comment for atomic64_add_unless(). 2012-04-02 12:00:15 -04:00
atomic_64.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
atomic.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
auxvec.h
backtrace.h arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
barrier.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_64.h arch/tile: fix gcc 4.6 warnings in <asm/bitops_64.h> 2012-04-02 12:00:15 -04:00
bitops.h arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
bitsperlong.h
byteorder.h
cache.h arch/tile: catch up with section naming convention in 2.6.35 2011-03-01 16:18:52 -05:00
cacheflush.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
checksum.h
cmpxchg.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
compat.h [PATCH v3] ipc: provide generic compat versions of IPC syscalls 2012-03-15 13:13:38 -04:00
current.h
delay.h
dma-mapping.h tile,mn10300: add device parameter to dma_cache_sync() 2011-05-04 14:41:36 -04:00
dma.h
edac.h drivers/edac: provide support for tile architecture 2011-03-10 13:30:14 -05:00
elf.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
exec.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
fixmap.h arch/tile: remove useless set_fixmap_nocache() macro 2011-06-15 10:35:38 -04:00
ftrace.h
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
hardirq.h
hardwall.h arch/tile: more /proc and /sys file support 2011-05-27 10:39:05 -04:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
homecache.h
hugetlb.h arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
hv_driver.h
hw_irq.h
ide.h
io.h tile: don't panic on iomap 2011-12-04 16:00:07 +02:00
irq.h arch/tile: use 0 for IRQ_RESCHEDULE instead of 1 2012-04-02 12:00:16 -04:00
irqflags.h arch/tile: use interrupt critical sections less 2012-05-25 12:48:20 -04:00
Kbuild arch/tile: add the <arch> headers to the set of installed kernel headers 2011-11-03 16:58:48 -04:00
kexec.h
kmap_types.h arch/tile: complete migration to new kmap_atomic scheme 2010-11-01 15:30:36 -04:00
linkage.h
memprof.h
mman.h arch/tile: provide a definition of MAP_STACK 2010-10-14 15:09:02 -04:00
mmu_context.h tile: replace mm->cpu_vm_mask with mm_cpumask() 2011-05-04 14:41:44 -04:00
mmu.h
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
page.h arch/tile: kernel-related cleanups from removing static page size 2011-05-04 14:41:13 -04:00
pci.h arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
percpu.h
pgalloc.h arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
pgtable_32.h arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
pgtable_64.h arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
pgtable.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
processor.h arch/tile: support signal "exception-trace" hook 2011-05-19 22:55:59 -04:00
ptrace.h ptrace: unify show_regs() prototype 2011-07-26 16:49:43 -07:00
sections.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
setup.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
sigcontext.h arch/tile: avoid ISO namespace pollution with <asm/sigcontext.h> 2011-11-03 16:58:36 -04:00
sigframe.h
siginfo.h arch/tile: Fix a couple of issues with the COMPAT code for TILE-Gx. 2010-08-13 08:32:21 -04:00
signal.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
smp.h smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
spinlock_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
spinlock_64.h arch/tile: use atomic exchange in arch_write_unlock() 2012-04-02 12:13:49 -04:00
spinlock_types.h
spinlock.h
stack.h arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
stat.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
string.h
swab.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
switch_to.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
syscall.h
syscalls.h arch/tile: Use <asm-generic/syscalls.h> 2010-10-14 14:34:33 -04:00
thread_info.h arch/tile: fix up some issues in calling do_work_pending() 2012-05-16 16:01:16 -04:00
tile-desc_32.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
timex.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
tlb.h
tlbflush.h
topology.h arch/tile: disable SD_WAKE_AFFINE flag on CPU/NODE scheduling domain 2011-05-04 14:40:16 -04:00
traps.h arch/tile: work around a hardware issue with the return-address stack 2012-04-02 12:12:48 -04:00
uaccess.h arch/tile: Various cleanups. 2010-08-13 08:52:19 -04:00
unaligned.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
unistd.h arch/tile: cleanups for tilegx compat mode 2011-05-19 22:56:13 -04:00
user.h
vga.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00