1. 04 4月, 2017 3 次提交
    • D
      ARM: OMAP2+: omap_device: Sync omap_device and pm_runtime after probe defer · 04abaf07
      Dave Gerlach 提交于
      Starting from commit 5de85b9d ("PM / runtime: Re-init runtime PM
      states at probe error and driver unbind") pm_runtime core now changes
      device runtime_status back to after RPM_SUSPENDED after a probe defer.
      Certain OMAP devices make use of "ti,no-idle-on-init" flag which causes
      omap_device_enable to be called during the BUS_NOTIFY_ADD_DEVICE event
      during probe, along with pm_runtime_set_active.
      
      This call to pm_runtime_set_active typically will prevent a call to
      pm_runtime_get in a driver probe function from re-enabling the
      omap_device. However, in the case of a probe defer that happens before
      the driver probe function is able to run, such as a missing pinctrl
      states defer, pm_runtime_reinit will set the device as RPM_SUSPENDED and
      then once driver probe is actually able to run, pm_runtime_get will see
      the device as suspended and call through to the omap_device layer,
      attempting to enable the already enabled omap_device and causing errors
      like this:
      
      omap-gpmc 50000000.gpmc: omap_device: omap_device_enable() called from
      invalid state 1
      omap-gpmc 50000000.gpmc: use pm_runtime_put_sync_suspend() in driver?
      
      We can avoid this error by making sure the pm_runtime status of a device
      matches the omap_device state before a probe attempt. By extending the
      omap_device bus notifier to act on the BUS_NOTIFY_BIND_DRIVER event we
      can check if a device is enabled in omap_device but with a pm_runtime
      status of RPM_SUSPENDED and once again mark the device as RPM_ACTIVE to
      avoid a second incorrect call to omap_device_enable.
      
      Fixes: 5de85b9d ("PM / runtime: Re-init runtime PM states at probe
      error and driver unbind")
      Tested-by: NFranklin S Cooper Jr. <fcooper@ti.com>
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      04abaf07
    • C
      KVM: arm64: Ensure LRs are clear when they should be · 5b0d2cc2
      Christoffer Dall 提交于
      We currently have some code to clear the list registers on GICv3, but we
      never call this code, because the caller got nuked when removing the old
      vgic.  We also used to have a similar GICv2 part, but that got lost in
      the process too.
      
      Let's reintroduce the logic for GICv2 and call the logic when we
      initialize the use of hypervisors on the CPU, for example when first
      loading KVM or when exiting a low power state.
      Reviewed-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      5b0d2cc2
    • S
      kvm: arm/arm64: Fix locking for kvm_free_stage2_pgd · 8b3405e3
      Suzuki K Poulose 提交于
      In kvm_free_stage2_pgd() we don't hold the kvm->mmu_lock while calling
      unmap_stage2_range() on the entire memory range for the guest. This could
      cause problems with other callers (e.g, munmap on a memslot) trying to
      unmap a range. And since we have to unmap the entire Guest memory range
      holding a spinlock, make sure we yield the lock if necessary, after we
      unmap each PUD range.
      
      Fixes: commit d5d8184d ("KVM: ARM: Memory virtualization setup")
      Cc: stable@vger.kernel.org # v3.10+
      Cc: Paolo Bonzini <pbonzin@redhat.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
      [ Avoid vCPU starvation and lockup detector warnings ]
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NSuzuki K Poulose <suzuki.poulose@arm.com>
      Signed-off-by: NChristoffer Dall <cdall@linaro.org>
      8b3405e3
  2. 30 3月, 2017 3 次提交
  3. 28 3月, 2017 2 次提交
    • T
      ARM: omap2+: Revert omap-smp.c changes resetting CPU1 during boot · 351b7c49
      Tony Lindgren 提交于
      Commit 32518852 ("ARM: OMAP4+: Reset CPU1 properly for kexec") started
      unconditionally resetting CPU1 because of a kexec boot issue I was seeing
      earlier on omap4 when doing kexec boot between two different kernel
      versions.
      
      This caused issues on some systems. We should only reset CPU1 as a last
      resort option, and try to avoid it where possible. Doing an unconditional
      CPU1 reset causes issues for example when booting a bootloader configured
      secure OS running on CPU1 as reported by Andrew F. Davis <afd@ti.com>.
      
      We can't completely remove the reset of CPU1 as it would break kexec
      booting from older kernels. But we can limit the CPU1 reset to cases
      where CPU1 is wrongly parked within the memory area used by the booting
      kernel. Then later on we can add support for parking CPU1 for kexec out
      of the SDRAM back to bootrom.
      
      So let's first fix the regression reported by Andrew by making CPU1 reset
      conditional. To do this, we need to:
      
      1. Save configured AUX_CORE_BOOT_1 for later
      
      2. Modify AUX_CORE_BOOT_0 reading code to for HS SoCs to return
         the whole register instead of the CPU mask
      
      3. Check if CPU1 is wrongly parked into the booting kernel by the
         previous kernel and reset if needed
      
      Fixes: 32518852 ("ARM: OMAP4+: Reset CPU1 properly for kexec")
      Reported-by: NAndrew F. Davis <afd@ti.com>
      Cc: Andrew F. Davis <afd@ti.com>
      Cc: Keerthy <j-keerthy@ti.com>
      Cc: Russell King <rmk+kernel@armlinux.org.uk>
      Cc: Santosh Shilimkar <ssantosh@kernel.org>
      Cc: Tero Kristo <t-kristo@ti.com>
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Tested-by: NAndrew F. Davis <afd@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      351b7c49
    • R
      ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend · 9bcf53f3
      Reizer, Eyal 提交于
      mmc2 used for wl12xx was missing the keep-power-in suspend
      parameter. As a result the board couldn't reach suspend state.
      Signed-off-by: NEyal Reizer <eyalr@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      9bcf53f3
  4. 24 3月, 2017 3 次提交
  5. 22 3月, 2017 5 次提交
    • Q
      ARM: sun8i: a33: add operating-points-v2 property to all nodes · ea33c2c2
      Quentin Schulz 提交于
      The OPP are declared as shared but no operating points are declared for
      cpu1, 2 and 3. Thus, the following error happens during the boot:
      
      cpu cpu1: dev_pm_opp_of_get_sharing_cpus: Couldn't find tcpu_dev node.
      
      This patch applies the operating points to each cpu of the A33.
      
      Fixes: 03749eb8 ("ARM: dts: sun8i: add opp-v2 table for A33")
      Signed-off-by: NQuentin Schulz <quentin.schulz@free-electrons.com>
      Acked-by: NChen-Yu Tsai <wens@csie.org>
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      ea33c2c2
    • J
      arm: kprobes: Align stack to 8-bytes in test code · 974310d0
      Jon Medhurst 提交于
      kprobes test cases need to have a stack that is aligned to an 8-byte
      boundary because they call other functions (and the ARM ABI mandates
      that alignment) and because test cases include 64-bit accesses to the
      stack. Unfortunately, GCC doesn't ensure this alignment for inline
      assembler and for the code in question seems to always misalign it by
      pushing just the LR register onto the stack. We therefore need to
      explicitly perform stack alignment at the start of each test case.
      
      Without this fix, some test cases will generate alignment faults on
      systems where alignment is enforced. Even if the kernel is configured to
      handle these faults in software, triggering them is ugly. It also
      exposes limitations in the fault handling code which doesn't cope with
      writes to the stack. E.g. when handling this instruction
      
         strd r6, [sp, #-64]!
      
      the fault handling code will write to a stack location below the SP
      value at the point the fault occurred, which coincides with where the
      exception handler has pushed the saved register context. This results in
      corruption of those registers.
      Signed-off-by: NJon Medhurst <tixy@linaro.org>
      974310d0
    • M
      arm: kprobes: Fix the return address of multiple kretprobes · 06553175
      Masami Hiramatsu 提交于
      This is arm port of commit 737480a0 ("kprobes/x86:
      Fix the return address of multiple kretprobes").
      
      Fix the return address of subsequent kretprobes when multiple
      kretprobes are set on the same function.
      
      For example:
      
        # cd /sys/kernel/debug/tracing
        # echo "r:event1 sys_symlink" > kprobe_events
        # echo "r:event2 sys_symlink" >> kprobe_events
        # echo 1 > events/kprobes/enable
        # ln -s /tmp/foo /tmp/bar
      
       (without this patch)
      
        # cat trace | grep -v ^#
                    ln-82    [000] dn.2    68.446525: event1: (kretprobe_trampoline+0x0/0x18 <- SyS_symlink)
                    ln-82    [000] dn.2    68.447831: event2: (ret_fast_syscall+0x0/0x1c <- SyS_symlink)
      
       (with this patch)
      
        # cat trace | grep -v ^#
                    ln-81    [000] dn.1    39.463469: event1: (ret_fast_syscall+0x0/0x1c <- SyS_symlink)
                    ln-81    [000] dn.1    39.464701: event2: (ret_fast_syscall+0x0/0x1c <- SyS_symlink)
      Signed-off-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Cc: KUMANO Syuhei <kumano.prog@gmail.com>
      Signed-off-by: NJon Medhurst <tixy@linaro.org>
      06553175
    • M
      arm: kprobes: Skip single-stepping in recursing path if possible · 91fc862c
      Masami Hiramatsu 提交于
      Kprobes/arm skips single-stepping (moreover handling the event)
      if the conditional instruction must not be executed. This
      also apply the rule when we hit the recursing kprobe, so
      that kprobe does not count nmissed up in that case.
      Signed-off-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: NJon Medhurst <tixy@linaro.org>
      91fc862c
    • M
      arm: kprobes: Allow to handle reentered kprobe on single-stepping · f3fbd7ec
      Masami Hiramatsu 提交于
      This is arm port of commit 6a5022a5 ("kprobes/x86: Allow to
      handle reentered kprobe on single-stepping")
      
      Since the FIQ handlers can interrupt in the single stepping
      (or preparing the single stepping, do_debug etc.), we should
      consider a kprobe is hit in the NMI handler. Even in that
      case, the kprobe is allowed to be reentered as same as the
      kprobes hit in kprobe handlers
      (KPROBE_HIT_ACTIVE or KPROBE_HIT_SSDONE).
      
      The real issue will happen when a kprobe hit while another
      reentered kprobe is processing (KPROBE_REENTER), because
      we already consumed a saved-area for the previous kprobe.
      Signed-off-by: NMasami Hiramatsu <mhiramat@kernel.org>
      Signed-off-by: NJon Medhurst <tixy@linaro.org>
      f3fbd7ec
  6. 21 3月, 2017 2 次提交
  7. 20 3月, 2017 4 次提交
  8. 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
  9. 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
  10. 10 3月, 2017 2 次提交
  11. 09 3月, 2017 2 次提交
  12. 08 3月, 2017 1 次提交
  13. 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
  14. 06 3月, 2017 5 次提交
  15. 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
  16. 03 3月, 2017 2 次提交
    • 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