1. 02 Nov, 2015 5 commits
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.4' of git://git.linaro.org/people/ulf.hansson/mmc · 17a13590
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Add new API to set VCCQ voltage - mmc_regulator_set_vqmmc()
         - Add new ioctl to allow userspace to send multi commands
         - Wait for card busy signalling before starting SDIO requests
         - Remove MMC_CLKGATE
         - Enable tuning for DDR50 mode
         - Some code clean-up/improvements to mmc pwrseq
         - Use highest priority for eMMC restart handler
         - Add DT bindings for eMMC hardware reset support
         - Extend the mmc_send_tuning() API
         - Improve ios show for debugfs
         - A couple of code optimizations
      
        MMC host:
         - Some generic OF improvements
         - Various code clean-ups
         - sirf: Add support for DDR50
         - sunxi: Add support for card busy detection
         - mediatek: Use MMC_CAP_RUNTIME_RESUME
         - mediatek: Add support for eMMC HW-reset
         - mediatek: Add support for HS400
         - dw_mmc: Convert to use the new mmc_regulator_set_vqmmc() API
         - dw_mmc: Add external DMA interface support
         - dw_mmc: Some various improvements
         - dw_mmc-rockchip: MMC tuning with the clock phase framework
         - sdhci: Properly clear IRQs during resume
         - sdhci: Enable tuning for DDR50 mode
         - sdhci-of-esdhc: Use IRQ mode for card detection
         - sdhci-of-esdhc: Support both BE and LE host controller
         - sdhci-pci: Build o2micro support in the same module
         - sdhci-pci: Support for new Intel host controllers
         - sdhci-acpi: Support for new Intel host controllers"
      
      * tag 'mmc-v4.4' of git://git.linaro.org/people/ulf.hansson/mmc: (73 commits)
        mmc: dw_mmc: fix the wrong setting for UHS-DDR50 mode
        mmc: dw_mmc: fix the CardThreshold boundary at CardThrCtl register
        mmc: dw_mmc: NULL dereference in error message
        mmc: pwrseq: Use highest priority for eMMC restart handler
        mmc: mediatek: add HS400 support
        mmc: mmc: extend the mmc_send_tuning()
        mmc: mediatek: add implement of ops->hw_reset()
        mmc: mediatek: fix got GPD checksum error interrupt when data transfer
        mmc: mediatek: change the argument "ddr" to "timing"
        mmc: mediatek: make cmd_ints_mask to const
        mmc: dt-bindings: update Mediatek MMC bindings
        mmc: core: Add DT bindings for eMMC hardware reset support
        mmc: omap_hsmmc: Enable omap_hsmmc for Keystone 2
        mmc: sdhci-acpi: Add more ACPI HIDs for Intel controllers
        mmc: sdhci-pci: Add more PCI IDs for Intel controllers
        arm: lpc18xx_defconfig: remove CONFIG_MMC_DW_IDMAC
        arm: hisi_defconfig: remove CONFIG_MMC_DW_IDMAC
        arm: exynos_defconfig: remove CONFIG_MMC_DW_IDMAC
        arc: axs10x_defconfig: remove CONFIG_MMC_DW_IDMAC
        mips: pistachio_defconfig: remove CONFIG_MMC_DW_IDMAC
        ...
      17a13590
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.4' of... · 66b01996
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       "New driver for MAX31790, added support for TMP75C, as well as cleanups
        and minor improvements in various drivers"
      
      * tag 'hwmon-for-linus-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (fam15h_power) Add max compute unit accumulated power
        hwmon: (fam15h_power) Enable power1_input on AMD Carrizo
        hwmon: (fam15h_power) Refactor attributes for dynamically added
        hwmon: (ina2xx) remove no longer used variable 'kind'
        hwmon: (nct6775) Introduce separate temperature labels for NCT6792 and NCT6793
        hwmon: (nct6775) NCT6791D and NCT6792D have an additional temperature source
        hwmon: (ina2xx) give precedence to DT over checking for platform data.
        hwmon: (ina2xx) convert driver to using regmap
        hwmon: (coretemp) Increase limit of maximum core ID from 32 to 128.
        hwmon: (lm75) Add support for TMP75C
        hwmon: (ibmpowernv) Add OF compatibility table entry
        hwmon: (abx500) drop the use of IRQF_NO_SUSPEND
        hwmon: (max31790) Fix dereference of ERR_PTR
        hwmon: Driver for Maxim MAX31790
      66b01996
    • Linus Torvalds's avatar
      mm: get rid of 'vmalloc_info' from /proc/meminfo · a5ad88ce
      Linus Torvalds authored
      It turns out that at least some versions of glibc end up reading
      /proc/meminfo at every single startup, because glibc wants to know the
      amount of memory the machine has.  And while that's arguably insane,
      it's just how things are.
      
      And it turns out that it's not all that expensive most of the time, but
      the vmalloc information statistics (amount of virtual memory used in the
      vmalloc space, and the biggest remaining chunk) can be rather expensive
      to compute.
      
      The 'get_vmalloc_info()' function actually showed up on my profiles as
      4% of the CPU usage of "make test" in the git source repository, because
      the git tests are lots of very short-lived shell-scripts etc.
      
      It turns out that apparently this same silly vmalloc info gathering
      shows up on the facebook servers too, according to Dave Jones.  So it's
      not just "make test" for git.
      
      We had two patches to just cache the information (one by me, one by
      Ingo) to mitigate this issue, but the whole vmalloc information of of
      rather dubious value to begin with, and people who *actually* want to
      know what the situation is wrt the vmalloc area should just look at the
      much more complete /proc/vmallocinfo instead.
      
      In fact, according to my testing - and perhaps more importantly,
      according to that big search engine in the sky: Google - there is
      nothing out there that actually cares about those two expensive fields:
      VmallocUsed and VmallocChunk.
      
      So let's try to just remove them entirely.  Actually, this just removes
      the computation and reports the numbers as zero for now, just to try to
      be minimally intrusive.
      
      If this breaks anything, we'll obviously have to re-introduce the code
      to compute this all and add the caching patches on top.  But if given
      the option, I'd really prefer to just remove this bad idea entirely
      rather than add even more code to work around our historical mistake
      that likely nobody really cares about.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a5ad88ce
    • Linus Torvalds's avatar
      Merge branch 'fs-file-descriptor-optimization' · 2e002662
      Linus Torvalds authored
      Merge file descriptor allocation speedup.
      
      Eric Dumazet has a test-case for a fairly common network deamon load
      pattern: openign and closing a lot of sockets that each have very little
      work done on them.  It turns out that in that case, the cost of just
      finding the correct file descriptor number can be a dominating factor.
      
      We've long had a trivial optimization for allocating file descriptors
      sequentially, but that optimization ends up being not very effective
      when other file descriptors are being closed concurrently, and the fd
      patterns are not some simple FIFO pattern.  In such cases we ended up
      spending a lot of time just scanning the bitmap of open file descriptors
      in order to find the next file descriptor number to open.
      
      This trivial patch-series mitigates that by simply introducing a
      second-level bitmap of which words in the first bitmap are already fully
      allocated.  That cuts down the cost of scanning by an order of magnitude
      in some pathological (but realistic) cases.
      
      The second patch is an even more trivial patch to avoid unnecessarily
      dirtying the cacheline for the close-on-exec bit array that normally
      ends up being all empty.
      
      * fs-file-descriptor-optimization:
        vfs: conditionally clear close-on-exec flag
        vfs: Fix pathological performance case for __alloc_fd()
      2e002662
    • Linus Torvalds's avatar
      Linux 4.3 · 6a13feb9
      Linus Torvalds authored
      6a13feb9
  2. 01 Nov, 2015 7 commits
    • Linus Torvalds's avatar
      Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 95fc00a4
      Linus Torvalds authored
      Pull memremap fix from Dan Williams:
       "The new memremap() api introduced in the 4.3 cycle to unify/replace
        ioremap_cache() and ioremap_wt() is mishandling the highmem case.
        This patch has received a build success notification from a
        0day-kbuild-robot run and has received an ack from Ard"
      
      From the commit message:
       "The impact of this bug is low for now since the pmem driver is the
        only user of memremap(), but this is important to fix before more
        conversions to memremap arrive in 4.4"
      
      * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        memremap: fix highmem support
      95fc00a4
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ca04d396
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "This set of updates contains:
      
         - Another bugfix for the pathologic vm86 machinery.  Clear
           thread.vm86 on fork to prevent corrupting the parent state.  This
           comes along with an update to the vm86 selftest case
      
         - Fix another corner case in the ioapic setup code which causes a
           boot crash on some oddball systems
      
         - Fix the fallout from the dma allocation consolidation work, which
           leads to a NULL pointer dereference when the allocation code is
           called with a NULL device"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vm86: Set thread.vm86 to NULL on fork/clone
        selftests/x86: Add a fork() to entry_from_vm86 to catch fork bugs
        x86/ioapic: Prevent NULL pointer dereference in setup_ioapic_dest()
        x86/dma-mapping: Fix arch_dma_alloc_attrs() oops with NULL dev
      ca04d396
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f5eab267
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "The last round of minimalistic fixes for clocksource drivers:
      
         - Prevent multiple shutdown of the sh_mtu2 clocksource
      
         - Annotate a bunch of clocksource/schedclock functions with notrace
           to prevent an annoying ftrace recursion issue"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue
        clocksource/drivers/digicolor: Prevent ftrace recursion
        clocksource/drivers/fsl_ftm_timer: Prevent ftrace recursion
        clocksource/drivers/vf_pit_timer: Prevent ftrace recursion
        clocksource/drivers/prima2: Prevent ftrace recursion
        clocksource/drivers/samsung_pwm_timer: Prevent ftrace recursion
        clocksource/drivers/pistachio: Prevent ftrace recursion
        clocksource/drivers/arm_global_timer: Prevent ftrace recursion
      f5eab267
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4bf690d7
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "The last two one-liners for 4.3 from the irqchip space:
      
         - Regression fix for armada SoC which addresses the fallout from the
           set_irq_flags() cleanup
      
         - Add the missing propagation of the irq_set_type() callback to the
           parent interrupt controller of the tegra interrupt chip"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/tegra: Propagate IRQ type setting to parent
        irqchip/armada-370-xp: Fix regression by clearing IRQ_NOAUTOEN
      4bf690d7
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 56ef9db2
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "This should be our final batch of fixes for 4.3:
      
         - A patch from Sudeep Holla that fixes annotation of wakeup sources
           properly, old unused format seems to have spread through copying.
      
         - Two patches from Tony for OMAP.  One dealing with MUSB setup
           problems due to runtime PM being enabled too early on the parent
           device.  The other fixes IRQ numbering for OMAP1"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        usb: musb: omap2430: Fix regression caused by driver core change
        ARM: OMAP1: fix incorrect INT_DMA_LCD
        ARM: dts: fix gpio-keys wakeup-source property
      56ef9db2
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 060b85b0
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is three essential bug fixes for various SCSI parts.
      
        The only affected users are SCSI multi-path via device handler
        (basically all the enterprise) and mvsas users.  The dh bugs are an
        async entanglement in boot resulting in a serious WARN_ON trip and a
        use after free on remove leading to a crash with strict memory
        accounting.  The mvsas bug manifests as a null deref oops but only on
        abort sequences; however, these can commonly occur with SATA attached
        devices, hence the fix"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi_dh: don't try to load a device handler during async probing
        scsi_dh: fix use-after-free when removing scsi device
        mvsas: Fix NULL pointer dereference in mvs_slot_task_free
      060b85b0
    • Linus Torvalds's avatar
      Merge tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md · af7eba01
      Linus Torvalds authored
      Pull md bug fixes from Neil Brown:
       "Two more bug fixes for md.
      
        One bugfix for a list corruption in raid5 because of incorrect
        locking.
      
        Other for possible data corruption when a recovering device is failed,
        removed, and re-added.
      
        Both tagged for -stable"
      
      * tag 'md/4.3-rc7-fixes' of git://neil.brown.name/md:
        Revert "md: allow a partially recovered device to be hot-added to an array."
        md/raid5: fix locking in handle_stripe_clean_event()
      af7eba01
  3. 31 Oct, 2015 18 commits
  4. 30 Oct, 2015 6 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 9b971e77
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Apologies for this being so late, but we've uncovered a few nasty
        issues on arm64 which didn't settle down until yesterday and the fixes
        all look suitable for 4.3.  Of the four patches, three of them are
        Cc'd to stable, with the remaining patch fixing an issue that only
        took effect during the merge window.
      
        Summary:
      
         - Fix corruption in SWP emulation when STXR fails due to contention
         - Fix MMU re-initialisation when resuming from a low-power state
         - Fix stack unwinding code to match what ftrace expects
         - Fix relocation code in the EFI stub when DRAM base is not 2MB aligned"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/efi: do not assume DRAM base is aligned to 2 MB
        Revert "ARM64: unwind: Fix PC calculation"
        arm64: kernel: fix tcr_el1.t0sz restore on systems with extended idmap
        arm64: compat: fix stxr failure case in SWP emulation
      9b971e77
    • Linus Torvalds's avatar
      Merge tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 7c0f488f
      Linus Torvalds authored
      Pull ia64 kcmp syscall from Tony Luck:
       "Missed adding the kcmp() syscall a long time ago.  Now it seems that
        it is essential to build systemd"
      
      * tag 'please-pull-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Wire up kcmp syscall
      7c0f488f
    • Roman Gushchin's avatar
      md/raid5: fix locking in handle_stripe_clean_event() · b8a9d66d
      Roman Gushchin authored
      After commit 566c09c5 ("raid5: relieve lock contention in get_active_stripe()")
      __find_stripe() is called under conf->hash_locks + hash.
      But handle_stripe_clean_event() calls remove_hash() under
      conf->device_lock.
      
      Under some cirscumstances the hash chain can be circuited,
      and we get an infinite loop with disabled interrupts and locked hash
      lock in __find_stripe(). This leads to hard lockup on multiple CPUs
      and following system crash.
      
      I was able to reproduce this behavior on raid6 over 6 ssd disks.
      The devices_handle_discard_safely option should be set to enable trim
      support. The following script was used:
      
      for i in `seq 1 32`; do
          dd if=/dev/zero of=large$i bs=10M count=100 &
      done
      
      neilb: original was against a 3.x kernel.  I forward-ported
        to 4.3-rc.  This verison is suitable for any kernel since
        Commit: 59fc630b ("RAID5: batch adjacent full stripe write")
        (v4.1+).  I'll post a version for earlier kernels to stable.
      Signed-off-by: default avatarRoman Gushchin <klamm@yandex-team.ru>
      Fixes: 566c09c5 ("raid5: relieve lock contention in get_active_stripe()")
      Signed-off-by: default avatarNeilBrown <neilb@suse.com>
      Cc: Shaohua Li <shli@kernel.org>
      Cc: <stable@vger.kernel.org> # 3.13 - 4.2
      b8a9d66d
    • Ronny Hegewald's avatar
      rbd: require stable pages if message data CRCs are enabled · bae818ee
      Ronny Hegewald authored
      rbd requires stable pages, as it performs a crc of the page data before
      they are send to the OSDs.
      
      But since kernel 3.9 (patch 1d1d1a76
      "mm: only enforce stable page writes if the backing device requires
      it") it is not assumed anymore that block devices require stable pages.
      
      This patch sets the necessary flag to get stable pages back for rbd.
      
      In a ceph installation that provides multiple ext4 formatted rbd
      devices "bad crc" messages appeared regularly (ca 1 message every 1-2
      minutes on every OSD that provided the data for the rbd) in the
      OSD-logs before this patch. After this patch this messages are pretty
      much gone (only ca 1-2 / month / OSD).
      
      Cc: stable@vger.kernel.org # 3.9+, needs backporting
      Signed-off-by: default avatarRonny Hegewald <Ronny.Hegewald@online.de>
      [idryomov@gmail.com: require stable pages only in crc case, changelog]
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      bae818ee
    • Guenter Roeck's avatar
      hwmon: (nct6775) Introduce separate temperature labels for NCT6792 and NCT6793 · 50224f4d
      Guenter Roeck authored
      NCT6792 and NCT6793 are mostly register compatible to NCT6791, but
      temperature sources are different and difficult to manage with a single
      temperature label array. Introduce separate temperature label arrays
      for those chips to reflect the differences.
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      50224f4d
    • Guenter Roeck's avatar
      hwmon: (nct6775) NCT6791D and NCT6792D have an additional temperature source · 9a38371a
      Guenter Roeck authored
      Both NCT6791D and NCT6792D permit selection of a 'virtual' temperature
      register as temperature source. The virtual temperature registers are
      registers 0xea to 0xef in bank 0 and can be written by software.
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      9a38371a
  5. 29 Oct, 2015 4 commits