patch-2.4.5 linux/arch/ppc/kernel/entry.S
Next file: linux/arch/ppc/kernel/error_log.c
Previous file: linux/arch/ppc/kernel/chrp_time.c
Back to the patch index
Back to the overall index
- Lines: 101
- Date:
Mon May 21 17:04:46 2001
- Orig file:
v2.4.4/linux/arch/ppc/kernel/entry.S
- Orig date:
Mon Jan 22 15:41:15 2001
diff -u --recursive --new-file v2.4.4/linux/arch/ppc/kernel/entry.S linux/arch/ppc/kernel/entry.S
@@ -1,8 +1,7 @@
/*
- * arch/ppc/kernel/entry.S
- *
- * $Id: entry.S,v 1.4 1999/09/14 05:18:14 dmalek Exp $
- *
+ * BK Id: SCCS/s.entry.S 1.12 05/21/01 11:49:59 paulus
+ */
+/*
* PowerPC version
* Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
* Rewritten by Cort Dougan (cort@fsmlabs.com) for PReP
@@ -30,7 +29,6 @@
#include <linux/errno.h>
#include <linux/sys.h>
#include <linux/config.h>
-#include "mol.h"
#undef SHOW_SYSCALLS
#undef SHOW_SYSCALLS_TASK
@@ -315,21 +313,12 @@
lwz r5,_MSR(r1)
andi. r5,r5,MSR_EE
beq 2f
- .globl lost_irq_ret
-lost_irq_ret:
-3: lis r4,ppc_n_lost_interrupts@ha
- lwz r4,ppc_n_lost_interrupts@l(r4)
- cmpi 0,r4,0
- beq+ 1f
- addi r3,r1,STACK_FRAME_OVERHEAD
- bl do_IRQ
- b 3b
-1: lis r4,irq_stat@ha /* &softirq_active for cpu 0 */
+ lis r4,irq_stat@ha /* &softirq_active for cpu 0 */
addi r4,r4,irq_stat@l
#ifdef CONFIG_SMP
/* get processor # */
lwz r3,PROCESSOR(r2)
- slwi r3,r3,5
+ slwi r3,r3,LG_CACHE_LINE_SIZE
add r4,r4,r3
#endif /* CONFIG_SMP */
lwz r5,0(r4) /* softirq_active */
@@ -351,7 +340,6 @@
beq+ do_signal_ret
li r3,0
addi r4,r1,STACK_FRAME_OVERHEAD
- MOL_HOOK_MMU(8,r8)
bl do_signal
.globl do_signal_ret
do_signal_ret:
@@ -373,7 +361,9 @@
rlwinm r0,r0,0,17,15 /* clear MSR_EE in r0 */
SYNC /* Some chip revs have problems here... */
mtmsr r0 /* Update machine state */
-
+
+ stwcx. r0,0,r1 /* to clear the reservation */
+
/* if returning to user mode, set new sprg2 and save kernel SP */
lwz r0,_MSR(r1)
andi. r0,r0,MSR_PR
@@ -391,7 +381,6 @@
stw r0,THREAD+KSP(r2) /* save kernel stack pointer */
tophys(r8,r1)
CLR_TOP32(r8)
- MOL_HOOK_MMU(9, r4) /* mod. r0,r2-r7, lr, ctr */
mtspr SPRG2,r8 /* phys exception stack pointer */
1:
lwz r3,_CTR(r1)
@@ -412,29 +401,6 @@
lwz r1,GPR1(r1)
SYNC
RFI
-
-/*
- * Fake an interrupt from kernel mode.
- * This is used when enable_irq loses an interrupt.
- * We only fill in the stack frame minimally.
- */
-_GLOBAL(fake_interrupt)
- mflr r0
- stw r0,4(r1)
- stwu r1,-INT_FRAME_SIZE(r1)
- stw r0,_NIP(r1)
- stw r0,_LINK(r1)
- mfmsr r3
- stw r3,_MSR(r1)
- li r0,0x0fac
- stw r0,TRAP(r1)
- addi r3,r1,STACK_FRAME_OVERHEAD
- li r4,1
- bl do_IRQ
- addi r1,r1,INT_FRAME_SIZE
- lwz r0,4(r1)
- mtlr r0
- blr
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)