Skip to content

Commit

Permalink
m68knommu: ColdFire add support for kernel preemption
Browse files Browse the repository at this point in the history
As the subject says this patch adds the support for kernel preemption
on m68knommu Coldfire. I thing the same changes could be applied to
68360 & 68328 but since I don't have the HW for testing, I don't touch it.

Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Sebastian Siewior authored and Linus Torvalds committed May 1, 2008
1 parent 2d7f16d commit a19325a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/m68knommu/kernel/asm-offsets.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ int main(void)
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_EXECDOMAIN, offsetof(struct thread_info, exec_domain));
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_PREEMPTCOUNT, offsetof(struct thread_info, preempt_count));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));

return 0;
Expand Down
16 changes: 16 additions & 0 deletions arch/m68knommu/platform/coldfire/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,22 @@ ret_from_exception:
btst #5,%sp@(PT_SR) /* check if returning to kernel */
jeq Luser_return /* if so, skip resched, signals */

#ifdef CONFIG_PREEMPT
movel %sp,%d1 /* get thread_info pointer */
andl #-THREAD_SIZE,%d1 /* at base of kernel stack */
movel %d1,%a0
movel %a0@(TI_FLAGS),%d1 /* get thread_info->flags */
andl #_TIF_NEED_RESCHED,%d1
jeq Lkernel_return

movel %a0@(TI_PREEMPTCOUNT),%d1
cmpl #0,%d1
jne Lkernel_return

pea Lkernel_return
jmp preempt_schedule_irq /* preempt the kernel */
#endif

Lkernel_return:
moveml %sp@,%d1-%d5/%a0-%a2
lea %sp@(32),%sp /* space for 8 regs */
Expand Down

0 comments on commit a19325a

Please sign in to comment.