1. 29 3月, 2017 3 次提交
  2. 28 3月, 2017 1 次提交
  3. 06 3月, 2017 1 次提交
  4. 03 3月, 2017 1 次提交
    • 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
  5. 02 3月, 2017 7 次提交
  6. 28 2月, 2017 4 次提交
  7. 08 2月, 2017 1 次提交
  8. 07 2月, 2017 13 次提交
  9. 01 2月, 2017 1 次提交
    • F
      sched/cputime: Remove generic asm headers · b672592f
      Frederic Weisbecker 提交于
      cputime_t is now only used by two architectures:
      
      	* powerpc (when CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y)
      	* s390
      
      And since the core doesn't use it anymore, we don't need any arch support
      from the others. So we can remove their stub implementations.
      
      A final cleanup would be to provide an efficient pure arch
      implementation of cputime_to_nsec() for s390 and powerpc and finally
      remove include/linux/cputime.h .
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Stanislaw Gruszka <sgruszka@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Wanpeng Li <wanpeng.li@hotmail.com>
      Link: http://lkml.kernel.org/r/1485832191-26889-36-git-send-email-fweisbec@gmail.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      b672592f
  10. 28 1月, 2017 1 次提交
    • V
      ARC: [arcompact] handle unaligned access delay slot corner case · 9aed02fe
      Vineet Gupta 提交于
      After emulating an unaligned access in delay slot of a branch, we
      pretend as the delay slot never happened - so return back to actual
      branch target (or next PC if branch was not taken).
      
      Curently we did this by handling STATUS32.DE, we also need to clear the
      BTA.T bit, which is disregarded when returning from original misaligned
      exception, but could cause weirdness if it took the interrupt return
      path (in case interrupt was acive too)
      
      One ARC700 customer ran into this when enabling unaligned access fixup
      for kernel mode accesses as well
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      9aed02fe
  11. 26 1月, 2017 1 次提交
  12. 25 1月, 2017 6 次提交
    • V
      ARCv2: smp-boot: wake_flag polling by non-Masters needs to be uncached · 78f824d4
      Vineet Gupta 提交于
      This is needed on HS38 cores, for setting up IO-Coherency aperture properly
      
      The polling could perturb the caches and coherecy fabric which could be
      wrong in the small window when Master is setting up IOC aperture etc
      in arc_cache_init()
      
      We do it only for ARCv2 based builds to not affect EZChip ARCompact
      based platform.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      78f824d4
    • V
      ARC: smp-boot: Decouple Non masters waiting API from jump to entry point · bf02454a
      Vineet Gupta 提交于
      For run-on-reset SMP configs, non master cores call a routine which
      waits until Master gives it a "go" signal (currently using a shared
      mem flag). The same routine then jumps off the well known entry point of
      all non Master cores i.e. @first_lines_of_secondary
      
      This patch moves out the last part into one single place in early boot
      code.
      
      This is better in terms of absraction (the wait API only waits) and
      returns, leaving out the "jump off to" part.
      
      In actual implementation this requires some restructuring of the early
      boot code as well as Master now jumps to BSS setup explicitly,
      vs. falling thru into it before.
      
      Technically this patch doesn't cause any functional change, it just
      moves the ugly #ifdef'ry from assembly code to "C"
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      bf02454a
    • V
      ARCv2: MCIP: update the BCR per current changes · 517e7610
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      517e7610
    • V
      ARC: udelay: fix inline assembler by adding LP_COUNT to clobber list · 36425cd6
      Vineet Gupta 提交于
      commit 3c7c7a2f ("ARC: Don't use "+l" inline asm constraint")
      modified the inline assembly to setup LP_COUNT register manually and NOT
      rely on gcc to do it (with the +l inline assembler contraint hint, now
      being retired in the compiler)
      
      However the fix was flawed as we didn't add LP_COUNT to asm clobber list,
      meaning gcc doesn't know that LP_COUNT or zero-delay-loops are in action
      in the inline asm.
      
      This resulted in some fun - as nested ZOL loops were being generared
      
      | mov lp_count,250000 ;16 # tmp235,
      | lp .L__GCC__LP14 #		<======= OUTER LOOP (gcc generated)
      |   .L14:
      |   ld r2, [r5] # MEM[(volatile u32 *)prephitmp_43], w
      |   dmb 1
      |   breq r2, -1, @.L21 #, w,,
      |   bbit0 r2,1,@.L13 # w,,
      |   ld r4,[r7] ;25 # loops_per_jiffy, loops_per_jiffy
      |   mpymu r3,r4,r6 #, loops_per_jiffy, tmp234
      |
      |   mov lp_count, r3 #		 <====== INNER LOOP (from inline asm)
      |   lp 1f
      | 	 nop
      |   1:
      |   nop_s
      | .L__GCC__LP14: ; loop end, start is @.L14 #,
      
      This caused issues with drivers relying on sane behaviour of udelay
      friends.
      
      With LP_COUNT added to clobber list, gcc doesn't generate the outer
      loop in say above case.
      
      Addresses STAR 9001146134
      Reported-by: NJoao Pinto <jpinto@synopsys.com>
      Fixes: 3c7c7a2f ("ARC: Don't use "+l" inline asm constraint")
      Cc: stable@vger.kernel.org
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      36425cd6
    • Y
      ARCv2: MCIP: Deprecate setting of affinity in Device Tree · 92fdb527
      Yuriy Kolerov 提交于
      Ignore value of interrupt distribution mode for common interrupts in
      IDU since setting of affinity using value from Device Tree is deprecated
      in ARC. Originally it is done in idu_irq_xlate() function and it is
      semantically wrong and does not guaranty that an affinity value will be
      set properly. idu_irq_enable() function is better place for
      initialization of common interrupts.
      
      By default send all common interrupts to all available online CPUs.
      The affinity of common interrupts in IDU must be set manually since
      in some cases the kernel will not call irq_set_affinity() by itself:
      
        1. When the kernel is not configured with support of SMP.
        2. When the kernel is configured with support of SMP but upper
           interrupt controllers does not support setting of the affinity
           and cannot propagate it to IDU.
      Signed-off-by: NYuriy Kolerov <yuriy.kolerov@synopsys.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      92fdb527
    • B
      treewide: Consolidate get_dma_ops() implementations · 815dd187
      Bart Van Assche 提交于
      Introduce a new architecture-specific get_arch_dma_ops() function
      that takes a struct bus_type * argument. Add get_dma_ops() in
      <linux/dma-mapping.h>.
      Signed-off-by: NBart Van Assche <bart.vanassche@sandisk.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: linux-arch@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: x86@kernel.org
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      815dd187