Commit 8945546d90a748d1484872c48823f8c8ab302577

Authored by Linus Torvalds

Merge tag 'for-linus-20130929' of git://github.com/sctscore/official-linux

Pull S+core fixes from Lennox Wu:
 "These updates include updating information of maintainers, fix some
  trivial errors, and add a necessary function for supporting ipv6"

* tag 'for-linus-20130929' of git://github.com/sctscore/official-linux:
  Score: Update the information of Score maintaners
  Score: Modify the Makefile of Score, remove -mlong-calls for compiling
  Score: Implement the function csum_ipv6_magic
  Score: The commit is for compiling successfully

Showing 8 changed files Side-by-side Diff

... ... @@ -7271,9 +7271,9 @@
7271 7271 F: include/uapi/linux/sched.h
7272 7272  
7273 7273 SCORE ARCHITECTURE
7274   -M: Chen Liqin <liqin.chen@sunplusct.com>
  7274 +M: Chen Liqin <liqin.linux@gmail.com>
7275 7275 M: Lennox Wu <lennox.wu@gmail.com>
7276   -W: http://www.sunplusct.com
  7276 +W: http://www.sunplus.com
7277 7277 S: Supported
7278 7278 F: arch/score/
7279 7279  
... ... @@ -2,6 +2,7 @@
2 2  
3 3 config SCORE
4 4 def_bool y
  5 + select HAVE_GENERIC_HARDIRQS
5 6 select GENERIC_IRQ_SHOW
6 7 select GENERIC_IOMAP
7 8 select GENERIC_ATOMIC64
... ... @@ -110,4 +111,7 @@
110 111 source "crypto/Kconfig"
111 112  
112 113 source "lib/Kconfig"
  114 +
  115 +config NO_IOMEM
  116 + def_bool y
... ... @@ -20,8 +20,8 @@
20 20 #
21 21 KBUILD_AFLAGS += $(cflags-y)
22 22 KBUILD_CFLAGS += $(cflags-y)
23   -KBUILD_AFLAGS_MODULE += -mlong-calls
24   -KBUILD_CFLAGS_MODULE += -mlong-calls
  23 +KBUILD_AFLAGS_MODULE +=
  24 +KBUILD_CFLAGS_MODULE +=
