1. 08 2月, 2017 1 次提交
  2. 27 1月, 2017 1 次提交
    • P
      arm64: skip register_cpufreq_notifier on ACPI-based systems · 606f4226
      Prashanth Prakash 提交于
      On ACPI based systems where the topology is setup using the API
      store_cpu_topology, at the moment we do not have necessary code
      to parse cpu capacity and handle cpufreq notifier, thus
      resulting in a kernel panic.
      
      Stack:
              init_cpu_capacity_callback+0xb4/0x1c8
              notifier_call_chain+0x5c/0xa0
              __blocking_notifier_call_chain+0x58/0xa0
              blocking_notifier_call_chain+0x3c/0x50
              cpufreq_set_policy+0xe4/0x328
              cpufreq_init_policy+0x80/0x100
              cpufreq_online+0x418/0x710
              cpufreq_add_dev+0x118/0x180
              subsys_interface_register+0xa4/0xf8
              cpufreq_register_driver+0x1c0/0x298
              cppc_cpufreq_init+0xdc/0x1000 [cppc_cpufreq]
              do_one_initcall+0x5c/0x168
              do_init_module+0x64/0x1e4
              load_module+0x130c/0x14d0
              SyS_finit_module+0x108/0x120
              el0_svc_naked+0x24/0x28
      
      Fixes: 7202bde8 ("arm64: parse cpu capacity-dmips-mhz from DT")
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NPrashanth Prakash <pprakash@codeaurora.org>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      606f4226
  3. 23 1月, 2017 1 次提交
  4. 19 1月, 2017 6 次提交
  5. 18 1月, 2017 2 次提交
  6. 17 1月, 2017 1 次提交
    • A
      arm64: Fix swiotlb fallback allocation · 524dabe1
      Alexander Graf 提交于
      Commit b67a8b29 introduced logic to skip swiotlb allocation when all memory
      is DMA accessible anyway.
      
      While this is a great idea, __dma_alloc still calls swiotlb code unconditionally
      to allocate memory when there is no CMA memory available. The swiotlb code is
      called to ensure that we at least try get_free_pages().
      
      Without initialization, swiotlb allocation code tries to access io_tlb_list
      which is NULL. That results in a stack trace like this:
      
        Unable to handle kernel NULL pointer dereference at virtual address 00000000
        [...]
        [<ffff00000845b908>] swiotlb_tbl_map_single+0xd0/0x2b0
        [<ffff00000845be94>] swiotlb_alloc_coherent+0x10c/0x198
        [<ffff000008099dc0>] __dma_alloc+0x68/0x1a8
        [<ffff000000a1b410>] drm_gem_cma_create+0x98/0x108 [drm]
        [<ffff000000abcaac>] drm_fbdev_cma_create_with_funcs+0xbc/0x368 [drm_kms_helper]
        [<ffff000000abcd84>] drm_fbdev_cma_create+0x2c/0x40 [drm_kms_helper]
        [<ffff000000abc040>] drm_fb_helper_initial_config+0x238/0x410 [drm_kms_helper]
        [<ffff000000abce88>] drm_fbdev_cma_init_with_funcs+0x98/0x160 [drm_kms_helper]
        [<ffff000000abcf90>] drm_fbdev_cma_init+0x40/0x58 [drm_kms_helper]
        [<ffff000000b47980>] vc4_kms_load+0x90/0xf0 [vc4]
        [<ffff000000b46a94>] vc4_drm_bind+0xec/0x168 [vc4]
        [...]
      
      Thankfully swiotlb code just learned how to not do allocations with the FORCE_NO
      option. This patch configures the swiotlb code to use that if we decide not to
      initialize the swiotlb framework.
      
      Fixes: b67a8b29 ("arm64: mm: only initialize swiotlb when necessary")
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      CC: Jisheng Zhang <jszhang@marvell.com>
      CC: Geert Uytterhoeven <geert+renesas@glider.be>
      CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      524dabe1
  7. 13 1月, 2017 2 次提交
  8. 11 1月, 2017 1 次提交
  9. 10 1月, 2017 1 次提交
  10. 05 1月, 2017 2 次提交
  11. 04 1月, 2017 3 次提交
  12. 02 1月, 2017 2 次提交
  13. 30 12月, 2016 1 次提交
    • S
      arm64: dts: vexpress: Support GICC_DIR operations · 1dff32d7
      Sudeep Holla 提交于
      The GICv2 CPU interface registers span across 8K, not 4K as indicated in
      the DT.  Only the GICC_DIR register is located after the initial 4K
      boundary, leaving a functional system but without support for separately
      EOI'ing and deactivating interrupts.
      
      After this change the system supports split priority drop and interrupt
      deactivation. This patch is based on similar one from Christoffer Dall:
      commit 368400e2 ("ARM: dts: vexpress: Support GICC_DIR operations")
      Signed-off-by: NSudeep Holla <sudeep.holla@arm.com>
      1dff32d7
  14. 29 12月, 2016 1 次提交
  15. 27 12月, 2016 1 次提交
  16. 25 12月, 2016 2 次提交
  17. 21 12月, 2016 3 次提交
  18. 19 12月, 2016 1 次提交
  19. 15 12月, 2016 1 次提交
  20. 14 12月, 2016 1 次提交
  21. 13 12月, 2016 1 次提交
  22. 09 12月, 2016 1 次提交
    • M
      arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest · 21cbe3cc
      Marc Zyngier 提交于
      The ARMv8 architecture allows the cycle counter to be configured
      by setting PMSELR_EL0.SEL==0x1f and then accessing PMXEVTYPER_EL0,
      hence accessing PMCCFILTR_EL0. But it disallows the use of
      PMSELR_EL0.SEL==0x1f to access the cycle counter itself through
      PMXEVCNTR_EL0.
      
      Linux itself doesn't violate this rule, but we may end up with
      PMSELR_EL0.SEL being set to 0x1f when we enter a guest. If that
      guest accesses PMXEVCNTR_EL0, the access may UNDEF at EL1,
      despite the guest not having done anything wrong.
      
      In order to avoid this unfortunate course of events (haha!), let's
      sanitize PMSELR_EL0 on guest entry. This ensures that the guest
      won't explode unexpectedly.
      
      Cc: stable@vger.kernel.org #4.6+
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      21cbe3cc
  23. 08 12月, 2016 4 次提交