1. 10 Aug, 2016 1 commit
    • Robert Foss's avatar
      cdc-wdm: Clear read pipeline in case of error · c1da59da
      Robert Foss authored
      Implemented queued response handling. This queue is processed every time the
      WDM_READ flag is cleared.
      
      In case of a read error, userspace may not actually read the data, since the
      driver returns an error through wdm_poll. After this, the underlying device may
      attempt to send us more data, but the queue is not processed. While userspace is
      also blocked, because the read error is never cleared.
      
      After this patch, we proactively process the queue on a read error. If there was
      an outstanding response to handle, that will clear the error (or go through the
      same logic again, if another read error occurs). If there was no outstanding
      response, this will bring the queue size back to 0, unblocking a future response
      from the underlying device.
      Signed-off-by: default avatarRobert Foss <robert.foss@collabora.com>
      Tested-by: default avatarRobert Foss <robert.foss@collabora.com>
      Acked-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c1da59da
  2. 09 Aug, 2016 13 commits
    • Nobuo Iwata's avatar
      usbip: vhci extension: modifications to vhci driver · 0775a9cb
      Nobuo Iwata authored
      Modification to Kconfig, vhci_hc.c, vhci.h and vhci_sysfs.c.
      
      1. kernel config
      
      Followings are added.
      
      USBIP_VHCI_HC_PORTS: Number of ports per USB/IP virtual host
      controller. The default is 8 - same as current VHCI_NPORTS.
      USBIP_VHCI_NR_HCS: Number of USB/IP virtual host controllers. The
      default is 1. This paratmeter is replaced with USBIP_VHCI_INIT_HCS and
      USBIP_VHCI_MAX_HCS included in succeeding dynamic extension patch.
      
      2. the_controller to controllers
      
      the_controller is changed to vhci_pdevs: array of struct
      platform_device.
      
      3. vhci_sysfs.c
      
      Sysfs structure is changed as following.
      
      BEFORE:
          /sys/devices/platform
              +-- vhci
                  +-- status
                  +-- attach
                  +-- detach
                  +-- usbip_debug
      
      AFTER: example for CONFIG_USBIP_NR_HCS=4
          /sys/devices/platform
              +-- vhci
              |   +-- nports
              |   +-- status
              |   +-- status.1
              |   +-- status.2
              |   +-- status.3
              |   +-- attach
              |   +-- detach
              |   +-- usbip_debug
              +-- vhci.1
              +-- vhci.2
              +-- vhci.3
      
      vhci[.N] is shown for each host controller kobj. vhch.1, vhci.2, ...
      are shown only when CONFIG_USBIP_NR_HCS is more than 1. Only 'vhci'
      (without number) has user space interfaces. 'nports' is newly added to
      give ports-per-controller and number of controlles. Before that, number
      of ports is acquired by reading status lines. Status is divided for
      each controller to avoid page size (4KB) limitation.
      
      Old userspace tool binaries work with the first status within the first
      controller.
      
      Inconsistency between status header and content is fixed.
      4th and 5th column are
      header:          "dev bus"
      content(unused): "000 000"
      content(used):   "%08x", devid
      Only 1st and 2nd column are used by program. In old version, sscanf()
      in parse_status expect no bus column. And bus_id string is shown in the
      last column. Then bus in the header is removed and unused content is
      replaced with 8 zeros. The sscanf() expects more than 5 columns and new
      has 6 columns so there's no compatibility issue in this change.
      Signed-off-by: default avatarNobuo Iwata <nobuo.iwata@fujixerox.co.jp>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0775a9cb
    • Peter Chen's avatar
      usb: core: of.c: fix defined but not declare warning · 0573f2c5
      Peter Chen authored
      The helper usb_of_get_child_node is defined at of.c, but missing its
      declare as a global function. Fix it by adding related header file
      as well as compile it on conditional of CONFIG_OF.
      
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: linux-usb@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: Ben Dooks <ben.dooks@codethink.co.uk>
      Cc: linux-kernel@lists.codethink.co.uk
      Signed-off-by: default avatarPeter Chen <peter.chen@nxp.com>
      Reported-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0573f2c5
    • Masahiro Yamada's avatar
      usb: remove redundant dependency on USB_SUPPORT · a26a1422
      Masahiro Yamada authored
      The whole Kconfig entries of the USB subsystem are surrounded with
      "if USB_SUPPORT" ... "endif", so CONFIG_USB_SUPPORT=y is surely met
      when these two Kconfig options are visible.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a26a1422
    • Stephen Boyd's avatar
      usb: ulpi: Automatically set driver::owner with ulpi_driver_register() · 1ebe88d3
      Stephen Boyd authored
      Let's follow other driver registration functions and
      automatically set the driver's owner member to THIS_MODULE when
      ulpi_driver_register() is called. This allows ulpi driver writers
      to forget about this boiler plate detail and avoids common bugs
      in the process.
      Signed-off-by: default avatarStephen Boyd <stephen.boyd@linaro.org>
      Acked-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1ebe88d3
    • Rafał Miłecki's avatar
      USB: bcma: initialize Northstar USB 3.0 controller · 3cc7e7b7
      Rafał Miłecki authored
      It's a rather simple controller, we just need to make sure USB is
      powered (using GPIO pin) and reset bus core. Once this is done it's
      safe to register XHCI controller and let it init PHY and do its magic.
      Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3cc7e7b7
    • Heiner Kallweit's avatar
      usb: storage: fix runtime pm issue in usb_stor_probe2 · a094760b
      Heiner Kallweit authored
      Since commit 71723f95 "PM / runtime: print error when activating a
      child to unactive parent" I see the following error message:
      
      scsi host2: usb-storage 1-3:1.0
      scsi host2: runtime PM trying to activate child device host2 but parent
      	    (1-3:1.0) is not active
      
      Digging into it it seems to be related to the problem described in the
      commit message for cd998ded "i2c: designware: Prevent runtime
      suspend during adapter registration" as scsi_add_host also calls
      device_add and after the call to device_add the parent device is
      suspended.
      
      Fix this by using the approach from the mentioned commit and getting
      the runtime pm reference before calling scsi_add_host.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a094760b
    • Bjørn Mork's avatar
      cdc-wdm: fix "out-of-sync" due to missing notifications · 833415a3
      Bjørn Mork authored
      The driver enforces a strict one-to-one relationship between the
      received RESPONSE_AVAILABLE notifications and messages read from
      the device. At the same time, it will cancel the interrupt URB
      when there is no client holding the character device open.
      
      Many devices do not cope well with this behaviour.  They maintain
      a FIFO queue of messages, and send notifications on a best effort
      basis.  Messages are queued regardless of whether the notification
      is successful or not. So if the driver loses a single notification,
      which can easily happen when the interrupt URB is cancelled, then
      the device and driver becomes out-of-sync. New messages end up
      at the end of the queue, while the associated notification makes
      the driver read only the first message from the queue.
      
      This state is permanent from a user point of view. There is no
      no way to flush the device queue without resetting the device or
      using another driver.
      
      The problem is easy to hit with current QMI and MBIM command line
      tools, which typically close the character device after seeing
      the reply they expect. Any pending unsolicited messages from the
      device will then trigger the driver bug.
      
      Fix by always reading all queued messages from the device when
      the notification URB is first submitted.  This is expected to
      end with an -EPIPE status when there are no more pending
      messages, so demote the printk associated with -EPIPE to debug
      level.
      
      The workaround has been tested on a large number of different MBIM
      and QMI devices, as well as the Ericsson F5521gw and H5321gw modems
      with real Device Management functions.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Acked-by: default avatarOliver Neukum <oneukum@suse.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      833415a3
    • Bhaktipriya Shridhar's avatar
      usb: dwc2: Remove deprecated create_singlethread_workqueue · ec7b1268
      Bhaktipriya Shridhar authored
      alloc_ordered_workqueue replaces the deprecated
      create_singlethread_workqueue.
      
      There are multiple work items on the work queue, which require
      ordering. Hence, an ordered workqueue has been used.
      
      The workqueue "wq_otg" is not being used on a memory reclaim path.
      Hence, WQ_MEM_RECLAIM has not been set.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ec7b1268
    • Bhaktipriya Shridhar's avatar
      usb: ftdi-elan: Remove deprecated create_singlethread_workqueue · c936f45f
      Bhaktipriya Shridhar authored
      The status workqueue is involved in initializing the Uxxx and polling
      the Uxxx until a supported PCMCIA CardBus device is detected.
      It then starts the command and respond workqueues and then loads the
      module that handles the device, after which it just polls the Uxxx
      looking for card ejects.
      
      The command and respond workqueues are involved in implementing a command
      sequencer for communicating with the firmware on the other side of
      the FTDI chip in the Uxxx.
      
      These workqueues have only a single work item each and hence they do not
      require ordering. Also, none of the above workqueues are being used on a
      memory recliam path. Hence, the singlethreaded workqueues have been
      replaced with the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      The work items have been sync cancelled because they are self-requeueing
      and need to wait for the in-flight work item to finish before proceeding
      with destruction. Hence, they have been sync cancelled in
      ftdi_status_cancel_work(), ftdi_command_cancel_work() and
      ftdi_response_cancel_work(). These functions are called in
      ftdi_elan_exit() to ensure that there are no pending work items while
      disconnecting the driver.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c936f45f
    • Bhaktipriya Shridhar's avatar
      USB: appledisplay: Remove deprecated create_singlethread_workqueue · 6a0bb434
      Bhaktipriya Shridhar authored
      The workqueue "wq" is involved in controlling the brightness of an
      Apple Cinema Display over USB.
      
      It has a single work item(&pdata->work) per appledisplay and hence
      doesn't require ordering. Also, it is not being used on a memory
      reclaim path.
      
      Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      The work item is self-requeueing and needs to wait for the in-flight
      work item to finish before proceeding with destruction.
      Hence, it has been sync cancelled in appledisplay_disconnect().
      This also ensures that there are no pending tasks while disconnecting
      the driver.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6a0bb434
    • Bhaktipriya Shridhar's avatar
      usb: lvstest: Remove deprecated create_singlethread_workqueue · bd783108
      Bhaktipriya Shridhar authored
      The workqueue has a single work item(&lvs->rh_work) and hence
      doesn't require ordering. Also, it is not being used on a memory
      reclaim path. Hence, the singlethreaded workqueue has been replaced
      with the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      The work item has been flushed in lvs_rh_disconnect() to ensure that
      there are no pending tasks while disconnecting the driver.
      Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bd783108
    • Julia Lawall's avatar
      usb: host: fsl-mph-dr-of: use of_property_read_bool · 72cd194f
      Julia Lawall authored
      Use of_property_read_bool to check for the existence of a property.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @@
      expression e1,e2,x;
      @@
      -	if (of_get_property(e1,e2,NULL))
      -		x = true;
      -	else
      -		x = false;
      +	x = of_property_read_bool(e1,e2);
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      72cd194f
    • Stephen Boyd's avatar
      usb: misc: Add driver for usb4604 · 740a6a17
      Stephen Boyd authored
      This is a minimal driver to support bringing a usb4604 device
      from microchip out of reset and into hub mode. The usb4604 device
      is related to the usb3503 device, but it didn't seem close enough
      to warrant putting both into the same file. This patch borrows
      some of the usb3503 structure and trims it down to just handle
      the optional reset gpio and adds the i2c command to put the
      device into hub mode.
      
      Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/00001716A.pdf
      Cc: <devicetree@vger.kernel.org>
      Signed-off-by: default avatarStephen Boyd <stephen.boyd@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      740a6a17
  3. 08 Aug, 2016 1 commit
  4. 07 Aug, 2016 10 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 857953d7
      Linus Torvalds authored
      Pull more block fixes from Jens Axboe:
       "As mentioned in the pull the other day, a few more fixes for this
        round, all related to the bio op changes in this series.
      
        Two fixes, and then a cleanup, renaming bio->bi_rw to bio->bi_opf.  I
        wanted to do that change right after or right before -rc1, so that
        risk of conflict was reduced.  I just rebased the series on top of
        current master, and no new ->bi_rw usage has snuck in"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: rename bio bi_rw to bi_opf
        target: iblock_execute_sync_cache() should use bio_set_op_attrs()
        mm: make __swap_writepage() use bio_set_op_attrs()
        block/mm: make bdev_ops->rw_page() take a bool for read/write
      857953d7
    • Linus Torvalds's avatar
      Merge tag 'drm-for-v4.8-zpos' of git://people.freedesktop.org/~airlied/linux · 635a4ba1
      Linus Torvalds authored
      Pull drm zpos property support from Dave Airlie:
       "This tree was waiting on some media stuff I hadn't had time to get a
        stable branchpoint off, so I just waited until it was all in your tree
        first.
      
        It's been around a bit on the list and shouldn't affect anything
        outside adding the generic API and moving some ARM drivers to using
        it"
      
      * tag 'drm-for-v4.8-zpos' of git://people.freedesktop.org/~airlied/linux:
        drm: rcar: use generic code for managing zpos plane property
        drm/exynos: use generic code for managing zpos plane property
        drm: sti: use generic zpos for plane
        drm: add generic zpos property
      635a4ba1
    • Jens Axboe's avatar
      block: rename bio bi_rw to bi_opf · 1eff9d32
      Jens Axboe authored
      Since commit 63a4cc24, bio->bi_rw contains flags in the lower
      portion and the op code in the higher portions. This means that
      old code that relies on manually setting bi_rw is most likely
      going to be broken. Instead of letting that brokeness linger,
      rename the member, to force old and out-of-tree code to break
      at compile time instead of at runtime.
      
      No intended functional changes in this commit.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      1eff9d32
    • Jens Axboe's avatar
      target: iblock_execute_sync_cache() should use bio_set_op_attrs() · 31c64f78
      Jens Axboe authored
      The original commit missed this function, it needs to mark it a
      write flush.
      
      Cc: Mike Christie <mchristi@redhat.com>
      Fixes: e742fc32 ("target: use bio op accessors")
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      31c64f78
    • Jens Axboe's avatar
      mm: make __swap_writepage() use bio_set_op_attrs() · ba13e83e
      Jens Axboe authored
      Cleaner than manipulating bio->bi_rw flags directly.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      ba13e83e
    • Jens Axboe's avatar
      block/mm: make bdev_ops->rw_page() take a bool for read/write · c11f0c0b
      Jens Axboe authored
      Commit abf54548 changed it from an 'rw' flags type to the
      newer ops based interface, but now we're effectively leaking
      some bdev internals to the rest of the kernel. Since we only
      care about whether it's a read or a write at that level, just
      pass in a bool 'is_write' parameter instead.
      
      Then we can also move op_is_write() and friends back under
      CONFIG_BLOCK protection.
      Reviewed-by: default avatarMike Christie <mchristi@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      c11f0c0b
    • Linus Torvalds's avatar
      Merge tag 'doc-4.8-fixes' of git://git.lwn.net/linux · 52ddb7e9
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "Three fixes for the docs build, including removing an annoying warning
        on 'make help' if sphinx isn't present"
      
      * tag 'doc-4.8-fixes' of git://git.lwn.net/linux:
        DocBook: use DOCBOOKS="" to ignore DocBooks instead of IGNORE_DOCBOOKS=1
        Documenation: update cgroup's document path
        Documentation/sphinx: do not warn about missing tools in 'make help'
      52ddb7e9
    • Linus Torvalds's avatar
      Merge tag 'binfmt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/binfmt_misc · e9d488c3
      Linus Torvalds authored
      Pull binfmt_misc update from James Bottomley:
       "This update is to allow architecture emulation containers to function
        such that the emulation binary can be housed outside the container
        itself.  The container and fs parts both have acks from relevant
        experts.
      
        To use the new feature you have to add an F option to your binfmt_misc
        configuration"
      
      From the docs:
       "The usual behaviour of binfmt_misc is to spawn the binary lazily when
        the misc format file is invoked.  However, this doesn't work very well
        in the face of mount namespaces and changeroots, so the F mode opens
        the binary as soon as the emulation is installed and uses the opened
        image to spawn the emulator, meaning it is always available once
        installed, regardless of how the environment changes"
      
      * tag 'binfmt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/binfmt_misc:
        binfmt_misc: add F option description to documentation
        binfmt_misc: add persistent opened binary handler for containers
        fs: add filp_clone_open API
      e9d488c3
    • Eryu Guan's avatar
      fs: return EPERM on immutable inode · 337684a1
      Eryu Guan authored
      In most cases, EPERM is returned on immutable inode, and there're only a
      few places returning EACCES. I noticed this when running LTP on
      overlayfs, setxattr03 failed due to unexpected EACCES on immutable
      inode.
      
      So converting all EACCES to EPERM on immutable inode.
      Acked-by: default avatarDave Chinner <dchinner@redhat.com>
      Signed-off-by: default avatarEryu Guan <guaneryu@gmail.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      337684a1
    • Linus Torvalds's avatar
      Merge branch 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · fe64f328
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "Assorted cleanups and fixes.
      
        In the "trivial API change" department - ->d_compare() losing 'parent'
        argument"
      
      * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        cachefiles: Fix race between inactivating and culling a cache object
        9p: use clone_fid()
        9p: fix braino introduced in "9p: new helper - v9fs_parent_fid()"
        vfs: make dentry_needs_remove_privs() internal
        vfs: remove file_needs_remove_privs()
        vfs: fix deadlock in file_remove_privs() on overlayfs
        get rid of 'parent' argument of ->d_compare()
        cifs, msdos, vfat, hfs+: don't bother with parent in ->d_compare()
        affs ->d_compare(): don't bother with ->d_inode
        fold _d_rehash() and __d_rehash() together
        fold dentry_rcuwalk_invalidate() into its only remaining caller
      fe64f328
  5. 06 Aug, 2016 15 commits
    • Linus Torvalds's avatar
      Merge tag 'xfs-rmap-for-linus-4.8-rc1' of... · 0cbbc422
      Linus Torvalds authored
      Merge tag 'xfs-rmap-for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs
      
      Pull more xfs updates from Dave Chinner:
       "This is the second part of the XFS updates for this merge cycle, and
        contains the new reverse block mapping feature for XFS.
      
        Reverse mapping allows us to track the owner of a specific block on
        disk precisely.  It is implemented as a set of btrees (one per
        allocation group) that track the owners of allocated extents.
        Effectively it is a "used space tree" that is updated when we allocate
        or free extents.  i.e. it is coherent with the free space btrees we
        already maintain and never overlaps with them.
      
        This reverse mapping infrastructure is the building block of several
        upcoming features - reflink, copy-on-write data, dedupe, online
        metadata and data scrubbing, highly accurate bad sector/data loss
        reporting to users, and significantly improved reconstruction of
        damaged and corrupted filesystems.  There's a lot of new stuff coming
        along in the next couple of cycles,a nd it all builds in the rmap
        infrastructure.
      
        As such, it's a huge chunk of new code with new on-disk format
        features and internal infrastructure.  It warns at mount time as an
        experimental feature and that it may eat data (as we do with all new
        on-disk features until they stabilise).  We have not released
        userspace suport for it yet - userspace support currently requires
        download from Darrick's xfsprogs repo and build from source, so the
        access to this feature is really developer/tester only at this point.
        Initial userspace support will be released at the same time kernel
        with this code in it is released.
      
        The new rmap enabled code regresses 3 xfstests - all are ENOSPC
        related corner cases, one of which Darrick posted a fix for a few
        hours ago.  The other two are fixed by infrastructure that is part of
        the upcoming reflink patchset.  This new ENOSPC infrastructure
        requires a on-disk format tweak required to keep mount times in
        check - we need to keep an on-disk count of allocated rmapbt blocks so
        we don't have to scan the entire btrees at mount time to count them.
      
        This is currently being tested and will be part of the fixes sent in
        the next week or two so users will not be exposed to this change"
      
      * tag 'xfs-rmap-for-linus-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (52 commits)
        xfs: move (and rename) the deferred bmap-free tracepoints
        xfs: collapse single use static functions
        xfs: remove unnecessary parentheses from log redo item recovery functions
        xfs: remove the extents array from the rmap update done log item
        xfs: in btree_lshift, only allocate temporary cursor when needed
        xfs: remove unnecesary lshift/rshift key initialization
        xfs: remove the get*keys and update_keys btree ops pointers
        xfs: enable the rmap btree functionality
        xfs: don't update rmapbt when fixing agfl
        xfs: disable XFS_IOC_SWAPEXT when rmap btree is enabled
        xfs: add rmap btree block detection to log recovery
        xfs: add rmap btree geometry feature flag
        xfs: propagate bmap updates to rmapbt
        xfs: enable the xfs_defer mechanism to process rmaps to update
        xfs: log rmap intent items
        xfs: create rmap update intent log items
        xfs: add rmap btree insert and delete helpers
        xfs: convert unwritten status of reverse mappings
        xfs: remove an extent from the rmap btree
        xfs: add an extent to the rmap btree
        ...
      0cbbc422
    • Linus Torvalds's avatar
      Merge branch 'work.const-qstr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 835c92d4
      Linus Torvalds authored
      Pull qstr constification updates from Al Viro:
       "Fairly self-contained bunch - surprising lot of places passes struct
        qstr * as an argument when const struct qstr * would suffice; it
        complicates analysis for no good reason.
      
        I'd prefer to feed that separately from the assorted fixes (those are
        in #for-linus and with somewhat trickier topology)"
      
      * 'work.const-qstr' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        qstr: constify instances in adfs
        qstr: constify instances in lustre
        qstr: constify instances in f2fs
        qstr: constify instances in ext2
        qstr: constify instances in vfat
        qstr: constify instances in procfs
        qstr: constify instances in fuse
        qstr constify instances in fs/dcache.c
        qstr: constify instances in nfs
        qstr: constify instances in ocfs2
        qstr: constify instances in autofs4
        qstr: constify instances in hfs
        qstr: constify instances in hfsplus
        qstr: constify instances in logfs
        qstr: constify dentry_init_security
      835c92d4
    • Linus Torvalds's avatar
      Merge tag 'media/v4.8-6' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · ce804bf5
      Linus Torvalds authored
      Pull mailcap fixlets from Mauro Carvalho Chehab:
       "A small fixup for my and Shuah's entries in .mailcap.
      
        Basically, those entries were with a syntax that makes
        get_maintainer.pl to do the wrong thing"
      
      * tag 'media/v4.8-6' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        .mailmap: Correct entries for Mauro Carvalho Chehab and Shuah Khan
      ce804bf5
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 0803e040
      Linus Torvalds authored
      Pull virtio/vhost updates from Michael Tsirkin:
      
       - new vsock device support in host and guest
      
       - platform IOMMU support in host and guest, including compatibility
         quirks for legacy systems.
      
       - misc fixes and cleanups.
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        VSOCK: Use kvfree()
        vhost: split out vringh Kconfig
        vhost: detect 32 bit integer wrap around
        vhost: new device IOTLB API
        vhost: drop vringh dependency
        vhost: convert pre sorted vhost memory array to interval tree
        vhost: introduce vhost memory accessors
        VSOCK: Add Makefile and Kconfig
        VSOCK: Introduce vhost_vsock.ko
        VSOCK: Introduce virtio_transport.ko
        VSOCK: Introduce virtio_vsock_common.ko
        VSOCK: defer sock removal to transports
        VSOCK: transport-specific vsock_transport functions
        vhost: drop vringh dependency
        vop: pull in vhost Kconfig
        virtio: new feature to detect IOMMU device quirk
        balloon: check the number of available pages in leak balloon
        vhost: lockless enqueuing
        vhost: simplify work flushing
      0803e040
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 80fac0f5
      Linus Torvalds authored
      Pull more KVM updates from Paolo Bonzini:
       - ARM bugfix and MSI injection support
       - x86 nested virt tweak and OOPS fix
       - Simplify pvclock code (vdso bits acked by Andy Lutomirski).
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        nvmx: mark ept single context invalidation as supported
        nvmx: remove comment about missing nested vpid support
        KVM: lapic: fix access preemption timer stuff even if kernel_irqchip=off
        KVM: documentation: fix KVM_CAP_X2APIC_API information
        x86: vdso: use __pvclock_read_cycles
        pvclock: introduce seqcount-like API
        arm64: KVM: Set cpsr before spsr on fault injection
        KVM: arm: vgic-irqfd: Workaround changing kvm_set_routing_entry prototype
        KVM: arm/arm64: Enable MSI routing
        KVM: arm/arm64: Enable irqchip routing
        KVM: Move kvm_setup_default/empty_irq_routing declaration in arch specific header
        KVM: irqchip: Convey devid to kvm_set_msi
        KVM: Add devid in kvm_kernel_irq_routing_entry
        KVM: api: Pass the devid in the msi routing entry
      80fac0f5
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 4305f424
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is the main pull request for MIPS for 4.8.  Also includes is a
        minor SSB cleanup as SSB code traditionally is merged through the MIPS
        tree:
      
        ATH25:
          - MIPS: Add default configuration for ath25
      
        Boot:
          - For zboot, copy appended dtb to the end of the kernel
          - store the appended dtb address in a variable
      
        BPF:
          - Fix off by one error in offset allocation
      
        Cobalt code:
          - Fix typos
      
        Core code:
          - debugfs_create_file returns NULL on error, so don't use IS_ERR for
            testing for errors.
          - Fix double locking issue in RM7000 S-cache code.  This would only
            affect RM7000 ARC systems on reboot.
          - Fix page table corruption on THP permission changes.
          - Use compat_sys_keyctl for 32 bit userspace on 64 bit kernels.
            David says, there are no compatibility issues raised by this fix.
          - Move some signal code around.
          - Rewrite r4k count/compare clockevent device registration such that
            min_delta_ticks/max_delta_ticks files are guaranteed to be
            initialized.
          - Only register r4k count/compare as clockevent device if we can
            assume the clock to be constant.
          - Fix MSA asm warnings in control reg accessors
          - uasm and tlbex fixes and tweaking.
          - Print segment physical address when EU=1.
          - Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO.
          - CP: Allow booting by VP other than VP 0
          - Cache handling fixes and optimizations for r4k class caches
          - Add hotplug support for R6 processors
          - Cleanup hotplug bits in kconfig
          - traps: return correct si code for accessing nonmapped addresses
          - Remove cpu_has_safe_index_cacheops
      
        Lantiq:
          - Register IRQ handler for virtual IRQ number
          - Fix EIU interrupt loading code
          - Use the real EXIN count
          - Fix build error.
      
        Loongson 3:
          - Increase HPET_MIN_PROG_DELTA and decrease HPET_MIN_CYCLES
      
        Octeon:
          - Delete built-in DTB pruning code for D-Link DSR-1000N.
          - Clean up GPIO definitions in dlink_dsr-1000n.dts.
          - Add more LEDs to the DSR-100n DTS
          - Fix off by one in octeon_irq_gpio_map()
          - Typo fixes
          - Enable SATA by default in cavium_octeon_defconfig
          - Support readq/writeq()
          - Remove forced mappings of USB interrupts.
          - Ensure DMA descriptors are always in the low 4GB
          - Improve USB reset code for OCTEON II.
      
        Pistachio:
          - Add maintainers entry for pistachio SoC Support
          - Remove plat_setup_iocoherency
      
        Ralink:
          - Fix pwm UART in spis group pinmux.
      
        SSB:
          - Change bare unsigned to unsigned int to suit coding style
      
        Tools:
          - Fix reloc tool compiler warnings.
      
        Other:
          - Delete use of ARCH_WANT_OPTIONAL_GPIOLIB"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (61 commits)
        MIPS: mm: Fix definition of R6 cache instruction
        MIPS: tools: Fix relocs tool compiler warnings
        MIPS: Cobalt: Fix typo
        MIPS: Octeon: Fix typo
        MIPS: Lantiq: Fix build failure
        MIPS: Use CPHYSADDR to implement mips32 __pa
        MIPS: Octeon: Dlink_dsr-1000n.dts: add more leds.
        MIPS: Octeon: Clean up GPIO definitions in dlink_dsr-1000n.dts.
        MIPS: Octeon: Delete built-in DTB pruning code for D-Link DSR-1000N.
        MIPS: store the appended dtb address in a variable
        MIPS: ZBOOT: copy appended dtb to the end of the kernel
        MIPS: ralink: fix spis group pinmux
        MIPS: Factor o32 specific code into signal_o32.c
        MIPS: non-exec stack & heap when non-exec PT_GNU_STACK is present
        MIPS: Use per-mm page to execute branch delay slot instructions
        MIPS: Modify error handling
        MIPS: c-r4k: Use SMP calls for CM indexed cache ops
        MIPS: c-r4k: Avoid small flush_icache_range SMP calls
        MIPS: c-r4k: Local flush_icache_range cache op override
        MIPS: c-r4k: Split r4k_flush_kernel_vmap_range()
        ...
      4305f424
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · db826278
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Mostly tooling fixes and some late tooling updates, plus two perf
        related printk message fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tests bpf: Use SyS_epoll_wait alias
        perf tests: objdump output can contain multi byte chunks
        perf record: Add --sample-cpu option
        perf hists: Introduce output_resort_cb method
        perf tools: Move config/Makefile into Makefile.config
        perf tests: Add test for bitmap_scnprintf function
        tools lib: Add bitmap_and function
        tools lib: Add bitmap_scnprintf function
        tools lib: Add bitmap_alloc function
        tools lib traceevent: Ignore generated library files
        perf tools: Fix build failure on perl script context
        perf/core: Change log level for duration warning to KERN_INFO
        perf annotate: Plug filename string leak
        perf annotate: Introduce strerror for handling symbol__disassemble() errors
        perf annotate: Rename symbol__annotate() to symbol__disassemble()
        perf/x86: Modify error message in virtualized environment
        perf target: str_error_r() always returns the buffer it receives
        perf annotate: Use pipe + fork instead of popen
        perf evsel: Introduce constructor for cycles event
      db826278
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c98f5827
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two fixes and a cleanup-fix, to the syscall entry code and to ptrace"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/syscalls/64: Add compat_sys_keyctl for 32-bit userspace
        x86/ptrace: Stop setting TS_COMPAT in ptrace code
        x86/vdso: Error out if the vDSO isn't a valid DSO
      c98f5827
    • Linus Torvalds's avatar
      Merge tag 'sh-for-4.8' of git://git.libc.org/linux-sh · 1630e843
      Linus Torvalds authored
      Pull arch/sh updates from Rich Felker:
       "These changes improve device tree support (including builtin DTB), add
        support for the J-Core J2 processor, an open source synthesizable
        reimplementation of the SH-2 ISA, resolve a longstanding sigcontext
        ABI mismatch issue, and fix various bugs including nommu-specific
        issues and minor regressions introduced in 4.6.
      
        The J-Core arch support is included here but to be usable it needs
        drivers that are waiting on approval/inclusion from their subsystem
        maintainers"
      
      * tag 'sh-for-4.8' of git://git.libc.org/linux-sh: (23 commits)
        sh: add device tree source for J2 FPGA on Mimas v2 board
        sh: add defconfig for J-Core J2
        sh: use common clock framework with device tree boards
        sh: system call wire up
        sh: Delete unnecessary checks before the function call "mempool_destroy"
        sh: do not perform IPI-based cache flush except on boards that need it
        sh: add SMP support for J2
        sh: SMP support for SH2 entry.S
        sh: add working futex atomic ops on userspace addresses for smp
        sh: add J2 atomics using the cas.l instruction
        sh: add AT_HWCAP flag for J-Core cas.l instruction
        sh: add support for J-Core J2 processor
        sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE
        sh: allow clocksource drivers to register sched_clock backends
        sh: make heartbeat driver explicitly non-modular
        sh: make board-secureedge5410 explicitly non-modular
        sh: make mm/asids-debugfs explicitly non-modular
        sh: make time.c explicitly non-modular
        sh: fix futex/robust_list on nommu models
        sh: disable aliased page logic on NOMMU models
        ...
      1630e843
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 194d6ad3
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - fix HugeTLB leak due to CoW and PTE_RDONLY mismatch
      
       - avoid accessing unmapped FDT fields when checking validity
      
       - correctly account for vDSO AUX entry in ARCH_DLINFO
      
       - fix kallsyms with absolute expressions in linker script
      
       - kill unnecessary symbol-based relocs in vmlinux
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix copy-on-write referencing in HugeTLB
        arm64: mm: avoid fdt_check_header() before the FDT is fully mapped
        arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
        arm64: relocatable: suppress R_AARCH64_ABS64 relocations in vmlinux
        arm64: vmlinux.lds: make __rela_offset and __dynsym_offset ABSOLUTE
      194d6ad3
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.8-rc1' of... · a157b3aa
      Linus Torvalds authored
      Merge tag 'pwm/for-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set of changes improve some aspects of the atomic API as well as
        make use of this new API in the regulator framework to allow properly
        dealing with critical regulators controlled by a PWM.
      
        Aside from that there's a bunch of updates and cleanups for existing
        drivers, as well as the addition of new drivers for the Broadcom
        iProc, STMPE and ChromeOS EC controllers"
      
      * tag 'pwm/for-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (44 commits)
        regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range
        regulator: pwm: Support extra continuous mode cases
        pwm: Add ChromeOS EC PWM driver
        dt-bindings: pwm: Add binding for ChromeOS EC PWM
        mfd: cros_ec: Add EC_PWM function definitions
        mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper
        pwm: atmel: Use of_device_get_match_data()
        pwm: atmel: Fix checkpatch warnings
        pwm: atmel: Fix disabling of PWM channels
        dt-bindings: pwm: Add R-Car H3 device tree bindings
        pwm: rcar: Use ARCH_RENESAS
        pwm: tegra: Add support for Tegra186
        dt-bindings: pwm: tegra: Add compatible string for Tegra186
        pwm: tegra: Avoid overflow when calculating duty cycle
        pwm: tegra: Allow 100 % duty cycle
        pwm: tegra: Add support for reset control
        pwm: tegra: Rename mmio_base to regs
        pwm: tegra: Remove useless padding
        pwm: tegra: Drop NUM_PWM macro
        pwm: lpc32xx: Set PWM_PIN_LEVEL bit to default value
        ...
      a157b3aa
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.8' of git://github.com/jonmason/ntb · 32199ec3
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "NTB bug fixes for the ntb_tool and ntb_perf, and improvements to the
        ntb_perf and ntb_pingpong for increased debugability.
      
        Also, modification to the ntb_transport layer to increase/decrease
        the number of transport entries depending on the ring size"
      
      * tag 'ntb-4.8' of git://github.com/jonmason/ntb:
        NTB: ntb_hw_intel: use local variable pdev
        NTB: ntb_hw_intel: show BAR size in debugfs info
        ntb_test: Add a selftest script for the NTB subsystem
        ntb_perf: clear link_is_up flag when the link goes down.
        ntb_pingpong: Add a debugfs file to get the ping count
        ntb_tool: Add link status and files to debugfs
        ntb_tool: Postpone memory window initialization for the user
        ntb_perf: Wait for link before running test
        ntb_perf: Return results by reading the run file
        ntb_perf: Improve thread handling to increase robustness
        ntb_perf: Schedule based on time not on performance
        ntb_transport: Check the number of spads the hardware supports
        ntb_tool: Add memory window debug support
        ntb_perf: Allow limiting the size of the memory windows
        NTB: allocate number transport entries depending on size of ring size
        ntb_tool: BUG: Ensure the buffer size is large enough to return all spads
        ntb_tool: Fix infinite loop bug when writing spad/peer_spad file
      32199ec3
    • Linus Torvalds's avatar
      Merge tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · a02040d8
      Linus Torvalds authored
      Pull pstore fixes from Kees Cook:
       "Fixes for pstore ramoops driver to catch bad kfree() and to use better
        DT bindings"
      
      * tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ramoops: use persistent_ram_free() instead of kfree() for freeing prz
        ramoops: use DT reserved-memory bindings
      a02040d8
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0603006b
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is seven basic fixes (plus one MAINTAINER update) which came in
        close to the merge window"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        ipr: Fix error return code in ipr_probe_ioa()
        fcoe: add missing destroy_workqueue() on error in fcoe_init()
        lpfc: Fix possible NULL pointer dereference
        fcoe: Use default VLAN for FIP VLAN discovery
        ipr: Wait to do async scan until scsi host is initialized
        MAINTAINERS: Update cxlflash maintainers
        cxlflash: Verify problem state area is mapped before notifying shutdown
        lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from lpfc_send_taskmgmt()
      0603006b
    • Linus Torvalds's avatar
      Merge tag 'dm-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · d268675c
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
      
       - a stable dm-flakey fix to error read IO during the 'down_interval'
      
       - a DM core suspend fix to establish the SUSPENDED flag before dropping
         the SUSPENDING flag
      
       - a blk-mq request-based DM (dm-mq) dm_stop_queue() fix to properly
         stop the blk-mq hw_queues (and cancel pending requeue work); also
         set/clear QUEUE_FLAG_STOPPED when stopping/starting the dm-mq
         request_queue.
      
       - a DM multipath fix to harden locking of in-core state flags in the
         face of concurrent access while handling path failures under heavy
         IO.
      
       - a few small DM raid fixes to edge cases caught with further testing.
      
      * tag 'dm-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm raid: fix use of wrong status char during resynchronization
        dm raid: constructor fails on non-zero incompat_features
        dm raid: fix processing of max_recovery_rate constructor flag
        dm: set DMF_SUSPENDED* _before_ clearing DMF_NOFLUSH_SUSPENDING
        dm rq: fix the starting and stopping of blk-mq queues
        dm mpath: add locking to multipath_resume and must_push_back
        dm flakey: error READ bios during the down_interval
      d268675c