提交 6fb805fb 编写于 作者: L Linus Torvalds

Merge tag 'nios2-fixes-v4.0-final' of git://git.rocketboards.org/linux-socfpga-next

Pull arch/nios2 fixes from Ley Foon Tan:
 "There are 3 arch/nios2 fixes for 4.0 final:

   - fix cache coherency issue when debugging with gdb

   - move restart_block to struct task_struct (aligned with other
     architectures)

   - fix for missing registers defines for ptrace"

* tag 'nios2-fixes-v4.0-final' of git://git.rocketboards.org/linux-socfpga-next:
  nios2: fix cache coherency issue when debug with gdb
  nios2: add missing ptrace registers defines
  nios2: signal: Move restart_block to struct task_struct
...@@ -47,7 +47,6 @@ struct thread_info { ...@@ -47,7 +47,6 @@ struct thread_info {
0-0x7FFFFFFF for user-thead 0-0x7FFFFFFF for user-thead
0-0xFFFFFFFF for kernel-thread 0-0xFFFFFFFF for kernel-thread
*/ */
struct restart_block restart_block;
struct pt_regs *regs; struct pt_regs *regs;
}; };
...@@ -64,9 +63,6 @@ struct thread_info { ...@@ -64,9 +63,6 @@ struct thread_info {
.cpu = 0, \ .cpu = 0, \
.preempt_count = INIT_PREEMPT_COUNT, \ .preempt_count = INIT_PREEMPT_COUNT, \
.addr_limit = KERNEL_DS, \ .addr_limit = KERNEL_DS, \
.restart_block = { \
.fn = do_no_restart_syscall, \
}, \
} }
#define init_thread_info (init_thread_union.thread_info) #define init_thread_info (init_thread_union.thread_info)
......
...@@ -60,12 +60,17 @@ ...@@ -60,12 +60,17 @@
#define PTR_IPENDING 37 #define PTR_IPENDING 37
#define PTR_CPUID 38 #define PTR_CPUID 38
#define PTR_CTL6 39 #define PTR_CTL6 39
#define PTR_CTL7 40 #define PTR_EXCEPTION 40
#define PTR_PTEADDR 41 #define PTR_PTEADDR 41
#define PTR_TLBACC 42 #define PTR_TLBACC 42
#define PTR_TLBMISC 43 #define PTR_TLBMISC 43
#define PTR_ECCINJ 44
#define PTR_BADADDR 45
#define PTR_CONFIG 46
#define PTR_MPUBASE 47
#define PTR_MPUACC 48
#define NUM_PTRACE_REG (PTR_TLBMISC + 1) #define NUM_PTRACE_REG (PTR_MPUACC + 1)
/* User structures for general purpose registers. */ /* User structures for general purpose registers. */
struct user_pt_regs { struct user_pt_regs {
......
...@@ -161,7 +161,7 @@ ENTRY(inthandler) ...@@ -161,7 +161,7 @@ ENTRY(inthandler)
*********************************************************************** ***********************************************************************
*/ */
ENTRY(handle_trap) ENTRY(handle_trap)
ldw r24, -4(ea) /* instruction that caused the exception */ ldwio r24, -4(ea) /* instruction that caused the exception */
srli r24, r24, 4 srli r24, r24, 4
andi r24, r24, 0x7c andi r24, r24, 0x7c
movia r9,trap_table movia r9,trap_table
......
...@@ -43,7 +43,7 @@ static inline int rt_restore_ucontext(struct pt_regs *regs, ...@@ -43,7 +43,7 @@ static inline int rt_restore_ucontext(struct pt_regs *regs,
int err; int err;
/* Always make any pending restarted system calls return -EINTR */ /* Always make any pending restarted system calls return -EINTR */
current_thread_info()->restart_block.fn = do_no_restart_syscall; current->restart_block.fn = do_no_restart_syscall;
err = __get_user(temp, &uc->uc_mcontext.version); err = __get_user(temp, &uc->uc_mcontext.version);
if (temp != MCONTEXT_VERSION) if (temp != MCONTEXT_VERSION)
......
...@@ -23,9 +23,6 @@ static void __flush_dcache(unsigned long start, unsigned long end) ...@@ -23,9 +23,6 @@ static void __flush_dcache(unsigned long start, unsigned long end)
end += (cpuinfo.dcache_line_size - 1); end += (cpuinfo.dcache_line_size - 1);
end &= ~(cpuinfo.dcache_line_size - 1); end &= ~(cpuinfo.dcache_line_size - 1);
if (end > start + cpuinfo.dcache_size)
end = start + cpuinfo.dcache_size;
for (addr = start; addr < end; addr += cpuinfo.dcache_line_size) { for (addr = start; addr < end; addr += cpuinfo.dcache_line_size) {
__asm__ __volatile__ (" flushda 0(%0)\n" __asm__ __volatile__ (" flushda 0(%0)\n"
: /* Outputs */ : /* Outputs */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册