1. 24 Nov, 2010 1 commit
  2. 23 Nov, 2010 4 commits
  3. 22 Nov, 2010 1 commit
  4. 21 Nov, 2010 5 commits
  5. 18 Nov, 2010 13 commits
  6. 17 Nov, 2010 16 commits
    • Alessio Igor Bogani's avatar
      powerpc: Update a BKL related comment · 0f6b77ca
      Alessio Igor Bogani authored
      The commit 5e3d20a6
      
       remove bkl from startup code so setup_arch() it isn't called
      with bkl held anymore. Update the comment on top of that function.
      Fix also a typo.
      
      This work was supported by a hardware donation from the CE Linux Forum.
      Signed-off-by: default avatarAlessio Igor Bogani <abogani@texware.it>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0f6b77ca
    • 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
    • Linus Torvalds's avatar
      hardirq.h: remove now-empty #ifdef/#endif pair · 0a5b871e
      Linus Torvalds authored
      Commit 451a3c24
      
       ("BKL: remove extraneous #include <smp_lock.h>")
      removed the #include line that was the only thing that was surrounded by
      the #ifdef/#endif.
      
      So now that #ifdef is guarding nothing at all. Just remove it.
      Reported-by: default avatarByeong-ryeol Kim <brofkims@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0a5b871e
    • Linus Torvalds's avatar
      Fix build failure due to hwirq.h needing smp_lock.h · 7957f0a8
      Linus Torvalds authored
      Arnd Bergmann did an automated scripting run to find left-over instances
      of <linux/smp_lock.h>, and had made it trigger it on the normal BKL use
      of lock_kernel and unlock_lernel (and apparently release_kernel_lock and
      reacquire_kernel_lock too, used by the scheduler).
      
      That resulted in commit 451a3c24
      
       ("BKL: remove extraneous #include
      <smp_lock.h>").
      
      However, hardirq.h was the only remaining user of the old
      'kernel_locked()' interface, and Arnd's script hadn't checked for that.
      So depending on your configuration and what header files had been
      included, you would get errors like "implicit declaration of function
      'kernel_locked'" during the build.
      
      The right fix is not to just re-instate the smp_lock.h include - it is
      to just remove 'kernel_locked()' entirely, since the only use was this
      one special low-level detail.  Just make hardirq.h do it directly.
      
      In fact this simplifies and clarifies the code, because some trivial
      analysis makes it clear that hardirq.h only ever used _one_ of the two
      definitions of kernel_locked(), so we can remove the other one entirely.
      Reported-by: default avatarZimny Lech <napohybelskurwysynom2010@gmail.com>
      Reported-and-acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7957f0a8
    • Avi Kivity's avatar
      KVM: VMX: Fix host userspace gsbase corruption · c8770e7b
      Avi Kivity authored
      
      
      We now use load_gs_index() to load gs safely; unfortunately this also
      changes MSR_KERNEL_GS_BASE, which we managed separately.  This resulted
      in confusion and breakage running 32-bit host userspace on a 64-bit kernel.
      
      Fix by
      - saving guest MSR_KERNEL_GS_BASE before we we reload the host's gs
      - doing the host save/load unconditionally, instead of only when in guest
        long mode
      
      Things can be cleaned up further, but this is the minmal fix for now.
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      c8770e7b
    • Avi Kivity's avatar
      KVM: Correct ordering of ldt reload wrt fs/gs reload · 0a77fe4c
      Avi Kivity authored
      
      
      If fs or gs refer to the ldt, they must be reloaded after the ldt.  Reorder
      the code to that effect.
      
      Userspace code that uses the ldt with kvm is nonexistent, so this doesn't fix
      a user-visible bug.
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      0a77fe4c
    • Dongdong Deng's avatar
      kgdb,ppc: Fix regression in evr register handling · e3839ed8
      Dongdong Deng authored
      Commit ff10b88b
      
       (kgdb,ppc: Individual
      register get/set for ppc) introduced a problem where memcpy was used
      incorrectly to read and write the evr registers with a kernel that
      has:
      
      CONFIG_FSL_BOOKE=y
      CONFIG_SPE=y
      CONFIG_KGDB=y
      
      This patch also fixes the following compilation problems:
      
      arch/powerpc/kernel/kgdb.c: In function 'dbg_get_reg':
      arch/powerpc/kernel/kgdb.c:341: error: passing argument 2 of 'memcpy' makes pointer from integer without a cast
      arch/powerpc/kernel/kgdb.c: In function 'dbg_set_reg':
      arch/powerpc/kernel/kgdb.c:366: error: passing argument 1 of 'memcpy' makes pointer from integer without a cast
      
      [jason.wessel@windriver.com: Remove void * casts and fix patch header]
      Reported-by: default avatarMilton Miller <miltonm@bga.com>
      Signed-off-by: default avatarDongdong Deng <dongdong.deng@windriver.com>
      Acked-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      CC: linuxppc-dev@lists.ozlabs.org
      e3839ed8
    • Jason Wessel's avatar
      kgdb,x86: fix regression in detach handling · 10a6e676
      Jason Wessel authored
      The fix from ba773f7c
      
      
      (x86,kgdb: Fix hw breakpoint regression) was not entirely complete.
      
      The kgdb_remove_all_hw_break() function also needs to call the
      hw_break_release_slot() or else a breakpoint can get activated again
      after the debugger has detached.
      
      The kgdb test suite exposes the behavior in the form of either a hang
      or repetitive failure.  The kernel config that exposes the problem
      contains all of the following:
      
      CONFIG_DEBUG_RODATA=y
      CONFIG_KGDB_TESTS=y
      CONFIG_KGDB_TESTS_ON_BOOT=y
      CONFIG_KGDB_TESTS_BOOT_STRING="V1F100"
      Reported-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      Tested-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      10a6e676
    • Jovi Zhang's avatar
      kdb: fix crash when KDB_BASE_CMD_MAX is exceeded · 5450d904
      Jovi Zhang authored
      
      
      When the number of dyanmic kdb commands exceeds KDB_BASE_CMD_MAX, the
      kernel will fault.
      Signed-off-by: default avatarJovi Zhang <bookjovi@gmail.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      5450d904
    • Jovi Zhang's avatar
      kdb: fix memory leak in kdb_main.c · 85e76ab5
      Jovi Zhang authored
      
      
      Call kfree in the error path as well as the success path in kdb_ll().
      Signed-off-by: default avatarJovi Zhang <bookjovi@gmail.com>
      Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
      85e76ab5
    • Jeff Garzik's avatar
      [libata] remove SCSI host lock and serial number usage from ata_scsi_queuecmd · 23e701e6
      Jeff Garzik authored
      
      
      cmd->serial_number is never tested in any path we reach; therefore we may
      remove the call to scsi_cmd_get_serial() inside DEF_SCSI_QCMD, the SCSI
      host_lock acquisition surrounding it, and our own SCSI host_lock
      unlock+relock cycle.
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      23e701e6