1. 09 Nov, 2018 1 commit
    • Paul Burton's avatar
      MIPS: Simplify FP context initialization · cc97ab23
      Paul Burton authored
      MIPS has up until now had 3 different ways for a task's floating point
      context to be initialized:
      
        - If the task's first use of FP involves it gaining ownership of an
          FPU then _init_fpu() is used to initialize the FPU's registers such
          that they all contain ~0, and the FPU registers will be stored to
          struct thread_info later (eg. when context switching).
      
        - If the task first uses FP on a CPU without an associated FPU then
          fpu_emulator_init_fpu() initializes the task's floating point
          register state in struct thread_info such that all floating point
          register contain the bit pattern 0x7ff800007ff80000, different to
          the _init_fpu() behaviour.
      
        - If a task's floating point context is first accessed via ptrace then
          init_fp_ctx() initializes the floating point register state in
          struct thread_info to ~0, giving equivalent state to _init_fpu().
      
      The _init_fpu() path has 2 separate implementations - one for r2k/r3k
      style systems & one for r4k style systems. The _init_fpu() path also
      requires that we be careful to clear & restore the value of the
      Config5.FRE bit on modern systems in order to avoid inadvertently
      triggering floating point exceptions.
      
      None of this code is in a performance critical hot path - it runs only
      the first time a task uses floating point. As such it doesn't seem to
      warrant the complications of maintaining the _init_fpu() path.
      
      Remove _init_fpu() & fpu_emulator_init_fpu(), instead using
      init_fp_ctx() consistently to initialize floating point register state
      in struct thread_info. Upon a task's first use of floating point this
      will typically mean that we initialize state in memory & then load it
      into FPU registers using _restore_fp() just as we would on a context
      switch. For other paths such as __compute_return_epc_for_insn() or
      mipsr2_decoder() this results in a significant simplification of the
      work to be done.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/21002/
      Cc: linux-mips@linux-mips.org
      cc97ab23
  2. 08 Nov, 2018 5 commits
    • Paul Burton's avatar
      MIPS: BCM5xxx: Remove dead init_fpu code · b1013f1e
      Paul Burton authored
      The BMIPS5xxx core_init function contains a call to an init_fpu function
      inside an #ifdef whose condition never evaluates true. Remove the dead
      code. FPU initialization happens later, primarily when a userland
      program attempts to use it.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/21018/
      Cc: linux-mips@linux-mips.org
      b1013f1e
    • Paul Burton's avatar
      MIPS: Hide CONFIG_MIPS_O32_FP64_SUPPORT prompt for >= MIPSr6 · b7f1e273
      Paul Burton authored
      From MIPSr6 onwards FP64 support is mandatory, and so
      CONFIG_MIPS_O32_FP64_SUPPORT is always selected for configurations which
      support O32 binaries. Hide the useless unchangeable prompt in these
      cases.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/21019/
      Cc: linux-mips@linux-mips.org
      b7f1e273
    • Paul Burton's avatar
      MIPS: Hardcode cpu_has_mmips=1 for microMIPS kernels · a013ba39
      Paul Burton authored
      If we built the kernel targeting the microMIPS ISA then the very fact
      that the kernel is running implies that the CPU supports microMIPS. Thus
      we can hardcode cpu_has_mmips to 1 allowing the compiler greater scope
      for optimisation due to the compile-time constant.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/21022/
      Cc: linux-mips@linux-mips.org
      a013ba39
    • Paul Burton's avatar
      MIPS: Simplify GCC_OFF_SMALL_ASM definition · d08b8ccc
      Paul Burton authored
      The GCC_OFF_SMALL_ASM macro defines the constraint to use for
      instructions needing "small offsets", typically the LL or SC
      instructions. Historically these had 16 bit offsets, but microMIPS &
      MIPS32/MIPS64r6 onwards reduced the width of the offset field.
      
      GCC 4.9 & higher supports a ZC constraint which matches the offset
      requirements of the LL & SC instructions. Where supported we can use
      the ZC constraint regardless of ISA, and it will handle the requirements
      of the ISA correctly. As such we require 3 cases:
      
        - GCC 4.9 & higher can use ZC.
      
        - GCC older than 4.9 must use the older R constraint, which does not
          take into account microMIPS or MIPSr6.
      
        - microMIPS builds therefore require GCC 4.9 or higher. MIPSr6 support
          was only introduced in newer compilers anyway so it can be ignored
          here.
      
      The current code complicates this a little by specifically having MIPSr6
      bypass the GCC version check, and using the R constraint for pre-MIPSr6
      builds even if the compiler supports ZC which would be equivalent.
      
      Simplify this such that the code straightforwardly implements the 3
      cases outlined above.
      
      For non-GCC compilers we presume that ZC is safe to use. In practice the
      only non-GCC compiler of interest is clang and it has supported the ZC
      constraint since version 3.7.0. It seems safe enough to presume that
      nobody will expect to built a working kernel using a clang version older
      than that, and if they do then they'll have bigger problems. As such we
      don't check the clang version number & just presume ZC is usable when
      the compiler is not GCC.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/20999/
      Cc: linux-mips@linux-mips.org
      d08b8ccc
    • Paul Burton's avatar
      MIPS: Remove GCC_IMM_ASM & GCC_REG_ACCUM macros · 57810ecb
      Paul Burton authored
      asm/compiler.h defined GCC_IMM_ASM & GCC_REG_ACCUM macros, both of which
      are defined differently for GCC pre-3.4 or GCC 3.4 & higher. We only
      support building with GCC 4.6 & higher since commit cafa0010 ("Raise
      the minimum required gcc version to 4.6"), which makes the pre-3.4
      definition dead code.
      
      Rather than leave the macro definitions around, inline the GCC 3.4 &
      higher definitions into the single file that uses them & remove the
      macros entirely.
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/21000/
      Cc: linux-mips@linux-mips.org
      57810ecb
  3. 06 Nov, 2018 4 commits
  4. 05 Nov, 2018 2 commits
  5. 04 Nov, 2018 9 commits
    • Linus Torvalds's avatar
      Linux 4.20-rc1 · 65102238
      Linus Torvalds authored
      65102238
    • Linus Torvalds's avatar
      Merge tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs · 42bd06e9
      Linus Torvalds authored
      Pull UBIFS updates from Richard Weinberger:
      
       - Full filesystem authentication feature, UBIFS is now able to have the
         whole filesystem structure authenticated plus user data encrypted and
         authenticated.
      
       - Minor cleanups
      
      * tag 'tags/upstream-4.20-rc1' of git://git.infradead.org/linux-ubifs: (26 commits)
        ubifs: Remove unneeded semicolon
        Documentation: ubifs: Add authentication whitepaper
        ubifs: Enable authentication support
        ubifs: Do not update inode size in-place in authenticated mode
        ubifs: Add hashes and HMACs to default filesystem
        ubifs: authentication: Authenticate super block node
        ubifs: Create hash for default LPT
        ubfis: authentication: Authenticate master node
        ubifs: authentication: Authenticate LPT
        ubifs: Authenticate replayed journal
        ubifs: Add auth nodes to garbage collector journal head
        ubifs: Add authentication nodes to journal
        ubifs: authentication: Add hashes to index nodes
        ubifs: Add hashes to the tree node cache
        ubifs: Create functions to embed a HMAC in a node
        ubifs: Add helper functions for authentication support
        ubifs: Add separate functions to init/crc a node
        ubifs: Format changes for authentication support
        ubifs: Store read superblock node
        ubifs: Drop write_node
        ...
      42bd06e9
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 4710e789
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
        Bugfix:
         - Fix build issues on architectures that don't provide 64-bit cmpxchg
      
        Cleanups:
         - Fix a spelling mistake"
      
      * tag 'nfs-for-4.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFS: fix spelling mistake, EACCESS -> EACCES
        SUNRPC: Use atomic(64)_t for seq_send(64)
      4710e789
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 35e74524
      Linus Torvalds authored
      Pull more timer updates from Thomas Gleixner:
       "A set of commits for the new C-SKY architecture timers"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        dt-bindings: timer: gx6605s SOC timer
        clocksource/drivers/c-sky: Add gx6605s SOC system timer
        dt-bindings: timer: C-SKY Multi-processor timer
        clocksource/drivers/c-sky: Add C-SKY SMP timer
      35e74524
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.20' of git://github.com/jonmason/ntb · 04578e84
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "Fairly minor changes and bug fixes:
      
        NTB IDT thermal changes and hook into hwmon, ntb_netdev clean-up of
        private struct, and a few bug fixes"
      
      * tag 'ntb-4.20' of git://github.com/jonmason/ntb:
        ntb: idt: Alter the driver info comments
        ntb: idt: Discard temperature sensor IRQ handler
        ntb: idt: Add basic hwmon sysfs interface
        ntb: idt: Alter temperature read method
        ntb_netdev: Simplify remove with client device drvdata
        NTB: transport: Try harder to alloc an aligned MW buffer
        ntb: ntb_transport: Mark expected switch fall-throughs
        ntb: idt: Set PCIe bus address to BARLIMITx
        NTB: ntb_hw_idt: replace IS_ERR_OR_NULL with regular NULL checks
        ntb: intel: fix return value for ndev_vec_mask()
        ntb_netdev: fix sleep time mismatch
      04578e84
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71e56028
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A memory (under-)allocation fix and a comment fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/topology: Fix off by one bug
        sched/rt: Update comment in pick_next_task_rt()
      71e56028
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 601a8807
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "A number of fixes and some late updates:
      
         - make in_compat_syscall() behavior on x86-32 similar to other
           platforms, this touches a number of generic files but is not
           intended to impact non-x86 platforms.
      
         - objtool fixes
      
         - PAT preemption fix
      
         - paravirt fixes/cleanups
      
         - cpufeatures updates for new instructions
      
         - earlyprintk quirk
      
         - make microcode version in sysfs world-readable (it is already
           world-readable in procfs)
      
         - minor cleanups and fixes"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        compat: Cleanup in_compat_syscall() callers
        x86/compat: Adjust in_compat_syscall() to generic code under !COMPAT
        objtool: Support GCC 9 cold subfunction naming scheme
        x86/numa_emulation: Fix uniform-split numa emulation
        x86/paravirt: Remove unused _paravirt_ident_32
        x86/mm/pat: Disable preemption around __flush_tlb_all()
        x86/paravirt: Remove GPL from pv_ops export
        x86/traps: Use format string with panic() call
        x86: Clean up 'sizeof x' => 'sizeof(x)'
        x86/cpufeatures: Enumerate MOVDIR64B instruction
        x86/cpufeatures: Enumerate MOVDIRI instruction
        x86/earlyprintk: Add a force option for pciserial device
        objtool: Support per-function rodata sections
        x86/microcode: Make revision and processor flags world-readable
      601a8807
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 01897f3e
      Linus Torvalds authored
      Pull perf updates and fixes from Ingo Molnar:
       "These are almost all tooling updates: 'perf top', 'perf trace' and
        'perf script' fixes and updates, an UAPI header sync with the merge
        window versions, license marker updates, much improved Sparc support
        from David Miller, and a number of fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
        perf intel-pt/bts: Calculate cpumode for synthesized samples
        perf intel-pt: Insert callchain context into synthesized callchains
        perf tools: Don't clone maps from parent when synthesizing forks
        perf top: Start display thread earlier
        tools headers uapi: Update linux/if_link.h header copy
        tools headers uapi: Update linux/netlink.h header copy
        tools headers: Sync the various kvm.h header copies
        tools include uapi: Update linux/mmap.h copy
        perf trace beauty: Use the mmap flags table generated from headers
        perf beauty: Wire up the mmap flags table generator to the Makefile
        perf beauty: Add a generator for MAP_ mmap's flag constants
        tools include uapi: Update asound.h copy
        tools arch uapi: Update asm-generic/unistd.h and arm64 unistd.h copies
        tools include uapi: Update linux/fs.h copy
        perf callchain: Honour the ordering of PERF_CONTEXT_{USER,KERNEL,etc}
        perf cs-etm: Correct CPU mode for samples
        perf unwind: Take pgoff into account when reporting elf to libdwfl
        perf top: Do not use overwrite mode by default
        perf top: Allow disabling the overwrite mode
        perf trace: Beautify mount's first pathname arg
        ...
      01897f3e
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e9ebc215
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "An irqchip driver fix and a memory (over-)allocation fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/irq-mvebu-sei: Fix a NULL vs IS_ERR() bug in probe function
        irq/matrix: Fix memory overallocation
      e9ebc215
  6. 03 Nov, 2018 19 commits