Commit 2f4cf721eb2ff23b60af2932fd9fa4026f2a1164
Committed by
Paul Mackerras
1 parent
8d92739186
Exists in
master
and in
4 other branches
[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 |