diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/Kconfig | 5 | ||||
-rw-r--r-- | arch/ia64/Makefile | 12 | ||||
-rw-r--r-- | arch/ia64/ia32/binfmt_elf32.c | 6 | ||||
-rw-r--r-- | arch/ia64/kernel/asm-offsets.c | 1 | ||||
-rw-r--r-- | arch/ia64/lib/Makefile | 1 | ||||
-rw-r--r-- | arch/ia64/lib/dec_and_lock.c | 42 |
6 files changed, 2 insertions, 65 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index ed25d66c8d50..945c15a0722b 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -298,11 +298,6 @@ config PREEMPT | |||
298 | 298 | ||
299 | source "mm/Kconfig" | 299 | source "mm/Kconfig" |
300 | 300 | ||
301 | config HAVE_DEC_LOCK | ||
302 | bool | ||
303 | depends on (SMP || PREEMPT) | ||
304 | default y | ||
305 | |||
306 | config IA32_SUPPORT | 301 | config IA32_SUPPORT |
307 | bool "Support for Linux/x86 binaries" | 302 | bool "Support for Linux/x86 binaries" |
308 | help | 303 | help |
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile index 70f8ed2748d1..67932ad53082 100644 --- a/arch/ia64/Makefile +++ b/arch/ia64/Makefile | |||
@@ -82,17 +82,7 @@ unwcheck: vmlinux | |||
82 | archclean: | 82 | archclean: |
83 | $(Q)$(MAKE) $(clean)=$(boot) | 83 | $(Q)$(MAKE) $(clean)=$(boot) |
84 | 84 | ||
85 | archprepare: include/asm-ia64/.offsets.h.stamp | 85 | CLEAN_FILES += vmlinux.gz bootloader |
86 | |||
87 | include/asm-ia64/.offsets.h.stamp: | ||
88 | mkdir -p include/asm-ia64 | ||
89 | [ -s include/asm-ia64/asm-offsets.h ] \ | ||
90 | || echo "#define IA64_TASK_SIZE 0" > include/asm-ia64/asm-offsets.h | ||
91 | touch $@ | ||
92 | |||
93 | |||
94 | |||
95 | CLEAN_FILES += vmlinux.gz bootloader include/asm-ia64/.offsets.h.stamp | ||
96 | 86 | ||
97 | boot: lib/lib.a vmlinux | 87 | boot: lib/lib.a vmlinux |
98 | $(Q)$(MAKE) $(build)=$(boot) $@ | 88 | $(Q)$(MAKE) $(build)=$(boot) $@ |
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c index 31de70b7c67f..a7280d9f6c16 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -216,12 +216,6 @@ ia32_setup_arg_pages (struct linux_binprm *bprm, int executable_stack) | |||
216 | if (!mpnt) | 216 | if (!mpnt) |
217 | return -ENOMEM; | 217 | return -ENOMEM; |
218 | 218 | ||
219 | if (security_vm_enough_memory((IA32_STACK_TOP - (PAGE_MASK & (unsigned long) bprm->p)) | ||
220 | >> PAGE_SHIFT)) { | ||
221 | kmem_cache_free(vm_area_cachep, mpnt); | ||
222 | return -ENOMEM; | ||
223 | } | ||
224 | |||
225 | memset(mpnt, 0, sizeof(*mpnt)); | 219 | memset(mpnt, 0, sizeof(*mpnt)); |
226 | 220 | ||
227 | down_write(¤t->mm->mmap_sem); | 221 | down_write(¤t->mm->mmap_sem); |
diff --git a/arch/ia64/kernel/asm-offsets.c b/arch/ia64/kernel/asm-offsets.c index f6a234289341..77225659e968 100644 --- a/arch/ia64/kernel/asm-offsets.c +++ b/arch/ia64/kernel/asm-offsets.c | |||
@@ -4,6 +4,7 @@ | |||
4 | * to extract and format the required data. | 4 | * to extract and format the required data. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #define ASM_OFFSETS_C 1 | ||
7 | #include <linux/config.h> | 8 | #include <linux/config.h> |
8 | 9 | ||
9 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
diff --git a/arch/ia64/lib/Makefile b/arch/ia64/lib/Makefile index 799407e7726f..cb1af597370b 100644 --- a/arch/ia64/lib/Makefile +++ b/arch/ia64/lib/Makefile | |||
@@ -15,7 +15,6 @@ lib-$(CONFIG_ITANIUM) += copy_page.o copy_user.o memcpy.o | |||
15 | lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o | 15 | lib-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o |
16 | lib-$(CONFIG_PERFMON) += carta_random.o | 16 | lib-$(CONFIG_PERFMON) += carta_random.o |
17 | lib-$(CONFIG_MD_RAID5) += xor.o | 17 | lib-$(CONFIG_MD_RAID5) += xor.o |
18 | lib-$(CONFIG_HAVE_DEC_LOCK) += dec_and_lock.o | ||
19 | 18 | ||
20 | AFLAGS___divdi3.o = | 19 | AFLAGS___divdi3.o = |
21 | AFLAGS___udivdi3.o = -DUNSIGNED | 20 | AFLAGS___udivdi3.o = -DUNSIGNED |
diff --git a/arch/ia64/lib/dec_and_lock.c b/arch/ia64/lib/dec_and_lock.c deleted file mode 100644 index c7ce92f968f1..000000000000 --- a/arch/ia64/lib/dec_and_lock.c +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2003 Jerome Marchand, Bull S.A. | ||
3 | * Cleaned up by David Mosberger-Tang <davidm@hpl.hp.com> | ||
4 | * | ||
5 | * This file is released under the GPLv2, or at your option any later version. | ||
6 | * | ||
7 | * ia64 version of "atomic_dec_and_lock()" using the atomic "cmpxchg" instruction. This | ||
8 | * code is an adaptation of the x86 version of "atomic_dec_and_lock()". | ||
9 | */ | ||
10 | |||
11 | #include <linux/compiler.h> | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/spinlock.h> | ||
14 | #include <asm/atomic.h> | ||
15 | |||
16 | /* | ||
17 | * Decrement REFCOUNT and if the count reaches zero, acquire the spinlock. Both of these | ||
18 | * operations have to be done atomically, so that the count doesn't drop to zero without | ||
19 | * acquiring the spinlock first. | ||
20 | */ | ||
21 | int | ||
22 | _atomic_dec_and_lock (atomic_t *refcount, spinlock_t *lock) | ||
23 | { | ||
24 | int old, new; | ||
25 | |||
26 | do { | ||
27 | old = atomic_read(refcount); | ||
28 | new = old - 1; | ||
29 | |||
30 | if (unlikely (old == 1)) { | ||
31 | /* oops, we may be decrementing to zero, do it the slow way... */ | ||
32 | spin_lock(lock); | ||
33 | if (atomic_dec_and_test(refcount)) | ||
34 | return 1; | ||
35 | spin_unlock(lock); | ||
36 | return 0; | ||
37 | } | ||
38 | } while (cmpxchg(&refcount->counter, old, new) != old); | ||
39 | return 0; | ||
40 | } | ||
41 | |||
42 | EXPORT_SYMBOL(_atomic_dec_and_lock); | ||