1. 05 Oct, 2016 2 commits
    • Johannes Weiner's avatar
      mm: filemap: fix mapping->nrpages double accounting in fuse · 3ddf40e8
      Johannes Weiner authored
      Commit 22f2ac51 ("mm: workingset: fix crash in shadow node shrinker
      caused by replace_page_cache_page()") switched replace_page_cache() from
      raw radix tree operations to page_cache_tree_insert() but didn't take
      into account that the latter function, unlike the raw radix tree op,
      handles mapping->nrpages.  As a result, that counter is bumped for each
      page replacement rather than balanced out even.
      
      The mapping->nrpages counter is used to skip needless radix tree walks
      when invalidating, truncating, syncing inodes without pages, as well as
      statistics for userspace.  Since the error is positive, we'll do more
      page cache tree walks than necessary; we won't miss a necessary one.
      And we'll report more buffer pages to userspace than there are.  The
      error is limited to fuse inodes.
      
      Fixes: 22f2ac51 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()")
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3ddf40e8
    • Johannes Weiner's avatar
      mm: filemap: don't plant shadow entries without radix tree node · d3798ae8
      Johannes Weiner authored
      When the underflow checks were added to workingset_node_shadow_dec(),
      they triggered immediately:
      
        kernel BUG at ./include/linux/swap.h:276!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: isofs usb_storage fuse xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_REJECT nf_reject_ipv6
         soundcore wmi acpi_als pinctrl_sunrisepoint kfifo_buf tpm_tis industrialio acpi_pad pinctrl_intel tpm_tis_core tpm nfsd auth_rpcgss nfs_acl lockd grace sunrpc dm_crypt
        CPU: 0 PID: 20929 Comm: blkid Not tainted 4.8.0-rc8-00087-gbe67d60b #1
        Hardware name: System manufacturer System Product Name/Z170-K, BIOS 1803 05/06/2016
        task: ffff8faa93ecd940 task.stack: ffff8faa7f478000
        RIP: page_cache_tree_insert+0xf1/0x100
        Call Trace:
          __add_to_page_cache_locked+0x12e/0x270
          add_to_page_cache_lru+0x4e/0xe0
          mpage_readpages+0x112/0x1d0
          blkdev_readpages+0x1d/0x20
          __do_page_cache_readahead+0x1ad/0x290
          force_page_cache_readahead+0xaa/0x100
          page_cache_sync_readahead+0x3f/0x50
          generic_file_read_iter+0x5af/0x740
          blkdev_read_iter+0x35/0x40
          __vfs_read+0xe1/0x130
          vfs_read+0x96/0x130
          SyS_read+0x55/0xc0
          entry_SYSCALL_64_fastpath+0x13/0x8f
        Code: 03 00 48 8b 5d d8 65 48 33 1c 25 28 00 00 00 44 89 e8 75 19 48 83 c4 18 5b 41 5c 41 5d 41 5e 5d c3 0f 0b 41 bd ef ff ff ff eb d7 <0f> 0b e8 88 68 ef ff 0f 1f 84 00
        RIP  page_cache_tree_insert+0xf1/0x100
      
      This is a long-standing bug in the way shadow entries are accounted in
      the radix tree nodes. The shrinker needs to know when radix tree nodes
      contain only shadow entries, no pages, so node->count is split in half
      to count shadows in the upper bits and pages in the lower bits.
      
      Unfortunately, the radix tree implementation doesn't know of this and
      assumes all entries are in node->count. When there is a shadow entry
      directly in root->rnode and the tree is later extended, the radix tree
      implementation will copy that entry into the new node and and bump its
      node->count, i.e. increases the page count bits. Once the shadow gets
      removed and we subtract from the upper counter, node->count underflows
      and triggers the warning. Afterwards, without node->count reaching 0
      again, the radix tree node is leaked.
      
      Limit shadow entries to when we have actual radix tree nodes and can
      count them properly. That means we lose the ability to detect refaults
      from files that had only the first page faulted in at eviction time.
      
      Fixes: 449dd698 ("mm: keep page cache radix tree nodes in check")
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d3798ae8
  2. 04 Oct, 2016 30 commits
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · a3443cda
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
      
        SELinux/LSM:
         - overlayfs support, necessary for container filesystems
      
        LSM:
         - finally remove the kernel_module_from_file hook
      
        Smack:
         - treat signal delivery as an 'append' operation
      
        TPM:
         - lots of bugfixes & updates
      
        Audit:
         - new audit data type: LSM_AUDIT_DATA_FILE
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (47 commits)
        Revert "tpm/tpm_crb: implement tpm crb idle state"
        Revert "tmp/tpm_crb: fix Intel PTT hw bug during idle state"
        Revert "tpm/tpm_crb: open code the crb_init into acpi_add"
        Revert "tmp/tpm_crb: implement runtime pm for tpm_crb"
        lsm,audit,selinux: Introduce a new audit data type LSM_AUDIT_DATA_FILE
        tmp/tpm_crb: implement runtime pm for tpm_crb
        tpm/tpm_crb: open code the crb_init into acpi_add
        tmp/tpm_crb: fix Intel PTT hw bug during idle state
        tpm/tpm_crb: implement tpm crb idle state
        tpm: add check for minimum buffer size in tpm_transmit()
        tpm: constify TPM 1.x header structures
        tpm/tpm_crb: fix the over 80 characters checkpatch warring
        tpm/tpm_crb: drop useless cpu_to_le32 when writing to registers
        tpm/tpm_crb: cache cmd_size register value.
        tmp/tpm_crb: drop include to platform_device
        tpm/tpm_tis: remove unused itpm variable
        tpm_crb: fix incorrect values of cmdReady and goIdle bits
        tpm_crb: refine the naming of constants
        tpm_crb: remove wmb()'s
        tpm_crb: fix crb_req_canceled behavior
        ...
      a3443cda
    • Linus Torvalds's avatar
      Merge branch 'stable-4.9' of git://git.infradead.org/users/pcmoore/audit · 3cd013ab
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Another relatively small pull request for v4.9 with just two patches.
      
        The patch from Richard updates the list of features we support and
        report back to userspace; this should have been sent earlier with the
        rest of the v4.8 patches but it got lost in my inbox.
      
        The second patch fixes a problem reported by our Android friends where
        we weren't very consistent in recording PIDs"
      
      * 'stable-4.9' of git://git.infradead.org/users/pcmoore/audit:
        audit: add exclude filter extension to feature bitmap
        audit: consistently record PIDs with task_tgid_nr()
      3cd013ab
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e46cae44
      Linus Torvalds authored
      Pull s390 updates from Martin Schwidefsky:
       "The new features and main improvements in this merge for v4.9
      
         - Support for the UBSAN sanitizer
      
         - Set HAVE_EFFICIENT_UNALIGNED_ACCESS, it improves the code in some
           places
      
         - Improvements for the in-kernel fpu code, in particular the overhead
           for multiple consecutive in kernel fpu users is recuded
      
         - Add a SIMD implementation for the RAID6 gen and xor operations
      
         - Add RAID6 recovery based on the XC instruction
      
         - The PCI DMA flush logic has been improved to increase the speed of
           the map / unmap operations
      
         - The time synchronization code has seen some updates
      
        And bug fixes all over the place"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits)
        s390/con3270: fix insufficient space padding
        s390/con3270: fix use of uninitialised data
        MAINTAINERS: update DASD maintainer
        s390/cio: fix accidental interrupt enabling during resume
        s390/dasd: add missing \n to end of dev_err messages
        s390/config: Enable config options for Docker
        s390/dasd: make query host access interruptible
        s390/dasd: fix panic during offline processing
        s390/dasd: fix hanging offline processing
        s390/pci_dma: improve lazy flush for unmap
        s390/pci_dma: split dma_update_trans
        s390/pci_dma: improve map_sg
        s390/pci_dma: simplify dma address calculation
        s390/pci_dma: remove dma address range check
        iommu/s390: simplify registration of I/O address translation parameters
        s390: migrate exception table users off module.h and onto extable.h
        s390: export header for CLP ioctl
        s390/vmur: fix irq pointer dereference in int handler
        s390/dasd: add missing KOBJ_CHANGE event for unformatted devices
        s390: enable UBSAN
        ...
      e46cae44
    • Linus Torvalds's avatar
      Merge tag 'docs-4.9' of git://git.lwn.net/linux · 02bafd96
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "This is the documentation update pull for the 4.9 merge window.
      
        The Sphinx transition is still creating a fair amount of work. Here we
        have a number of fixes and, importantly, a proper PDF output solution,
        thanks to Jani Nikula, Mauro Carvalho Chehab and Markus Heiser.
      
        I've started a couple of new books: a driver API book (based on the
        old device-drivers.tmpl) and a development tools book. Both are meant
        to show how we can integrate together our existing documentation into
        a more coherent and accessible whole. It involves moving some stuff
        around and formatting changes, but, I think, the results are worth it.
        The good news is that most of our existing Documentation/*.txt files
        are *almost* in RST format already; the amount of messing around
        required is minimal.
      
        And, of course, there's the usual set of updates, typo fixes, and
        more"
      
      * tag 'docs-4.9' of git://git.lwn.net/linux: (120 commits)
        URL changed for Linux Foundation TAB
        dax : Fix documentation with respect to struct pages
        iio: Documentation: Correct the path used to create triggers.
        docs: Remove space-before-label guidance from CodingStyle
        docs-rst: add inter-document cross references
        Documentation/email-clients.txt: convert it to ReST markup
        Documentation/kernel-docs.txt: reorder based on timestamp
        Documentation/kernel-docs.txt: Add dates for online docs
        Documentation/kernel-docs.txt: get rid of broken docs
        Documentation/kernel-docs.txt: move in-kernel docs
        Documentation/kernel-docs.txt: remove more legacy references
        Documentation/kernel-docs.txt: add two published books
        Documentation/kernel-docs.txt: sort books per publication date
        Documentation/kernel-docs.txt: adjust LDD references
        Documentation/kernel-docs.txt: some improvements on the ReST output
        Documentation/kernel-docs.txt: Consistent indenting: 4 spaces
        Documentation/kernel-docs.txt: Add 4 paper/book references
        Documentation/kernel-docs.txt: Improve layouting of book list
        Documentation/kernel-docs.txt: Remove offline or outdated entries
        docs: Clean up bare :: lines
        ...
      02bafd96
    • Linus Torvalds's avatar
      Merge tag 'jfs-4.9' of git://github.com/kleikamp/linux-shaggy · 2105b9ff
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "Minor jfs updates"
      
      * tag 'jfs-4.9' of git://github.com/kleikamp/linux-shaggy:
        jfs: Simplify code
        jfs: jump to error_out when filemap_{fdatawait, write_and_wait} fails
      2105b9ff
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.8.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 5fdf4939
      Linus Torvalds authored
      Pull gfs2 updates from Bob Peterson:
       "We've only got six GFS2 patches for this merge window.  In patch
        order:
      
         - Fabian Frederick submitted a nice cleanup that uses the BIT macro
           rather than bit shifting.
      
         - Andreas Gruenbacher contributed a patch that fixes a long-standing
           annoyance whereby GFS2 warned about dirty pages.
      
         - Andreas also fixed a problem with the recent extended attribute
           readahead feature.
      
         - Chao Yu contributed a patch that checks the return code from
           function register_shrinker and reacts accordingly. Previously, it
           was not checked.
      
         - Andreas Gruenbacher also fixed a problem whereby incore file
           timestamps were forgotten if the file was invalidated. This merely
           moves the assignment inside the inode glock where it belongs.
      
         - Andreas also fixed a problem where incore timestamps were not
           initialized"
      
      * tag 'gfs2-4.8.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Initialize atime of I_NEW inodes
        gfs2: Update file times after grabbing glock
        gfs2: fix to detect failure of register_shrinker
        gfs2: Fix extended attribute readahead optimization
        gfs2: Remove dirty buffer warning from gfs2_releasepage
        GFS2: use BIT() macro
      5fdf4939
    • Linus Torvalds's avatar
      Merge tag 'locks-v4.9-1' of git://git.samba.org/jlayton/linux · c35bcfd8
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Only a single patch from Nikolay this cycle, with a small change to
        better handle /proc/locks in a containerized host"
      
      * tag 'locks-v4.9-1' of git://git.samba.org/jlayton/linux:
        locks: Filter /proc/locks output on proc pid ns
      c35bcfd8
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · ce866e2d
      Linus Torvalds authored
      Pull hdi1 rdma driver updates from Doug Ledford:
       "This is the first pull request of the 4.9 merge window for the RDMA
        subsystem. It is only the hfi1 driver. It had dependencies on code
        that only landed late in the 4.7-rc cycle (around 4.7-rc7), so putting
        this with my other for-next code would have create an ugly merge of
        lot of 4.7-rc stuff. For that reason, it's being submitted
        individually. It's been through 0day and linux-next"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (37 commits)
        IB/rdmavt: Trivial function comment corrected.
        IB/hfi1: Fix trace of atomic ack
        IB/hfi1: Update SMA ingress checks for response packets
        IB/hfi1: Use EPROM platform configuration read
        IB/hfi1: Add ability to read platform config from the EPROM
        IB/hfi1: Restore EPROM read ability
        IB/hfi1: Document new sysfs entries for hfi1 driver
        IB/hfi1: Add new debugfs sdma_cpu_list file
        IB/hfi1: Add irq affinity notification handler
        IB/hfi1: Add a new VL sysfs attribute for sdma engines
        IB/hfi1: Add sysfs interface for affinity setup
        IB/hfi1: Fix resource release in context allocation
        IB/hfi1: Remove unused variable from devdata
        IB/hfi1: Cleanup tasklet refs in comments
        IB/hfi1: Adjust hardware buffering parameter
        IB/hfi1: Act on external device timeout
        IB/hfi1: Fix defered ack race with qp destroy
        IB/hfi1: Combine shift copy and byte copy for SGE reads
        IB/hfi1: Do not read more than a SGE length
        IB/hfi1: Extend i2c timeout
        ...
      ce866e2d
    • Linus Torvalds's avatar
      Merge tag 'edac_for_4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · 19fe4165
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "A lot of movement in the EDAC tree this time around, coarse summary
        below:
      
         - Altera Arria10 enablement of NAND, DMA, USB, QSPI and SD-MMC FIFO
           buffers (Thor Thayer)
      
         - split the memory controller part out of mpc85xx and share it with a
           new Freescale ARM Layerscape driver (York Sun)
      
         - amd64_edac fixes (Yazen Ghannam)
      
         - misc cleanups, refactoring and fixes all over the place"
      
      * tag 'edac_for_4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (37 commits)
        EDAC, altera: Add IRQ Flags to disable IRQ while handling
        EDAC, altera: Correct EDAC IRQ error message
        EDAC, amd64: Autoload module using x86_cpu_id
        EDAC, sb_edac: Remove NULL pointer check on array pci_tad
        EDAC: Remove NO_IRQ from powerpc-only drivers
        EDAC, fsl_ddr: Fix error return code in fsl_mc_err_probe()
        EDAC, fsl_ddr: Add entry to MAINTAINERS
        EDAC: Move Doug Thompson to CREDITS
        EDAC, I3000: Orphan driver
        EDAC, fsl_ddr: Replace simple_strtoul() with kstrtoul()
        EDAC, layerscape: Add Layerscape EDAC support
        EDAC, fsl_ddr: Fix IRQ dispose warning when module is removed
        EDAC, fsl_ddr: Add support for little endian
        EDAC, fsl_ddr: Add missing DDR DRAM types
        EDAC, fsl_ddr: Rename macros and names
        EDAC, fsl-ddr: Separate FSL DDR driver from MPC85xx
        EDAC, mpc85xx: Replace printk() with pr_* format
        EDAC, mpc85xx: Drop setting/clearing RFXE bit in HID1
        EDAC, altera: Rename MC trigger to common name
        EDAC, altera: Rename device trigger to common name
        ...
      19fe4165
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 58e4411b
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "The SPI subsystem has also had quite a quiet release, though with a
        fairly large set of per-driver changes and several new drivers. The
        bulk of the changes are:
      
         - lots and lots of cleanups and improvements for the fsl-espi driver
      
         - new drivers for Broadcom MSPI/iProc/STB, Cavium ThunderX and
           J-Core"
      
      * tag 'spi-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (80 commits)
        spi: sc18is602: Change gpiod_set_value to gpiod_set_value_cansleep
        spi: pxa2xx: Fix build error because of missing header
        spi: imx: fix error return code in spi_imx_probe()
        spi: pxa2xx: Add support for GPIO descriptor chip selects
        spi: imx: Gracefully handle NULL master->cs_gpios
        spi: iproc-qspi: Add Broadcom iProc SoCs support
        spi: fsl-espi: improve return value handling in fsl_espi_probe
        spi: fsl-espi: simplify of_fsl_espi_probe
        spi: fsl-espi: remove unused variable in fsl_espi_setup
        spi: bcm-qspi: Fix error return code in bcm_qspi_probe()
        spi: bcm-qspi: Fix return value check in bcm_qspi_probe()
        spi: bcm-qspi: fix suspend/resume #ifdef
        spi: bcm-qspi: don't include linux/mtd/cfi.h
        spi: core: Use spi_sync_transfer() in spi_write()/spi_read()
        spi: fsl-espi: improve and extend register bit definitions
        spi: fsl-espi: align register access with other drivers
        spi: fsl-espi: improve and simplify interrupt handler
        spi: fsl-espi: simplify fsl_espi_setup_transfer
        spi: imx: support loopback mode on imx35
        spi: imx: set spi_bus_clk for mx1, mx31 and mx35
        ...
      58e4411b
    • Linus Torvalds's avatar
      Merge tag 'regulator-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 5a9f228a
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This is an extremely quiet release for the regulator API, we've got a
        small set of bug fixes and minor feature enhancements for drivers plus
        a couple of more visible changes:
      
         - add support for ramp times in regulators that don't use selectors.
      
         - new driver for LTC3676"
      
      * tag 'regulator-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: dbx500: remove unused functions in dbx500-prcmu.c
        regulator: pv88080: Update regulator for PV88080 BB silicon support
        regulator: core: don't return error with inadequate reason
        regulator: tps65910: Work around silicon erratum SWCZ010
        regulator: core: Add set_voltage_time op
        regulator: core: Don't skip set_voltage_time when ramp delay disabled
        regulator: core: Simplify error flow in _regulator_do_set_voltage()
        regulator: core: Use local ops variable in _regulator_do_set_voltage()
        regulator: hi6421: mark hi6421_regulator_ldo_get_optimum_mode() static
        regulator: Kconfig: Fix typo
        regulator: bindings: Use the correct symbol for second
        regulator: Remove support for optional supplies in the bulk API
        regulator: Add LTC3676 support
        regulator: rk808: Delete owner assignment
        regulator: tps65218: do not disable DCDC3 during poweroff on broken PMICs
        mfd: tps65218: add version check to the PMIC probe
      5a9f228a
    • Linus Torvalds's avatar
      Merge tag 'regmap-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 808c2b05
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Another quiet release, a few small extensions to the set of register
        maps we support and an improvement in the debugfs code:
      
         - allow viewing of cached contents for write only registers via
           debugfs.
      
         - support a wider range of read/write flag masks in register formats.
      
         - support more little endian formats"
      
      * tag 'regmap-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Add missing little endian functions
        regmap: Allow longer flag masks for read and write
        regmap: debugfs: Add support for dumping write only device registers
        regmap: Add a function to check if a regmap register is cached
      808c2b05
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 5617c122
      Linus Torvalds authored
      Pull clk framework updates from Stephen Boyd:
       "The core clk framework changes are small again. They're mostly minor
        fixes that weren't causing enough problems (or any problems when we're
        just clarifying things) to warrant sending outside the merge window.
        The majority of changes are in drivers for various SoCs. Full details
        are in the logs, but here's the summary.
      
        Core:
      
         - Better support for DeviceTree overlays with the addition of the
           CLK_OF_DECLARE_DRIVER macro. Now we won't probe a clk driver for a
           device node that matched during of_clk_init(), unless the driver
           uses CLK_OF_DECLARE_DRIVER instead of CLK_OF_DECLARE. This allows
           overlays to work cleanly for drivers that must probe before the
           device model is ready, and also after it's ready when an overlay is
           loaded.
      
         - Clarification in the code around how clk_hw pointers are returned
           from of clk providers
      
         - Proper migration of prepare/enable counts to parents when the clk
           tree is constructed
      
        New Drivers:
      
         - Socionext's UniPhier SoCs
         - Loongson1C
         - ZTE ZX296718
         - Qualcomm MDM9615
         - Amlogic GXBB AO clocks and resets
         - Broadcom BCM53573 ILP
         - Maxim MAX77620
      
       Updates:
      
         - Four Allwinner SoCs are migrated to the new style clk driver (A31,
           A31s, A23 and A33)
         - Exynos 5xxx audio and DRAM clks
         - Loongson1B AC97, DMA and NAND clks
         - Rockchip DDR clks and rk3399 driver tweaks
         - Renesas R-Car M3-W (r8a7796) SoC SDHI interface and Watchdog timer
           clks
         - Renasas R-Car H3 and M3-W CMT clks and RAVB+Thermal clks for M3-W
         - Amlogic GXBB MMC gate clks
         - at91 sama5d4 sckc
         - Removal of STiH415 and STiH416 clk support as the SoC is being
           removed
         - Rework of STiH4xx clk support for new style bindings
         - Continuation of driver migration to clk_hw based registration APIs
         - xgene PMD support
         - bcm2835 critical clk markings
         - ARM versatile ICST"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (199 commits)
        CLK: Add Loongson1C clock support
        clk: Loongson1: Make use of GENMASK
        clk: Loongson1: Update clocks of Loongson1B
        clk: Loongson1: Refactor Loongson1 clock
        clk: change the type of clk_hw_onecell_data.num to unsigned int
        clk: zx296718: register driver earlier with core_initcall
        clk: mvebu: dynamically allocate resources in Armada CP110 system controller
        clk: mvebu: fix setting unwanted flags in CP110 gate clock
        clk: nxp: clk-lpc32xx: Unmap region obtained by of_iomap
        clk: mediatek: clk-mt8173: Unmap region obtained by of_iomap
        clk: sunxi-ng: Fix reset offset for the A23 and A33
        clk: at91: sckc: optimize boot time
        clk: at91: Add sama5d4 sckc support
        clk: at91: move slow clock controller clocks to sckc.c
        clk: imx6: initialize GPU clocks
        clk: imx6: fix i.MX6DL clock tree to reflect reality
        clk: imx53: Add clocks configuration
        clk: uniphier: add clock data for UniPhier SoCs
        clk: uniphier: add core support code for UniPhier clock driver
        clk: bcm: Add driver for BCM53573 ILP clock
        ...
      5617c122
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.9' of... · 77b0a4aa
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - New hwmon registration API, including ports of several drivers to the
         new API
      
       - New hwmon driver for APM X-Gene SoC
      
       - Added support for UCD90160, DPS-460, DPS-800, and SGD009 PMBUs chips
      
       - Various cleanups, minor improvements, and fixes in several drivers
      
      * tag 'hwmon-for-linus-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (54 commits)
        hwmon: (nct6775) Add support for multiple virtual temperature sources
        hwmon: (adt7470) No need for additional synchronization on kthread_stop()
        hwmon: (lm95241) Update module description to include LM95231
        hwmon: (lm95245) Select REGMAP_I2C
        hwmon: (ibmpowernv) Fix label for cores numbers not threads
        hwmon: (adt7470) Allow faster removal
        hwmon: (adt7470) Add write support to alarm_mask
        hwmon: (xgene) access mailbox as RAM
        hwmon: (lm95245) Use new hwmon registration API
        hwmon: (lm95241) Convert to use new hwmon registration API
        hwmon: (jc42) Convert to use new hwmon registration API
        hwmon: (max31790) Convert to use new hwmon registration API
        hwmon: (nct7904) Convert to use new hwmon registration API
        hwmon: (ltc4245) Convert to use new hwmon registration API
        hwmon: (tmp421) Convert to use new hwmon registration API
        hwmon: (tmp102) Convert to use new hwmon registration API
        hwmon: (lm90) Convert to use new hwmon registration API
        hwmon: (lm75) Convert to use new hwmon registration API
        hwmon: (xgene) Fix crash when alarm occurs before driver probe
        hwmon: (iio_hwmon) defer probe when no channel is found
        ...
      77b0a4aa
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds · f80fa182
      Linus Torvalds authored
      Pull LED driver updates from Jacek Anaszewski:
       "Three new LED class drivers and some minor fixes and improvementes to
        the leds-gpio driver, LED Trigger core and documentation"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: triggers: Check return value of kobject_uevent_env()
        leds: triggers: Return from led_trigger_set() if there is nothing to do
        leds: gpio: fix and simplify error handling in gpio_leds_create
        leds: gpio: switch to managed version of led_classdev_register
        leds: gpio: fix and simplify reading property "label"
        leds: gpio: simplify gpio_leds_create
        leds: gpio: add helper cdev_to_gpio_led_data
        leds: gpio: fix an unhandled error case in create_gpio_led
        leds: gpio: introduce gpio_blink_set_t
        leds: add driver for Mellanox systems LEDs
        Documentation: move oneshot trigger attributes documentation to ABI
        leds: centralize definition of "default-state" property
        leds: add PM8058 LEDs driver
        leds: pm8058: add device tree bindings
        leds: do not overflow sysfs buffer in led_trigger_show
        leds: make triggers explicitly non-modular
        DT: leds: Add bindings for ISSI is31fl319x
        leds: is31fl319x: 1/3/6/9-channel light effect led driver
      f80fa182
    • Linus Torvalds's avatar
      Using BUG_ON() as an assert() is _never_ acceptable · 21f54dda
      Linus Torvalds authored
      That just generally kills the machine, and makes debugging only much
      harder, since the traces may long be gone.
      
      Debugging by assert() is a disease.  Don't do it.  If you can continue,
      you're much better off doing so with a live machine where you have a
      much higher chance that the report actually makes it to the system logs,
      rather than result in a machine that is just completely dead.
      
      The only valid situation for BUG_ON() is when continuing is not an
      option, because there is massive corruption.  But if you are just
      verifying that something is true, you warn about your broken assumptions
      (preferably just once), and limp on.
      
      Fixes: 22f2ac51 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()")
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      21f54dda
    • Linus Torvalds's avatar
      Merge tag 'usb-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · e6445f52
      Linus Torvalds authored
      Pull usb/phy/extcon updates from Greg KH:
       "Here is the big USB, and PHY, and extcon, patchsets for 4.9-rc1.
      
        Full details are in the shortlog, but generally a lot of new hardware
        support, usb gadget updates, and Wolfram's great cleanup of USB error
        message handling, making the kernel image a tad bit smaller.
      
        All of this has been in linux-next with no reported issues"
      
      * tag 'usb-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (343 commits)
        Revert "usbtmc: convert to devm_kzalloc"
        USB: serial: cp210x: Add ID for a Juniper console
        usb: Kconfig: using select for USB_COMMON dependency
        bluetooth: bcm203x: don't print error when allocating urb fails
        mmc: host: vub300: don't print error when allocating urb fails
        usb: hub: change CLEAR_FEATURE to SET_FEATURE
        usb: core: Introduce a USB port LED trigger
        USB: bcma: drop Northstar PHY 2.0 initialization code
        usb: core: hcd: add missing header dependencies
        usb: musb: da8xx: fix error handling message in probe
        usb: musb: Fix session based PM for first invalid VBUS
        usb: musb: Fix PM runtime for disconnect after unconfigure
        musb: Export musb_root_disconnect for use in modules
        usb: misc: legousbtower: Fix NULL pointer deference
        cdc-acm: hardening against malicious devices
        Revert "usb: gadget: NCM: Protect dev->port_usb using dev->lock"
        include: extcon: Fix compilation error caused because of incomplete merge
        MAINTAINERS: add tree entry for USB Serial
        phy-twl4030-usb: initialize charging-related stuff via pm_runtime
        phy-twl4030-usb: better handle musb_mailbox() failure
        ...
      e6445f52
    • Mark Brown's avatar
    • Linus Torvalds's avatar
      Merge tag 'tty-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · e6dce825
      Linus Torvalds authored
      Pull tty and serial updates from Greg KH:
       "Here is the big tty and serial patch set for 4.9-rc1.
      
        It also includes some drivers/dma/ changes, as those were needed by
        some serial drivers, and they were all acked by the DMA maintainer.
      
        Also in here is the long-suffering ACPI SPCR patchset, which was
        passed around from maintainer to maintainer like a hot-potato. Seems I
        was the sucker^Wlucky one. All of those patches have been acked by the
        various subsystem maintainers as well.
      
        All of this has been in linux-next with no reported issues"
      
      * tag 'tty-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (111 commits)
        Revert "serial: pl011: add console matching function"
        MAINTAINERS: update entry for atmel_serial driver
        serial: pl011: add console matching function
        ARM64: ACPI: enable ACPI_SPCR_TABLE
        ACPI: parse SPCR and enable matching console
        of/serial: move earlycon early_param handling to serial
        Revert "drivers/tty: Explicitly pass current to show_stack"
        tty: amba-pl011: Don't complain on -EPROBE_DEFER when no irq
        nios2: dts: 10m50: Add tx-threshold parameter
        serial: 8250: Set Altera 16550 TX FIFO Threshold
        serial: 8250: of: Load TX FIFO Threshold from DT
        Documentation: dt: serial: Add TX FIFO threshold parameter
        drivers/tty: Explicitly pass current to show_stack
        serial: imx: Fix DCD reading
        serial: stm32: mark symbols static where possible
        serial: xuartps: Add some register initialisation to cdns_early_console_setup()
        serial: xuartps: Removed unwanted checks while reading the error conditions
        serial: xuartps: Rewrite the interrupt handling logic
        serial: stm32: use mapbase instead of membase for DMA
        tty/serial: atmel: fix fractional baud rate computation
        ...
      e6dce825
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 9929780e
      Linus Torvalds authored
      Pull driver core updates from Greg KH:
       "Here are the "big" driver core patches for 4.9-rc1. Also in here are a
        number of debugfs fixes that cropped up due to the changes that
        happened in 4.8 for that filesystem. Overall, nothing major, just a
        few fixes and cleanups.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'driver-core-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (23 commits)
        drivers: dma-coherent: Move spinlock in dma_alloc_from_coherent()
        drivers: dma-coherent: Fix DMA coherent size for less than page
        MAINTAINERS: extend firmware_class maintainer list
        debugfs: propagate release() call result
        driver-core: platform: Catch errors from calls to irq_get_irq_data
        sysfs print name of undiscoverable attribute group
        carl9170: fix debugfs crashes
        b43legacy: fix debugfs crash
        b43: fix debugfs crash
        debugfs: introduce a public file_operations accessor
        device core: Remove deprecated create_singlethread_workqueue
        drivers/base dmam_declare_coherent_memory leaks
        platform: don't return 0 from platform_get_irq[_byname]() on error
        cpu: clean up register_cpu func
        dma-mapping: use vma_pages().
        drivers: dma-coherent: use vma_pages().
        attribute_container: Fix typo
        base: soc: make it explicitly non-modular
        drivers: base: dma-mapping: page align the size when unmap_kernel_range
        platform driver: fix use-after-free in platform_device_del()
        ...
      9929780e
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 7a53eea1
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here's the "big" char and misc driver update for 4.9-rc1.
      
        Lots of little things here, all over the driver tree for subsystems
        that flow through me. Nothing major that I can discern, full details
        are in the shortlog.
      
        All have been in the linux-next tree with no reported issues"
      
      * tag 'char-misc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (144 commits)
        drivers/misc/hpilo: Changes to support new security states in iLO5 FW
        at25: fix debug and error messaging
        misc/genwqe: ensure zero initialization
        vme: fake: remove unexpected unlock in fake_master_set()
        vme: fake: mark symbols static where possible
        spmi: pmic-arb: Return an error code if sanity check fails
        Drivers: hv: get rid of id in struct vmbus_channel
        Drivers: hv: make VMBus bus ids persistent
        mcb: Add a dma_device to mcb_device
        mcb: Enable PCI bus mastering by default
        mei: stop the stall timer worker if not needed
        clk: probe common clock drivers earlier
        vme: fake: fix build for 64-bit dma_addr_t
        ttyprintk: Neaten and simplify printing
        mei: me: add kaby point device ids
        coresight: tmc: mark symbols static where possible
        coresight: perf: deal with error condition properly
        Drivers: hv: hv_util: Avoid dynamic allocation in time synch
        fpga manager: Add hardware dependency to Zynq driver
        Drivers: hv: utils: Support TimeSync version 4.0 protocol samples.
        ...
      7a53eea1
    • Linus Torvalds's avatar
      Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 597f03f9
      Linus Torvalds authored
      Pull CPU hotplug updates from Thomas Gleixner:
       "Yet another batch of cpu hotplug core updates and conversions:
      
         - Provide core infrastructure for multi instance drivers so the
           drivers do not have to keep custom lists.
      
         - Convert custom lists to the new infrastructure. The block-mq custom
           list conversion comes through the block tree and makes the diffstat
           tip over to more lines removed than added.
      
         - Handle unbalanced hotplug enable/disable calls more gracefully.
      
         - Remove the obsolete CPU_STARTING/DYING notifier support.
      
         - Convert another batch of notifier users.
      
         The relayfs changes which conflicted with the conversion have been
         shipped to me by Andrew.
      
         The remaining lot is targeted for 4.10 so that we finally can remove
         the rest of the notifiers"
      
      * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
        cpufreq: Fix up conversion to hotplug state machine
        blk/mq: Reserve hotplug states for block multiqueue
        x86/apic/uv: Convert to hotplug state machine
        s390/mm/pfault: Convert to hotplug state machine
        mips/loongson/smp: Convert to hotplug state machine
        mips/octeon/smp: Convert to hotplug state machine
        fault-injection/cpu: Convert to hotplug state machine
        padata: Convert to hotplug state machine
        cpufreq: Convert to hotplug state machine
        ACPI/processor: Convert to hotplug state machine
        virtio scsi: Convert to hotplug state machine
        oprofile/timer: Convert to hotplug state machine
        block/softirq: Convert to hotplug state machine
        lib/irq_poll: Convert to hotplug state machine
        x86/microcode: Convert to hotplug state machine
        sh/SH-X3 SMP: Convert to hotplug state machine
        ia64/mca: Convert to hotplug state machine
        ARM/OMAP/wakeupgen: Convert to hotplug state machine
        ARM/shmobile: Convert to hotplug state machine
        arm64/FP/SIMD: Convert to hotplug state machine
        ...
      597f03f9
    • Linus Torvalds's avatar
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 999dcbe2
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "The irq departement proudly presents:
      
         - A rework of the core infrastructure to optimally spread interrupt
           for multiqueue devices. The first version was a bit naive and
           failed to take thread siblings and other details into account.
           Developed in cooperation with Christoph and Keith.
      
         - Proper delegation of softirqs to ksoftirqd, so if ksoftirqd is
           active then no further softirq processsing on interrupt return
           happens. Otherwise we try to delegate and still run another batch
           of network packets in the irq return path, which then tries to
           delegate to ksoftirqd .....
      
         - A proper machine parseable sysfs based alternative for
           /proc/interrupts.
      
         - ACPI support for the GICV3-ITS and ARM interrupt remapping
      
         - Two new irq chips from the ARM SoC zoo: STM32-EXTI and MVEBU-PIC
      
         - A new irq chip for the JCore (SuperH)
      
         - The usual pile of small fixlets in core and irqchip drivers"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
        softirq: Let ksoftirqd do its job
        genirq: Make function __irq_do_set_handler() static
        ARM/dts: Add EXTI controller node to stm32f429
        ARM/STM32: Select external interrupts controller
        drivers/irqchip: Add STM32 external interrupts support
        Documentation/dt-bindings: Document STM32 EXTI controller bindings
        irqchip/mips-gic: Use for_each_set_bit to iterate over local IRQs
        pci/msi: Retrieve affinity for a vector
        genirq/affinity: Remove old irq spread infrastructure
        genirq/msi: Switch to new irq spreading infrastructure
        genirq/affinity: Provide smarter irq spreading infrastructure
        genirq/msi: Add cpumask allocation to alloc_msi_entry
        genirq: Expose interrupt information through sysfs
        irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain initialization
        irqchip/gicv3-its: Factor out PCI-MSI part that might be reused for ACPI
        irqchip/gicv3-its: Probe ITS in the ACPI way
        irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI
        irqchip/gicv3-its: Cleanup for ITS domain initialization
        PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table
        ACPI: Add new IORT functions to support MSI domain handling
        ...
      999dcbe2
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5e1b834b
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "A rather smalish set of updates for timers and timekeeping:
      
         - Two core fixes to prevent potential undefinded behaviour about
           which gcc is complaining rightfully.
      
         - A fix to prevent stopping the tick on an (soon) offline CPU so it
           can complete the shutdown procedure.
      
         - Wait for clocks to stabilize before making decisions, so a not yet
           validated clock is not rejected.
      
         - The usual pile of fixes to the various clocksource drivers.
      
         - Core code typo and include fixlets"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping: Include the correct header for errno definitions
        clocksource/drivers/ti-32k: Prevent ftrace recursion
        clocksource/mips-gic-timer: Stop checking cpu_has_counter
        clocksource/mips-gic-timer: Print an error if IRQ setup fails
        tick/nohz: Prevent stopping the tick on an offline CPU
        clocksource/drivers/oxnas: Add OX820 compatible
        clocksource/drivers/timer-atmel-pit: Simplify IRQ handler
        clocksource/drivers/timer-atmel-pit: Remove uselesss WARN_ON_ONCE
        clocksource/drivers/timer-atmel-pit: Drop at91sam926x_pit_common_init
        clocksource/drivers/moxart: Replace panic by pr_err
        clocksource/drivers/moxart: Replace setup_irq by request_irq
        clocksource/drivers/moxart: Add Aspeed support
        clocksource/drivers/moxart: Use struct to hold state
        clocksource/drivers/moxart: Refactor enable/disable
        time: Avoid undefined behaviour in ktime_add_safe()
        time: Avoid undefined behaviour in timespec64_add_safe()
        timekeeping: Prints the amounts of time spent during suspend
        clocksource: Defer override invalidation unless clock is unstable
        hrtimer: Spelling fixes
      5e1b834b
    • Linus Torvalds's avatar
      Merge tag 'arc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 49deffe0
      Linus Torvalds authored
      Pull ARC updates from Vineet Gupta:
      
       - ARCv2 support for native 64-bit atomics using LLOCK/SCONDD
         instructions
      
       - Support for upcoming 3.0 release of HS38 cores
      
       - Dwarf unwindinder improvements:
         - enable unwinding of hand written assembler code using CFI
           pseudo-ops
         - switch to .eh_frame (as opposed to historic .debug_frame)
         - get rid of a bunch of adhoc band-aids in the process
      
       - Misc fixes:
         - perf supporting generic cache-references and cache-misses (Alexey)
         - default NODE_SHIFT (Noam Camus)
         - usage of KFLAG instruction to set IE (Yuriy)
      
       - Platforms:
         - Add "model" property across the DT (Alexey)
         - Enable MODULE_* in defconfigs
      
      * tag 'arc-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: [plat*] enables MODULE*
        ARCv2: fix local_save_flags
        ARC: CONFIG_NODES_SHIFT fix default values
        ARCv2: intc: Use kflag if STATUS32.IE must be reset
        ARC: .exit.* sections can be discarded in .eh_frame regime
        ARC: dw2 unwind: enable cfi pseudo ops in string lib
        ARC: dw2 unwind: add infrastructure for adding cfi pseudo ops to asm
        ARC: entry: make ret_from_system_call local label
        ARC: dw2 unwind: don't force dwarf 2
        ARC: dw2 unwind: switch to .eh_frame based unwinding
        ARC: dw2 unwind: factor CIE specifics for .eh_frame/.debug_frame
        ARC: module: support R_ARC_32_PCREL relocation
        arc: perf: Enable generic "cache-references" and "cache-misses" events
        ARC: [plat-eznps] add missing atomic_fetch_xxx operations
        ARCv2: Implement atomic64 based on LLOCKD/SCONDD instructions
        ARCv2: Support dynamic peripheral address space in HS38 rel 3.0 cores
        ARCv2: identify HS38 rel 3.0 cores
        ARCv2: Add support for ZeBu Emulation platform for HS cores
        arc: Add "model" properly in device tree description of all boards
      49deffe0
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v4.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 5419e783
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
       - cleanups
       - defconfig updates
       - GPG fingerprint update
      
      * tag 'm68k-for-v4.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Migrate exception table users off module.h and onto extable.h
        CREDITS: Update fingerprint for Geert Uytterhoeven
        m68k: Use IS_ENABLED() instead of checking for built-in or module
        m68k/defconfig: Update defconfigs for v4.8-rc1
      5419e783
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8e4ef638
      Linus Torvalds authored
      Pull x86 vdso updates from Ingo Molnar:
       "The main changes in this cycle centered around adding support for
        32-bit compatible C/R of the vDSO on 64-bit kernels, by Dmitry
        Safonov"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Use CONFIG_X86_X32_ABI to enable vdso prctl
        x86/vdso: Only define map_vdso_randomized() if CONFIG_X86_64
        x86/vdso: Only define prctl_map_vdso() if CONFIG_CHECKPOINT_RESTORE
        x86/signal: Add SA_{X32,IA32}_ABI sa_flags
        x86/ptrace: Down with test_thread_flag(TIF_IA32)
        x86/coredump: Use pr_reg size, rather that TIF_IA32 flag
        x86/arch_prctl/vdso: Add ARCH_MAP_VDSO_*
        x86/vdso: Replace calculate_addr in map_vdso() with addr
        x86/vdso: Unmap vdso blob on vvar mapping failure
      8e4ef638
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6aebe7f9
      Linus Torvalds authored
      Pull x86 timer updates from Ingo Molnar:
       "This tree includes a HPET overhead micro-optimization plus new TSC
        frequencies for newer Intel CPUs"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc: Add additional Intel CPU models to the crystal quirk list
        x86/tsc: Use cpu id defines instead of hex constants
        x86/hpet: Reduce HPET counter read contention
      6aebe7f9
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a6c4e4cd
      Linus Torvalds authored
      Pull x86 platform changes from Ingo Molnar:
       "The main changes in this cycle were:
      
         - SGI UV updates (Andrew Banman)
      
         - Intel MID updates (Andy Shevchenko)
      
         - Initial Mellanox systems platform (Vadim Pasternak)"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/mellanox: Fix return value check in mlxplat_init()
        x86/platform/mellanox: Introduce support for Mellanox systems platform
        x86/platform/uv/BAU: Add UV4-specific functions
        x86/platform/uv/BAU: Fix payload queue setup on UV4 hardware
        x86/platform/uv/BAU: Disable software timeout on UV4 hardware
        x86/platform/uv/BAU: Populate ->uvhub_version with UV4 version information
        x86/platform/uv/BAU: Use generic function pointers
        x86/platform/uv/BAU: Add generic function pointers
        x86/platform/uv/BAU: Convert uv_physnodeaddr() use to uv_gpa_to_offset()
        x86/platform/uv/BAU: Clean up pq_init()
        x86/platform/uv/BAU: Clean up and update printks
        x86/platform/uv/BAU: Clean up vertical alignment
        x86/platform/intel-mid: Keep SRAM powered on at boot
        x86/platform/intel-mid: Add Intel Penwell to ID table
        x86/cpu: Rename Merrifield2 to Moorefield
        x86/platform/intel-mid: Implement power off sequence
        x86/platform/intel-mid: Enable SD card detection on Merrifield
        x86/platform/intel-mid: Enable WiFi on Intel Edison
        x86/platform/intel-mid: Run PWRMU command immediately
      a6c4e4cd
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a8adc0f0
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Header file and a wrapper functions cleanup"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Migrate exception table users off module.h and onto extable.h
        x86: Clean up various simple wrapper functions
      a8adc0f0
  3. 03 Oct, 2016 8 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3ef0a61a
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "The changes in this cycle were:
      
         - Save e820 table RAM footprint on larger kernel configurations.
           (Denys Vlasenko)
      
         - pmem related fixes (Dan Williams)
      
         - theoretical e820 boundary condition fix (Wei Yang)"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Fix kdump, cleanup aborted E820_PRAM max_pfn manipulation
        x86/e820: Use much less memory for e820/e820_saved, save up to 120k
        x86/e820: Prepare e280 code for switch to dynamic storage
        x86/e820: Mark some static functions __init
        x86/e820: Fix very large 'size' handling boundary condition
      3ef0a61a
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1a4a2bc4
      Linus Torvalds authored
      Pull low-level x86 updates from Ingo Molnar:
       "In this cycle this topic tree has become one of those 'super topics'
        that accumulated a lot of changes:
      
         - Add CONFIG_VMAP_STACK=y support to the core kernel and enable it on
           x86 - preceded by an array of changes. v4.8 saw preparatory changes
           in this area already - this is the rest of the work. Includes the
           thread stack caching performance optimization. (Andy Lutomirski)
      
         - switch_to() cleanups and all around enhancements. (Brian Gerst)
      
         - A large number of dumpstack infrastructure enhancements and an
           unwinder abstraction. The secret long term plan is safe(r) live
           patching plus maybe another attempt at debuginfo based unwinding -
           but all these current bits are standalone enhancements in a frame
           pointer based debug environment as well. (Josh Poimboeuf)
      
         - More __ro_after_init and const annotations. (Kees Cook)
      
         - Enable KASLR for the vmemmap memory region. (Thomas Garnier)"
      
      [ The virtually mapped stack changes are pretty fundamental, and not
        x86-specific per se, even if they are only used on x86 right now. ]
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (70 commits)
        x86/asm: Get rid of __read_cr4_safe()
        thread_info: Use unsigned long for flags
        x86/alternatives: Add stack frame dependency to alternative_call_2()
        x86/dumpstack: Fix show_stack() task pointer regression
        x86/dumpstack: Remove dump_trace() and related callbacks
        x86/dumpstack: Convert show_trace_log_lvl() to use the new unwinder
        oprofile/x86: Convert x86_backtrace() to use the new unwinder
        x86/stacktrace: Convert save_stack_trace_*() to use the new unwinder
        perf/x86: Convert perf_callchain_kernel() to use the new unwinder
        x86/unwind: Add new unwind interface and implementations
        x86/dumpstack: Remove NULL task pointer convention
        fork: Optimize task creation by caching two thread stacks per CPU if CONFIG_VMAP_STACK=y
        sched/core: Free the stack early if CONFIG_THREAD_INFO_IN_TASK
        lib/syscall: Pin the task stack in collect_syscall()
        x86/process: Pin the target stack in get_wchan()
        x86/dumpstack: Pin the target stack when dumping it
        kthread: Pin the stack via try_get_task_stack()/put_task_stack() in to_live_kthread() function
        sched/core: Add try_get_task_stack() and put_task_stack()
        x86/entry/64: Fix a minor comment rebase error
        iommu/amd: Don't put completion-wait semaphore on stack
        ...
      1a4a2bc4
    • Linus Torvalds's avatar
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 110a9e42
      Linus Torvalds authored
      Pull x86 apic updates from Ingo Molnar:
       "The main changes are:
      
         - Persistent CPU/node numbering across CPU hotplug/unplug events.
           This is a pretty involved series of changes that first fetches all
           the information during bootup and then uses it for the various
           hotplug/unplug methods. (Gu Zheng, Dou Liyang)
      
         - IO-APIC hot-add/remove fixes and enhancements. (Rui Wang)
      
         - ... various fixes, cleanups and enhancements"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86/apic: Fix silent & fatal merge conflict in __generic_processor_info()
        acpi: Fix broken error check in map_processor()
        acpi: Validate processor id when mapping the processor
        acpi: Provide mechanism to validate processors in the ACPI tables
        x86/acpi: Set persistent cpuid <-> nodeid mapping when booting
        x86/acpi: Enable MADT APIs to return disabled apicids
        x86/acpi: Introduce persistent storage for cpuid <-> apicid mapping
        x86/acpi: Enable acpi to register all possible cpus at boot time
        x86/numa: Online memory-less nodes at boot time
        x86/apic: Get rid of apic_version[] array
        x86/apic: Order irq_enter/exit() calls correctly vs. ack_APIC_irq()
        x86/ioapic: Ignore root bridges without a companion ACPI device
        x86/apic: Update comment about disabling processor focus
        x86/smpboot: Check APIC ID before setting up default routing
        x86/ioapic: Fix IOAPIC failing to request resource
        x86/ioapic: Fix lost IOAPIC resource after hot-removal and hotadd
        x86/ioapic: Fix setup_res() failing to get resource
        x86/ioapic: Support hot-removal of IOAPICs present during boot
        x86/ioapic: Change prototype of acpi_ioapic_add()
        x86/apic, ACPI: Fix incorrect assignment when handling apic/x2apic entries
        ...
      110a9e42
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · af79ad2b
      Linus Torvalds authored
      Pull scheduler changes from Ingo Molnar:
       "The main changes are:
      
         - irqtime accounting cleanups and enhancements. (Frederic Weisbecker)
      
         - schedstat debugging enhancements, make it more broadly runtime
           available. (Josh Poimboeuf)
      
         - More work on asymmetric topology/capacity scheduling. (Morten
           Rasmussen)
      
         - sched/wait fixes and cleanups. (Oleg Nesterov)
      
         - PELT (per entity load tracking) improvements. (Peter Zijlstra)
      
         - Rewrite and enhance select_idle_siblings(). (Peter Zijlstra)
      
         - sched/numa enhancements/fixes (Rik van Riel)
      
         - sched/cputime scalability improvements (Stanislaw Gruszka)
      
         - Load calculation arithmetics fixes. (Dietmar Eggemann)
      
         - sched/deadline enhancements (Tommaso Cucinotta)
      
         - Fix utilization accounting when switching to the SCHED_NORMAL
           policy. (Vincent Guittot)
      
         - ... plus misc cleanups and enhancements"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
        sched/irqtime: Consolidate irqtime flushing code
        sched/irqtime: Consolidate accounting synchronization with u64_stats API
        u64_stats: Introduce IRQs disabled helpers
        sched/irqtime: Remove needless IRQs disablement on kcpustat update
        sched/irqtime: No need for preempt-safe accessors
        sched/fair: Fix min_vruntime tracking
        sched/debug: Add SCHED_WARN_ON()
        sched/core: Fix set_user_nice()
        sched/fair: Introduce set_curr_task() helper
        sched/core, ia64: Rename set_curr_task()
        sched/core: Fix incorrect utilization accounting when switching to fair class
        sched/core: Optimize SCHED_SMT
        sched/core: Rewrite and improve select_idle_siblings()
        sched/core: Replace sd_busy/nr_busy_cpus with sched_domain_shared
        sched/core: Introduce 'struct sched_domain_shared'
        sched/core: Restructure destroy_sched_domain()
        sched/core: Remove unused @cpu argument from destroy_sched_domain*()
        sched/wait: Introduce init_wait_entry()
        sched/wait: Avoid abort_exclusive_wait() in __wait_on_bit_lock()
        sched/wait: Avoid abort_exclusive_wait() in ___wait_event()
        ...
      af79ad2b
    • Linus Torvalds's avatar
      Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e606d81d
      Linus Torvalds authored
      Pull RAS updates from Ingo Molnar:
       "The main changes were:
      
         - Lots of enhancements for AMD SMCA (Scalable MCA
           features/extensions) systems: extract, decode and print more
           hardware error information and add matching support on the
           injection/testing side as well. (Yazn Ghannam)
      
         - Various MCE handling improvements on modern Intel Xeons. (Tony
           Luck)
      
         - Plus misc fixes and enhancements"
      
      * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        x86/RAS/mce_amd_inj: Remove debugfs dir recursively on exit
        x86/RAS/mce_amd_inj: Fix signed wrap around when decrementing index 'i'
        x86/RAS/mce_amd_inj: Fix some W= warnings
        x86/MCE/AMD, EDAC: Handle reserved bank 4 on Fam17h properly
        x86/mce/AMD: Extract the error address on SMCA systems
        x86/mce, EDAC/mce_amd: Print MCA_SYND and MCA_IPID during MCE on SMCA systems
        x86/mce/AMD: Save MCA_IPID in MCE struct on SMCA systems
        x86/mce/AMD: Ensure the deferred error interrupt is of type APIC on SMCA systems
        x86/mce/AMD: Update sysfs bank names for SMCA systems
        x86/mce/AMD, EDAC/mce_amd: Define and use tables for known SMCA IP types
        EDAC/mce_amd: Use SMCA prefix for error descriptions arrays
        EDAC/mce_amd: Add missing SMCA error descriptions
        x86/mce/AMD: Read MSRs on the CPU allocating the threshold blocks
        x86/RAS: Add syndrome support to mce_amd_inj
        EDAC/mce_amd: Print syndrome register value on SMCA systems
        x86/mce: Add support for new MCA_SYND register
        x86/mce/AMD: Use msr_ops.misc() in allocate_threshold_blocks()
        x86/mce: Drop X86_FEATURE_MCE_RECOVERY and the related model string test
        x86/mce: Improve memcpy_mcsafe()
        x86/mce: Add PCI quirks to identify Xeons with machine check recovery
        ...
      e606d81d
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 12b7bcb4
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main kernel side changes were:
      
         - uprobes enhancements (Masami Hiramatsu)
      
         - Uncore group events enhancements (David Carrillo-Cisneros)
      
         - x86 Intel: Add support for Skylake server uncore PMUs (Kan Liang)
      
         - x86 Intel: LBR cleanups and enhancements, for better branch
           annotation tracking (Peter Zijlstra)
      
         - x86 Intel: Add support for PTWRITE and power event tracing
           (Alexander Shishkin)
      
         - ... various fixes, cleanups and smaller enhancements.
      
        Lots of tooling changes - a couple of highlights:
      
         - Support event group view with hierarchy mode in 'perf top' and
           'perf report' (Namhyung Kim)
      
           e.g.:
      
           $ perf record -e '{cycles,instructions}' make
           $ perf report --hierarchy --stdio
           ...
           #   Overhead  Command / Shared Object / Symbol
           # ......................  ..................................
           ...
           25.74%  27.18%sh
           19.96%  24.14%libc-2.24.so
            9.55%  14.64%[.] __strcmp_sse2
            1.54%   0.00%[.] __tfind
            1.07%   1.13%[.] _int_malloc
            0.95%   0.00%[.] __strchr_sse2
            0.89%   1.39%[.] __tsearch
            0.76%   0.00%[.] strlen
      
         - Add branch stack / basic block info to 'perf annotate --stdio',
           where for each branch, we add an asm comment after the instruction
           with information on how often it was taken and predicted. See
           example with color output at:
      
             http://vger.kernel.org/~acme/perf/annotate_basic_blocks.png
      
           (Peter Zijlstra)
      
         - Add support for using symbols in address filters with Intel PT and
           ARM CoreSight (hardware assisted tracing facilities) (Adrian
           Hunter, Mathieu Poirier)
      
         - Add support for interacting with Coresight PMU ETMs/PTMs, that are
           IP blocks to perform hardware assisted tracing on a ARM CPU core
           (Mathieu Poirier)
      
         - Support generating cross arch probes, i.e. if you specify a vmlinux
           file for different arch than the one in the host machine,
      
              $ perf probe --definition function_name args
      
           will generate the probe definition string needed to append to the
           target machine /sys/kernel/debug/tracing/kprobes_events file, using
           scripting (Masami Hiramatsu).
      
         - Allow configuring the default 'perf report -s' sort order in
           ~/.perfconfig, for instance, "sym,dso" may be more fitting for
           kernel developers. (Arnaldo Carvalho de Melo)
      
         - ... plus lots of other changes, refactorings, features and fixes"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (149 commits)
        perf tests: Add dwarf unwind test for powerpc
        perf probe: Match linkage name with mangled name
        perf probe: Fix to cut off incompatible chars from group name
        perf probe: Skip if the function address is 0
        perf probe: Ignore the error of finding inline instance
        perf intel-pt: Fix decoding when there are address filters
        perf intel-pt: Enable decoder to handle TIP.PGD with missing IP
        perf intel-pt: Read address filter from AUXTRACE_INFO event
        perf intel-pt: Record address filter in AUXTRACE_INFO event
        perf intel-pt: Add a helper function for processing AUXTRACE_INFO
        perf intel-pt: Fix missing error codes processing auxtrace_info
        perf intel-pt: Add support for recording the max non-turbo ratio
        perf intel-pt: Fix snapshot overlap detection decoder errors
        perf probe: Increase debug level of SDT debug messages
        perf record: Add support for using symbols in address filters
        perf symbols: Add dso__last_symbol()
        perf record: Fix error paths
        perf record: Rename label 'out_symbol_exit'
        perf script: Fix vanished idle symbols
        perf evsel: Add support for address filters
        ...
      12b7bcb4
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 00bcf5cd
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - rwsem micro-optimizations (Davidlohr Bueso)
      
         - Improve the implementation and optimize the performance of
           percpu-rwsems. (Peter Zijlstra.)
      
         - Convert all lglock users to better facilities such as percpu-rwsems
           or percpu-spinlocks and remove lglocks. (Peter Zijlstra)
      
         - Remove the ticket (spin)lock implementation. (Peter Zijlstra)
      
         - Korean translation of memory-barriers.txt and related fixes to the
           English document. (SeongJae Park)
      
         - misc fixes and cleanups"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        x86/cmpxchg, locking/atomics: Remove superfluous definitions
        x86, locking/spinlocks: Remove ticket (spin)lock implementation
        locking/lglock: Remove lglock implementation
        stop_machine: Remove stop_cpus_lock and lg_double_lock/unlock()
        fs/locks: Use percpu_down_read_preempt_disable()
        locking/percpu-rwsem: Add down_read_preempt_disable()
        fs/locks: Replace lg_local with a per-cpu spinlock
        fs/locks: Replace lg_global with a percpu-rwsem
        locking/percpu-rwsem: Add DEFINE_STATIC_PERCPU_RWSEMand percpu_rwsem_assert_held()
        locking/pv-qspinlock: Use cmpxchg_release() in __pv_queued_spin_unlock()
        locking/rwsem, x86: Drop a bogus cc clobber
        futex: Add some more function commentry
        locking/hung_task: Show all locks
        locking/rwsem: Scan the wait_list for readers only once
        locking/rwsem: Remove a few useless comments
        locking/rwsem: Return void in __rwsem_mark_wake()
        locking, rcu, cgroup: Avoid synchronize_sched() in __cgroup_procs_write()
        locking/Documentation: Add Korean translation
        locking/Documentation: Fix a typo of example result
        locking/Documentation: Fix wrong section reference
        ...
      00bcf5cd
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de956b8f
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "Main changes in this cycle were:
      
         - Refactor the EFI memory map code into architecture neutral files
           and allow drivers to permanently reserve EFI boot services regions
           on x86, as well as ARM/arm64. (Matt Fleming)
      
         - Add ARM support for the EFI ESRT driver. (Ard Biesheuvel)
      
         - Make the EFI runtime services and efivar API interruptible by
           swapping spinlocks for semaphores. (Sylvain Chouleur)
      
         - Provide the EFI identity mapping for kexec which allows kexec to
           work on SGI/UV platforms with requiring the "noefi" kernel command
           line parameter. (Alex Thorlton)
      
         - Add debugfs node to dump EFI page tables on arm64. (Ard Biesheuvel)
      
         - Merge the EFI test driver being carried out of tree until now in
           the FWTS project. (Ivan Hu)
      
         - Expand the list of flags for classifying EFI regions as "RAM" on
           arm64 so we align with the UEFI spec. (Ard Biesheuvel)
      
         - Optimise out the EFI mixed mode if it's unsupported (CONFIG_X86_32)
           or disabled (CONFIG_EFI_MIXED=n) and switch the early EFI boot
           services function table for direct calls, alleviating us from
           having to maintain the custom function table. (Lukas Wunner)
      
         - Miscellaneous cleanups and fixes"
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        x86/efi: Round EFI memmap reservations to EFI_PAGE_SIZE
        x86/efi: Allow invocation of arbitrary boot services
        x86/efi: Optimize away setup_gop32/64 if unused
        x86/efi: Use kmalloc_array() in efi_call_phys_prolog()
        efi/arm64: Treat regions with WT/WC set but WB cleared as memory
        efi: Add efi_test driver for exporting UEFI runtime service interfaces
        x86/efi: Defer efi_esrt_init until after memblock_x86_fill
        efi/arm64: Add debugfs node to dump UEFI runtime page tables
        x86/efi: Remove unused find_bits() function
        fs/efivarfs: Fix double kfree() in error path
        x86/efi: Map in physical addresses in efi_map_region_fixed
        lib/ucs2_string: Speed up ucs2_utf8size()
        firmware-gsmi: Delete an unnecessary check before the function call "dma_pool_destroy"
        x86/efi: Initialize status to ensure garbage is not returned on small size
        efi: Replace runtime services spinlock with semaphore
        efi: Don't use spinlocks for efi vars
        efi: Use a file local lock for efivars
        efi/arm*: esrt: Add missing call to efi_esrt_init()
        efi/esrt: Use memremap not ioremap to access ESRT table in memory
        x86/efi-bgrt: Use efi_mem_reserve() to avoid copying image data
        ...
      de956b8f