1. 27 4月, 2017 2 次提交
  2. 29 3月, 2017 3 次提交
  3. 20 3月, 2017 2 次提交
  4. 17 3月, 2017 1 次提交
    • J
      ARM: dts: NSP: GPIO reboot open-source · acfa28b3
      Jon Mason 提交于
      The libgpio code pre-sets the GPIO values for the gpio-reset in the
      device tree.  This results in the device being reset during bringup.
      To prevent this pre-setting, use the "open-source" flag in the device
      tree.
      Signed-off-by: NJon Mason <jon.mason@broadcom.com>
      Fixes: b1aaf88b ("ARM: dts: NSP: Add GPIO reboot method to bcm958625hr DTS file")
      Fixes: 10baed1c ("ARM: dts: NSP: Add GPIO reboot method to bcm958625xmc DTS file")
      Fixes: 088e3148 ("ARM: dts: NSP: Add new DT file for bcm958522er")
      Fixes: e3227c12 ("ARM: dts: NSP: Add new DT file for bcm958525er")
      Fixes: 2f8bc002 ("ARM: dts: NSP: Add new DT file for bcm958622hr")
      Fixes: d454c376 ("ARM: dts: NSP: Add new DT file for bcm958623hr")
      Fixes: f27eacf2 ("ARM: dts: NSP: Add new DT file for bcm988312hr")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      acfa28b3
  5. 14 3月, 2017 2 次提交
    • N
      ARM: at91: pm: cpu_idle: switch DDR to power-down mode · 60b89f19
      Nicolas Ferre 提交于
      On some DDR controllers, compatible with the sama5d3 one,
      the sequence to enter/exit/re-enter the self-refresh mode adds
      more constrains than what is currently written in the at91_idle
      driver. An actual access to the DDR chip is needed between exit
      and re-enter of this mode which is somehow difficult to implement.
      This sequence can completely hang the SoC. It is particularly
      experienced on parts which embed a L2 cache if the code run
      between IDLE calls fits in it...
      
      Moreover, as the intention is to enter and exit pretty rapidly
      from IDLE, the power-down mode is a good candidate.
      
      So now we use power-down instead of self-refresh. As we can
      simplify the code for sama5d3 compatible DDR controllers,
      we instantiate a new sama5d3_ddr_standby() function.
      Signed-off-by: NNicolas Ferre <nicolas.ferre@microchip.com>
      Cc: <stable@vger.kernel.org> # v4.1+
      Fixes: 017b5522 ("ARM: at91: Add new binding for sama5d3-ddramc")
      Signed-off-by: NAlexandre Belloni <alexandre.belloni@free-electrons.com>
      60b89f19
    • L
      ARM: dts: add the AB8500 clocks to the device tree · 9aea151f
      Linus Walleij 提交于
      This adds the AB8500 clocks to the device tree using the new
      bindings from the clk subsystem, making audio work again.
      
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      9aea151f
  6. 10 3月, 2017 2 次提交
  7. 09 3月, 2017 2 次提交
  8. 08 3月, 2017 1 次提交
  9. 07 3月, 2017 1 次提交
    • M
      arm: KVM: Survive unknown traps from guests · f050fe7a
      Mark Rutland 提交于
      Currently we BUG() if we see a HSR.EC value we don't recognise. As
      configurable disables/enables are added to the architecture (controlled
      by RES1/RES0 bits respectively), with associated synchronous exceptions,
      it may be possible for a guest to trigger exceptions with classes that
      we don't recognise.
      
      While we can't service these exceptions in a manner useful to the guest,
      we can avoid bringing down the host. Per ARM DDI 0406C.c, all currently
      unallocated HSR EC encodings are reserved, and per ARM DDI
      0487A.k_iss10775, page G6-4395, EC values within the range 0x00 - 0x2c
      are reserved for future use with synchronous exceptions, and EC values
      within the range 0x2d - 0x3f may be used for either synchronous or
      asynchronous exceptions.
      
      The patch makes KVM handle any unknown EC by injecting an UNDEFINED
      exception into the guest, with a corresponding (ratelimited) warning in
      the host dmesg. We could later improve on this with with a new (opt-in)
      exit to the host userspace.
      
      Cc: Dave Martin <dave.martin@arm.com>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Reviewed-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      f050fe7a
  10. 06 3月, 2017 7 次提交
  11. 05 3月, 2017 2 次提交
    • G
      ARM: OMAP2+: Release device node after it is no longer needed. · b92675d9
      Guenter Roeck 提交于
      The device node returned by of_find_node_by_name() needs to be released
      after it is no longer needed to avoid a device node leak.
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b92675d9
    • G
      ARM: OMAP2+: Fix device node reference counts · 10e5778f
      Guenter Roeck 提交于
      After commit 0549bde0 ("of: fix of_node leak caused in
      of_find_node_opts_by_path"), the following error may be
      reported when running omap images.
      
      OF: ERROR: Bad of_node_put() on /ocp@68000000
      CPU: 0 PID: 0 Comm: swapper Not tainted 4.10.0-rc7-next-20170210 #1
      Hardware name: Generic OMAP3-GP (Flattened Device Tree)
      [<c0310604>] (unwind_backtrace) from [<c030bbf4>] (show_stack+0x10/0x14)
      [<c030bbf4>] (show_stack) from [<c05add8c>] (dump_stack+0x98/0xac)
      [<c05add8c>] (dump_stack) from [<c05af1b0>] (kobject_release+0x48/0x7c)
      [<c05af1b0>] (kobject_release)
      	from [<c0ad1aa4>] (of_find_node_by_name+0x74/0x94)
      [<c0ad1aa4>] (of_find_node_by_name)
      	from [<c1215bd4>] (omap3xxx_hwmod_is_hs_ip_block_usable+0x24/0x2c)
      [<c1215bd4>] (omap3xxx_hwmod_is_hs_ip_block_usable) from
      [<c1215d5c>] (omap3xxx_hwmod_init+0x180/0x274)
      [<c1215d5c>] (omap3xxx_hwmod_init)
      	from [<c120faa8>] (omap3_init_early+0xa0/0x11c)
      [<c120faa8>] (omap3_init_early)
      	from [<c120fb2c>] (omap3430_init_early+0x8/0x30)
      [<c120fb2c>] (omap3430_init_early)
      	from [<c1204710>] (setup_arch+0xc04/0xc34)
      [<c1204710>] (setup_arch) from [<c1200948>] (start_kernel+0x68/0x38c)
      [<c1200948>] (start_kernel) from [<8020807c>] (0x8020807c)
      
      of_find_node_by_name() drops the reference to the passed device node.
      The commit referenced above exposes this problem.
      
      To fix the problem, use of_get_child_by_name() instead of
      of_find_node_by_name(); of_get_child_by_name() does not drop
      the reference count of passed device nodes. While semantically
      different, we only look for immediate children of the passed
      device node, so of_get_child_by_name() is a more appropriate
      function to use anyway.
      
      Release the reference to the device node obtained with
      of_get_child_by_name() after it is no longer needed to avoid
      another device node leak.
      
      While at it, clean up the code and change the return type of
      omap3xxx_hwmod_is_hs_ip_block_usable() to bool to match its use
      and the return type of of_device_is_available().
      
      Cc: Qi Hou <qi.hou@windriver.com>
      Cc: Peter Rosin <peda@axentia.se>
      Cc: Rob Herring <robh@kernel.org>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      10e5778f
  12. 03 3月, 2017 4 次提交
    • I
      sched/headers: Move task_struct::signal and task_struct::sighand types and... · c3edc401
      Ingo Molnar 提交于
      sched/headers: Move task_struct::signal and task_struct::sighand types and accessors into <linux/sched/signal.h>
      
      task_struct::signal and task_struct::sighand are pointers, which would normally make it
      straightforward to not define those types in sched.h.
      
      That is not so, because the types are accompanied by a myriad of APIs (macros and inline
      functions) that dereference them.
      
      Split the types and the APIs out of sched.h and move them into a new header, <linux/sched/signal.h>.
      
      With this change sched.h does not know about 'struct signal' and 'struct sighand' anymore,
      trying to put accessors into sched.h as a test fails the following way:
      
        ./include/linux/sched.h: In function ‘test_signal_types’:
        ./include/linux/sched.h:2461:18: error: dereferencing pointer to incomplete type ‘struct signal_struct’
                          ^
      
      This reduces the size and complexity of sched.h significantly.
      
      Update all headers and .c code that relied on getting the signal handling
      functionality from <linux/sched.h> to include <linux/sched/signal.h>.
      
      The list of affected files in the preparatory patch was partly generated by
      grepping for the APIs, and partly by doing coverage build testing, both
      all[yes|mod|def|no]config builds on 64-bit and 32-bit x86, and an array of
      cross-architecture builds.
      
      Nevertheless some (trivial) build breakage is still expected related to rare
      Kconfig combinations and in-flight patches to various kernel code, but most
      of it should be handled by this patch.
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      c3edc401
    • I
      sched/headers: Move task->mm handling methods to <linux/sched/mm.h> · 68e21be2
      Ingo Molnar 提交于
      Move the following task->mm helper APIs into a new header file,
      <linux/sched/mm.h>, to further reduce the size and complexity
      of <linux/sched.h>.
      
      Here are how the APIs are used in various kernel files:
      
        # mm_alloc():
        arch/arm/mach-rpc/ecard.c
        fs/exec.c
        include/linux/sched/mm.h
        kernel/fork.c
      
        # __mmdrop():
        arch/arc/include/asm/mmu_context.h
        include/linux/sched/mm.h
        kernel/fork.c
      
        # mmdrop():
        arch/arm/mach-rpc/ecard.c
        arch/m68k/sun3/mmu_emu.c
        arch/x86/mm/tlb.c
        drivers/gpu/drm/amd/amdkfd/kfd_process.c
        drivers/gpu/drm/i915/i915_gem_userptr.c
        drivers/infiniband/hw/hfi1/file_ops.c
        drivers/vfio/vfio_iommu_spapr_tce.c
        fs/exec.c
        fs/proc/base.c
        fs/proc/task_mmu.c
        fs/proc/task_nommu.c
        fs/userfaultfd.c
        include/linux/mmu_notifier.h
        include/linux/sched/mm.h
        kernel/fork.c
        kernel/futex.c
        kernel/sched/core.c
        mm/khugepaged.c
        mm/ksm.c
        mm/mmu_context.c
        mm/mmu_notifier.c
        mm/oom_kill.c
        virt/kvm/kvm_main.c
      
        # mmdrop_async_fn():
        include/linux/sched/mm.h
      
        # mmdrop_async():
        include/linux/sched/mm.h
        kernel/fork.c
      
        # mmget_not_zero():
        fs/userfaultfd.c
        include/linux/sched/mm.h
        mm/oom_kill.c
      
        # mmput():
        arch/arc/include/asm/mmu_context.h
        arch/arc/kernel/troubleshoot.c
        arch/frv/mm/mmu-context.c
        arch/powerpc/platforms/cell/spufs/context.c
        arch/sparc/include/asm/mmu_context_32.h
        drivers/android/binder.c
        drivers/gpu/drm/etnaviv/etnaviv_gem.c
        drivers/gpu/drm/i915/i915_gem_userptr.c
        drivers/infiniband/core/umem.c
        drivers/infiniband/core/umem_odp.c
        drivers/infiniband/core/uverbs_main.c
        drivers/infiniband/hw/mlx4/main.c
        drivers/infiniband/hw/mlx5/main.c
        drivers/infiniband/hw/usnic/usnic_uiom.c
        drivers/iommu/amd_iommu_v2.c
        drivers/iommu/intel-svm.c
        drivers/lguest/lguest_user.c
        drivers/misc/cxl/fault.c
        drivers/misc/mic/scif/scif_rma.c
        drivers/oprofile/buffer_sync.c
        drivers/vfio/vfio_iommu_type1.c
        drivers/vhost/vhost.c
        drivers/xen/gntdev.c
        fs/exec.c
        fs/proc/array.c
        fs/proc/base.c
        fs/proc/task_mmu.c
        fs/proc/task_nommu.c
        fs/userfaultfd.c
        include/linux/sched/mm.h
        kernel/cpuset.c
        kernel/events/core.c
        kernel/events/uprobes.c
        kernel/exit.c
        kernel/fork.c
        kernel/ptrace.c
        kernel/sys.c
        kernel/trace/trace_output.c
        kernel/tsacct.c
        mm/memcontrol.c
        mm/memory.c
        mm/mempolicy.c
        mm/migrate.c
        mm/mmu_notifier.c
        mm/nommu.c
        mm/oom_kill.c
        mm/process_vm_access.c
        mm/rmap.c
        mm/swapfile.c
        mm/util.c
        virt/kvm/async_pf.c
      
        # mmput_async():
        include/linux/sched/mm.h
        kernel/fork.c
        mm/oom_kill.c
      
        # get_task_mm():
        arch/arc/kernel/troubleshoot.c
        arch/powerpc/platforms/cell/spufs/context.c
        drivers/android/binder.c
        drivers/gpu/drm/etnaviv/etnaviv_gem.c
        drivers/infiniband/core/umem.c
        drivers/infiniband/core/umem_odp.c
        drivers/infiniband/hw/mlx4/main.c
        drivers/infiniband/hw/mlx5/main.c
        drivers/infiniband/hw/usnic/usnic_uiom.c
        drivers/iommu/amd_iommu_v2.c
        drivers/iommu/intel-svm.c
        drivers/lguest/lguest_user.c
        drivers/misc/cxl/fault.c
        drivers/misc/mic/scif/scif_rma.c
        drivers/oprofile/buffer_sync.c
        drivers/vfio/vfio_iommu_type1.c
        drivers/vhost/vhost.c
        drivers/xen/gntdev.c
        fs/proc/array.c
        fs/proc/base.c
        fs/proc/task_mmu.c
        include/linux/sched/mm.h
        kernel/cpuset.c
        kernel/events/core.c
        kernel/exit.c
        kernel/fork.c
        kernel/ptrace.c
        kernel/sys.c
        kernel/trace/trace_output.c
        kernel/tsacct.c
        mm/memcontrol.c
        mm/memory.c
        mm/mempolicy.c
        mm/migrate.c
        mm/mmu_notifier.c
        mm/nommu.c
        mm/util.c
      
        # mm_access():
        fs/proc/base.c
        include/linux/sched/mm.h
        kernel/fork.c
        mm/process_vm_access.c
      
        # mm_release():
        arch/arc/include/asm/mmu_context.h
        fs/exec.c
        include/linux/sched/mm.h
        include/uapi/linux/sched.h
        kernel/exit.c
        kernel/fork.c
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      68e21be2
    • L
      ARM: deconfig: fix the moxart defconfig · 332524ea
      Linus Walleij 提交于
      The moxart defconfig wasn't even building a kernel for Moxart,
      it was building a kernel for V4T on the nothing platform. Switch
      to MULTI_V4 and keep the right drivers, update a few selections.
      Now it (presumably) builds a minimalist Moxart kernel again.
      
      Cc: Jonas Jensen <jonas.jensen@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      332524ea
    • L
      ARM: ux500: resume the second core properly · 3131d970
      Linus Walleij 提交于
      The pen hold/release scheme was copied over to Ux500 from the ARM
      reference designs like most of these at the time. It is not needed
      at all, and was mostly removed in commit c00def71
      "ARM: ux500: simplify secondary CPU boot".
      
      However on the suspend/resume path and hot plug/unplug of CPUs,
      the .cpu_die() callback was still waiting for the pen to be
      released which made it spin forever and the second core never come
      back online after suspend/resume.
      
      Fix this by simply replacing the strange custom .cpu_die() with
      a oneline wfi() just like e.g. the qcom platform does. This fixes
      the issue and makes the second core come up properly after
      suspend/resume.
      
      As a side effect, this rids us of the completely surplus local
      setup.h and hotplug.c files, and we just compile this into platsmp.c
      with everything else SMP.
      
      Cc: stable@vger.kernel.org
      Fixes: c00def71 ("ARM: ux500: simplify secondary CPU boot")
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      3131d970
  13. 02 3月, 2017 11 次提交