25 25 LDFLAGS += --oformat elf32-littlescore
26 26 LDFLAGS_vmlinux += -G0 -static -nostdlib
27 27  
arch/score/include/asm/checksum.h
... ... @@ -184,48 +184,57 @@
184 184 __wsum sum)
185 185 {
186 186 __asm__ __volatile__(
187   - ".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t"
188   - ".set\tnoat\n\t"
189   - "addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t"
190   - "sltu\t$1, %0, %5\n\t"
191   - "addu\t%0, $1\n\t"
192   - "addu\t%0, %6\t\t\t# csum\n\t"
193   - "sltu\t$1, %0, %6\n\t"
194   - "lw\t%1, 0(%2)\t\t\t# four words source address\n\t"
195   - "addu\t%0, $1\n\t"
196   - "addu\t%0, %1\n\t"
197   - "sltu\t$1, %0, %1\n\t"
198   - "lw\t%1, 4(%2)\n\t"
199   - "addu\t%0, $1\n\t"
200   - "addu\t%0, %1\n\t"
201   - "sltu\t$1, %0, %1\n\t"
202   - "lw\t%1, 8(%2)\n\t"
203   - "addu\t%0, $1\n\t"
204   - "addu\t%0, %1\n\t"
205   - "sltu\t$1, %0, %1\n\t"
206   - "lw\t%1, 12(%2)\n\t"
207   - "addu\t%0, $1\n\t"
208   - "addu\t%0, %1\n\t"
209   - "sltu\t$1, %0, %1\n\t"
210   - "lw\t%1, 0(%3)\n\t"
211   - "addu\t%0, $1\n\t"
212   - "addu\t%0, %1\n\t"
213   - "sltu\t$1, %0, %1\n\t"
214   - "lw\t%1, 4(%3)\n\t"
215   - "addu\t%0, $1\n\t"
216   - "addu\t%0, %1\n\t"
217   - "sltu\t$1, %0, %1\n\t"
218   - "lw\t%1, 8(%3)\n\t"
219   - "addu\t%0, $1\n\t"
220   - "addu\t%0, %1\n\t"
221   - "sltu\t$1, %0, %1\n\t"
222   - "lw\t%1, 12(%3)\n\t"
223   - "addu\t%0, $1\n\t"
224   - "addu\t%0, %1\n\t"
225   - "sltu\t$1, %0, %1\n\t"
226   - "addu\t%0, $1\t\t\t# Add final carry\n\t"
227   - ".set\tnoat\n\t"
228   - ".set\tnoreorder"
  187 + ".set\tvolatile\t\t\t# csum_ipv6_magic\n\t"
  188 + "add\t%0, %0, %5\t\t\t# proto (long in network byte order)\n\t"
  189 + "cmp.c\t%5, %0\n\t"
  190 + "bleu 1f\n\t"
  191 + "addi\t%0, 0x1\n\t"
  192 + "1:add\t%0, %0, %6\t\t\t# csum\n\t"
  193 + "cmp.c\t%6, %0\n\t"
  194 + "lw\t%1, [%2, 0]\t\t\t# four words source address\n\t"
  195 + "bleu 1f\n\t"
  196 + "addi\t%0, 0x1\n\t"
  197 + "1:add\t%0, %0, %1\n\t"
  198 + "cmp.c\t%1, %0\n\t"
  199 + "1:lw\t%1, [%2, 4]\n\t"
  200 + "bleu 1f\n\t"
  201 + "addi\t%0, 0x1\n\t"
  202 + "1:add\t%0, %0, %1\n\t"
  203 + "cmp.c\t%1, %0\n\t"
  204 + "lw\t%1, [%2,8]\n\t"
  205 + "bleu 1f\n\t"
  206 + "addi\t%0, 0x1\n\t"
  207 + "1:add\t%0, %0, %1\n\t"
  208 + "cmp.c\t%1, %0\n\t"
  209 + "lw\t%1, [%2, 12]\n\t"
  210 + "bleu 1f\n\t"
  211 + "addi\t%0, 0x1\n\t"
  212 + "1:add\t%0, %0,%1\n\t"
  213 + "cmp.c\t%1, %0\n\t"
  214 + "lw\t%1, [%3, 0]\n\t"
  215 + "bleu 1f\n\t"
  216 + "addi\t%0, 0x1\n\t"
  217 + "1:add\t%0, %0, %1\n\t"
  218 + "cmp.c\t%1, %0\n\t"
  219 + "lw\t%1, [%3, 4]\n\t"
  220 + "bleu 1f\n\t"
  221 + "addi\t%0, 0x1\n\t"
  222 + "1:add\t%0, %0, %1\n\t"
  223 + "cmp.c\t%1, %0\n\t"
  224 + "lw\t%1, [%3, 8]\n\t"
  225 + "bleu 1f\n\t"
  226 + "addi\t%0, 0x1\n\t"
  227 + "1:add\t%0, %0, %1\n\t"
  228 + "cmp.c\t%1, %0\n\t"
  229 + "lw\t%1, [%3, 12]\n\t"
  230 + "bleu 1f\n\t"
  231 + "addi\t%0, 0x1\n\t"
  232 + "1:add\t%0, %0, %1\n\t"
  233 + "cmp.c\t%1, %0\n\t"
  234 + "bleu 1f\n\t"
  235 + "addi\t%0, 0x1\n\t"
  236 + "1:\n\t"
  237 + ".set\toptimize"
229 238 : "=r" (sum), "=r" (proto)
230 239 : "r" (saddr), "r" (daddr),
231 240 "0" (htonl(len)), "1" (htonl(proto)), "r" (sum));
arch/score/include/asm/io.h
... ... @@ -5,6 +5,5 @@
5 5  
6 6 #define virt_to_bus virt_to_phys
7 7 #define bus_to_virt phys_to_virt
8   -
9 8 #endif /* _ASM_SCORE_IO_H */
arch/score/include/asm/pgalloc.h
... ... @@ -2,7 +2,7 @@
2 2 #define _ASM_SCORE_PGALLOC_H
3 3  
4 4 #include <linux/mm.h>
5   -
  5 +#include <linux/highmem.h>
6 6 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
7 7 pte_t *pte)
8 8 {
arch/score/kernel/entry.S
... ... @@ -264,7 +264,7 @@
264 264 disable_irq
265 265 lw r8, [r28, TI_PRE_COUNT]
266 266 cmpz.c r8
267   - bne r8, restore_all
  267 + bne restore_all
268 268 need_resched:
269 269 lw r8, [r28, TI_FLAGS]
270 270 andri.c r9, r8, _TIF_NEED_RESCHED
... ... @@ -415,7 +415,7 @@
415 415 sw r9, [r0, PT_EPC]
416 416  
417 417 cmpi.c r27, __NR_syscalls # check syscall number
418   - bgeu illegal_syscall
  418 + bcs illegal_syscall
419 419  
420 420 slli r8, r27, 2 # get syscall routine
421 421 la r11, sys_call_table
arch/score/kernel/process.c
... ... @@ -78,8 +78,8 @@
78 78 p->thread.reg0 = (unsigned long) childregs;
79 79 if (unlikely(p->flags & PF_KTHREAD)) {
80 80 memset(childregs, 0, sizeof(struct pt_regs));
81   - p->thread->reg12 = usp;
82   - p->thread->reg13 = arg;
  81 + p->thread.reg12 = usp;
  82 + p->thread.reg13 = arg;
83 83 p->thread.reg3 = (unsigned long) ret_from_kernel_thread;
84 84 } else {
85 85 *childregs = *current_pt_regs();