1. 25 Jun, 2016 3 commits
    • 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 14 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
    • 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
    • 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 3 commits
  4. 22 Jun, 2016 10 commits
  5. 21 Jun, 2016 10 commits