aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/configs/tilegx_defconfig1
-rw-r--r--arch/tile/include/asm/atomic.h14
-rw-r--r--arch/tile/include/asm/atomic_32.h14
-rw-r--r--arch/tile/include/asm/atomic_64.h6
-rw-r--r--arch/tile/include/asm/bitops_32.h2
-rw-r--r--arch/tile/include/asm/bitops_64.h7
-rw-r--r--arch/tile/include/asm/ptrace.h2
-rw-r--r--arch/tile/include/asm/spinlock_32.h2
-rw-r--r--arch/tile/kernel/intvec_32.S2
-rw-r--r--arch/tile/kernel/module.c31
-rw-r--r--arch/tile/kernel/pci.c2
-rw-r--r--arch/tile/kernel/setup.c3
-rw-r--r--arch/tile/kvm/Kconfig1
-rw-r--r--arch/tile/lib/atomic_32.c2
-rw-r--r--arch/tile/lib/atomic_asm_32.S2
15 files changed, 19 insertions, 72 deletions
diff --git a/arch/tile/configs/tilegx_defconfig b/arch/tile/configs/tilegx_defconfig
index 09f1c7fad8bf..2ad73fb707b9 100644
--- a/arch/tile/configs/tilegx_defconfig
+++ b/arch/tile/configs/tilegx_defconfig
@@ -1479,7 +1479,6 @@ CONFIG_NFS_FSCACHE=y
1479CONFIG_NFS_USE_KERNEL_DNS=y 1479CONFIG_NFS_USE_KERNEL_DNS=y
1480# CONFIG_NFS_USE_NEW_IDMAPPER is not set 1480# CONFIG_NFS_USE_NEW_IDMAPPER is not set
1481CONFIG_NFSD=m 1481CONFIG_NFSD=m
1482CONFIG_NFSD_DEPRECATED=y
1483CONFIG_NFSD_V2_ACL=y 1482CONFIG_NFSD_V2_ACL=y
1484CONFIG_NFSD_V3=y 1483CONFIG_NFSD_V3=y
1485CONFIG_NFSD_V3_ACL=y 1484CONFIG_NFSD_V3_ACL=y
diff --git a/arch/tile/include/asm/atomic.h b/arch/tile/include/asm/atomic.h
index 739cfe0499d1..921dbeb8a70c 100644
--- a/arch/tile/include/asm/atomic.h
+++ b/arch/tile/include/asm/atomic.h
@@ -121,15 +121,6 @@ static inline int atomic_read(const atomic_t *v)
121 */ 121 */
122#define atomic_add_negative(i, v) (atomic_add_return((i), (v)) < 0) 122#define atomic_add_negative(i, v) (atomic_add_return((i), (v)) < 0)
123 123
124/**
125 * atomic_inc_not_zero - increment unless the number is zero
126 * @v: pointer of type atomic_t
127 *
128 * Atomically increments @v by 1, so long as @v is non-zero.
129 * Returns non-zero if @v was non-zero, and zero otherwise.
130 */
131#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
132
133/* Nonexistent functions intended to cause link errors. */ 124/* Nonexistent functions intended to cause link errors. */
134extern unsigned long __xchg_called_with_bad_pointer(void); 125extern unsigned long __xchg_called_with_bad_pointer(void);
135extern unsigned long __cmpxchg_called_with_bad_pointer(void); 126extern unsigned long __cmpxchg_called_with_bad_pointer(void);
@@ -186,9 +177,4 @@ extern unsigned long __cmpxchg_called_with_bad_pointer(void);
186#include <asm/atomic_64.h> 177#include <asm/atomic_64.h>
187#endif 178#endif
188 179
189/* Provide the appropriate atomic_long_t definitions. */
190#ifndef __ASSEMBLY__
191#include <asm-generic/atomic-long.h>
192#endif
193
194#endif /* _ASM_TILE_ATOMIC_H */ 180#endif /* _ASM_TILE_ATOMIC_H */
diff --git a/arch/tile/include/asm/atomic_32.h b/arch/tile/include/asm/atomic_32.h
index 92a8bee32311..c03349e0ca9f 100644
--- a/arch/tile/include/asm/atomic_32.h
+++ b/arch/tile/include/asm/atomic_32.h
@@ -11,7 +11,7 @@
11 * NON INFRINGEMENT. See the GNU General Public License for 11 * NON INFRINGEMENT. See the GNU General Public License for
12 * more details. 12 * more details.
13 * 13 *
14 * Do not include directly; use <asm/atomic.h>. 14 * Do not include directly; use <linux/atomic.h>.
15 */ 15 */
16 16
17#ifndef _ASM_TILE_ATOMIC_32_H 17#ifndef _ASM_TILE_ATOMIC_32_H
@@ -21,7 +21,7 @@
21 21
22#ifndef __ASSEMBLY__ 22#ifndef __ASSEMBLY__
23 23
24/* Tile-specific routines to support <asm/atomic.h>. */ 24/* Tile-specific routines to support <linux/atomic.h>. */
25int _atomic_xchg(atomic_t *v, int n); 25int _atomic_xchg(atomic_t *v, int n);
26int _atomic_xchg_add(atomic_t *v, int i); 26int _atomic_xchg_add(atomic_t *v, int i);
27int _atomic_xchg_add_unless(atomic_t *v, int a, int u); 27int _atomic_xchg_add_unless(atomic_t *v, int a, int u);
@@ -81,18 +81,18 @@ static inline int atomic_add_return(int i, atomic_t *v)
81} 81}
82 82
83/** 83/**
84 * atomic_add_unless - add unless the number is already a given value 84 * __atomic_add_unless - add unless the number is already a given value
85 * @v: pointer of type atomic_t 85 * @v: pointer of type atomic_t
86 * @a: the amount to add to v... 86 * @a: the amount to add to v...
87 * @u: ...unless v is equal to u. 87 * @u: ...unless v is equal to u.
88 * 88 *
89 * Atomically adds @a to @v, so long as @v was not already @u. 89 * Atomically adds @a to @v, so long as @v was not already @u.
90 * Returns non-zero if @v was not @u, and zero otherwise. 90 * Returns the old value of @v.
91 */ 91 */
92static inline int atomic_add_unless(atomic_t *v, int a, int u) 92static inline int __atomic_add_unless(atomic_t *v, int a, int u)
93{ 93{
94 smp_mb(); /* barrier for proper semantics */ 94 smp_mb(); /* barrier for proper semantics */
95 return _atomic_xchg_add_unless(v, a, u) != u; 95 return _atomic_xchg_add_unless(v, a, u);
96} 96}
97 97
98/** 98/**
@@ -199,7 +199,7 @@ static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
199 * @u: ...unless v is equal to u. 199 * @u: ...unless v is equal to u.
200 * 200 *
201 * Atomically adds @a to @v, so long as @v was not already @u. 201 * Atomically adds @a to @v, so long as @v was not already @u.
202 * Returns non-zero if @v was not @u, and zero otherwise. 202 * Returns the old value of @v.
203 */ 203 */
204static inline u64 atomic64_add_unless(atomic64_t *v, u64 a, u64 u) 204static inline u64 atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
205{ 205{
diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
index 1c1e60d8ccb6..27fe667fddfe 100644
--- a/arch/tile/include/asm/atomic_64.h
+++ b/arch/tile/include/asm/atomic_64.h
@@ -11,7 +11,7 @@
11 * NON INFRINGEMENT. See the GNU General Public License for 11 * NON INFRINGEMENT. See the GNU General Public License for
12 * more details. 12 * more details.
13 * 13 *
14 * Do not include directly; use <asm/atomic.h>. 14 * Do not include directly; use <linux/atomic.h>.
15 */ 15 */
16 16
17#ifndef _ASM_TILE_ATOMIC_64_H 17#ifndef _ASM_TILE_ATOMIC_64_H
@@ -64,7 +64,7 @@ static inline int atomic_add_return(int i, atomic_t *v)
64 return val; 64 return val;
65} 65}
66 66
67static inline int atomic_add_unless(atomic_t *v, int a, int u) 67static inline int __atomic_add_unless(atomic_t *v, int a, int u)
68{ 68{
69 int guess, oldval = v->counter; 69 int guess, oldval = v->counter;
70 do { 70 do {
@@ -73,7 +73,7 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
73 guess = oldval; 73 guess = oldval;
74 oldval = atomic_cmpxchg(v, guess, guess + a); 74 oldval = atomic_cmpxchg(v, guess, guess + a);
75 } while (guess != oldval); 75 } while (guess != oldval);
76 return oldval != u; 76 return oldval;
77} 77}
78 78
79/* Now the true 64-bit operations. */ 79/* Now the true 64-bit operations. */
diff --git a/arch/tile/include/asm/bitops_32.h b/arch/tile/include/asm/bitops_32.h
index d31ab905cfa7..571b118bfd9b 100644
--- a/arch/tile/include/asm/bitops_32.h
+++ b/arch/tile/include/asm/bitops_32.h
@@ -16,7 +16,7 @@
16#define _ASM_TILE_BITOPS_32_H 16#define _ASM_TILE_BITOPS_32_H
17 17
18#include <linux/compiler.h> 18#include <linux/compiler.h>
19#include <asm/atomic.h> 19#include <linux/atomic.h>
20#include <asm/system.h> 20#include <asm/system.h>
21 21
22/* Tile-specific routines to support <asm/bitops.h>. */ 22/* Tile-specific routines to support <asm/bitops.h>. */
diff --git a/arch/tile/include/asm/bitops_64.h b/arch/tile/include/asm/bitops_64.h
index 99615e8d2d8b..e9c8e381ee0e 100644
--- a/arch/tile/include/asm/bitops_64.h
+++ b/arch/tile/include/asm/bitops_64.h
@@ -16,7 +16,7 @@
16#define _ASM_TILE_BITOPS_64_H 16#define _ASM_TILE_BITOPS_64_H
17 17
18#include <linux/compiler.h> 18#include <linux/compiler.h>
19#include <asm/atomic.h> 19#include <linux/atomic.h>
20#include <asm/system.h> 20#include <asm/system.h>
21 21
22/* See <asm/bitops.h> for API comments. */ 22/* See <asm/bitops.h> for API comments. */
@@ -97,9 +97,6 @@ static inline int test_and_change_bit(unsigned nr,
97 return (oldval & mask) != 0; 97 return (oldval & mask) != 0;
98} 98}
99 99
100#define ext2_set_bit_atomic(lock, nr, addr) \ 100#include <asm-generic/bitops/ext2-atomic-setbit.h>
101 test_and_set_bit((nr), (unsigned long *)(addr))
102#define ext2_clear_bit_atomic(lock, nr, addr) \
103 test_and_clear_bit((nr), (unsigned long *)(addr))
104 101
105#endif /* _ASM_TILE_BITOPS_64_H */ 102#endif /* _ASM_TILE_BITOPS_64_H */
diff --git a/arch/tile/include/asm/ptrace.h b/arch/tile/include/asm/ptrace.h
index 6be2246e015c..c6cddd7e8d51 100644
--- a/arch/tile/include/asm/ptrace.h
+++ b/arch/tile/include/asm/ptrace.h
@@ -112,8 +112,6 @@ struct pt_regs *get_pt_regs(struct pt_regs *);
112/* Trace the current syscall. */ 112/* Trace the current syscall. */
113extern void do_syscall_trace(void); 113extern void do_syscall_trace(void);
114 114
115extern void show_regs(struct pt_regs *);
116
117#define arch_has_single_step() (1) 115#define arch_has_single_step() (1)
118 116
119/* 117/*
diff --git a/arch/tile/include/asm/spinlock_32.h b/arch/tile/include/asm/spinlock_32.h
index a8f2c6e31a87..a5e4208d34f9 100644
--- a/arch/tile/include/asm/spinlock_32.h
+++ b/arch/tile/include/asm/spinlock_32.h
@@ -17,7 +17,7 @@
17#ifndef _ASM_TILE_SPINLOCK_32_H 17#ifndef _ASM_TILE_SPINLOCK_32_H
18#define _ASM_TILE_SPINLOCK_32_H 18#define _ASM_TILE_SPINLOCK_32_H
19 19
20#include <asm/atomic.h> 20#include <linux/atomic.h>
21#include <asm/page.h> 21#include <asm/page.h>
22#include <asm/system.h> 22#include <asm/system.h>
23#include <linux/compiler.h> 23#include <linux/compiler.h>
diff --git a/arch/tile/kernel/intvec_32.S b/arch/tile/kernel/intvec_32.S
index 72ade79b621b..fc94607f0bd5 100644
--- a/arch/tile/kernel/intvec_32.S
+++ b/arch/tile/kernel/intvec_32.S
@@ -21,7 +21,7 @@
21#include <asm/ptrace.h> 21#include <asm/ptrace.h>
22#include <asm/thread_info.h> 22#include <asm/thread_info.h>
23#include <asm/irqflags.h> 23#include <asm/irqflags.h>
24#include <asm/atomic.h> 24#include <linux/atomic.h>
25#include <asm/asm-offsets.h> 25#include <asm/asm-offsets.h>
26#include <hv/hypervisor.h> 26#include <hv/hypervisor.h>
27#include <arch/abi.h> 27#include <arch/abi.h>
diff --git a/arch/tile/kernel/module.c b/arch/tile/kernel/module.c
index f68df69f1f67..28fa6ece9d3a 100644
--- a/arch/tile/kernel/module.c
+++ b/arch/tile/kernel/module.c
@@ -98,25 +98,6 @@ void module_free(struct module *mod, void *module_region)
98 */ 98 */
99} 99}
100 100
101/* We don't need anything special. */
102int module_frob_arch_sections(Elf_Ehdr *hdr,
103 Elf_Shdr *sechdrs,
104 char *secstrings,
105 struct module *mod)
106{
107 return 0;
108}
109
110int apply_relocate(Elf_Shdr *sechdrs,
111 const char *strtab,
112 unsigned int symindex,
113 unsigned int relsec,
114 struct module *me)
115{
116 pr_err("module %s: .rel relocation unsupported\n", me->name);
117 return -ENOEXEC;
118}
119
120#ifdef __tilegx__ 101#ifdef __tilegx__
121/* 102/*
122 * Validate that the high 16 bits of "value" is just the sign-extension of 103 * Validate that the high 16 bits of "value" is just the sign-extension of
@@ -249,15 +230,3 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
249 } 230 }
250 return 0; 231 return 0;
251} 232}
252
253int module_finalize(const Elf_Ehdr *hdr,
254 const Elf_Shdr *sechdrs,
255 struct module *me)
256{
257 /* FIXME: perhaps remove the "writable" bit from the TLB? */
258 return 0;
259}
260
261void module_arch_cleanup(struct module *mod)
262{
263}
diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c
index 6d4cb5d7a9fd..2a8014cb1ff5 100644
--- a/arch/tile/kernel/pci.c
+++ b/arch/tile/kernel/pci.c
@@ -228,7 +228,7 @@ err_cont:
228 * (pin - 1) converts from the PCI standard's [1:4] convention to 228 * (pin - 1) converts from the PCI standard's [1:4] convention to
229 * a normal [0:3] range. 229 * a normal [0:3] range.
230 */ 230 */
231static int tile_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 231static int tile_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
232{ 232{
233 struct pci_controller *controller = 233 struct pci_controller *controller =
234 (struct pci_controller *)dev->sysdata; 234 (struct pci_controller *)dev->sysdata;
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index 6cdc9ba55fe0..5f85d8b34dbb 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -553,8 +553,7 @@ static void __init setup_bootmem_allocator(void)
553 553
554#ifdef CONFIG_KEXEC 554#ifdef CONFIG_KEXEC
555 if (crashk_res.start != crashk_res.end) 555 if (crashk_res.start != crashk_res.end)
556 reserve_bootmem(crashk_res.start, 556 reserve_bootmem(crashk_res.start, resource_size(&crashk_res), 0);
557 crashk_res.end - crashk_res.start + 1, 0);
558#endif 557#endif
559} 558}
560 559
diff --git a/arch/tile/kvm/Kconfig b/arch/tile/kvm/Kconfig
index b88f9c047781..669fcdba31ea 100644
--- a/arch/tile/kvm/Kconfig
+++ b/arch/tile/kvm/Kconfig
@@ -33,6 +33,5 @@ config KVM
33 If unsure, say N. 33 If unsure, say N.
34 34
35source drivers/vhost/Kconfig 35source drivers/vhost/Kconfig
36source drivers/virtio/Kconfig
37 36
38endif # VIRTUALIZATION 37endif # VIRTUALIZATION
diff --git a/arch/tile/lib/atomic_32.c b/arch/tile/lib/atomic_32.c
index 46570211df52..771b251b409d 100644
--- a/arch/tile/lib/atomic_32.c
+++ b/arch/tile/lib/atomic_32.c
@@ -17,7 +17,7 @@
17#include <linux/uaccess.h> 17#include <linux/uaccess.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <asm/atomic.h> 20#include <linux/atomic.h>
21#include <asm/futex.h> 21#include <asm/futex.h>
22#include <arch/chip.h> 22#include <arch/chip.h>
23 23
diff --git a/arch/tile/lib/atomic_asm_32.S b/arch/tile/lib/atomic_asm_32.S
index 24448734f6f1..1f75a2a56101 100644
--- a/arch/tile/lib/atomic_asm_32.S
+++ b/arch/tile/lib/atomic_asm_32.S
@@ -70,7 +70,7 @@
70 */ 70 */
71 71
72#include <linux/linkage.h> 72#include <linux/linkage.h>
73#include <asm/atomic.h> 73#include <linux/atomic.h>
74#include <asm/page.h> 74#include <asm/page.h>
75#include <asm/processor.h> 75#include <asm/processor.h>
76 76