1. 25 Jun, 2016 8 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 3fb5e59c
      Linus Torvalds authored
      Pull HID fix from Jiri Kosina:
       "hiddev ioctl() validation fix from Scott Bauer"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands
      3fb5e59c
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.7-rc5' of... · 260eaba4
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fix from Guenter Roeck:
       "Improve fan type detection for dell-smm to prevent kernel hang"
      
      * tag 'hwmon-for-linus-v4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (dell-smm) Cache fan_type() calls and change fan detection
      260eaba4
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ed13fbbf
      Linus Torvalds authored
      Pull ACPI fix from Rafael Wysocki:
       "Stable-candidate fix for a deadlock in ACPICA introduced during the
        4.5 development cycle by a commit attempting to improve the handling
        of AML code that doesn't belong to any namespace objects in a given
        definition block (Lv Zheng)"
      
      * tag 'acpi-4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading
      ed13fbbf
    • Linus Torvalds's avatar
      Merge tag 'pm-4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3522b35c
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "Fix for a latent cpufreq driver bug uncovered by a recent ACPICA
        change and several fixes for the devfreq framework, including one fix
        for an issue introduced recently.
      
        Specifics:
      
         - Fix a latent initialization issue in the pcc-cpufreq driver
           (incorrect initial value of a structure field) that has been
           uncovered by a recent ACPICA commit (Mike Galbraith).
      
         - Add a missing notification in an update_devfreq() error code path
           forgotten by a recent devfreq commit (Chanwoo Choi).
      
         - Fix devfreq device frequency initialization (Lukasz Luba).
      
         - Fix an incorrect IS_ERR() check in the devfreq framework discovered
           by the Smatch checker (Dan Carpenter).
      
         - Drop two excessive put_device() calls from the devfreq framework
           (MyungJoo Ham, Cai Zhiyong).
      
         - Fix a possible memory leak in the devfreq framework and drop an
           unnecessary kfree() invocation from it (MyungJoo Ham)"
      
      * tag 'pm-4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / devfreq: Send the DEVFREQ_POSTCHANGE notification when target() is failed
        cpufreq: pcc-cpufreq: Fix doorbell.access_width
        PM / devfreq: fix initialization of current frequency in last status
        PM / devfreq: exynos-nocp: Remove incorrect IS_ERR() check
        PM / devfreq: remove double put_device
        PM / devfreq: fix double call put_device
        PM / devfreq: fix duplicated kfree on devfreq pointer
        PM / devfreq: devm_kzalloc to have dev pointer more precisely
      3522b35c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.7b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 032fd3e5
      Linus Torvalds authored
      Pull xen bug fixes from David Vrabel:
      
       - fix x86 PV dom0 crash during early boot on some hardware
      
       - fix two pciback bugs affects certain devices
      
       - fix potential overflow when clearing page tables in x86 PV
      
      * tag 'for-linus-4.7b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen-pciback: return proper values during BAR sizing
        x86/xen: avoid m2p lookup when setting early page table entries
        xen/pciback: Fix conf_space read/write overlap check.
        x86/xen: fix upper bound of pmd loop in xen_cleanhighmap()
        xen/balloon: Fix declared-but-not-defined warning
      032fd3e5
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · d05be0d7
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Here are a few more arm64 fixes, but things do finally appear to be
        slowing down.  The main fix is avoiding hibernation in a previously
        unanticipated situation where we have CPUs parked in the kernel, but
        it's all good stuff.
      
         - Fix icache/dcache sync for anonymous pages under migration
         - Correct the ASID limit check
         - Fix parallel builds of Image and Image.gz
         - Refuse to hibernate when we have CPUs that we can't offline"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: hibernate: Don't hibernate on systems with stuck CPUs
        arm64: smp: Add function to determine if cpus are stuck in the kernel
        arm64: mm: remove page_mapping check in __sync_icache_dcache
        arm64: fix boot image dependencies to not generate invalid images
        arm64: update ASID limit
      d05be0d7
    • Linus Torvalds's avatar
      Merge tag 'nfsd-4.7-2' of git://linux-nfs.org/~bfields/linux · 9c46a6df
      Linus Torvalds authored
      Pull nfsd bugfixes from Bruce Fields:
       "Fix missing server-side permission checks on setting NFS ACLs"
      
      * tag 'nfsd-4.7-2' of git://linux-nfs.org/~bfields/linux:
        nfsd: check permissions when setting ACLs
        posix_acl: Add set_posix_acl
      9c46a6df
    • Linus Torvalds's avatar
      fix up initial thread stack pointer vs thread_info confusion · 7f1a00b6
      Linus Torvalds authored
      The INIT_TASK() initializer was similarly confused about the stack vs
      thread_info allocation that the allocators had, and that were fixed in
      commit b235beea ("Clarify naming of thread info/stack allocators").
      
      The task ->stack pointer only incidentally ends up having the same value
      as the thread_info, and in fact that will change.
      
      So fix the initial task struct initializer to point to 'init_stack'
      instead of 'init_thread_info', and make sure the ia64 definition for
      that exists.
      
      This actually makes the ia64 tsk->stack pointer be sensible for the
      initial task, but not for any other task.  As mentioned in commit
      b235beea, that whole pointer isn't actually used on ia64, since
      task_stack_page() there just points to the (single) allocation.
      
      All the other architectures seem to have copied the 'init_stack'
      definition, even if it tended to be generally unusued.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7f1a00b6
  2. 24 Jun, 2016 18 commits
    • Linus Torvalds's avatar
      x86: fix up a few misc stack pointer vs thread_info confusions · aca9c293
      Linus Torvalds authored
      As the actual pointer value is the same for the thread stack allocation
      and the thread_info, code that confused the two worked fine, but will
      break when the thread info is moved away from the stack allocation.  It
      also looks very confusing.
      
      For example, the kprobe code wanted to know the current top of stack.
      To do that, it used this:
      
      	(unsigned long)current_thread_info() + THREAD_SIZE
      
      which did indeed give the correct value.  But it's not only a fairly
      nonsensical expression, it's also rather complex, especially since we
      actually have this:
      
      	static inline unsigned long current_top_of_stack(void)
      
      which not only gives us the value we are interested in, but happens to
      be how "current_thread_info()" is currently defined as:
      
      	(struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
      
      so using current_thread_info() to figure out the top of the stack really
      is a very round-about thing to do.
      
      The other cases are just simpler confusion about task_thread_info() vs
      task_stack_page(), which currently return the same pointer - but if you
      want the stack page, you really should be using the latter one.
      
      And there was one entirely unused assignment of the current stack to a
      thread_info pointer.
      
      All cleaned up to make more sense today, and make it easier to move the
      thread_info away from the stack in the future.
      
      No semantic changes.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aca9c293
    • Linus Torvalds's avatar
      Clarify naming of thread info/stack allocators · b235beea
      Linus Torvalds authored
      We've had the thread info allocated together with the thread stack for
      most architectures for a long time (since the thread_info was split off
      from the task struct), but that is about to change.
      
      But the patches that move the thread info to be off-stack (and a part of
      the task struct instead) made it clear how confused the allocator and
      freeing functions are.
      
      Because the common case was that we share an allocation with the thread
      stack and the thread_info, the two pointers were identical.  That
      identity then meant that we would have things like
      
      	ti = alloc_thread_info_node(tsk, node);
      	...
      	tsk->stack = ti;
      
      which certainly _worked_ (since stack and thread_info have the same
      value), but is rather confusing: why are we assigning a thread_info to
      the stack? And if we move the thread_info away, the "confusing" code
      just gets to be entirely bogus.
      
      So remove all this confusion, and make it clear that we are doing the
      stack allocation by renaming and clarifying the function names to be
      about the stack.  The fact that the thread_info then shares the
      allocation is an implementation detail, and not really about the
      allocation itself.
      
      This is a pure renaming and type fix: we pass in the same pointer, it's
      just that we clarify what the pointer means.
      
      The ia64 code that actually only has one single allocation (for all of
      task_struct, thread_info and kernel thread stack) now looks a bit odd,
      but since "tsk->stack" is actually not even used there, that oddity
      doesn't matter.  It would be a separate thing to clean that up, I
      intentionally left the ia64 changes as a pure brute-force renaming and
      type change.
      Acked-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b235beea
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-devfreq-fixes' and 'pm-cpufreq-fixes' · e753f305
      Rafael J. Wysocki authored
      * pm-devfreq-fixes:
        PM / devfreq: Send the DEVFREQ_POSTCHANGE notification when target() is failed
        PM / devfreq: fix initialization of current frequency in last status
        PM / devfreq: exynos-nocp: Remove incorrect IS_ERR() check
        PM / devfreq: remove double put_device
        PM / devfreq: fix double call put_device
        PM / devfreq: fix duplicated kfree on devfreq pointer
        PM / devfreq: devm_kzalloc to have dev pointer more precisely
      
      * pm-cpufreq-fixes:
        cpufreq: pcc-cpufreq: Fix doorbell.access_width
      e753f305
    • Rafael J. Wysocki's avatar
      Merge branch 'acpica-fixes' · 2605b981
      Rafael J. Wysocki authored
      * acpica-fixes:
        ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading
      2605b981
    • Ben Hutchings's avatar
      nfsd: check permissions when setting ACLs · 99965378
      Ben Hutchings authored
      Use set_posix_acl, which includes proper permission checks, instead of
      calling ->set_acl directly.  Without this anyone may be able to grant
      themselves permissions to a file by setting the ACL.
      
      Lock the inode to make the new checks atomic with respect to set_acl.
      (Also, nfsd was the only caller of set_acl not locking the inode, so I
      suspect this may fix other races.)
      
      This also simplifies the code, and ensures our ACLs are checked by
      posix_acl_valid.
      
      The permission checks and the inode locking were lost with commit
      4ac7249e, which changed nfsd to use the set_acl inode operation directly
      instead of going through xattr handlers.
      Reported-by: default avatarDavid Sinquin <david@sinquin.eu>
      [agreunba@redhat.com: use set_posix_acl]
      Fixes: 4ac7249e
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      99965378
    • Andreas Gruenbacher's avatar
      posix_acl: Add set_posix_acl · 485e71e8
      Andreas Gruenbacher authored
      Factor out part of posix_acl_xattr_set into a common function that takes
      a posix_acl, which nfsd can also call.
      
      The prototype already exists in include/linux/posix_acl.h.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Cc: stable@vger.kernel.org
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      485e71e8
    • Jan Beulich's avatar
      xen-pciback: return proper values during BAR sizing · d2bd05d8
      Jan Beulich authored
      Reads following writes with all address bits set to 1 should return all
      changeable address bits as one, not the BAR size (nor, as was the case
      for the upper half of 64-bit BARs, the high half of the region's end
      address). Presumably this didn't cause any problems so far because
      consumers use the value to calculate the size (usually via val & -val),
      and do nothing else with it.
      
      But also consider the exception here: Unimplemented BARs should always
      return all zeroes.
      
      And finally, the check for whether to return the sizing address on read
      for the ROM BAR should ignore all non-address bits, not just the ROM
      Enable one.
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
      d2bd05d8
    • Scott Bauer's avatar
      HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands · 93a2001b
      Scott Bauer authored
      This patch validates the num_values parameter from userland during the
      HIDIOCGUSAGES and HIDIOCSUSAGES commands. Previously, if the report id was set
      to HID_REPORT_ID_UNKNOWN, we would fail to validate the num_values parameter
      leading to a heap overflow.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarScott Bauer <sbauer@plzdonthack.me>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      93a2001b
    • Linus Torvalds's avatar
      Merge tag 'upstream-4.7-rc5' of git://git.infradead.org/linux-ubifs · 63c04ee7
      Linus Torvalds authored
      Pull UBI/UBIFS fixes from Richard Weinberger:
       "This contains fixes for two critical bugs in UBI and UBIFS:
      
         - fix the possibility of losing data upon a power cut when UBI tries
           to recover from a write error
      
         - fix page migration on UBIFS.  It turned out that the default page
           migration function is not suitable for UBIFS"
      
      * tag 'upstream-4.7-rc5' of git://git.infradead.org/linux-ubifs:
        UBIFS: Implement ->migratepage()
        mm: Export migrate_page_move_mapping and migrate_page_copy
        ubi: Make recover_peb power cut aware
        gpio: make library immune to error pointers
        gpio: make sure gpiod_to_irq() returns negative on NULL desc
        gpio: 104-idi-48: Fix missing spin_lock_init for ack_lock
      63c04ee7
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-for-v4.7-rc5' of git://people.freedesktop.org/~airlied/linux · 0bf0ea43
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This is the drm fixes tree for 4.7-rc5.
      
        It's a bit larger than normal, due to fixes for production AMD Polaris
        GPUs.  We only merged support for these in 4.7-rc1 so it would be good
        if we got all the fixes into final.  The changes don't hit any other
        hardware.
      
        Other than the amdgpu Polaris changes:
      
         - A single fix for atomic modesetting WARN
         - Nouveau fix for when fbdev is disabled
         - i915 fixes for FBC on Haswell and displayport regression
         - Exynos fix for a display panel regression and some other minor changes
         - Atmel fixes for scaling and OF graph interaction
         - Allwiinner build, warning and probing fixes
         - AMD GPU non-polaris fix for num_rbs and some minor fixes
      
        Also I've just moved house, and my new place is Internet challenged
        due to incompetent incumbent ISPs, hopefully sorted out in a couple of
        weeks, so I might not be too responsive over the next while.  It also
        helps Daniel is on holidays for those couple of weeks as well"
      
      * tag 'drm-fixes-for-v4.7-rc5' of git://people.freedesktop.org/~airlied/linux: (38 commits)
        drm/atomic: Make drm_atomic_legacy_backoff reset crtc->acquire_ctx
        drm/nouveau: fix for disabled fbdev emulation
        drm/i915/fbc: Disable on HSW by default for now
        drm/i915: Revert DisplayPort fast link training feature
        drm/amd/powerplay: enable clock stretch feature for polaris
        drm/amdgpu/gfx8: update golden setting for polaris10
        drm/amd/powerplay: enable avfs feature for polaris
        drm/amdgpu/atombios: add avfs struct for Polaris10/11
        drm/amd/powerplay: add avfs related define for polaris
        drm/amd/powrplay: enable stutter_mode for polaris.
        drm/amd/powerplay: disable UVD SMU handshake for MCLK.
        drm/amd/powerplay: initialize variables which were missed.
        drm/amd/powerplay: enable PowerContainment feature for polaris10/11.
        drm/amd/powerplay: need to notify system bios pcie device ready
        drm/amd/powerplay: fix bug that function parameter was incorect.
        drm/amd/powerplay: fix logic error.
        drm: atmel-hlcdc: Fix OF graph parsing
        drm: atmel-hlcdc: actually disable scaling when no scaling is required
        drm/amdgpu: initialize amdgpu_cgs_acpi_eval_object result value
        drm/amdgpu: precedence bug in amdgpu_device_init()
        ...
      0bf0ea43
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.7-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 75befb31
      Linus Torvalds authored
      Pull PCI fix from Bjorn Helgaas:
       "Here's a small fix for v4.7.  This problem was actually introduced in
        v4.6 when we unified Kconfig, making PCIe support available everywhere
        including sparc, where config reads into unaligned buffers cause
        warnings.  This fix is from Dave Miller.
      
        As a reminder, any future PCI fixes for v4.7 will probably come from
        Alex Williamson, since I'll be on vacation for most of the rest of
        this cycle.  I should be back about the time the merge window opens"
      
      * tag 'pci-v4.7-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Fix unaligned accesses in VC code
      75befb31
    • Maarten Lankhorst's avatar
      drm/atomic: Make drm_atomic_legacy_backoff reset crtc->acquire_ctx · 81e257e9
      Maarten Lankhorst authored
      Atomic updates may acquire more state than initially locked through
      drm_modeset_lock_crtc, running with heavy stress can cause a
      WARN_ON(crtc->acquire_ctx) in drm_modeset_lock_crtc:
      
      [  601.491296] ------------[ cut here ]------------
      [  601.491366] WARNING: CPU: 0 PID: 2411 at
      drivers/gpu/drm/drm_modeset_lock.c:191 drm_modeset_lock_crtc+0xeb/0xf0 [drm]
      [  601.491369] Modules linked in: drm i915 drm_kms_helper
      [  601.491414] CPU: 0 PID: 2411 Comm: kms_cursor_lega Tainted: G     U 4.7.0-rc4-patser+ #4798
      [  601.491417] Hardware name: Intel Corporation Skylake Client
      [  601.491420]  0000000000000000 ffff88044d153c98 ffffffff812ead28 0000000000000000
      [  601.491425]  0000000000000000 ffff88044d153cd8 ffffffff810868e6 000000bf58058030
      [  601.491431]  ffff880088b415e8 ffff880458058030 ffff88008a271548 ffff88008a271568
      [  601.491436] Call Trace:
      [  601.491443]  [<ffffffff812ead28>] dump_stack+0x4d/0x65
      [  601.491447]  [<ffffffff810868e6>] __warn+0xc6/0xe0
      [  601.491452]  [<ffffffff81086968>] warn_slowpath_null+0x18/0x20
      [  601.491472]  [<ffffffffc00d4ffb>] drm_modeset_lock_crtc+0xeb/0xf0 [drm]
      [  601.491491]  [<ffffffffc00c5526>] drm_mode_cursor_common+0x66/0x180 [drm]
      [  601.491509]  [<ffffffffc00c91cc>] drm_mode_cursor_ioctl+0x3c/0x40 [drm]
      [  601.491524]  [<ffffffffc00bc94d>] drm_ioctl+0x14d/0x530 [drm]
      [  601.491540]  [<ffffffffc00c9190>] ? drm_mode_setcrtc+0x520/0x520 [drm]
      [  601.491545]  [<ffffffff81176aeb>] ? handle_mm_fault+0x106b/0x1430
      [  601.491550]  [<ffffffff81108441>] ? stop_one_cpu+0x61/0x70
      [  601.491556]  [<ffffffff811bb71d>] do_vfs_ioctl+0x8d/0x570
      [  601.491560]  [<ffffffff81290d7e>] ? security_file_ioctl+0x3e/0x60
      [  601.491565]  [<ffffffff811bbc74>] SyS_ioctl+0x74/0x80
      [  601.491571]  [<ffffffff810e321c>] ? posix_get_monotonic_raw+0xc/0x10
      [  601.491576]  [<ffffffff8175b11b>] entry_SYSCALL_64_fastpath+0x13/0x8f
      [  601.491581] ---[ end trace 56f3d3d85f000d00 ]---
      
      For good measure, test mode_config.acquire_ctx too, although this should
      never happen.
      
      Testcase: kms_cursor_legacy
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      81e257e9
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-4.7' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · f939a5f4
      Dave Airlie authored
      A bit bigger than I would normally like, but most of the large changes are
      for polaris support and since polaris went upstream in 4.7, I'd like
      to get the fixes in so it's in good shape when the hw becomes available.
      The major changes only touch the polaris code so there is little chance
      for regressions on other asics.  The rest are just the usual collection
      of bug fixes.
      
      * 'drm-fixes-4.7' of git://people.freedesktop.org/~agd5f/linux:
        drm/amd/powerplay: enable clock stretch feature for polaris
        drm/amdgpu/gfx8: update golden setting for polaris10
        drm/amd/powerplay: enable avfs feature for polaris
        drm/amdgpu/atombios: add avfs struct for Polaris10/11
        drm/amd/powerplay: add avfs related define for polaris
        drm/amd/powrplay: enable stutter_mode for polaris.
        drm/amd/powerplay: disable UVD SMU handshake for MCLK.
        drm/amd/powerplay: initialize variables which were missed.
        drm/amd/powerplay: enable PowerContainment feature for polaris10/11.
        drm/amd/powerplay: need to notify system bios pcie device ready
        drm/amd/powerplay: fix bug that function parameter was incorect.
        drm/amd/powerplay: fix logic error.
        drm/amdgpu: initialize amdgpu_cgs_acpi_eval_object result value
        drm/amdgpu: precedence bug in amdgpu_device_init()
        drm/amdgpu: fix num_rbs exposed to userspace (v2)
        drm/amdgpu: missing bounds check in amdgpu_set_pp_force_state()
      f939a5f4
    • Dave Airlie's avatar
      Merge branch 'exynos-drm-fixes' of... · c65c3de6
      Dave Airlie authored
      Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes
      
      Since HW trigger mode was suppoted we have faced with a issue
      that Display panel didn't work correctly when trigger mode was changed
      in booting time.
      For this, we keep trigger mode with SW trigger mode in default mode
      like we did before.
      
      However, we will need to consider PSR(Panel Self Reflash) mode to resolve
      this issue fundamentally later.
      
      * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
        drm/exynos: use logical AND in exynos_drm_plane_check_size()
        drm/exynos: remove superfluous inclusions of fbdev header
        drm/exynos: g2d: drop the _REG postfix from the stride defines
        drm/exynos: don't use HW trigger for Exynos5420/5422/5800
        drm/exynos: fimd: don't set .has_hw_trigger in s3c6400 driver data
        drm/exynos: dp: Fix NULL pointer dereference due uninitialized connector
      c65c3de6
    • Dave Airlie's avatar
      Merge tag 'drm-atmel-hlcdc-fixes/for-4.7-rc5' of github.com:bbrezillon/linux-at91 into drm-fixes · 59b0b70f
      Dave Airlie authored
      Two bug fixes for the atmel-hlcdc driver.
      
      * tag 'drm-atmel-hlcdc-fixes/for-4.7-rc5' of github.com:bbrezillon/linux-at91:
        drm: atmel-hlcdc: Fix OF graph parsing
        drm: atmel-hlcdc: actually disable scaling when no scaling is required
      59b0b70f
    • Dave Airlie's avatar
      Merge tag 'sunxi-drm-fixes-for-4.7' of... · f762bfda
      Dave Airlie authored
      Merge tag 'sunxi-drm-fixes-for-4.7' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into drm-fixes
      
      Allwinner sun4i DRM driver fixes
      
      A bunch of fixes that address:
        - Compilation errors in various corner cases
        - Move to helpers
        - Fix the pixel clock computation
        - Fix our panel probe
      
      * tag 'sunxi-drm-fixes-for-4.7' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
        drm: sun4i: do cleanup if RGB output init fails
        drm/sun4i: Convert to connector register helpers
        drm/sun4i: remove simplefb at probe
        drm/sun4i: rgb: panel is an error pointer
        drm/sun4i: defer only if we didn't find our panel
        drm/sun4i: rgb: Validate the clock rate
        drm/sun4i: request exact rates to our parents
        drm: sun4i: fix probe error handling
        drm: sun4i: print DMA address correctly
        drm/sun4i: add COMMON_CLK dependency
      f762bfda
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2016-06-22' of git://anongit.freedesktop.org/drm-intel into drm-fixes · c38e8016
      Dave Airlie authored
       Hi Dave, just a couple of display fixes, both stable stuff. Maybe we'll
      be able to enable fbc by default one day.
      
      * tag 'drm-intel-fixes-2016-06-22' of git://anongit.freedesktop.org/drm-intel:
        drm/i915/fbc: Disable on HSW by default for now
        drm/i915: Revert DisplayPort fast link training feature
      c38e8016
    • Dave Airlie's avatar
      Merge branch 'linux-4.7' of git://github.com/skeggsb/linux into drm-fixes · 718cc664
      Dave Airlie authored
      * 'linux-4.7' of git://github.com/skeggsb/linux:
        drm/nouveau: fix for disabled fbdev emulation
      718cc664
  3. 23 Jun, 2016 11 commits
  4. 22 Jun, 2016 3 commits
    • Kirill A. Shutemov's avatar
      UBIFS: Implement ->migratepage() · 4ac1c17b
      Kirill A. Shutemov authored
      During page migrations UBIFS might get confused
      and the following assert triggers:
      [  213.480000] UBIFS assert failed in ubifs_set_page_dirty at 1451 (pid 436)
      [  213.490000] CPU: 0 PID: 436 Comm: drm-stress-test Not tainted 4.4.4-00176-geaa802524636-dirty #1008
      [  213.490000] Hardware name: Allwinner sun4i/sun5i Families
      [  213.490000] [<c0015e70>] (unwind_backtrace) from [<c0012cdc>] (show_stack+0x10/0x14)
      [  213.490000] [<c0012cdc>] (show_stack) from [<c02ad834>] (dump_stack+0x8c/0xa0)
      [  213.490000] [<c02ad834>] (dump_stack) from [<c0236ee8>] (ubifs_set_page_dirty+0x44/0x50)
      [  213.490000] [<c0236ee8>] (ubifs_set_page_dirty) from [<c00fa0bc>] (try_to_unmap_one+0x10c/0x3a8)
      [  213.490000] [<c00fa0bc>] (try_to_unmap_one) from [<c00fadb4>] (rmap_walk+0xb4/0x290)
      [  213.490000] [<c00fadb4>] (rmap_walk) from [<c00fb1bc>] (try_to_unmap+0x64/0x80)
      [  213.490000] [<c00fb1bc>] (try_to_unmap) from [<c010dc28>] (migrate_pages+0x328/0x7a0)
      [  213.490000] [<c010dc28>] (migrate_pages) from [<c00d0cb0>] (alloc_contig_range+0x168/0x2f4)
      [  213.490000] [<c00d0cb0>] (alloc_contig_range) from [<c010ec00>] (cma_alloc+0x170/0x2c0)
      [  213.490000] [<c010ec00>] (cma_alloc) from [<c001a958>] (__alloc_from_contiguous+0x38/0xd8)
      [  213.490000] [<c001a958>] (__alloc_from_contiguous) from [<c001ad44>] (__dma_alloc+0x23c/0x274)
      [  213.490000] [<c001ad44>] (__dma_alloc) from [<c001ae08>] (arm_dma_alloc+0x54/0x5c)
      [  213.490000] [<c001ae08>] (arm_dma_alloc) from [<c035cecc>] (drm_gem_cma_create+0xb8/0xf0)
      [  213.490000] [<c035cecc>] (drm_gem_cma_create) from [<c035cf20>] (drm_gem_cma_create_with_handle+0x1c/0xe8)
      [  213.490000] [<c035cf20>] (drm_gem_cma_create_with_handle) from [<c035d088>] (drm_gem_cma_dumb_create+0x3c/0x48)
      [  213.490000] [<c035d088>] (drm_gem_cma_dumb_create) from [<c0341ed8>] (drm_ioctl+0x12c/0x444)
      [  213.490000] [<c0341ed8>] (drm_ioctl) from [<c0121adc>] (do_vfs_ioctl+0x3f4/0x614)
      [  213.490000] [<c0121adc>] (do_vfs_ioctl) from [<c0121d30>] (SyS_ioctl+0x34/0x5c)
      [  213.490000] [<c0121d30>] (SyS_ioctl) from [<c000f2c0>] (ret_fast_syscall+0x0/0x34)
      
      UBIFS is using PagePrivate() which can have different meanings across
      filesystems. Therefore the generic page migration code cannot handle this
      case correctly.
      We have to implement our own migration function which basically does a
      plain copy but also duplicates the page private flag.
      UBIFS is not a block device filesystem and cannot use buffer_migrate_page().
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      [rw: Massaged changelog, build fixes, etc...]
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      Acked-by: default avatarChristoph Hellwig <hch@lst.de>
      4ac1c17b
    • Richard Weinberger's avatar
      mm: Export migrate_page_move_mapping and migrate_page_copy · 1118dce7
      Richard Weinberger authored
      Export these symbols such that UBIFS can implement
      ->migratepage.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      Acked-by: default avatarChristoph Hellwig <hch@lst.de>
      1118dce7
    • Richard Weinberger's avatar
      ubi: Make recover_peb power cut aware · 972228d8
      Richard Weinberger authored
      recover_peb() was never power cut aware,
      if a power cut happened right after writing the VID header
      upon next attach UBI would blindly use the new partial written
      PEB and all data from the old PEB is lost.
      
      In order to make recover_peb() power cut aware, write the new
      VID with a proper crc and copy_flag set such that the UBI attach
      process will detect whether the new PEB is completely written
      or not.
      We cannot directly use ubi_eba_atomic_leb_change() since we'd
      have to unlock the LEB which is facing a write error.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarJörg Pfähler <pfaehler@isse.de>
      Reviewed-by: default avatarJörg Pfähler <pfaehler@isse.de>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      972228d8