Loading arch/parisc/kernel/entry.S +3 −34 Original line number Diff line number Diff line Loading @@ -98,7 +98,6 @@ * The "get_stack" macros are responsible for determining the * kernel stack value. * * For Faults: * If sr7 == 0 * Already using a kernel stack, so call the * get_stack_use_r30 macro to push a pt_regs structure Loading @@ -110,26 +109,6 @@ * task pointer pointed to by cr30. Set the stack * pointer to point to the end of the task structure. * * For Interrupts: * If sr7 == 0 * Already using a kernel stack, check to see if r30 * is already pointing to the per processor interrupt * stack. If it is, call the get_stack_use_r30 macro * to push a pt_regs structure on the stack, and store * registers there. Otherwise, call get_stack_use_cr31 * to get a pointer to the base of the interrupt stack * and push a pt_regs structure on that stack. * else * Need to set up a kernel stack, so call the * get_stack_use_cr30 macro to set up a pointer * to the pt_regs structure contained within the * task pointer pointed to by cr30. Set the stack * pointer to point to the end of the task structure. * N.B: We don't use the interrupt stack for the * first interrupt from userland, because signals/ * resched's are processed when returning to userland, * and we can sleep in those cases. * * Note that we use shadowed registers for temps until * we can save %r26 and %r29. %r26 is used to preserve * %r8 (a shadowed register) which temporarily contained Loading Loading @@ -1086,23 +1065,13 @@ intr_do_preempt: intr_extint: CMPIB=,n 0,%r16,1f get_stack_use_cr30 b,n 3f b,n 2f 1: #if 0 /* Interrupt Stack support not working yet! */ mfctl %cr31,%r1 copy %r30,%r17 /* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/ DEPI 0,31,15,%r17 CMPB=,n %r1,%r17,2f get_stack_use_cr31 b,n 3f #endif 2: get_stack_use_r30 3: 2: save_specials %r29 virt_map save_general %r29 Loading arch/parisc/kernel/head.S +0 −4 Original line number Diff line number Diff line Loading @@ -128,10 +128,6 @@ $pgt_fill_loop: /* And the stack pointer too */ ldo THREAD_SZ_ALGN(%r6),%sp /* And the interrupt stack */ load32 interrupt_stack,%r6 mtctl %r6,%cr31 #ifdef CONFIG_SMP /* Set the smp rendevous address into page zero. ** It would be safer to do this in init_smp_config() but Loading arch/parisc/kernel/init_task.c +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ EXPORT_SYMBOL(init_mm); * way process stacks are handled. This is done by having a special * "init_task" linker map entry.. */ unsigned char interrupt_stack[ISTACK_SIZE] __attribute__ ((section("init_istack"), aligned(PAGE_SIZE))); union thread_union init_thread_union __attribute__((aligned(128))) __attribute__((__section__(".data.init_task"))) = { INIT_THREAD_INFO(init_task) }; Loading arch/parisc/kernel/smp.c +0 −12 Original line number Diff line number Diff line Loading @@ -432,22 +432,10 @@ smp_cpu_init(int cpunum) void __init smp_callin(void) { int slave_id = cpu_now_booting; #if 0 void *istack; #endif smp_cpu_init(slave_id); preempt_disable(); #if 0 /* NOT WORKING YET - see entry.S */ istack = (void *)__get_free_pages(GFP_KERNEL,ISTACK_ORDER); if (istack == NULL) { printk(KERN_CRIT "Failed to allocate interrupt stack for cpu %d\n",slave_id); BUG(); } mtctl(istack,31); #endif flush_cache_all_local(); /* start with known state */ flush_tlb_all_local(NULL); Loading arch/parisc/kernel/vmlinux.lds.S +0 −8 Original line number Diff line number Diff line Loading @@ -153,14 +153,6 @@ SECTIONS *(.data.init_task) } /* The interrupt stack is currently partially coded, but not yet * implemented */ . = ALIGN(16384); init_istack : { *(init_istack) } #ifdef CONFIG_64BIT . = ALIGN(16); /* Linkage tables */ Loading Loading
arch/parisc/kernel/entry.S +3 −34 Original line number Diff line number Diff line Loading @@ -98,7 +98,6 @@ * The "get_stack" macros are responsible for determining the * kernel stack value. * * For Faults: * If sr7 == 0 * Already using a kernel stack, so call the * get_stack_use_r30 macro to push a pt_regs structure Loading @@ -110,26 +109,6 @@ * task pointer pointed to by cr30. Set the stack * pointer to point to the end of the task structure. * * For Interrupts: * If sr7 == 0 * Already using a kernel stack, check to see if r30 * is already pointing to the per processor interrupt * stack. If it is, call the get_stack_use_r30 macro * to push a pt_regs structure on the stack, and store * registers there. Otherwise, call get_stack_use_cr31 * to get a pointer to the base of the interrupt stack * and push a pt_regs structure on that stack. * else * Need to set up a kernel stack, so call the * get_stack_use_cr30 macro to set up a pointer * to the pt_regs structure contained within the * task pointer pointed to by cr30. Set the stack * pointer to point to the end of the task structure. * N.B: We don't use the interrupt stack for the * first interrupt from userland, because signals/ * resched's are processed when returning to userland, * and we can sleep in those cases. * * Note that we use shadowed registers for temps until * we can save %r26 and %r29. %r26 is used to preserve * %r8 (a shadowed register) which temporarily contained Loading Loading @@ -1086,23 +1065,13 @@ intr_do_preempt: intr_extint: CMPIB=,n 0,%r16,1f get_stack_use_cr30 b,n 3f b,n 2f 1: #if 0 /* Interrupt Stack support not working yet! */ mfctl %cr31,%r1 copy %r30,%r17 /* FIXME! depi below has hardcoded idea of interrupt stack size (32k)*/ DEPI 0,31,15,%r17 CMPB=,n %r1,%r17,2f get_stack_use_cr31 b,n 3f #endif 2: get_stack_use_r30 3: 2: save_specials %r29 virt_map save_general %r29 Loading
arch/parisc/kernel/head.S +0 −4 Original line number Diff line number Diff line Loading @@ -128,10 +128,6 @@ $pgt_fill_loop: /* And the stack pointer too */ ldo THREAD_SZ_ALGN(%r6),%sp /* And the interrupt stack */ load32 interrupt_stack,%r6 mtctl %r6,%cr31 #ifdef CONFIG_SMP /* Set the smp rendevous address into page zero. ** It would be safer to do this in init_smp_config() but Loading
arch/parisc/kernel/init_task.c +0 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,6 @@ EXPORT_SYMBOL(init_mm); * way process stacks are handled. This is done by having a special * "init_task" linker map entry.. */ unsigned char interrupt_stack[ISTACK_SIZE] __attribute__ ((section("init_istack"), aligned(PAGE_SIZE))); union thread_union init_thread_union __attribute__((aligned(128))) __attribute__((__section__(".data.init_task"))) = { INIT_THREAD_INFO(init_task) }; Loading
arch/parisc/kernel/smp.c +0 −12 Original line number Diff line number Diff line Loading @@ -432,22 +432,10 @@ smp_cpu_init(int cpunum) void __init smp_callin(void) { int slave_id = cpu_now_booting; #if 0 void *istack; #endif smp_cpu_init(slave_id); preempt_disable(); #if 0 /* NOT WORKING YET - see entry.S */ istack = (void *)__get_free_pages(GFP_KERNEL,ISTACK_ORDER); if (istack == NULL) { printk(KERN_CRIT "Failed to allocate interrupt stack for cpu %d\n",slave_id); BUG(); } mtctl(istack,31); #endif flush_cache_all_local(); /* start with known state */ flush_tlb_all_local(NULL); Loading
arch/parisc/kernel/vmlinux.lds.S +0 −8 Original line number Diff line number Diff line Loading @@ -153,14 +153,6 @@ SECTIONS *(.data.init_task) } /* The interrupt stack is currently partially coded, but not yet * implemented */ . = ALIGN(16384); init_istack : { *(init_istack) } #ifdef CONFIG_64BIT . = ALIGN(16); /* Linkage tables */ Loading