Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6cc4525d29e22ab831387b6fac371e0118693a25
Commit:     6cc4525d29e22ab831387b6fac371e0118693a25
Parent:     873d50e2e56741406ff9d68c275f0c560e896a80
Author:     Kyle McMartin <[EMAIL PROTECTED]>
AuthorDate: Thu Oct 18 00:04:56 2007 -0700
Committer:  Kyle McMartin <[EMAIL PROTECTED]>
CommitDate: Thu Oct 18 00:59:31 2007 -0700

    [PARISC] Kill off broken irqstack code
    
    It's been unfinished and broken long enough, and I have some ideas on how
    to do it more cleanly.
    
    Signed-off-by: Kyle McMartin <[EMAIL PROTECTED]>
---
 arch/parisc/kernel/entry.S       |   37 +++----------------------------------
 arch/parisc/kernel/head.S        |    4 ----
 arch/parisc/kernel/init_task.c   |    1 -
 arch/parisc/kernel/smp.c         |   12 ------------
 arch/parisc/kernel/vmlinux.lds.S |    8 --------
 include/asm-parisc/pgtable.h     |    8 --------
 6 files changed, 3 insertions(+), 67 deletions(-)

diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index f324939..111d472 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -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
@@ -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
@@ -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
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S
index 369919d..a7b8859 100644
--- a/arch/parisc/kernel/head.S
+++ b/arch/parisc/kernel/head.S
@@ -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
diff --git a/arch/parisc/kernel/init_task.c b/arch/parisc/kernel/init_task.c
index 3b2f7d3..26198a0 100644
--- a/arch/parisc/kernel/init_task.c
+++ b/arch/parisc/kernel/init_task.c
@@ -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) };
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
index d7bc7bb..85fc775 100644
--- a/arch/parisc/kernel/smp.c
+++ b/arch/parisc/kernel/smp.c
@@ -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);
 
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index d6dbcbc..40d0ff9 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -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 */
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h
index 33ed0e7..b5a8797 100644
--- a/include/asm-parisc/pgtable.h
+++ b/include/asm-parisc/pgtable.h
@@ -49,14 +49,6 @@
 #define pgd_ERROR(e) \
        printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, (unsigned 
long)pgd_val(e))
 
- /* Note: If you change ISTACK_SIZE, you need to change the corresponding
-  * values in vmlinux.lds and vmlinux64.lds (init_istack section). Also,
-  * the "order" and size need to agree.
-  */
-
-#define  ISTACK_SIZE  32768 /* Interrupt Stack Size */
-#define  ISTACK_ORDER 3
-
 /* This is the size of the initially mapped kernel memory */
 #ifdef CONFIG_64BIT
 #define KERNEL_INITIAL_ORDER   24      /* 0 to 1<<24 = 16MB */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to