1. 19 Sep, 2014 5 commits
    • Ian Abbott's avatar
      staging: comedi: remove comedi_board() · aee44756
      Ian Abbott authored
      All calls to the inline function `comedi_board()` in "comedidev.h" have
      been removed, so remove the function.
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      aee44756
    • Ian Abbott's avatar
      staging: comedi: adl_pci9118: use dma_alloc_coherent() · 75fbdbf6
      Ian Abbott authored
      Use `dma_alloc_coherent()` to allocate the DMA buffers instead of
      using `__get_free_pages()` to allocate and `virt_to_bus()` to get the
      hardware address.  The coherent buffers are fairly small - at most 4
      pages (although there are two of them).  Use of `virt_to_bus()` is
      discouraged.
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      75fbdbf6
    • Ian Abbott's avatar
      staging: comedi: adl_pci9118: don't overallocate DMA buffer · f39f87e9
      Ian Abbott authored
      The last parameter of `__get_free_pages()` is log2 (the 'order') of the
      number of pages to be allocated.  This driver seems to think it is the
      linear number of pages, so `pci9118_alloc_dma()` first tries to allocate
      16 pages, but only uses 4 of them, setting the buffer size to PAGE_SIZE
      multiplied by the 'order'.  If the allocation fails, it tries
      progressively smaller orders, down to 0.  If the allocation at order 0
      succeeds, the buffer size is set to 0, which is likely to cause
      problems.
      
      Set the buffer size to `PAGE_SIZE` shifted left by the allocation order.
      Since the maximum buffer size previously used was 4, start with an
      allocation order of 2 instead of 4.  Rename the `pages` member of
      `struct pci9118_dmabuf` (and the local variable in
      `pci9118_alloc_dma()`) to `order` to make it clearer what it is.
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f39f87e9
    • Ian Abbott's avatar
      staging: comedi: adl_pci9118: don't allocate 2nd DMA buffer on failure · d5733baf
      Ian Abbott authored
      `pci9118_alloc_dma()` tries to allocate two DMA buffers but may allocate
      a single buffer or none at all.  If it fails to allocate the first
      buffer, it still tries to allocate the second buffer, even though it
      won't be used.  Change it to not bother trying to allocate the second
      buffer if the first one fails.
      Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
      Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d5733baf
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-for-3.18b' of... · 27f5a85f
      Greg Kroah-Hartman authored
      Merge tag 'iio-for-3.18b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      
      Jonathan writes:
      
      Second round of new IIO drivers, features and cleanups for the 3.18 cycle.
      
      New drivers and part support
      * Bosch bmg160 Gyroscope driver
      * Dyna-Image al3320a ambient light sensor driver
      * Bosh bmi055 gyroscope part driver (accelerometer part supported by bmc150)
      * isl29018 - add support for isl29023 and isl29035
      * kxcjk-1013 - add support for kxcj9-1008 and kxtj2-1009
      * bmc150 - additional part support (BMI055 accelerometer part, BMA255,
        BMA222E, BMA250E and BMA280).  Different resolutions but otherwise similar
        parts.
      * bma180 - add BMA250 (note different from the BMA250E support above despite
        the naming).  A lot of driver reworking lead up to this - described below.
      
      New features
      * kxcjk1013 - add threshold event support.
      * rockchip - document DT bindings.
      * isl29018 - ACPI support
      * bma180 - enable use without IRQ
      
      Cleanups
      * Tree wide - drop owner field assignment if using the module_platform_driver
        helper as that assigns it anyway.
      * kxcjk1013 - drop a redundant assignment of the current range and fix a
        a defined but not used warning.
      * inv_mpu6050 - Remove an unnecessary cast form a void pointer.
      * rockchip - drop and unused variable.
      * at91_adc - make a local function static.
      * st-sensors-core - correctly handle an error in setting in
        st_sensors_set_drdy_int_pin
      * isl29018 - typo fix
      * bmc150 - fix incorrect scale value for 16G range (Driver new this cycle)
      * bmc150 - fix issues when CONFIG_PM_RUNTIME not set (Driver new this cycle)
      * ad7606 - line length tidy up.
      * bmg160 - set power state only if PM_RUNTIME is defined.
      * ak8975 - fix some unnecessary casting between char * and const char *
      * bma180 - prefix remaining bits and bobs with bma180_ and ensure consistent.
               - use a bool instead of an int for state (as its either on or off).
               - expose the temperature channel
               - statically allocate buffers to avoid need for update_scan_mode
                 callback.
               - refactor to allow futher chip variants including support for part
                 specific config and disable code + different resolutions.
      27f5a85f
  2. 15 Sep, 2014 4 commits
    • Greg Kroah-Hartman's avatar
      Merge 3.17-rc5 into staging-next. · caf382fe
      Greg Kroah-Hartman authored
      This fixes a merge conflict in lustre, and we want the other fixes that
      went into 3.17-rc5 as well.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      caf382fe
    • Linus Torvalds's avatar
      Linux 3.17-rc5 · 9e82bf01
      Linus Torvalds authored
      9e82bf01
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 83373f70
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "double iput() on failure exit in lustre, racy removal of spliced
        dentries from ->s_anon in __d_materialise_dentry() plus a bunch of
        assorted RCU pathwalk fixes"
      
      The RCU pathwalk fixes end up fixing a couple of cases where we
      incorrectly dropped out of RCU walking, due to incorrect initialization
      and testing of the sequence locks in some corner cases.  Since dropping
      out of RCU walk mode forces the slow locked accesses, those corner cases
      slowed down quite dramatically.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        be careful with nd->inode in path_init() and follow_dotdot_rcu()
        don't bugger nd->seq on set_root_rcu() from follow_dotdot_rcu()
        fix bogus read_seqretry() checks introduced in b37199e6
        move the call of __d_drop(anon) into __d_materialise_unique(dentry, anon)
        [fix] lustre: d_make_root() does iput() on dentry allocation failure
      83373f70
    • Linus Torvalds's avatar
      vfs: avoid non-forwarding large load after small store in path lookup · 9226b5b4
      Linus Torvalds authored
      The performance regression that Josef Bacik reported in the pathname
      lookup (see commit 99d263d4 "vfs: fix bad hashing of dentries") made
      me look at performance stability of the dcache code, just to verify that
      the problem was actually fixed.  That turned up a few other problems in
      this area.
      
      There are a few cases where we exit RCU lookup mode and go to the slow
      serializing case when we shouldn't, Al has fixed those and they'll come
      in with the next VFS pull.
      
      But my performance verification also shows that link_path_walk() turns
      out to have a very unfortunate 32-bit store of the length and hash of
      the name we look up, followed by a 64-bit read of the combined hash_len
      field.  That screws up the processor store to load forwarding, causing
      an unnecessary hickup in this critical routine.
      
      It's caused by the ugly calling convention for the "hash_name()"
      function, and easily fixed by just making hash_name() fill in the whole
      'struct qstr' rather than passing it a pointer to just the hash value.
      
      With that, the profile for this function looks much smoother.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9226b5b4
  3. 14 Sep, 2014 31 commits