1. 27 7月, 2015 13 次提交
    • W
      arm64: force CONFIG_SMP=y and remove redundant #ifdefs · 4b3dc967
      Will Deacon 提交于
      Nobody seems to be producing !SMP systems anymore, so this is just
      becoming a source of kernel bugs, particularly if people want to use
      coherent DMA with non-shared pages.
      
      This patch forces CONFIG_SMP=y for arm64, removing a modest amount of
      code in the process.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      4b3dc967
    • M
      arm64: perf: factor out callchain code · 52da443e
      Mark Rutland 提交于
      We currently bundle the callchain handling code with the PMU code,
      despite the fact the two are distinct, and the former can be useful even
      in the absence of the latter.
      
      Follow the example of arch/arm and factor the callchain handling into
      its own file dependent on CONFIG_PERF_EVENTS rather than
      CONFIG_HW_PERF_EVENTS.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      52da443e
    • W
      arm64: lib: use pair accessors for copy_*_user routines · 23e94994
      Will Deacon 提交于
      The AArch64 instruction set contains load/store pair memory accessors,
      so use these in our copy_*_user routines to transfer 16 bytes per
      iteration.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      23e94994
    • C
      arm64: Better native ptrace support for compat tasks · 5d220ff9
      Catalin Marinas 提交于
      The compat ptrace interface allows access to the TLS register, hardware
      breakpoints and watchpoints, syscall number. However, a native task
      using the native ptrace interface to debug compat tasks (e.g. multi-arch
      gdb) only has access to the general and VFP register sets. The compat
      ptrace interface cannot be accessed from a native task.
      
      This patch adds a new user_aarch32_ptrace_view which contains the TLS,
      hardware breakpoint/watchpoint and syscall number regsets in addition to
      the existing GPR and VFP regsets. This view is backwards compatible with
      the previous kernels. Core dumping of 32-bit tasks and compat ptrace are
      not affected since the original user_aarch32_view is preserved.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: NYao Qi <yao.qi@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      5d220ff9
    • O
      arm64: enable more compressed Image formats · 0723c05f
      Olof Johansson 提交于
      Plumb up Makefile arguments for the already supported formats in the kbuild
      system: lz4, bzip2, lzma, and lzo.
      
      Note that just as with Image.gz, these images are not self-decompressing and
      the booting firmware still needs to handle decompression before launching the
      kernel image.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      0723c05f
    • C
      arm64: Add support for hardware updates of the access and dirty pte bits · 2f4b829c
      Catalin Marinas 提交于
      The ARMv8.1 architecture extensions introduce support for hardware
      updates of the access and dirty information in page table entries. With
      TCR_EL1.HA enabled, when the CPU accesses an address with the PTE_AF bit
      cleared in the page table, instead of raising an access flag fault the
      CPU sets the actual page table entry bit. To ensure that kernel
      modifications to the page tables do not inadvertently revert a change
      introduced by hardware updates, the exclusive monitor (ldxr/stxr) is
      adopted in the pte accessors.
      
      When TCR_EL1.HD is enabled, a write access to a memory location with the
      DBM (Dirty Bit Management) bit set in the corresponding pte
      automatically clears the read-only bit (AP[2]). Such DBM bit maps onto
      the Linux PTE_WRITE bit and to check whether a writable (DBM set) page
      is dirty, the kernel tests the PTE_RDONLY bit. In order to allow
      read-only and dirty pages, the kernel needs to preserve the software
      dirty bit. The hardware dirty status is transferred to the software
      dirty bit in ptep_set_wrprotect() (using load/store exclusive loop) and
      pte_modify().
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      2f4b829c
    • M
      arm64: remove dead code · b08d4640
      Mark Salter 提交于
      Commit 68234df4 ("arm64: kill flush_cache_all()") removed
      soft_reset() from the kernel. This was the only caller of
      setup_mm_for_reboot(), so remove that also.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      b08d4640
    • W
      arm64: move update_mmu_cache() into asm/pgtable.h · cba3574f
      Will Deacon 提交于
      Mark Brown reported an allnoconfig build failure in -next:
      
        Today's linux-next fails to build an arm64 allnoconfig due to "mm:
        make GUP handle pfn mapping unless FOLL_GET is requested" which
        causes:
      
        >       arm64-allnoconfig
        > ../mm/gup.c:51:4: error: implicit declaration of function
          'update_mmu_cache' [-Werror=implicit-function-declaration]
      
      Fix the error by moving the function to asm/pgtable.h, as is the case
      for most other architectures.
      Reported-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      cba3574f
    • R
      arm64: consolidate __swiotlb_mmap · aaf6f2f0
      Robin Murphy 提交于
      Since commit 9d3bfbb4 ("arm64: Combine coherent and non-coherent
      swiotlb dma_ops"), __dma_common_mmap is no longer shared between two
      callers, so roll it into the remaining one.
      Signed-off-by: NRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      aaf6f2f0
    • D
      arm64: Remove unused macros from assembler.h · d3127afa
      Daniel Thompson 提交于
      Commit 68234df4 ("arm64: kill flush_cache_all()") removed the
      only users of these macros.
      Signed-off-by: NDaniel Thompson <daniel.thompson@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      d3127afa
    • R
      arm64: modify the dump mem for 64 bit addresses · e147ae6d
      Rohit Thapliyal 提交于
      On 64bit kernel, the dump_mem gives 32 bit addresses
      on the stack dump. This gives unorganized information regarding
      the 64bit values on the stack. Hence, modified to get a complete 64bit memory
      dump.
      
      With patch:
      [   93.534801] Process insmod (pid: 1587, stack limit = 0xffffffc976be4058)
      [   93.541441] Stack: (0xffffffc976be7cf0 to 0xffffffc976be8000)
      [   93.547136] 7ce0:                                   ffffffc976be7d00 ffffffc00008163c
      [   93.554898] 7d00: ffffffc976be7d40 ffffffc0000f8a44 ffffffc00098ef38 ffffffbffc000088
      [   93.562659] 7d20: ffffffc00098ef50 ffffffbffc0000c0 0000000000000001 ffffffbffc000070
      [   93.570419] 7d40: ffffffc976be7e40 ffffffc0000f935c 0000000000000000 000000002b424090
      [   93.578179] 7d60: 000000002b424010 0000007facc555f4 0000000080000000 0000000000000015
      [   93.585937] 7d80: 0000000000000116 0000000000000069 ffffffc00097b000 ffffffc976be4000
      [   93.593694] 7da0: 0000000000000064 0000000000000072 000000000000006e 000000000000003f
      [   93.601453] 7dc0: 000000000000feff 000000000000fff1 ffffffbffc002028 0000000000000124
      [   93.609211] 7de0: ffffffc976be7e10 0000000000000001 ffffff8000000000 ffffffbbffff0000
      [   93.616969] 7e00: ffffffc976be7e60 0000000000000000 0000000000000000 0000000000000000
      [   93.624726] 7e20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      [   93.632484] 7e40: 0000007fcc474550 ffffffc0000841ec 000000002b424010 0000007facda0710
      [   93.640241] 7e60: ffffffffffffffff ffffffc0000be6dc ffffff80007d2000 000000000001c010
      [   93.647999] 7e80: ffffff80007e0ae0 ffffff80007e09d0 ffffff80007edf70 0000000000000288
      [   93.655757] 7ea0: 00000000000002e8 0000000000000000 0000000000000000 0000001c0000001b
      [   93.663514] 7ec0: 0000000000000009 0000000000000007 000000002b424090 000000000001c010
      [   93.671272] 7ee0: 000000002b424010 0000007faccd3a48 0000000000000000 0000000000000000
      [   93.679030] 7f00: 0000007fcc4743f8 0000007fcc4743f8 0000000000000069 0000000000000003
      [   93.686787] 7f20: 0101010101010101 0000000000000004 0000000000000020 00000000000003f3
      [   93.694544] 7f40: 0000007facb95664 0000007facda7030 0000007facc555d0 0000000000498378
      [   93.702301] 7f60: 0000000000000000 000000002b424010 0000007facda0710 000000002b424090
      [   93.710058] 7f80: 0000007fcc474698 0000000000498000 0000007fcc474ebb 0000000000474f58
      [   93.717815] 7fa0: 0000000000498000 0000000000000000 0000000000000000 0000007fcc474550
      [   93.725573] 7fc0: 00000000004104bc 0000007fcc474430 0000007facc555f4 0000000080000000
      [   93.733330] 7fe0: 000000002b424090 0000000000000069 0950020128000244 4104000008000004
      [   93.741084] Call trace:
      
      The above output makes a debugger life a lot more easier.
      Signed-off-by: NRohit Thapliyal <r.thapliyal@samsung.com>
      Signed-off-by: NManinder Singh <maninder1.s@samsung.com>
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      e147ae6d
    • S
      arm64: perf: replace arch_find_n_match_cpu_physical_id with of_cpu_device_node_get · d09ce834
      Sudeep Holla 提交于
      arch_find_n_match_cpu_physical_id parses the device tree to get the
      device node for a given logical cpu index. However, since ARM PMUs get
      probed after the CPU device nodes are stashed while registering the
      cpus, we can use of_cpu_device_node_get to avoid another DT parse.
      
      This patch replaces arch_find_n_match_cpu_physical_id with
      of_cpu_device_node_get to reuse the stashed value directly instead.
      
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: NSudeep Holla <sudeep.holla@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      d09ce834
    • S
      arm64: perf: Remove unnecessary printk · 2d23ed04
      Suzuki K. Poulose 提交于
      ARM64 pmu prints an error message in event_init() when
      no hardware PMU is available. This is pretty annoying as
      it keeps printing the message for every single trial, flooding
      the kernel logs, unnecessarily. The return code is sufficient for
      the user to figure out the reason.
      Signed-off-by: NSuzuki K. Poulose <suzuki.poulose@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      2d23ed04
  2. 22 7月, 2015 2 次提交
  3. 18 7月, 2015 1 次提交
  4. 10 7月, 2015 1 次提交
    • M
      arm64: entry32: remove pointless register assignment · ad2daa85
      Mark Rutland 提交于
      We currently set x27 in compat_sys_sigreturn_wrapper and
      compat_sys_rt_sigreturn_wrapper, similarly to what we do with r8/why on
      32-bit ARM, in an attempt to prevent sigreturns from being restarted.
      
      However, on arm64 we have always used pt_regs::syscallno for syscall
      restarting (for both native and compat tasks), and x27 is never
      inspected again before being overwritten in kernel_exit.
      
      This patch removes the pointless register assignments.
      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>
      ad2daa85
  5. 09 7月, 2015 4 次提交
  6. 08 7月, 2015 1 次提交
  7. 07 7月, 2015 4 次提交
  8. 04 7月, 2015 1 次提交
  9. 03 7月, 2015 2 次提交
  10. 02 7月, 2015 1 次提交
  11. 01 7月, 2015 4 次提交
  12. 27 6月, 2015 1 次提交
  13. 26 6月, 2015 2 次提交
  14. 25 6月, 2015 3 次提交