Commit e47bbccf authored by David Mosberger's avatar David Mosberger

ia64: Couple of minor NEW_LOCK spinlock fixes. Put RAID5 xor routines only into

	kernel if CONFIG_MD_RAID5 is declared.
parent 6ee903e0
...@@ -753,7 +753,7 @@ SET_REG(b5); ...@@ -753,7 +753,7 @@ SET_REG(b5);
* r29 - available for use. * r29 - available for use.
* r30 - available for use. * r30 - available for use.
* r31 - address of lock, available for use. * r31 - address of lock, available for use.
* b7 - return address * b6 - return address
* p14 - available for use. * p14 - available for use.
* *
* If you patch this code to use more registers, do not forget to update * If you patch this code to use more registers, do not forget to update
......
...@@ -134,6 +134,18 @@ EXPORT_SYMBOL_NOVERS(xor_ia64_3); ...@@ -134,6 +134,18 @@ EXPORT_SYMBOL_NOVERS(xor_ia64_3);
EXPORT_SYMBOL_NOVERS(xor_ia64_4); EXPORT_SYMBOL_NOVERS(xor_ia64_4);
EXPORT_SYMBOL_NOVERS(xor_ia64_5); EXPORT_SYMBOL_NOVERS(xor_ia64_5);
#ifdef CONFIG_MD_RAID5
extern void xor_ia64_2(void);
extern void xor_ia64_3(void);
extern void xor_ia64_4(void);
extern void xor_ia64_5(void);
EXPORT_SYMBOL_NOVERS(xor_ia64_2);
EXPORT_SYMBOL_NOVERS(xor_ia64_3);
EXPORT_SYMBOL_NOVERS(xor_ia64_4);
EXPORT_SYMBOL_NOVERS(xor_ia64_5);
#endif
extern unsigned long ia64_iobase; extern unsigned long ia64_iobase;
EXPORT_SYMBOL(ia64_iobase); EXPORT_SYMBOL(ia64_iobase);
......
...@@ -9,11 +9,12 @@ obj-y := __divsi3.o __udivsi3.o __modsi3.o __umodsi3.o \ ...@@ -9,11 +9,12 @@ obj-y := __divsi3.o __udivsi3.o __modsi3.o __umodsi3.o \
checksum.o clear_page.o csum_partial_copy.o copy_page.o \ checksum.o clear_page.o csum_partial_copy.o copy_page.o \
clear_user.o strncpy_from_user.o strlen_user.o strnlen_user.o \ clear_user.o strncpy_from_user.o strlen_user.o strnlen_user.o \
flush.o io.o ip_fast_csum.o do_csum.o \ flush.o io.o ip_fast_csum.o do_csum.o \
memset.o strlen.o swiotlb.o xor.o memset.o strlen.o swiotlb.o
obj-$(CONFIG_ITANIUM) += copy_page.o copy_user.o memcpy.o obj-$(CONFIG_ITANIUM) += copy_page.o copy_user.o memcpy.o
obj-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o obj-$(CONFIG_MCKINLEY) += copy_page_mck.o memcpy_mck.o
obj-$(CONFIG_PERFMON) += carta_random.o obj-$(CONFIG_PERFMON) += carta_random.o
obj-$(CONFIG_MD_RAID5) += xor.o
IGNORE_FLAGS_OBJS = __divsi3.o __udivsi3.o __modsi3.o __umodsi3.o \ IGNORE_FLAGS_OBJS = __divsi3.o __udivsi3.o __modsi3.o __umodsi3.o \
__divdi3.o __udivdi3.o __moddi3.o __umoddi3.o __divdi3.o __udivdi3.o __moddi3.o __umoddi3.o
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/kregs.h> #include <asm/kregs.h>
#include <asm/types.h>
#define IA64_NUM_DBG_REGS 8 #define IA64_NUM_DBG_REGS 8
/* /*
...@@ -87,6 +86,7 @@ ...@@ -87,6 +86,7 @@
#include <linux/cache.h> #include <linux/cache.h>
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/threads.h> #include <linux/threads.h>
#include <linux/types.h>
#include <asm/fpu.h> #include <asm/fpu.h>
#include <asm/offsets.h> #include <asm/offsets.h>
...@@ -369,7 +369,7 @@ struct task_struct; ...@@ -369,7 +369,7 @@ struct task_struct;
* do_basic_setup() and the timing is such that free_initmem() has * do_basic_setup() and the timing is such that free_initmem() has
* been called already. * been called already.
*/ */
extern int kernel_thread (int (*fn)(void *), void *arg, unsigned long flags); extern pid_t kernel_thread (int (*fn)(void *), void *arg, unsigned long flags);
/* Get wait channel for task P. */ /* Get wait channel for task P. */
extern unsigned long get_wchan (struct task_struct *p); extern unsigned long get_wchan (struct task_struct *p);
......
...@@ -32,7 +32,7 @@ typedef struct { ...@@ -32,7 +32,7 @@ typedef struct {
* carefully coded to touch only those registers that spin_lock() marks "clobbered". * carefully coded to touch only those registers that spin_lock() marks "clobbered".
*/ */
#define IA64_SPINLOCK_CLOBBERS "ar.pfs", "p14", "r28", "r29", "r30", "b6", "memory" #define IA64_SPINLOCK_CLOBBERS "ar.ccv", "ar.pfs", "p14", "r28", "r29", "r30", "b6", "memory"
static inline void static inline void
_raw_spin_lock (spinlock_t *lock) _raw_spin_lock (spinlock_t *lock)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment