Commit 0caca697 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68knommu: Need to check __get_user()/__put_user() result
  m68knommu: signal.c __user annotations
  m68knommu: Equivalent of "m68k: handle new gcc's"
  m68knommu: f_pcr has been gone since headers' merge
  m68knommu: Don't lose state if sigframe setup fails
  m68knommu: Handle multiple pending signals
  m68knommu: Switch to saner sigsuspend
  m68knommu: Don't bother with SA_ONESHOT
  m68k: Check __get_user()/__put_user() return value
  m68k: Missing syscall_trace() on sigreturn
  m68k: Fix stack mangling logics in sigreturn
  m68k: If we fail to set sigframe up, just leave regs alone...
  m68k: Don't lose state if sigframe setup fails
  m68k: Simplify the singlestepping handling in signals
  m68k: Switch to saner sigsuspend()
  m68k: Resetting sa_handler in local copy of k_sigaction is pointless
  m68k/sun3: Kill pte_unmap() warnings
parents ecacc6c7 751c88a2
...@@ -217,9 +217,8 @@ static inline pte_t pgoff_to_pte(unsigned off) ...@@ -217,9 +217,8 @@ static inline pte_t pgoff_to_pte(unsigned off)
/* Find an entry in the third-level pagetable. */ /* Find an entry in the third-level pagetable. */
#define pte_index(address) ((address >> PAGE_SHIFT) & (PTRS_PER_PTE-1)) #define pte_index(address) ((address >> PAGE_SHIFT) & (PTRS_PER_PTE-1))
#define pte_offset_kernel(pmd, address) ((pte_t *) __pmd_page(*pmd) + pte_index(address)) #define pte_offset_kernel(pmd, address) ((pte_t *) __pmd_page(*pmd) + pte_index(address))
/* FIXME: should we bother with kmap() here? */ #define pte_offset_map(pmd, address) ((pte_t *)page_address(pmd_page(*pmd)) + pte_index(address))
#define pte_offset_map(pmd, address) ((pte_t *)kmap(pmd_page(*pmd)) + pte_index(address)) #define pte_unmap(pte) do { } while (0)
#define pte_unmap(pte) kunmap(pte)
/* Macros to (de)construct the fake PTEs representing swap pages. */ /* Macros to (de)construct the fake PTEs representing swap pages. */
#define __swp_type(x) ((x).val & 0x7F) #define __swp_type(x) ((x).val & 0x7F)
......
...@@ -104,5 +104,6 @@ static inline struct thread_info *current_thread_info(void) ...@@ -104,5 +104,6 @@ static inline struct thread_info *current_thread_info(void)
#define TIF_SYSCALL_TRACE 15 /* syscall trace active */ #define TIF_SYSCALL_TRACE 15 /* syscall trace active */
#define TIF_MEMDIE 16 /* is terminating due to OOM killer */ #define TIF_MEMDIE 16 /* is terminating due to OOM killer */
#define TIF_FREEZE 17 /* thread is freezing for suspend */ #define TIF_FREEZE 17 /* thread is freezing for suspend */
#define TIF_RESTORE_SIGMASK 18 /* restore signal mask in do_signal */
#endif /* _ASM_M68K_THREAD_INFO_H */ #endif /* _ASM_M68K_THREAD_INFO_H */
...@@ -373,6 +373,7 @@ ...@@ -373,6 +373,7 @@
#define __ARCH_WANT_SYS_SIGPENDING #define __ARCH_WANT_SYS_SIGPENDING
#define __ARCH_WANT_SYS_SIGPROCMASK #define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_RT_SIGACTION #define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
/* /*
* "Conditional" syscalls * "Conditional" syscalls
......
...@@ -99,7 +99,10 @@ do_trace_exit: ...@@ -99,7 +99,10 @@ do_trace_exit:
jra .Lret_from_exception jra .Lret_from_exception
ENTRY(ret_from_signal) ENTRY(ret_from_signal)
RESTORE_SWITCH_STACK tstb %curptr@(TASK_INFO+TINFO_FLAGS+2)
jge 1f
jbsr syscall_trace
1: RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
/* on 68040 complete pending writebacks if any */ /* on 68040 complete pending writebacks if any */
#ifdef CONFIG_M68040 #ifdef CONFIG_M68040
...@@ -174,16 +177,11 @@ do_signal_return: ...@@ -174,16 +177,11 @@ do_signal_return:
subql #4,%sp | dummy return address subql #4,%sp | dummy return address
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE) pea %sp@(SWITCH_STACK_SIZE)
clrl %sp@-
bsrl do_signal bsrl do_signal
addql #8,%sp addql #4,%sp
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
tstl %d0 jbra resume_userspace
jeq resume_userspace
| when single stepping into handler stop at the first insn
btst #6,%curptr@(TASK_INFO+TINFO_FLAGS+2)
jeq resume_userspace
do_delayed_trace: do_delayed_trace:
bclr #7,%sp@(PT_OFF_SR) | clear trace bit in SR bclr #7,%sp@(PT_OFF_SR) | clear trace bit in SR
...@@ -290,22 +288,6 @@ ENTRY(sys_vfork) ...@@ -290,22 +288,6 @@ ENTRY(sys_vfork)
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
rts rts
ENTRY(sys_sigsuspend)
SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE)
jbsr do_sigsuspend
addql #4,%sp
RESTORE_SWITCH_STACK
rts
ENTRY(sys_rt_sigsuspend)
SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE)
jbsr do_rt_sigsuspend
addql #4,%sp
RESTORE_SWITCH_STACK
rts
ENTRY(sys_sigreturn) ENTRY(sys_sigreturn)
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
jbsr do_sigreturn jbsr do_sigreturn
......
This diff is collapsed.
...@@ -112,22 +112,6 @@ ENTRY(sys_clone) ...@@ -112,22 +112,6 @@ ENTRY(sys_clone)
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
rts rts
ENTRY(sys_sigsuspend)
SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE)
jbsr do_sigsuspend
addql #4,%sp
RESTORE_SWITCH_STACK
rts
ENTRY(sys_rt_sigsuspend)
SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE)
jbsr do_rt_sigsuspend
addql #4,%sp
RESTORE_SWITCH_STACK
rts
ENTRY(sys_sigreturn) ENTRY(sys_sigreturn)
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
jbsr do_sigreturn jbsr do_sigreturn
......
This diff is collapsed.
...@@ -106,6 +106,7 @@ Luser_return: ...@@ -106,6 +106,7 @@ Luser_return:
movel %sp,%d1 /* get thread_info pointer */ movel %sp,%d1 /* get thread_info pointer */
andl #-THREAD_SIZE,%d1 andl #-THREAD_SIZE,%d1
movel %d1,%a2 movel %d1,%a2
1:
move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ move %a2@(TI_FLAGS),%d1 /* thread_info->flags */
andl #_TIF_WORK_MASK,%d1 andl #_TIF_WORK_MASK,%d1
jne Lwork_to_do jne Lwork_to_do
...@@ -120,13 +121,11 @@ Lsignal_return: ...@@ -120,13 +121,11 @@ Lsignal_return:
subql #4,%sp /* dummy return address*/ subql #4,%sp /* dummy return address*/
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE) pea %sp@(SWITCH_STACK_SIZE)
clrl %sp@-
bsrw do_signal bsrw do_signal
addql #8,%sp addql #4,%sp
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
Lreturn: jra 1b
RESTORE_ALL
/* /*
* This is the main interrupt handler, responsible for calling process_int() * This is the main interrupt handler, responsible for calling process_int()
......
...@@ -102,6 +102,7 @@ Luser_return: ...@@ -102,6 +102,7 @@ Luser_return:
movel %sp,%d1 /* get thread_info pointer */ movel %sp,%d1 /* get thread_info pointer */
andl #-THREAD_SIZE,%d1 andl #-THREAD_SIZE,%d1
movel %d1,%a2 movel %d1,%a2
1:
move %a2@(TI_FLAGS),%d1 /* thread_info->flags */ move %a2@(TI_FLAGS),%d1 /* thread_info->flags */
andl #_TIF_WORK_MASK,%d1 andl #_TIF_WORK_MASK,%d1
jne Lwork_to_do jne Lwork_to_do
...@@ -116,13 +117,11 @@ Lsignal_return: ...@@ -116,13 +117,11 @@ Lsignal_return:
subql #4,%sp /* dummy return address*/ subql #4,%sp /* dummy return address*/
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE) pea %sp@(SWITCH_STACK_SIZE)
clrl %sp@-
bsrw do_signal bsrw do_signal
addql #8,%sp addql #4,%sp
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
Lreturn: jra 1b
RESTORE_ALL
/* /*
* This is the main interrupt handler, responsible for calling do_IRQ() * This is the main interrupt handler, responsible for calling do_IRQ()
......
...@@ -167,12 +167,11 @@ Lsignal_return: ...@@ -167,12 +167,11 @@ Lsignal_return:
subql #4,%sp /* dummy return address */ subql #4,%sp /* dummy return address */
SAVE_SWITCH_STACK SAVE_SWITCH_STACK
pea %sp@(SWITCH_STACK_SIZE) pea %sp@(SWITCH_STACK_SIZE)
clrl %sp@-
jsr do_signal jsr do_signal
addql #8,%sp addql #4,%sp
RESTORE_SWITCH_STACK RESTORE_SWITCH_STACK
addql #4,%sp addql #4,%sp
jmp Lreturn jmp Luser_return
/* /*
* This is the generic interrupt handler (for all hardware interrupt * This is the generic interrupt handler (for all hardware interrupt
......
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