s390/kernel: Fix smp_call_ipl_cpu() for offline CPUs
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Thu, 24 May 2012 12:38:26 +0000 (14:38 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 30 May 2012 07:04:51 +0000 (09:04 +0200)
commit061da3dfb291570e780169918933ba51c2b7d554
tree6f41ed465199eb7c5a8b31ff6b834c0b5aa2565e
parent73bf463efaba6a1efe69349c6d7275d03468adf4
s390/kernel: Fix smp_call_ipl_cpu() for offline CPUs

If the IPL CPU is offline, currently the pcpu_delegate() function
used by smp_call_ipl_cpu() does not work because pcpu_delegate()
modifies the lowcore of the target CPU. In case of an offline
IPL CPU currently the prefix register is zero but pcpu->lowcore
still points to the old prefix page. Therefore the lowcore changes
done by pcpu_delegate() have no effect.

With this fix pcpu_delegate() now uses memcpy_absolute() and therefore
also prepares the absolute zero lowcore if the target CPU has prefix
register zero.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/smp.c