1. 22 Aug, 2018 14 commits
    • Peter Xu's avatar
      kvm: selftest: unify the guest port macros · 4e18bccc
      Peter Xu authored
      Most of the tests are using the same way to do guest to host sync but
      the code is mostly duplicated.  Generalize the guest port macros into
      the common header file and use it in different tests.
      
      Meanwhile provide "struct guest_args" and a helper "guest_args_read()"
      to hide the register details when playing with these port operations on
      RDI and RSI.
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      4e18bccc
    • Peter Xu's avatar
      tools: introduce test_and_clear_bit · 07a262cc
      Peter Xu authored
      We have test_and_set_bit but not test_and_clear_bit.  Add it.
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      07a262cc
    • Thomas Gleixner's avatar
      KVM: x86: SVM: Call x86_spec_ctrl_set_guest/host() with interrupts disabled · 024d83ca
      Thomas Gleixner authored
      Mikhail reported the following lockdep splat:
      
      WARNING: possible irq lock inversion dependency detected
      CPU 0/KVM/10284 just changed the state of lock:
        000000000d538a88 (&st->lock){+...}, at:
        speculative_store_bypass_update+0x10b/0x170
      
      but this lock was taken by another, HARDIRQ-safe lock
      in the past:
      
      (&(&sighand->siglock)->rlock){-.-.}
      
         and interrupts could create inverse lock ordering between them.
      
      Possible interrupt unsafe locking scenario:
      
          CPU0                    CPU1
          ----                    ----
         lock(&st->lock);
                                 local_irq_disable();
                                 lock(&(&sighand->siglock)->rlock);
                                 lock(&st->lock);
          <Interrupt>
           lock(&(&sighand->siglock)->rlock);
           *** DEADLOCK ***
      
      The code path which connects those locks is:
      
         speculative_store_bypass_update()
         ssb_prctl_set()
         do_seccomp()
         do_syscall_64()
      
      In svm_vcpu_run() speculative_store_bypass_update() is called with
      interupts enabled via x86_virt_spec_ctrl_set_guest/host().
      
      This is actually a false positive, because GIF=0 so interrupts are
      disabled even if IF=1; however, we can easily move the invocations of
      x86_virt_spec_ctrl_set_guest/host() into the interrupt disabled region to
      cure it, and it's a good idea to keep the GIF=0/IF=1 area as small
      and self-contained as possible.
      
      Fixes: 1f50ddb4 ("x86/speculation: Handle HT correctly on AMD")
      Reported-by: default avatarMikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Tested-by: default avatarMikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
      Cc: Joerg Roedel <joro@8bytes.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: kvm@vger.kernel.org
      Cc: x86@kernel.org
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      024d83ca
    • Sean Christopherson's avatar
      KVM: vmx: Inject #UD for SGX ENCLS instruction in guest · 0b665d30
      Sean Christopherson authored
      Virtualization of Intel SGX depends on Enclave Page Cache (EPC)
      management that is not yet available in the kernel, i.e. KVM support
      for exposing SGX to a guest cannot be added until basic support
      for SGX is upstreamed, which is a WIP[1].
      
      Until SGX is properly supported in KVM, ensure a guest sees expected
      behavior for ENCLS, i.e. all ENCLS #UD.  Because SGX does not have a
      true software enable bit, e.g. there is no CR4.SGXE bit, the ENCLS
      instruction can be executed[1] by the guest if SGX is supported by the
      system.  Intercept all ENCLS leafs (via the ENCLS- exiting control and
      field) and unconditionally inject #UD.
      
      [1] https://www.spinics.net/lists/kvm/msg171333.html or
          https://lkml.org/lkml/2018/7/3/879
      
      [2] A guest can execute ENCLS in the sense that ENCLS will not take
          an immediate #UD, but no ENCLS will ever succeed in a guest
          without explicit support from KVM (map EPC memory into the guest),
          unless KVM has a *very* egregious bug, e.g. accidentally mapped
          EPC memory into the guest SPTEs.  In other words this patch is
          needed only to prevent the guest from seeing inconsistent behavior,
          e.g. #GP (SGX not enabled in Feature Control MSR) or #PF (leaf
          operand(s) does not point at EPC memory) instead of #UD on ENCLS.
          Intercepting ENCLS is not required to prevent the guest from truly
          utilizing SGX.
      Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
      Message-Id: <20180814163334.25724-3-sean.j.christopherson@intel.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0b665d30
    • Sean Christopherson's avatar
      KVM: vmx: Add defines for SGX ENCLS exiting · 802ec461
      Sean Christopherson authored
      Hardware support for basic SGX virtualization adds a new execution
      control (ENCLS_EXITING), VMCS field (ENCLS_EXITING_BITMAP) and exit
      reason (ENCLS), that enables a VMM to intercept specific ENCLS leaf
      functions, e.g. to inject faults when the VMM isn't exposing SGX to
      a VM.  When ENCLS_EXITING is enabled, the VMM can set/clear bits in
      the bitmap to intercept/allow ENCLS leaf functions in non-root, e.g.
      setting bit 2 in the ENCLS_EXITING_BITMAP will cause ENCLS[EINIT]
      to VMExit(ENCLS).
      
      Note: EXIT_REASON_ENCLS was previously added by commit 1f519992
      ("KVM: VMX: add missing exit reasons").
      Signed-off-by: default avatarSean Christopherson <sean.j.christopherson@intel.com>
      Message-Id: <20180814163334.25724-2-sean.j.christopherson@intel.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      802ec461
    • Yi Wang's avatar
      x86/kvm/vmx: Fix coding style in vmx_setup_l1d_flush() · d806afa4
      Yi Wang authored
      Substitute spaces with tab. No functional changes.
      Signed-off-by: default avatarYi Wang <wang.yi59@zte.com.cn>
      Reviewed-by: default avatarJiang Biao <jiang.biao2@zte.com.cn>
      Message-Id: <1534398159-48509-1-git-send-email-wang.yi59@zte.com.cn>
      Cc: stable@vger.kernel.org # L1TF
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      d806afa4
    • Arnd Bergmann's avatar
      x86: kvm: avoid unused variable warning · 7288bde1
      Arnd Bergmann authored
      Removing one of the two accesses of the maxphyaddr variable led to
      a harmless warning:
      
      arch/x86/kvm/x86.c: In function 'kvm_set_mmio_spte_mask':
      arch/x86/kvm/x86.c:6563:6: error: unused variable 'maxphyaddr' [-Werror=unused-variable]
      
      Removing the #ifdef seems to be the nicest workaround, as it
      makes the code look cleaner than adding another #ifdef.
      
      Fixes: 28a1f3ac ("kvm: x86: Set highest physical address bits in non-present/reserved SPTEs")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: stable@vger.kernel.org # L1TF
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7288bde1
    • Dongjiu Geng's avatar
      KVM: Documentation: rename the capability of KVM_CAP_ARM_SET_SERROR_ESR · 688e0581
      Dongjiu Geng authored
      In the documentation description, this capability's name is
      KVM_CAP_ARM_SET_SERROR_ESR, but in the header file this
      capability's name is KVM_CAP_ARM_INJECT_SERROR_ESR, so change
      the documentation description to make it same.
      Signed-off-by: default avatarDongjiu Geng <gengdongjiu@huawei.com>
      Reported-by: default avatarAndrew Jones <drjones@redhat.com>
      Reviewed-by: default avatarAndrew Jones <drjones@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      688e0581
    • Paolo Bonzini's avatar
      Merge tag 'kvmarm-for-v4.19' of... · 63198930
      Paolo Bonzini authored
      Merge tag 'kvmarm-for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
      
      KVM/arm updates for 4.19
      
      - Support for Group0 interrupts in guests
      - Cache management optimizations for ARMv8.4 systems
      - Userspace interface for RAS, allowing error retrival and injection
      - Fault path optimization
      - Emulated physical timer fixes
      - Random cleanups
      63198930
    • Linus Torvalds's avatar
      Merge tag 'fuse-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · ad1d6973
      Linus Torvalds authored
      Pull fuse update from Miklos Szeredi:
       "Various bug fixes and cleanups"
      
      * tag 'fuse-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: reduce allocation size for splice_write
        fuse: use kvmalloc to allocate array of pipe_buffer structs.
        fuse: convert last timespec use to timespec64
        fs: fuse: Adding new return type vm_fault_t
        fuse: simplify fuse_abort_conn()
        fuse: Add missed unlock_page() to fuse_readpages_fill()
        fuse: Don't access pipe->buffers without pipe_lock()
        fuse: fix initial parallel dirops
        fuse: Fix oops at process_init_reply()
        fuse: umount should wait for all requests
        fuse: fix unlocked access to processing queue
        fuse: fix double request_end()
      ad1d6973
    • Linus Torvalds's avatar
      Merge tag 'ovl-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · d9a185f8
      Linus Torvalds authored
      Pull overlayfs updates from Miklos Szeredi:
       "This contains two new features:
      
         - Stack file operations: this allows removal of several hacks from
           the VFS, proper interaction of read-only open files with copy-up,
           possibility to implement fs modifying ioctls properly, and others.
      
         - Metadata only copy-up: when file is on lower layer and only
           metadata is modified (except size) then only copy up the metadata
           and continue to use the data from the lower file"
      
      * tag 'ovl-update-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: (66 commits)
        ovl: Enable metadata only feature
        ovl: Do not do metacopy only for ioctl modifying file attr
        ovl: Do not do metadata only copy-up for truncate operation
        ovl: add helper to force data copy-up
        ovl: Check redirect on index as well
        ovl: Set redirect on upper inode when it is linked
        ovl: Set redirect on metacopy files upon rename
        ovl: Do not set dentry type ORIGIN for broken hardlinks
        ovl: Add an inode flag OVL_CONST_INO
        ovl: Treat metacopy dentries as type OVL_PATH_MERGE
        ovl: Check redirects for metacopy files
        ovl: Move some dir related ovl_lookup_single() code in else block
        ovl: Do not expose metacopy only dentry from d_real()
        ovl: Open file with data except for the case of fsync
        ovl: Add helper ovl_inode_realdata()
        ovl: Store lower data inode in ovl_inode
        ovl: Fix ovl_getattr() to get number of blocks from lower
        ovl: Add helper ovl_dentry_lowerdata() to get lower data dentry
        ovl: Copy up meta inode data from lowest data inode
        ovl: Modify ovl_lookup() and friends to lookup metacopy dentry
        ...
      d9a185f8
    • Linus Torvalds's avatar
      Merge tag 'xfs-4.19-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · c22fc16d
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
      
       - Fix an uninitialized variable
      
       - Don't use obviously garbage AG header counters to calculate
         transaction reservations
      
       - Trigger icount recalculation on bad icount when mounting
      
      * tag 'xfs-4.19-merge-7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: fix WARN_ON_ONCE on uninitialized variable
        xfs: sanity check ag header values in xrep_calc_ag_resblks
        xfs: recalculate summary counters at mount time if icount is bad
      c22fc16d
    • Linus Torvalds's avatar
      Merge tag 'for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · c1fecabe
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - Improve support for TI bq20z75 in sbs-battery
      
       - Add Qualcomm PM8xxx reboot driver
      
       - Add cros-ec USBPD charger driver
      
       - Move ds2760 battery driver from w1 to power-supply and add DT support
      
       - Misc fixes
      
      * tag 'for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (28 commits)
        power: supply: bq27xxx: Update comments
        power: supply: max77693_charger: fix unintentional fall-through
        power: supply: mark expected switch fall-throughs
        power: supply: lego_ev3_battery: fix Vce offset
        power: supply: lego_ev3_battery: Don't ignore iio_read_channel_processed() return value
        power: supply: ds2760_battery: add devicetree probing
        power: supply: ds2760_battery: merge ds2760 supply driver with its w1 slave companion
        w1: core: match sub-nodes of bus masters in devicetree
        dt-bindings: w1: document bindings for ds2760 battery monitor
        dt-bindings: w1: document generic onewire bindings
        power: supply: adp5061: Fix a couple off by ones
        dt-bindings: power: reset: qcom: Add resin binding
        adp5061: New driver for ADP5061 I2C battery charger
        power: generic-adc-battery: check for duplicate properties copied from iio channels
        power: generic-adc-battery: fix out-of-bounds write when copying channel properties
        power: supply: axp288_charger: Fix initial constant_charge_current value
        power: supply: ab8500: stop using getnstimeofday64()
        power: gemini-poweroff: Avoid more spurious poweroffs
        power: vexpress: fix corruption in notifier registration
        power: remove possible deadlock when unregistering power_supply
        ...
      c1fecabe
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 99cc7ad4
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
      
       - the core has now a lockless variant of i2c_smbus_xfer. Some open
         coded versions of this got removed in drivers. This also enables
         proper SCCB support in regmap.
      
       - locking got a more precise naming. i2c_{un}lock_adapter() had to go,
         and we know use i2c_lock_bus() consistently with flags like
         I2C_LOCK_ROOT_ADAPTER and I2C_LOCK_SEGMENT to avoid ambiguity.
      
       - the gpio fault injector got a new delicate testcase
      
       - the bus recovery procedure got fixed to handle the new testcase
         correctly
      
       - a new quirk flag for controllers not able to handle zero length
         messages together with driver updates to use it
      
       - new drivers: FSI bus attached I2C masters, GENI I2C controller, Owl
         family S900
      
       - and a good set of driver improvements and bugfixes
      
      * 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (77 commits)
        i2c: rcar: implement STOP and REP_START according to docs
        i2c: rcar: refactor private flags
        i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return value
        i2c: core: ACPI: Properly set status byte to 0 for multi-byte writes
        dt-bindings: i2c: rcar: Add r8a774a1 support
        dt-bindings: i2c: sh_mobile: Add r8a774a1 support
        i2c: imx: Simplify stopped state tracking
        i2c: imx: Fix race condition in dma read
        i2c: pasemi: remove hardcoded bus numbers on smbus
        i2c: designware: Add SPDX license tag
        i2c: designware: Convert to use struct i2c_timings
        i2c: core: Parse SDA hold time from firmware
        i2c: designware-pcidrv: Mark expected switch fall-through
        i2c: amd8111: Mark expected switch fall-through
        i2c: sh_mobile: use core to detect 'no zero length read' quirk
        i2c: xlr: use core to detect 'no zero length' quirk
        i2c: rcar: use core to detect 'no zero length' quirk
        i2c: stu300: use core to detect 'no zero length' quirk
        i2c: pmcmsp: use core to detect 'no zero length' quirk
        i2c: mxs: use core to detect 'no zero length' quirk
        ...
      99cc7ad4
  2. 21 Aug, 2018 8 commits
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · 0214f46b
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull core signal handling updates from Eric Biederman:
       "It was observed that a periodic timer in combination with a
        sufficiently expensive fork could prevent fork from every completing.
        This contains the changes to remove the need for that restart.
      
        This set of changes is split into several parts:
      
         - The first part makes PIDTYPE_TGID a proper pid type instead
           something only for very special cases. The part starts using
           PIDTYPE_TGID enough so that in __send_signal where signals are
           actually delivered we know if the signal is being sent to a a group
           of processes or just a single process.
      
         - With that prep work out of the way the logic in fork is modified so
           that fork logically makes signals received while it is running
           appear to be received after the fork completes"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (22 commits)
        signal: Don't send signals to tasks that don't exist
        signal: Don't restart fork when signals come in.
        fork: Have new threads join on-going signal group stops
        fork: Skip setting TIF_SIGPENDING in ptrace_init_task
        signal: Add calculate_sigpending()
        fork: Unconditionally exit if a fatal signal is pending
        fork: Move and describe why the code examines PIDNS_ADDING
        signal: Push pid type down into complete_signal.
        signal: Push pid type down into __send_signal
        signal: Push pid type down into send_signal
        signal: Pass pid type into do_send_sig_info
        signal: Pass pid type into send_sigio_to_task & send_sigurg_to_task
        signal: Pass pid type into group_send_sig_info
        signal: Pass pid and pid type into send_sigqueue
        posix-timers: Noralize good_sigevent
        signal: Use PIDTYPE_TGID to clearly store where file signals will be sent
        pid: Implement PIDTYPE_TGID
        pids: Move the pgrp and session pid pointers from task_struct to signal_struct
        kvm: Don't open code task_pid in kvm_vcpu_ioctl
        pids: Compute task_tgid using signal->leader_pid
        ...
      0214f46b
    • Linus Torvalds's avatar
      Merge tag 'chrome-platform-for-linus-4.19' of... · 40fafdcb
      Linus Torvalds authored
      Merge tag 'chrome-platform-for-linus-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform
      
      Pull chrome platform updates from Benson Leung.
      
      Everything but the SPDX identifier updates actually came in earlier
      through the MFD merge.
      
      * tag 'chrome-platform-for-linus-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform:
        platform/chrome: chromeos_tbmc - fix SPDX identifier
      40fafdcb
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v4.19-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 5e268309
      Linus Torvalds authored
      Pull arch/microblaze updates from Michal Simek:
      
       - use generic noncoherent direct mapping
      
       - use LDFLAGS instead of LD
      
       - pci error path fix
      
       - remove incorrect comments
      
      * tag 'microblaze-v4.19-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze/PCI: Remove stale pcibios_align_resource() comment
        microblaze: delete wrong comment about machine_early_init
        microblaze: add endianness options to LDFLAGS instead of LD
        microblaze: remove consistent_sync and consistent_sync_page
        microblaze: use generic dma_noncoherent_ops
        microblaze: warn if of_iomap() failed
      5e268309
    • Lorenzo Pieralisi's avatar
      microblaze/PCI: Remove stale pcibios_align_resource() comment · c4347b05
      Lorenzo Pieralisi authored
      commit 01cf9d52 ("microblaze/PCI: Support generic Xilinx AXI PCIe Host
      Bridge IP driver")
      
      and
      
      commit ecf677c8 ("PCI: Add a generic weak pcibios_align_resource()")
      
      first patched then removed pcibios_align_resource() from the microblaze
      architecture code but failed to remove the comment that was added to
      it.
      
      Remove it since it has now become stale and it is quite confusing.
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Bharat Kumar Gogada <bharatku@xilinx.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
      c4347b05
    • Linus Torvalds's avatar
      Merge tag 'please-pull-noboot' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 778a3395
      Linus Torvalds authored
      Pull ia64 NO_BOOTMEM conversion from Tony Luck:
       "Mike Rapoport kindly fixed up ia64 to work with NO_BOOTMEM"
      
      * tag 'please-pull-noboot' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        ia64: switch to NO_BOOTMEM
        ia64: use mem_data to detect nodes' minimal and maximal PFNs
        ia64: remove unused num_dma_physpages member from 'struct early_node_data'
        ia64: contig/paging_init: reduce code duplication
      778a3395
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.19-rc1' of... · 6b2edf27
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest update from Shuah Khan:
      
       - add cgroup core selftests
      
       - fix compile warnings in android ion test
      
       - fix to bugs in exclude and skip paths in vDSO test
      
       - remove obsolete config options
      
       - add missing .gitignore file
      
      * tag 'linux-kselftest-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/ftrace: Fix kprobe string testcase to not probe notrace function
        selftests: mount: remove no longer needed config option
        selftests: cgroup: add gitignore file
        Add cgroup core selftests
        selftests: vDSO - fix to return KSFT_SKIP when test couldn't be run
        selftests: vDSO - fix to exclude x86 test on non-x86 platforms
        selftests/android: initialize heap_type to avoid compiling warning
      6b2edf27
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 7140ad38
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Restructure of lockdep and latency tracers
      
         This is the biggest change. Joel Fernandes restructured the hooks
         from irqs and preemption disabling and enabling. He got rid of a lot
         of the preprocessor #ifdef mess that they caused.
      
         He turned both lockdep and the latency tracers to use trace events
         inserted in the preempt/irqs disabling paths. But unfortunately,
         these started to cause issues in corner cases. Thus, parts of the
         code was reverted back to where lockdep and the latency tracers just
         get called directly (without using the trace events). But because the
         original change cleaned up the code very nicely we kept that, as well
         as the trace events for preempt and irqs disabling, but they are
         limited to not being called in NMIs.
      
       - Have trace events use SRCU for "rcu idle" calls. This was required
         for the preempt/irqs off trace events. But it also had to not allow
         them to be called in NMI context. Waiting till Paul makes an NMI safe
         SRCU API.
      
       - New notrace SRCU API to allow trace events to use SRCU.
      
       - Addition of mcount-nop option support
      
       - SPDX headers replacing GPL templates.
      
       - Various other fixes and clean ups.
      
       - Some fixes are marked for stable, but were not fully tested before
         the merge window opened.
      
      * tag 'trace-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (44 commits)
        tracing: Fix SPDX format headers to use C++ style comments
        tracing: Add SPDX License format tags to tracing files
        tracing: Add SPDX License format to bpf_trace.c
        blktrace: Add SPDX License format header
        s390/ftrace: Add -mfentry and -mnop-mcount support
        tracing: Add -mcount-nop option support
        tracing: Avoid calling cc-option -mrecord-mcount for every Makefile
        tracing: Handle CC_FLAGS_FTRACE more accurately
        Uprobe: Additional argument arch_uprobe to uprobe_write_opcode()
        Uprobes: Simplify uprobe_register() body
        tracepoints: Free early tracepoints after RCU is initialized
        uprobes: Use synchronize_rcu() not synchronize_sched()
        tracing: Fix synchronizing to event changes with tracepoint_synchronize_unregister()
        ftrace: Remove unused pointer ftrace_swapper_pid
        tracing: More reverting of "tracing: Centralize preemptirq tracepoints and unify their usage"
        tracing/irqsoff: Handle preempt_count for different configs
        tracing: Partial revert of "tracing: Centralize preemptirq tracepoints and unify their usage"
        tracing: irqsoff: Account for additional preempt_disable
        trace: Use rcu_dereference_raw for hooks from trace-event subsystem
        tracing/kprobes: Fix within_notrace_func() to check only notrace functions
        ...
      7140ad38
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.19-rc1' of git://github.com/ceph/ceph-client · 0a78ac4b
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "The main things are support for cephx v2 authentication protocol and
        basic support for rbd images within namespaces (myself).
      
        Also included are y2038 conversion patches from Arnd, a pile of
        miscellaneous fixes from Chengguang and Zheng's feature bit
        infrastructure for the filesystem"
      
      * tag 'ceph-for-4.19-rc1' of git://github.com/ceph/ceph-client: (40 commits)
        ceph: don't drop message if it contains more data than expected
        ceph: support cephfs' own feature bits
        crush: fix using plain integer as NULL warning
        libceph: remove unnecessary non NULL check for request_key
        ceph: refactor error handling code in ceph_reserve_caps()
        ceph: refactor ceph_unreserve_caps()
        ceph: change to void return type for __do_request()
        ceph: compare fsc->max_file_size and inode->i_size for max file size limit
        ceph: add additional size check in ceph_setattr()
        ceph: add additional offset check in ceph_write_iter()
        ceph: add additional range check in ceph_fallocate()
        ceph: add new field max_file_size in ceph_fs_client
        libceph: weaken sizeof check in ceph_x_verify_authorizer_reply()
        libceph: check authorizer reply/challenge length before reading
        libceph: implement CEPHX_V2 calculation mode
        libceph: add authorizer challenge
        libceph: factor out encrypt_authorizer()
        libceph: factor out __ceph_x_decrypt()
        libceph: factor out __prepare_write_connect()
        libceph: store ceph_auth_handshake pointer in ceph_connection
        ...
      0a78ac4b
  3. 20 Aug, 2018 18 commits
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · bfebeb16
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "It is now possible to add custom sysfs attributes while avoiding a
        possible race condition. Unused code has been removed resulting in a
        nice reduction of the code base. And more drivers have been switched
        to SPDX by their maintainers.
      
       Summary:
      
        Subsystem:
         - new helpers to add custom sysfs attributes
         - struct rtc_task removal along with rtc_irq_[un]register()
         - rtc_irq_set_state and rtc_irq_set_freq are not exported anymore
      
        Drivers:
         - armada38x: reset after rtc power loss
         - ds1307: now supports m41t11
         - isl1208: now supports isl1219 and tamper detection
         - pcf2127: internal SRAM support"
      
      * tag 'rtc-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (34 commits)
        rtc: ds1307: simplify hwmon config
        rtc: s5m: Add SPDX license identifier
        rtc: maxim: Add SPDX license identifiers
        rtc: isl1219: add device tree documentation
        rtc: isl1208: set ev-evienb bit from device tree
        rtc: isl1208: Add "evdet" interrupt source for isl1219
        rtc: isl1208: add support for isl1219 with tamper detection
        rtc: sysfs: facilitate attribute add to rtc device
        rtc: remove struct rtc_task
        char: rtc: remove task handling
        rtc: pcf85063: preserve control register value between stop and start
        rtc: sh: remove unused variable rtc_dev
        rtc: unexport rtc_irq_set_*
        rtc: simplify rtc_irq_set_state/rtc_irq_set_freq
        rtc: remove irq_task and irq_task_lock
        rtc: remove rtc_irq_register/rtc_irq_unregister
        rtc: sh: remove dead code
        rtc: sa1100: don't set PIE frequency
        rtc: ds1307: support m41t11 variant
        rtc: ds1307: fix data pointer to m41t0
        ...
      bfebeb16
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching · 3933ec73
      Linus Torvalds authored
      Pull livepatching updates from Jiri Kosina:
       "Code cleanups from Kamalesh Babulal"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
        livepatch: Validate module/old func name length
        livepatch: Remove reliable stacktrace check in klp_try_switch_task()
      3933ec73
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 7a324b3f
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - touch_max detection improvements and quirk handling fixes in wacom
         driver from Jason Gerecke and Ping Cheng
      
       - Palm rejection from Dmitry Torokhov and _dial support from Benjamin
         Tissoires for hid-multitouch driver
      
       - Low voltage support for i2c-hid driver from Stephen Boyd
      
       - Guitar-Hero support from Nicolas Adenis-Lamarre
      
       - other assorted small fixes and device ID additions
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (40 commits)
        HID: intel_ish-hid: tx_buf memory leak on probe/remove
        HID: intel-ish-hid: Prevent loading of driver on Mehlow
        HID: cougar: Add support for the Cougar 500k Gaming Keyboard
        HID: cougar: make compare_device_paths reusable
        HID: intel-ish-hid: remove redundant variable num_frags
        HID: multitouch: handle palm for touchscreens
        HID: multitouch: touchscreens also use confidence reports
        HID: multitouch: report MT_TOOL_PALM for non-confident touches
        HID: microsoft: support the Surface Dial
        HID: core: do not upper bound the collection stack
        HID: input: enable Totem on the Dell Canvas 27
        HID: multitouch: remove one copy of values
        HID: multitouch: ditch mt_report_id
        HID: multitouch: store a per application quirks value
        HID: multitouch: Store per collection multitouch data
        HID: multitouch: make sure the static list of class is not changed
        input: add MT_TOOL_DIAL
        HID: elan: Add support for touchpad on the Toshiba Click Mini L9W
        HID: elan: Add USB-id for HP x2 10-n000nd touchpad
        HID: elan: Add a flag for selecting if the touchpad has a LED
        ...
      7a324b3f
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 61c4fc1e
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Core Framework:
         - Remove unused/obsolete code/comments
      
        New Functionality:
         - Allow less granular brightness specification for high-res PWMs; pwm_bl
         - Align brightness {inc,dec}rements with that perceived by the human-eye; pwm_bl
      
        Fix-ups:
         - Prepare for the introduction of -Wimplicit-fall-through; adp8860_bl
      
        Bug Fixes:
         - Fix uninitialised variable; pwm_bl"
      
      * tag 'backlight-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: pwm_bl: Fix uninitialized variable
        backlight: adp8860: Mark expected switch fall-through
        backlight: Remove obsolete comment for ->state
        dt-bindings: pwm-backlight: Move brightness-levels to optional
        backlight: pwm_bl: Compute brightness of LED linearly to human eye
        dt-bindings: pwm-backlight: Add a num-interpolation-steps property
        backlight: pwm_bl: Linear interpolation between brightness-levels
      61c4fc1e
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 532c2b92
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "New Drivers:
         - Add Cirrus Logic Madera Codec (CS47L35, CS47L85 and CS47L90/91) driver
         - Add ChromeOS EC CEC driver
         - Add ROHM BD71837 PMIC driver
      
        New Device Support:
         - Add support for Dialog Semi DA9063L PMIC variant to DA9063
         - Add support for Intel Ice Lake to Intel-PLSS-PCI
         - Add support for X-Powers AXP806 to AXP20x
      
        New Functionality:
         - Add support for USB Charging to the ChromeOS Embedded Controller
         - Add support for HDMI CEC to the ChromeOS Embedded Controller
         - Add support for HDMI CEC to Intel HDMI
         - Add support for accessory detection to Madera devices
         - Allow individual pins to be configured via DT' wlf,csnaddr-pd
         - Provide legacy platform specific EEPROM/Watchdog commands; rave-sp
      
        Fix-upsL
         - Trivial renaming/spelling fixes; cros_ec, da9063-*
         - Convert to Managed Resources (devm_*); da9063-*, ti_am335x_tscadc
         - Transition to helper macros/functions; da9063-*
         - Constify; kempld-core
         - Improve error path/messages; wm8994-core
         - Disable IRQs locally instead of relying on USB subsystem; dln2
         - Remove unused code; rave-sp
         - New exports; sec-core
      
        Bug Fixes:
         - Fix possible false I2C transaction error; arizona-core
         - Fix declared memory area size; hi655x-pmic
         - Fix checksum type; rave-sp
         - Fix incorrect default serial port configuration: rave-sp
         - Fix incorrect coherent DMA mask for sub-devices; sm501"
      
      * tag 'mfd-next-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (60 commits)
        mfd: madera: Add register definitions for accessory detect
        mfd: sm501: Set coherent_dma_mask when creating subdevices
        mfd: bd71837: Devicetree bindings for ROHM BD71837 PMIC
        mfd: bd71837: Core driver for ROHM BD71837 PMIC
        media: platform: cros-ec-cec: Fix dependency on MFD_CROS_EC
        mfd: sec-core: Export OF module alias table
        mfd: as3722: Disable auto-power-on when AC OK
        mfd: axp20x: Support AXP806 in I2C mode
        mfd: axp20x: Add self-working mode support for AXP806
        dt-bindings: mfd: axp20x: Add "self-working" mode for AXP806
        mfd: wm8994: Allow to configure CS/ADDR Pulldown from dts
        mfd: wm8994: Allow to configure Speaker Mode Pullup from dts
        mfd: rave-sp: Emulate CMD_GET_STATUS on device that don't support it
        mfd: rave-sp: Add legacy watchdog ping command translation
        mfd: rave-sp: Add legacy EEPROM access command translation
        mfd: rave-sp: Initialize flow control and parity of the port
        mfd: rave-sp: Fix incorrectly specified checksum type
        mfd: rave-sp: Remove unused defines
        mfd: hi655x: Fix regmap area declared size for hi655x
        mfd: ti_am335x_tscadc: Fix struct clk memory leak
        ...
      532c2b92
    • Linus Torvalds's avatar
      Merge tag 'edac_fixes_for_4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 8786583d
      Linus Torvalds authored
      Pull EDAC fix from Borislav Petkov:
       "An urgent fix for a NULL ptr deref on machines with LRDDR4 DIMMs, from
        Takashi Iwai"
      
      * tag 'edac_fixes_for_4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        EDAC: Add missing MEM_LRDDR4 entry in edac_mem_types[]
      8786583d
    • Joe Perches's avatar
      Raise the minimum required gcc version to 4.6 · cafa0010
      Joe Perches authored
      Various architectures fail to build properly with older versions of the
      gcc compiler.
      
      An example from Guenter Roeck in thread [1]:
      >
      >   In file included from ./include/linux/mm.h:17:0,
      >                    from ./include/linux/pid_namespace.h:7,
      >                    from ./include/linux/ptrace.h:10,
      >                    from arch/openrisc/kernel/asm-offsets.c:32:
      >   ./include/linux/mm_types.h:497:16: error: flexible array member in otherwise empty struct
      >
      > This is just an example with gcc 4.5.1 for or32. I have seen the problem
      > with gcc 4.4 (for unicore32) as well.
      
      So update the minimum required version of gcc to 4.6.
      
      [1] https://lore.kernel.org/lkml/20180814170904.GA12768@roeck-us.net/
      
      Miscellanea:
      
       - Update Documentation/process/changes.rst
      
       - Remove and consolidate version test blocks in compiler-gcc.h for
         versions lower than 4.6
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cafa0010
    • Tony Luck's avatar
      ia64: Fix kernel BUG at lib/ioremap.c:72! · cc26ebbe
      Tony Luck authored
      Commit 0bbf47ea ("ia64: use asm-generic/io.h") results in a BUG
      while booting ia64.  This is because asm-generic/io.h defines
      PCI_IOBASE, which results in the function acpi_pci_root_remap_iospace()
      doing a lot of unnecessary (and wrong) things.
      
      I'd suggested an #if !CONFIG_IA64 in the functon, but Arnd suggested
      keeping the fix inside the arch/ia64 tree.
      
      Fixes: 0bbf47ea ("ia64: use asm-generic/io.h")
      Suggested-by: default avatarArnd Bergman <arnd@arndb.de>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cc26ebbe
    • Jiri Kosina's avatar
      badf58a2
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/wiimote' into for-linus · 1429b47b
      Jiri Kosina authored
      Guitar-Hero devices support for hid-wiimote
      1429b47b
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/wacom' into for-linus · ffbeeaa4
      Jiri Kosina authored
      Wacom driver updates:
      
      - touch_max detection improvements
      - quirk handling cleanup
      - get rid of wacom custom usages
      ffbeeaa4
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/upstream' into for-linus · a91ddf23
      Jiri Kosina authored
      Assorted small driver/core fixes.
      a91ddf23
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/sony' into for-linus · 78a8ad79
      Jiri Kosina authored
      devm_* API conversion for hid-sony
      78a8ad79
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/multitouch-multiaxis' into for-linus · 16501e84
      Jiri Kosina authored
      Multitouch updates:
      
      - Dial support
      - Palm rejection for touchscreens
      - a few small assorted fixes
      16501e84
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/intel-ish' into for-linus · f5dd8071
      Jiri Kosina authored
      Device-specific fixes for hid-intel-ish
      f5dd8071
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/i2c-hid' into for-linus · 4435b577
      Jiri Kosina authored
      Low voltage support for i2c-hid
      4435b577
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/elan' into for-linus · 5a12d86c
      Jiri Kosina authored
      Resolution/pressure fixes and new device support for hid-elan
      5a12d86c
    • Jiri Kosina's avatar
      Merge branch 'for-4.19/cougar' into for-linus · 415d2b33
      Jiri Kosina authored
      New device support for hid-cougar
      415d2b33