linux-uconsole/arch/tile
Chris Metcalf bc30c3576d tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT
commit f862eefec0 upstream.

It turns out the kernel relies on barrier() to force a reload of the
percpu offset value.  Since we can't easily modify the definition of
barrier() to include "tp" as an output register, we instead provide a
definition of __my_cpu_offset as extended assembly that includes a fake
stack read to hazard against barrier(), forcing gcc to know that it
must reread "tp" and recompute anything based on "tp" after a barrier.

This fixes observed hangs in the slub allocator when we are looping
on a percpu cmpxchg_double.

A similar fix for ARMv7 was made in June in change 509eb76ebf.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-13 16:08:34 -07:00
..
configs md: remove CONFIG_MULTICORE_RAID456 entirely 2013-03-20 13:21:14 +11:00
gxio arch/tile: provide kernel support for the tilegx USB shim 2012-07-18 16:40:24 -04:00
include tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT 2013-10-13 16:08:34 -07:00
kernel Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2013-05-09 14:34:58 -07:00
kvm arch/tile/kvm: remove depends on CONFIG_EXPERIMENTAL 2013-01-17 12:11:26 -08:00
lib tilepro: work around module link error with gcc 4.7 2013-06-15 16:47:47 -04:00
mm mm, vmalloc: change iterating a vmlist to find_vm_area() 2013-04-29 15:54:33 -07:00
Kbuild
Kconfig Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2013-05-09 14:34:58 -07:00
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile arch/tile: avoid generating .eh_frame information in modules 2012-10-23 10:21:43 -04:00