linux/arch/s390
Heiko Carstens fbe765680d s390/smp: make absolute lowcore / cpu restart parameter accesses more robust
Setting the cpu restart parameters is done in three different fashions:
- directly setting the four parameters individually
- copying the four parameters with memcpy (using 4 * sizeof(long))
- copying the four parameters using a private structure

In addition code in entry*.S relies on a certain order of the restart
members of struct _lowcore.

Make all of this more robust to future changes by adding a
mem_absolute_assign(dest, val) define, which assigns val to dest
using absolute addressing mode. Also the load multiple instructions
in entry*.S have been split into separate load instruction so the
order of the struct _lowcore members doesn't matter anymore.

In addition move the prototypes of memcpy_real/absolute from uaccess.h
to processor.h. These memcpy* variants are not related to uaccess at all.
string.h doesn't seem to match as well, so lets use processor.h.

Also replace the eight byte array in struct _lowcore which represents a
misaliged u64 with a u64. The compiler will always create code that
handles the misaligned u64 correctly.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-06-14 09:09:02 +02:00
..
appldata sched/accounting: Change cpustat fields to an array 2011-12-06 09:06:38 +01:00
boot s390: add various .gitignore files. 2012-05-16 14:42:41 +02:00
crypto Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
hypfs vfs: Rename end_writeback() to clear_inode() 2012-05-06 13:43:41 +08:00
include/asm s390/smp: make absolute lowcore / cpu restart parameter accesses more robust 2012-06-14 09:09:02 +02:00
kernel s390/smp: make absolute lowcore / cpu restart parameter accesses more robust 2012-06-14 09:09:02 +02:00
kvm s390/smp/kvm: unifiy sigp definitions 2012-06-05 13:23:35 +02:00
lib s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
math-emu s390: change to new flag variable 2011-03-17 14:02:57 +01:00
mm s390/kernel: Introduce memcpy_absolute() function 2012-05-30 09:04:49 +02:00
oprofile s390/irq: split irq stats for cpu-measurement alert facilities 2012-05-23 17:06:52 +02:00
defconfig s390/crypto des: add missing select statement 2012-05-16 14:42:36 +02:00
Kbuild [S390] make arch/s390 subdirectories depend on config option 2011-12-27 11:27:12 +01:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2012-05-31 10:51:10 -07:00
Kconfig.debug [S390] Write protect module text and RO data 2011-03-15 17:08:23 +01:00
Makefile s390: Use generic init_task 2012-05-05 13:00:25 +02:00