1. 18 Nov, 2010 6 commits
    • Kumar Gala's avatar
      powerpc/mm: Fix module instruction tlb fault handling on Book-E 64 · 82ae5eaf
      Kumar Gala authored
      We were seeing oops like the following when we did an rmmod on a module:
      
      Unable to handle kernel paging request for instruction fetch
      Faulting instruction address: 0x8000000000008010
      Oops: Kernel access of bad area, sig: 11 [#1]
      SMP NR_CPUS=2 P5020 DS
      last sysfs file: /sys/devices/qman-portals.2/qman-pool.9/uevent
      Modules linked in: qman_tester(-)
      NIP: 8000000000008010 LR: c000000000074858 CTR: 8000000000008010
      REGS: c00000002e29bab0 TRAP: 0400   Not tainted
      (2.6.34.6-00744-g2d21f14)
      MSR: 0000000080029000 <EE,ME,CE>  CR: 24000448  XER: 00000000
      TASK = c00000007a8be600[4987] 'rmmod' THREAD: c00000002e298000 CPU: 1
      GPR00: 8000000000008010 c00000002e29bd30 8000000000012798 c00000000035fb28
      GPR04: 0000000000000002 0000000000000002 0000000024022428 c000000000009108
      GPR08: fffffffffffffffe 800000000000a618 c0000000003c13c8 0000000000000000
      GPR12: 0000000022000444 c00000000fffed00 0000000000000000 0000000000000000
      GPR16: 00000000100c0000 0000000000000000 00000000100dabc8 0000000010099688
      GPR20: 0000000000000000 00000000100cfc28 0000000000000000 0000000010011a44
      GPR24: 00000000100017b2 0000000000000000 0000000000000000 0000000000000880
      GPR28: c00000000035fb28 800000000000a7b8 c000000000376d80 c0000000003cce50
      NIP [8000000000008010] .test_exit+0x0/0x10 [qman_tester]
      LR [c000000000074858] .SyS_delete_module+0x1f8/0x2f0
      Call Trace:
      [c00000002e29bd30] [c0000000000748b4] .SyS_delete_module+0x254/0x2f0 (unreliable)
      [c00000002e29be30] [c000000000000580] syscall_exit+0x0/0x2c
      Instruction dump:
      XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
      38600000 4e800020 60000000 60000000 <4e800020> 60000000 60000000 60000000
      ---[ end trace 4f57124939a84dc8 ]---
      
      This appears to be due to checking the wrong permission bits in the
      instruction_tlb_miss handling if the address that faulted was in vmalloc
      space.  We need to look at the supervisor execute (_PAGE_BAP_SX) bit and
      not the user bit (_PAGE_BAP_UX/_PAGE_EXEC).
      
      Also removed a branch level since it did not appear to be used.
      Reported-by: default avatarJeffrey Ladouceur <Jeffrey.Ladouceur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      82ae5eaf
    • Michael Neuling's avatar
      powerpc: Fix call to subpage_protection() · 1c2c25c7
      Michael Neuling authored
      In:
        powerpc/mm: Fix pgtable cache cleanup with CONFIG_PPC_SUBPAGE_PROT
        commit d28513bc
        Author: David Gibson <david@gibson.dropbear.id.au>
      
      subpage_protection() was changed to to take an mm rather a pgdir but it
      didn't change calling site in hashpage_preload().  The change wasn't
      noticed at compile time since hashpage_preload() used a void* as the
      parameter to subpage_protection().
      
      This is obviously wrong and can trigger the following crash when
      CONFIG_SLAB, CONFIG_DEBUG_SLAB, CONFIG_PPC_64K_PAGES
      CONFIG_PPC_SUBPAGE_PROT are enabled.
      
      Freeing unused kernel memory: 704k freed
      Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6c49b7
      Faulting instruction address: 0xc0000000000410f4
      cpu 0x2: Vector: 300 (Data Access) at [c00000004233f590]
          pc: c0000000000410f4: .hash_preload+0x258/0x338
          lr: c000000000041054: .hash_preload+0x1b8/0x338
          sp: c00000004233f810
         msr: 8000000000009032
         dar: 6b6b6b6b6b6c49b7
       dsisr: 40000000
        current = 0xc00000007e2c0070
        paca    = 0xc000000007fe0500
          pid   = 1, comm = init
      enter ? for help
      [c00000004233f810] c000000000041020 .hash_preload+0x184/0x338 (unreliable)
      [c00000004233f8f0] c00000000003ed98 .update_mmu_cache+0xb0/0xd0
      [c00000004233f990] c000000000157754 .__do_fault+0x48c/0x5dc
      [c00000004233faa0] c000000000158fd0 .handle_mm_fault+0x508/0xa8c
      [c00000004233fb90] c0000000006acdd4 .do_page_fault+0x428/0x6ac
      [c00000004233fe30] c000000000005260 handle_page_fault+0x20/0x74
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      1c2c25c7
    • kerstin jonsson's avatar
      powerpc: Set CONFIG_32BIT on ppc32 · 234a71a7
      kerstin jonsson authored
      commit ffe8018c of the -mm tree
      fixes the initramfs size calculation for e.g. s390 but breaks it
      for 32bit architectures which do not define CONFIG_32BIT.
      
      This patch fix the problem for PPC32 which will elsewise end up
      with a __initramfs_size of 0.
      Signed-off-by: default avatarKerstin Jonsson <kerstin.jonsson@ericsson.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      234a71a7
    • Kumar Gala's avatar
      powerpc/mm: Fix build error in setup_initial_memory_limit · 4a89261b
      Kumar Gala authored
      arch/powerpc/mm/tlb_nohash.c: In function 'setup_initial_memory_limit':
      arch/powerpc/mm/tlb_nohash.c:588:29: error: 'ppc64_memblock_base' undeclared (first use in this function)
      arch/powerpc/mm/tlb_nohash.c:588:29: note: each undeclared identifier is reported only once for each function it appears in
      
      Due to a copy/paste typo with the following commit:
      
      	commit cd3db0c4
      	Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      	Date:   Tue Jul 6 15:39:02 2010 -0700
      
      	    memblock: Remove rmo_size, burry it in arch/powerpc where it belongs
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4a89261b
    • Nishanth Aravamudan's avatar
      powerpc/pseries: Don't override CONFIG_PPC_PSERIES_DEBUG · 01cf6fe8
      Nishanth Aravamudan authored
      EEH and pci_dlpar #undef DEBUG, but I think they were added before the
      ability to control this from Kconfig. It's really annoying to only get
      some of the debug messages from these files. Leave the lpar.c #undef
      alone as it produces so much output as to make the kernel unusable.
      Update the Kconfig text to indicate this particular quirk :)
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Acked-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      01cf6fe8
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix div64 in bootloader · acbfd58e
      Benjamin Herrenschmidt authored
      The code is missing a fix that went into the main kernel variant
      (we should try to share that code again at some stage)
      Reported-by: default avatarAlbert Cahalan <acahalan@gmail.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      acbfd58e
  2. 17 Nov, 2010 6 commits
  3. 16 Nov, 2010 17 commits
  4. 15 Nov, 2010 11 commits