summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/ppc64/kernel/asm-offsets.c2
-rw-r--r--arch/ppc64/kernel/head.S68
-rw-r--r--arch/ppc64/kernel/process.c40
-rw-r--r--arch/ppc64/mm/init.c5
4 files changed, 0 insertions, 115 deletions
diff --git a/arch/ppc64/kernel/asm-offsets.c b/arch/ppc64/kernel/asm-offsets.c
index 1bc9b089757b..69c672faf9e6 100644
--- a/arch/ppc64/kernel/asm-offsets.c
+++ b/arch/ppc64/kernel/asm-offsets.c
@@ -83,9 +83,7 @@ int main(void)
DEFINE(PACALPQUEUE, offsetof(struct paca_struct, lpQueuePtr));
DEFINE(PACATOC, offsetof(struct paca_struct, xTOC));
DEFINE(PACAEXCSP, offsetof(struct paca_struct, exception_sp));
- DEFINE(PACAHRDWINTSTACK, offsetof(struct paca_struct, xHrdIntStack));
DEFINE(PACAPROCENABLED, offsetof(struct paca_struct, xProcEnabled));
- DEFINE(PACAHRDWINTCOUNT, offsetof(struct paca_struct, xHrdIntCount));
DEFINE(PACADEFAULTDECR, offsetof(struct paca_struct, default_decr));
DEFINE(PACAPROFENABLED, offsetof(struct paca_struct, prof_enabled));
DEFINE(PACAPROFLEN, offsetof(struct paca_struct, prof_len));
diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S
index df8d0c1dd8c0..10e7a055a94c 100644
--- a/arch/ppc64/kernel/head.S
+++ b/arch/ppc64/kernel/head.S
@@ -705,61 +705,9 @@ HardwareInterrupt_entry:
li r20,0
li r6,0x500
bl .save_remaining_regs
- /* Determine if need to run do_irq on a hardware interrupt stack */
- /* The first invocation of do_irq will occur on the kernel */
- /* stack in the current stack */
- /* All other invocations of do_irq will run on the hardware */
- /* interrupt stack associated with the PACA of the current */
- /* processor. */
- /* */
- /* The call to do_irq will preserve the value of r14 - r31 */
- /* */
-/*
- * XXX turn off interrupt stacks until the thread_info stuff is fixed.
- * Otherwise we end up setting need_resched etc bits in the interrupt
- * stack and they never get seen when we return to the process stack - Anton
- */
-#if 0
- lbz r21,PACAHRDWINTCOUNT(r13) /* get hardware interrupt cnt */
- cmpi 0,r21,1 /* */
- addi r21,r21,1 /* incr hardware interrupt cnt*/
- stb r21,PACAHRDWINTCOUNT(r13) /* */
- bne 2f /* */
-
- mr r14,r1 /* preserve current r1 */
- ld r1,PACAHRDWINTSTACK(r13) /* */
- std r14,0(r1) /* set the back chain */
bl .do_IRQ
- lbz r22,PACAHRDWINTCOUNT(r13) /* get hardware interrupt cnt */
- cmp 0,r22,r21 /* debug test */
- bne 3f
- subi r21,r21,1
- stb r21,PACAHRDWINTCOUNT(r13) /* */
- mr r1,r14 /* */
- b .ret_from_except
-#endif
-
-2:
- bl .do_IRQ
-
-#if 0
- lbz r22,PACAHRDWINTCOUNT(r13) /* get hardware interrupt cnt */
- cmp 0,r22,r21 /* debug test */
- bne 3f /* */
- subi r21,r21,1 /* decr hardware interrupt cnt*/
- stb r21,PACAHRDWINTCOUNT(r13) /* */
-#endif
-
b .ret_from_except
-3:
- /* error - counts out of sync */
-#ifdef CONFIG_XMON
- bl .xmon
-#endif
-4: b 4b
-
-
.globl Alignment_common
Alignment_common:
EXCEPTION_PROLOG_COMMON
@@ -1845,18 +1793,6 @@ _STATIC(start_here_common)
li r5,0
std r0,PACAKSAVE(r13)
- /* ptr to hardware interrupt stack for boot processor */
- LOADADDR(r3, hardware_int_paca0)
- li r5,PAGE_SIZE
- sldi r5,r5,3
- subi r5,r5,STACK_FRAME_OVERHEAD
-
- add r3,r3,r5
- std r3,PACAHRDWINTSTACK(r13)
-
- li r3,0
- stb r3,PACAHRDWINTCOUNT(r13)
-
/* Restore the parms passed in from the bootloader. */
mr r3,r31
mr r4,r30
@@ -1978,10 +1914,6 @@ swapper_pg_dir:
ioremap_dir:
.space 4096
- .globl hardware_int_paca0
-hardware_int_paca0:
- .space 8*PAGE_SIZE
-
/* 1 page segment table per cpu (max 48, cpu0 allocated at STAB0_PHYS_ADDR) */
.globl stab_array
stab_array:
diff --git a/arch/ppc64/kernel/process.c b/arch/ppc64/kernel/process.c
index df5d9ffe60c5..2731395337bf 100644
--- a/arch/ppc64/kernel/process.c
+++ b/arch/ppc64/kernel/process.c
@@ -385,46 +385,6 @@ out:
return error;
}
-void initialize_paca_hardware_interrupt_stack(void)
-{
- int i;
- unsigned long stack;
- unsigned long end_of_stack =0;
-
- for (i=1; i < NR_CPUS; i++) {
- if (!cpu_possible(i))
- continue;
- /* Carve out storage for the hardware interrupt stack */
- stack = __get_free_pages(GFP_ATOMIC, get_order(8*PAGE_SIZE));
-
- if ( !stack ) {
- printk("ERROR, cannot find space for hardware stack.\n");
- panic(" no hardware stack ");
- }
-
-
- /* Store the stack value in the PACA for the processor */
- paca[i].xHrdIntStack = stack + (8*PAGE_SIZE) - STACK_FRAME_OVERHEAD;
- paca[i].xHrdIntCount = 0;
-
- }
-
- /*
- * __get_free_pages() might give us a page > KERNBASE+256M which
- * is mapped with large ptes so we can't set up the guard page.
- */
- if (cur_cpu_spec->cpu_features & CPU_FTR_16M_PAGE)
- return;
-
- for (i=0; i < NR_CPUS; i++) {
- if (!cpu_possible(i))
- continue;
- /* set page at the top of stack to be protected - prevent overflow */
- end_of_stack = paca[i].xHrdIntStack - (8*PAGE_SIZE - STACK_FRAME_OVERHEAD);
- ppc_md.hpte_updateboltedpp(PP_RXRX,end_of_stack);
- }
-}
-
char *ppc_find_proc_name(unsigned *p, char *buf, unsigned buflen)
{
unsigned long tb_flags;
diff --git a/arch/ppc64/mm/init.c b/arch/ppc64/mm/init.c
index d7003a1588cf..cdd8886e3c0c 100644
--- a/arch/ppc64/mm/init.c
+++ b/arch/ppc64/mm/init.c
@@ -540,8 +540,6 @@ static int __init setup_kcore(void)
}
module_init(setup_kcore);
-void initialize_paca_hardware_interrupt_stack(void);
-
void __init mem_init(void)
{
#ifndef CONFIG_DISCONTIGMEM
@@ -608,9 +606,6 @@ void __init mem_init(void)
#endif
mem_init_done = 1;
- /* set the last page of each hardware interrupt stack to be protected */
- initialize_paca_hardware_interrupt_stack();
-
#ifdef CONFIG_PPC_ISERIES
create_virtual_bus_tce_table();
#endif