1. 29 May, 2017 1 commit
    • Greg Kroah-Hartman's avatar
      Merge tag 'iio-for-4.13a' of... · ca9280d1
      Greg Kroah-Hartman authored
      Merge tag 'iio-for-4.13a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      
      Jonathan writes:
      
      First set of new device support, features and cleanups for IIO in the 4.13 cycle
      
      Two entirely new drivers in here plus the usual range of cleanups and features.
      
      New device support
      * ad5064
        - add ltc2631, ltc2633 and ltc2635 support.
      * bma180
        - trivial support for bma250e (new id)
      * hid-sensor-rotation
        - add relative orientation and geometric orientation support.
      * isl29028
        - add isl29030 support (its effectively the same part from a driver point of
        view)
      * maxim_thermocouple
        - add max31856 id.
      * meson-saradc
        - add meson8b SoC adc support.
      * ti-adc084s021
        - new driver and bindings.
      * ti-adc108s102
        - new driver and bindings.
      
      Staging graduations
      * isl29028
      
      Features
      * bma180
        - ACPI enumeration for BMA250E which is used in various x86 tablets.
      * hi8453
        - add raw access rather than only events.
      * hid-sensor-hub
        - Implement batch mode in which we can set a threshold on the amount of time
        between data coming from the fifos.  This is the first device to do this
        rather than use a watershed on the number of samples.
      * hts221
        - power management support
      * lsm6dsx
        - add system power management support.
      * rpr0521
        - sampling frequency read / write
      * stm32-trigger
        - add support for TRG02 triggers.
      * tsl2583
        - runtime power management support.
      
      Cleanups
      * core
        - inkern: fix a double unlock in iio_read_available_channel_raw when raw
        value doesn't appear to be raw (error path).
        - fixup accidental sizeof pointer in iio_device_add_mask_type.
      * docs
        - fix an accidental duplicated line in sysfs-bus-iio-meas-spec.
      * tools
        - use local include/uapi headers to ensure always up to date.
        - increase length of allowed trigger names.
      * ad9834
        - symbolic to octal permissions.
      * ade7753
        - symbolic to octal permissions.
        - fix indentation
      * ade7754
        - symbolic to octal permissions.
      * ade7758
        - symbolic to octal permissions.
      - ade7854
        - symbolic to octal permissions.
      * as3935
        - move out of storm check to given consistent results for raw and processed
        values.
      * bmp280
        - fix bme280 naming in Kconfig help.
      * hi8435
        - avoid garbage on event after enable.
        - add missing in_voltage_sensing_mode_available to list possible enum options.
        - handle the reset gpio with the obvious polarity rather than relying on
        DT to provide it correctly.
      * hid-sensors
        - fix a wrong error path scrubbing of return values.
      * hid-sensors-accel
        - drop static on a local variable
      * hid-sensors-rotation
        - Add missing scale and offset property parsing support.
      * ina2xx
        - Fix a bad use of GENMASK and some typos and whitespace issues.
      * isl29018
        - only declare the ACPI table when ACPI is enabled.
      * isl29028
        - fix proximity sleep times.
      * lsm6dsx
        - replace ifdef CONFIG_PM with __maybe_unused to avoid the complexity of
        dealing with the various PM config variables.
      * meson-saradc
        - mark meson_sar_adc_data static and const.
      * rcar-gyroadc
        - derive the interface clock speed from the fck clock on the basis they are
        the same actual clock.
        - drop the now unused if clock from the bindings.
      * rpr0521
        - disable sensor when marked as such rather than always enabling it.
        - poweroff if probe fails and we can talk to device.
        - make sure device powered off when it doesn't need to be on.
        - use sizeof rather than hardcoded size on value read.
        - whitespace fixup.
        - reorder channel numbers ready for buffered support which didn't quite
        make this pull request.
      * st-accel
        - fix platform data initialization to allow remove and reprobe.
      * st-pressure
        - fix platform data initialization to allow remove and reprobe.
      * tsl2x7x
        - S_IRUGO, S_IWUSR to octal values
        - rename driver for consistency with more recent drivers
        - drop FSF mailing address
        - replace DEVICE_ATTR macros with the shorter DEVICE_ATTR_RW form and
        relevant function renames.
      * zpa2326
        - report an error for consistency with other error paths.
      ca9280d1
  2. 25 May, 2017 36 commits
  3. 22 May, 2017 3 commits
    • Greg Kroah-Hartman's avatar
      Merge 4.12-rc2 into staging-next · 639e1c73
      Greg Kroah-Hartman authored
      We want the staging tree fixes in here as well to handle the merge
      issues.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      639e1c73
    • Linus Torvalds's avatar
      Linux 4.12-rc2 · 08332893
      Linus Torvalds authored
      08332893
    • Linus Torvalds's avatar
      x86: fix 32-bit case of __get_user_asm_u64() · 33c9e972
      Linus Torvalds authored
      The code to fetch a 64-bit value from user space was entirely buggered,
      and has been since the code was merged in early 2016 in commit
      b2f68038 ("x86/mm/32: Add support for 64-bit __get_user() on 32-bit
      kernels").
      
      Happily the buggered routine is almost certainly entirely unused, since
      the normal way to access user space memory is just with the non-inlined
      "get_user()", and the inlined version didn't even historically exist.
      
      The normal "get_user()" case is handled by external hand-written asm in
      arch/x86/lib/getuser.S that doesn't have either of these issues.
      
      There were two independent bugs in __get_user_asm_u64():
      
       - it still did the STAC/CLAC user space access marking, even though
         that is now done by the wrapper macros, see commit 11f1a4b9
         ("x86: reorganize SMAP handling in user space accesses").
      
         This didn't result in a semantic error, it just means that the
         inlined optimized version was hugely less efficient than the
         allegedly slower standard version, since the CLAC/STAC overhead is
         quite high on modern Intel CPU's.
      
       - the double register %eax/%edx was marked as an output, but the %eax
         part of it was touched early in the asm, and could thus clobber other
         inputs to the asm that gcc didn't expect it to touch.
      
         In particular, that meant that the generated code could look like
         this:
      
              mov    (%eax),%eax
              mov    0x4(%eax),%edx
      
         where the load of %edx obviously was _supposed_ to be from the 32-bit
         word that followed the source of %eax, but because %eax was
         overwritten by the first instruction, the source of %edx was
         basically random garbage.
      
      The fixes are trivial: remove the extraneous STAC/CLAC entries, and mark
      the 64-bit output as early-clobber to let gcc know that no inputs should
      alias with the output register.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Benjamin LaHaise <bcrl@kvack.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: stable@kernel.org   # v4.8+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      33c9e972