1. 01 2月, 2019 1 次提交
  2. 27 7月, 2018 1 次提交
  3. 06 7月, 2018 1 次提交
  4. 24 4月, 2018 1 次提交
  5. 11 8月, 2017 1 次提交
    • A
      arm64: fix pmem interface definition · caf5ef7d
      Arnd Bergmann 提交于
      Defining the two functions as 'static inline' and exporting them
      leads to the interesting case where we can use the interface
      from loadable modules, but not from built-in drivers, as shown
      in this link failure:
      
      vers/nvdimm/claim.o: In function `nsio_rw_bytes':
      claim.c:(.text+0x1b8): undefined reference to `arch_invalidate_pmem'
      drivers/nvdimm/pmem.o: In function `pmem_dax_flush':
      pmem.c:(.text+0x11c): undefined reference to `arch_wb_cache_pmem'
      drivers/nvdimm/pmem.o: In function `pmem_make_request':
      pmem.c:(.text+0x5a4): undefined reference to `arch_invalidate_pmem'
      pmem.c:(.text+0x650): undefined reference to `arch_invalidate_pmem'
      pmem.c:(.text+0x6d4): undefined reference to `arch_invalidate_pmem'
      
      This removes the bogus 'static inline'.
      
      Fixes: d50e071f ("arm64: Implement pmem API support")
      Acked-by: NRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      caf5ef7d
  6. 09 8月, 2017 1 次提交
  7. 21 3月, 2017 2 次提交
  8. 24 11月, 2016 1 次提交
    • C
      arm64: Remove I-cache invalidation from flush_cache_range() · ee6a7fce
      Catalin Marinas 提交于
      The flush_cache_range() function (similarly for flush_cache_page()) is
      called when the kernel is changing an existing VA->PA mapping range to
      either a new PA or to different attributes. Since ARMv8 has PIPT-like
      D-caches, this function does not need to perform any D-cache
      maintenance. The I-cache maintenance is already handled via set_pte_at()
      and flush_cache_range() cannot anyway guarantee that there are no cache
      lines left after invalidation due to the speculative loads.
      
      This patch makes flush_cache_range() a no-op.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      ee6a7fce
  9. 08 11月, 2016 1 次提交
    • P
      arm64: Add uprobe support · 9842ceae
      Pratyush Anand 提交于
      This patch adds support for uprobe on ARM64 architecture.
      
      Unit tests for following have been done so far and they have been found
      working
          1. Step-able instructions, like sub, ldr, add etc.
          2. Simulation-able like ret, cbnz, cbz etc.
          3. uretprobe
          4. Reject-able instructions like sev, wfe etc.
          5. trapped and abort xol path
          6. probe at unaligned user address.
          7. longjump test cases
      
      Currently it does not support aarch32 instruction probing.
      Signed-off-by: NPratyush Anand <panand@redhat.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      9842ceae
  10. 07 9月, 2016 1 次提交
  11. 22 6月, 2016 1 次提交
    • S
      arm64: mm: remove page_mapping check in __sync_icache_dcache · 20c27a42
      Shaokun Zhang 提交于
      __sync_icache_dcache unconditionally skips the cache maintenance for
      anonymous pages, under the assumption that flushing is only required in
      the presence of D-side aliases [see 7249b79f ("arm64: Do not flush
      the D-cache for anonymous pages")].
      
      Unfortunately, this breaks migration of anonymous pages holding
      self-modifying code, where userspace cannot be reasonably expected to
      reissue maintenance instructions in response to a migration.
      
      This patch fixes the problem by removing the broken page_mapping(page)
      check from the cache syncing code, otherwise we may end up fetching and
      executing stale instructions from the PoU.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NShaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      20c27a42
  12. 25 3月, 2016 1 次提交
    • M
      arm64: mm: allow preemption in copy_to_user_page · 691b1e2e
      Mark Rutland 提交于
      Currently we disable preemption in copy_to_user_page; a behaviour that
      we inherited from the 32-bit arm code. This was necessary for older
      cores without broadcast data cache maintenance, and ensured that cache
      lines were dirtied and cleaned by the same CPU. On these systems dirty
      cache line migration was not possible, so this was sufficient to
      guarantee coherency.
      
      On contemporary systems, cache coherence protocols permit (dirty) cache
      lines to migrate between CPUs as a result of speculation, prefetching,
      and other behaviours. To account for this, in ARMv8 data cache
      maintenance operations are broadcast and affect all data caches in the
      domain associated with the VA (i.e. ISH for kernel and user mappings).
      
      In __switch_to we ensure that tasks can be safely migrated in the middle
      of a maintenance sequence, using a dsb(ish) to ensure prior explicit
      memory accesses are observed and cache maintenance operations are
      completed before a task can be run on another CPU.
      
      Given the above, it is not necessary to disable preemption in
      copy_to_user_page. This patch removes the preempt_{disable,enable}
      calls, permitting preemption.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      691b1e2e
  13. 16 1月, 2016 1 次提交
    • K
      arm64, thp: remove infrastructure for handling splitting PMDs · b7ed934a
      Kirill A. Shutemov 提交于
      With new refcounting we don't need to mark PMDs splitting.  Let's drop
      code to handle this.
      
      pmdp_splitting_flush() is not needed too: on splitting PMD we will do
      pmdp_clear_flush() + set_pte_at().  pmdp_clear_flush() will do IPI as
      needed for fast_gup.
      Signed-off-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Sasha Levin <sasha.levin@oracle.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Jerome Marchand <jmarchan@redhat.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Steve Capper <steve.capper@linaro.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b7ed934a
  14. 17 12月, 2015 1 次提交
  15. 27 7月, 2015 1 次提交
  16. 19 5月, 2015 1 次提交
  17. 10 10月, 2014 1 次提交
  18. 04 7月, 2014 1 次提交
  19. 08 6月, 2013 3 次提交
  20. 24 11月, 2012 1 次提交
  21. 17 9月, 2012 1 次提交