Skip to content

Commit

Permalink
sh: Simplify kernel_thread_helper() for sh32.
Browse files Browse the repository at this point in the history
This can use the same implementation as sh64, the generated assembly is
the same between the new and old version, so there is not much point in
leaving it open coded in inline assembly.

This is preparatory work for future consolidation of the _32/_64
variants.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Dec 22, 2008
1 parent 7b80fb3 commit 43f8f9b
Showing 1 changed file with 4 additions and 15 deletions.
19 changes: 4 additions & 15 deletions arch/sh/kernel/process_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,21 +97,10 @@ void show_regs(struct pt_regs * regs)
/*
* Create a kernel thread
*/

/*
* This is the mechanism for creating a new kernel thread.
*
*/
extern void kernel_thread_helper(void);
__asm__(".align 5\n"
"kernel_thread_helper:\n\t"
"jsr @r5\n\t"
" nop\n\t"
"mov.l 1f, r1\n\t"
"jsr @r1\n\t"
" mov r0, r4\n\t"
".align 2\n\t"
"1:.long do_exit");
ATTRIB_NORET void kernel_thread_helper(void *arg, int (*fn)(void *))
{
do_exit(fn(arg));
}

/* Don't use this in BL=1(cli). Or else, CPU resets! */
int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
Expand Down

0 comments on commit 43f8f9b

Please sign in to comment.