diff --git a/arch/m68k/include/asm/signal.h b/arch/m68k/include/asm/signal.h
index eb51a524118785891a4373be703462ead25f562d..9c8c46b06b0c550453532a7fde6e0bc4bac787b1 100644
--- a/arch/m68k/include/asm/signal.h
+++ b/arch/m68k/include/asm/signal.h
@@ -87,8 +87,7 @@ static inline int sigfindinword(unsigned long word)
 #endif /* !CONFIG_CPU_HAS_NO_BITFIELDS */
 
 #ifndef __uClinux__
-struct pt_regs;
-extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
+extern void ptrace_signal_deliver(void);
 #define ptrace_signal_deliver ptrace_signal_deliver
 #endif /* __uClinux__ */
 
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c
index 710a528b928b8580ac4281449586ee4507966db9..9a396cda3147d4f56508891ce70f9e6646a670bf 100644
--- a/arch/m68k/kernel/signal.c
+++ b/arch/m68k/kernel/signal.c
@@ -108,8 +108,9 @@ int handle_kernel_fault(struct pt_regs *regs)
 	return 1;
 }
 
-void ptrace_signal_deliver(struct pt_regs *regs, void *cookie)
+void ptrace_signal_deliver(void)
 {
+	struct pt_regs *regs = signal_pt_regs();
 	if (regs->orig_d0 < 0)
 		return;
 	switch (regs->d0) {
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index b8e6dcec78ae0bd8c66aca7c7b220fc32071bbce..a89ff04bddd9fe214d183060fd2412da53e36959 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -330,7 +330,7 @@ static inline void user_single_step_siginfo(struct task_struct *tsk,
 #endif
 
 #ifndef ptrace_signal_deliver
-#define ptrace_signal_deliver(regs, cookie) do { } while (0)
+#define ptrace_signal_deliver() ((void)0)
 #endif
 
 /*
diff --git a/kernel/signal.c b/kernel/signal.c
index 0af8868525d6d1853acfa77eb9f224566ccfb313..17d4e17fd614ea1a92d5ef7bc57185d6cfd8d2d5 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2141,7 +2141,7 @@ static void do_jobctl_trap(void)
 static int ptrace_signal(int signr, siginfo_t *info,
 			 struct pt_regs *regs, void *cookie)
 {
-	ptrace_signal_deliver(regs, cookie);
+	ptrace_signal_deliver();
 	/*
 	 * We do not check sig_kernel_stop(signr) but set this marker
 	 * unconditionally because we do not know whether debugger will