1. 09 Jan, 2017 2 commits
    • Dave Airlie's avatar
      Merge tag 'drm-intel-next-2017-01-09' of git://anongit.freedesktop.org/git/drm-intel into drm-next · 5c37daf5
      Dave Airlie authored
      More 4.11 stuff, holidays edition (i.e. not much):
      
      - docs and cleanups for shared dpll code (Ander)
      - some kerneldoc work (Chris)
      - fbc by default on gen9+ too, yeah! (Paulo)
      - fixes, polish and other small things all over gem code (Chris)
      - and a few small things on top
      
      Plus a backmerge, because Dave was enjoying time off too.
      
      * tag 'drm-intel-next-2017-01-09' of git://anongit.freedesktop.org/git/drm-intel: (275 commits)
        drm/i915: Update DRIVER_DATE to 20170109
        drm/i915: Drain freed objects for mmap space exhaustion
        drm/i915: Purge loose pages if we run out of DMA remap space
        drm/i915: Fix phys pwrite for struct_mutex-less operation
        drm/i915: Simplify testing for am-I-the-kernel-context?
        drm/i915: Use range_overflows()
        drm/i915: Use fixed-sized types for stolen
        drm/i915: Use phys_addr_t for the address of stolen memory
        drm/i915: Consolidate checks for memcpy-from-wc support
        drm/i915: Only skip requests once a context is banned
        drm/i915: Move a few more utility macros to i915_utils.h
        drm/i915: Clear ret before unbinding in i915_gem_evict_something()
        drm/i915/guc: Exclude the upper end of the Global GTT for the GuC
        drm/i915: Move a few utility macros into a separate header
        drm/i915/execlists: Reorder execlists register enabling
        drm/i915: Assert that we do create the deferred context
        drm/i915: Assert all timeline requests are gone before fini
        drm/i915: Revoke fenced GTT mmapings across GPU reset
        drm/i915: enable FBC on gen9+ too
        drm/i915: actually drive the BDW reserved IDs
        ...
      5c37daf5
    • Daniel Vetter's avatar
      5d799acd
  2. 08 Jan, 2017 7 commits
    • Dave Airlie's avatar
      Merge tag 'drm-misc-next-2016-12-30' of git://anongit.freedesktop.org/git/drm-misc into drm-next · 3806a271
      Dave Airlie authored
      First -misc pull for 4.11:
      - drm_mm rework + lots of selftests (Chris Wilson)
      - new connector_list locking+iterators
      - plenty of kerneldoc updates
      - format handling rework from Ville
      - atomic helper changes from Maarten for better plane corner-case handling
        in drivers, plus the i915 legacy cursor patch that needs this
      - bridge cleanup from Laurent
      - plus plenty of small stuff all over
      - also contains a merge of the 4.10 docs tree so that we could apply the
        dma-buf kerneldoc patches
      
      It's a lot more than usual, but due to the merge window blackout it also
      covers about 4 weeks, so all in line again on a per-week basis. The more
      annoying part with no pull request for 4 weeks is managing cross-tree
      work. The -intel pull request I'll follow up with does conflict quite a
      bit with -misc here. Longer-term (if drm-misc keeps growing) a
      drm-next-queued to accept pull request for the next merge window during
      this time might be useful.
      
      I'd also like to backmerge -rc2+this into drm-intel next week, we have
      quite a pile of patches waiting for the stuff in here.
      
      * tag 'drm-misc-next-2016-12-30' of git://anongit.freedesktop.org/git/drm-misc: (126 commits)
        drm: Add kerneldoc markup for new @scan parameters in drm_mm
        drm/mm: Document locking rules
        drm: Use drm_mm_insert_node_in_range_generic() for everyone
        drm: Apply range restriction after color adjustment when allocation
        drm: Wrap drm_mm_node.hole_follows
        drm: Apply tight eviction scanning to color_adjust
        drm: Simplify drm_mm scan-list manipulation
        drm: Optimise power-of-two alignments in drm_mm_scan_add_block()
        drm: Compute tight evictions for drm_mm_scan
        drm: Fix application of color vs range restriction when scanning drm_mm
        drm: Unconditionally do the range check in drm_mm_scan_add_block()
        drm: Rename prev_node to hole in drm_mm_scan_add_block()
        drm: Fix O= out-of-tree builds for selftests
        drm: Extract struct drm_mm_scan from struct drm_mm
        drm: Add asserts to catch overflow in drm_mm_init() and drm_mm_init_scan()
        drm: Simplify drm_mm_clean()
        drm: Detect overflow in drm_mm_reserve_node()
        drm: Fix kerneldoc for drm_mm_scan_remove_block()
        drm: Promote drm_mm alignment to u64
        drm: kselftest for drm_mm and restricted color eviction
        ...
      3806a271
    • Linus Torvalds's avatar
      Linux 4.10-rc3 · a121103c
      Linus Torvalds authored
      a121103c
    • Linus Torvalds's avatar
      Merge tag 'usb-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 83280e90
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a bunch of USB fixes for 4.10-rc3. Yeah, it's a lot, an
        artifact of the holiday break I think.
      
        Lots of gadget and the usual XHCI fixups for reported issues (one day
        that driver will calm down...) Also included are a bunch of usb-serial
        driver fixes, and for good measure, a number of much-reported MUSB
        driver issues have finally been resolved.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (72 commits)
        USB: fix problems with duplicate endpoint addresses
        usb: ohci-at91: use descriptor-based gpio APIs correctly
        usb: storage: unusual_uas: Add JMicron JMS56x to unusual device
        usb: hub: Move hub_port_disable() to fix warning if PM is disabled
        usb: musb: blackfin: add bfin_fifo_offset in bfin_ops
        usb: musb: fix compilation warning on unused function
        usb: musb: Fix trying to free already-free IRQ 4
        usb: musb: dsps: implement clear_ep_rxintr() callback
        usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
        USB: serial: ti_usb_3410_5052: fix NULL-deref at open
        USB: serial: spcp8x5: fix NULL-deref at open
        USB: serial: quatech2: fix sleep-while-atomic in close
        USB: serial: pl2303: fix NULL-deref at open
        USB: serial: oti6858: fix NULL-deref at open
        USB: serial: omninet: fix NULL-derefs at open and disconnect
        USB: serial: mos7840: fix misleading interrupt-URB comment
        USB: serial: mos7840: remove unused write URB
        USB: serial: mos7840: fix NULL-deref at open
        USB: serial: mos7720: remove obsolete port initialisation
        USB: serial: mos7720: fix parallel probe
        ...
      83280e90
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · cc250e26
      Linus Torvalds authored
      Pull char/misc fixes from Greg KH:
       "Here are a few small char/misc driver fixes for 4.10-rc3.
      
        Two MEI driver fixes, and three NVMEM patches for reported issues, and
        a new Hyper-V driver MAINTAINER update. Nothing major at all, all have
        been in linux-next with no reported issues"
      
      * tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        hyper-v: Add myself as additional MAINTAINER
        nvmem: fix nvmem_cell_read() return type doc
        nvmem: imx-ocotp: Fix wrong register size
        nvmem: qfprom: Allow single byte accesses for read/write
        mei: move write cb to completion on credentials failures
        mei: bus: fix mei_cldev_enable KDoc
      cc250e26
    • Linus Torvalds's avatar
      Merge tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 6ea17ed1
      Linus Torvalds authored
      Pull staging/IIO fixes from Greg KH:
       "Here are some staging and IIO driver fixes for 4.10-rc3.
      
        Most of these are minor IIO fixes of reported issues, along with one
        network driver fix to resolve an issue. And a MAINTAINERS update with
        a new mailing list. All of these, except the MAINTAINERS file update,
        have been in linux-next with no reported issues (the MAINTAINERS patch
        happened on Friday...)"
      
      * tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        MAINTAINERS: add greybus subsystem mailing list
        staging: octeon: Call SET_NETDEV_DEV()
        iio: accel: st_accel: fix LIS3LV02 reading and scaling
        iio: common: st_sensors: fix channel data parsing
        iio: max44000: correct value in illuminance_integration_time_available
        iio: adc: TI_AM335X_ADC should depend on HAS_DMA
        iio: bmi160: Fix time needed to sleep after command execution
        iio: 104-quad-8: Fix active level mismatch for the preset enable option
        iio: 104-quad-8: Fix off-by-one errors when addressing IOR
        iio: 104-quad-8: Fix index control configuration
      6ea17ed1
    • Johannes Weiner's avatar
      mm: workingset: fix use-after-free in shadow node shrinker · ea07b862
      Johannes Weiner authored
      Several people report seeing warnings about inconsistent radix tree
      nodes followed by crashes in the workingset code, which all looked like
      use-after-free access from the shadow node shrinker.
      
      Dave Jones managed to reproduce the issue with a debug patch applied,
      which confirmed that the radix tree shrinking indeed frees shadow nodes
      while they are still linked to the shadow LRU:
      
        WARNING: CPU: 2 PID: 53 at lib/radix-tree.c:643 delete_node+0x1e4/0x200
        CPU: 2 PID: 53 Comm: kswapd0 Not tainted 4.10.0-rc2-think+ #3
        Call Trace:
           delete_node+0x1e4/0x200
           __radix_tree_delete_node+0xd/0x10
           shadow_lru_isolate+0xe6/0x220
           __list_lru_walk_one.isra.4+0x9b/0x190
           list_lru_walk_one+0x23/0x30
           scan_shadow_nodes+0x2e/0x40
           shrink_slab.part.44+0x23d/0x5d0
           shrink_node+0x22c/0x330
           kswapd+0x392/0x8f0
      
      This is the WARN_ON_ONCE(!list_empty(&node->private_list)) placed in the
      inlined radix_tree_shrink().
      
      The problem is with 14b46879 ("mm: workingset: move shadow entry
      tracking to radix tree exceptional tracking"), which passes an update
      callback into the radix tree to link and unlink shadow leaf nodes when
      tree entries change, but forgot to pass the callback when reclaiming a
      shadow node.
      
      While the reclaimed shadow node itself is unlinked by the shrinker, its
      deletion from the tree can cause the left-most leaf node in the tree to
      be shrunk.  If that happens to be a shadow node as well, we don't unlink
      it from the LRU as we should.
      
      Consider this tree, where the s are shadow entries:
      
             root->rnode
                  |
             [0       n]
              |       |
           [s    ] [sssss]
      
      Now the shadow node shrinker reclaims the rightmost leaf node through
      the shadow node LRU:
      
             root->rnode
                  |
             [0        ]
              |
          [s     ]
      
      Because the parent of the deleted node is the first level below the
      root and has only one child in the left-most slot, the intermediate
      level is shrunk and the node containing the single shadow is put in
      its place:
      
             root->rnode
                  |
             [s        ]
      
      The shrinker again sees a single left-most slot in a first level node
      and thus decides to store the shadow in root->rnode directly and free
      the node - which is a leaf node on the shadow node LRU.
      
        root->rnode
             |
             s
      
      Without the update callback, the freed node remains on the shadow LRU,
      where it causes later shrinker runs to crash.
      
      Pass the node updater callback into __radix_tree_delete_node() in case
      the deletion causes the left-most branch in the tree to collapse too.
      
      Also add warnings when linked nodes are freed right away, rather than
      wait for the use-after-free when the list is scanned much later.
      
      Fixes: 14b46879 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking")
      Reported-by: default avatarDave Chinner <david@fromorbit.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Reported-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
      Reported-and-tested-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Matthew Wilcox <mawilcox@linuxonhyperv.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea07b862
    • Hugh Dickins's avatar
      mm: stop leaking PageTables · b0b9b3df
      Hugh Dickins authored
      4.10-rc loadtest (even on x86, and even without THPCache) fails with
      "fork: Cannot allocate memory" or some such; and /proc/meminfo shows
      PageTables growing.
      
      Commit 953c66c2 ("mm: THP page cache support for ppc64") that got
      merged in rc1 removed the freeing of an unused preallocated pagetable
      after do_fault_around() has called map_pages().
      
      This is usually a good optimization, so that the followup doesn't have
      to reallocate one; but it's not sufficient to shift the freeing into
      alloc_set_pte(), since there are failure cases (most commonly
      VM_FAULT_RETRY) which never reach finish_fault().
      
      Check and free it at the outer level in do_fault(), then we don't need
      to worry in alloc_set_pte(), and can restore that to how it was (I
      cannot find any reason to pte_free() under lock as it was doing).
      
      And fix a separate pagetable leak, or crash, introduced by the same
      change, that could only show up on some ppc64: why does do_set_pmd()'s
      failure case attempt to withdraw a pagetable when it never deposited
      one, at the same time overwriting (so leaking) the vmf->prealloc_pte?
      Residue of an earlier implementation, perhaps? Delete it.
      
      Fixes: 953c66c2 ("mm: THP page cache support for ppc64")
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Michael Neuling <mikey@neuling.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b0b9b3df
  3. 07 Jan, 2017 2 commits
  4. 06 Jan, 2017 24 commits
  5. 05 Jan, 2017 5 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-intel-fixes-2017-01-05' of git://anongit.freedesktop.org/git/drm-intel · ed40875d
      Linus Torvalds authored
      Pull i915 drm fixes from Jani Nikula:
       "Here's a bunch of drm/i915 fixes for v4.10-rc3. It includes GVT-g
        fixes.
      
        My new year's resolution is to start using signed tags for pulls. If
        that feels like a déjà vu, it's ((new year's) resolution), not (new
        (year's resolution))"
      
      [ Taking this directly from Jani because Dave Airlie is only partially
        connected right now.  - Linus ]
      
      * tag 'drm-intel-fixes-2017-01-05' of git://anongit.freedesktop.org/git/drm-intel:
        drm/i915: Prevent timeline updates whilst performing reset
        drm/i915: Silence allocation failure during sg_trim()
        drm/i915: Don't clflush before release phys object
        drm/i915: Fix oops in overlay due to frontbuffer tracking
        drm/i915: Fix oopses in the overlay code due to i915_gem_active stuff
        drm/i915: Initialize overlay->last_flip properly
        drm/i915: Move the min_pixclk[] handling to the end of readout
        drm/i915: Force VDD off on the new power seqeuencer before starting to use it
        drm/i915/gvt: fix typo in cfg_space range check
        drm/i915/gvt: fix an issue in emulating cfg space PCI_COMMAND
        drm/i915/gvt/kvmgt: trival: code cleanup
        drm/i915/gvt/kvmgt: prevent double-release of vgpu
        drm/i915/gvt/kvmgt: check returned slot for gfn
        drm/i915/gvt/kvmgt: dereference the pointer within lock
        drm/i915/gvt: reset the GGTT entry when vGPU created
        drm/i915/gvt: fix an error in opregion handling
      ed40875d
    • Chris Wilson's avatar
      drm/i915: Only skip requests once a context is banned · 7ec73b7e
      Chris Wilson authored
      If we skip before banning, we have an inconsistent interface between
      execbuf still queueing valid request but those requests already queued
      being cancelled. If we only cancel the pending requests once we stop
      accepting new requests, the user interface is more consistent.
      Reported-by: default avatarTvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Fixes: 821ed7df ("drm/i915: Update reset path to fix incomplete requests")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Cc: <stable@vger.kernel.org> # v4.9+
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170105170059.344-1-chris@chris-wilson.co.uk
      7ec73b7e
    • Chris Wilson's avatar
      drm/i915: Move a few more utility macros to i915_utils.h · b7163936
      Chris Wilson authored
      Now that we have split out a header file for simple macros (that maybe
      we can promote into a core header), move a few macros across from
      i915_drv.h
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170105164148.26875-1-chris@chris-wilson.co.ukReviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      b7163936
    • Alan Stern's avatar
      USB: fix problems with duplicate endpoint addresses · 0a8fd134
      Alan Stern authored
      When checking a new device's descriptors, the USB core does not check
      for duplicate endpoint addresses.  This can cause a problem when the
      sysfs files for those endpoints are created; trying to create multiple
      files with the same name will provoke a WARNING:
      
      WARNING: CPU: 2 PID: 865 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x8a/0xa0
      sysfs: cannot create duplicate filename
      '/devices/platform/dummy_hcd.0/usb2/2-1/2-1:64.0/ep_05'
      Kernel panic - not syncing: panic_on_warn set ...
      
      CPU: 2 PID: 865 Comm: kworker/2:1 Not tainted 4.9.0-rc7+ #34
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Workqueue: usb_hub_wq hub_event
       ffff88006bee64c8 ffffffff81f96b8a ffffffff00000001 1ffff1000d7dcc2c
       ffffed000d7dcc24 0000000000000001 0000000041b58ab3 ffffffff8598b510
       ffffffff81f968f8 ffffffff850fee20 ffffffff85cff020 dffffc0000000000
      Call Trace:
       [<     inline     >] __dump_stack lib/dump_stack.c:15
       [<ffffffff81f96b8a>] dump_stack+0x292/0x398 lib/dump_stack.c:51
       [<ffffffff8168c88e>] panic+0x1cb/0x3a9 kernel/panic.c:179
       [<ffffffff812b80b4>] __warn+0x1c4/0x1e0 kernel/panic.c:542
       [<ffffffff812b8195>] warn_slowpath_fmt+0xc5/0x110 kernel/panic.c:565
       [<ffffffff819e70ca>] sysfs_warn_dup+0x8a/0xa0 fs/sysfs/dir.c:30
       [<ffffffff819e7308>] sysfs_create_dir_ns+0x178/0x1d0 fs/sysfs/dir.c:59
       [<     inline     >] create_dir lib/kobject.c:71
       [<ffffffff81fa1b07>] kobject_add_internal+0x227/0xa60 lib/kobject.c:229
       [<     inline     >] kobject_add_varg lib/kobject.c:366
       [<ffffffff81fa2479>] kobject_add+0x139/0x220 lib/kobject.c:411
       [<ffffffff82737a63>] device_add+0x353/0x1660 drivers/base/core.c:1088
       [<ffffffff82738d8d>] device_register+0x1d/0x20 drivers/base/core.c:1206
       [<ffffffff82cb77d3>] usb_create_ep_devs+0x163/0x260 drivers/usb/core/endpoint.c:195
       [<ffffffff82c9f27b>] create_intf_ep_devs+0x13b/0x200 drivers/usb/core/message.c:1030
       [<ffffffff82ca39d3>] usb_set_configuration+0x1083/0x18d0 drivers/usb/core/message.c:1937
       [<ffffffff82cc9e2e>] generic_probe+0x6e/0xe0 drivers/usb/core/generic.c:172
       [<ffffffff82caa7fa>] usb_probe_device+0xaa/0xe0 drivers/usb/core/driver.c:263
      
      This patch prevents the problem by checking for duplicate endpoint
      addresses during enumeration and skipping any duplicates.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Tested-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0a8fd134
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · c433eb70
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Three small pin control fixes for the v4.10 series. Very little to say
        about them, just driver fixes.
      
         - one fix to the AMD pinctrl ACPI glue
      
         - fix requests on the Meson driver
      
         - fix bitfield widths on Samsungs Exynos 5433"
      
      * tag 'pinctrl-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: samsung: Fix the width of PINCFG_TYPE_DRV bitfields for Exynos5433
        pinctrl: meson: fix gpio request disabling other modes
        pinctrl/amd: Set the level based on ACPI tables
      c433eb70