diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-05-05 06:33:10 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-05-05 06:57:12 -0400 |
commit | f6869e7fe657bd977e72954cd78c5871a6a4f71d (patch) | |
tree | 1e34a4bb36cde4b541d7344599e65b541bb4bee7 /arch/powerpc/kvm | |
parent | 5a4e58bc693f04aa650219784e5e339e0db6b902 (diff) | |
parent | cec4b7eaf09d330e94e8e94133d360e6f1855974 (diff) |
Merge remote-tracking branch 'anton/abiv2' into next
This series adds support for building the powerpc 64-bit
LE kernel using the new ABI v2. We already supported
running ABI v2 userspace programs but this adds support
for building the kernel itself using the new ABI.
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r-- | arch/powerpc/kvm/book3s_hv_interrupts.S | 2 | ||||
-rw-r--r-- | arch/powerpc/kvm/book3s_hv_rmhandlers.S | 34 |
2 files changed, 18 insertions, 18 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_interrupts.S b/arch/powerpc/kvm/book3s_hv_interrupts.S index e18e3cfc32de..8c86422a1e37 100644 --- a/arch/powerpc/kvm/book3s_hv_interrupts.S +++ b/arch/powerpc/kvm/book3s_hv_interrupts.S | |||
@@ -171,7 +171,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201) | |||
171 | #endif /* CONFIG_SMP */ | 171 | #endif /* CONFIG_SMP */ |
172 | 172 | ||
173 | /* Jump to partition switch code */ | 173 | /* Jump to partition switch code */ |
174 | bl .kvmppc_hv_entry_trampoline | 174 | bl kvmppc_hv_entry_trampoline |
175 | nop | 175 | nop |
176 | 176 | ||
177 | /* | 177 | /* |
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index b031f932c0cc..9f0ad718e476 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S | |||
@@ -1658,7 +1658,7 @@ kvmppc_hdsi: | |||
1658 | /* Search the hash table. */ | 1658 | /* Search the hash table. */ |
1659 | mr r3, r9 /* vcpu pointer */ | 1659 | mr r3, r9 /* vcpu pointer */ |
1660 | li r7, 1 /* data fault */ | 1660 | li r7, 1 /* data fault */ |
1661 | bl .kvmppc_hpte_hv_fault | 1661 | bl kvmppc_hpte_hv_fault |
1662 | ld r9, HSTATE_KVM_VCPU(r13) | 1662 | ld r9, HSTATE_KVM_VCPU(r13) |
1663 | ld r10, VCPU_PC(r9) | 1663 | ld r10, VCPU_PC(r9) |
1664 | ld r11, VCPU_MSR(r9) | 1664 | ld r11, VCPU_MSR(r9) |
@@ -1732,7 +1732,7 @@ kvmppc_hisi: | |||
1732 | mr r4, r10 | 1732 | mr r4, r10 |
1733 | mr r6, r11 | 1733 | mr r6, r11 |
1734 | li r7, 0 /* instruction fault */ | 1734 | li r7, 0 /* instruction fault */ |
1735 | bl .kvmppc_hpte_hv_fault | 1735 | bl kvmppc_hpte_hv_fault |
1736 | ld r9, HSTATE_KVM_VCPU(r13) | 1736 | ld r9, HSTATE_KVM_VCPU(r13) |
1737 | ld r10, VCPU_PC(r9) | 1737 | ld r10, VCPU_PC(r9) |
1738 | ld r11, VCPU_MSR(r9) | 1738 | ld r11, VCPU_MSR(r9) |
@@ -1806,16 +1806,16 @@ hcall_real_fallback: | |||
1806 | .globl hcall_real_table | 1806 | .globl hcall_real_table |
1807 | hcall_real_table: | 1807 | hcall_real_table: |
1808 | .long 0 /* 0 - unused */ | 1808 | .long 0 /* 0 - unused */ |
1809 | .long .kvmppc_h_remove - hcall_real_table | 1809 | .long DOTSYM(kvmppc_h_remove) - hcall_real_table |
1810 | .long .kvmppc_h_enter - hcall_real_table | 1810 | .long DOTSYM(kvmppc_h_enter) - hcall_real_table |
1811 | .long .kvmppc_h_read - hcall_real_table | 1811 | .long DOTSYM(kvmppc_h_read) - hcall_real_table |
1812 | .long 0 /* 0x10 - H_CLEAR_MOD */ | 1812 | .long 0 /* 0x10 - H_CLEAR_MOD */ |
1813 | .long 0 /* 0x14 - H_CLEAR_REF */ | 1813 | .long 0 /* 0x14 - H_CLEAR_REF */ |
1814 | .long .kvmppc_h_protect - hcall_real_table | 1814 | .long DOTSYM(kvmppc_h_protect) - hcall_real_table |
1815 | .long .kvmppc_h_get_tce - hcall_real_table | 1815 | .long DOTSYM(kvmppc_h_get_tce) - hcall_real_table |
1816 | .long .kvmppc_h_put_tce - hcall_real_table | 1816 | .long DOTSYM(kvmppc_h_put_tce) - hcall_real_table |
1817 | .long 0 /* 0x24 - H_SET_SPRG0 */ | 1817 | .long 0 /* 0x24 - H_SET_SPRG0 */ |
1818 | .long .kvmppc_h_set_dabr - hcall_real_table | 1818 | .long DOTSYM(kvmppc_h_set_dabr) - hcall_real_table |
1819 | .long 0 /* 0x2c */ | 1819 | .long 0 /* 0x2c */ |
1820 | .long 0 /* 0x30 */ | 1820 | .long 0 /* 0x30 */ |
1821 | .long 0 /* 0x34 */ | 1821 | .long 0 /* 0x34 */ |
@@ -1831,11 +1831,11 @@ hcall_real_table: | |||
1831 | .long 0 /* 0x5c */ | 1831 | .long 0 /* 0x5c */ |
1832 | .long 0 /* 0x60 */ | 1832 | .long 0 /* 0x60 */ |
1833 | #ifdef CONFIG_KVM_XICS | 1833 | #ifdef CONFIG_KVM_XICS |
1834 | .long .kvmppc_rm_h_eoi - hcall_real_table | 1834 | .long DOTSYM(kvmppc_rm_h_eoi) - hcall_real_table |
1835 | .long .kvmppc_rm_h_cppr - hcall_real_table | 1835 | .long DOTSYM(kvmppc_rm_h_cppr) - hcall_real_table |
1836 | .long .kvmppc_rm_h_ipi - hcall_real_table | 1836 | .long DOTSYM(kvmppc_rm_h_ipi) - hcall_real_table |
1837 | .long 0 /* 0x70 - H_IPOLL */ | 1837 | .long 0 /* 0x70 - H_IPOLL */ |
1838 | .long .kvmppc_rm_h_xirr - hcall_real_table | 1838 | .long DOTSYM(kvmppc_rm_h_xirr) - hcall_real_table |
1839 | #else | 1839 | #else |
1840 | .long 0 /* 0x64 - H_EOI */ | 1840 | .long 0 /* 0x64 - H_EOI */ |
1841 | .long 0 /* 0x68 - H_CPPR */ | 1841 | .long 0 /* 0x68 - H_CPPR */ |
@@ -1869,7 +1869,7 @@ hcall_real_table: | |||
1869 | .long 0 /* 0xd4 */ | 1869 | .long 0 /* 0xd4 */ |
1870 | .long 0 /* 0xd8 */ | 1870 | .long 0 /* 0xd8 */ |
1871 | .long 0 /* 0xdc */ | 1871 | .long 0 /* 0xdc */ |
1872 | .long .kvmppc_h_cede - hcall_real_table | 1872 | .long DOTSYM(kvmppc_h_cede) - hcall_real_table |
1873 | .long 0 /* 0xe4 */ | 1873 | .long 0 /* 0xe4 */ |
1874 | .long 0 /* 0xe8 */ | 1874 | .long 0 /* 0xe8 */ |
1875 | .long 0 /* 0xec */ | 1875 | .long 0 /* 0xec */ |
@@ -1886,11 +1886,11 @@ hcall_real_table: | |||
1886 | .long 0 /* 0x118 */ | 1886 | .long 0 /* 0x118 */ |
1887 | .long 0 /* 0x11c */ | 1887 | .long 0 /* 0x11c */ |
1888 | .long 0 /* 0x120 */ | 1888 | .long 0 /* 0x120 */ |
1889 | .long .kvmppc_h_bulk_remove - hcall_real_table | 1889 | .long DOTSYM(kvmppc_h_bulk_remove) - hcall_real_table |
1890 | .long 0 /* 0x128 */ | 1890 | .long 0 /* 0x128 */ |
1891 | .long 0 /* 0x12c */ | 1891 | .long 0 /* 0x12c */ |
1892 | .long 0 /* 0x130 */ | 1892 | .long 0 /* 0x130 */ |
1893 | .long .kvmppc_h_set_xdabr - hcall_real_table | 1893 | .long DOTSYM(kvmppc_h_set_xdabr) - hcall_real_table |
1894 | hcall_real_table_end: | 1894 | hcall_real_table_end: |
1895 | 1895 | ||
1896 | ignore_hdec: | 1896 | ignore_hdec: |
@@ -2115,7 +2115,7 @@ kvm_cede_exit: | |||
2115 | /* Try to handle a machine check in real mode */ | 2115 | /* Try to handle a machine check in real mode */ |
2116 | machine_check_realmode: | 2116 | machine_check_realmode: |
2117 | mr r3, r9 /* get vcpu pointer */ | 2117 | mr r3, r9 /* get vcpu pointer */ |
2118 | bl .kvmppc_realmode_machine_check | 2118 | bl kvmppc_realmode_machine_check |
2119 | nop | 2119 | nop |
2120 | cmpdi r3, 0 /* continue exiting from guest? */ | 2120 | cmpdi r3, 0 /* continue exiting from guest? */ |
2121 | ld r9, HSTATE_KVM_VCPU(r13) | 2121 | ld r9, HSTATE_KVM_VCPU(r13) |