1. 12 10月, 2017 1 次提交
    • V
      ARC: unbork module link errors with !CONFIG_ARC_HAS_LLSC · fdbed196
      Vineet Gupta 提交于
      |  SYSMAP  System.map
      |  Building modules, stage 2.
      |  MODPOST 18 modules
      |ERROR: "smp_atomic_ops_lock" [drivers/gpu/drm/drm_kms_helper.ko] undefined!
      |ERROR: "smp_bitops_lock" [drivers/gpu/drm/drm_kms_helper.ko] undefined!
      |ERROR: "smp_atomic_ops_lock" [drivers/gpu/drm/drm.ko] undefined!
      | ERROR: "smp_bitops_lock" [drivers/gpu/drm/drm.ko] undefined!
      |../scripts/Makefile.modpost:91: recipe for target '__modpost' failed
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      fdbed196
  2. 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
  3. 28 2月, 2017 2 次提交
  4. 25 1月, 2017 2 次提交
    • 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
  5. 09 11月, 2016 1 次提交
    • Y
      ARC: IRQ: Do not use hwirq as virq and vice versa · 34e71e4c
      Yuriy Kolerov 提交于
      This came up when reviewing code to address missing IRQ affinity
      setting in AXS103 platform and/or implementing hierarchical IRQ domains
      
      - smp_ipi_irq_setup() callers pass hwirq but in turn calls
        request_percpu_irq() which expects a linux virq. So invoke
        irq_find_mapping() to do the conversion
        (also explicitify this in code by renaming the args appropriately)
      
      - idu_of_init()/idu_cascade_isr() were similarly using linux virq where
        hwirq is expected, so do the conversion using irqd_to_hwirq() helper
      Signed-off-by: NYuriy Kolerov <yuriy.kolerov@synopsys.com>
      [vgupta: made changelog a bit concise a bit]
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      34e71e4c
  6. 01 11月, 2016 1 次提交
    • N
      ARC: [SMP] avoid overriding present cpumask · 8f6d9eb2
      Noam Camus 提交于
      At smp_prepare_cpus() we set present cpu mask as part of init
      for all CPUs at range [0-max_cpus].
      This is done without checking if this mask is already being set.
      At platform of eznps this mask is already being initialized at
      smp_init_cpus() by using hook plat_smp_ops.init_early_smp().
      So to avoid overriding of present cpu mask we check the number of
      bits which are set in this mask. At the begin only bit for boot CPU
      is set so if number of bits already set is no more than one we can be
      assure that there is no overriding of this mask.
      Signed-off-by: NNoam Camus <noamca@mellanox.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      8f6d9eb2
  7. 09 5月, 2016 3 次提交
  8. 02 3月, 2016 1 次提交
    • T
      arch/hotplug: Call into idle with a proper state · fc6d73d6
      Thomas Gleixner 提交于
      Let the non boot cpus call into idle with the corresponding hotplug state, so
      the hotplug core can handle the further bringup. That's a first step to
      convert the boot side of the hotplugged cpus to do all the synchronization
      with the other side through the state machine. For now it'll only start the
      hotplug thread and kick the full bringup of the cpu.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: linux-arch@vger.kernel.org
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Rafael Wysocki <rafael.j.wysocki@intel.com>
      Cc: "Srivatsa S. Bhat" <srivatsa@mit.edu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Sebastian Siewior <bigeasy@linutronix.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Paul McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul Turner <pjt@google.com>
      Link: http://lkml.kernel.org/r/20160226182341.614102639@linutronix.deSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      fc6d73d6
  9. 24 2月, 2016 1 次提交
  10. 17 12月, 2015 2 次提交
  11. 28 10月, 2015 3 次提交
    • V
      ARC: smp: Introduce smp hook @init_irq_cpu called for all cores · 286130eb
      Vineet Gupta 提交于
      Note this is not part of platform owned static machine_desc,
      but more of device owned plat_smp_ops (rather misnamed) which a IPI
      provider or some such typically defines.
      
      This will help us seperate out the IPI registration from platform
      specific init_cpu_smp() into device specific init_irq_cpu()
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      286130eb
    • V
      ARC: smp: Rename platform hook @init_smp -> @init_cpu_smp · 8721a7f5
      Vineet Gupta 提交于
      This conveys better that it is called for each cpu
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      8721a7f5
    • V
      ARC: smp: Introduce smp hook @init_early_smp for Master core · e55af4da
      Vineet Gupta 提交于
      This adds a platform agnostic early SMP init hook which is called on
      Master core before calling setup_processor()
      
        setup_arch()
           smp_init_cpus()
               smp_ops.init_early_smp()
           ...
           setup_processor()
      
      How this helps:
       - Used for one time init of certain SMP centric IP blocks, before
         calling setup_processor() which probes various bits of core,
         possibly including this block
      
       - Currently platforms need to call this IP block init from their
         init routines, which doesn't make sense as this is specific to ARC
         core and not platform and otherwise requires copy/paste in all
         (and hence a possible point of failure)
      
      e.g. MCIP init is called from 2 platforms currently (axs10x and sim)
      which will go away once we have this.
      
      This change only adds the hooks but they are empty for now. Next commit
      will populate them and remove the explicit init calls from platforms.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      e55af4da
  12. 17 10月, 2015 1 次提交
  13. 22 6月, 2015 2 次提交
  14. 19 6月, 2015 1 次提交
  15. 02 2月, 2015 1 次提交
  16. 12 12月, 2014 1 次提交
  17. 27 9月, 2014 1 次提交
  18. 23 7月, 2014 2 次提交
  19. 26 6月, 2014 1 次提交
  20. 03 6月, 2014 1 次提交
  21. 23 12月, 2013 5 次提交
  22. 07 11月, 2013 1 次提交
  23. 06 11月, 2013 2 次提交
  24. 27 6月, 2013 1 次提交
    • P
      arc: delete __cpuinit usage from all arc files · ce759956
      Paul Gortmaker 提交于
      The __cpuinit type of throwaway sections might have made sense
      some time ago when RAM was more constrained, but now the savings
      do not offset the cost and complications.  For example, the fix in
      commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
      is a good example of the nasty type of bugs that can be created
      with improper use of the various __init prefixes.
      
      After a discussion on LKML[1] it was decided that cpuinit should go
      the way of devinit and be phased out.  Once all the users are gone,
      we can then finally remove the macros themselves from linux/init.h.
      
      Note that some harmless section mismatch warnings may result, since
      notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
      are flagged as __cpuinit  -- so if we remove the __cpuinit from
      arch specific callers, we will also get section mismatch warnings.
      As an intermediate step, we intend to turn the linux/init.h cpuinit
      content into no-ops as early as possible, since that will get rid
      of these warnings.  In any case, they are temporary and harmless.
      
      This removes all the arch/arc uses of the __cpuinit macros from
      all C files.  Currently arc does not have any __CPUINIT used in
      assembly files.
      
      [1] https://lkml.org/lkml/2013/5/20/589
      
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      ce759956
  25. 08 4月, 2013 1 次提交
  26. 16 2月, 2013 1 次提交