Merge branch 'linux-2.6' into for-linus
authorPaul Mackerras <paulus@samba.org>
Mon, 4 Dec 2006 04:59:07 +0000 (15:59 +1100)
committerPaul Mackerras <paulus@samba.org>
Mon, 4 Dec 2006 04:59:07 +0000 (15:59 +1100)
17 files changed:
1  2 
arch/powerpc/Kconfig
arch/powerpc/boot/Makefile
arch/powerpc/configs/cell_defconfig
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/head_64.S
arch/powerpc/kernel/prom.c
arch/powerpc/kernel/setup_32.c
arch/powerpc/kernel/setup_64.c
arch/powerpc/platforms/cell/spu_base.c
arch/powerpc/platforms/cell/spufs/file.c
arch/powerpc/platforms/cell/spufs/hw_ops.c
arch/powerpc/platforms/iseries/setup.c
arch/powerpc/sysdev/qe_lib/qe.c
include/asm-powerpc/iommu.h
include/asm-powerpc/pci.h
include/asm-powerpc/prom.h

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 76d1c81afe52fcb3b2c33f7b9be3f0e039db4f8a,e720729f3e5536c6d267b68677a3c1a2ba514432..8cdff5a1f3e223667a1bcbe20d8fbc276d82a707
@@@ -613,27 -597,10 +613,27 @@@ system_call_pSeries
  /*** pSeries interrupt support ***/
  
        /* moved from 0xf00 */
 -      STD_EXCEPTION_PSERIES(., performance_monitor)
 +      MASKABLE_EXCEPTION_PSERIES(., performance_monitor)
 +
 +/*
 + * An interrupt came in while soft-disabled; clear EE in SRR1,
 + * clear paca->hard_enabled and return.
 + */
 +masked_interrupt:
 +      stb     r10,PACAHARDIRQEN(r13)
 +      mtcrf   0x80,r9
 +      ld      r9,PACA_EXGEN+EX_R9(r13)
 +      mfspr   r10,SPRN_SRR1
 +      rldicl  r10,r10,48,1            /* clear MSR_EE */
 +      rotldi  r10,r10,16
 +      mtspr   SPRN_SRR1,r10
 +      ld      r10,PACA_EXGEN+EX_R10(r13)
 +      mfspr   r13,SPRN_SPRG1
 +      rfid
 +      b       .
  
        .align  7
- _GLOBAL(do_stab_bolted_pSeries)
+ do_stab_bolted_pSeries:
        mtcrf   0x80,r12
        mfspr   r12,SPRN_SPRG2
        EXCEPTION_PROLOG_PSERIES(PACA_EXSLB, .do_stab_bolted)
@@@ -1366,17 -1325,7 +1367,17 @@@ BEGIN_FW_FTR_SECTIO
         * because ret_from_except_lite will check for and handle pending
         * interrupts if necessary.
         */
-       beq     .ret_from_except_lite
+       beq     13f
 +END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
 +#endif
 +BEGIN_FW_FTR_SECTION
 +      /*
 +       * Here we have interrupts hard-disabled, so it is sufficient
 +       * to restore paca->{soft,hard}_enable and get out.
 +       */
 +      beq     fast_exc_return_irq     /* Return from exception on success */
 +END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
 +
        /* For a hash failure, we don't bother re-enabling interrupts */
        ble-    12f
  
        ld      r3,SOFTE(r1)
        bl      .local_irq_restore
        b       11f
 -END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
 -#endif
 -BEGIN_FW_FTR_SECTION
 -      beq     fast_exception_return   /* Return from exception on success */
 -      ble-    12f                     /* Failure return from hash_page */
 -
 -      /* fall through */
 -END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
  
  /* Here we have a page fault that hash_page can't handle. */
- _GLOBAL(handle_page_fault)
+ handle_page_fault:
        ENABLE_INTS
  11:   ld      r4,_DAR(r1)
        ld      r5,_DSISR(r1)
        bl      .bad_page_fault
        b       .ret_from_except
  
++13:   b       .ret_from_except_lite
++
  /* We have a page fault that hash_page could handle but HV refused
   * the PTE insertion
   */
        bl      .low_hash_fault
        b       .ret_from_except
  
 -13:   b       .ret_from_except_lite
 -
        /* here we have a segment miss */
- _GLOBAL(do_ste_alloc)
+ do_ste_alloc:
        bl      .ste_allocate           /* try to insert stab entry */
        cmpdi   r3,0
-       beq+    fast_exception_return
-       b       .handle_page_fault
+       bne-    handle_page_fault
+       b       fast_exception_return
  
  /*
   * r13 points to the PACA, r9 contains the saved CR,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge