1. 14 Dec, 2016 27 commits
    • Sebastian Ott's avatar
      s390/pci: query fmb length · 0b7589ec
      Sebastian Ott authored
      Query the length of the fmb and abort fmb registration if the
      size of the associated measurement block is too small.
      Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      0b7589ec
    • Heiko Carstens's avatar
      s390/zcrypt: add missing memory clobber to ap_qci inline assembly · d0350268
      Heiko Carstens authored
      The ap_qci() inline assembly writes to memory (*config) but misses to
      tell the compiler about it. Add the missing memory clobber to fix
      this.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      d0350268
    • Heiko Carstens's avatar
      s390/extmem: add missing memory clobber to dcss_set_subcodes · f1c7ea26
      Heiko Carstens authored
      Add the missing memory clobber / barrier to dcss_set_subcodes() to
      tell the compiler that the inline assembly accesses memory (name
      string).
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      f1c7ea26
    • Heiko Carstens's avatar
      s390/nmi: fix inline assembly constraints · 86fa7087
      Heiko Carstens authored
      Add missing memory clobbers / barriers or use the Q constraint where
      possible to tell the compiler that the inline assemblies actually
      access memory and not only pointers to memory.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      86fa7087
    • Heiko Carstens's avatar
      s390/lib: add missing memory barriers to string inline assemblies · 7a71fd1c
      Heiko Carstens authored
      We have a couple of inline assemblies like memchr() and strlen() that
      read from memory, but tell the compiler only they need the addresses
      of the strings they access.
      This allows the compiler to omit the initialization of such strings
      and therefore generate broken code. Add the missing memory barrier to
      all string related inline assemblies to fix this potential issue. It
      looks like the compiler currently does not generate broken code due to
      these bugs.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7a71fd1c
    • Heiko Carstens's avatar
      s390/cpumf: fix qsi inline assembly · 259acc5c
      Heiko Carstens authored
      The qsi inline assembly takes an initialized "cc" variable as output
      operand but specifies it as write-to operand only instead of
      read/write operand. This allows the compiler to omit the
      initialization, which in fact it also does (gcc 6.1).
      
      Use the "+" constraint modifier to fix this. In addition also use the
      Q constraint to specify the hws_qsi_info_block memory location, so the
      compiler can generate slightly better code. Also get rid of the cc
      clobber since none of the instructions within the inline assembly
      modify the condition code.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      259acc5c
    • Martin Schwidefsky's avatar
      s390/setup: reword printk messages · 6d7b2ee9
      Martin Schwidefsky authored
      Two of the messages introduced by the memblock conversion are reworded.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      6d7b2ee9
    • Stefan Haberland's avatar
    • Heiko Carstens's avatar
      s390: fix compile error with memmove_early() inline assembly · 75a35734
      Heiko Carstens authored
      Old gcc versions can't handle a bogus early clobber on a Q constraint:
      
      arch/s390/kernel/early.c: In function 'memmove_early.part.1':
      arch/s390/kernel/early.c:432:2: error: '&' constraint used with no register class
      
      Simply remove it to fix this.
      Reported-by: default avatarStefan Haberland <sth@linux.vnet.ibm.com>
      Fixes: d543a106 ("s390: fix initrd corruptions with gcov/kcov instrumented kernels")
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      75a35734
    • Harald Freudenberger's avatar
      s390/zcrypt: tracepoint definitions for zcrypt device driver. · 13b251bd
      Harald Freudenberger authored
      This patch introduces tracepoint definitions and tracepoint
      event invocations for the s390 zcrypt device.
      
      Currently there are just two tracepoint events defined.
      An s390_zcrypt_req request event occurs as soon as the
      request is recognized by the zcrypt ioctl function. This
      event may act as some kind of request-processing-starts-now
      indication.
      As late as possible within the zcrypt ioctl function there
      occurs the s390_zcrypt_rep event which may act as the point
      in time where the request has been processed by the kernel
      and the result is about to be transferred back to userspace.
      The glue which binds together request and reply event is the
      ptr parameter, which is the local buffer address where the
      request from userspace has been stored by the ioctl function.
      
      The main purpose of this zcrypt tracepoint patch is to get
      some data for performance measurements together with
      information about the kind of request and on which card and
      queue the request has been processed. It is not an ffdc
      interface as there is already code in the zcrypt device
      driver to serve the s390 debug feature interface.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      13b251bd
    • Harald Freudenberger's avatar
      s390/zcrypt: Rework debug feature invocations. · cccd85bf
      Harald Freudenberger authored
      Rework the debug feature calls and initialization.  There
      are now two debug feature entries used by the zcrypt code.
      The first is 'ap' with all the AP bus related stuff and the
      second is 'zcrypt' with all the zcrypt and devices and
      driver related entries. However, there isn't much traffic on
      both debug features. The ap bus code emits only some debug
      info and for zcrypt devices on appearance and disappearance
      there is an entry written.
      
      The new dbf invocations use the sprintf buffer layout,
      whereas the old implementation used the ascii dbf buffer.
      There are now 5*8=40 bytes used for each entry, resulting in
      5 parameters per call. As the sprintf buffer needs a format
      string the first parameter provides this and so up to 4 more
      parameters can be used. Alltogehter the new layout should be
      much more human readable for customers and test.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      cccd85bf
    • Harald Freudenberger's avatar
      s390/zcrypt: Improved invalid domain response handling. · bf9f3119
      Harald Freudenberger authored
      Add defines and switch case code to handle the two invalid
      domain response codes better. Until now these two response
      codes are handled via default resulting in -EAGAIN and
      switching the processed queue to offline.  So this kind of
      malformed request bounced through all suitable queues and
      switched them off. Now this kind of malformed request is
      just rejected with EINVAL without switching off the queue.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      bf9f3119
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Fix ap_max_domain_id for older machine types · c1c1368d
      Ingo Tuchscherer authored
      According to the system architecture the current implementation
      requires the presence of the N bit in GR2 in the TAPQ response
      field to validate the max. number of domains (Nd).
      Older machine types don't have this N bit, hence the max. domain
      field was ignored.
      
      Before the N bit was introduced the maximum number of domain was
      a constant value of 15. So set this value in case of N bit absence.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      c1c1368d
    • Harald Freudenberger's avatar
      s390/zcrypt: Correct function bits for CEX2x and CEX3x cards. · 14878424
      Harald Freudenberger authored
      For the older CEX2x and CEX3x cards the function bits returned
      by TAPQ do not reflect the functions of the card. Instead the
      functionality is implicit by the type of the card. The reworked
      zcrypt requires to have the function bits set correct, so this
      patch fixes this. The queue selection is not only based on these
      function bits but also on function pointers set by the individual
      drivers.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      14878424
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Fixed attrition of AP adapters and domains · e47de21d
      Ingo Tuchscherer authored
      Currently the first eligible AP adapter respectively domain will be
      selected to service requests. In case of sequential workload, the
      very same adapter/domain will be used.
      
      The adapter/domain selection algorithm now considers the completed
      transactions per adaper/domain and therefore ensures a homogeneous
      utilization.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      e47de21d
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Introduce new zcrypt device status API · b886a9d1
      Ingo Tuchscherer authored
      Introduce new ioctl (ZDEVICESTATUS) to provide detailed
      information, like hardware type, domains, status and functionality
      of available crypto devices.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b886a9d1
    • Ingo Tuchscherer's avatar
      s390/zcrypt: add multi domain support · e28d2af4
      Ingo Tuchscherer authored
      Currently the ap infrastructure only supports one domain at a time.
      This feature extends the generic cryptographic device driver to
      support multiple cryptographic domains simultaneously.
      
      There are now card and queue devices on the AP bus with independent
      card and queue drivers. The new /sys layout is as follows:
      
      /sys/bus/ap
          devices
              <xx>.<yyyy> -> ../../../devices/ap/card<xx>/<xx>.<yyyy>
              ...
              card<xx> -> ../../../devices/ap/card<xx>
              ...
          drivers
              <drv>card
                  card<xx> -> ../../../../devices/ap/card<xx>
              <drv>queue
                  <xx>.<yyyy> -> ../../../../devices/ap/card<xx>/<xx>.<yyyy>
                  ...
      
      /sys/devices/ap
          card<xx>
              <xx>.<yyyy>
                  driver -> ../../../../bus/ap/drivers/<zzz>queue
                  ...
              driver -> ../../../bus/ap/drivers/<drv>card
              ...
      
      The two digit <xx> field is the card number, the four digit <yyyy>
      field is the queue number and <drv> is the name of the device driver,
      e.g. "cex4".
      
      For compatability /sys/bus/ap/card<xx> for the old layout has to exist,
      including the attributes that used to reside there.
      
      With additional contributions from Harald Freudenberger and
      Martin Schwidefsky.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      e28d2af4
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Introduce workload balancing · 34a15167
      Ingo Tuchscherer authored
      Crypto requests are very different in complexity and thus runtime.
      Also various crypto adapters are differ with regard to the execution
      time. Crypto requests can be balanced much better when the request
      type and eligible crypto adapters are rated in a more precise
      granularity. Therefore, request weights and adapter speed rates for
      dedicated requests will be introduced.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      34a15167
    • Martin Schwidefsky's avatar
      s390/zcrypt: get rid of ap_poll_requests · 9af3e04e
      Martin Schwidefsky authored
      The poll thread of the AP bus is burning CPU while waiting for
      crypto requests to complete. We can as well burn a few more cycles
      in the poll thread to check if there are pending requests and
      remove the atomic operations with the ap_poll_requests.
      This improves the code if the machine has adapter interrupts.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      9af3e04e
    • Martin Schwidefsky's avatar
      s390/zcrypt: header for the AP inline assmblies · 0db78559
      Martin Schwidefsky authored
      Move the inline assemblies for the AP bus into a separate header file.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      0db78559
    • Martin Schwidefsky's avatar
      s390/zcrypt: simplify message type handling · 236fb2ab
      Martin Schwidefsky authored
      Now that the message type modules are linked with the zcrypt_api
      into a single module the zcrypt_ops_list is initialized by
      the module init function of the zcyppt.ko module. After that
      the list is static and all message types are present.
      
      Drop the zcrypt_ops_list_lock spinlock and the module handling
      in regard to the message types.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      236fb2ab
    • Ingo Tuchscherer's avatar
      s390/zcrypt: Move the ap bus into kernel · fc1d3f02
      Ingo Tuchscherer authored
      Move the ap bus into the kernel and make it general available.
      Additionally include the message types and the API layer as a
      preparation for the workload management facility.
      Signed-off-by: default avatarIngo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      fc1d3f02
    • Harald Freudenberger's avatar
    • Linus Torvalds's avatar
      Revert "nvme: add support for the Write Zeroes command" · cdb98c26
      Linus Torvalds authored
      This reverts commit 6d31e3ba.
      
      This causes bootup problems for me both on my laptop and my desktop.
      What they have in common is that they have NVMe disks with dm-crypt, but
      it's not the same controller, so it's not controller-specific.
      
      Jens does not see it on his machine (also NVMe), so it's presumably
      something that triggers just on bootup.  Possibly related to dm-crypt
      and the fact that I mark my luks volume with "allow-discards" in
      /etc/crypttab.
      
      It's 100% repeatable for me, which made it fairly straightforward to
      bisect the problem to this commit. Small mercies.
      
      So we don't know what the reason is yet, but the revert is needed to get
      things going again.
      Acked-by: default avatarJens Axboe <axboe@fb.com>
      Cc: Chaitanya Kulkarni <chaitanya.kulkarni@hgst.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cdb98c26
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · f4000cd9
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
      
       - struct thread_info moved off-stack (also touching
         include/linux/thread_info.h and include/linux/restart_block.h)
      
       - cpus_have_cap() reworked to avoid __builtin_constant_p() for static
         key use (also touching drivers/irqchip/irq-gic-v3.c)
      
       - uprobes support (currently only for native 64-bit tasks)
      
       - Emulation of kernel Privileged Access Never (PAN) using TTBR0_EL1
         switching to a reserved page table
      
       - CPU capacity information passing via DT or sysfs (used by the
         scheduler)
      
       - support for systems without FP/SIMD (IOW, kernel avoids touching
         these registers; there is no soft-float ABI, nor kernel emulation for
         AArch64 FP/SIMD)
      
       - handling of hardware watchpoint with unaligned addresses, varied
         lengths and offsets from base
      
       - use of the page table contiguous hint for kernel mappings
      
       - hugetlb fixes for sizes involving the contiguous hint
      
       - remove unnecessary I-cache invalidation in flush_cache_range()
      
       - CNTHCTL_EL2 access fix for CPUs with VHE support (ARMv8.1)
      
       - boot-time checks for writable+executable kernel mappings
      
       - simplify asm/opcodes.h and avoid including the 32-bit ARM counterpart
         and make the arm64 kernel headers self-consistent (Xen headers patch
         merged separately)
      
       - Workaround for broken .inst support in certain binutils versions
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (60 commits)
        arm64: Disable PAN on uaccess_enable()
        arm64: Work around broken .inst when defective gas is detected
        arm64: Add detection code for broken .inst support in binutils
        arm64: Remove reference to asm/opcodes.h
        arm64: Get rid of asm/opcodes.h
        arm64: smp: Prevent raw_smp_processor_id() recursion
        arm64: head.S: Fix CNTHCTL_EL2 access on VHE system
        arm64: Remove I-cache invalidation from flush_cache_range()
        arm64: Enable HIBERNATION in defconfig
        arm64: Enable CONFIG_ARM64_SW_TTBR0_PAN
        arm64: xen: Enable user access before a privcmd hvc call
        arm64: Handle faults caused by inadvertent user access with PAN enabled
        arm64: Disable TTBR0_EL1 during normal kernel execution
        arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1
        arm64: Factor out TTBR0_EL1 post-update workaround into a specific asm macro
        arm64: Factor out PAN enabling/disabling into separate uaccess_* macros
        arm64: Update the synchronous external abort fault description
        selftests: arm64: add test for unaligned/inexact watchpoint handling
        arm64: Allow hw watchpoint of length 3,5,6 and 7
        arm64: hw_breakpoint: Handle inexact watchpoint addresses
        ...
      f4000cd9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 2ec4584e
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The main bulk of the s390 patches for the 4.10 merge window:
      
         - Add support for the contiguous memory allocator.
      
         - The recovery for I/O errors in the dasd device driver is improved,
           the driver will now remove channel paths that are not working
           properly.
      
         - Additional fields are added to /proc/sysinfo, the extended
           partition name and the partition UUID.
      
         - New naming for PCI devices with system defined UIDs.
      
         - The last few remaining alloc_bootmem calls are converted to
           memblock.
      
         - The thread_info structure is stripped down and moved to the
           task_struct. The only field left in thread_info is the flags field.
      
         - Rework of the arch topology code to fix a fake numa issue.
      
         - Refactoring of the atomic primitives and add a new preempt_count
           implementation.
      
         - Clocksource steering for the STP sync check offsets.
      
         - The s390 specific headers are changed to make them usable with
           CLANG.
      
         - Bug fixes and cleanup"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (70 commits)
        s390/cpumf: Use configuration level indication for sampling data
        s390: provide memmove implementation
        s390: cleanup arch/s390/kernel Makefile
        s390: fix initrd corruptions with gcov/kcov instrumented kernels
        s390: exclude early C code from gcov profiling
        s390/dasd: channel path aware error recovery
        s390/dasd: extend dasd path handling
        s390: remove unused labels from entry.S
        s390/vmlogrdr: fix IUCV buffer allocation
        s390/crypto: unlock on error in prng_tdes_read()
        s390/sysinfo: show partition extended name and UUID if available
        s390/numa: pin all possible cpus to nodes early
        s390/numa: establish cpu to node mapping early
        s390/topology: use cpu_topology array instead of per cpu variable
        s390/smp: initialize cpu_present_mask in setup_arch
        s390/topology: always use s390 specific sched_domain_topology_level
        s390/smp: use smp_get_base_cpu() helper function
        s390/numa: always use logical cpu and core ids
        s390: Remove VLAIS in ptff() and clear_table()
        s390: fix machine check panic stack switch
        ...
      2ec4584e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · aa3ecf38
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
       "Xen features and fixes for 4.10
      
        These are some fixes, a move of some arm related headers to share them
        between arm and arm64 and a series introducing a helper to make code
        more readable.
      
        The most notable change is David stepping down as maintainer of the
        Xen hypervisor interface. This results in me sending you the pull
        requests for Xen related code from now on"
      
      * tag 'for-linus-4.10-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (29 commits)
        xen/balloon: Only mark a page as managed when it is released
        xenbus: fix deadlock on writes to /proc/xen/xenbus
        xen/scsifront: don't request a slot on the ring until request is ready
        xen/x86: Increase xen_e820_map to E820_X_MAX possible entries
        x86: Make E820_X_MAX unconditionally larger than E820MAX
        xen/pci: Bubble up error and fix description.
        xen: xenbus: set error code on failure
        xen: set error code on failures
        arm/xen: Use alloc_percpu rather than __alloc_percpu
        arm/arm64: xen: Move shared architecture headers to include/xen/arm
        xen/events: use xen_vcpu_id mapping for EVTCHNOP_status
        xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing
        xen-scsifront: Add a missing call to kfree
        MAINTAINERS: update XEN HYPERVISOR INTERFACE
        xenfs: Use proc_create_mount_point() to create /proc/xen
        xen-platform: use builtin_pci_driver
        xen-netback: fix error handling output
        xen: make use of xenbus_read_unsigned() in xenbus
        xen: make use of xenbus_read_unsigned() in xen-pciback
        xen: make use of xenbus_read_unsigned() in xen-fbfront
        ...
      aa3ecf38
  2. 13 Dec, 2016 13 commits
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb · b5cab0da
      Linus Torvalds authored
      Pull swiotlb updates from Konrad Rzeszutek Wilk:
      
       - minor fixes (rate limiting), remove certain functions
      
       - support for DMA_ATTR_SKIP_CPU_SYNC which is an optimization
         in the DMA API
      
      * 'stable/for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: Minor fix-ups for DMA_ATTR_SKIP_CPU_SYNC support
        swiotlb: Add support for DMA_ATTR_SKIP_CPU_SYNC
        swiotlb-xen: Enforce return of DMA_ERROR_CODE in mapping function
        swiotlb: Drop unused functions swiotlb_map_sg and swiotlb_unmap_sg
        swiotlb: Rate-limit printing when running out of SW-IOMMU space
      b5cab0da
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 93173b5b
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "Small release, the most interesting stuff is x86 nested virt
        improvements.
      
        x86:
         - userspace can now hide nested VMX features from guests
         - nested VMX can now run Hyper-V in a guest
         - support for AVX512_4VNNIW and AVX512_FMAPS in KVM
         - infrastructure support for virtual Intel GPUs.
      
        PPC:
         - support for KVM guests on POWER9
         - improved support for interrupt polling
         - optimizations and cleanups.
      
        s390:
         - two small optimizations, more stuff is in flight and will be in
           4.11.
      
        ARM:
         - support for the GICv3 ITS on 32bit platforms"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (94 commits)
        arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest
        KVM: arm/arm64: timer: Check for properly initialized timer on init
        KVM: arm/arm64: vgic-v2: Limit ITARGETSR bits to number of VCPUs
        KVM: x86: Handle the kthread worker using the new API
        KVM: nVMX: invvpid handling improvements
        KVM: nVMX: check host CR3 on vmentry and vmexit
        KVM: nVMX: introduce nested_vmx_load_cr3 and call it on vmentry
        KVM: nVMX: propagate errors from prepare_vmcs02
        KVM: nVMX: fix CR3 load if L2 uses PAE paging and EPT
        KVM: nVMX: load GUEST_EFER after GUEST_CR0 during emulated VM-entry
        KVM: nVMX: generate MSR_IA32_CR{0,4}_FIXED1 from guest CPUID
        KVM: nVMX: fix checks on CR{0,4} during virtual VMX operation
        KVM: nVMX: support restore of VMX capability MSRs
        KVM: nVMX: generate non-true VMX MSRs based on true versions
        KVM: x86: Do not clear RFLAGS.TF when a singlestep trap occurs.
        KVM: x86: Add kvm_skip_emulated_instruction and use it.
        KVM: VMX: Move skip_emulated_instruction out of nested_vmx_check_vmcs12
        KVM: VMX: Reorder some skip_emulated_instruction calls
        KVM: x86: Add a return value to kvm_emulate_cpuid
        KVM: PPC: Book3S: Move prototypes for KVM functions into kvm_ppc.h
        ...
      93173b5b
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.10' of... · 1c59e1ed
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - new drivers for TMP108 and TC654
      
       - hwmon core code cleanup
      
       - coretemp driver cleanup
      
       - fix overflow issues in several drivers
      
       - minor fixes, cleanups and enhancements in various drivers
      
      * tag 'hwmon-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (41 commits)
        hwmon: (g762) Fix overflows and crash seen when writing limit attributes
        hwmon: (emcw201) Fix overflows seen when writing into limit attributes
        hwmon: (emc2103) Fix overflows seen when temperature limit attributes
        hwmon: (lm85) Fix overflows seen when writing voltage limit attributes
        hwmon: (lm87) Fix overflow seen when writing voltage limit attributes
        hwmon: (nct7802) Fix overflows seen when writing into limit attributes
        hwmon: (adt7470) Fix overflows seen when writing into limit attributes
        hwmon: (adt7462) Fix overflows seen when writing into limit attributes
        hwmon: (adm1026) Fix overflows seen when writing into limit attributes
        hwmon: (adm1025) Fix overflows seen when writing voltage limits
        hwmon: (via-cputemp) Convert to hotplug state machine
        devicetree: hwmon: Add documentation for TMP108 driver.
        hwmon: Add Texas Instruments TMP108 temperature sensor driver.
        hwmon: (core) Simplify sysfs attribute name allocation
        hwmon: (core) Rename groups parameter in API to extra_groups
        hwmon: (core) Explain why at least two attribute groups are allocated
        hwmon: (core) Make is_visible callback truly mandatory
        hwmon: (core) Deprecate hwmon_device_register()
        hwmon: (core) Clarify use of chip attributes
        hwmon: (core) Add support for string attributes to new API
        ...
      1c59e1ed
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · bb3dd056
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The nicest things about this release for me is seeing some older
        drivers getting some cleanups and modernization, it's really good to
        see things moving forwards even for older drivers.
      
        In content terms it's a fairly humdrum release but where the work has
        been happening is great.
      
         - Support for simultaneous use of internal and GPIO chip selects for
           devices that require the use of the internal select even if it's
           not connected and a GPIO is actually routed to the slave device.
      
         - A major rework and cleanup of the fsl-espi driver from Heiner
           Kallweit which should make it work substantially better.
      
         - DMA support for Freescale DSPI IPs.
      
         - New drivers for Freescale LPSPI IPs and Marvell Armada 3700.
      
         - Support for Allwinner H3"
      
      * tag 'spi-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (85 commits)
        spi: mvebu: fix baudrate calculation for armada variant
        spi: Add support for Armada 3700 SPI Controller
        spi: armada-3700: Add documentation for the Armada 3700 SPI Controller
        spi: fsl-lpspi: quit reading rx fifo under error condition
        spi: fsl-lpspi: use GPL as module license
        spi: fsl-espi: fix ioread16/iowrite16 endianness
        spi: fsl-espi: remove unused linearization code
        spi: fsl-espi: eliminate need for linearization when reading from hardware
        spi: fsl-espi: eliminate need for linearization when writing to hardware
        spi: fsl-espi: determine need for byte swap only once
        spi: fsl-lpspi: read lpspi tx/rx fifo size in probe()
        spi: fsl-lpspi: use wait_for_completion_timeout() while waiting transfer done
        spi: orion: fix comment to mention MVEBU
        spi: atmel: remove the use of private channel fields
        spi: atmel: trivial: remove unused fields in DMA structure
        spi: atmel: Use SPI core DMA mapping framework
        spi: atmel: Use core SPI_MASTER_MUST_[RT]X handling
        spi: atmel: trivial: move info banner to latest probe action
        spi: imx: replace schedule() with cond_resched()
        spi: imx: fix potential shift truncation
        ...
      bb3dd056
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 7b882cb8
      Linus Torvalds authored
      Pull another libata patch from Tejun Heo:
       "One more patch from Adam added.
      
        It makes libata skip probing for NCQ prio unless the feature is
        explicitly requested by the user. This is necessary because some
        controllers lock up after the optional feature is probed"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: avoid probing NCQ Prio Support if not explicitly requested
      7b882cb8
    • Adam Manzanares's avatar
      ata: avoid probing NCQ Prio Support if not explicitly requested · 9f56eca3
      Adam Manzanares authored
      Previously, when the ata device was being initialized we were
      probing for NCQ prio support by checking the identify information
      and also checking the log page that holds information about ncq prio
      support.
      
      This caused an error on an Intel HBA so the code is now updated to
      only probe for NCQ prio support when the sysfs variable controlling
      NCQ prio support is enabled.
      
      tj: Update formatting, switch to spin_[un]lock_irq() and update
          locking a bit, use REVALIDATE instead of RESET, and return -EIO
          instead of -EINVAL on config failure.
      Signed-off-by: default avatarAdam Manzanares <adam.manzanares@wdc.com>
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      9f56eca3
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · b92e09bb
      Linus Torvalds authored
      Pull libata updates from Tejun Heo:
      
       - Adam added opt-in ATA command priority support.
      
       - There are machines which hide multiple nvme devices behind an ahci
         BAR. Dan Williams proposed a solution to force-switch the mode but
         deemed too hackishd. People are gonna discuss the proper way to
         handle the situation in nvme standard meetings. For now, detect and
         warn about the situation.
      
       - Low level driver specific changes.
      
      Christoph Hellwig pipes in about the hidden nvme warning:
       "I wish that was the case. We've pretty much agreed that we'll want to
        implement it as a virtual PCIe root bridge, similar to Intels other
        'innovation' VMD that we work around that way.
      
        But Intel management has apparently decided that they don't want to
        spend more cycles on this now that Lenovo has an optional BIOS that
        doesn't force this broken mode anymore, and no one outside of Intel
        has enough information to implement something like this.
      
        So for now I guess this warning is it, until Intel reconsideres and
        spends resources on fixing up the damage their Chipset people caused"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: warn about remapped NVMe devices
        ahci-remap.h: add ahci remapping definitions
        nvme: move NVMe class code to pci_ids.h
        pata: imx: support controller modes up to PIO4
        pata: imx: add support of setting timings for PIO modes
        pata: imx: set controller PIO mode with .set_piomode callback
        pata: imx: sort headers out
        ata: set ncq_prio_enabled iff device has support
        ata: ATA Command Priority Disabled By Default
        ata: Enabling ATA Command Priorities
        block: Add iocontext priority to request
        ahci: qoriq: added ls1046a platform support
      b92e09bb
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · c11a6cfb
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
       "Mostly patches to initialize workqueue subsystem earlier and get rid
        of keventd_up().
      
        The patches were headed for the last merge cycle but got delayed due
        to a bug found late minute, which is fixed now.
      
        Also, to help debugging, destroy_workqueue() is more chatty now on a
        sanity check failure."
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: move wq_numa_init() to workqueue_init()
        workqueue: remove keventd_up()
        debugobj, workqueue: remove keventd_up() usage
        slab, workqueue: remove keventd_up() usage
        power, workqueue: remove keventd_up() usage
        tty, workqueue: remove keventd_up() usage
        mce, workqueue: remove keventd_up() usage
        workqueue: make workqueue available early during boot
        workqueue: dump workqueue state on sanity check failures in destroy_workqueue()
      c11a6cfb
    • Linus Torvalds's avatar
      Merge branch 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · e6efef72
      Linus Torvalds authored
      Pull percpu update from Tejun Heo:
       "This includes just one patch to reject non-power-of-2 alignments and
        trigger warning. Interestingly, this actually caught a bug in XEN
        ARM64"
      
      * 'for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: ensure the requested alignment is power of two
      e6efef72
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · b78b499a
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here's the big char/misc driver patches for 4.10-rc1. Lots of tiny
        changes over lots of "minor" driver subsystems, the largest being some
        new FPGA drivers. Other than that, a few other new drivers, but no new
        driver subsystems added for this kernel cycle, a nice change.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (107 commits)
        uio-hv-generic: store physical addresses instead of virtual
        Tools: hv: kvp: configurable external scripts path
        uio-hv-generic: new userspace i/o driver for VMBus
        vmbus: add support for dynamic device id's
        hv: change clockevents unbind tactics
        hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
        hyperv: Fix spelling of HV_UNKOWN
        mei: bus: enable non-blocking RX
        mei: fix the back to back interrupt handling
        mei: synchronize irq before initiating a reset.
        VME: Remove shutdown entry from vme_driver
        auxdisplay: ht16k33: select framebuffer helper modules
        MAINTAINERS: add git url for fpga
        fpga: Clarify how write_init works streaming modes
        fpga zynq: Fix incorrect ISR state on bootup
        fpga zynq: Remove priv->dev
        fpga zynq: Add missing \n to messages
        fpga: Add COMPILE_TEST to all drivers
        uio: pruss: add clk_disable()
        char/pcmcia: add some error checking in scr24x_read()
        ...
      b78b499a
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.10-rc1' of... · 098c3055
      Linus Torvalds authored
      Merge tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here's the new driver core patches for 4.10-rc1.
      
        Big thing here is the nice addition of "functional dependencies" to
        the driver core. The idea has been talked about for a very long time,
        great job to Rafael for stepping up and implementing it. It's been
        tested for longer than the 4.9-rc1 date, we held off on merging it
        earlier in order to feel more comfortable about it.
      
        Other than that, it's just a handful of small other patches, some good
        cleanups to the mess that is the firmware class code, and we have a
        test driver for the deferred probe logic.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (30 commits)
        firmware: Correct handling of fw_state_wait() return value
        driver core: Silence device links sphinx warning
        firmware: remove warning at documentation generation time
        drivers: base: dma-mapping: Fix typo in dmam_alloc_non_coherent comments
        driver core: test_async: fix up typo found by 0-day
        firmware: move fw_state_is_done() into UHM section
        firmware: do not use fw_lock for fw_state protection
        firmware: drop bit ops in favor of simple state machine
        firmware: refactor loading status
        firmware: fix usermode helper fallback loading
        driver core: firmware_class: convert to use class_groups
        driver core: devcoredump: convert to use class_groups
        driver core: class: add class_groups support
        kernfs: Declare two local data structures static
        driver-core: fix platform_no_drv_owner.cocci warnings
        drivers/base/memory.c: Remove unused 'first_page' variable
        driver core: add CLASS_ATTR_WO()
        drivers: base: cacheinfo: support DT overrides for cache properties
        drivers: base: cacheinfo: add pr_fmt logging
        drivers: base: cacheinfo: fix boot error message when acpi is enabled
        ...
      098c3055
    • Linus Torvalds's avatar
      Merge tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 72cca7ba
      Linus Torvalds authored
      Pull staging/IIO updates from Greg KH:
       "Here's the "big" staging/iio pull request for 4.10-rc1.
      
        Not as big as 4.9 was, but still just over a thousand changes. We
        almost broke even of lines added vs. removed, as the slicoss driver
        was removed (got a "clean" driver for the same hardware through the
        netdev tree), and some iio drivers were also dropped, but I think we
        ended up adding a few thousand lines to the source tree in the end.
        Other than that it's a lot of minor fixes all over the place, nothing
        major stands out at all.
      
        All of these have been in linux-next for a while. There will be a
        merge conflict with Al's vfs tree in the lustre code, but the
        resolution for that should be pretty simple, that too has been in
        linux-next"
      
      * tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1002 commits)
        staging: comedi: comedidev.h: Document usage of 'detach' handler
        staging: fsl-mc: remove unnecessary info prints from bus driver
        staging: fsl-mc: add sysfs ABI doc
        staging/lustre/o2iblnd: Fix misspelled attemps->attempts
        staging/lustre/o2iblnd: Fix misspelling intialized->intialized
        staging/lustre: Convert all bare unsigned to unsigned int
        staging/lustre/socklnd: Fix whitespace problem
        staging/lustre/o2iblnd: Add missing space
        staging/lustre/lnetselftest: Fix potential integer overflow
        staging: greybus: audio_module: remove redundant OOM message
        staging: dgnc: Fix lines longer than 80 characters
        staging: dgnc: fix blank line after '{' warnings.
        staging/android: remove Sync Framework tasks from TODO
        staging/lustre/osc: Revert erroneous list_for_each_entry_safe use
        staging: slicoss: remove the staging driver
        staging: lustre: libcfs: remove lnet upcall code
        staging: lustre: remove set but unused variables
        staging: lustre: osc: set lock data for readahead lock
        staging: lustre: import: don't reconnect during connect interpret
        staging: lustre: clio: remove mtime check in vvp_io_fault_start()
        ...
      72cca7ba
    • Linus Torvalds's avatar
      Merge tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 5266e703
      Linus Torvalds authored
      Pull tty/serial updates from Greg KH:
       "Here's the tty/serial patchset for 4.10-rc1.
      
        It's been a quiet kernel cycle for this subsystem, just a small number
        of changes. A few new serial drivers, and some cleanups to the old
        vgacon logic, and other minor serial driver changes as well.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
        serial: 8250_mid fix calltrace when hotplug 8250 serial controller
        console: Move userspace I/O out of console_lock to fix lockdep warning
        tty: nozomi: avoid sprintf buffer overflow
        serial: 8250_pci: Detach low-level driver during PCI error recovery
        serial: core: don't check port twice in a row
        mxs-auart: count FIFO overrun errors
        serial: 8250_dw: Add support for IrDA SIR mode
        serial: 8250: Expose set_ldisc function
        serial: 8250: Add IrDA to UART capabilities
        serial: 8250_dma: power off device after TX is done
        serial: 8250_port: export serial8250_rpm_{get|put}_tx()
        serial: sunsu: Free memory when probe fails
        serial: sunhv: Free memory when remove() is called
        vt: fix Scroll Lock LED trigger name
        tty: typo in comments in drivers/tty/vt/keyboard.c
        tty: amba-pl011: Add earlycon support for SBSA UART
        tty: nozomi: use permission-specific DEVICE_ATTR variants
        tty: serial: Make the STM32 serial port depend on it's arch
        serial: ifx6x60: Free memory when probe fails
        serial: ioc4_serial: Free memory when kzalloc fails during probe
        ...
      5266e703