1. 05 10月, 2016 4 次提交
    • M
      MIPS: smp.c: Introduce mechanism for freeing and allocating IPIs · 7688c539
      Matt Redfearn 提交于
      For the MIPS remote processor implementation, we need additional IPIs to
      talk to the remote processor. Since MIPS GIC reserves exactly the right
      number of IPI IRQs required by Linux for the number of VPs in the
      system, this is not possible without releasing some recources.
      
      This commit introduces mips_smp_ipi_allocate() which allocates IPIs to a
      given cpumask. It is called as normal with the cpu_possible_mask at
      bootup to initialise IPIs to all CPUs. mips_smp_ipi_free() may then be
      used to free IPIs to a subset of those CPUs so that their hardware
      resources can be reused.
      Signed-off-by: NMatt Redfearn <matt.redfearn@imgtec.com>
      Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Lisa Parratt <Lisa.Parratt@imgtec.com>
      Cc: James Hogan <james.hogan@imgtec.com>
      Cc: Qais Yousef <qsyousef@gmail.com>
      Cc: Paul Burton <paul.burton@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: linux-remoteproc@vger.kernel.org
      Cc: lisa.parratt@imgtec.com
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14285/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      7688c539
    • M
      MIPS: tlb-r4k: If there are wired entries, don't use TLBINVF · e710d666
      Matt Redfearn 提交于
      When adding a wired entry to the TLB via add_wired_entry, the tlb is
      flushed with local_flush_tlb_all, which on CPUs with TLBINV results in
      the new wired entry being flushed again.
      
      Behavior of the TLBINV instruction applies to all applicable TLB entries
      and is unaffected by the setting of the Wired register. Therefore if
      the TLB has any wired entries, fall back to iterating over the entries
      rather than blasting them all using TLBINVF.
      Signed-off-by: NMatt Redfearn <matt.redfearn@imgtec.com>
      Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
      Cc: Ohad Ben-Cohen <ohad@wizery.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: lisa.parratt@imgtec.com
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Huacai Chen <chenhc@lemote.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: James Hogan <james.hogan@imgtec.com>
      Cc: Paul Burton <paul.burton@imgtec.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mips@linux-mips.org
      Cc: linux-remoteproc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14283/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e710d666
    • J
      MIPS: c-r4k: Fix flush_icache_range() for EVA · b2ff7171
      James Hogan 提交于
      flush_icache_range() flushes icache lines in a protected fashion for
      kernel addresses, however this isn't correct with EVA where protected
      cache ops only operate on user addresses, making flush_icache_range()
      ineffective.
      
      Split the implementations of __flush_icache_user_range() from
      flush_icache_range(), changing the normal flush_icache_range() to use
      unprotected normal cache ops.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/14156/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      b2ff7171
    • J
      MIPS: KVM: Use __local_flush_icache_user_range() · 24d1a6e6
      James Hogan 提交于
      Convert KVM dynamic translation of guest instructions to flush icache
      for guest mapped addresses using the new
      __local_flush_icache_user_range() API to allow the more generic
      flush_icache_range() to be changed to work on kernel addresses only.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: "Radim Krčmář" <rkrcmar@redhat.com>
      Cc: linux-mips@linux-mips.org
      Cc: kvm@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14155/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      24d1a6e6
  2. 04 10月, 2016 36 次提交