History

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

Linus Torvalds committed 13 years ago

Commit a2ff8202 parents aff22d3 54e181e1 file · +4 −0Browse files

Unified · Split

arch/parisc/kernel/head.S+4−0
@@ -195,6 +195,8 @@ common_stext: · 194 unmodified lines
195195 ldw MEM_PDC_HI(%r0),%r6
196196 depd %r6, 31, 32, %r3 /* move to upper word */
197197
198+ mfctl %cr30,%r6 /* PCX-W2 firmware bug */
199+
198200 ldo PDC_PSW(%r0),%arg0 /* 21 */
199201 ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */
200202 ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */
@@ -203,6 +205,8 @@ common_stext: · 2 unmodified lines
203205 copy %r0,%arg3
204206
205207 stext_pdc_ret:
208+ mtctl %r6,%cr30 /* restore task thread info */
209+
206210 /* restore rfi target address*/
207211 ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10
208212 tophys_r1 %r10