diff options
Diffstat (limited to 'arch/score')
| -rw-r--r-- | arch/score/Kconfig | 9 | ||||
| -rw-r--r-- | arch/score/Makefile | 4 | ||||
| -rw-r--r-- | arch/score/include/asm/Kbuild | 6 | ||||
| -rw-r--r-- | arch/score/include/asm/barrier.h | 16 | ||||
| -rw-r--r-- | arch/score/include/asm/bitops.h | 7 | ||||
| -rw-r--r-- | arch/score/include/asm/checksum.h | 93 | ||||
| -rw-r--r-- | arch/score/include/asm/cputime.h | 6 | ||||
| -rw-r--r-- | arch/score/include/asm/io.h | 1 | ||||
| -rw-r--r-- | arch/score/include/asm/pgalloc.h | 11 | ||||
| -rw-r--r-- | arch/score/include/asm/thread_info.h | 2 | ||||
| -rw-r--r-- | arch/score/kernel/entry.S | 4 | ||||
| -rw-r--r-- | arch/score/kernel/process.c | 4 | ||||
| -rw-r--r-- | arch/score/lib/checksum.S | 2 | 
13 files changed, 75 insertions, 90 deletions
diff --git a/arch/score/Kconfig b/arch/score/Kconfig index a1be70db75f..4ac8cae5727 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig @@ -22,27 +22,21 @@ choice  config ARCH_SCORE7  	bool "SCORE7 processor"  	select SYS_SUPPORTS_32BIT_KERNEL -	select CPU_SCORE7  	select GENERIC_HAS_IOMAP  config MACH_SPCT6600  	bool "SPCT6600 series based machines"  	select SYS_SUPPORTS_32BIT_KERNEL -	select CPU_SCORE7  	select GENERIC_HAS_IOMAP  config SCORE_SIM  	bool "Score simulator"  	select SYS_SUPPORTS_32BIT_KERNEL -	select CPU_SCORE7  	select GENERIC_HAS_IOMAP  endchoice  endmenu -config CPU_SCORE7 -	bool -  config NO_DMA  	bool  	default y @@ -110,3 +104,6 @@ source "security/Kconfig"  source "crypto/Kconfig"  source "lib/Kconfig" + +config NO_IOMEM +       def_bool y diff --git a/arch/score/Makefile b/arch/score/Makefile index 974aefe8612..9e3e060290e 100644 --- a/arch/score/Makefile +++ b/arch/score/Makefile @@ -20,8 +20,8 @@ cflags-y += -G0 -pipe -mel -mnhwloop -D__SCOREEL__ \  #  KBUILD_AFLAGS += $(cflags-y)  KBUILD_CFLAGS += $(cflags-y) -KBUILD_AFLAGS_MODULE += -mlong-calls -KBUILD_CFLAGS_MODULE += -mlong-calls +KBUILD_AFLAGS_MODULE += +KBUILD_CFLAGS_MODULE +=  LDFLAGS += --oformat elf32-littlescore  LDFLAGS_vmlinux	+= -G0 -static -nostdlib diff --git a/arch/score/include/asm/Kbuild b/arch/score/include/asm/Kbuild index e1c7bb999b0..2f947aba4bd 100644 --- a/arch/score/include/asm/Kbuild +++ b/arch/score/include/asm/Kbuild @@ -1,6 +1,12 @@  header-y += + +generic-y += barrier.h  generic-y += clkdev.h +generic-y += cputime.h +generic-y += hash.h +generic-y += mcs_spinlock.h +generic-y += preempt.h  generic-y += trace_clock.h  generic-y += xor.h diff --git a/arch/score/include/asm/barrier.h b/arch/score/include/asm/barrier.h deleted file mode 100644 index 0eacb6471e6..00000000000 --- a/arch/score/include/asm/barrier.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _ASM_SCORE_BARRIER_H -#define _ASM_SCORE_BARRIER_H - -#define mb()		barrier() -#define rmb()		barrier() -#define wmb()		barrier() -#define smp_mb()	barrier() -#define smp_rmb()	barrier() -#define smp_wmb()	barrier() - -#define read_barrier_depends()		do {} while (0) -#define smp_read_barrier_depends()	do {} while (0) - -#define set_mb(var, value) 		do {var = value; wmb(); } while (0) - -#endif /* _ASM_SCORE_BARRIER_H */ diff --git a/arch/score/include/asm/bitops.h b/arch/score/include/asm/bitops.h index a304096b189..c1bf8d6d0fb 100644 --- a/arch/score/include/asm/bitops.h +++ b/arch/score/include/asm/bitops.h @@ -2,12 +2,7 @@  #define _ASM_SCORE_BITOPS_H  #include <asm/byteorder.h> /* swab32 */ - -/* - * clear_bit() doesn't provide any barrier for the compiler. - */ -#define smp_mb__before_clear_bit()	barrier() -#define smp_mb__after_clear_bit()	barrier() +#include <asm/barrier.h>  #include <asm-generic/bitops.h>  #include <asm-generic/bitops/__fls.h> diff --git a/arch/score/include/asm/checksum.h b/arch/score/include/asm/checksum.h index f909ac3144a..961bd64015a 100644 --- a/arch/score/include/asm/checksum.h +++ b/arch/score/include/asm/checksum.h @@ -184,48 +184,57 @@ static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,  				__wsum sum)  {  	__asm__ __volatile__( -		".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t" -		".set\tnoat\n\t" -		"addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t" -		"sltu\t$1, %0, %5\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %6\t\t\t# csum\n\t" -		"sltu\t$1, %0, %6\n\t" -		"lw\t%1, 0(%2)\t\t\t# four words source address\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 4(%2)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 8(%2)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 12(%2)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 0(%3)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 4(%3)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 8(%3)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"lw\t%1, 12(%3)\n\t" -		"addu\t%0, $1\n\t" -		"addu\t%0, %1\n\t" -		"sltu\t$1, %0, %1\n\t" -		"addu\t%0, $1\t\t\t# Add final carry\n\t" -		".set\tnoat\n\t" -		".set\tnoreorder" +		".set\tvolatile\t\t\t# csum_ipv6_magic\n\t" +		"add\t%0, %0, %5\t\t\t# proto (long in network byte order)\n\t" +		"cmp.c\t%5, %0\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %6\t\t\t# csum\n\t" +		"cmp.c\t%6, %0\n\t" +		"lw\t%1, [%2, 0]\t\t\t# four words source address\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"1:lw\t%1, [%2, 4]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%2,8]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%2, 12]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0,%1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%3, 0]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%3, 4]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%3, 8]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"lw\t%1, [%3, 12]\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:add\t%0, %0, %1\n\t" +		"cmp.c\t%1, %0\n\t" +		"bleu 1f\n\t" +		"addi\t%0, 0x1\n\t" +		"1:\n\t" +		".set\toptimize"  		: "=r" (sum), "=r" (proto)  		: "r" (saddr), "r" (daddr),  		  "0" (htonl(len)), "1" (htonl(proto)), "r" (sum)); diff --git a/arch/score/include/asm/cputime.h b/arch/score/include/asm/cputime.h deleted file mode 100644 index 1fced99f0d6..00000000000 --- a/arch/score/include/asm/cputime.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _ASM_SCORE_CPUTIME_H -#define _ASM_SCORE_CPUTIME_H - -#include <asm-generic/cputime.h> - -#endif /* _ASM_SCORE_CPUTIME_H */ diff --git a/arch/score/include/asm/io.h b/arch/score/include/asm/io.h index fbbfd7132e3..574c8827abe 100644 --- a/arch/score/include/asm/io.h +++ b/arch/score/include/asm/io.h @@ -5,5 +5,4 @@  #define virt_to_bus	virt_to_phys  #define bus_to_virt	phys_to_virt -  #endif /* _ASM_SCORE_IO_H */ diff --git a/arch/score/include/asm/pgalloc.h b/arch/score/include/asm/pgalloc.h index 059a61b7071..2e067657db9 100644 --- a/arch/score/include/asm/pgalloc.h +++ b/arch/score/include/asm/pgalloc.h @@ -2,7 +2,7 @@  #define _ASM_SCORE_PGALLOC_H  #include <linux/mm.h> - +#include <linux/highmem.h>  static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,  	pte_t *pte)  { @@ -54,9 +54,12 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm,  	struct page *pte;  	pte = alloc_pages(GFP_KERNEL | __GFP_REPEAT, PTE_ORDER); -	if (pte) { -		clear_highpage(pte); -		pgtable_page_ctor(pte); +	if (!pte) +		return NULL; +	clear_highpage(pte); +	if (!pgtable_page_ctor(pte)) { +		__free_page(pte); +		return NULL;  	}  	return pte;  } diff --git a/arch/score/include/asm/thread_info.h b/arch/score/include/asm/thread_info.h index 1425cc03487..656b7ada932 100644 --- a/arch/score/include/asm/thread_info.h +++ b/arch/score/include/asm/thread_info.h @@ -72,8 +72,6 @@ register struct thread_info *__current_thread_info __asm__("r28");  #endif /* !__ASSEMBLY__ */ -#define PREEMPT_ACTIVE		0x10000000 -  /*   * thread information flags   * - these are process state flags that various assembly files may need to diff --git a/arch/score/kernel/entry.S b/arch/score/kernel/entry.S index 7234ed09b7b..befb87d30a8 100644 --- a/arch/score/kernel/entry.S +++ b/arch/score/kernel/entry.S @@ -264,7 +264,7 @@ resume_kernel:  	disable_irq  	lw	r8, [r28, TI_PRE_COUNT]  	cmpz.c	r8 -	bne	r8, restore_all +	bne	restore_all  need_resched:  	lw	r8, [r28, TI_FLAGS]  	andri.c	r9, r8, _TIF_NEED_RESCHED @@ -415,7 +415,7 @@ ENTRY(handle_sys)  	sw	r9, [r0, PT_EPC]  	cmpi.c	r27, __NR_syscalls 	# check syscall number -	bgeu	illegal_syscall +	bcs	illegal_syscall  	slli	r8, r27, 2		# get syscall routine  	la	r11, sys_call_table diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c index f4c6d02421d..a1519ad3d49 100644 --- a/arch/score/kernel/process.c +++ b/arch/score/kernel/process.c @@ -78,8 +78,8 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,  	p->thread.reg0 = (unsigned long) childregs;  	if (unlikely(p->flags & PF_KTHREAD)) {  		memset(childregs, 0, sizeof(struct pt_regs)); -		p->thread->reg12 = usp; -		p->thread->reg13 = arg; +		p->thread.reg12 = usp; +		p->thread.reg13 = arg;  		p->thread.reg3 = (unsigned long) ret_from_kernel_thread;  	} else {  		*childregs = *current_pt_regs(); diff --git a/arch/score/lib/checksum.S b/arch/score/lib/checksum.S index 706157edc7d..1141f2b4a50 100644 --- a/arch/score/lib/checksum.S +++ b/arch/score/lib/checksum.S @@ -137,7 +137,7 @@ ENTRY(csum_partial)  	ldi r25, 0  	mv r10, r5  	cmpi.c	r5, 0x8 -	blt	small_csumcpy		/* < 8(singed) bytes to copy */ +	blt	small_csumcpy		/* < 8(signed) bytes to copy */  	cmpi.c	r5, 0x0  	beq	out  	andri.c	r25, src, 0x1		/* odd buffer? */  | 
