Skip to content
  1. Aug 06, 2014
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · f4f142ed
      Linus Torvalds authored
      Pull randomness updates from Ted Ts'o:
       "Cleanups and bug fixes to /dev/random, add a new getrandom(2) system
        call, which is a superset of OpenBSD's getentropy(2) call, for use
        with userspace crypto libraries such as LibreSSL.
      
        Also add the ability to have a kernel thread to pull entropy from
        hardware rng devices into /dev/random"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        hwrng: Pass entropy to add_hwgenerator_randomness() in bits, not bytes
        random: limit the contribution of the hw rng to at most half
        random: introduce getrandom(2) system call
        hw_random: fix sparse warning (NULL vs 0 for pointer)
        random: use registers from interrupted code for CPU's w/o a cycle counter
        hwrng: add per-device entropy derating
        hwrng: create filler thread
        random: add_hwgenerator_randomness() for feeding entropy from devices
        random: use an improved fast_mix() function
        random: clean up interrupt entropy accounting for archs w/o cycle counters
        random: only update the last_pulled time if we actually transferred entropy
        random: remove unneeded hash of a portion of the entropy pool
        random: always update the entropy pool under the spinlock
      f4f142ed
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · bb2cbf5e
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "In this release:
      
         - PKCS#7 parser for the key management subsystem from David Howells
         - appoint Kees Cook as seccomp maintainer
         - bugfixes and general maintenance across the subsystem"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (94 commits)
        X.509: Need to export x509_request_asymmetric_key()
        netlabel: shorter names for the NetLabel catmap funcs/structs
        netlabel: fix the catmap walking functions
        netlabel: fix the horribly broken catmap functions
        netlabel: fix a problem when setting bits below the previously lowest bit
        PKCS#7: X.509 certificate issuer and subject are mandatory fields in the ASN.1
        tpm: simplify code by using %*phN specifier
        tpm: Provide a generic means to override the chip returned timeouts
        tpm: missing tpm_chip_put in tpm_get_random()
        tpm: Properly clean sysfs entries in error path
        tpm: Add missing tpm_do_selftest to ST33 I2C driver
        PKCS#7: Use x509_request_asymmetric_key()
        Revert "selinux: fix the default socket labeling in sock_graft()"
        X.509: x509_request_asymmetric_keys() doesn't need string length arguments
        PKCS#7: fix sparse non static symbol warning
        KEYS: revert encrypted key change
        ima: add support for measuring and appraising firmware
        firmware_class: perform new LSM checks
        security: introduce kernel_fw_from_file hook
        PKCS#7: Missing inclusion of linux/err.h
        ...
      bb2cbf5e
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e7fda6c4
      Linus Torvalds authored
      Pull timer and time updates from Thomas Gleixner:
       "A rather large update of timers, timekeeping & co
      
         - Core timekeeping code is year-2038 safe now for 32bit machines.
           Now we just need to fix all in kernel users and the gazillion of
           user space interfaces which rely on timespec/timeval :)
      
         - Better cache layout for the timekeeping internal data structures.
      
         - Proper nanosecond based interfaces for in kernel users.
      
         - Tree wide cleanup of code which wants nanoseconds but does hoops
           and loops to convert back and forth from timespecs.  Some of it
           definitely belongs into the ugly code museum.
      
         - Consolidation of the timekeeping interface zoo.
      
         - A fast NMI safe accessor to clock monotonic for tracing.  This is a
           long standing request to support correlated user/kernel space
           traces.  With proper NTP frequency correction it's also suitable
           for correlation of traces ac...
      e7fda6c4
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 08d69a25
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Nothing spectacular from the irq department this time:
         - overhaul of the crossbar chip driver
         - overhaul of the spear shirq chip driver
         - support for the atmel-aic chip
         - code move from arch to drivers
         - the usual tiny fixlets
         - two reverts worth to mention which undo the too simple attempt of
           supporting wakeup interrupts on shared interrupt lines"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
        Revert "irq: Warn when shared interrupts do not match on NO_SUSPEND"
        Revert "PM / sleep / irq: Do not suspend wakeup interrupts"
        irq: Warn when shared interrupts do not match on NO_SUSPEND
        irqchip: atmel-aic: Define irq fixups for atmel SoCs
        irqchip: atmel-aic: Implement RTC irq fixup
        irqchip: atmel-aic: Add irq fixup infrastructure
        irqchip: atmel-aic: Add atmel AIC/AIC5 drivers
        irqchip: atmel-aic: Move binding doc to interrupt-controller directory
        genirq: generic chip: Export irq_map_generic_chip function
        PM / sleep / irq: Do not suspend wakeup interrupts
        irqchip: or1k-pic: Migrate from arch/openrisc/
        irqchip: crossbar: Allow for quirky hardware with direct hardwiring of GIC
        documentation: dt: omap: crossbar: Add description for interrupt consumer
        irqchip: crossbar: Introduce centralized check for crossbar write
        irqchip: crossbar: Introduce ti, max-crossbar-sources to identify valid crossbar mapping
        irqchip: crossbar: Add kerneldoc for crossbar_domain_unmap callback
        irqchip: crossbar: Set cb pointer to null in case of error
        irqchip: crossbar: Change the goto naming
        irqchip: crossbar: Return proper error value
        irqchip: crossbar: Fix kerneldoc warning
        ...
      08d69a25
    • Thomas Gleixner's avatar
      x86: MCE: Add raw_lock conversion again · ed5c41d3
      Thomas Gleixner authored
      Commit ea431643 ("x86/mce: Fix CMCI preemption bugs") breaks RT by
      the completely unrelated conversion of the cmci_discover_lock to a
      regular (non raw) spinlock.  This lock was annotated in commit
      59d958d2
      
       ("locking, x86: mce: Annotate cmci_discover_lock as raw")
      with a proper explanation why.
      
      The argument for converting the lock back to a regular spinlock was:
      
       - it does percpu ops without disabling preemption. Preemption is not
         disabled due to the mistaken use of a raw spinlock.
      
      Which is complete nonsense.  The raw_spinlock is disabling preemption in
      the same way as a regular spinlock.  In mainline spinlock maps to
      raw_spinlock, in RT spinlock becomes a "sleeping" lock.
      
      raw_spinlock has on RT exactly the same semantics as in mainline.  And
      because this lock is taken in non preemptible context it must be raw on
      RT.
      
      Undo the locking brainfart.
      
      Reported-by: default avatarClark Williams <williams@redhat.com>
      Reported-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed5c41d3
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · f4d33337
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       - removal of sn9c102.  This device driver was replaced a long time ago
         by gspca
       - solo6x10 and go7007 webcam drivers moved from staging into
         mainstream.  They were waiting for an API to allow setting the image
         detection matrix
       - SDR drivers moved from staging into mainstream: sdr-msi3101 (renamed
         as msi2500) and rtl2832
       - added SDR driver for airspy
       - added demux driver: si2165
       - rework at several RC subsystem, making the code for RC-5 SZ variant
         to be added at the standard RC5 decoder
       - added decoder for the XMP IR protocol
       - tuner driver moved from staging into mainstream: msi3101 (renamed as
         msi001)
       - added documentation for some additional SDR pixfmt
       - some device tree bindings documented
       - added support for exynos3250 at s5p-jpeg
       - remove the obsolete, unmaintained and broken mx1_camera driver
       - added support for remote controllers at au0828 driver
       - added a RC driver: sunxi-cir
       - several driver fixes, enhancements and cleanups.
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (455 commits)
        [media] cx23885: fix UNSET/TUNER_ABSENT confusion
        [media] coda: fix build error by making reset control optional
        [media] radio-miropcm20: fix sparse NULL pointer warning
        [media] MAINTAINERS: Update go7007 pattern
        [media] MAINTAINERS: Update solo6x10 patterns
        [media] media: atmel-isi: add primary DT support
        [media] media: atmel-isi: convert the pdata from pointer to structure
        [media] media: atmel-isi: add v4l2 async probe support
        [media] rcar_vin: add devicetree support
        [media] media: pxa_camera device-tree support
        [media] media: mt9m111: add device-tree suppport
        [media] soc_camera: add support for dt binding soc_camera drivers
        [media] media: soc_camera: pxa_camera documentation device-tree support
        [media] media: mt9m111: add device-tree documentation
        [media] s5p-mfc: remove unnecessary calling to function video_devdata()
        [media] s5p-jpeg: add chroma subsampling adjustment for Exynos3250
        [media] s5p-jpeg: Prevent erroneous downscaling for Exynos3250 SoC
        [media] s5p-jpeg: Assure proper crop rectangle initialization
        [media] s5p-jpeg: fix g_selection op
        [media] s5p-jpeg: Adjust jpeg_bound_align_image to Exynos3250 needs
        ...
      f4d33337
    • Linus Torvalds's avatar
      Merge tag 'regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 91c2ff77
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "A couple of nice new features this month, the ability to map
        regulators in order to allow voltage control by external coprocessors
        is something people have been asking for for a long time.
      
         - improved support for switch only "regulators", allowing current
           state to be read from the parent regulator but no setting.
      
         - support for obtaining the register access method used to set
           voltages, for use in systems which can offload control of this to a
           coprocessor (typically for DVFS).
      
         - support for Active-Semi AC8846, Dialog DA9211 and Texas Instruments
           TPS65917"
      
      * tag 'regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (58 commits)
        regulator: act8865: fix build when OF is not enabled
        regulator: act8865: add act8846 to DT binding documentation
        regulator: act8865: add support for act8846
        regulator: act8865: prepare support for other act88xx devices
        regulator: act8865: set correct number of regulators in pdata
        regulator: act8865: Remove error variable in act8865_pmic_probe
        regulator: act8865: fix parsing of platform data
        regulator: tps65090: Set voltage for fixed regulators
        regulator: core: Allow to get voltage count and list from parent
        regulator: core: Get voltage from parent if not available
        regulator: Add missing statics and inlines for stub functions
        regulator: lp872x: Don't set constraints within the regulator driver
        regmap: Fix return code for stub regmap_get_device()
        regulator: s2mps11: Update module description and Kconfig to add S2MPU02 support
        regulator: Add helpers for low-level register access
        regmap: Allow regmap_get_device() to be used by modules
        regmap: Add regmap_get_device
        regulator: da9211: Remove unnecessary devm_regulator_unregister() calls
        regulator: Add DT bindings for tps65218 PMIC regulators.
        regulator: da9211: new regulator driver
        ...
      91c2ff77
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 1325b655
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "A quiet release, more bug fixes than anything else.  A few things do
        stand out though:
      
         - updates to several drivers to move towards the standard GPIO chip
           select handling in the core.
         - DMA support for the SH MSIOF driver.
         - support for Rockchip SPI controllers (their first mainline
           submission)"
      
      * tag 'spi-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (64 commits)
        spi: davinci: use spi_device.cs_gpio to store gpio cs per spi device
        spi: davinci: add support to configure gpio cs through dt
        spi/pl022: Explicitly truncate large bitmask
        spi/atmel: Fix pointer to int conversion warnings on 64 bit builds
        spi: davinci: fix to support more than 2 chip selects
        spi: topcliff-pch: don't hardcode PCI slot to get DMA device
        spi: orion: fix incorrect handling of cell-index DT property
        spi: orion: Fix error return code in orion_spi_probe()
        spi/rockchip: fix error return code in rockchip_spi_probe()
        spi/rockchip: remove redundant dev_err call in rockchip_spi_probe()
        spi/rockchip: remove duplicated include from spi-rockchip.c
        ARM: dts: fix the chip select gpios definition in the SPI nodes
        spi: s3c64xx: Update binding documentation
        spi: s3c64xx: use the generic SPI "cs-gpios" property
        spi: s3c64xx: Revert "spi: s3c64xx: Added provision for dedicated cs pin"
        spi: atmel: Use dmaengine_prep_slave_sg() API
        spi: topcliff-pch: Update error messages for dmaengine_prep_slave_sg() API
        spi: sh-msiof: Use correct device for DMA mapping with IOMMU
        spi: sh-msiof: Handle dmaengine_prep_slave_single() failures gracefully
        spi: rspi: Handle dmaengine_prep_slave_sg() failures gracefully
        ...
      1325b655
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · dc7aafba
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
       "This time with:
      
         - support for the generic PCI device alias code in x86 IOMMU drivers
      
         - a new sysfs interface for IOMMUs
      
         - preparations for hotplug support in the Intel IOMMU driver
      
         - change the AMD IOMMUv2 driver to not hold references to core data
           structures like mm_struct or task_struct.  Rely on mmu_notifers
           instead.
      
         - removal of the OMAP IOVMM interface, all users of it are converted
           to DMA-API now
      
         - make the struct iommu_ops const everywhere
      
         - initial PCI support for the ARM SMMU driver
      
         - there is now a generic device tree binding documented for ARM
           IOMMUs
      
         - various fixes and cleanups all over the place
      
        Also included are some changes to the OMAP code, which are acked by
        the maintainer"
      
      * tag 'iommu-updates-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (67 commits)
        devicetree: Add generic IOMMU device tree bindings
        iommu/vt-d: Fix race setting IRQ CPU affinity while freeing IRQ
        iommu/amd: Fix 2 typos in comments
        iommu/amd: Fix device_state reference counting
        iommu/amd: Remove change_pte mmu_notifier call-back
        iommu/amd: Don't set pasid_state->mm to NULL in unbind_pasid
        iommu/exynos: Select ARM_DMA_USE_IOMMU
        iommu/vt-d: Exclude devices using RMRRs from IOMMU API domains
        iommu/omap: Remove platform data da_start and da_end fields
        ARM: omap: Don't set iommu pdata da_start and da_end fields
        iommu/omap: Remove virtual memory manager
        iommu/vt-d: Fix issue in computing domain's iommu_snooping flag
        iommu/vt-d: Introduce helper function iova_size() to improve code readability
        iommu/vt-d: Introduce helper domain_pfn_within_range() to simplify code
        iommu/vt-d: Simplify intel_unmap_sg() and kill duplicated code
        iommu/vt-d: Change iommu_enable/disable_translation to return void
        iommu/vt-d: Simplify include/linux/dmar.h
        iommu/vt-d: Avoid freeing virtual machine domain in free_dmar_iommu()
        iommu/vt-d: Fix possible invalid memory access caused by free_dmar_iommu()
        iommu/vt-d: Allocate dynamic domain id for virtual domains only
        ...
      dc7aafba
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 161d2e0a
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "Notable changes:
      
         - Heiko Schocher provided a driver for TI TMP103.
         - Kamil Debski provided a driver for pwm-controlled fans.
         - Neelesh Gupta provided a driver for power, fan rpm, voltage and
           temperature reporting on powerpc/powernv systems.
         - Scott Kanowitz provided a driver supporting Lattice's POWR1220
           power manager IC.
         - Richard Zhu provided a pmbus front-end driver for TPS40422.
         - Frans Klaver added support for TMP112 to the lm75 driver.
         - Johannes Pointner added support for EPCOS B57330V2103 to the
           ntc_thermistor driver.
         - Guenter Roeck added support for TMP441 and TMP442 to the tmp421
           driver.
         - Axel Lin converted several drivers to the new hwmon API (36 of
           them, if I counted correctly), and cleaned up many of the drivers
           along the way.
      
        There are also a number of patches fixing bugs discovered while
        testing Axel's changes"
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (88 commits)
        hwmon: (g762) Use of_property_read_u32 at appropriate place
        hwmon: (sis5595) Prevent overflow problem when writing large limits
        hwmon: (gpio-fan) Prevent overflow problem when writing large limits
        hwmon: (ibmpowernv) Use of_property_read_u32 at appropriate place
        hwmon: (lm85) Convert to devm_hwmon_device_register_with_groups
        hwmon: (lm85) Avoid forward declaration
        hwmon: (lm78) Convert to devm_hwmon_device_register_with_groups
        hwmon: (max6697) Use of_property_read_bool at appropriate places
        hwmon: (pwm-fan) Make SENSORS_PWM_FAN depend on OF
        hwmon: (pwm-fan) Remove duplicate dev_set_drvdata call
        hwmon: (nct6775) Remove num_attr_groups from struct nct6775_data
        hwmon: (nct6775) Update module description and Kconfig for NCT6106D and NCT6791D
        hwmon: (adt7411) Convert to devm_hwmon_device_register_with_groups
        hwmon: (g762) Convert to hwmon_device_register_with_groups
        hwmon: (emc2103) Convert to devm_hwmon_device_register_with_groups
        hwmon: (smsc47m1) Avoid forward declaration
        hwmon: (smsc47m192) Convert to devm_hwmon_device_register_with_groups
        hwmon: (smsc47m192) Avoid forward declaration
        hwmon: (max1668) Make max1668_addr_list array const
        hwmon: (max6639) Make normal_i2c array const
        ...
      161d2e0a
    • Stephen Boyd's avatar
      hwrng: Pass entropy to add_hwgenerator_randomness() in bits, not bytes · e02b8765
      Stephen Boyd authored
      rng_get_data() returns the number of bytes read from the hardware.
      The entropy argument to add_hwgenerator_randomness() is passed
      directly to credit_entropy_bits() so we should be passing the
      number of bits, not bytes here.
      
      Fixes: be4000bc
      
       "hwrng: create filler thread"
      Acked-by: default avatarTorsten Duwe <duwe@suse.de>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      e02b8765
    • Theodore Ts'o's avatar
      random: limit the contribution of the hw rng to at most half · 48d6be95
      Theodore Ts'o authored
      
      
      For people who don't trust a hardware RNG which can not be audited,
      the changes to add support for RDSEED can be troubling since 97% or
      more of the entropy will be contributed from the in-CPU hardware RNG.
      
      We now have a in-kernel khwrngd, so for those people who do want to
      implicitly trust the CPU-based system, we could create an arch-rng
      hw_random driver, and allow khwrng refill the entropy pool.  This
      allows system administrator whether or not they trust the CPU (I
      assume the NSA will trust RDRAND/RDSEED implicitly :-), and if so,
      what level of entropy derating they want to use.
      
      The reason why this is a really good idea is that if different people
      use different levels of entropy derating, it will make it much more
      difficult to design a backdoor'ed hwrng that can be generally
      exploited in terms of the output of /dev/random when different attack
      targets are using differing levels of entropy derating.
      
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      48d6be95
    • Theodore Ts'o's avatar
      random: introduce getrandom(2) system call · c6e9d6f3
      Theodore Ts'o authored
      
      
      The getrandom(2) system call was requested by the LibreSSL Portable
      developers.  It is analoguous to the getentropy(2) system call in
      OpenBSD.
      
      The rationale of this system call is to provide resiliance against
      file descriptor exhaustion attacks, where the attacker consumes all
      available file descriptors, forcing the use of the fallback code where
      /dev/[u]random is not available.  Since the fallback code is often not
      well-tested, it is better to eliminate this potential failure mode
      entirely.
      
      The other feature provided by this new system call is the ability to
      request randomness from the /dev/urandom entropy pool, but to block
      until at least 128 bits of entropy has been accumulated in the
      /dev/urandom entropy pool.  Historically, the emphasis in the
      /dev/urandom development has been to ensure that urandom pool is
      initialized as quickly as possible after system boot, and preferably
      before the init scripts start execution.
      
      This is because changing /dev/urandom reads to block represents an
      interface change that could potentially break userspace which is not
      acceptable.  In practice, on most x86 desktop and server systems, in
      general the entropy pool can be initialized before it is needed (and
      in modern kernels, we will printk a warning message if not).  However,
      on an embedded system, this may not be the case.  And so with this new
      interface, we can provide the functionality of blocking until the
      urandom pool has been initialized.  Any userspace program which uses
      this new functionality must take care to assure that if it is used
      during the boot process, that it will not cause the init scripts or
      other portions of the system startup to hang indefinitely.
      
      SYNOPSIS
      	#include <linux/random.h>
      
      	int getrandom(void *buf, size_t buflen, unsigned int flags);
      
      DESCRIPTION
      	The system call getrandom() fills the buffer pointed to by buf
      	with up to buflen random bytes which can be used to seed user
      	space random number generators (i.e., DRBG's) or for other
      	cryptographic uses.  It should not be used for Monte Carlo
      	simulations or other programs/algorithms which are doing
      	probabilistic sampling.
      
      	If the GRND_RANDOM flags bit is set, then draw from the
      	/dev/random pool instead of the /dev/urandom pool.  The
      	/dev/random pool is limited based on the entropy that can be
      	obtained from environmental noise, so if there is insufficient
      	entropy, the requested number of bytes may not be returned.
      	If there is no entropy available at all, getrandom(2) will
      	either block, or return an error with errno set to EAGAIN if
      	the GRND_NONBLOCK bit is set in flags.
      
      	If the GRND_RANDOM bit is not set, then the /dev/urandom pool
      	will be used.  Unlike using read(2) to fetch data from
      	/dev/urandom, if the urandom pool has not been sufficiently
      	initialized, getrandom(2) will block (or return -1 with the
      	errno set to EAGAIN if the GRND_NONBLOCK bit is set in flags).
      
      	The getentropy(2) system call in OpenBSD can be emulated using
      	the following function:
      
                  int getentropy(void *buf, size_t buflen)
                  {
                          int     ret;
      
                          if (buflen > 256)
                                  goto failure;
                          ret = getrandom(buf, buflen, 0);
                          if (ret < 0)
                                  return ret;
                          if (ret == buflen)
                                  return 0;
                  failure:
                          errno = EIO;
                          return -1;
                  }
      
      RETURN VALUE
             On success, the number of bytes that was filled in the buf is
             returned.  This may not be all the bytes requested by the
             caller via buflen if insufficient entropy was present in the
             /dev/random pool, or if the system call was interrupted by a
             signal.
      
             On error, -1 is returned, and errno is set appropriately.
      
      ERRORS
      	EINVAL		An invalid flag was passed to getrandom(2)
      
      	EFAULT		buf is outside the accessible address space.
      
      	EAGAIN		The requested entropy was not available, and
      			getentropy(2) would have blocked if the
      			GRND_NONBLOCK flag was not set.
      
      	EINTR		While blocked waiting for entropy, the call was
      			interrupted by a signal handler; see the description
      			of how interrupted read(2) calls on "slow" devices
      			are handled with and without the SA_RESTART flag
      			in the signal(7) man page.
      
      NOTES
      	For small requests (buflen <= 256) getrandom(2) will not
      	return EINTR when reading from the urandom pool once the
      	entropy pool has been initialized, and it will return all of
      	the bytes that have been requested.  This is the recommended
      	way to use getrandom(2), and is designed for compatibility
      	with OpenBSD's getentropy() system call.
      
      	However, if you are using GRND_RANDOM, then getrandom(2) may
      	block until the entropy accounting determines that sufficient
      	environmental noise has been gathered such that getrandom(2)
      	will be operating as a NRBG instead of a DRBG for those people
      	who are working in the NIST SP 800-90 regime.  Since it may
      	block for a long time, these guarantees do *not* apply.  The
      	user may want to interrupt a hanging process using a signal,
      	so blocking until all of the requested bytes are returned
      	would be unfriendly.
      
      	For this reason, the user of getrandom(2) MUST always check
      	the return value, in case it returns some error, or if fewer
      	bytes than requested was returned.  In the case of
      	!GRND_RANDOM and small request, the latter should never
      	happen, but the careful userspace code (and all crypto code
      	should be careful) should check for this anyway!
      
      	Finally, unless you are doing long-term key generation (and
      	perhaps not even then), you probably shouldn't be using
      	GRND_RANDOM.  The cryptographic algorithms used for
      	/dev/urandom are quite conservative, and so should be
      	sufficient for all purposes.  The disadvantage of GRND_RANDOM
      	is that it can block, and the increased complexity required to
      	deal with partially fulfilled getrandom(2) requests.
      
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Reviewed-by: default avatarZach Brown <zab@zabbo.net>
      c6e9d6f3
    • Mark Brown's avatar
      Merge branch 'for-next' of... · f955c8ba
      Mark Brown authored
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into regulator-next
      f955c8ba
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/topic/tps65217',... · ed4bf4f5
      Mark Brown authored
      Merge remote-tracking branches 'regulator/topic/tps65217', 'regulator/topic/tps65218', 'regulator/topic/tps6586x' and 'regulator/topic/twl' into regulator-next
      ed4bf4f5
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/topic/s2mps11',... · f71f2627
      Mark Brown authored
      Merge remote-tracking branches 'regulator/topic/s2mps11', 'regulator/topic/s2mpu02', 'regulator/topic/s5m8767' and 'regulator/topic/tps65090' into regulator-next
      f71f2627
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/topic/lp8755',... · d5b5d9d4
      Mark Brown authored
      Merge remote-tracking branches 'regulator/topic/lp8755', 'regulator/topic/ltc3589', 'regulator/topic/max8952', 'regulator/topic/mc13xxx' and 'regulator/topic/palmas' into regulator-next
      d5b5d9d4
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/topic/da9211',... · a627506a
      Mark Brown authored
      Merge remote-tracking branches 'regulator/topic/da9211', 'regulator/topic/getreg', 'regulator/topic/gpio' and 'regulator/topic/lp872x' into regulator-next
      a627506a
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/topic/88pm800',... · 862f9f84
      Mark Brown authored
      Merge remote-tracking branches 'regulator/topic/88pm800', 'regulator/topic/ab8500', 'regulator/topic/act8865', 'regulator/topic/as3722' and 'regulator/topic/bcm590xx' into regulator-next
      862f9f84
    • Mark Brown's avatar
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/fix/act8865',... · 9950756d
      Mark Brown authored
      Merge remote-tracking branches 'regulator/fix/act8865', 'regulator/fix/arizona' and 'regulator/fix/tps65218' into regulator-linus
      9950756d
    • Mark Brown's avatar
      Merge remote-tracking branch 'regulator/fix/act8865' into regulator-act8865 · 7cad4c8f
      Mark Brown authored
      Conflicts:
      	drivers/regulator/act8865-regulator.c
      7cad4c8f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · c489d98c
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "Included in this update:
      
         - perf updates from Will Deacon:
      
           The main changes are callchain stability fixes from Jean Pihet and
           event mapping and PMU name rework from Mark Rutland
      
           The latter is preparatory work for enabling some code re-use with
           arm64 in the future.
      
         - updates for nommu from Uwe Kleine-König:
      
           Two different fixes for the same problem making some ARM nommu
           configurations not boot since 3.6-rc1.  The problem is that
           user_addr_max returned the biggest available RAM address which
           makes some copy_from_user variants fail to read from XIP memory.
      
         - deprecate legacy OMAP DMA API, in preparation for it's removal.
      
           The popular drivers have been converted over, leaving a very small
           number of rarely used drivers, which hopefully can be converted
           during the next cycle with a bit more visibility (and hopefully
           people popping out of the woodwork to help test)
      
         - more tweaks for BE systems, particularly with the kernel image
           format.  In connection with this, I've cleaned up the way we
           generate the linker script for the decompressor.
      
         - removal of hard-coded assumptions of the kernel stack size, making
           everywhere depend on the value of THREAD_SIZE_ORDER.
      
         - MCPM updates from Nicolas Pitre.
      
         - Make it easier for proper CPU part number checks (which should
           always include the vendor field).
      
         - Assembly code optimisation - use the "bx" instruction when
           returning from a function on ARMv6+ rather than "mov pc, reg".
      
         - Save the last kernel misaligned fault location and report it via
           the procfs alignment file.
      
         - Clean up the way we create the initial stack frame, which is a
           repeated pattern in several different locations.
      
         - Support for 8-byte get_user(), needed for some DRM implementations.
      
         - mcs locking from Will Deacon.
      
         - Save and restore a few more Cortex-A9 registers (for errata
           workarounds)
      
         - Fix various aspects of the SWP emulation, and the ELF hwcap for the
           SWP instruction.
      
         - Update LPAE logic for pte_write and pmd_write to make it more
           correct.
      
         - Support for Broadcom Brahma15 CPU cores.
      
         - ARM assembly crypto updates from Ard Biesheuvel"
      
      * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (53 commits)
        ARM: add comments to the early page table remap code
        ARM: 8122/1: smp_scu: enable SCU standby support
        ARM: 8121/1: smp_scu: use macro for SCU enable bit
        ARM: 8120/1: crypto: sha512: add ARM NEON implementation
        ARM: 8119/1: crypto: sha1: add ARM NEON implementation
        ARM: 8118/1: crypto: sha1/make use of common SHA-1 structures
        ARM: 8113/1: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>
        ARM: 8111/1: Enable erratum 798181 for Broadcom Brahma-B15
        ARM: 8110/1: do CPU-specific init for Broadcom Brahma15 cores
        ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE
        ARM: 8108/1: mm: Introduce {pte,pmd}_isset and {pte,pmd}_isclear
        ARM: hwcap: disable HWCAP_SWP if the CPU advertises it has exclusives
        ARM: SWP emulation: only initialise on ARMv7 CPUs
        ARM: SWP emulation: always enable when SMP is enabled
        ARM: 8103/1: save/restore Cortex-A9 CP15 registers on suspend/resume
        ARM: 8098/1: mcs lock: implement wfe-based polling for MCS locking
        ARM: 8091/2: add get_user() support for 8 byte types
        ARM: 8097/1: unistd.h: relocate comments back to place
        ARM: 8096/1: Describe required sort order for textofs-y (TEXT_OFFSET)
        ARM: 8090/1: add revision info for PL310 errata 588369 and 727915
        ...
      c489d98c
    • Beniamino Galvani's avatar
      regulator: act8865: fix build when OF is not enabled · 34e0247f
      Beniamino Galvani authored
      
      
      act8846_matches and act8865_matches are defined only when OF is
      enabled. Move references to them to the act8865_pdata_from_dt()
      function to avoid a build error when OF is disabled.
      
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      34e0247f
    • Beniamino Galvani's avatar
      regulator: act8865: add act8846 to DT binding documentation · 0b8eebc0
      Beniamino Galvani authored
      
      
      This patch adds a new "active-semi,act8846" compatible string and a
      list of supported regulator names to the devicetree binding
      documentation for Active-Semi PMUs.
      
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Reviewed-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      0b8eebc0
    • Beniamino Galvani's avatar
      regulator: act8865: add support for act8846 · ac0c0ea8
      Beniamino Galvani authored
      
      
      Add device id and definition of registers and regulators to support
      the act8846 PMU.
      
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: default avatarWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      ac0c0ea8
    • Beniamino Galvani's avatar
      regulator: act8865: prepare support for other act88xx devices · 50a03e35
      Beniamino Galvani authored
      This patch prepares support for other devices in the act88xx family of
      PMUs manufactured by Active-Semi.
      
      http://www.active-semi.com/products/power-management-units/act88xx/
      
      
      
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: default avatarWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      50a03e35
    • Beniamino Galvani's avatar
      regulator: act8865: set correct number of regulators in pdata · bbb83f38
      Beniamino Galvani authored
      
      
      act8865_pdata_from_dt() populates the array pdata->regulators with all
      the regulators and then assigns the field init_data only for the ones
      actually found in the DT.
      
      The patch changes the value assigned to pdata->num_regulators to match
      the size of the array.
      
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Tested-by: default avatarWenyou Yang <wenyou.yang@atmel.com>
      Reviewed-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      bbb83f38
    • Axel Lin's avatar
      regulator: act8865: Remove error variable in act8865_pmic_probe · 40d3bc19
      Axel Lin authored
      
      
      Simply use ret variable instead.
      Also remove unneeded initialize for ret variable.
      
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      40d3bc19
    • Beniamino Galvani's avatar
      regulator: act8865: fix parsing of platform data · 48a1e1b5
      Beniamino Galvani authored
      
      
      The driver loops through all available regulators (ACT8865_REG_NUM)
      and accesses pdata->regulators[i].platform_data without checking the
      actual value of num_regulators in platform data, potentially causing a
      invalid memory access.
      
      Fix this and look up the regulator init_data by id in platform data.
      
      Signed-off-by: default avatarBeniamino Galvani <b.galvani@gmail.com>
      Tested-by Wenyou.Yang <wenyou.yang@atmel.com>
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      48a1e1b5
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · f67d251a
      Linus Torvalds authored
      Pull m68knommu fixes from Greg Ungerer:
       "Just a couple of small fixes.  Fix definition of page_to_phys() and
        remove unecesary prototype of kobjsize()"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: Remove unnecessary prototype for kobjsize()
        m68knommu: Correct page_to_phys when PAGE_OFFSET is non-zero.
      f67d251a
  2. Aug 05, 2014
    • James Morris's avatar
      Merge tag 'keys-next-20140805' of... · 478d0855
      James Morris authored
      Merge tag 'keys-next-20140805' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs into next
      478d0855
    • Russell King's avatar
      Merge branch 'devel-stable' into for-next · f15bdfe4
      Russell King authored
      Conflicts:
      	arch/arm/kernel/perf_event_cpu.c
      f15bdfe4
    • Russell King's avatar
      c89c3a6a
    • Russell King's avatar
      Merge branches 'fixes' and 'misc' into for-next · 71095615
      Russell King authored
      Conflicts:
      	arch/arm/kernel/iwmmxt.S
      	arch/arm/mm/cache-l2x0.c
      	arch/arm/mm/mmu.c
      71095615
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 8e099d1e
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Bug fixes and clean ups for the 3.17 merge window"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: fix ext4_discard_allocated_blocks() if we can't allocate the pa struct
        ext4: fix COLLAPSE RANGE test for bigalloc file systems
        ext4: check inline directory before converting
        ext4: fix incorrect locking in move_extent_per_page
        ext4: use correct depth value
        ext4: add i_data_sem sanity check
        ext4: fix wrong size computation in ext4_mb_normalize_request()
        ext4: make ext4_has_inline_data() as a inline function
        ext4: remove readpage() check in ext4_mmap_file()
        ext4: fix punch hole on files with indirect mapping
        ext4: remove metadata reservation checks
        ext4: rearrange initialization to fix EXT4FS_DEBUG
      8e099d1e
    • Linus Torvalds's avatar
      Merge tag 'for-f2fs-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · b54ecfb7
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "This series includes patches to:
         - add nobarrier mount option
         - support tmpfile and rename2
         - enhance the fdatasync behavior
         - fix the error path
         - fix the recovery routine
         - refactor a part of the checkpoint procedure
         - reduce some lock contentions"
      
      * tag 'for-f2fs-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (40 commits)
        f2fs: use for_each_set_bit to simplify the code
        f2fs: add f2fs_balance_fs for expand_inode_data
        f2fs: invalidate xattr node page when evict inode
        f2fs: avoid skipping recover_inline_xattr after recover_inline_data
        f2fs: add tracepoint for f2fs_direct_IO
        f2fs: reduce competition among node page writes
        f2fs: fix coding style
        f2fs: remove redundant lines in allocate_data_block
        f2fs: add tracepoint for f2fs_issue_flush
        f2fs: avoid retrying wrong recovery routine when error was occurred
        f2fs: test before set/clear bits
        f2fs: fix wrong condition for unlikely
        f2fs: enable in-place-update for fdatasync
        f2fs: skip unnecessary data writes during fsync
        f2fs: add info of appended or updated data writes
        f2fs: use radix_tree for ino management
        f2fs: add infra for ino management
        f2fs: punch the core function for inode management
        f2fs: add nobarrier mount option
        f2fs: fix to put root inode in error path of fill_super
        ...
      b54ecfb7
    • Linus Torvalds's avatar
      Merge tag 'usb-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · ae9b475e
      Linus Torvalds authored
      Pull USB updates from Greg KH:
       "Here is the big USB driver update for 3.17-rc1.
      
        Loads of gadget driver changes in here, including some big file
        movements to make things easier to manage over time.  There's also the
        usual xhci and uas driver updates, and a handful of other changes in
        here.  The changelog has the full details.
      
        All of these have been in linux-next for a while"
      
      * tag 'usb-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (211 commits)
        USB: devio: fix issue with log flooding
        uas: Log a warning when we cannot use uas because the hcd lacks streams
        uas: Only complain about missing sg if all other checks succeed
        xhci: Add missing checks for xhci_alloc_command failure
        xhci: Rename Asrock P67 pci product-id to EJ168
        xhci: Blacklist using streams on the Etron EJ168 controller
        uas: Limit qdepth to 32 when connected over usb-2
        uwb/whci: use correct structure type name in sizeof
        usb-core bInterval quirk
        USB: serial: ftdi_sio: Add support for new Xsens devices
        USB: serial: ftdi_sio: Annotate the current Xsens PID assignments
        usb: chipidea: debug: fix sparse non static symbol warnings
        usb: ci_hdrc_imx doc: fsl,usbphy is required
        usb: ci_hdrc_imx: Return -EINVAL for missing USB PHY
        usb: core: allow zero packet flag for interrupt urbs
        usb: lvstest: Fix sparse warnings generated by kbuild test bot
        USB: core: hcd-pci: free IRQ before disabling PCI device when shutting down
        phy: miphy365x: Represent each PHY channel as a DT subnode
        phy: miphy365x: Provide support for the MiPHY356x Generic PHY
        phy: miphy365x: Add Device Tree bindings for the MiPHY365x
        ...
      ae9b475e
    • Linus Torvalds's avatar
      Merge tag 'tty-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 79eb238c
      Linus Torvalds authored
      Pull tty / serial driver update from Greg KH:
       "Here's the big tty / serial driver update for 3.17-rc1.
      
        Nothing major, just a number of fixes and new features for different
        serial drivers, and some more tty core fixes and documentation of the
        tty locks.
      
        All of these have been in linux-next for a while"
      
      * tag 'tty-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (82 commits)
        tty/n_gsm.c: fix a memory leak in gsmld_open
        pch_uart: don't hardcode PCI slot to get DMA device
        tty: n_gsm, use setup_timer
        Revert "ARC: [arcfpga] stdout-path now suffices for earlycon/console"
        serial: sc16is7xx: Correct initialization of s->clk
        serial: 8250_dw: Add support for deferred probing
        serial: 8250_dw: Add optional reset control support
        serial: st-asc: Fix overflow in baudrate calculation
        serial: st-asc: Don't call BUG in asc_console_setup()
        tty: serial: msm: Make of_device_id array const
        tty/n_gsm.c: get gsm->num after gsm_activate_mux
        serial/core: Fix too big allocation for attribute member
        drivers/tty/serial: use correct type for dma_map/unmap
        serial: altera_jtaguart: Fix putchar function passed to uart_console_write()
        serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers
        Serial: allow port drivers to have a default attribute group
        tty: kgdb_nmi: Automatically manage tty enable
        serial: altera_jtaguart: Adpot uart_console_write()
        serial: samsung: improve code clarity by defining a variable
        serial: samsung: correct the case and default order in switch
        ...
      79eb238c
    • Linus Torvalds's avatar
      Merge tag 'staging-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 53ee9833
      Linus Torvalds authored
      Pull staging driver updates from Greg KH:
       "Here's the big pull request for the staging driver tree for 3.17-rc1.
      
        Lots of things in here, over 2000 patches, but the best part is this:
         1480 files changed, 39070 insertions(+), 254659 deletions(-)
      
        Thanks to the great work of Kristina Martšenko, 14 different staging
        drivers have been removed from the tree as they were obsolete and no
        one was willing to work on cleaning them up.  Other than the driver
        removals, loads of cleanups are in here (comedi, lustre, etc.) as well
        as the usual IIO driver updates and additions.
      
        All of this has been in the linux-next tree for a while"
      
      * tag 'staging-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (2199 commits)
        staging: comedi: addi_apci_1564: remove diagnostic interrupt support code
        staging: comedi: addi_apci_1564: add subdevice to check diagnostic status
        staging: wlan-ng: coding style problem fix
        staging: wlan-ng: fixing coding style problems
        staging: comedi: ii_pci20kc: request and ioremap memory
        staging: lustre: bitwise vs logical typo
        staging: dgnc: Remove unneeded dgnc_trace.c and dgnc_trace.h
        staging: dgnc: rephrase comment
        staging: comedi: ni_tio: remove some dead code
        staging: rtl8723au: Fix static symbol sparse warning
        staging: rtl8723au: usb_dvobj_init(): Remove unused variable 'pdev_desc'
        staging: rtl8723au: Do not duplicate kernel provided USB macros
        staging: rtl8723au: Remove never set struct pwrctrl_priv.bHWPowerdown
        staging: rtl8723au: Remove two never set variables
        staging: rtl8723au: RSSI_test is never set
        staging:r8190: coding style: Fixed checkpatch reported Error
        staging:r8180: coding style: Fixed too long lines
        staging:r8180: coding style: Fixed commenting style
        staging: lustre: ptlrpc: lproc_ptlrpc.c - fix dereferenceing user space buffer
        staging: lustre: ldlm: ldlm_resource.c - fix dereferenceing user space buffer
        ...
      53ee9833