Commit 8945546d90a748d1484872c48823f8c8ab302577
Exists in
master
and in
20 other branches
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
MAINTAINERS
| ... | ... | @@ -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 |
arch/score/Kconfig
| ... | ... | @@ -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 |
arch/score/Makefile
| ... | ... | @@ -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
arch/score/include/asm/pgalloc.h
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(); |