1. 14 Oct, 2009 5 commits
    • Anton Vorontsov's avatar
      powerpc/kgdb: Fix build failure caused by "kgdb.c: unused variable 'acc'" · cf50f447
      Anton Vorontsov authored
      'acc' isn't used anywhere and thus triggers gcc warning, which causes
      build error with CONFIG_PPC_DISABLE_WERROR=n (default):
      
        cc1: warnings being treated as errors
        arch/powerpc/kernel/kgdb.c: In function 'gdb_regs_to_pt_regs':
        arch/powerpc/kernel/kgdb.c:289: warning: unused variable 'acc'
        make[1]: *** [arch/powerpc/kernel/kgdb.o] Error 1
      Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      cf50f447
    • Anton Blanchard's avatar
      powerpc: Fix hypervisor TLB batching · b6dcde5c
      Anton Blanchard authored
      Profiling of a page fault scalability microbenchmark shows flush_hash_range
      is not calling the batch hpte invalidate hcall (H_BULK_REMOVE).
      
      It turns out we have a duplicate firmware feature for hcall-bulk and the
      current setup code stops after finding the first match. This meant we never
      batch and always do individual invalidates.
      
      The patch below removes the duplicate and shifts FW_FEATURE_CMO to close
      the gap. With the patch applied the single threaded page fault rate improves
      from 217169 to 238755 per second on a POWER5 test box, a 10% improvement.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b6dcde5c
    • Benjamin Herrenschmidt's avatar
      powerpc/mm: Fix hang accessing top of vmalloc space · 8d8997f3
      Benjamin Herrenschmidt authored
      On pSeries, we always force the IO space to be mapped using 4K
      pages even with a 64K base page size to cope with some limitations
      in the HV interface to some devices.
      
      However, the SLB miss handler code to discriminate between vmalloc
      and ioremap space uses a CPU feature section such that the code
      is nop'ed out when the processor support large pages non-cachable
      mappings.
      
      Thus, we end up always using the ioremap page size for vmalloc
      segments on such processors, causing a discrepency between the
      segment and the hash table, and thus a hang continously hashing
      the page.
      
      It works for the first segment of the vmalloc space since that
      segment is "bolted" in by C code correctly, and thankfully we
      almost never use the vmalloc space beyond the first segment,
      but the new percpu code made the bug happen.
      
      This fixes it by removing the feature section from the assembly,
      we now always do the comparison between vmalloc and ioremap.
      
      Signed-off-by; Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8d8997f3
    • Michael Ellerman's avatar
      powerpc: Fix memory leak in axon_msi.c · aee7a283
      Michael Ellerman authored
      cppcheck found a memory leak in axon_msi, if dcr_base or dcr_len are zero,
      we have already allocated msic, so we should free it in the error path.
      Signed-off-by: default avatarEric Sesterhenn <eric.sesterhenn@lsexperts.de>
      Acked-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      aee7a283
    • Benjamin Herrenschmidt's avatar
      powerpc/pmac: Fix issues with sleep on some powerbooks · 11a50873
      Benjamin Herrenschmidt authored
      Since the change of how interrupts are disabled during suspend,
      certain PowerBook models started exhibiting various issues during
      suspend or resume from sleep.
      
      I finally tracked it down to the code that runs various "platform"
      functions (kind of little scripts extracted from the device-tree),
      which uses our i2c and PMU drivers expecting interrutps to work,
      and at a time where with the new scheme, they have been disabled.
      
      This causes timeouts internally which for some reason results in
      the PMU being unable to see the trackpad, among other issues, really
      it depends on the machine. Most of the time, we fail to properly adjust
      some clocks for suspend/resume so the results are not always
      predictable.
      
      This patch fixes it by using IRQF_TIMER for both the PMU and the I2C
      interrupts. I prefer doing it this way than moving the call sites since
      I really want those platform functions to still be called after all
      drivers (and before sysdevs).
      
      We also do a slight cleanup to via-pmu.c driver to make sure the
      ADB autopoll mask is handled correctly when doing bus resets
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      11a50873
  2. 13 Oct, 2009 18 commits
  3. 12 Oct, 2009 17 commits