Commit 2f4cf721eb2ff23b60af2932fd9fa4026f2a1164

Authored by Jimi Xenidis
Committed by Paul Mackerras
1 parent 8d92739186

[PATCH] ppc64: systemcfg is now a pointer

The following patch fixes 2 issues:
  1) use PLATFORM_LPAR bit to test if running in LPAR mode
  2) systemcfg pointer is assigned from static data in
     arch/ppc64/kernel/pacaData.c.  The file arch/ppc64/kernel/head.S
     now refers to is using the GOT binding to the pointer and hence
     must deref it.

Signed-off-by: Jimi Xenidis <jimix@watson.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

Showing 1 changed file with 6 additions and 3 deletions Side-by-side Diff

arch/ppc64/kernel/head.S
... ... @@ -1646,8 +1646,9 @@
1646 1646 #else
1647 1647 /* set the ASR */
1648 1648 ld r3,systemcfg@got(r2) /* r3 = ptr to systemcfg */
  1649 + ld r3,0(r3)
1649 1650 lwz r3,PLATFORM(r3) /* r3 = platform flags */
1650   - cmpldi r3,PLATFORM_PSERIES_LPAR
  1651 + andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
1651 1652 bne 98f
1652 1653 mfspr r3,PVR
1653 1654 srwi r3,r3,16
1654 1655  
... ... @@ -1809,8 +1810,9 @@
1809 1810 ld r3,PACASTABREAL(r13)
1810 1811 ori r4,r3,1 /* turn on valid bit */
1811 1812 ld r3,systemcfg@got(r2) /* r3 = ptr to systemcfg */
  1813 + ld r3,0(r3)
1812 1814 lwz r3,PLATFORM(r3) /* r3 = platform flags */
1813   - cmpldi r3,PLATFORM_PSERIES_LPAR
  1815 + andi. r3,r3,PLATFORM_LPAR /* Test if bit 0 is set (LPAR bit) */
1814 1816 bne 98f
1815 1817 mfspr r3,PVR
1816 1818 srwi r3,r3,16
1817 1819  
... ... @@ -1828,9 +1830,10 @@
1828 1830 99:
1829 1831 /* Set SDR1 (hash table pointer) */
1830 1832 ld r3,systemcfg@got(r2) /* r3 = ptr to systemcfg */
  1833 + ld r3,0(r3)
1831 1834 lwz r3,PLATFORM(r3) /* r3 = platform flags */
1832 1835 /* Test if bit 0 is set (LPAR bit) */
1833   - andi. r3,r3,0x1
  1836 + andi. r3,r3,PLATFORM_LPAR
1834 1837 bne 98f
1835 1838 LOADADDR(r6,_SDR1) /* Only if NOT LPAR */
1836 1839 sub r6,r6,r26