aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2014-02-04 00:07:01 -0500
committerAnton Blanchard <anton@samba.org>2014-04-22 20:05:19 -0400
commitc1fb019477c27bfe309be282d178a08e56f05249 (patch)
treee009c66d0cd8c8c23c927af879e540347f62d4ce
parent354255014a9042b9204e5bed22704110326d5ecf (diff)
powerpc: Create DOTSYM to wrap dot symbol usage
There are a few places we have to use dot symbols with the current ABI - the syscall table and the kvm hcall table. Wrap both of these with a new macro called DOTSYM so it will be easy to transition away from dot symbols in a future ABI. Signed-off-by: Anton Blanchard <anton@samba.org>
-rw-r--r--arch/powerpc/include/asm/ppc_asm.h2
-rw-r--r--arch/powerpc/include/asm/systbl.h6
-rw-r--r--arch/powerpc/kernel/systbl.S12
-rw-r--r--arch/powerpc/kvm/book3s_hv_rmhandlers.S28
4 files changed, 25 insertions, 23 deletions
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h
index 35b23a6584cb..61992d8f99df 100644
--- a/arch/powerpc/include/asm/ppc_asm.h
+++ b/arch/powerpc/include/asm/ppc_asm.h
@@ -223,6 +223,8 @@ name: \
223 .type GLUE(.,name),@function; \ 223 .type GLUE(.,name),@function; \
224GLUE(.,name): 224GLUE(.,name):
225 225
226#define DOTSYM(a) GLUE(.,a)
227
226#else /* 32-bit */ 228#else /* 32-bit */
227 229
228#define _ENTRY(n) \ 230#define _ENTRY(n) \
diff --git a/arch/powerpc/include/asm/systbl.h b/arch/powerpc/include/asm/systbl.h
index 3ddf70276706..ac062f504736 100644
--- a/arch/powerpc/include/asm/systbl.h
+++ b/arch/powerpc/include/asm/systbl.h
@@ -62,7 +62,7 @@ COMPAT_SYS_SPU(fcntl)
62SYSCALL(ni_syscall) 62SYSCALL(ni_syscall)
63SYSCALL_SPU(setpgid) 63SYSCALL_SPU(setpgid)
64SYSCALL(ni_syscall) 64SYSCALL(ni_syscall)
65SYSX(sys_ni_syscall,sys_olduname, sys_olduname) 65SYSX(sys_ni_syscall,sys_olduname,sys_olduname)
66SYSCALL_SPU(umask) 66SYSCALL_SPU(umask)
67SYSCALL_SPU(chroot) 67SYSCALL_SPU(chroot)
68COMPAT_SYS(ustat) 68COMPAT_SYS(ustat)
@@ -258,7 +258,7 @@ SYSCALL_SPU(tgkill)
258COMPAT_SYS_SPU(utimes) 258COMPAT_SYS_SPU(utimes)
259COMPAT_SYS_SPU(statfs64) 259COMPAT_SYS_SPU(statfs64)
260COMPAT_SYS_SPU(fstatfs64) 260COMPAT_SYS_SPU(fstatfs64)
261SYSX(sys_ni_syscall, ppc_fadvise64_64, ppc_fadvise64_64) 261SYSX(sys_ni_syscall,ppc_fadvise64_64,ppc_fadvise64_64)
262PPC_SYS_SPU(rtas) 262PPC_SYS_SPU(rtas)
263OLDSYS(debug_setcontext) 263OLDSYS(debug_setcontext)
264SYSCALL(ni_syscall) 264SYSCALL(ni_syscall)
@@ -295,7 +295,7 @@ SYSCALL_SPU(mkdirat)
295SYSCALL_SPU(mknodat) 295SYSCALL_SPU(mknodat)
296SYSCALL_SPU(fchownat) 296SYSCALL_SPU(fchownat)
297COMPAT_SYS_SPU(futimesat) 297COMPAT_SYS_SPU(futimesat)
298SYSX_SPU(sys_newfstatat, sys_fstatat64, sys_fstatat64) 298SYSX_SPU(sys_newfstatat,sys_fstatat64,sys_fstatat64)
299SYSCALL_SPU(unlinkat) 299SYSCALL_SPU(unlinkat)
300SYSCALL_SPU(renameat) 300SYSCALL_SPU(renameat)
301SYSCALL_SPU(linkat) 301SYSCALL_SPU(linkat)
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S
index 75822f97bfea..895c50ca943c 100644
--- a/arch/powerpc/kernel/systbl.S
+++ b/arch/powerpc/kernel/systbl.S
@@ -17,12 +17,12 @@
17#include <asm/ppc_asm.h> 17#include <asm/ppc_asm.h>
18 18
19#ifdef CONFIG_PPC64 19#ifdef CONFIG_PPC64
20#define SYSCALL(func) .llong .sys_##func,.sys_##func 20#define SYSCALL(func) .llong DOTSYM(sys_##func),DOTSYM(sys_##func)
21#define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func 21#define COMPAT_SYS(func) .llong DOTSYM(sys_##func),DOTSYM(compat_sys_##func)
22#define PPC_SYS(func) .llong .ppc_##func,.ppc_##func 22#define PPC_SYS(func) .llong DOTSYM(ppc_##func),DOTSYM(ppc_##func)
23#define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall 23#define OLDSYS(func) .llong DOTSYM(sys_ni_syscall),DOTSYM(sys_ni_syscall)
24#define SYS32ONLY(func) .llong .sys_ni_syscall,.compat_sys_##func 24#define SYS32ONLY(func) .llong DOTSYM(sys_ni_syscall),DOTSYM(compat_sys_##func)
25#define SYSX(f, f3264, f32) .llong .f,.f3264 25#define SYSX(f, f3264, f32) .llong DOTSYM(f),DOTSYM(f3264)
26#else 26#else
27#define SYSCALL(func) .long sys_##func 27#define SYSCALL(func) .long sys_##func
28#define COMPAT_SYS(func) .long sys_##func 28#define COMPAT_SYS(func) .long sys_##func
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 7cfabe3881d8..e9593f58a501 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1795,16 +1795,16 @@ hcall_real_fallback:
1795 .globl hcall_real_table 1795 .globl hcall_real_table
1796hcall_real_table: 1796hcall_real_table:
1797 .long 0 /* 0 - unused */ 1797 .long 0 /* 0 - unused */
1798 .long .kvmppc_h_remove - hcall_real_table 1798 .long DOTSYM(kvmppc_h_remove) - hcall_real_table
1799 .long .kvmppc_h_enter - hcall_real_table 1799 .long DOTSYM(kvmppc_h_enter) - hcall_real_table
1800 .long .kvmppc_h_read - hcall_real_table 1800 .long DOTSYM(kvmppc_h_read) - hcall_real_table
1801 .long 0 /* 0x10 - H_CLEAR_MOD */ 1801 .long 0 /* 0x10 - H_CLEAR_MOD */
1802 .long 0 /* 0x14 - H_CLEAR_REF */ 1802 .long 0 /* 0x14 - H_CLEAR_REF */
1803 .long .kvmppc_h_protect - hcall_real_table 1803 .long DOTSYM(kvmppc_h_protect) - hcall_real_table
1804 .long .kvmppc_h_get_tce - hcall_real_table 1804 .long DOTSYM(kvmppc_h_get_tce) - hcall_real_table
1805 .long .kvmppc_h_put_tce - hcall_real_table 1805 .long DOTSYM(kvmppc_h_put_tce) - hcall_real_table
1806 .long 0 /* 0x24 - H_SET_SPRG0 */ 1806 .long 0 /* 0x24 - H_SET_SPRG0 */
1807 .long .kvmppc_h_set_dabr - hcall_real_table 1807 .long DOTSYM(kvmppc_h_set_dabr) - hcall_real_table
1808 .long 0 /* 0x2c */ 1808 .long 0 /* 0x2c */
1809 .long 0 /* 0x30 */ 1809 .long 0 /* 0x30 */
1810 .long 0 /* 0x34 */ 1810 .long 0 /* 0x34 */
@@ -1820,11 +1820,11 @@ hcall_real_table:
1820 .long 0 /* 0x5c */ 1820 .long 0 /* 0x5c */
1821 .long 0 /* 0x60 */ 1821 .long 0 /* 0x60 */
1822#ifdef CONFIG_KVM_XICS 1822#ifdef CONFIG_KVM_XICS
1823 .long .kvmppc_rm_h_eoi - hcall_real_table 1823 .long DOTSYM(kvmppc_rm_h_eoi) - hcall_real_table
1824 .long .kvmppc_rm_h_cppr - hcall_real_table 1824 .long DOTSYM(kvmppc_rm_h_cppr) - hcall_real_table
1825 .long .kvmppc_rm_h_ipi - hcall_real_table 1825 .long DOTSYM(kvmppc_rm_h_ipi) - hcall_real_table
1826 .long 0 /* 0x70 - H_IPOLL */ 1826 .long 0 /* 0x70 - H_IPOLL */
1827 .long .kvmppc_rm_h_xirr - hcall_real_table 1827 .long DOTSYM(kvmppc_rm_h_xirr) - hcall_real_table
1828#else 1828#else
1829 .long 0 /* 0x64 - H_EOI */ 1829 .long 0 /* 0x64 - H_EOI */
1830 .long 0 /* 0x68 - H_CPPR */ 1830 .long 0 /* 0x68 - H_CPPR */
@@ -1858,7 +1858,7 @@ hcall_real_table:
1858 .long 0 /* 0xd4 */ 1858 .long 0 /* 0xd4 */
1859 .long 0 /* 0xd8 */ 1859 .long 0 /* 0xd8 */
1860 .long 0 /* 0xdc */ 1860 .long 0 /* 0xdc */
1861 .long .kvmppc_h_cede - hcall_real_table 1861 .long DOTSYM(kvmppc_h_cede) - hcall_real_table
1862 .long 0 /* 0xe4 */ 1862 .long 0 /* 0xe4 */
1863 .long 0 /* 0xe8 */ 1863 .long 0 /* 0xe8 */
1864 .long 0 /* 0xec */ 1864 .long 0 /* 0xec */
@@ -1875,11 +1875,11 @@ hcall_real_table:
1875 .long 0 /* 0x118 */ 1875 .long 0 /* 0x118 */
1876 .long 0 /* 0x11c */ 1876 .long 0 /* 0x11c */
1877 .long 0 /* 0x120 */ 1877 .long 0 /* 0x120 */
1878 .long .kvmppc_h_bulk_remove - hcall_real_table 1878 .long DOTSYM(kvmppc_h_bulk_remove) - hcall_real_table
1879 .long 0 /* 0x128 */ 1879 .long 0 /* 0x128 */
1880 .long 0 /* 0x12c */ 1880 .long 0 /* 0x12c */
1881 .long 0 /* 0x130 */ 1881 .long 0 /* 0x130 */
1882 .long .kvmppc_h_set_xdabr - hcall_real_table 1882 .long DOTSYM(kvmppc_h_set_xdabr) - hcall_real_table
1883hcall_real_table_end: 1883hcall_real_table_end:
1884 1884
1885ignore_hdec: 1885ignore_hdec: