]> Pileus Git - ~andy/linux/blobdiff - arch/parisc/kernel/entry.S
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[~andy/linux] / arch / parisc / kernel / entry.S
index c9a9abd4bc587df2e4d1e3fba13057d8be3b9489..bfb44247d7a7b023d1953d5983a110fc69966995 100644 (file)
@@ -1688,18 +1688,20 @@ dtlb_fault:
        LDREG   PT_GR18(\regs),%r18
        .endm
 
-ENTRY(sys_fork_wrapper)
+       .macro  fork_like name
+ENTRY(sys_\name\()_wrapper)
        LDREG   TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30), %r1
        ldo     TASK_REGS(%r1),%r1
        reg_save %r1
        mfctl   %cr27, %r28
+       b       sys_\name
        STREG   %r28, PT_CR27(%r1)
+ENDPROC(sys_\name\()_wrapper)
+       .endm
 
-       LDREG   PT_GR30(%r1),%r25
-       copy    %r1,%r24
-       b       sys_clone
-       ldi     SIGCHLD,%r26
-ENDPROC(sys_fork_wrapper)
+fork_like clone
+fork_like fork
+fork_like vfork
 
        /* Set the return value for the child */
 ENTRY(child_return)
@@ -1716,30 +1718,6 @@ finish_child_return:
        copy    %r0,%r28
 ENDPROC(child_return)
 
-
-ENTRY(sys_clone_wrapper)
-       LDREG   TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1
-       ldo     TASK_REGS(%r1),%r1      /* get pt regs */
-       reg_save %r1
-       mfctl   %cr27, %r28
-       STREG   %r28, PT_CR27(%r1)
-       b       sys_clone
-       copy    %r1,%r24
-ENDPROC(sys_clone_wrapper)
-
-
-ENTRY(sys_vfork_wrapper)
-       LDREG   TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1
-       ldo     TASK_REGS(%r1),%r1      /* get pt regs */
-       reg_save %r1
-       mfctl   %cr27, %r28
-       STREG   %r28, PT_CR27(%r1)
-
-       b       sys_vfork
-       copy    %r1,%r26
-ENDPROC(sys_vfork_wrapper)
-
-       
 ENTRY(sys_rt_sigreturn_wrapper)
        LDREG   TI_TASK-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r26
        ldo     TASK_REGS(%r26),%r26    /* get pt regs */