Skip to content
  1. Apr 01, 2017
    • Naoya Horiguchi's avatar
      mm: migrate: fix remove_migration_pte() for ksm pages · 4b0ece6f
      Naoya Horiguchi authored
      I found that calling page migration for ksm pages causes the following
      bug:
      
          page:ffffea0004d51180 count:2 mapcount:2 mapping:ffff88013c785141 index:0x913
          flags: 0x57ffffc0040068(uptodate|lru|active|swapbacked)
          raw: 0057ffffc0040068 ffff88013c785141 0000000000000913 0000000200000001
          raw: ffffea0004d5f9e0 ffffea0004d53f60 0000000000000000 ffff88007d81b800
          page dumped because: VM_BUG_ON_PAGE(!PageLocked(page))
          page->mem_cgroup:ffff88007d81b800
          ------------[ cut here ]------------
          kernel BUG at /src/linux-dev/mm/rmap.c:1086!
          invalid opcode: 0000 [#1] SMP
          Modules linked in: ppdev parport_pc virtio_balloon i2c_piix4 pcspkr parport i2c_core acpi_cpufreq ip_tables xfs libcrc32c ata_generic pata_acpi ata_piix 8139too libata virtio_blk 8139cp crc32c_intel mii virtio_pci virtio_ring serio_raw virtio floppy dm_mirror dm_region_hash dm_log dm_mod
          CPU: 0 PID: 3162 Comm: bash Not tainted 4.11.0-rc2-mm1+ #1
          Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011
          RIP: 0010:do_page_add_anon_rmap+0x1ba/0x260
          RSP: 0018:ffffc90002473b30 EFLAGS: 00010282
          RAX: 0000000000000021 RBX: ffffea0004d51180 RCX: 0000000000000006
          RDX: 0000000000000000 RSI: 0000000000000082 RDI: ffff88007dc0dfe0
          RBP: ffffc90002473b58 R08: 00000000fffffffe R09: 00000000000001c1
          R10: 0000000000000005 R11: 00000000000001c0 R12: ffff880139ab3d80
          R13: 0000000000000000 R14: 0000700000000200 R15: 0000160000000000
          FS:  00007f5195f50740(0000) GS:ffff88007dc00000(0000) knlGS:0000000000000000
          CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
          CR2: 00007fd450287000 CR3: 000000007a08e000 CR4: 00000000001406f0
          Call Trace:
           page_add_anon_rmap+0x18/0x20
           remove_migration_pte+0x220/0x2c0
           rmap_walk_ksm+0x143/0x220
           rmap_walk+0x55/0x60
           remove_migration_ptes+0x53/0x80
           migrate_pages+0x8ed/0xb60
           soft_offline_page+0x309/0x8d0
           store_soft_offline_page+0xaf/0xf0
           dev_attr_store+0x18/0x30
           sysfs_kf_write+0x3a/0x50
           kernfs_fop_write+0xff/0x180
           __vfs_write+0x37/0x160
           vfs_write+0xb2/0x1b0
           SyS_write+0x55/0xc0
           do_syscall_64+0x67/0x180
           entry_SYSCALL64_slow_path+0x25/0x25
          RIP: 0033:0x7f51956339e0
          RSP: 002b:00007ffcfa0dffc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
          RAX: ffffffffffffffda RBX: 000000000000000c RCX: 00007f51956339e0
          RDX: 000000000000000c RSI: 00007f5195f53000 RDI: 0000000000000001
          RBP: 00007f5195f53000 R08: 000000000000000a R09: 00007f5195f50740
          R10: 000000000000000b R11: 0000000000000246 R12: 00007f5195907400
          R13: 000000000000000c R14: 0000000000000001 R15: 0000000000000000
          Code: fe ff ff 48 81 c2 00 02 00 00 48 89 55 d8 e8 2e c3 fd ff 48 8b 55 d8 e9 42 ff ff ff 48 c7 c6 e0 52 a1 81 48 89 df e8 46 ad fe ff <0f> 0b 48 83 e8 01 e9 7f fe ff ff 48 83 e8 01 e9 96 fe ff ff 48
          RIP: do_page_add_anon_rmap+0x1ba/0x260 RSP: ffffc90002473b30
          ---[ end trace a679d00f4af2df48 ]---
          Kernel panic - not syncing: Fatal exception
          Kernel Offset: disabled
          ---[ end Kernel panic - not syncing: Fatal exception
      
      The problem is in the following lines:
      
          new = page - pvmw.page->index +
              linear_page_index(vma, pvmw.address);
      
      The 'new' is calculated with 'page' which is given by the caller as a
      destination page and some offset adjustment for thp.  But this doesn't
      properly work for ksm pages because pvmw.page->index doesn't change for
      each address but linear_page_index() changes, which means that 'new'
      points to different pages for each addresses backed by the ksm page.  As
      a result, we try to set totally unrelated pages as destination pages,
      and that causes kernel crash.
      
      This patch fixes the miscalculation and makes ksm page migration work
      fine.
      
      Fixes: 3fe87967
      
       ("mm: convert remove_migration_pte() to use page_vma_mapped_walk()")
      Link: http://lkml.kernel.org/r/1489717683-29905-1-git-send-email-n-horiguchi@ah.jp.nec.com
      Signed-off-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Hillf Danton <hillf.zj@alibaba-inc.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4b0ece6f
  2. Mar 31, 2017
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.11-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · d4562267
      Linus Torvalds authored
      Pull PCI fixes from Bjorn Helgaas:
      
       - fix iProc memory corruption
      
       - fix ThunderX usage of unregistered PNP/ACPI ID
      
       - fix ThunderX resource reservation on early firmware
      
      * tag 'pci-v4.11-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: thunder-pem: Add legacy firmware support for Cavium ThunderX host controller
        PCI: thunder-pem: Use Cavium assigned hardware ID for ThunderX host controller
        PCI: iproc: Save host bridge window resource in struct iproc_pcie
      d4562267
  3. Mar 30, 2017
    • Linus Torvalds's avatar
      Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 89970a04
      Linus Torvalds authored
      Pull thermal management fixes from Zhang Rui:
      
       - Fix a potential deadlock in cpu_cooling driver, which was introduced
         in 4.11-rc1. (Matthew Wilcox)
      
       - Fix the cpu_cooling and devfreq_cooling code to handle possible error
         return value from OPP calls, together with three minor fixes in the
         same patch series. (Viresh Kumar)
      
      * 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: cpu_cooling: Check OPP for errors
        thermal: cpu_cooling: Replace dev_warn with dev_err
        thermal: devfreq: Check OPP for errors
        thermal: devfreq_cooling: Replace dev_warn with dev_err
        thermal: devfreq: Simplify expression
        thermal: Fix potential deadlock in cpu_cooling
      89970a04
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 806276b7
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Five fixes for this series:
      
         - a fix from me to ensure that blk-mq drivers that terminate IO in
           their ->queue_rq() handler by returning QUEUE_ERROR don't stall
           with a scheduler enabled.
      
         - four nbd fixes from Josef and Ratna, fixing various problems that
           are critical enough to go in for this cycle. They have been well
           tested"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        nbd: replace kill_bdev() with __invalidate_device()
        nbd: set queue timeout properly
        nbd: set rq->errors to actual error code
        nbd: handle ERESTARTSYS properly
        blk-mq: include errors in did_work calculation
      806276b7
    • Linus Torvalds's avatar
      Merge branch 'apw' (xfrm_user fixes) · 52b9c816
      Linus Torvalds authored
      Merge xfrm_user validation fixes from Andy Whitcroft:
       "Two patches we are applying to Ubuntu for XFRM_MSG_NEWAE validation
        issue reported by ZDI.
      
        The first of these is the primary fix, and the second is for a more
        theoretical issue that Kees pointed out when reviewing the first"
      
      * emailed patches from Andy Whitcroft <apw@canonical.com>:
        xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder
        xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window
      52b9c816
  4. Mar 29, 2017
    • Linus Torvalds's avatar
      Merge branch 'regset' (PTRACE_SETREGSET data leakage) · 72c33734
      Linus Torvalds authored
      Merge PTRACE_SETREGSET leakage fixes from Dave Martin:
       "This series is the collection of fixes I proposed on this topic, that
        have not yet appeared upstream or in the stable branches,
      
        The issue can leak kernel stack, but doesn't appear to allow userspace
        to attack the kernel directly.  The affected architectures are c6x,
        h8300, metag, mips and sparc.
      
        [ Mark Salter points out that c6x has no MMU or other mechanism to
          prevent userspace access to kernel code or data on c6x, but it
          doesn't hurt to clean that case up too. ]
      
        The bugs arise from use of user_regset_copyin(). Users of
        user_regset_copyin() can work in one of two ways:
      
         1) Copy directly to thread_struct or equivalent. (This seems to be
            the design assumption of the regset API, and is the most common
            approach.)
      
         2) Copy to a local variable and then transfer to thread_struct. (A
            significant minority of cases.)
      
        Buggy code typically involves approach 2"
      
      * emailed patches from Dave Martin <Dave.Martin@arm.com>:
        sparc/ptrace: Preserve previous registers for short regset write
        mips/ptrace: Preserve previous registers for short regset write
        metag/ptrace: Reject partial NT_METAG_RPIPE writes
        metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS
        metag/ptrace: Preserve previous registers for short regset write
        h8300/ptrace: Fix incorrect register transfer count
        c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
      72c33734
    • Dave Martin's avatar
      sparc/ptrace: Preserve previous registers for short regset write · d3805c54
      Dave Martin authored
      
      
      Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET
      to fill all the registers, the thread's old registers are preserved.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3805c54
    • Dave Martin's avatar
      mips/ptrace: Preserve previous registers for short regset write · d614fd58
      Dave Martin authored
      
      
      Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET
      to fill all the registers, the thread's old registers are preserved.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d614fd58
    • Dave Martin's avatar
      metag/ptrace: Reject partial NT_METAG_RPIPE writes · 7195ee31
      Dave Martin authored
      
      
      It's not clear what behaviour is sensible when doing partial write of
      NT_METAG_RPIPE, so just don't bother.
      
      This patch assumes that userspace will never rely on a partial SETREGSET
      in this case, since it's not clear what should happen anyway.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7195ee31
    • Dave Martin's avatar
      metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS · 5fe81fe9
      Dave Martin authored
      
      
      Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET
      to fill TXSTATUS, a well-defined default value is used, based on the
      task's current value.
      
      Suggested-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5fe81fe9
    • Dave Martin's avatar
      metag/ptrace: Preserve previous registers for short regset write · a78ce80d
      Dave Martin authored
      
      
      Ensure that if userspace supplies insufficient data to PTRACE_SETREGSET
      to fill all the registers, the thread's old registers are preserved.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a78ce80d
    • Dave Martin's avatar
      h8300/ptrace: Fix incorrect register transfer count · 502585c7
      Dave Martin authored
      
      
      regs_set() and regs_get() are vulnerable to an off-by-1 buffer overrun
      if CONFIG_CPU_H8S is set, since this adds an extra entry to
      register_offset[] but not to user_regs_struct.
      
      So, iterate over user_regs_struct based on its actual size, not based on
      the length of register_offset[].
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      502585c7
    • Dave Martin's avatar
      c6x/ptrace: Remove useless PTRACE_SETREGSET implementation · fb411b83
      Dave Martin authored
      
      
      gpr_set won't work correctly and can never have been tested, and the
      correct behaviour is not clear due to the endianness-dependent task
      layout.
      
      So, just remove it.  The core code will now return -EOPNOTSUPPORT when
      trying to set NT_PRSTATUS on this architecture until/unless a correct
      implementation is supplied.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      fb411b83
    • Andy Whitcroft's avatar
      xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder · f843ee6d
      Andy Whitcroft authored
      
      
      Kees Cook has pointed out that xfrm_replay_state_esn_len() is subject to
      wrapping issues.  To ensure we are correctly ensuring that the two ESN
      structures are the same size compare both the overall size as reported
      by xfrm_replay_state_esn_len() and the internal length are the same.
      
      CVE-2017-7184
      Signed-off-by: default avatarAndy Whitcroft <apw@canonical.com>
      Acked-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f843ee6d
    • Andy Whitcroft's avatar
      xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window · 677e806d
      Andy Whitcroft authored
      
      
      When a new xfrm state is created during an XFRM_MSG_NEWSA call we
      validate the user supplied replay_esn to ensure that the size is valid
      and to ensure that the replay_window size is within the allocated
      buffer.  However later it is possible to update this replay_esn via a
      XFRM_MSG_NEWAE call.  There we again validate the size of the supplied
      buffer matches the existing state and if so inject the contents.  We do
      not at this point check that the replay_window is within the allocated
      memory.  This leads to out-of-bounds reads and writes triggered by
      netlink packets.  This leads to memory corruption and the potential for
      priviledge escalation.
      
      We already attempt to validate the incoming replay information in
      xfrm_new_ae() via xfrm_replay_verify_len().  This confirms that the user
      is not trying to change the size of the replay state buffer which
      includes the replay_esn.  It however does not check the replay_window
      remains within that buffer.  Add validation of the contained
      replay_window.
      
      CVE-2017-7184
      Signed-off-by: default avatarAndy Whitcroft <apw@canonical.com>
      Acked-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      677e806d
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · fe82203b
      Linus Torvalds authored
      Pull virtio fixes from Michael Tsirkin:
       "Fixes to multiple issues in virtio.
      
        Most notably a regression fix for crashes reported by Fedora users.
        Hibernate is still reportedly broken, working on it"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio_balloon: prevent uninitialized variable use
        virtio-balloon: use actual number of stats for stats queue buffers
        virtio_balloon: init 1st buffer in stats vq
        virtio_pci: fix out of bound access for msix_names
      fe82203b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 050fc52d
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "All x86-specific, apart from some arch-independent syzkaller fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: cleanup the page tracking SRCU instance
        KVM: nVMX: fix nested EPT detection
        KVM: pci-assign: do not map smm memory slot pages in vt-d page tables
        KVM: kvm_io_bus_unregister_dev() should never fail
        KVM: VMX: Fix enable VPID conditions
        KVM: nVMX: Fix nested VPID vmx exec control
        KVM: x86: correct async page present tracepoint
        kvm: vmx: Flush TLB when the APIC-access address changes
        KVM: x86: use pic/ioapic destructor when destroy vm
        KVM: x86: check existance before destroy
        KVM: x86: clear bus pointer when destroyed
        KVM: Documentation: document MCE ioctls
        KVM: nVMX: don't reset kvm mmu twice
        PTP: fix ptr_ret.cocci warnings
        kvm: fix usage of uninit spinlock in avic_vm_destroy()
        KVM: VMX: downgrade warning on unexpected exit code
      050fc52d
    • Arnd Bergmann's avatar
      virtio_balloon: prevent uninitialized variable use · f0bb2d50
      Arnd Bergmann authored
      The latest gcc-7.0.1 snapshot reports a new warning:
      
      virtio/virtio_balloon.c: In function 'update_balloon_stats':
      virtio/virtio_balloon.c:258:26: error: 'events[2]' is used uninitialized in this function [-Werror=uninitialized]
      virtio/virtio_balloon.c:260:26: error: 'events[3]' is used uninitialized in this function [-Werror=uninitialized]
      virtio/virtio_balloon.c:261:56: error: 'events[18]' is used uninitialized in this function [-Werror=uninitialized]
      virtio/virtio_balloon.c:262:56: error: 'events[17]' is used uninitialized in this function [-Werror=uninitialized]
      
      This seems absolutely right, so we should add an extra check to
      prevent copying uninitialized stack data into the statistics.
      >From all I can tell, this has been broken since the statistics code
      was originally added in 2.6.34.
      
      Fixes: 9564e138
      
       ("virtio: Add memory statistics reporting to the balloon driver (V4)")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLadi Prosek <lprosek@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      f0bb2d50
    • Ladi Prosek's avatar
      virtio-balloon: use actual number of stats for stats queue buffers · 9646b26e
      Ladi Prosek authored
      
      
      The virtio balloon driver contained a not-so-obvious invariant that
      update_balloon_stats has to update exactly VIRTIO_BALLOON_S_NR counters
      in order to send valid stats to the host. This commit fixes it by having
      update_balloon_stats return the actual number of counters, and its
      callers use it when pushing buffers to the stats virtqueue.
      
      Note that it is still out of spec to change the number of counters
      at run-time. "Driver MUST supply the same subset of statistics in all
      buffers submitted to the statsq."
      
      Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarLadi Prosek <lprosek@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      9646b26e
    • Ladi Prosek's avatar
      virtio_balloon: init 1st buffer in stats vq · fc865322
      Ladi Prosek authored
      
      
      When init_vqs runs, virtio_balloon.stats is either uninitialized or
      contains stale values. The host updates its state with garbage data
      because it has no way of knowing that this is just a marker buffer
      used for signaling.
      
      This patch updates the stats before pushing the initial buffer.
      
      Alternative fixes:
      * Push an empty buffer in init_vqs. Not easily done with the current
        virtio implementation and violates the spec "Driver MUST supply the
        same subset of statistics in all buffers submitted to the statsq".
      * Push a buffer with invalid tags in init_vqs. Violates the same
        spec clause, plus "invalid tag" is not really defined.
      
      Note: the spec says:
      	When using the legacy interface, the device SHOULD ignore all values in
      	the first buffer in the statsq supplied by the driver after device
      	initialization. Note: Historically, drivers supplied an uninitialized
      	buffer in the first buffer.
      
      Unfortunately QEMU does not seem to implement the recommendation
      even for the legacy interface.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLadi Prosek <lprosek@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      fc865322
    • Jason Wang's avatar
      virtio_pci: fix out of bound access for msix_names · de85ec8b
      Jason Wang authored
      Fedora has received multiple reports of crashes when running
      4.11 as a guest
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1430297
      https://bugzilla.redhat.com/show_bug.cgi?id=1434462
      https://bugzilla.kernel.org/show_bug.cgi?id=194911
      https://bugzilla.redhat.com/show_bug.cgi?id=1433899
      
      The crashes are not always consistent but they are generally
      some flavor of oops or GPF in virtio related code. Multiple people
      have done bisections (Thank you Thorsten Leemhuis and
      Richard W.M. Jones) and found this commit to be at fault
      
      07ec5148 is the first bad commit
      commit 07ec5148
      Author: Christoph Hellwig <hch@lst.de>
      Date:   Sun Feb 5 18:15:19 2017 +0100
      
          virtio_pci: use shared interrupts for virtqueues
      
      The issue seems to be an out of bounds access to the msix_names
      array corrupting kernel memory.
      
      Fixes: 07ec5148
      
       ("virtio_pci: use shared interrupts for virtqueues")
      Reported-by: default avatarLaura Abbott <labbott@redhat.com>
      Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarRichard W.M. Jones <rjones@redhat.com>
      Tested-by: default avatarThorsten Leemhuis <linux@leemhuis.info>
      de85ec8b
  5. Mar 28, 2017
    • Paolo Bonzini's avatar
      KVM: x86: cleanup the page tracking SRCU instance · 2beb6dad
      Paolo Bonzini authored
      
      
      SRCU uses a delayed work item.  Skip cleaning it up, and
      the result is use-after-free in the work item callbacks.
      
      Reported-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Suggested-by: default avatarDmitry Vyukov <dvyukov@google.com>
      Cc: stable@vger.kernel.org
      Fixes: 0eb05bf2
      
      
      Reviewed-by: default avatarXiao Guangrong <xiaoguangrong.eric@gmail.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      2beb6dad
    • Ladi Prosek's avatar
      KVM: nVMX: fix nested EPT detection · 7ad658b6
      Ladi Prosek authored
      The nested_ept_enabled flag introduced in commit 7ca29de2 was not
      computed correctly. We are interested only in L1's EPT state, not the
      the combined L0+L1 value.
      
      In particular, if L0 uses EPT but L1 does not, nested_ept_enabled must
      be false to make sure that PDPSTRs are loaded based on CR3 as usual,
      because the special case described in 26.3.2.4 Loading Page-Directory-
      Pointer-Table Entries does not apply.
      
      Fixes: 7ca29de2
      
       ("KVM: nVMX: fix CR3 load if L2 uses PAE paging and EPT")
      Cc: qemu-stable@nongnu.org
      Reported-by: default avatarWanpeng Li <wanpeng.li@hotmail.com>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Signed-off-by: default avatarLadi Prosek <lprosek@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7ad658b6
    • Herongguang (Stephen)'s avatar
      KVM: pci-assign: do not map smm memory slot pages in vt-d page tables · 0292e169
      Herongguang (Stephen) authored
      
      
      or VM memory are not put thus leaked in kvm_iommu_unmap_memslots() when
      destroy VM.
      
      This is consistent with current vfio implementation.
      
      Signed-off-by: default avatarherongguang <herongguang.he@huawei.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0292e169
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.11_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · ad0376eb
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "A new EDAC driver for the Pondicherry2 memory controller IP found in
        the Intel Apollo Lake platform and the Denverton microserver.
      
        Plus small fixlets.
      
        Normally I had this queued for 4.12 but Tony requested for the
        pnd2_edac driver to possibly land in 4.11 therefore I'm sending it to
        you now.
      
        It is a driver for new hardware which people don't have yet so it
        shouldn't cause any regressions.
      
        The couple of patches ontop of it show that Qiuxu actually did test it
        on the hardware he has access to :)"
      
      * tag 'edac_for_4.11_2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
        EDAC, pnd2_edac: Fix reported DIMM number
        EDAC, pnd2_edac: Fix !EDAC_DEBUG build
        EDAC: Select DEBUG_FS
        EDAC, pnd2_edac: Add new EDAC driver for Intel SoC platforms
        EDAC, i5000, i5400: Fix use of MTR_DRAM_WIDTH macro
        EDAC, xgene: Fix wrongly spelled "procesing"
      ad0376eb
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 85f91d5c
      Linus Torvalds authored
      Pull more pin control fixes from Linus Walleij:
       "Here is a bunch of pin control fixes again
      
        A bit more than I'd like for this subsystem at this point, but what
        can I do. They are all driver fixes for hardware issues, as like "we
        forgot", "we didn't think of the fact that this could happen", "oops
        that one goes there" etc
      
         - Kconfig fixup for the TI IOdelay pinctrl-single add-on
      
         - fix up a typo in the meson i2c ao groups
      
         - switch a remapping back to use devm_ioremap() as
           devm_ioremap_resource() does not allow for sharing memory regions
      
         - do not clear the Qualcomm irq status bit in irq_unmask(), as this
           can lead to missing interrupts while the irq handler is executing
      
         - add irq_request/release_resources() on the ST driver
      
         - add a bunch of mysteriously missing pingroups for high numbered
           pins in the Qualcomm ipq4019 driver"
      
      * tag 'pinctrl-v4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: qcom: ipq4019: add missing pingroups for pins > 70
        pinctrl: st: add irq_request/release_resources callbacks
        pinctrl: qcom: Don't clear status bit on irq_unmask
        pinctrl: samsung: Fix memory mapping code
        pinctrl: meson-gxbb: Fix typo in i2c ao groups
        pinctrl: ti: The IODelay driver is a DRA7xxx feature so depend on that SoC
      85f91d5c
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v4.11-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · d3e68cef
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - build warning fix
      
        - defconfig updates
      
        - wire up new statx syscall
      
      * tag 'm68k-for-v4.11-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Wire up statx
        m68k/defconfig: Update defconfigs for v4.11-rc1
        m68k/bitops: Correct signature of test_bit()
      d3e68cef
  6. Mar 27, 2017
    • Linus Torvalds's avatar
      Linux 4.11-rc4 · c02ed2e7
      Linus Torvalds authored
      c02ed2e7
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 0dc82fa5
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "A smattering of different small fixes for some random driver
        subsystems. Nothing all that major, just resolutions for reported
        issues and bugs.
      
        All have been in linux-next with no reported issues"
      
      * tag 'char-misc-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (21 commits)
        extcon: int3496: Set the id pin to direction-input if necessary
        extcon: int3496: Use gpiod_get instead of gpiod_get_index
        extcon: int3496: Add dependency on X86 as it's Intel specific
        extcon: int3496: Add GPIO ACPI mapping table
        extcon: int3496: Rename GPIO pins in accordance with binding
        vmw_vmci: handle the return value from pci_alloc_irq_vectors correctly
        ppdev: fix registering same device name
        parport: fix attempt to write duplicate procfiles
        auxdisplay: img-ascii-lcd: add missing sentinel entry in img_ascii_lcd_matches
        Drivers: hv: vmbus: Don't leak memory when a channel is rescinded
        Drivers: hv: vmbus: Don't leak channel ids
        Drivers: hv: util: don't forget to init host_ts.lock
        Drivers: hv: util: move waiting for release to hv_utils_transport itself
        vmbus: remove hv_event_tasklet_disable/enable
        vmbus: use rcu for per-cpu channel list
        mei: don't wait for os version message reply
        mei: fix deadlock on mei reset
        intel_th: pci: Add Gemini Lake support
        intel_th: pci: Add Denverton SOC support
        intel_th: Don't leak module refcount on failure to activate
        ...
      0dc82fa5
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.11-rc4' of... · 9e54ef9d
      Linus Torvalds authored
      Merge tag 'driver-core-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core fix from Greg KH:
       "Here is a single kernfs fix for 4.11-rc4 that resolves a reported
        issue.
      
        It has been in linux-next with no reported issues"
      
      * tag 'driver-core-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        kernfs: Check KERNFS_HAS_RELEASE before calling kernfs_release_file()
      9e54ef9d
    • Linus Torvalds's avatar
      Merge tag 'tty-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · f1638fc6
      Linus Torvalds authored
      Pull tty/serial driver fixes from Greg KH:
       "Here are some tty and serial driver fixes for 4.11-rc4.
      
        One of these fix a long-standing issue in the ldisc code that was
        found by Dmitry Vyukov with his great fuzzing work. The other fixes
        resolve other reported issues, and there is one revert of a patch in
        4.11-rc1 that wasn't correct.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty: fix data race in tty_ldisc_ref_wait()
        tty: don't panic on OOM in tty_set_ldisc()
        Revert "tty: serial: pl011: add ttyAMA for matching pl011 console"
        tty: acpi/spcr: QDF2400 E44 checks for wrong OEM revision
        serial: 8250_dw: Fix breakage when HAVE_CLK=n
        serial: 8250_dw: Honor clk_round_rate errors in dw8250_set_termios
      f1638fc6
    • Linus Torvalds's avatar
      Merge tag 'staging-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 53b4d591
      Linus Torvalds authored
      Pull IIO driver fixes from Greg KH:
       "Here are some small IIO driver fixes for 4.11-rc4 that resolve a
        number of tiny reported issues. All of these have been in linux-next
        for a while with no reported issues"
      
      * tag 'staging-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        iio: imu: st_lsm6dsx: fix FIFO_CTRL2 overwrite during watermark configuration
        iio: adc: ti_am335x_adc: fix fifo overrun recovery
        iio: sw-device: Fix config group initialization
        iio: magnetometer: ak8974: remove incorrect __exit markups
        iio: hid-sensor-trigger: Change get poll value function order to avoid sensor properties losing after resume from S3
      53b4d591
    • Linus Torvalds's avatar
      Merge tag 'usb-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e431e0e4
      Linus Torvalds authored
      Pull USB/PHY fixes from Greg KH:
       "Here are a number of small USB and PHY driver fixes for 4.11-rc4.
      
        Nothing major here, just an bunch of small fixes, and a handfull of
        good fixes from Johan for devices with crazy descriptors. There are a
        few new device ids in here as well.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (26 commits)
        usb: gadget: f_hid: fix: Don't access hidg->req without spinlock held
        usb: gadget: udc: remove pointer dereference after free
        usb: gadget: f_uvc: Sanity check wMaxPacketSize for SuperSpeed
        usb: gadget: f_uvc: Fix SuperSpeed companion descriptor's wBytesPerInterval
        usb: gadget: acm: fix endianness in notifications
        usb: dwc3: gadget: delay unmap of bounced requests
        USB: serial: qcserial: add Dell DW5811e
        usb: hub: Fix crash after failure to read BOS descriptor
        ACM gadget: fix endianness in notifications
        USB: usbtmc: fix probe error path
        USB: usbtmc: add missing endpoint sanity check
        USB: serial: option: add Quectel UC15, UC20, EC21, and EC25 modems
        usb: musb: fix possible spinlock deadlock
        usb: musb: dsps: fix iounmap in error and exit paths
        usb: musb: cppi41: don't check early-TX-interrupt for Isoch transfer
        usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk
        uwb: i1480-dfu: fix NULL-deref at probe
        uwb: hwa-rc: fix NULL-deref at probe
        USB: wusbcore: fix NULL-deref at probe
        USB: uss720: fix NULL-deref at probe
        ...
      e431e0e4
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.11-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 42234bf8
      Linus Torvalds authored
      Pull more powerpc fixes from Michael Ellerman:
       "These are all pretty minor. The fix for idle wakeup would be a bad bug
        but has not been observed in practice.
      
        The update to the gcc-plugins docs was Cc'ed to Kees and Jon, Kees
        OK'ed it going via powerpc and I didn't hear from Jon.
      
         - cxl: Route eeh events to all slices for pci_channel_io_perm_failure state
      
         - powerpc/64s: Fix idle wakeup potential to clobber registers
      
         - Revert "powerpc/64: Disable use of radix under a hypervisor"
      
         - gcc-plugins: update architecture list in documentation
      
        Thanks to: Andrew Donnellan, Nicholas Piggin, Paul Mackerras, Vaibhav
        Jain"
      
      * tag 'powerpc-4.11-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        gcc-plugins: update architecture list in documentation
        Revert "powerpc/64: Disable use of radix under a hypervisor"
        powerpc/64s: Fix idle wakeup potential to clobber registers
        cxl: Route eeh events to all slices for pci_channel_io_perm_failure state
      42234bf8
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 1c23de63
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Fix a memory leak on an error path, and two races when modifying
        inodes relating to the inline_data and metadata checksum features"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix two spelling nits
        ext4: lock the xattr block before checksuming it
        jbd2: don't leak memory if setting up journal fails
        ext4: mark inode dirty after converting inline directory
      1c23de63
  7. Mar 26, 2017
    • Qiuxu Zhuo's avatar
      EDAC, pnd2_edac: Fix reported DIMM number · 819f60fb
      Qiuxu Zhuo authored
      
      
      DIMM number passed to edac_mc_handle_error() was accidentally hardcoded
      to zero. Pass in the correct daddr->dimm value.
      
      Signed-off-by: default avatarQiuxu Zhuo <qiuxu.zhuo@intel.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      819f60fb
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt · a643f905
      Linus Torvalds authored
      Pull fscrypto fixes from Ted Ts'o:
       "A code cleanup and bugfix for fs/crypto"
      
      * tag 'fscrypt-for-linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt:
        fscrypt: eliminate ->prepare_context() operation
        fscrypt: remove broken support for detecting keyring key revocation
      a643f905
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.11-rc4' of... · a00da40f
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - bug fixes in asus_atk0110, it87 and max31790 drivers
      
       - added missing API definition to hwmon core
      
      * tag 'hwmon-for-linus-v4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (asus_atk0110) fix uninitialized data access
        hwmon: Add missing HWMON_T_ALARM
        hwmon: (it87) Avoid registering the same chip on both SIO addresses
        hwmon: (max31790) Set correct PWM value
      a00da40f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · 4a01fa5e
      Linus Torvalds authored
      Pull rdma fixes from Doug Ledford:
       "This has been a slow -rc cycle for the RDMA subsystem. We really
        haven't had a lot of rc fixes come in. This pull request is the first
        of this entire rc cycle and it has all of the suitable fixes so far
        and it's still only about 20 patches. The fix for the minor breakage
        cause by the dma mapping patchset is in here, as well as a couple
        other potential oops fixes, but the rest is more minor.
      
        Summary:
      
         - fix for dma_ops change in this kernel, resolving the s390, powerpc,
           and IOMMU operation
      
         - a few other oops fixes
      
         - the rest are all minor fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        IB/qib: fix false-postive maybe-uninitialized warning
        RDMA/iser: Fix possible mr leak on device removal event
        IB/device: Convert ib-comp-wq to be CPU-bound
        IB/cq: Don't process more than the given budget
        IB/rxe: increment msn only when completing a request
        uapi: fix rdma/mlx5-abi.h userspace compilation errors
        IB/core: Restore I/O MMU, s390 and powerpc support
        IB/rxe: Update documentation link
        RDMA/ocrdma: fix a type issue in ocrdma_put_pd_num()
        IB/rxe: double free on error
        RDMA/vmw_pvrdma: Activate device on ethernet link up
        RDMA/vmw_pvrdma: Dont hardcode QP header page
        RDMA/vmw_pvrdma: Cleanup unused variables
        infiniband: Fix alignment of mmap cookies to support VIPT caching
        IB/core: Protect against self-requeue of a cq work item
        i40iw: Receive netdev events post INET_NOTIFIER state
      4a01fa5e
    • Linus Torvalds's avatar
      Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit · 4c3de7e5
      Linus Torvalds authored
      Pull audit fix from Paul Moore:
       "We've got an audit fix, and unfortunately it is big.
      
        While I'm not excited that we need to be sending you something this
        large during the -rcX phase, it does fix some very real, and very
        tangled, problems relating to locking, backlog queues, and the audit
        daemon connection.
      
        This code has passed our testsuite without problem and it has held up
        to my ad-hoc stress tests (arguably better than the existing code),
        please consider pulling this as fix for the next v4.11-rcX tag"
      
      * 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit:
        audit: fix auditd/kernel connection state tracking
      4c3de7e5