1. 01 3月, 2018 1 次提交
  2. 22 2月, 2018 1 次提交
    • I
      treewide/trivial: Remove ';;$' typo noise · ed7158ba
      Ingo Molnar 提交于
      On lkml suggestions were made to split up such trivial typo fixes into per subsystem
      patches:
      
        --- a/arch/x86/boot/compressed/eboot.c
        +++ b/arch/x86/boot/compressed/eboot.c
        @@ -439,7 +439,7 @@ setup_uga32(void **uga_handle, unsigned long size, u32 *width, u32 *height)
                struct efi_uga_draw_protocol *uga = NULL, *first_uga;
                efi_guid_t uga_proto = EFI_UGA_PROTOCOL_GUID;
                unsigned long nr_ugas;
        -       u32 *handles = (u32 *)uga_handle;;
        +       u32 *handles = (u32 *)uga_handle;
                efi_status_t status = EFI_INVALID_PARAMETER;
                int i;
      
      This patch is the result of the following script:
      
        $ sed -i 's/;;$/;/g' $(git grep -E ';;$'  | grep "\.[ch]:"  | grep -vwE 'for|ia64' | cut -d: -f1 | sort | uniq)
      
      ... followed by manual review to make sure it's all good.
      
      Splitting this up is just crazy talk, let's get over with this and just do it.
      Reported-by: NPavel Machek <pavel@ucw.cz>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      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>
      ed7158ba
  3. 24 1月, 2018 1 次提交
  4. 29 11月, 2017 1 次提交
  5. 14 11月, 2017 1 次提交
    • V
      ARCv2: boot log: updates for HS48: dual-issue, ECC, Loop Buffer · f3156851
      Vineet Gupta 提交于
      Print the hardware support for ECC, Loop Buffer as well as the runtime
      enabled status
      
      Note that unlike the existing boot printing, this one is not read from
      pre-decoded hardware capabilty info cached in cpuinfo[] struct.
      Instead we read the AUX regs on the spot and print it, without botherign
      to save anywhere.
      
      There is no point in saving static hardware capabilites in memory when
      its use is very sporadic and non-performance critical, mainly for
      /proc/cpuinfo. This gets worse in SMP, given it is per-cpu, and pretty
      much exactly same across all cpus. So only info needed at runtime
      (e.g. TLB geometry) needs to be cached in cpuinfo[]. So going fwd
      we will start converting code to this paradigm.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      f3156851
  6. 04 10月, 2017 2 次提交
  7. 14 9月, 2017 1 次提交
    • M
      mm: treewide: remove GFP_TEMPORARY allocation flag · 0ee931c4
      Michal Hocko 提交于
      GFP_TEMPORARY was introduced by commit e12ba74d ("Group short-lived
      and reclaimable kernel allocations") along with __GFP_RECLAIMABLE.  It's
      primary motivation was to allow users to tell that an allocation is
      short lived and so the allocator can try to place such allocations close
      together and prevent long term fragmentation.  As much as this sounds
      like a reasonable semantic it becomes much less clear when to use the
      highlevel GFP_TEMPORARY allocation flag.  How long is temporary? Can the
      context holding that memory sleep? Can it take locks? It seems there is
      no good answer for those questions.
      
      The current implementation of GFP_TEMPORARY is basically GFP_KERNEL |
      __GFP_RECLAIMABLE which in itself is tricky because basically none of
      the existing caller provide a way to reclaim the allocated memory.  So
      this is rather misleading and hard to evaluate for any benefits.
      
      I have checked some random users and none of them has added the flag
      with a specific justification.  I suspect most of them just copied from
      other existing users and others just thought it might be a good idea to
      use without any measuring.  This suggests that GFP_TEMPORARY just
      motivates for cargo cult usage without any reasoning.
      
      I believe that our gfp flags are quite complex already and especially
      those with highlevel semantic should be clearly defined to prevent from
      confusion and abuse.  Therefore I propose dropping GFP_TEMPORARY and
      replace all existing users to simply use GFP_KERNEL.  Please note that
      SLAB users with shrinkers will still get __GFP_RECLAIMABLE heuristic and
      so they will be placed properly for memory fragmentation prevention.
      
      I can see reasons we might want some gfp flag to reflect shorterm
      allocations but I propose starting from a clear semantic definition and
      only then add users with proper justification.
      
      This was been brought up before LSF this year by Matthew [1] and it
      turned out that GFP_TEMPORARY really doesn't have a clear semantic.  It
      seems to be a heuristic without any measured advantage for most (if not
      all) its current users.  The follow up discussion has revealed that
      opinions on what might be temporary allocation differ a lot between
      developers.  So rather than trying to tweak existing users into a
      semantic which they haven't expected I propose to simply remove the flag
      and start from scratch if we really need a semantic for short term
      allocations.
      
      [1] http://lkml.kernel.org/r/20170118054945.GD18349@bombadil.infradead.org
      
      [akpm@linux-foundation.org: fix typo]
      [akpm@linux-foundation.org: coding-style fixes]
      [sfr@canb.auug.org.au: drm/i915: fix up]
        Link: http://lkml.kernel.org/r/20170816144703.378d4f4d@canb.auug.org.au
      Link: http://lkml.kernel.org/r/20170728091904.14627-1-mhocko@kernel.orgSigned-off-by: NMichal Hocko <mhocko@suse.com>
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: NMel Gorman <mgorman@suse.de>
      Acked-by: NVlastimil Babka <vbabka@suse.cz>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Neil Brown <neilb@suse.de>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0ee931c4
  8. 29 8月, 2017 1 次提交
  9. 14 6月, 2017 1 次提交
  10. 21 4月, 2017 1 次提交
    • V
      ARCv2: entry: save Accumulator register pair (r58:59) if present · 3d5e8012
      Vineet Gupta 提交于
      Accumulator is present in configs with FPU and/or DSP MPY (mpy > 6)
      
      Instead of doing this in pt_regs (and thus every kernel entry/exit),
      this could have been done in context switch (and for user task only) as
      currently kernel doesn't clobber these registers for its own accord.
      However we will soon start using 64-bit multiply instructions for kernel
      which can clobber these. Also gcc folks also plan to start using these
      as GPRs, hence better to always save/restore them
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      3d5e8012
  11. 06 3月, 2017 1 次提交
    • V
      ARC: get rate from clk driver instead of reading device tree · 7f35144c
      Vlad Zakharov 提交于
      We were reading clock rate directly from device tree "clock-frequency"
      property of corresponding clock node in show_cpuinfo function.
      
      Such approach is correct only in case cpu is always clocked by
      "fixed-clock". If we use clock driver that allows rate to be changed
      this won't work as rate may change during the time or even
      "clock-frequency" property may not be presented at all.
      
      So this commit replaces reading device tree with getting rate from clock
      driver. This approach is much more flexible and will work for both fixed
      and mutable clocks.
      Signed-off-by: NVlad Zakharov <vzakhar@synopsys.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      7f35144c
  12. 01 12月, 2016 2 次提交
  13. 29 10月, 2016 4 次提交
    • V
      ARC: boot log: refactor cpu name/release printing · d975cbc8
      Vineet Gupta 提交于
      The motivation is to identify ARC750 vs. ARC770 (we currently print
      generic "ARC700").
      
      A given ARC700 release could be 750 or 770, with same ARCNUM (or family
      identifier which is unfortunate). The existing arc_cpu_tbl[] kept a single
      concatenated string for core name and release which thus doesn't work
      for 750 vs. 770 identification.
      
      So split this into 2 tables, one with core names and other with release.
      And while we are at it, get rid of the range checking for family numbers.
      We just document the known to exist cores running Linux and ditch
      others.
      
      With this in place, we add detection of ARC750 which is
       - cores 0x33 and before
       - cores 0x34 and later with MMUv2
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      d975cbc8
    • V
      ARC: boot log: don't assume SWAPE instruction support · a024fd9b
      Vineet Gupta 提交于
      This came to light when helping a customer with oldish ARC750 core who
      were getting instruction errors because of lack of SWAPE but boot log
      was incorrectly printing it as being present
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      a024fd9b
    • V
      ARC: boot log: refactor printing abt features not captured in BCRs · 73e284d2
      Vineet Gupta 提交于
      On older arc700 cores, some of the features configured were not present
      in Build config registers. To print about them at boot, we just use the
      Kconfig option i.e. whether linux is built to use them or not.
      So yes this seems bogus, but what else can be done. Moreover if linux is
      booting with these enabled, then the Kconfig info is a good indicator
      anyways.
      
      Over time these "hacks" accumulated in read_arc_build_cfg_regs() as well
      as arc_cpu_mumbojumbo(). so refactor and move all of those in a single
      place: read_arc_build_cfg_regs(). This causes some code redcution too:
      
      | bloat-o-meter2 arch/arc/kernel/setup.o.0 arch/arc/kernel/setup.o.1
      | add/remove: 0/0 grow/shrink: 2/1 up/down: 64/-132 (-68)
      | function                                     old     new   delta
      | setup_processor                              610     670     +60
      | cpuinfo_arc700                                76      80      +4
      | arc_cpu_mumbojumbo                           752     620    -132
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      73e284d2
    • V
      ARCv2: boot log: print IOC exists as well as enabled status · 711c1f26
      Vineet Gupta 提交于
      Previously we would not print the case when IOC existed but was not
      enabled.
      
      And while at it, reduce one line off boot printing by consolidating
      the Peripheral address space and IO-Coherency which in a way
      applies to them
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      711c1f26
  14. 20 10月, 2016 1 次提交
    • N
      ARC: Adjust cpuinfo for non-continuous cpu ids · 3da43104
      Noam Camus 提交于
      num_possible_cpus() returns how many CPUs may be present on system.
      However we want the highest possible CPU number.
      This may be differ in a sparsed possible CPUs map.
      Such map achived by OF for plat-eznps.
      
      For example if we have:
      possible cpus mask 0,3
      
      Then:
      num_possible_cpus() is equal 2
      	while
      nr_cpu_ids is equal 4.
      
      Only for value 4 c_start() will provide correct cpuinfo at procfs.
      Signed-off-by: NNoam Camus <noamc@ezchip.com>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      3da43104
  15. 01 10月, 2016 2 次提交
  16. 20 8月, 2016 1 次提交
    • V
      ARC: Support syscall ABI v4 · 840c054f
      Vineet Gupta 提交于
      The syscall ABI includes the gcc functional calling ABI since a syscall
      implies userland caller and kernel callee.
      
      The current gcc ABI (v3) for ARCv2 ISA required 64-bit data be passed in
      even-odd register pairs, (potentially punching reg holes when passing such
      values as args). This was partly driven by the fact that the double-word
      LDD/STD instructions in ARCv2 expect the register alignment and thus gcc
      forcing this avoids extra MOV at the cost of a few unused register (which we
      have plenty anyways).
      
      This however was rejected as part of upstreaming gcc port to HS. So the new
      ABI v4 doesn't enforce the even-odd reg restriction.
      
      Do note that for ARCompact ISA builds v3 and v4 are practically the same in
      terms of gcc code generation.
      
      In terms of change management, we infer the new ABI if gcc 6.x onwards
      is used for building the kernel.
      
      This also needs a stable backport to enable older kernels to work with
      new tools/user-space
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      840c054f
  17. 14 7月, 2016 1 次提交
  18. 24 6月, 2016 1 次提交
  19. 30 5月, 2016 1 次提交
  20. 09 5月, 2016 3 次提交
  21. 19 3月, 2016 1 次提交
    • V
      ARCv2: ioremap: Support dynamic peripheral address space · deaf7565
      Vineet Gupta 提交于
      The peripheral address space is architectural address window which is
      uncached and typically used to wire up peripherals.
      
      For ARC700 cores (ARCompact ISA based) this was fixed to 1GB region
      0xC000_0000 - 0xFFFF_FFFF.
      
      For ARCv2 based HS38 cores the start address is flexible and can be
      0xC, 0xD, 0xE, 0xF 000_000 by programming AUX_NON_VOLATILE_LIMIT reg
      (typically done in bootloader)
      
      Further in cas of PAE, the physical address can extend beyond 4GB so
      need to confine this check, otherwise all pages beyond 4GB will be
      treated as uncached
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      deaf7565
  22. 17 3月, 2016 1 次提交
  23. 15 3月, 2016 1 次提交
  24. 18 2月, 2016 2 次提交
  25. 29 1月, 2016 2 次提交
  26. 17 12月, 2015 1 次提交
    • V
      ARC: dw2 unwind: Reinstante unwinding out of modules · bc79c9a7
      Vineet Gupta 提交于
      The fix which removed linear searching of dwarf (because binary lookup
      data always exists) missed out on the fact that modules don't get the
      binary lookup tables info. This caused unwinding out of modules to stop
      working.
      
      So add binary lookup header setup (equivalent of eh_frame_hdr setup) to
      modules as well.
      
      While at it, confine the header setup to within unwinder code,
      reducing one API exposed out of unwinder code.
      
      Fixes: 2e22502c ARC: dw2 unwind: Remove falllback linear search thru FDE entries
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      bc79c9a7
  27. 28 10月, 2015 1 次提交
    • 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
  28. 17 10月, 2015 1 次提交
  29. 04 8月, 2015 1 次提交
  30. 03 8月, 2015 1 次提交