1. 19 May, 2019 9 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1ba3b5dc
      Linus Torvalds authored
      Pull perf tooling updates from Ingo Molnar:
       "perf.data:
      
         - Streaming compression of perf ring buffer into
           PERF_RECORD_COMPRESSED user space records, resulting in ~3-5x
           perf.data file size reduction on variety of tested workloads what
           saves storage space on larger server systems where perf.data size
           can easily reach several tens or even hundreds of GiBs, especially
           when profiling with DWARF-based stacks and tracing of context
           switches.
      
        perf record:
      
         - Improve -user-regs/intr-regs suggestions to overcome errors
      
        perf annotate:
      
         - Remove hist__account_cycles() from callback, speeding up branch
           processing (perf record -b)
      
        perf stat:
      
         - Add a 'percore' event qualifier, e.g.: -e
           cpu/event=0,umask=0x3,percore=1/, that sums up the event counts for
           both hardware threads in a core.
      
           We can already do this with --per-core, but it's often useful to do
           this together with other metrics that are collected per hardware
           thread.
      
           I.e. now its possible to do this per-event, and have it mixed with
           other events not aggregated by core.
      
        arm64:
      
         - Map Brahma-B53 CPUID to cortex-a53 events.
      
         - Add Cortex-A57 and Cortex-A72 events.
      
        csky:
      
         - Add DWARF register mappings for libdw, allowing --call-graph=dwarf
           to work on the C-SKY arch.
      
        x86:
      
         - Add support for recording and printing XMM registers, available,
           for instance, on Icelake.
      
         - Add uncore_upi (Intel's "Ultra Path Interconnect" events) JSON
           support. UPI replaced the Intel QuickPath Interconnect (QPI) in
           Xeon Skylake-SP.
      
        Intel PT:
      
         - Fix instructions sampling rate.
      
         - Timestamp fixes.
      
         - Improve exported-sql-viewer GUI, allowing, for instance, to
           copy'n'paste the trees, useful for e-mailing"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (73 commits)
        perf stat: Support 'percore' event qualifier
        perf stat: Factor out aggregate counts printing
        perf tools: Add a 'percore' event qualifier
        perf docs: Add description for stderr
        perf intel-pt: Fix sample timestamp wrt non-taken branches
        perf intel-pt: Fix improved sample timestamp
        perf intel-pt: Fix instructions sampling rate
        perf regs x86: Add X86 specific arch__intr_reg_mask()
        perf parse-regs: Add generic support for arch__intr/user_reg_mask()
        perf parse-regs: Split parse_regs
        perf vendor events arm64: Add Cortex-A57 and Cortex-A72 events
        perf vendor events arm64: Map Brahma-B53 CPUID to cortex-a53 events
        perf vendor events arm64: Remove [[:xdigit:]] wildcard
        perf jevents: Remove unused variable
        perf test zstd: Fixup verbose mode output
        perf tests: Implement Zstd comp/decomp integration test
        perf inject: Enable COMPRESSED record decompression
        perf report: Implement perf.data record decompression
        perf record: Implement -z,--compression_level[=<n>] option
        perf report: Add stub processing of compressed events for -D
        ...
      1ba3b5dc
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a13f950e
      Linus Torvalds authored
      Pull clocksource updates from Ingo Molnar:
       "Misc clocksource/clockevent driver updates that came in a bit late but
        are ready for v5.2"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        misc: atmel_tclib: Do not probe already used TCBs
        clocksource/drivers/timer-atmel-tcb: Convert tc_clksrc_suspend|resume() to static
        clocksource/drivers/tcb_clksrc: Rename the file for consistency
        clocksource/drivers/timer-atmel-pit: Rework Kconfig option
        clocksource/drivers/tcb_clksrc: Move Kconfig option
        ARM: at91: Implement clocksource selection
        clocksource/drivers/tcb_clksrc: Use tcb as sched_clock
        clocksource/drivers/tcb_clksrc: Stop depending on atmel_tclib
        ARM: at91: move SoC specific definitions to SoC folder
        clocksource/drivers/timer-milbeaut: Cleanup common register accesses
        clocksource/drivers/timer-milbeaut: Add shutdown function
        clocksource/drivers/timer-milbeaut: Fix to enable one-shot timer
        clocksource/drivers/tegra: Rework for compensation of suspend time
        clocksource/drivers/sp804: Add COMPILE_TEST to CONFIG_ARM_TIMER_SP804
        clocksource/drivers/sun4i: Add a compatible for suniv
        dt-bindings: timer: Add Allwinner suniv timer
      a13f950e
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d9351ea1
      Linus Torvalds authored
      Pull IRQ chip updates from Ingo Molnar:
       "A late irqchips update:
      
         - New TI INTR/INTA set of drivers
      
         - Rewrite of the stm32mp1-exti driver as a platform driver
      
         - Update the IOMMU MSI mapping API to be RT friendly
      
         - A number of cleanups and other low impact fixes"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        iommu/dma-iommu: Remove iommu_dma_map_msi_msg()
        irqchip/gic-v3-mbi: Don't map the MSI page in mbi_compose_m{b, s}i_msg()
        irqchip/ls-scfg-msi: Don't map the MSI page in ls_scfg_msi_compose_msg()
        irqchip/gic-v3-its: Don't map the MSI page in its_irq_compose_msi_msg()
        irqchip/gicv2m: Don't map the MSI page in gicv2m_compose_msi_msg()
        iommu/dma-iommu: Split iommu_dma_map_msi_msg() in two parts
        genirq/msi: Add a new field in msi_desc to store an IOMMU cookie
        arm64: arch_k3: Enable interrupt controller drivers
        irqchip/ti-sci-inta: Add msi domain support
        soc: ti: Add MSI domain bus support for Interrupt Aggregator
        irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver
        dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings
        irqchip/ti-sci-intr: Add support for Interrupt Router driver
        dt-bindings: irqchip: Introduce TISCI Interrupt router bindings
        gpio: thunderx: Use the default parent apis for {request,release}_resources
        genirq: Introduce irq_chip_{request,release}_resource_parent() apis
        firmware: ti_sci: Add helper apis to manage resources
        firmware: ti_sci: Add RM mapping table for am654
        firmware: ti_sci: Add support for IRQ management
        firmware: ti_sci: Add support for RM core ops
        ...
      d9351ea1
    • Linus Torvalds's avatar
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 39feaa3f
      Linus Torvalds authored
      Pull EFI fix from Ingo Molnar:
       "Fix an EFI-fb regression that affects certain x86 systems"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types
      39feaa3f
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1335d9a1
      Linus Torvalds authored
      Pull core fixes from Ingo Molnar:
       "This fixes a particularly thorny munmap() bug with MPX, plus fixes a
        host build environment assumption in objtool"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Allow AR to be overridden with HOSTAR
        x86/mpx, mm/core: Fix recursive munmap() corruption
      1335d9a1
    • Linus Torvalds's avatar
      Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 4c4a5c99
      Linus Torvalds authored
      Pull ARM SoC late updates from Olof Johansson:
       "This is some material that we picked up into our tree late. Most of it
        are smaller fixes and additions, some defconfig updates due to recent
        development, etc.
      
        Code-wise the largest portion is a series of PM updates for the at91
        platform, and those have been in linux-next a while through the at91
        tree before we picked them up"
      
      * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (29 commits)
        arm64: dts: sprd: Add clock properties for serial devices
        Opt out of scripts/get_maintainer.pl
        ARM: ixp4xx: Remove duplicated include from common.c
        soc: ixp4xx: qmgr: Fix an NULL vs IS_ERR() check in probe
        arm64: tegra: Disable XUSB support on Jetson TX2
        arm64: tegra: Enable SMMU translation for PCI on Tegra186
        arm64: tegra: Fix insecure SMMU users for Tegra186
        arm64: tegra: Select ARM_GIC_PM
        amba: tegra-ahb: Mark PM functions as __maybe_unused
        ARM: dts: logicpd-som-lv: Fix MMC1 card detect
        ARM: mvebu: drop return from void function
        ARM: mvebu: prefix coprocessor operand with p
        ARM: mvebu: drop unnecessary label
        ARM: mvebu: fix a leaked reference by adding missing of_node_put
        ARM: socfpga_defconfig: enable LTC2497
        ARM: mvebu: kirkwood: remove error message when retrieving mac address
        ARM: at91: sama5: make ov2640 as a module
        ARM: OMAP1: ams-delta: fix early boot crash when LED support is disabled
        ARM: at91: remove HAVE_FB_ATMEL for sama5 SoC as they use DRM
        soc/fsl/qe: Fix an error code in qe_pin_request()
        ...
      4c4a5c99
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 86a78a8b
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "One fix going back to stable, for a bug on 32-bit introduced when we
        added support for THREAD_INFO_IN_TASK.
      
        A fix for a typo in a recent rework of our hugetlb code that leads to
        crashes on 64-bit when using hugetlbfs with a 4K PAGE_SIZE.
      
        Two fixes for our recent rework of the address layout on 64-bit hash
        CPUs, both only triggered when userspace tries to access addresses
        outside the user or kernel address ranges.
      
        Finally a fix for a recently introduced double free in an error path
        in our cacheinfo code.
      
        Thanks to: Aneesh Kumar K.V, Christophe Leroy, Sachin Sant, Tobin C.
        Harding"
      
      * tag 'powerpc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/cacheinfo: Remove double free
        powerpc/mm/hash: Fix get_region_id() for invalid addresses
        powerpc/mm: Drop VM_BUG_ON in get_region_id()
        powerpc/mm: Fix crashes with hugepages & 4K pages
        powerpc/32s: fix flush_hash_pages() on SMP
      86a78a8b
    • Linus Torvalds's avatar
      Merge tag 'mips_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · bcd17397
      Linus Torvalds authored
      Pull a few more MIPS updates from Paul Burton:
       "Some SGI IP27 specific PCI rework and a batch of fixes:
      
         - A build fix for BMIPS5000 configurations with
           CONFIG_HW_PERF_EVENTS=y, which also neatly removes some #ifdefery.
      
         - A fix to report supported ISAs correctly on older Ingenic SoCs
           which incorrectly indicate MIPSr2 support in their cop0 Config
           register.
      
         - Some PCI modernization for SGI IP27 systems as part of ongoing work
           to support some other SGI systems.
      
         - A fix allowing use of appended DTB files with generic kernels.
      
         - DMA mask fixes for SGI IP22 & Alchemy systems"
      
      * tag 'mips_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: Alchemy: add DMA masks for on-chip ethernet
        MIPS: SGI-IP22: provide missing dma_mask/coherent_dma_mask
        generic: fix appended dtb support
        MIPS: SGI-IP27: abstract chipset irq from bridge
        MIPS: SGI-IP27: use generic PCI driver
        MIPS: Fix Ingenic SoCs sometimes reporting wrong ISA
        MIPS: perf: Fix build with CONFIG_CPU_BMIPS5000 enabled
      bcd17397
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.2-mw2' of... · b0bb1269
      Linus Torvalds authored
      Merge tag 'riscv-for-linus-5.2-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux
      
      Pull RISC-V updates from Palmer Dabbelt:
       "This contains an assortment of RISC-V related patches that I'd like to
        target for the 5.2 merge window. Most of the patches are cleanups, but
        there are a handful of user-visible changes:
      
         - The nosmp and nr_cpus command-line arguments are now supported,
           which work like normal.
      
         - The SBI console no longer installs itself as a preferred console,
           we rely on standard mechanisms (/chosen, command-line, hueristics)
           instead.
      
         - sfence_remove_sfence_vma{,_asid} now pass their arguments along to
           the SBI call.
      
         - Modules now support BUG().
      
         - A missing sfence.vma during boot has been added. This bug only
           manifests during boot.
      
         - The arch/riscv support for SiFive's L2 cache controller has been
           merged, which should un-block the EDAC framework work.
      
        I've only tested this on QEMU again, as I didn't have time to get
        things running on the Unleashed. The latest master from this morning
        merges in cleanly and passes the tests as well"
      
      * tag 'riscv-for-linus-5.2-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: (31 commits)
        riscv: fix locking violation in page fault handler
        RISC-V: sifive_l2_cache: Add L2 cache controller driver for SiFive SoCs
        RISC-V: Add DT documentation for SiFive L2 Cache Controller
        RISC-V: Avoid using invalid intermediate translations
        riscv: Support BUG() in kernel module
        riscv: Add the support for c.ebreak check in is_valid_bugaddr()
        riscv: support trap-based WARN()
        riscv: fix sbi_remote_sfence_vma{,_asid}.
        riscv: move switch_mm to its own file
        riscv: move flush_icache_{all,mm} to cacheflush.c
        tty: Don't force RISCV SBI console as preferred console
        RISC-V: Access CSRs using CSR numbers
        RISC-V: Add interrupt related SCAUSE defines in asm/csr.h
        RISC-V: Use tabs to align macro values in asm/csr.h
        RISC-V: Fix minor checkpatch issues.
        RISC-V: Support nr_cpus command line option.
        RISC-V: Implement nosmp commandline option.
        RISC-V: Add RISC-V specific arch_match_cpu_phys_id
        riscv: vdso: drop unnecessary cc-ldoption
        riscv: call pm_power_off from machine_halt / machine_power_off
        ...
      b0bb1269
  2. 18 May, 2019 1 commit
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-5.2-20190517' of... · 62e1c094
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-5.2-20190517' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      perf.data:
      
        Alexey Budankov:
      
        - Streaming compression of perf ring buffer into PERF_RECORD_COMPRESSED
          user space records, resulting in ~3-5x perf.data file size reduction
          on variety of tested workloads what saves storage space on larger
          server systems where perf.data size can easily reach several tens or
          even hundreds of GiBs, especially when profiling with DWARF-based
          stacks and tracing of context switches.
      
      perf record:
      
        Arnaldo Carvalho de Melo
      
        - Improve -user-regs/intr-regs suggestions to overcome errors.
      
      perf annotate:
      
        Jin Yao:
      
        - Remove hist__account_cycles() from callback, speeding up branch processing
          (perf record -b).
      
      perf stat:
      
        - Add a 'percore' event qualifier, e.g.: -e cpu/event=0,umask=0x3,percore=1/,
          that sums up the event counts for both hardware threads in a core.
      
          We can already do this with --per-core, but it's often useful to do
          this together with other metrics that are collected per hardware thread.
      
          I.e. now its possible to do this per-event, and have it mixed with other
          events not aggregated by core.
      
      core libraries:
      
        Donald Yandt:
      
        - Check for errors when doing fgets(/proc/version).
      
        Jiri Olsa:
      
        - Speed up report for perf compiled with linbunwind.
      
      tools headers:
      
        Arnaldo Carvalho de Melo
      
        - Update memcpy_64.S, x86's kvm.h and pt_regs.h.
      
      arm64:
      
        Florian Fainelli:
      
        - Map Brahma-B53 CPUID to cortex-a53 events.
      
        - Add Cortex-A57 and Cortex-A72 events.
      
      csky:
      
        Mao Han:
      
        - Add DWARF register mappings for libdw, allowing --call-graph=dwarf to work
          on the C-SKY arch.
      
      x86:
      
        Andi Kleen/Kan Liang:
      
        - Add support for recording and printing XMM registers, available, for
          instance, on Icelake.
      
        Kan Liang:
      
        - Add uncore_upi (Intel's "Ultra Path Interconnect" events) JSON support.
          UPI replaced the Intel QuickPath Interconnect (QPI) in Xeon Skylake-SP.
      
      Intel PT:
      
        Adrian Hunter
      
        . Fix instructions sampling rate.
      
        . Timestamp fixes.
      
        . Improve exported-sql-viewer GUI, allowing, for instance, to copy'n'paste
          the trees, useful for e-mailing.
      
      Documentation:
      
        Thomas Richter:
      
        - Add description for 'perf --debug stderr=1', which redirects stderr to stdout.
      
      libtraceevent:
      
        Tzvetomir Stoyanov:
      
        - Add man pages for the various APIs.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      62e1c094
  3. 17 May, 2019 30 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 72cf0b07
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Just a few HD-audio fixes, most of which are specific to Realtek
        codecs"
      
      * tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal microphone bug
        ALSA: hda: Fix race between creating and refreshing sysfs entries
        ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14)
        ALSA: hda/realtek - Avoid superfluous COEF EAPD setups
        ALSA: hda/realtek - Fixup headphone noise via runtime suspend
      72cf0b07
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 0ef0fd35
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "ARM:
         - support for SVE and Pointer Authentication in guests
         - PMU improvements
      
        POWER:
         - support for direct access to the POWER9 XIVE interrupt controller
         - memory and performance optimizations
      
        x86:
         - support for accessing memory not backed by struct page
         - fixes and refactoring
      
        Generic:
         - dirty page tracking improvements"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (155 commits)
        kvm: fix compilation on aarch64
        Revert "KVM: nVMX: Expose RDPMC-exiting only when guest supports PMU"
        kvm: x86: Fix L1TF mitigation for shadow MMU
        KVM: nVMX: Disable intercept for FS/GS base MSRs in vmcs02 when possible
        KVM: PPC: Book3S: Remove useless checks in 'release' method of KVM device
        KVM: PPC: Book3S HV: XIVE: Fix spelling mistake "acessing" -> "accessing"
        KVM: PPC: Book3S HV: Make sure to load LPID for radix VCPUs
        kvm: nVMX: Set nested_run_pending in vmx_set_nested_state after checks complete
        tests: kvm: Add tests for KVM_SET_NESTED_STATE
        KVM: nVMX: KVM_SET_NESTED_STATE - Tear down old EVMCS state before setting new state
        tests: kvm: Add tests for KVM_CAP_MAX_VCPUS and KVM_CAP_MAX_CPU_ID
        tests: kvm: Add tests to .gitignore
        KVM: Introduce KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
        KVM: Fix kvm_clear_dirty_log_protect off-by-(minus-)one
        KVM: Fix the bitmap range to copy during clear dirty
        KVM: arm64: Fix ptrauth ID register masking logic
        KVM: x86: use direct accessors for RIP and RSP
        KVM: VMX: Use accessors for GPRs outside of dedicated caching logic
        KVM: x86: Omit caching logic for always-available GPRs
        kvm, x86: Properly check whether a pfn is an MMIO or not
        ...
      0ef0fd35
    • Linus Torvalds's avatar
      Merge tag 'nds32-for-linus-5.2-rc1' of... · 4489da71
      Linus Torvalds authored
      Merge tag 'nds32-for-linus-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux
      
      Pull nds32 updates from Greentime Hu:
      
       - Clean up codes and Makefile
      
       - Fix a vDSO bug
      
       - Remove useless functions/header files
      
       - Update git repo path in MAINTAINERS
      
      * tag 'nds32-for-linus-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:
        nds32: Fix vDSO clock_getres()
        MAINTAINERS: update nds32 git repo path
        nds32: don't export low-level cache flushing routines
        arch: nds32: Kconfig: pedantic formatting
        nds32: fix semicolon code style issue
        nds32: vdso: drop unnecessary cc-ldoption
        nds32: remove unused generic-y += cmpxchg-local.h
        nds32: Use the correct style for SPDX License Identifier
        nds32: remove __virt_to_bus and __bus_to_virt
        nds32: vdso: fix and clean-up Makefile
        nds32: add vmlinux.lds and vdso.so to .gitignore
        nds32: ex-exit: Remove unneeded need_resched() loop
        nds32/io: Remove useless definition of mmiowb()
        nds32: Removed unused thread flag TIF_USEDFPU
      4489da71
    • Linus Torvalds's avatar
      Merge tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 80111bfb
      Linus Torvalds authored
      Pull more s390 updates from Martin Schwidefsky:
      
       - Enhancements for the QDIO layer
      
       - Remove the RCP trace event
      
       - Avoid three build issues
      
       - Move the defconfig to the configs directory
      
      * tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: move arch/s390/defconfig to arch/s390/configs/defconfig
        s390/qdio: optimize state inspection of HW-owned SBALs
        s390/qdio: use get_buf_state() in debug_get_buf_state()
        s390/qdio: allow to scan all Output SBALs in one go
        s390/cio: Remove tracing for rchp instruction
        s390/kasan: adapt disabled_wait usage to avoid build error
        latent_entropy: avoid build error when plugin cflags are not set
        s390/boot: fix compiler error due to missing awk strtonum
      80111bfb
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · bf8a9a47
      Linus Torvalds authored
      Pull more vfs mount updates from Al Viro:
       "Propagation of new syscalls to other architectures + cosmetic change
        from Christian (fscontext didn't follow the convention for anon inode
        names)"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        uapi: Wire up the mount API syscalls on non-x86 arches [ver #2]
        uapi, x86: Fix the syscall numbering of the mount API syscalls [ver #2]
        uapi, fsopen: use square brackets around "fscontext" [ver #2]
      bf8a9a47
    • Thomas Gleixner's avatar
      Merge tag 'timers-v5.2' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core · ea7a5f90
      Thomas Gleixner authored
      Pull clockevent updates from Daniel Lezcano:
      
       - Add compatible string for suniv for sun4i (Mesih Kilinc)
      
       - Add COMPILE_TEST option for sp804 (David Abdurachmanov)
      
       - Replace the compensation time when suspend happens on tegra with the one
         provided by the generic framework (Joseph Lo)
      
       - Cleanup, shutdown and oneshot mode fix on milbeaut timer (Sugaya Taichi)
      
       - Atmel TCB rework to fix boot failure on boards without PIT or misfunction
         on system using a preempt-rt kernel (Alexandre Belloni)
      ea7a5f90
    • Tobin C. Harding's avatar
      powerpc/cacheinfo: Remove double free · 672eaf37
      Tobin C. Harding authored
      kfree() after kobject_put(). Who ever wrote this was on crack.
      
      Fixes: 7e803979 ("powerpc/cacheinfo: Fix kobject memleak")
      Signed-off-by: default avatarTobin C. Harding <tobin@kernel.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      672eaf37
    • Aneesh Kumar K.V's avatar
      powerpc/mm/hash: Fix get_region_id() for invalid addresses · c179976c
      Aneesh Kumar K.V authored
      Accesses by userspace to random addresses outside the user or kernel
      address range will generate an SLB fault. When we handle that fault we
      classify the effective address into several classes, eg. user, kernel
      linear, kernel virtual etc.
      
      For addresses that are completely outside of any valid range, we
      should not insert an SLB entry at all, and instead immediately an
      exception.
      
      In the past this was handled in two ways. Firstly we would check the
      top nibble of the address (using REGION_ID(ea)) and that would tell us
      if the address was user (0), kernel linear (c), kernel virtual (d), or
      vmemmap (f). If the address didn't match any of these it was invalid.
      
      Then for each type of address we would do a secondary check. For the
      user region we check against H_PGTABLE_RANGE, for kernel linear we
      would mask the top nibble of the address and then check the address
      against MAX_PHYSMEM_BITS.
      
      As part of commit 0034d395 ("powerpc/mm/hash64: Map all the kernel
      regions in the same 0xc range") we replaced REGION_ID() with
      get_region_id() and changed the masking of the top nibble to only mask
      the top two bits, which introduced a bug.
      
      Addresses less than (4 << 60) are still handled correctly, they are
      either less than (1 << 60) in which case they are subject to the
      H_PGTABLE_RANGE check, or they are correctly checked against
      MAX_PHYSMEM_BITS.
      
      However addresses from (4 << 60) to ((0xc << 60) - 1), are incorrectly
      treated as kernel linear addresses in get_region_id(). Then the top
      two bits are cleared by EA_MASK in slb_allocate_kernel() and the
      address is checked against MAX_PHYSMEM_BITS, which it passes due to
      the masking. The end result is we incorrectly insert SLB entries for
      those addresses.
      
      That is not actually catastrophic, having inserted the SLB entry we
      will then go on to take a page fault for the address and at that point
      we detect the problem and report it as a bad fault.
      
      Still we should not be inserting those entries, or treating them as
      kernel linear addresses in the first place. So fix get_region_id() to
      detect addresses in that range and return an invalid region id, which
      we cause use to not insert an SLB entry and directly report an
      exception.
      
      Fixes: 0034d395 ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range")
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      [mpe: Drop change to EA_MASK for now, rewrite change log]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      c179976c
    • Paolo Bonzini's avatar
      kvm: fix compilation on aarch64 · c011d23b
      Paolo Bonzini authored
      Commit e45adf66 ("KVM: Introduce a new guest mapping API", 2019-01-31)
      introduced a build failure on aarch64 defconfig:
      
      $ make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=out defconfig \
                      Image.gz
      ...
      ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:
          In function '__kvm_map_gfn':
      ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1763:9: error:
          implicit declaration of function 'memremap'; did you mean 'memset_p'?
      ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1763:46: error:
          'MEMREMAP_WB' undeclared (first use in this function)
      ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:
          In function 'kvm_vcpu_unmap':
      ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1795:3: error:
          implicit declaration of function 'memunmap'; did you mean 'vm_munmap'?
      
      because these functions are declared in <linux/io.h> rather than <asm/io.h>,
      and the former was being pulled in already on x86 but not on aarch64.
      Reported-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      c011d23b
    • Nathan Chancellor's avatar
      objtool: Allow AR to be overridden with HOSTAR · 8ea58f1e
      Nathan Chancellor authored
      Currently, this Makefile hardcodes GNU ar, meaning that if it is not
      available, there is no way to supply a different one and the build will
      fail.
      
        $ make AR=llvm-ar CC=clang LD=ld.lld HOSTAR=llvm-ar HOSTCC=clang \
               HOSTLD=ld.lld HOSTLDFLAGS=-fuse-ld=lld defconfig modules_prepare
        ...
          AR       /out/tools/objtool/libsubcmd.a
        /bin/sh: 1: ar: not found
        ...
      
      Follow the logic of HOST{CC,LD} and allow the user to specify a
      different ar tool via HOSTAR (which is used elsewhere in other
      tools/ Makefiles).
      Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarMukesh Ojha <mojha@codeaurora.org>
      Cc: <stable@vger.kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/80822a9353926c38fd7a152991c6292491a9d0e8.1558028966.git.jpoimboe@redhat.com
      Link: https://github.com/ClangBuiltLinux/linux/issues/481Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      8ea58f1e
    • Ard Biesheuvel's avatar
      fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types · f8585539
      Ard Biesheuvel authored
      The following commit:
      
        38ac0287 ("fbdev/efifb: Honour UEFI memory map attributes when mapping the FB")
      
      updated the EFI framebuffer code to use memory mappings for the linear
      framebuffer that are permitted by the memory attributes described by the
      EFI memory map for the particular region, if the framebuffer happens to
      be covered by the EFI memory map (which is typically only the case for
      framebuffers in shared memory). This is required since non-x86 systems
      may require cacheable attributes for memory mappings that are shared
      with other masters (such as GPUs), and this information cannot be
      described by the Graphics Output Protocol (GOP) EFI protocol itself,
      and so we rely on the EFI memory map for this.
      
      As reported by James, this breaks some x86 systems:
      
        [ 1.173368] efifb: probing for efifb
        [ 1.173386] efifb: abort, cannot remap video memory 0x1d5000 @ 0xcf800000
        [ 1.173395] Trying to free nonexistent resource <00000000cf800000-00000000cf9d4bff>
        [ 1.173413] efi-framebuffer: probe of efi-framebuffer.0 failed with error -5
      
      The problem turns out to be that the memory map entry that describes the
      framebuffer has no memory attributes listed at all, and so we end up with
      a mem_flags value of 0x0.
      
      So work around this by ensuring that the memory map entry's attribute field
      has a sane value before using it to mask the set of usable attributes.
      Reported-by: default avatarJames Hilliard <james.hilliard1@gmail.com>
      Tested-by: default avatarJames Hilliard <james.hilliard1@gmail.com>
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: <stable@vger.kernel.org> # v4.19+
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: James Morse <james.morse@arm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Matt Fleming <matt@codeblueprint.co.uk>
      Cc: Peter Jones <pjones@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-efi@vger.kernel.org
      Fixes: 38ac0287 ("fbdev/efifb: Honour UEFI memory map attributes when ...")
      Link: http://lkml.kernel.org/r/20190516213159.3530-2-ard.biesheuvel@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      f8585539
    • Andreas Schwab's avatar
      riscv: fix locking violation in page fault handler · 8fef9900
      Andreas Schwab authored
      When a user mode process accesses an address in the vmalloc area
      do_page_fault tries to unlock the mmap semaphore when it isn't locked.
      Signed-off-by: default avatarAndreas Schwab <schwab@suse.de>
      [Palmer: Duplicated code instead of a goto]
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      8fef9900
    • Yash Shah's avatar
      RISC-V: sifive_l2_cache: Add L2 cache controller driver for SiFive SoCs · a967a289
      Yash Shah authored
      The driver currently supports only SiFive FU540-C000 platform.
      
      The initial version of L2 cache controller driver includes:
      - Initial configuration reporting at boot up.
      - Support for ECC related functionality.
      Signed-off-by: default avatarYash Shah <yash.shah@sifive.com>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      a967a289
    • Yash Shah's avatar
      RISC-V: Add DT documentation for SiFive L2 Cache Controller · 5545b6d1
      Yash Shah authored
      Add device tree bindings for SiFive FU540 L2 cache controller driver
      Signed-off-by: default avatarYash Shah <yash.shah@sifive.com>
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      5545b6d1
    • Palmer Dabbelt's avatar
      RISC-V: Avoid using invalid intermediate translations · 4c3aeb82
      Palmer Dabbelt authored
      This is almost entirely a comment.
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      Reviewed-by: default avatarAnup Patel <anup@brainfault.org>
      4c3aeb82
    • Vincent Chen's avatar
      riscv: Support BUG() in kernel module · 9a6e7af0
      Vincent Chen authored
      The kernel module is loaded into vmalloc region which is located below
      to the PAGE_OFFSET. Hence the condition, pc < PAGE_OFFSET, in the
      is_valid_bugaddr() will filter out all trap exceptions triggered
      by kernel module. To support BUG() in kernel module, the condition is
      changed to pc < VMALLOC_START.
      Signed-off-by: default avatarVincent Chen <vincentc@andestech.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      9a6e7af0
    • Vincent Chen's avatar
      riscv: Add the support for c.ebreak check in is_valid_bugaddr() · ee72e0e7
      Vincent Chen authored
      The macro __BUG_INSN currently is defined as the "ebreak" opcode.
      The is_valid_bugaddr() function compares the instruction pointed to by
      $sepc with macro __BUG_INSN to check whether the current trap exception
      is caused by an "ebreak" instruction. However, this check flow is possibly
      erroneous because if C extension is supported, the expected trap
      instruction "ebreak" is possibly translated to "c.ebreak" by the assembler.
      Therefore, it requires a mechanism to distinguish the length of the
      instruction in $spec and compare it to the correct trap instruction.
      Signed-off-by: default avatarVincent Chen <vincentc@andestech.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      ee72e0e7
    • Vincent Chen's avatar
      riscv: support trap-based WARN() · d18ebc27
      Vincent Chen authored
      The WARN() related function will trigger a debug exception. This can help
      developers to analyze the cause of WARN() because if the debugger is
      connected, the control flow will be transferred to debugging
      environment.
      Signed-off-by: default avatarVincent Chen <vincentc@andestech.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      d18ebc27
    • Gary Guo's avatar
      riscv: fix sbi_remote_sfence_vma{,_asid}. · a21344df
      Gary Guo authored
      Currently sbi_remote_sfence_vma{,_asid} does not pass their arguments
      to SBI at all, which is semantically incorrect.
      
      Neither BBL nor OpenSBI is using these arguments at the moment, and
      they just do a global flush instead. However we still need to provide
      correct arguments.
      Signed-off-by: default avatarGary Guo <gary@garyguo.net>
      Reviewed-by: default avatarAnup Patel <anup@brainfault.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      a21344df
    • Gary Guo's avatar
      riscv: move switch_mm to its own file · f6635f87
      Gary Guo authored
      switch_mm is an expensive operations that has two users.
      flush_icache_deferred is only called within switch_mm and can be moved
      together. The function is expected to be more complicated when ASID
      support is added, so clean up eagerly.
      
      By moving them to a separate file we also removes some excessive
      dependency of tlbflush.h and cacheflush.h.
      Signed-off-by: default avatarGary Guo <gary@garyguo.net>
      Reviewed-by: default avatarAnup Patel <anup@brainfault.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      f6635f87
    • Gary Guo's avatar
      riscv: move flush_icache_{all,mm} to cacheflush.c · 58de7754
      Gary Guo authored
      Currently, flush_icache_all is macro-expanded into a SBI call, yet no
      asm/sbi.h is included in asm/cacheflush.h. This could be moved to
      mm/cacheflush.c instead (SBI call will dominate performance-wise and
      there is no worry to not have it inlined.
      
      Currently, flush_icache_mm stays in kernel/smp.c, which looks like a
      hack to prevent it from being compiled when CONFIG_SMP=n. It should
      also be in mm/cacheflush.c.
      Signed-off-by: default avatarGary Guo <gary@garyguo.net>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      58de7754
    • Anup Patel's avatar
      tty: Don't force RISCV SBI console as preferred console · f91253a3
      Anup Patel authored
      The Linux kernel will auto-disables all boot consoles whenever it
      gets a preferred real console.
      
      Currently on RISC-V systems, if we have a real console which is not
      RISCV SBI console then boot consoles (such as earlycon=sbi) are not
      auto-disabled when a real console (ttyS0 or ttySIF0) is available.
      This results in duplicate prints at boot-time after kernel starts
      using real console (i.e. ttyS0 or ttySIF0) if "earlycon=" kernel
      parameter was passed by bootloader.
      
      The reason for above issue is that RISCV SBI console always adds
      itself as preferred console which is causing other real consoles
      to be not used as preferred console.
      
      Ideally "console=" kernel parameter passed by bootloaders should
      be the one selecting a preferred real console.
      
      This patch fixes above issue by not forcing RISCV SBI console as
      preferred console.
      
      Fixes: afa6b1cc ("tty: New RISC-V SBI console driver")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAnup Patel <anup.patel@wdc.com>
      Reviewed-by: default avatarAtish Patra <atish.patra@wdc.com>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      f91253a3
    • Anup Patel's avatar
      RISC-V: Access CSRs using CSR numbers · a3182c91
      Anup Patel authored
      We should prefer accessing CSRs using their CSR numbers because:
      1. It compiles fine with older toolchains.
      2. We can use latest CSR names in #define macro names of CSR numbers
         as-per RISC-V spec.
      3. We can access newly added CSRs even if toolchain does not recognize
         newly addes CSRs by name.
      Signed-off-by: default avatarAnup Patel <anup.patel@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      a3182c91
    • Anup Patel's avatar
      RISC-V: Add interrupt related SCAUSE defines in asm/csr.h · 6dcaf004
      Anup Patel authored
      This patch adds SCAUSE interrupt flag and SCAUSE interrupt related
      defines to asm/csr.h. We also use these defines in kernel/irq.c and
      express SIE/SIP flags in-terms of SCAUSE interrupt causes.
      Signed-off-by: default avatarAnup Patel <anup.patel@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      6dcaf004
    • Anup Patel's avatar
      RISC-V: Use tabs to align macro values in asm/csr.h · 196a14d4
      Anup Patel authored
      The spacing between macro name and value is not consistent in
      asm/csr.h. This patch beautifies asm/csr.h by using tabs to align
      macro values instead of spaces.
      Signed-off-by: default avatarAnup Patel <anup.patel@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      196a14d4
    • Atish Patra's avatar
      RISC-V: Fix minor checkpatch issues. · f1f47c6c
      Atish Patra authored
      While working on the patches, I found some minor checkpatch issues.
      Signed-off-by: default avatarAtish Patra <atish.patra@wdc.com>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      f1f47c6c
    • Atish Patra's avatar
      RISC-V: Support nr_cpus command line option. · 8b4302a4
      Atish Patra authored
      If nr_cpus command line option is set, maximum possible cpu should be
      set to that value.
      Signed-off-by: default avatarAtish Patra <atish.patra@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPalmer Dabbelt <palmer@sifive.com>
      8b4302a4
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190516' of git://git.kernel.dk/linux-block · a6a4b66b
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "A small set of fixes for io_uring.
      
        This contains:
      
         - smp_rmb() cleanup for io_cqring_events() (Jackie)
      
         - io_cqring_wait() simplification (Jackie)
      
         - removal of dead 'ev_flags' passing (me)
      
         - SQ poll CPU affinity verification fix (me)
      
         - SQ poll wait fix (Roman)
      
         - SQE command prep cleanup and fix (Stefan)"
      
      * tag 'for-linus-20190516' of git://git.kernel.dk/linux-block:
        io_uring: use wait_event_interruptible for cq_wait conditional wait
        io_uring: adjust smp_rmb inside io_cqring_events
        io_uring: fix infinite wait in khread_park() on io_finish_async()
        io_uring: remove 'ev_flags' argument
        io_uring: fix failure to verify SQ_AFF cpu
        io_uring: fix race condition reading SQE data
      a6a4b66b
    • Linus Torvalds's avatar
      Merge tag 'for-5.2/block-post-20190516' of git://git.kernel.dk/linux-block · 1718de78
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
       "This is mainly some late lightnvm changes that came in just before the
        merge window, as well as fixes that have been queued up since the
        initial pull request was frozen.
      
        This contains:
      
         - lightnvm changes, fixing race conditions, improving memory
           utilization, and improving pblk compatability (Chansol, Igor,
           Marcin)
      
         - NVMe pull request with minor fixes all over the map (via Christoph)
      
         - remove redundant error print in sata_rcar (Geert)
      
         - struct_size() cleanup (Jackie)
      
         - dasd CONFIG_LBADF warning fix (Ming)
      
         - brd cond_resched() improvement (Mikulas)"
      
      * tag 'for-5.2/block-post-20190516' of git://git.kernel.dk/linux-block: (41 commits)
        block/bio-integrity: use struct_size() in kmalloc()
        nvme: validate cntlid during controller initialisation
        nvme: change locking for the per-subsystem controller list
        nvme: trace all async notice events
        nvme: fix typos in nvme status code values
        nvme-fabrics: remove unused argument
        nvme-multipath: avoid crash on invalid subsystem cntlid enumeration
        nvme-fc: use separate work queue to avoid warning
        nvme-rdma: remove redundant reference between ib_device and tagset
        nvme-pci: mark expected switch fall-through
        nvme-pci: add known admin effects to augument admin effects log page
        nvme-pci: init shadow doorbell after each reset
        brd: add cond_resched to brd_free_pages
        sata_rcar: Remove ata_host_alloc() error printing
        s390/dasd: fix build warning in dasd_eckd_build_cp_raw
        lightnvm: pblk: use nvm_rq_to_ppa_list()
        lightnvm: pblk: simplify partial read path
        lightnvm: do not remove instance under global lock
        lightnvm: track inflight target creations
        lightnvm: pblk: recover only written metadata
        ...
      1718de78
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 815d469d
      Linus Torvalds authored
      Pull more clk framework updates from Stephen Boyd:
       "One more patch to remove io.h from clk-provider.h.
      
        We used to need this include when we had clk_readl() and clk_writel(),
        but those are gone now so this patch pushes the dependency out to the
        users of clk-provider.h"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: Remove io.h from clk-provider.h
      815d469d