Merge branch 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fix from Helge Deller:
"This is a 2-line patch to save the CPU register which holds our task
thread info pointer before calling a firmware function and then to
restore it again afterwards.

This is necessary because on some 64bit machines the high-order 32bits
are being clobbered by the firmware call, and thus we failed to bring
up secondary CPUs (and instead crashed the kernel) in some situations
eg if we had more than 4GB RAM. This patch fixes a bug which has been
since ever in the parisc linux kernel and which prevented some people
to use a 64bit kernel"

* 'parisc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Do not crash 64bit SMP kernels on machines with >= 4GB RAM

+4
+4
arch/parisc/kernel/head.S
··· 195 ldw MEM_PDC_HI(%r0),%r6 196 depd %r6, 31, 32, %r3 /* move to upper word */ 197 198 ldo PDC_PSW(%r0),%arg0 /* 21 */ 199 ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */ 200 ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */ ··· 205 copy %r0,%arg3 206 207 stext_pdc_ret: 208 /* restore rfi target address*/ 209 ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10 210 tophys_r1 %r10
··· 195 ldw MEM_PDC_HI(%r0),%r6 196 depd %r6, 31, 32, %r3 /* move to upper word */ 197 198 + mfctl %cr30,%r6 /* PCX-W2 firmware bug */ 199 + 200 ldo PDC_PSW(%r0),%arg0 /* 21 */ 201 ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */ 202 ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */ ··· 203 copy %r0,%arg3 204 205 stext_pdc_ret: 206 + mtctl %r6,%cr30 /* restore task thread info */ 207 + 208 /* restore rfi target address*/ 209 ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10 210 tophys_r1 %r10