1. 14 12月, 2015 8 次提交
  2. 02 12月, 2015 3 次提交
  3. 01 12月, 2015 9 次提交
  4. 26 11月, 2015 1 次提交
  5. 16 11月, 2015 1 次提交
  6. 10 11月, 2015 1 次提交
  7. 28 10月, 2015 3 次提交
    • K
      powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry · e1f580e8
      Kevin Hao 提交于
      In order to workaround Erratum A-008139, we have to invalidate the
      tlb entry with tlbilx before overwriting. Due to the performance
      consideration, we don't add any memory barrier when acquire/release
      the tcd lock. This means the two load instructions for esel_next do
      have the possibility to return different value. This is definitely
      not acceptable due to the Erratum A-008139. We have two options to
      fix this issue:
        a) Add memory barrier when acquire/release tcd lock to order the
           load/store to esel_next.
        b) Just make sure to invalidate and write to the same tlb entry and
           tolerate the race that we may get the wrong value and overwrite
           the tlb entry just updated by the other thread.
      
      We observe better performance using option b. So reserve an additional
      register to save the value of the esel_next.
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      e1f580e8
    • S
      powerpc/booke: Only use VIRT_PHYS_OFFSET on booke32 · ffda09a9
      Scott Wood 提交于
      The way VIRT_PHYS_OFFSET is not correct on book3e-64, because
      it does not account for CONFIG_RELOCATABLE other than via the
      32-bit-only virt_phys_offset.
      
      book3e-64 can (and if the comment about a GCC miscompilation is still
      relevant, should) use the normal ppc64 __va/__pa.
      
      At this point, only booke-32 will use VIRT_PHYS_OFFSET, so given the
      issues with its calculation, restrict its definition to booke-32.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      ffda09a9
    • T
      powerpc/book3e: support CONFIG_RELOCATABLE · 1cb6e064
      Tiejun Chen 提交于
      book3e is different with book3s since 3s includes the exception
      vectors code in head_64.S as it relies on absolute addressing
      which is only possible within this compilation unit. So we have
      to get that label address with got.
      
      And when boot a relocated kernel, we should reset ipvr properly again
      after .relocate.
      Signed-off-by: NTiejun Chen <tiejun.chen@windriver.com>
      [scottwood: cleanup and ifdef removal]
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      1cb6e064
  8. 23 10月, 2015 1 次提交
  9. 22 10月, 2015 3 次提交
  10. 21 10月, 2015 1 次提交
    • P
      powerpc: Revert "Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8" · 23316316
      Paul Mackerras 提交于
      This reverts commit 9678cdaa ("Use the POWER8 Micro Partition
      Prefetch Engine in KVM HV on POWER8") because the original commit had
      multiple, partly self-cancelling bugs, that could cause occasional
      memory corruption.
      
      In fact the logmpp instruction was incorrectly using register r0 as the
      source of the buffer address and operation code, and depending on what
      was in r0, it would either do nothing or corrupt the 64k page pointed to
      by r0.
      
      The logmpp instruction encoding and the operation code definitions could
      be corrected, but then there is the problem that there is no clearly
      defined way to know when the hardware has finished writing to the
      buffer.
      
      The original commit attempted to work around this by aborting the
      write-out before starting the prefetch, but this is ineffective in the
      case where the virtual core is now executing on a different physical
      core from the one where the write-out was initiated.
      
      These problems plus advice from the hardware designers not to use the
      function (since the measured performance improvement from using the
      feature was actually mostly negative), mean that reverting the code is
      the best option.
      
      Fixes: 9678cdaa ("Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8")
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      23316316
  11. 15 10月, 2015 3 次提交
  12. 12 10月, 2015 2 次提交
  13. 09 10月, 2015 2 次提交
    • A
      powerpc: Fix _ALIGN_* errors due to type difference. · f78f7ed7
      Aneesh Kumar K.V 提交于
      This avoid errors like
      
              unsigned int usize = 1 << 30;
              int size = 1 << 30;
              unsigned long addr = 64UL << 30 ;
      
              value = _ALIGN_DOWN(addr, usize); -> 0
              value = _ALIGN_DOWN(addr, size);  -> 0x1000000000
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      f78f7ed7
    • C
      powerpc: Fix checkstop in native_hpte_clear() with lockdep · fdf880a6
      Cyril Bur 提交于
      native_hpte_clear() is called in real mode from two places:
      - Early in boot during htab initialisation if firmware assisted dump is
        active.
      - Late in the kexec path.
      
      In both contexts there is no need to disable interrupts are they are
      already disabled. Furthermore, locking around the tlbie() is only required
      for pre POWER5 hardware.
      
      On POWER5 or newer hardware concurrent tlbie()s work as expected and on pre
      POWER5 hardware concurrent tlbie()s could result in deadlock. This code
      would only be executed at crashdump time, during which all bets are off,
      concurrent tlbie()s are unlikely and taking locks is unsafe therefore the
      best course of action is to simply do nothing. Concurrent tlbie()s are not
      possible in the first case as secondary CPUs have not come up yet.
      Signed-off-by: NCyril Bur <cyrilbur@gmail.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      fdf880a6
  14. 08 10月, 2015 1 次提交
  15. 07 10月, 2015 1 次提交
    • C
      word-at-a-time.h: fix some Kbuild files · 19c22f3a
      Chris Metcalf 提交于
      arch/tile added word-at-a-time.h after the patch that added generic-y
      entries; the generic-y entry is now stale.
      
      arch/h8300 is newer than the generic-y patch for word-at-a-time.h,
      and needs a generic-y entry.
      
      arch/powerpc seems to have gotten a generic-y entry by mistake in
      the first patch; this change removes it.
      Signed-off-by: NChris Metcalf <cmetcalf@ezchip.com>
      19c22f3a