linux/arch/arm/mm
Gary King 831e8047eb ARM: 6279/1: highmem: fix SMP preemption bug in kmap_high_l1_vipt
smp_processor_id() must not be called from a preemptible context (this
is checked by CONFIG_DEBUG_PREEMPT).  kmap_high_l1_vipt() was doing so.
This lead to a problem where the wrong per_cpu kmap_high_l1_vipt_depth
could be incremented, causing a BUG_ON(*depth <= 0); in
kunmap_high_l1_vipt().

The solution is to move the call to smp_processor_id() after the call
to preempt_disable().

Originally by: Andrew Howe <ahowe@nvidia.com>

Signed-off-by: Gary King <gking@nvidia.com>
Acked-by: Nicolas Pitre <nico.as.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-07-30 23:16:07 +01:00
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S
abort-ev7.S arm: mm: qsd8x50: Fix incorrect permission faults 2010-05-03 11:15:05 -07:00
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c Merge branch 'devel-stable' into devel 2010-05-17 17:24:04 +01:00
cache-fa.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
cache-feroceon-l2.c
cache-l2x0.c ARM: 6272/1: Convert L2x0 to use the IO relaxed operations 2010-07-29 14:04:36 +01:00
cache-tauros2.c ARM: Add Tauros2 L2 cache controller support 2009-11-27 15:43:21 -05:00
cache-v3.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
cache-v4.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
cache-v4wb.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
cache-v4wt.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
cache-v6.S ARM: 6188/1: Add a config option for the ARM11MPCore DMA cache maintenance workaround 2010-07-01 10:12:31 +01:00
cache-v7.S ARM: 6139/1: ARMv7: Use the Inner Shareable I-cache on MP 2010-05-20 23:52:38 +01:00
cache-xsc3l2.c [ARM] pxa: do not enable L2 after MMU is enabled 2010-01-01 15:50:34 +08:00
context.c ARM: 5905/1: ARM: Global ASID allocation on SMP 2010-02-15 21:39:51 +00:00
copypage-fa.c ARM: Gemini: fix compiler error in copypage-fa.c 2010-04-27 12:45:10 +02:00
copypage-feroceon.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v3.c ARM: Pass VMA to copy_user_highpage() implementations 2009-10-05 15:17:45 +01:00
copypage-v4mc.c ARM: Pass VMA to copy_user_highpage() implementations 2009-10-05 15:17:45 +01:00
copypage-v4wb.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v4wt.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-v6.c ARM: 6007/1: fix highmem with VIPT cache and DMA 2010-04-14 11:11:27 +01:00
copypage-xsc3.c ARM: 6164/1: Add kto and kfrom to input operands list. 2010-06-08 19:42:18 +01:00
copypage-xscale.c ARM: Pass VMA to copy_user_highpage() implementations 2009-10-05 15:17:45 +01:00
discontig.c
dma-mapping.c ARM: 6186/1: Avoid the CONSISTENT_DMA_SIZE warning on noMMU builds 2010-07-01 10:12:07 +01:00
extable.c
fault-armv.c Merge branch 'devel-stable' into devel 2010-05-17 17:24:04 +01:00
fault.c ARM: 6166/1: Proper prefetch abort handling on pre-ARMv6 2010-06-08 19:39:57 +01:00
fault.h
flush.c ARM: 6007/1: fix highmem with VIPT cache and DMA 2010-04-14 11:11:27 +01:00
highmem.c ARM: 6279/1: highmem: fix SMP preemption bug in kmap_high_l1_vipt 2010-07-30 23:16:07 +01:00
init.c ARM: 6144/1: TCM memory bug freeing bug 2010-05-27 10:36:07 +01:00
iomap.c
ioremap.c ARM: Add caller information to ioremap 2010-02-15 21:39:11 +00:00
Kconfig ARM: 6202/1: Do not ARM_DMA_MEM_BUFFERABLE on RealView boards with L210/L220 2010-07-02 10:10:20 +01:00
Makefile ARM: Ensure ARMv6/7 mm files are built using appropriate assembler options 2010-01-12 19:02:05 +00:00
mm.h ARM: Move memory mapping into mmu.c 2010-05-15 15:03:49 +01:00
mmap.c fix broken aliasing checks for MAP_FIXED on sparc32, mips, arm and sh 2009-12-11 06:44:59 -05:00
mmu.c Merge branch 'for-linus/samsung4' of git://git.fluff.org/bjdooks/linux 2010-05-19 11:49:33 -07:00
nommu.c ARM: 6106/1: Implement copy_to_user_page() for noMMU 2010-05-08 10:44:22 +01:00
pabort-legacy.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
pabort-v6.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
pabort-v7.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
pgd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
proc-arm6_7.S ARM: Fix wrong register in proc-arm6_7.S data abort handler 2010-02-03 15:48:03 +00:00
proc-arm7tdmi.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-arm9tdmi.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-arm720.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-arm740.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-arm920.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm922.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm925.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm926.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm940.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm946.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm1020.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm1020e.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm1022.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-arm1026.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-fa526.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-feroceon.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-macros.S Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
proc-mohawk.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
proc-sa110.S ARM: 5727/1: Pass IFSR register to do_PrefetchAbort() 2009-10-02 22:34:32 +01:00
proc-sa1100.S ARM: fix build error in arch/arm/kernel/process.c 2010-04-21 08:45:21 +01:00
proc-syms.c ARM: add size argument to __cpuc_flush_dcache_page 2009-12-14 14:53:22 +00:00
proc-v6.S ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments 2010-01-19 23:11:56 +00:00
proc-v7.S ARM: 5888/1: arm: Update comments in cacheflush.h and remove unnecessary V6 and V7 comments 2010-01-19 23:11:56 +00:00
proc-xsc3.S Merge branches 'at91', 'cache', 'cup', 'ep93xx', 'ixp4xx', 'nuc', 'pending-dma-streaming', 'u300' and 'umc' into devel 2010-02-25 22:06:43 +00:00
proc-xscale.S ARM: dma-mapping: remove dmac_clean_range and dmac_inv_range 2010-02-15 15:22:23 +00:00
tlb-fa.S
tlb-v3.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S ARM: 6112/1: Use the Inner Shareable I-cache and BTB ops on ARMv7 SMP 2010-05-08 10:44:30 +01:00
vmregion.c ARM: dma-mapping: split out vmregion code from dma coherent mapping code 2009-11-24 17:41:34 +00:00
vmregion.h ARM: dma-mapping: split out vmregion code from dma coherent mapping code 2009-11-24 17:41:34 +00:00