1. 27 Jun, 2016 2 commits
    • James Morse's avatar
      KVM: arm/arm64: Stop leaking vcpu pid references · 591d215a
      James Morse authored
      kvm provides kvm_vcpu_uninit(), which amongst other things, releases the
      last reference to the struct pid of the task that was last running the vcpu.
      
      On arm64 built with CONFIG_DEBUG_KMEMLEAK, starting a guest with kvmtool,
      then killing it with SIGKILL results (after some considerable time) in:
      > cat /sys/kernel/debug/kmemleak
      > unreferenced object 0xffff80007d5ea080 (size 128):
      >  comm "lkvm", pid 2025, jiffies 4294942645 (age 1107.776s)
      >  hex dump (first 32 bytes):
      >    01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      >    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      >  backtrace:
      >    [<ffff8000001b30ec>] create_object+0xfc/0x278
      >    [<ffff80000071da34>] kmemleak_alloc+0x34/0x70
      >    [<ffff80000019fa2c>] kmem_cache_alloc+0x16c/0x1d8
      >    [<ffff8000000d0474>] alloc_pid+0x34/0x4d0
      >    [<ffff8000000b5674>] copy_process.isra.6+0x79c/0x1338
      >    [<ffff8000000b633c>] _do_fork+0x74/0x320
      >    [<ffff8000000b66b0>] SyS_clone+0x18/0x20
      >    [<ffff800000085cb0>] el0_svc_naked+0x24/0x28
      >    [<ffffffffffffffff>] 0xffffffffffffffff
      
      On x86 kvm_vcpu_uninit() is called on the path from kvm_arch_destroy_vm(),
      on arm no equivalent call is made. Add the call to kvm_arch_vcpu_free().
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Fixes: 749cf76c ("KVM: ARM: Initial skeleton to compile KVM support")
      Cc: <stable@vger.kernel.org> # 3.10+
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      591d215a
    • Sudeep Holla's avatar
      arm64: KVM: fix build with CONFIG_ARM_PMU disabled · 0efce9da
      Sudeep Holla authored
      When CONFIG_ARM_PMU is disabled, we get the following build error:
      
      arch/arm64/kvm/sys_regs.c: In function 'pmu_counter_idx_valid':
      arch/arm64/kvm/sys_regs.c:564:27: error: 'ARMV8_PMU_CYCLE_IDX' undeclared (first use in this function)
        if (idx >= val && idx != ARMV8_PMU_CYCLE_IDX)
                                 ^
      arch/arm64/kvm/sys_regs.c:564:27: note: each undeclared identifier is reported only once for each function it appears in
      arch/arm64/kvm/sys_regs.c: In function 'access_pmu_evcntr':
      arch/arm64/kvm/sys_regs.c:592:10: error: 'ARMV8_PMU_CYCLE_IDX' undeclared (first use in this function)
          idx = ARMV8_PMU_CYCLE_IDX;
                ^
      arch/arm64/kvm/sys_regs.c: In function 'access_pmu_evtyper':
      arch/arm64/kvm/sys_regs.c:638:14: error: 'ARMV8_PMU_CYCLE_IDX' undeclared (first use in this function)
         if (idx == ARMV8_PMU_CYCLE_IDX)
                    ^
      arch/arm64/kvm/hyp/switch.c:86:15: error: 'ARMV8_PMU_USERENR_MASK' undeclared (first use in this function)
        write_sysreg(ARMV8_PMU_USERENR_MASK, pmuserenr_el0);
      
      This patch fixes the build with CONFIG_ARM_PMU disabled.
      
      Cc: Christoffer Dall <christoffer.dall@linaro.org>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
      Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      0efce9da
  2. 16 Jun, 2016 2 commits
    • Yang Zhang's avatar
      kvm: vmx: check apicv is active before using VT-d posted interrupt · a0052191
      Yang Zhang authored
      VT-d posted interrupt is relying on the CPU side's posted interrupt.
      Need to check whether VCPU's APICv is active before enabing VT-d
      posted interrupt.
      
      Fixes: d62caabb
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarYang Zhang <yang.zhang.wz@gmail.com>
      Signed-off-by: default avatarShengge Ding <shengge.dsg@alibaba-inc.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a0052191
    • Xiubo Li's avatar
      kvm: Fix irq route entries exceeding KVM_MAX_IRQ_ROUTES · caf1ff26
      Xiubo Li authored
      These days, we experienced one guest crash with 8 cores and 3 disks,
      with qemu error logs as bellow:
      
      qemu-system-x86_64: /build/qemu-2.0.0/kvm-all.c:984:
      kvm_irqchip_commit_routes: Assertion `ret == 0' failed.
      
      And then we found one patch(bdf026317d) in qemu tree, which said
      could fix this bug.
      
      Execute the following script will reproduce the BUG quickly:
      
      irq_affinity.sh
      ========================================================================
      
      vda_irq_num=25
      vdb_irq_num=27
      while [ 1 ]
      do
          for irq in {1,2,4,8,10,20,40,80}
              do
                  echo $irq > /proc/irq/$vda_irq_num/smp_affinity
                  echo $irq > /proc/irq/$vdb_irq_num/smp_affinity
                  dd if=/dev/vda of=/dev/zero bs=4K count=100 iflag=direct
                  dd if=/dev/vdb of=/dev/zero bs=4K count=100 iflag=direct
              done
      done
      ========================================================================
      
      The following qemu log is added in the qemu code and is displayed when
      this bug reproduced:
      
      kvm_irqchip_commit_routes: max gsi: 1008, nr_allocated_irq_routes: 1024,
      irq_routes->nr: 1024, gsi_count: 1024.
      
      That's to say when irq_routes->nr == 1024, there are 1024 routing entries,
      but in the kernel code when routes->nr >= 1024, will just return -EINVAL;
      
      The nr is the number of the routing entries which is in of
      [1 ~ KVM_MAX_IRQ_ROUTES], not the index in [0 ~ KVM_MAX_IRQ_ROUTES - 1].
      
      This patch fix the BUG above.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarXiubo Li <lixiubo@cmss.chinamobile.com>
      Signed-off-by: default avatarWei Tang <tangwei@cmss.chinamobile.com>
      Signed-off-by: default avatarZhang Zhuoyu <zhangzhuoyu@cmss.chinamobile.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      caf1ff26
  3. 15 Jun, 2016 2 commits
  4. 14 Jun, 2016 5 commits
    • Paolo Bonzini's avatar
      Merge branch 'kvm-mips-fixes' into HEAD · 0699fdb3
      Paolo Bonzini authored
      Merge MIPS patches destined to both 4.7 and kvm/next, to avoid
      unnecessary conflicts.
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0699fdb3
    • James Hogan's avatar
      MIPS: KVM: Fix CACHE triggered exception emulation · 6df82a7b
      James Hogan authored
      When emulating TLB miss / invalid exceptions during CACHE instruction
      emulation, be sure to set up the correct PC and host_cp0_badvaddr state
      for the kvm_mips_emlulate_tlb*_ld() function to pick up for guest EPC
      and BadVAddr.
      
      PC needs to be rewound otherwise the guest EPC will end up pointing at
      the next instruction after the faulting CACHE instruction.
      
      host_cp0_badvaddr must be set because guest CACHE instructions trap with
      a Coprocessor Unusable exception, which doesn't update the host BadVAddr
      as a TLB exception would.
      
      This doesn't tend to get hit when dynamic translation of emulated
      instructions is enabled, since only the first execution of each CACHE
      instruction actually goes through this code path, with subsequent
      executions hitting the SYNCI instruction that it gets replaced with.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: kvm@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      6df82a7b
    • James Hogan's avatar
      MIPS: KVM: Don't unwind PC when emulating CACHE · cc81e948
      James Hogan authored
      When a CACHE instruction is emulated by kvm_mips_emulate_cache(), the PC
      is first updated to point to the next instruction, and afterwards it
      falls through the "dont_update_pc" label, which rewinds the PC back to
      its original address.
      
      This works when dynamic translation of emulated instructions is enabled,
      since the CACHE instruction is replaced with a SYNCI which works without
      trapping, however when dynamic translation is disabled the guest hangs
      on CACHE instructions as they always trap and are never stepped over.
      
      Roughly swap the meanings of the "done" and "dont_update_pc" to match
      kvm_mips_emulate_CP0(), so that "done" will roll back the PC on failure,
      and "dont_update_pc" won't change PC at all (for the sake of exceptions
      that have already modified the PC).
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: kvm@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      cc81e948
    • James Hogan's avatar
      MIPS: KVM: Include bit 31 in segment matches · 7f5a1ddc
      James Hogan authored
      When faulting guest addresses are matched against guest segments with
      the KVM_GUEST_KSEGX() macro, change the mask to 0xe0000000 so as to
      include bit 31.
      
      This is mainly for safety's sake, as it prevents a rogue BadVAddr in the
      host kseg2/kseg3 segments (e.g. 0xC*******) after a TLB exception from
      matching the guest kseg0 segment (e.g. 0x4*******), triggering an
      internal KVM error instead of allowing the corresponding guest kseg0
      page to be mapped into the host vmalloc space.
      
      Such a rogue BadVAddr was observed to happen with the host MIPS kernel
      running under QEMU with KVM built as a module, due to a not entirely
      transparent optimisation in the QEMU TLB handling. This has already been
      worked around properly in a previous commit.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: kvm@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      7f5a1ddc
    • James Hogan's avatar
      MIPS: KVM: Fix modular KVM under QEMU · 797179bc
      James Hogan authored
      Copy __kvm_mips_vcpu_run() into unmapped memory, so that we can never
      get a TLB refill exception in it when KVM is built as a module.
      
      This was observed to happen with the host MIPS kernel running under
      QEMU, due to a not entirely transparent optimisation in the QEMU TLB
      handling where TLB entries replaced with TLBWR are copied to a separate
      part of the TLB array. Code in those pages continue to be executable,
      but those mappings persist only until the next ASID switch, even if they
      are marked global.
      
      An ASID switch happens in __kvm_mips_vcpu_run() at exception level after
      switching to the guest exception base. Subsequent TLB mapped kernel
      instructions just prior to switching to the guest trigger a TLB refill
      exception, which enters the guest exception handlers without updating
      EPC. This appears as a guest triggered TLB refill on a host kernel
      mapped (host KSeg2) address, which is not handled correctly as user
      (guest) mode accesses to kernel (host) segments always generate address
      error exceptions.
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: kvm@vger.kernel.org
      Cc: linux-mips@linux-mips.org
      Cc: <stable@vger.kernel.org> # 3.10.x-
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      797179bc
  5. 13 Jun, 2016 1 commit
  6. 10 Jun, 2016 2 commits
  7. 05 Jun, 2016 7 commits
    • Linus Torvalds's avatar
      Linux 4.7-rc2 · af8c34ce
      Linus Torvalds authored
      af8c34ce
    • Linus Torvalds's avatar
      Merge branch 'parisc-4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 5975b2c0
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
      
       - Fix printk time stamps on SMP systems which got wrong due to a patch
         which was added during the merge window
      
       - Fix two bugs in the stack backtrace code: Races in module unloading
         and possible invalid accesses to memory due to wrong instruction
         decoding (Mikulas Patocka)
      
       - Fix userspace crash when syscalls access invalid unaligned userspace
         addresses.  Those syscalls will now return EFAULT as expected.
         (tagged for stable kernel series)
      
      * 'parisc-4.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Move die_if_kernel() prototype into traps.h header
        parisc: Fix pagefault crash in unaligned __get_user() call
        parisc: Fix printk time during boot
        parisc: Fix backtrace on PA-RISC
      5975b2c0
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · d834502e
      Linus Torvalds authored
      Pull key handling update from James Morris:
       "This alters a new keyctl function added in the current merge window to
        allow for a future extension planned for the next merge window"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        KEYS: Add placeholder for KDF usage with DH
      d834502e
    • Eric W. Biederman's avatar
      devpts: Make each mount of devpts an independent filesystem. · eedf265a
      Eric W. Biederman authored
      The /dev/ptmx device node is changed to lookup the directory entry "pts"
      in the same directory as the /dev/ptmx device node was opened in.  If
      there is a "pts" entry and that entry is a devpts filesystem /dev/ptmx
      uses that filesystem.  Otherwise the open of /dev/ptmx fails.
      
      The DEVPTS_MULTIPLE_INSTANCES configuration option is removed, so that
      userspace can now safely depend on each mount of devpts creating a new
      instance of the filesystem.
      
      Each mount of devpts is now a separate and equal filesystem.
      
      Reserved ttys are now available to all instances of devpts where the
      mounter is in the initial mount namespace.
      
      A new vfs helper path_pts is introduced that finds a directory entry
      named "pts" in the directory of the passed in path, and changes the
      passed in path to point to it.  The helper path_pts uses a function
      path_parent_directory that was factored out of follow_dotdot.
      
      In the implementation of devpts:
       - devpts_mnt is killed as it is no longer meaningful if all mounts of
         devpts are equal.
       - pts_sb_from_inode is replaced by just inode->i_sb as all cached
         inodes in the tty layer are now from the devpts filesystem.
       - devpts_add_ref is rolled into the new function devpts_ptmx.  And the
         unnecessary inode hold is removed.
       - devpts_del_ref is renamed devpts_release and reduced to just a
         deacrivate_super.
       - The newinstance mount option continues to be accepted but is now
         ignored.
      
      In devpts_fs.h definitions for when !CONFIG_UNIX98_PTYS are removed as
      they are never used.
      
      Documentation/filesystems/devices.txt is updated to describe the current
      situation.
      
      This has been verified to work properly on openwrt-15.05, centos5,
      centos6, centos7, debian-6.0.2, debian-7.9, debian-8.2, ubuntu-14.04.3,
      ubuntu-15.10, fedora23, magia-5, mint-17.3, opensuse-42.1,
      slackware-14.1, gentoo-20151225 (13.0?), archlinux-2015-12-01.  With the
      caveat that on centos6 and on slackware-14.1 that there wind up being
      two instances of the devpts filesystem mounted on /dev/pts, the lower
      copy does not end up getting used.
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Greg KH <greg@kroah.com>
      Cc: Peter Hurley <peter@hurleysoftware.com>
      Cc: Peter Anvin <hpa@zytor.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
      Cc: Willy Tarreau <w@1wt.eu>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
      Cc: Jann Horn <jann@thejh.net>
      Cc: Jiri Slaby <jslaby@suse.com>
      Cc: Florian Weimer <fw@deneb.enyo.de>
      Cc: Konstantin Khlebnikov <koct9i@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eedf265a
    • Helge Deller's avatar
      58f1c654
    • Helge Deller's avatar
      parisc: Fix pagefault crash in unaligned __get_user() call · 8b78f260
      Helge Deller authored
      One of the debian buildd servers had this crash in the syslog without
      any other information:
      
       Unaligned handler failed, ret = -2
       clock_adjtime (pid 22578): Unaligned data reference (code 28)
       CPU: 1 PID: 22578 Comm: clock_adjtime Tainted: G  E  4.5.0-2-parisc64-smp #1 Debian 4.5.4-1
       task: 000000007d9960f8 ti: 00000001bde7c000 task.ti: 00000001bde7c000
      
            YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
       PSW: 00001000000001001111100000001111 Tainted: G            E
       r00-03  000000ff0804f80f 00000001bde7c2b0 00000000402d2be8 00000001bde7c2b0
       r04-07  00000000409e1fd0 00000000fa6f7fff 00000001bde7c148 00000000fa6f7fff
       r08-11  0000000000000000 00000000ffffffff 00000000fac9bb7b 000000000002b4d4
       r12-15  000000000015241c 000000000015242c 000000000000002d 00000000fac9bb7b
       r16-19  0000000000028800 0000000000000001 0000000000000070 00000001bde7c218
       r20-23  0000000000000000 00000001bde7c210 0000000000000002 0000000000000000
       r24-27  0000000000000000 0000000000000000 00000001bde7c148 00000000409e1fd0
       r28-31  0000000000000001 00000001bde7c320 00000001bde7c350 00000001bde7c218
       sr00-03  0000000001200000 0000000001200000 0000000000000000 0000000001200000
       sr04-07  0000000000000000 0000000000000000 0000000000000000 0000000000000000
      
       IASQ: 0000000000000000 0000000000000000 IAOQ: 00000000402d2e84 00000000402d2e88
        IIR: 0ca0d089    ISR: 0000000001200000  IOR: 00000000fa6f7fff
        CPU:        1   CR30: 00000001bde7c000 CR31: ffffffffffffffff
        ORIG_R28: 00000002369fe628
        IAOQ[0]: compat_get_timex+0x2dc/0x3c0
        IAOQ[1]: compat_get_timex+0x2e0/0x3c0
        RP(r2): compat_get_timex+0x40/0x3c0
       Backtrace:
        [<00000000402d4608>] compat_SyS_clock_adjtime+0x40/0xc0
        [<0000000040205024>] syscall_exit+0x0/0x14
      
      This means the userspace program clock_adjtime called the clock_adjtime()
      syscall and then crashed inside the compat_get_timex() function.
      Syscalls should never crash programs, but instead return EFAULT.
      
      The IIR register contains the executed instruction, which disassebles
      into "ldw 0(sr3,r5),r9".
      This load-word instruction is part of __get_user() which tried to read the word
      at %r5/IOR (0xfa6f7fff). This means the unaligned handler jumped in.  The
      unaligned handler is able to emulate all ldw instructions, but it fails if it
      fails to read the source e.g. because of page fault.
      
      The following program reproduces the problem:
      
      #define _GNU_SOURCE
      #include <unistd.h>
      #include <sys/syscall.h>
      #include <sys/mman.h>
      
      int main(void) {
              /* allocate 8k */
              char *ptr = mmap(NULL, 2*4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
              /* free second half (upper 4k) and make it invalid. */
              munmap(ptr+4096, 4096);
              /* syscall where first int is unaligned and clobbers into invalid memory region */
              /* syscall should return EFAULT */
              return syscall(__NR_clock_adjtime, 0, ptr+4095);
      }
      
      To fix this issue we simply need to check if the faulting instruction address
      is in the exception fixup table when the unaligned handler failed. If it
      is, call the fixup routine instead of crashing.
      
      While looking at the unaligned handler I found another issue as well: The
      target register should not be modified if the handler was unsuccessful.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Cc: stable@vger.kernel.org
      8b78f260
    • Helge Deller's avatar
      parisc: Fix printk time during boot · 0032c088
      Helge Deller authored
      Avoid showing invalid printk time stamps during boot.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Reviewed-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      0032c088
  8. 04 Jun, 2016 9 commits
    • Mikulas Patocka's avatar
      parisc: Fix backtrace on PA-RISC · be24a897
      Mikulas Patocka authored
      This patch fixes backtrace on PA-RISC
      
      There were several problems:
      
      1) The code that decodes instructions handles instructions that subtract
      from the stack pointer incorrectly. If the instruction subtracts the
      number X from the stack pointer the code increases the frame size by
      (0x100000000-X).  This results in invalid accesses to memory and
      recursive page faults.
      
      2) Because gcc reorders blocks, handling instructions that subtract from
      the frame pointer is incorrect. For example, this function
      	int f(int a)
      	{
      		if (__builtin_expect(a, 1))
      			return a;
      		g();
      		return a;
      	}
      is compiled in such a way, that the code that decreases the stack
      pointer for the first "return a" is placed before the code for "g" call.
      If we recognize this decrement, we mistakenly believe that the frame
      size for the "g" call is zero.
      
      To fix problems 1) and 2), the patch doesn't recognize instructions that
      decrease the stack pointer at all. To further safeguard the unwind code
      against nonsense values, we don't allow frame size larger than
      Total_frame_size.
      
      3) The backtrace is not locked. If stack dump races with module unload,
      invalid table can be accessed.
      
      This patch adds a spinlock when processing module tables.
      
      Note, that for correct backtrace, you need recent binutils.
      Binutils 2.18 from Debian 5 produce garbage unwind tables.
      Binutils 2.21 work better (it sometimes forgets function frames, but at
      least it doesn't generate garbage).
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      be24a897
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.7-rc2' of git://people.freedesktop.org/~airlied/linux · 049ec1b5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of ARM drivers got into the fixes vibe this time around, so
        this contains a bunch of fixes for imx, atmel hlcdc, arm hdlcd (only
        so many combos of hlcd), mediatek and omap drm.
      
        Other than that there is one mgag200 fix and a few core drm regression
        fixes"
      
      * tag 'drm-fixes-for-v4.7-rc2' of git://people.freedesktop.org/~airlied/linux: (34 commits)
        drm/omap: fix unused variable warning.
        drm: hdlcd: Add information about the underlying framebuffers in debugfs
        drm: hdlcd: Cleanup the atomic plane operations
        drm/hdlcd: Fix up crtc_state->event handling
        drm: hdlcd: Revamp runtime power management
        drm/mediatek: mtk_dsi: Remove spurious drm_connector_unregister
        drm/mediatek: mtk_dpi: remove invalid error message
        drm: atmel-hlcdc: fix a NULL check
        drm: atmel-hlcdc: fix atmel_hlcdc_crtc_reset() implementation
        drm/mgag200: Black screen fix for G200e rev 4
        drm: Wrap direct calls to driver->gem_free_object from CMA
        drm: fix fb refcount issue with atomic modesetting
        drm: make drm_atomic_set_mode_prop_for_crtc() more reliable
        drm/sti: remove extra mode fixup
        drm: add missing drm_mode_set_crtcinfo call
        drm/omap: include gpio/consumer.h where needed
        drm/omap: include linux/seq_file.h where needed
        Revert "drm/omap: no need to select OMAP2_DSS"
        drm/omap: Remove regulator API abuse
        OMAPDSS: HDMI5: Change DDC timings
        ...
      049ec1b5
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.7-rc2' of git://github.com/awilliam/linux-vfio · f2c6b9e4
      Linus Torvalds authored
      Pull VFIO fixes from Alex Williamson:
       "Fix irqfd shutdown ordering, build warning, and VPD short read"
      
      * tag 'vfio-v4.7-rc2' of git://github.com/awilliam/linux-vfio:
        vfio/pci: Allow VPD short read
        vfio/type1: Fix build warning
        vfio/pci: Fix ordering of eventfd vs virqfd shutdown
      f2c6b9e4
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.7-rc1-2' of git://git.linaro.org/people/ulf.hansson/mmc · 95b46aeb
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "MMC core:
         - Fix/restore behaviour when selecting bus width for (e)MMC
      
        MMC host:
         - sunxi: Fix eMMC HS-DDR modes on Allwinner A80"
      
      * tag 'mmc-v4.7-rc1-2' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: sunxi: Re-enable eMMC HS-DDR modes on Allwinner A80
        mmc: sunxi: Fix DDR MMC timings for A80
        mmc: fix mmc mode selection for HS-DDR and higher
      95b46aeb
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · b2d5ad82
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "The important part of this pull is Filipe's set of fixes for btrfs
        device replacement.  Filipe fixed a few issues seen on the list and a
        number he found on his own"
      
      * 'for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: deal with duplciates during extent_map insertion in btrfs_get_extent
        Btrfs: fix race between device replace and read repair
        Btrfs: fix race between device replace and discard
        Btrfs: fix race between device replace and chunk allocation
        Btrfs: fix race setting block group back to RW mode during device replace
        Btrfs: fix unprotected assignment of the left cursor for device replace
        Btrfs: fix race setting block group readonly during device replace
        Btrfs: fix race between device replace and block group removal
        Btrfs: fix race between readahead and device replace/removal
      b2d5ad82
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · a3021a59
      Linus Torvalds authored
      Pull Ceph fixes from Sage Weil:
       "We have a few follow-up fixes for the libceph refactor from Ilya, and
        then some cephfs + fscache fixes from Zheng.
      
        The first two FS-Cache patches are acked by David Howells and deemed
        trivial enough to go through our tree.  The rest fix some issues with
        the ceph fscache handling (disable cache for inodes opened for write,
        and simplify the revalidation logic accordingly, dropping the
        now-unnecessary work queue)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        ceph: use i_version to check validity of fscache
        ceph: improve fscache revalidation
        ceph: disable fscache when inode is opened for write
        ceph: avoid unnecessary fscache invalidation/revlidation
        ceph: call __fscache_uncache_page() if readpages fails
        FS-Cache: make check_consistency callback return int
        FS-Cache: wake write waiter after invalidating writes
        libceph: use %s instead of %pE in dout()s
        libceph: put request only if it's done in handle_reply()
        libceph: change ceph_osdmap_flag() to take osdc
      a3021a59
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · eb10a7b7
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "Two fixes for problems introduced recently (ACPICA and the ACPI
        backlight driver) and one fix for an older issue that prevents at
        least one system from booting.
      
        Specifics:
      
         - Fix an incorrect check introduced by recent ACPICA changes which
           causes problems with booting KVM guests to happen, among other
           things (Lv Zheng).
      
         - Fix a backlight issue introduced by recent changes to the ACPI
           video driver (Aaron Lu).
      
         - Fix the ACPI processor initialization which attempts to register an
           IO region without checking if that really is necessary and
           sometimes prevents drivers loaded subsequently from registering
           their resources which leads to boot issues (Rafael Wysocki)"
      
      * tag 'acpi-4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / processor: Avoid reserving IO regions too early
        ACPICA / Hardware: Fix old register check in acpi_hw_get_access_bit_width()
        ACPI / Thermal / video: fix max_level incorrect value
      eb10a7b7
    • Linus Torvalds's avatar
      Merge tag 'pm-4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 50163203
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Two fixes for problems introduced recently in the cpufreq core and the
        intel_pstate driver.
      
        Specifics:
      
         - Fix a silly mistake related to the clamp_val() usage in a function
           added by a recent commit (Rafael Wysocki).
      
         - Reduce the log level of an annoying message added to intel_pstate
           during the recent merge window (Srinivas Pandruvada)"
      
      * tag 'pm-4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: Fix clamp_val() usage in cpufreq_driver_fast_switch()
        cpufreq: intel_pstate: Downgrade print level for _PPC
      50163203
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · d46d0256
      Linus Torvalds authored
      Merge various fixes from Andrew Morton:
       "10 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm, page_alloc: recalculate the preferred zoneref if the context can ignore memory policies
        mm, page_alloc: reset zonelist iterator after resetting fair zone allocation policy
        mm, oom_reaper: do not use siglock in try_oom_reaper()
        mm, page_alloc: prevent infinite loop in buffered_rmqueue()
        checkpatch: reduce git commit description style false positives
        mm/z3fold.c: avoid modifying HEADLESS page and minor cleanup
        memcg: add RCU locking around css_for_each_descendant_pre() in memcg_offline_kmem()
        mm: check the return value of lookup_page_ext for all call sites
        kdump: fix dmesg gdbmacro to work with record based printk
        mm: fix overflow in vm_map_ram()
      d46d0256
  9. 03 Jun, 2016 10 commits