1. 09 May, 2017 40 commits
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 28b47809
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
      
       - code optimizations for the Intel VT-d driver
      
       - ability to switch off a previously enabled Intel IOMMU
      
       - support for 'struct iommu_device' for OMAP, Rockchip and Mediatek
         IOMMUs
      
       - header optimizations for IOMMU core code headers and a few fixes that
         became necessary in other parts of the kernel because of that
      
       - ACPI/IORT updates and fixes
      
       - Exynos IOMMU optimizations
      
       - updates for the IOMMU dma-api code to bring it closer to use per-cpu
         iova caches
      
       - new command-line option to set default domain type allocated by the
         iommu core code
      
       - another command line option to allow the Intel IOMMU switched off in
         a tboot environment
      
       - ARM/SMMU: TLB sync optimisations for SMMUv2, Support for using an
         IDENTITY domain in conjunction with DMA ops, Support for SMR masking,
         Support for 16-bit ASIDs (was previously broken)
      
       - various other small fixes and improvements
      
      * tag 'iommu-updates-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (63 commits)
        soc/qbman: Move dma-mapping.h include to qman_priv.h
        soc/qbman: Fix implicit header dependency now causing build fails
        iommu: Remove trace-events include from iommu.h
        iommu: Remove pci.h include from trace/events/iommu.h
        arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()
        ACPI/IORT: Fix CONFIG_IOMMU_API dependency
        iommu/vt-d: Don't print the failure message when booting non-kdump kernel
        iommu: Move report_iommu_fault() to iommu.c
        iommu: Include device.h in iommu.h
        x86, iommu/vt-d: Add an option to disable Intel IOMMU force on
        iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed
        iommu/arm-smmu: Correct sid to mask
        iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
        iommu: Make iommu_bus_notifier return NOTIFY_DONE rather than error code
        omap3isp: Remove iommu_group related code
        iommu/omap: Add iommu-group support
        iommu/omap: Make use of 'struct iommu_device'
        iommu/omap: Store iommu_dev pointer in arch_data
        iommu/omap: Move data structures to omap-iommu.h
        iommu/omap: Drop legacy-style device support
        ...
      28b47809
    • Linus Torvalds's avatar
      Merge tag 'arc-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 4a1e31c6
      Linus Torvalds authored
      Pull ARC updates from Vineet Gupta:
      
       - AXS10x platform clk updates for I2S, PGU
      
       - add region based cache flush operation for ARCv2 cores
      
       - enforce PAE40 dependency on HIGHMEM
      
       - ptrace support for additional regs in ARCv2 cores
      
       - fix build failure in linux-next dut to a header include ordering
         change
      
      * tag 'arc-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        Revert "ARCv2: Allow enabling PAE40 w/o HIGHMEM"
        ARC: mm: fix build failure in linux-next for UP builds
        ARCv2: ptrace: provide regset for accumulator/r30 regs
        elf: Add ARCv2 specific core note section
        ARCv2: mm: micro-optimize region flush generated code
        ARCv2: mm: Merge 2 updates to DC_CTRL for region flush
        ARCv2: mm: Implement cache region flush operations
        ARC: mm: Move full_page computation into cache version agnostic wrapper
        arc: axs10x: Fix ARC PGU default clock frequency
        arc: axs10x: Add DT bindings for I2S audio playback
      4a1e31c6
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c6778ff8
      Linus Torvalds authored
      Pull ARM 64-bit DT updates from Olof Johansson:
       "Device-tree updates for arm64 platforms. Just as with 32-bit, a bunch
        of smaller changes, but also some new platforms that are worth
        mentioning:
      
         - Rockchip RK3399 platforms for Chromebooks, including Samsung
           Chromebook Plus (Kevin)
      
         - Orange Pi PC2 (Allwinner H5)
      
         - Freescale LS2088A and LS1088A SoCs
      
         - Expanded support for Nvidia Tegra186 (and Jetson TX2)"
      
      * tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (180 commits)
        arm64: dts: Add basic DT to support Spreadtrum's SP9860G
        arm64: dts: exynos: Use - instead of @ for DT OPP entries
        arm64: dts: exynos: Add support for s6e3hf2 panel device on TM2e board
        arm64: dts: juno: add information about L1 and L2 caches
        arm64: dts: juno: fix few unit address format warnings
        arm64: marvell: dts: enable the crypto engine on the Armada 8040 DB
        arm64: marvell: dts: enable the crypto engine on the Armada 7040 DB
        arm64: marvell: dts: add crypto engine description for 7k/8k
        arm64: dts: marvell: add sdhci support for Armada 7K/8K
        arm64: dts: marvell: add eMMC support for Armada 37xx
        arm64: dts: hisi: add pinctrl dtsi file for HiKey960 development board
        arm64: dts: hisi: add drive strength levels of the pins for Hi3660 SoC
        arm64: dts: hisi: enable the NIC and SAS for the hip07-d05 board
        arm64: dts: hisi: add SAS nodes for the hip07 SoC
        arm64: dts: hisi: add RoCE nodes for the hip07 SoC
        arm64: dts: hisi: add network related nodes for the hip07 SoC
        arm64: dts: hisi: add mbigen nodes for the hip07 SoC
        arm64: dts: rockchip: fix the memory size of PX5 Evaluation board
        arm64: dts: hisilicon: add dts files for hi3798cv200-poplar board
        dt-bindings: arm: hisilicon: add bindings for hi3798cv200 SoC and Poplar board
        ...
      c6778ff8
    • Linus Torvalds's avatar
      Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0ff4c01b
      Linus Torvalds authored
      Pull ARM SoC 64-bit changes from Olof Johansson:
       "Changes to platform code for 64-bit ARM platforms.
      
        Most of these are small changes to the one defconfig we use on arm64
        (no per-platform configs there), to enable new drivers.
      
        There are also a few other changes. Broadcom sold off their 'Vulcan'
        design to Cavium, where it is now called ThunderX2. While we normally
        don't rename stuff based on marketing's whims, it seemed appropriate
        to bring in renames on a few things such as MAINTAINERS, etc"
      
      * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: sunxi: always enable reset controller
        arm64: defconfig: enable the Safexcel crypto engine as a module
        arm64: configs: enable SDHCI driver for Xenon
        MAINTAINERS: Broadcom Vulcan is now Cavium ThunderX2
        arm64: defconfig: add Allwinner USB PHY
        arm64: defconfig: enable MVPP2
        arm64: defconfig: Enable video, DRM and LPASS drivers for Exynos5433 and Exynos7
        arm64: exynos: Enable Exynos PMU and PM domains drivers
        arm64: only select PINCTRL for Allwinner platforms
        arm64: set CONFIG_MMC_BCM2835=y in defconfig
        arm64: defconfig: enable I2C_PXA
        arm64: defconfig: enable MVNETA
        ARM64: defconfig: enable the leds-pwm driver and default-on trigger
        arm64: defconfig: Enable SH Mobile I2C controller
      0ff4c01b
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0160e00a
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "Driver updates for ARM SoCs:
      
        Reset subsystem, merged through arm-soc by tradition:
         - Make bool drivers explicitly non-modular
         - New support for i.MX7 and Arria10 reset controllers
      
        PATA driver for Palmchip BK371 (acked by Tejun)
      
        Power domain drivers for i.MX (GPC, GPCv2)
         - Moved out of mach-imx for GPC
         - Bunch of tweaks, fixes, etc
      
        PMC support for Tegra186
      
        SoC detection support for Renesas RZ/G1H and RZ/G1N
      
        Move Tegra flow controller driver from mach directory to drivers/soc
         - (Power management / CPU power driver)
      
        Misc smaller tweaks for other platforms"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits)
        soc: pm-domain: Fix the mangled urls
        soc: renesas: rcar-sysc: Add support for R-Car H3 ES2.0
        soc: renesas: rcar-sysc: Add support for fixing up power area tables
        soc: renesas: Register SoC device early
        soc: imx: gpc: add workaround for i.MX6QP to the GPC PD driver
        dt-bindings: imx-gpc: add i.MX6 QuadPlus compatible
        soc: imx: gpc: add defines for domain index
        soc: imx: Add GPCv2 power gating driver
        dt-bindings: Add GPCv2 power gating driver
        ARM/clk: move the ICST library to drivers/clk
        ARM: plat-versatile: remove stale clock header
        ARM: keystone: Drop PM domain support for k2g
        soc: ti: Add ti_sci_pm_domains driver
        dt-bindings: Add TI SCI PM Domains
        PM / Domains: Do not check if simple providers have phandle cells
        PM / Domains: Add generic data pointer to genpd data struct
        soc/tegra: Add initial flowctrl support for Tegra132/210
        soc/tegra: flowctrl: Add basic platform driver
        soc/tegra: Move Tegra flowctrl driver
        ARM: tegra: Remove unnecessary inclusion of flowctrl header
        ...
      0160e00a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c81ee18e
      Linus Torvalds authored
      Pull ARM: SoC defconfig updates from Olof Johansson:
       "We've traditionally kept defconfig updates in a separate branch, often
        to encourage submaintainers to handle those patches separately to
        avoid conflicts on the shared files. The amount of changes seem to be
        decreasing though, so we might rethink how we handle this going
        forward.
      
        There really isn't much to write about here. The bulk of changes here
        are enabling drivers for whatever platforms the hardware is found on
        (and multi-configs)"
      
      * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (30 commits)
        multi_v7_defconfig: make Rockchip usb2-phy built-in
        ARM: omap2plus_defconfig: Enable droid 4 devices
        ARM: omap2plus_defconfig: Add QMI, ACM and PPP as loadable modules
        ARM: configs: aspeed: Add new drivers
        ARM: configs: aspeed: Update configs for BMC systems
        ARM: omap2plus_defconfig: Enable TI Ethernet PHY
        ARM: configs: Add new config fragment to change RAM start point
        ARM: configs: stm32: Add I2C support
        multi_v7_defconfig: make Rockchip DRM drivers built-in
        ARM: configs: stm32: Set CPU_V7M_NUM_IRQ to max value
        ARM: imx_v6_v7_defconfig: Select SMSC_PHY
        ARM: davinci_all_defconfig: convert to use libata PATA
        ARM: qcom_defconfig: Enable Qualcomm remoteproc and related drivers
        ARM: omap2plus_defconfig: enable ahci-dm816 module
        arm: set CONFIG_MMC_BCM2835=y in bcm2835_defconfig and multi_v7_defconfig
        ARM: bcm2835: Enable missing CMA settings for VC4 driver
        ARM: socfpga: updates for socfpga_defconfig
        ARM: imx_v6_v7_defconfig: Select hid-multitouchdriver
        ARM: imx_v6_v7_defconfig: Select max11801_ts touchscreen driver
        ARM: exynos_defconfig: Increase CONFIG_CMA_SIZE_MBYTES to 96
        ...
      c81ee18e
    • Linus Torvalds's avatar
      Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 85d60490
      Linus Torvalds authored
      Pull ARM Device-tree updates from Olof Johansson:
       "Device-tree continues to see lots of updates. The majority of patches
        here are smaller changes for new hardware on existing platforms, and
        there are a few larger changes worth pointing out.
      
        Major new platforms:
      
         - Gemini has been ported to DT, so a handful of "new" platforms moved
           over from board files
      
         - Rockchip RK3288 support for Tinkerboard and Phytec phyCORE-RK3288
           SoM and RDK
      
         - A bunch of embedded platforms, several Linksys platforms, Synology
           DS116,
      
         - Motorola Droid4 (really old OMAP-based phone) support is added.
      
        Some refactorings, i.e. Allwinner H3/H5 support is commonalized.
      
        And lots of smaller changes, cleanups, etc. See shortlog for more
        description
      
        We're adding ability to cross-include DT files between arm and arm64,
        by creating appropriate links in the dt-include directory, and using
        arm/ and arm64/ as include prefixes. This will avoid other local hacks
        such as per-file links between the two arch trees (this broke for
        external mirroring of DT contents). Now they can just provide their
        own appropriate dt-include hierarcy per platform"
      
      * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (349 commits)
        ARM: dts: exynos: Use - instead of @ for DT OPP entries
        arm: spear6xx: add DT description of the ADC on SPEAr600
        arm: spear6xx: remove unneeded pinctrl properties in spear600-evb
        arm: spear6xx: switch spear600-evb to the new flash partition DT binding
        arm: spear6xx: fix spaces in spear600-evb.dts
        arm: spear6xx: use node labels in spear600-evb.dts
        arm: spear6xx: add labels to various nodes in spear600.dtsi
        ARM: dts: vexpress: fix few unit address format warnings
        ARM: dts: at91: sama5d3_xplained: not all ADC channels are available
        ARM: dts: at91: sama5d3_xplained: fix ADC vref
        ARM: dts: at91: add envelope detector mux to the Axentia TSE-850
        ARM: dts: armada-38x: label USB and SATA nodes
        ARM: dts: imx6q-utilite-pro: add hpd gpio
        ARM: dts: imx6qp-sabresd: Set reg_arm regulator supply
        ARM: dts: imx6qdl-sabresd: Set LDO regulator supply
        ARM: dts: imx: add Gateworks Ventana GW5903 support
        ARM: dts: i.MX25: add AIPS control registers
        ARM: dts: imx7-colibri: add Carrier Board 3.3V/5V regulators
        ARM: dts: imx7-colibri: remove 1.8V fixed regulator
        ARM: dts: imx7-colibri: allow to disable Ethernet rail
        ...
      85d60490
    • Linus Torvalds's avatar
      Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8d648aad
      Linus Torvalds authored
      Pull ARM SoC platform updates from Olof Johansson:
       "SoC platform changes (arch/arm/mach-*). This merge window, the bulk is
        for a few platforms:
      
        Gemini:
         - Legacy platform that Linus Walleij has converted to multiplatform
           and DT, so a handful of various tweaks there, removal of some old
           stale support, etc.
      
        Atmel AT91:
         - Fixup of various power management related pieces
         - Move of SoC detection to a drivers/soc driver instead
      
        ST Micro STM32:
         - New SoC support: STM32H743
      
        TI platforms:
         - More driver support for Davinci (SATA in particular)
         - Removal of some old stale hwmod files (linkspace platform)
      
        Misc:
         - A couple of smaller patches for i.MX, sunxi, hisi"
      
      * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (57 commits)
        ARM: davinci: Add clock for CPPI 4.1 DMA engine
        ARM: mxs: add support for I2SE Duckbill 2 boards
        MAINTAINERS: Update the Allwinner sunXi entry
        ARM: i.MX25: globally disable supervisor protect
        ARM: at91: move SoC detection to its own driver
        ARM: at91: pm: correct typo
        ARM: at91: pm: Remove at91_pm_set_standby
        ARM: at91: pm: Merge all at91sam9*_pm_init
        ARM: at91: pm: Tie the USB clock mask to the pmc
        ARM: at91: pm: Tie the memory controller type to the ramc id
        ARM: at91: pm: Workaround DDRSDRC self-refresh bug with LPDDR1 memories.
        ARM: at91: pm: Simplify at91rm9200_standby
        ARM: at91: pm: Use struct at91_pm_data in pm_suspend.S
        ARM: at91: pm: Move global variables into at91_pm_data
        ARM: at91: pm: Move at91_ramc_read/write to pm.c
        ARM: at91: pm: Cleanup headers
        MAINTAINERS: Add memory drivers to AT91 entry
        MAINTAINERS: Update AT91 entry
        ARM: davinci: add pata_bk3710 libata driver support
        ARM: OMAP2+: mark omap_init_rng as __init
        ...
      8d648aad
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e07e368b
      Linus Torvalds authored
      Pull misc ARM SoC fixes from Olof Johansson:
       "ARM SoC non-urgent fixes for merge window
      
        Smaller patches that didn't seem to find a home in other branches, and
        low-priority fixes from late in the merge window. A number of these
        are MAINTAINER updates, it seems.
      
        Highlights:
      
         * Maintainers:
           - Remove Alexandre Courbot and Stephen Warren from Tegra
             maintainership, add Jon Hunter
           - Remove Stephen Warren and add Stefan Wahren to bcm2835
           - Tweaks for file flagging for Marvell Dove
      
         * Fixes:
           - For two non-common-clk platform, handle clk_disable with NULL arg
           - Remove redundant Kconfig select for Oxnas"
      
      * tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: mmp: let clk_disable() return immediately if clk is NULL
        ARM: w90x900: let clk_disable() return immediately if clk is NULL
        MAINTAINERS: Add file patterns for dove device tree bindings
        ARM: oxnas: remove redundant select CPU_V6K
        MAINTAINERS: tegra: Remove self as maintainer
        MAINTAINERS: tegra: Replace Stephen with Jon
        MAINTAINERS: Add Stefan Wahren to bcm2835.
        MAINTAINERS: remove swarren from bcm2835
        MAINTAINERS: Add Jon Mason to BCM5301X maintainers
      e07e368b
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 11fbf53d
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "Assorted bits and pieces from various people. No common topic in this
        pile, sorry"
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs/affs: add rename exchange
        fs/affs: add rename2 to prepare multiple methods
        Make stat/lstat/fstatat pass AT_NO_AUTOMOUNT to vfs_statx()
        fs: don't set *REFERENCED on single use objects
        fs: compat: Remove warning from COMPATIBLE_IOCTL
        remove pointless extern of atime_need_update_rcu()
        fs: completely ignore unknown open flags
        fs: add a VALID_OPEN_FLAGS
        fs: remove _submit_bh()
        fs: constify tree_descr arrays passed to simple_fill_super()
        fs: drop duplicate header percpu-rwsem.h
        fs/affs: bugfix: Write files greater than page size on OFS
        fs/affs: bugfix: enable writes on OFS disks
        fs/affs: remove node generation check
        fs/affs: import amigaffs.h
        fs/affs: bugfix: make symbolic links work again
      11fbf53d
    • Linus Torvalds's avatar
      Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 339fbf67
      Linus Torvalds authored
      Pull vfs fix from Al Viro:
       "Braino fix for iov_iter_revert() misuse"
      
      * 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix braino in generic_file_read_iter()
      339fbf67
    • Linus Torvalds's avatar
      proc: try to remove use of FOLL_FORCE entirely · 8ee74a91
      Linus Torvalds authored
      We fixed the bugs in it, but it's still an ugly interface, so let's see
      if anybody actually depends on it.  It's entirely possible that nothing
      actually requires the whole "punch through read-only mappings"
      semantics.
      
      For example, gdb definitely uses the /proc/<pid>/mem interface, but it
      looks like it mainly does it for regular reads of the target (that don't
      need FOLL_FORCE), and looking at the gdb source code seems to fall back
      on the traditional ptrace(PTRACE_POKEDATA) interface if it needs to.
      
      If this breaks something, I do have a (more complex) version that only
      enables FOLL_FORCE when somebody has PTRACE_ATTACH'ed to the target,
      like the comment here used to say ("Maybe we should limit FOLL_FORCE to
      actual ptrace users?").
      
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8ee74a91
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.12-rc1' of... · 2868b251
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This update consists of:
      
         - important fixes for build failures and clean target related
           warnings to address regressions introduced in commit 88baa78d
           ("selftests: remove duplicated all and clean target")
      
         - several minor spelling fixes in and log messages and comment
           blocks.
      
         - Enabling configs for better test coverage in ftrace, vm, and
           cpufreq tests.
      
         - .gitignore changes"
      
      * tag 'linux-kselftest-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (26 commits)
        selftests: x86: add missing executables to .gitignore
        selftests: watchdog: accept multiple params on command line
        selftests: create cpufreq kconfig fragments
        selftests: x86: override clean in lib.mk to fix warnings
        selftests: sync: override clean in lib.mk to fix warnings
        selftests: splice: override clean in lib.mk to fix warnings
        selftests: gpio: fix clean target to remove all generated files and dirs
        selftests: add gpio generated files to .gitignore
        selftests: powerpc: override clean in lib.mk to fix warnings
        selftests: gpio: override clean in lib.mk to fix warnings
        selftests: futex: override clean in lib.mk to fix warnings
        selftests: lib.mk: define CLEAN macro to allow Makefiles to override clean
        selftests: splice: fix clean target to not remove default_file_splice_read.sh
        selftests: gpio: add config fragment for gpio-mockup
        selftests: breakpoints: allow to cross-compile for aarch64/arm64
        selftests/Makefile: Add missed PHONY targets
        selftests/vm/run_vmtests: Fix wrong comment
        selftests/Makefile: Add missed closing `"` in comment
        selftests/vm/run_vmtests: Polish output text
        selftests/timers: fix spelling mistake: "Asynchronous"
        ...
      2868b251
    • Linus Torvalds's avatar
      Merge tag 'trace-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 00d95933
      Linus Torvalds authored
      Pull more tracing updates from Steven Rostedt:
       "These are three simple changes.
      
        The first one is just a switch from using strcpy() to strlcpy().
        Someone thought that it may cause an overflow bug, but since it only
        copies comms into a pre-allocated array of TASK_COMM_LEN, and no comm
        should ever be bigger than that, nor not end with a nul character,
        this change is more of a safety precaution than fixing anything that
        is actually broken.
      
        The other two changes are simply cleaning and optimizing some code"
      
      * tag 'trace-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace: Simplify ftrace_match_record() even more
        ftrace: Remove an unneeded condition
        tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
      00d95933
    • Linus Torvalds's avatar
      Merge tags 'for-linus' and 'for-next' of... · 3341713c
      Linus Torvalds authored
      Merge tags 'for-linus' and 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
      
      Pull more rdma updates from Doug Ledford:
       "As mentioned in my first pull request, this is the subsequent pull
        requests I had. This is all I have, and in fact this cleans out the
        RDMA subsystem's entire patchworks queue of kernel changes that are
        ready to go (well, it did for the weekend anyway, a few new patches
        are in, but they'll be coming during the -rc cycle).
      
        The first tag contains a single patch that would have conflicted if
        taken from my tree or DaveM's tree as it needed our trees merged to
        come cleanly.
      
        The second tag contains the patch series from Intel plus three other
        stragllers that came in late last week. I took them because it allowed
        me to legitimately claim that the RDMA patchworks queue was, for a
        short time, 100% cleared of all waiting kernel patches, woohoo! :-).
      
        I have it under my for-next tag, so it did get 0day and linux- next
        over the end of last week, and linux-next did show one minor conflict.
      
        Summary:
      
        'for-linus' tag:
         - mlx5/IPoIB fixup patch
      
        'for-next' tag:
         - the hfi1 15 patch set that landed late
         - IPoIB get_link_ksettings which landed late because I asked for a
           respin
         - one late rxe change
         - one -rc worthy fix that's in early"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        IB/mlx5: Enable IPoIB acceleration
      
      * tag 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        rxe: expose num_possible_cpus() cnum_comp_vectors
        IB/rxe: Update caller's CRC for RXE_MEM_TYPE_DMA memory type
        IB/hfi1: Clean up on context initialization failure
        IB/hfi1: Fix an assign/ordering issue with shared context IDs
        IB/hfi1: Clean up context initialization
        IB/hfi1: Correctly clear the pkey
        IB/hfi1: Search shared contexts on the opened device, not all devices
        IB/hfi1: Remove atomic operations for SDMA_REQ_HAVE_AHG bit
        IB/hfi1: Use filedata rather than filepointer
        IB/hfi1: Name function prototype parameters
        IB/hfi1: Fix a subcontext memory leak
        IB/hfi1: Return an error on memory allocation failure
        IB/hfi1: Adjust default eager_buffer_size to 8MB
        IB/hfi1: Get rid of divide when setting the tx request header
        IB/hfi1: Fix yield logic in send engine
        IB/hfi1, IB/rdmavt: Move r_adefered to r_lock cache line
        IB/hfi1: Fix checks for Offline transient state
        IB/ipoib: add get_link_ksettings in ethtool
      3341713c
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 857f8640
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - add framework for supporting PCIe devices in Endpoint mode (Kishon
         Vijay Abraham I)
      
       - use non-postable PCI config space mappings when possible (Lorenzo
         Pieralisi)
      
       - clean up and unify mmap of PCI BARs (David Woodhouse)
      
       - export and unify Function Level Reset support (Christoph Hellwig)
      
       - avoid FLR for Intel 82579 NICs (Sasha Neftin)
      
       - add pci_request_irq() and pci_free_irq() helpers (Christoph Hellwig)
      
       - short-circuit config access failures for disconnected devices (Keith
         Busch)
      
       - remove D3 sleep delay when possible (Adrian Hunter)
      
       - freeze PME scan before suspending devices (Lukas Wunner)
      
       - stop disabling MSI/MSI-X in pci_device_shutdown() (Prarit Bhargava)
      
       - disable boot interrupt quirk for ASUS M2N-LR (Stefan Assmann)
      
       - add arch-specific alignment control to improve device passthrough by
         avoiding multiple BARs in a page (Yongji Xie)
      
       - add sysfs sriov_drivers_autoprobe to control VF driver binding
         (Bodong Wang)
      
       - allow slots below PCI-to-PCIe "reverse bridges" (Bjorn Helgaas)
      
       - fix crashes when unbinding host controllers that don't support
         removal (Brian Norris)
      
       - add driver for MicroSemi Switchtec management interface (Logan
         Gunthorpe)
      
       - add driver for Faraday Technology FTPCI100 host bridge (Linus
         Walleij)
      
       - add i.MX7D support (Andrey Smirnov)
      
       - use generic MSI support for Aardvark (Thomas Petazzoni)
      
       - make Rockchip driver modular (Brian Norris)
      
       - advertise 128-byte Read Completion Boundary support for Rockchip
         (Shawn Lin)
      
       - advertise PCI_EXP_LNKSTA_SLC for Rockchip root port (Shawn Lin)
      
       - convert atomic_t to refcount_t in HV driver (Elena Reshetova)
      
       - add CPU IRQ affinity in HV driver (K. Y. Srinivasan)
      
       - fix PCI bus removal in HV driver (Long Li)
      
       - add support for ThunderX2 DMA alias topology (Jayachandran C)
      
       - add ThunderX pass2.x 2nd node MCFG quirk (Tomasz Nowicki)
      
       - add ITE 8893 bridge DMA alias quirk (Jarod Wilson)
      
       - restrict Cavium ACS quirk only to CN81xx/CN83xx/CN88xx devices
         (Manish Jaggi)
      
      * tag 'pci-v4.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (146 commits)
        PCI: Don't allow unbinding host controllers that aren't prepared
        ARM: DRA7: clockdomain: Change the CLKTRCTRL of CM_PCIE_CLKSTCTRL to SW_WKUP
        MAINTAINERS: Add PCI Endpoint maintainer
        Documentation: PCI: Add userguide for PCI endpoint test function
        tools: PCI: Add sample test script to invoke pcitest
        tools: PCI: Add a userspace tool to test PCI endpoint
        Documentation: misc-devices: Add Documentation for pci-endpoint-test driver
        misc: Add host side PCI driver for PCI test function device
        PCI: Add device IDs for DRA74x and DRA72x
        dt-bindings: PCI: dra7xx: Add DT bindings to enable unaligned access
        PCI: dwc: dra7xx: Workaround for errata id i870
        dt-bindings: PCI: dra7xx: Add DT bindings for PCI dra7xx EP mode
        PCI: dwc: dra7xx: Add EP mode support
        PCI: dwc: dra7xx: Facilitate wrapper and MSI interrupts to be enabled independently
        dt-bindings: PCI: Add DT bindings for PCI designware EP mode
        PCI: dwc: designware: Add EP mode support
        Documentation: PCI: Add binding documentation for pci-test endpoint function
        ixgbe: Use pcie_flr() instead of duplicating it
        IB/hfi1: Use pcie_flr() instead of duplicating it
        PCI: imx6: Fix spelling mistake: "contol" -> "control"
        ...
      857f8640
    • Linus Torvalds's avatar
      Merge tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 8f3207c7
      Linus Torvalds authored
      Pull tty/serial updates from Greg KH:
       "Here is the "big" TTY/Serial patch updates for 4.12-rc1
      
        Not a lot of new things here, the normal number of serial driver
        updates and additions, tiny bugs fixed, and some core files split up
        to make future changes a bit easier for Nicolas's "tiny-tty" work.
      
        All of these have been in linux-next for a while"
      
      * tag 'tty-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (62 commits)
        serial: small Makefile reordering
        tty: split job control support into a file of its own
        tty: move baudrate handling code to a file of its own
        console: move console_init() out of tty_io.c
        serial: 8250_early: Add earlycon support for Palmchip UART
        tty: pl011: use "qdf2400_e44" as the earlycon name for QDF2400 E44
        vt: make mouse selection of non-ASCII consistent
        vt: set mouse selection word-chars to gpm's default
        imx-serial: Reduce RX DMA startup latency when opening for reading
        serial: omap: suspend device on probe errors
        serial: omap: fix runtime-pm handling on unbind
        tty: serial: omap: add UPF_BOOT_AUTOCONF flag for DT init
        serial: samsung: Remove useless spinlock
        serial: samsung: Add missing checks for dma_map_single failure
        serial: samsung: Use right device for DMA-mapping calls
        serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off
        tty: fix comment typo s/repsonsible/responsible/
        tty: amba-pl011: Fix spurious TX interrupts
        serial: xuartps: Enable clocks in the pm disable case also
        serial: core: Re-use struct uart_port {name} field
        ...
      8f3207c7
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · bf5f8946
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
      
       - the rest of MM
      
       - various misc things
      
       - procfs updates
      
       - lib/ updates
      
       - checkpatch updates
      
       - kdump/kexec updates
      
       - add kvmalloc helpers, use them
      
       - time helper updates for Y2038 issues. We're almost ready to remove
         current_fs_time() but that awaits a btrfs merge.
      
       - add tracepoints to DAX
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (114 commits)
        drivers/staging/ccree/ssi_hash.c: fix build with gcc-4.4.4
        selftests/vm: add a test for virtual address range mapping
        dax: add tracepoint to dax_insert_mapping()
        dax: add tracepoint to dax_writeback_one()
        dax: add tracepoints to dax_writeback_mapping_range()
        dax: add tracepoints to dax_load_hole()
        dax: add tracepoints to dax_pfn_mkwrite()
        dax: add tracepoints to dax_iomap_pte_fault()
        mtd: nand: nandsim: convert to memalloc_noreclaim_*()
        treewide: convert PF_MEMALLOC manipulations to new helpers
        mm: introduce memalloc_noreclaim_{save,restore}
        mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
        mm/huge_memory.c: deposit a pgtable for DAX PMD faults when required
        mm/huge_memory.c: use zap_deposited_table() more
        time: delete CURRENT_TIME_SEC and CURRENT_TIME
        gfs2: replace CURRENT_TIME with current_time
        apparmorfs: replace CURRENT_TIME with current_time()
        lustre: replace CURRENT_TIME macro
        fs: ubifs: replace CURRENT_TIME_SEC with current_time
        fs: ufs: use ktime_get_real_ts64() for birthtime
        ...
      bf5f8946
    • Andrew Morton's avatar
      drivers/staging/ccree/ssi_hash.c: fix build with gcc-4.4.4 · 4d2b5bca
      Andrew Morton authored
        drivers/staging/ccree/ssi_hash.c:1990: error: unknown field 'template_ahash' specified in initializer
        drivers/staging/ccree/ssi_hash.c:1991: error: unknown field 'init' specified in initializer
        drivers/staging/ccree/ssi_hash.c:1991: warning: missing braces around initializer
        drivers/staging/ccree/ssi_hash.c:1991: warning: (near initialization for 'driver_hash[0].<anonymous>.template_ahash')
        drivers/staging/ccree/ssi_hash.c:1992: error: unknown field 'update' specified in initializer
        drivers/staging/ccree/ssi_hash.c:1992: warning: excess elements in union initializer
        drivers/staging/ccree/ssi_hash.c:1992: warning: (near initialization for 'driver_hash[0].<anonymous>')
        drivers/staging/ccree/ssi_hash.c:1993: error: unknown field 'final' specified in initializer
        drivers/staging/ccree/ssi_hash.c:1993: warning: excess elements in union initializer
        drivers/staging/ccree/ssi_hash.c:1993: warning: (near initialization for 'driver_hash[0].<anonymous>')
        ...
      
      gcc-4.4.4 has issues with anon union initializers.  Work around this.
      
      Cc: Gilad Ben-Yossef <gilad@benyossef.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4d2b5bca
    • Anshuman Khandual's avatar
      selftests/vm: add a test for virtual address range mapping · 4e5ce33c
      Anshuman Khandual authored
      This verifies virtual address mapping below and above the 128TB range
      and makes sure that address returned are within the expected range
      depending upon the hint passed from the user space.
      
      Link: http://lkml.kernel.org/r/20170418095252.20533-1-khandual@linux.vnet.ibm.comSigned-off-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
      Cc: Michal Suchanek <msuchanek@suse.de>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Shuah Khan <shuahkh@osg.samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4e5ce33c
    • Ross Zwisler's avatar
      dax: add tracepoint to dax_insert_mapping() · b4440734
      Ross Zwisler authored
      Add a tracepoint to dax_insert_mapping(), following the same logging
      conventions as the rest of DAX.  This tracepoint, along with the one in
      dax_load_hole(), lets us know how a DAX PTE fault was serviced.
      
      Here is an example DAX fault that inserts a PTE mapping:
      
        small-1126  [007] ....
         145.451604: dax_pte_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 pgoff 0x220
      
        small-1126  [007] ....
         145.452317: dax_insert_mapping: dev 259:0 ino 0x1003 shared write address 0x10420000 radix_entry 0x100006
      
        small-1126  [007] ....
         145.452399: dax_pte_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 pgoff 0x220 MAJOR|NOPAGE
      
      Link: http://lkml.kernel.org/r/20170221195116.13278-7-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b4440734
    • Ross Zwisler's avatar
      dax: add tracepoint to dax_writeback_one() · f9bc3a07
      Ross Zwisler authored
      Add a tracepoint to dax_writeback_one(), following the same logging
      conventions as the rest of DAX.
      
      Here is an example range writeback which ends up flushing one PMD and
      one PTE:
      
        test-1265  [003] ....
         496.615250: dax_writeback_range: dev 259:0 ino 0x1003 pgoff 0x0-0x7ffffffffffff
      
        test-1265  [003] ....
         496.616263: dax_writeback_one: dev 259:0 ino 0x1003 pgoff 0x0 pglen 0x200
      
        test-1265  [003] ....
         496.616270: dax_writeback_one: dev 259:0 ino 0x1003 pgoff 0x305 pglen 0x1
      
        test-1265  [003] ....
         496.616272: dax_writeback_range_done: dev 259:0 ino 0x1003 pgoff 0x0-0x7ffffffffffff
      
      [akpm@linux-foundation.org: struct blk_dax_ctl has disappeared]
      Link: http://lkml.kernel.org/r/20170221195116.13278-6-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f9bc3a07
    • Ross Zwisler's avatar
      dax: add tracepoints to dax_writeback_mapping_range() · d14a3f48
      Ross Zwisler authored
      Add tracepoints to dax_writeback_mapping_range(), following the same
      logging conventions as the rest of DAX.
      
      Here is an example writeback call:
      
        msync-1085  [006] ....
         200.902565: dax_writeback_range: dev 259:0 ino 0x1003 pgoff 0x200-0x2ff
      
        msync-1085  [006] ....
         200.902579: dax_writeback_range_done: dev 259:0 ino 0x1003 pgoff 0x200-0x2ff
      
      [ross.zwisler@linux.intel.com: fix regression in dax_writeback_mapping_range()]
        Link: http://lkml.kernel.org/r/20170314215358.31451-1-ross.zwisler@linux.intel.com
      Link: http://lkml.kernel.org/r/20170221195116.13278-5-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d14a3f48
    • Ross Zwisler's avatar
      dax: add tracepoints to dax_load_hole() · 678c9fd0
      Ross Zwisler authored
      Add tracepoints to dax_load_hole(), following the same logging conventions
      as the rest of DAX.
      
      Here is the logging generated by a PTE read from a hole:
      
        read-1075  [002] ....
          62.362108: dax_pte_fault: dev 259:0 ino 0x1003 shared ALLOW_RETRY|KILLABLE|USER address 0x10480000 pgoff 0x280
      
        read-1075  [002] ....
          62.362140: dax_load_hole: dev 259:0 ino 0x1003 shared ALLOW_RETRY|KILLABLE|USER address 0x10480000 pgoff 0x280 NOPAGE
      
        read-1075  [002] ....
          62.362141: dax_pte_fault_done: dev 259:0 ino 0x1003 shared ALLOW_RETRY|KILLABLE|USER address 0x10480000 pgoff 0x280 NOPAGE
      
      Link: http://lkml.kernel.org/r/20170221195116.13278-4-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      678c9fd0
    • Ross Zwisler's avatar
      dax: add tracepoints to dax_pfn_mkwrite() · c3ff68d7
      Ross Zwisler authored
      Add tracepoints to dax_pfn_mkwrite(), following the same logging
      conventions as the rest of DAX.
      
      Here is an example PTE fault followed by a pfn_mkwrite:
      
        small_aligned-1094  [002] ....
         374.084998: dax_pte_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200
      
        small_aligned-1094  [002] ....
         374.085145: dax_pte_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200 MAJOR|NOPAGE
      
        small_aligned-1094  [002] ....
         374.085165: dax_pfn_mkwrite: dev 259:0 ino 0x1003 shared WRITE|MKWRITE|ALLOW_RETRY|KILLABLE|USER address 0x10400000 pgoff 0x200 NOPAGE
      
      Link: http://lkml.kernel.org/r/20170221195116.13278-3-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c3ff68d7
    • Ross Zwisler's avatar
      dax: add tracepoints to dax_iomap_pte_fault() · a9c42b33
      Ross Zwisler authored
      Patch series "second round of tracepoints for DAX".
      
      This second round of DAX tracepoint patches adds tracing to the PTE
      fault path (dax_iomap_pte_fault(), dax_pfn_mkwrite(), dax_load_hole(),
      dax_insert_mapping()) and to the writeback path
      (dax_writeback_mapping_range(), dax_writeback_one()).
      
      The purpose of this tracing is to give us a high level view of what DAX
      is doing, whether faults are being serviced by PMDs or PTEs, and by real
      storage or by zero pages covering holes.
      
      I do have some patches nearly ready which also add tracing to
      grab_mapping_entry() and dax_insert_mapping_entry().  These are more
      targeted at logging how we are interacting with the radix tree, how we
      use empty entries for locking, whether we "downgrade" huge zero pages to
      4k PTE sized allocations, etc.  In the end it seemed to me that this
      might be too detailed to have as constantly present tracepoints, but if
      anyone sees value in having tracepoints like this in the DAX code
      permanently (Jan?), please let me know and I'll add those last two
      patches.
      
      All these tracepoints were done to be consistent with the style of the
      XFS tracepoints and with the existing DAX PMD tracepoints.
      
      This patch (of 6):
      
      Add tracepoints to dax_iomap_pte_fault(), following the same logging
      conventions as the rest of DAX.
      
      Here is an example fault that initially tries to be serviced by the PMD
      fault handler but which falls back to PTEs because the VMA isn't large
      enough to hold a PMD:
      
        small-1086  [005] ....
         71.140014: xfs_filemap_huge_fault: dev 259:0 ino 0x1003
      
        small-1086  [005] ....
          71.140027: dax_pmd_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 vm_start 0x10200000 vm_end 0x10500000 pgoff 0x220 max_pgoff 0x1400
      
        small-1086  [005] ....
          71.140028: dax_pmd_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 vm_start 0x10200000 vm_end 0x10500000 pgoff 0x220 max_pgoff 0x1400 FALLBACK
      
        small-1086  [005] ....
          71.140035: dax_pte_fault: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 pgoff 0x220
      
        small-1086  [005] ....
          71.140396: dax_pte_fault_done: dev 259:0 ino 0x1003 shared WRITE|ALLOW_RETRY|KILLABLE|USER address 0x10420000 pgoff 0x220 MAJOR|NOPAGE
      
      Link: http://lkml.kernel.org/r/20170221195116.13278-2-ross.zwisler@linux.intel.comSigned-off-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Matthew Wilcox <mawilcox@microsoft.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9c42b33
    • Vlastimil Babka's avatar
      mtd: nand: nandsim: convert to memalloc_noreclaim_*() · dcbe8214
      Vlastimil Babka authored
      Nandsim has own functions set_memalloc() and clear_memalloc() for robust
      setting and clearing of PF_MEMALLOC.  Replace them by the new generic
      helpers.  No functional change.
      
      Link: http://lkml.kernel.org/r/20170405074700.29871-5-vbabka@suse.czSigned-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Josef Bacik <jbacik@fb.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dcbe8214
    • Vlastimil Babka's avatar
      treewide: convert PF_MEMALLOC manipulations to new helpers · f1083048
      Vlastimil Babka authored
      We now have memalloc_noreclaim_{save,restore} helpers for robust setting
      and clearing of PF_MEMALLOC.  Let's convert the code which was using the
      generic tsk_restore_flags().  No functional change.
      
      [vbabka@suse.cz: in net/core/sock.c the hunk is missing]
      Link: http://lkml.kernel.org/r/20170405074700.29871-4-vbabka@suse.czSigned-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Josef Bacik <jbacik@fb.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Wouter Verhelst <w@uter.be>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f1083048
    • Vlastimil Babka's avatar
      mm: introduce memalloc_noreclaim_{save,restore} · 499118e9
      Vlastimil Babka authored
      The previous patch ("mm: prevent potential recursive reclaim due to
      clearing PF_MEMALLOC") has shown that simply setting and clearing
      PF_MEMALLOC in current->flags can result in wrongly clearing a
      pre-existing PF_MEMALLOC flag and potentially lead to recursive reclaim.
      Let's introduce helpers that support proper nesting by saving the
      previous stat of the flag, similar to the existing memalloc_noio_* and
      memalloc_nofs_* helpers.  Convert existing setting/clearing of
      PF_MEMALLOC within mm to the new helpers.
      
      There are no known issues with the converted code, but the change makes
      it more robust.
      
      Link: http://lkml.kernel.org/r/20170405074700.29871-3-vbabka@suse.czSigned-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Suggested-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarHillf Danton <hillf.zj@alibaba-inc.com>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Josef Bacik <jbacik@fb.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Richard Weinberger <richard@nod.at>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      499118e9
    • Vlastimil Babka's avatar
      mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC · 62be1511
      Vlastimil Babka authored
      Patch series "more robust PF_MEMALLOC handling"
      
      This series aims to unify the setting and clearing of PF_MEMALLOC, which
      prevents recursive reclaim.  There are some places that clear the flag
      unconditionally from current->flags, which may result in clearing a
      pre-existing flag.  This already resulted in a bug report that Patch 1
      fixes (without the new helpers, to make backporting easier).  Patch 2
      introduces the new helpers, modelled after existing memalloc_noio_* and
      memalloc_nofs_* helpers, and converts mm core to use them.  Patches 3
      and 4 convert non-mm code.
      
      This patch (of 4):
      
      __alloc_pages_direct_compact() sets PF_MEMALLOC to prevent deadlock
      during page migration by lock_page() (see the comment in
      __unmap_and_move()).  Then it unconditionally clears the flag, which can
      clear a pre-existing PF_MEMALLOC flag and result in recursive reclaim.
      This was not a problem until commit a8161d1e ("mm, page_alloc:
      restructure direct compaction handling in slowpath"), because direct
      compation was called only after direct reclaim, which was skipped when
      PF_MEMALLOC flag was set.
      
      Even now it's only a theoretical issue, as the new callsite of
      __alloc_pages_direct_compact() is reached only for costly orders and
      when gfp_pfmemalloc_allowed() is true, which means either
      __GFP_NOMEMALLOC is in gfp_flags or in_interrupt() is true.  There is no
      such known context, but let's play it safe and make
      __alloc_pages_direct_compact() robust for cases where PF_MEMALLOC is
      already set.
      
      Fixes: a8161d1e ("mm, page_alloc: restructure direct compaction handling in slowpath")
      Link: http://lkml.kernel.org/r/20170405074700.29871-2-vbabka@suse.czSigned-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reported-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarHillf Danton <hillf.zj@alibaba-inc.com>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Josef Bacik <jbacik@fb.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      62be1511
    • Oliver O'Halloran's avatar
      mm/huge_memory.c: deposit a pgtable for DAX PMD faults when required · 3b6521f5
      Oliver O'Halloran authored
      Although all architectures use a deposited page table for THP on
      anonymous VMAs, some architectures (s390 and powerpc) require the
      deposited storage even for file backed VMAs due to quirks of their MMUs.
      
      This patch adds support for depositing a table in DAX PMD fault handling
      path for archs that require it.  Other architectures should see no
      functional changes.
      
      Link: http://lkml.kernel.org/r/20170411174233.21902-3-oohall@gmail.comSigned-off-by: default avatarOliver O'Halloran <oohall@gmail.com>
      Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: linux-nvdimm@ml01.01.org
      Cc: Oliver O'Halloran <oohall@gmail.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3b6521f5
    • Oliver O'Halloran's avatar
      mm/huge_memory.c: use zap_deposited_table() more · c14a6eb4
      Oliver O'Halloran authored
      Depending on the flags of the PMD being zapped there may or may not be a
      deposited pgtable to be freed.  In two of the three cases this is open
      coded while the third uses the zap_deposited_table() helper.  This patch
      converts the others to use the helper to clean things up a bit.
      
      Link: http://lkml.kernel.org/r/20170411174233.21902-2-oohall@gmail.com
      Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: linux-nvdimm@ml01.01.org
      Cc: Oliver O'Halloran <oohall@gmail.com>
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c14a6eb4
    • Deepa Dinamani's avatar
      time: delete CURRENT_TIME_SEC and CURRENT_TIME · bfe1c566
      Deepa Dinamani authored
      All uses of CURRENT_TIME_SEC and CURRENT_TIME macros have been replaced
      by other time functions.  These macros are also not y2038 safe.  And,
      all their use cases can be fulfilled by y2038 safe ktime_get_* variants.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-12-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarJohn Stultz <john.stultz@linaro.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bfe1c566
    • Stephen Rothwell's avatar
    • Deepa Dinamani's avatar
      apparmorfs: replace CURRENT_TIME with current_time() · 24d0d03c
      Deepa Dinamani authored
      CURRENT_TIME macro is not y2038 safe on 32 bit systems.
      
      The patch replaces all the uses of CURRENT_TIME by current_time().
      
      This is also in preparation for the patch that transitions vfs
      timestamps to use 64 bit time and hence make them y2038 safe.
      current_time() is also planned to be transitioned to y2038 safe behavior
      along with this change.
      
      CURRENT_TIME macro will be deleted before merging the aforementioned
      change.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-11-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Acked-by: default avatarJohn Johansen <john.johansen@canonical.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24d0d03c
    • Deepa Dinamani's avatar
      lustre: replace CURRENT_TIME macro · 47f38c53
      Deepa Dinamani authored
      CURRENT_TIME macro is not y2038 safe on 32 bit systems.
      
      The patch replaces all the uses of CURRENT_TIME by current_time() for
      filesystem times, and ktime_get_* functions for others.
      
      struct timespec is also not y2038 safe.  Retain timespec for timestamp
      representation here as lustre uses it internally everywhere.  These
      references will be changed to use struct timespec64 in a separate patch.
      
      This is also in preparation for the patch that transitions vfs
      timestamps to use 64 bit time and hence make them y2038 safe.
      current_time() is also planned to be transitioned to y2038 safe behavior
      along with this change.
      
      CURRENT_TIME macro will be deleted before merging the aforementioned
      change.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-10-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Cc: Oleg Drokin <oleg.drokin@intel.com>
      Cc: Andreas Dilger <andreas.dilger@intel.com>
      Cc: James Simmons <jsimmons@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      47f38c53
    • Deepa Dinamani's avatar
      fs: ubifs: replace CURRENT_TIME_SEC with current_time · 607a11ad
      Deepa Dinamani authored
      CURRENT_TIME_SEC is not y2038 safe.  current_time() will be transitioned
      to use 64 bit time along with vfs in a separate patch.  There is no plan
      to transition CURRENT_TIME_SEC to use y2038 safe time interfaces.
      
      current_time() returns timestamps according to the granularities set in
      the inode's super_block.  The granularity check to call
      current_fs_time() or CURRENT_TIME_SEC is not required.
      
      Use current_time() directly to update inode timestamp.  Use
      timespec_trunc during file system creation, before the first inode is
      created.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-9-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      607a11ad
    • Deepa Dinamani's avatar
      fs: ufs: use ktime_get_real_ts64() for birthtime · a88e99e9
      Deepa Dinamani authored
      CURRENT_TIME is not y2038 safe.  Replace it with ktime_get_real_ts64().
      Inode time formats are already 64 bit long and accommodates time64_t.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-6-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Cc: Evgeniy Dushistov <dushistov@mail.ru>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a88e99e9
    • Deepa Dinamani's avatar
      fs: ceph: CURRENT_TIME with ktime_get_real_ts() · 1134e091
      Deepa Dinamani authored
      CURRENT_TIME is not y2038 safe.  The macro will be deleted and all the
      references to it will be replaced by ktime_get_* apis.
      
      struct timespec is also not y2038 safe.  Retain timespec for timestamp
      representation here as ceph uses it internally everywhere.  These
      references will be changed to use struct timespec64 in a separate patch.
      
      The current_fs_time() api is being changed to use vfs struct inode* as
      an argument instead of struct super_block*.
      
      Set the new mds client request r_stamp field using ktime_get_real_ts()
      instead of using current_fs_time().
      
      Also, since r_stamp is used as mtime on the server, use timespec_trunc()
      to truncate the timestamp, using the right granularity from the
      superblock.
      
      This api will be transitioned to be y2038 safe along with vfs.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-5-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      M:	Ilya Dryomov <idryomov@gmail.com>
      M:	"Yan, Zheng" <zyan@redhat.com>
      M:	Sage Weil <sage@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1134e091
    • Deepa Dinamani's avatar
      fs: cifs: replace CURRENT_TIME by other appropriate apis · e37fea58
      Deepa Dinamani authored
      CURRENT_TIME macro is not y2038 safe on 32 bit systems.
      
      The patch replaces all the uses of CURRENT_TIME by current_time() for
      filesystem times, and ktime_get_* functions for authentication
      timestamps and timezone calculations.
      
      This is also in preparation for the patch that transitions vfs
      timestamps to use 64 bit time and hence make them y2038 safe.
      
      CURRENT_TIME macro will be deleted before merging the aforementioned
      change.
      
      The inode timestamps read from the server are assumed to have correct
      granularity and range.
      
      The patch also assumes that the difference between server and client
      times lie in the range INT_MIN..INT_MAX.  This is valid because this is
      the difference between current times between server and client, and the
      largest timezone difference is in the range of one day.
      
      All cifs timestamps currently use timespec representation internally.
      Authentication and timezone timestamps can also be transitioned into
      using timespec64 when all other timestamps for cifs is transitioned to
      use timespec64.
      
      Link: http://lkml.kernel.org/r/1491613030-11599-4-git-send-email-deepa.kernel@gmail.comSigned-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
      Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Steve French <sfrench@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e37fea58