[PARISC] fix PA1.1 oops on boot
authorJames Bottomley <JBottomley@Parallels.com>
Tue, 15 May 2012 10:04:19 +0000 (11:04 +0100)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 16 May 2012 10:14:45 +0000 (11:14 +0100)
All PA1.1 systems have been oopsing on boot since

commit f311847c2fcebd81912e2f0caf8a461dec28db41
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date:   Wed Dec 22 10:22:11 2010 -0600

    parisc: flush pages through tmpalias space

because a PA2.0 instruction was accidentally introduced into the PA1.1 TLB
insertion interruption path when it was consolidated with the do_alias macro.
Fix the do_alias macro only to use PA2.0 instructions if compiled for 64 bit.
Cc: stable@vger.kernel.org #2.6.39+
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
arch/parisc/kernel/entry.S

index 6f05944391439bcf88ac7761616bd94b24669fcd..5350342170218f635e4e231a4d10b1147210a1bf 100644 (file)
         */
        cmpiclr,=       0x01,\tmp,%r0
        ldi             (_PAGE_DIRTY|_PAGE_READ|_PAGE_WRITE),\prot
+#ifdef CONFIG_64BIT
        depd,z          \prot,8,7,\prot
+#else
+       depw,z          \prot,8,7,\prot
+#endif
        /*
         * OK, it is in the temp alias region, check whether "from" or "to".
         * Check "subtle" note in pacache.S re: r23/r26.