1. 29 Dec, 2018 23 commits
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 769e4709
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - support -y option for merge_config.sh to avoid downgrading =y to =m
      
       - remove S_OTHER symbol type, and touch include/config/*.h files correctly
      
       - fix file name and line number in lexer warnings
      
       - fix memory leak when EOF is encountered in quotation
      
       - resolve all shift/reduce conflicts of the parser
      
       - warn no new line at end of file
      
       - make 'source' statement more strict to take only string literal
      
       - rewrite the lexer and remove the keyword lookup table
      
       - convert to SPDX License Identifier
      
       - compile C files independently instead of including them from zconf.y
      
       - fix various warnings of gconfig
      
       - misc cleanups
      
      * tag 'kconfig-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (39 commits)
        kconfig: surround dbg_sym_flags with #ifdef DEBUG to fix gconf warning
        kconfig: split images.c out of qconf.cc/gconf.c to fix gconf warnings
        kconfig: add static qualifiers to fix gconf warnings
        kconfig: split the lexer out of zconf.y
        kconfig: split some C files out of zconf.y
        kconfig: convert to SPDX License Identifier
        kconfig: remove keyword lookup table entirely
        kconfig: update current_pos in the second lexer
        kconfig: switch to ASSIGN_VAL state in the second lexer
        kconfig: stop associating kconf_id with yylval
        kconfig: refactor end token rules
        kconfig: stop supporting '.' and '/' in unquoted words
        treewide: surround Kconfig file paths with double quotes
        microblaze: surround string default in Kconfig with double quotes
        kconfig: use T_WORD instead of T_VARIABLE for variables
        kconfig: use specific tokens instead of T_ASSIGN for assignments
        kconfig: refactor scanning and parsing "option" properties
        kconfig: use distinct tokens for type and default properties
        kconfig: remove redundant token defines
        kconfig: rename depends_list to comment_option_list
        ...
      769e4709
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 668c35f6
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
       "Kbuild core:
         - remove unneeded $(call cc-option,...) switches
         - consolidate Clang compiler flags into CLANG_FLAGS
         - announce the deprecation of SUBDIRS
         - fix single target build for external module
         - simplify the dependencies of 'prepare' stage targets
         - allow fixdep to directly write to .*.cmd files
         - simplify dependency generation for CONFIG_TRIM_UNUSED_KSYMS
         - change if_changed_rule to accept multi-line recipe
         - move .SECONDARY special target to scripts/Kbuild.include
         - remove redundant 'set -e'
         - improve parallel execution for CONFIG_HEADERS_CHECK
         - misc cleanups
      
        Treewide fixes and cleanups
         - set Clang flags correctly for PowerPC boot images
         - fix UML build error with CONFIG_GCC_PLUGINS
         - remove unneeded patterns from .gitignore files
         - refactor firmware/Makefile
         - remove unneeded rules for *offsets.s
         - avoid unneeded regeneration of intermediate .s files
         - clean up ./Kbuild
      
        Modpost:
         - remove unused -M, -K options
         - fix false positive warnings about section mismatch
         - use simple devtable lookup instead of linker magic
         - misc cleanups
      
        Coccinelle:
         - relax boolinit.cocci checks for overall consistency
         - fix warning messages of boolinit.cocci
      
        Other tools:
         - improve -dirty check of scripts/setlocalversion
         - add a tool to generate compile_commands.json from .*.cmd files"
      
      * tag 'kbuild-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (51 commits)
        kbuild: remove unused cmd_gentimeconst
        kbuild: remove $(obj)/ prefixes in ./Kbuild
        treewide: add intermediate .s files to targets
        treewide: remove explicit rules for *offsets.s
        firmware: refactor firmware/Makefile
        firmware: remove unnecessary patterns from .gitignore
        scripts: remove unnecessary ihex2fw and check-lc_ctypes from .gitignore
        um: remove unused filechk_gen_header in Makefile
        scripts: add a tool to produce a compile_commands.json file
        kbuild: add -Werror=implicit-int flag unconditionally
        kbuild: add -Werror=strict-prototypes flag unconditionally
        kbuild: add -fno-PIE flag unconditionally
        scripts: coccinelle: Correct warning message
        scripts: coccinelle: only suggest true/false in files that already use them
        kbuild: handle part-of-module correctly for *.ll and *.symtypes
        kbuild: refactor part-of-module
        kbuild: refactor quiet_modtag
        kbuild: remove redundant quiet_modtag for $(obj-m)
        kbuild: refactor Makefile.asm-generic
        user/Makefile: Fix typo and capitalization in comment section
        ...
      668c35f6
    • NeilBrown's avatar
      lib: don't depend on linux headers being installed. · d8372ba8
      NeilBrown authored
      gen_crc64table requires linux include files to be installed in
      /usr/include/linux.  This is a new requrement so hosts that could
      previously build the kernel, now cannot.
      
      gen_crc64table makes this requirement by including <linux/swab.h>, but
      nothing from that header is actaully used.
      
      So remove the #include, so that the linux headers no longer need to be
      installed.
      
      Fixes: feba04fd ("lib: add crc64 calculation routines")
      Signed-off-by: default avatarNeilBrown <neil@brown.name>
      Acked-by: default avatarColy Li <colyli@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d8372ba8
    • Linus Torvalds's avatar
      Merge tag 'docs-5.0' of git://git.lwn.net/linux · 3868772b
      Linus Torvalds authored
      Pull documentation update from Jonathan Corbet:
       "A fairly normal cycle for documentation stuff. We have a new document
        on perf security, more Italian translations, more improvements to the
        memory-management docs, improvements to the pathname lookup
        documentation, and the usual array of smaller fixes.
      
        As is often the case, there are a few reaches outside of
        Documentation/ to adjust kerneldoc comments"
      
      * tag 'docs-5.0' of git://git.lwn.net/linux: (38 commits)
        docs: improve pathname-lookup document structure
        configfs: fix wrong name of struct in documentation
        docs/mm-api: link slab_common.c to "The Slab Cache" section
        slab: make kmem_cache_create{_usercopy} description proper kernel-doc
        doc:process: add links where missing
        docs/core-api: make mm-api.rst more structured
        x86, boot: documentation whitespace fixup
        Documentation: devres: note checking needs when converting
        doc:it: add some process/* translations
        doc:it: fixes in process/1.Intro
        Documentation: convert path-lookup from markdown to resturctured text
        Documentation/admin-guide: update admin-guide index.rst
        Documentation/admin-guide: introduce perf-security.rst file
        scripts/kernel-doc: Fix struct and struct field attribute processing
        Documentation: dev-tools: Fix typos in index.rst
        Correct gen_init_cpio tool's documentation
        Document /proc/pid PID reuse behavior
        Documentation: update path-lookup.md for parallel lookups
        Documentation: Use "while" instead of "whilst"
        dmaengine: Add mailing list address to the documentation
        ...
      3868772b
    • Linus Torvalds's avatar
      Merge branch 'for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 6f9d71c9
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - Waiman's cgroup2 cpuset support has been finally merged closing one
         of the last remaining feature gaps.
      
       - cgroup.procs could show non-leader threads when cgroup2 threaded mode
         was used in certain ways. I forgot to push the fix during the last
         cycle.
      
       - A patch to fix mount option parsing when all mount options have been
         consumed by someone else (LSM).
      
       - cgroup_no_v1 boot param can now block named cgroup1 hierarchies too.
      
      * 'for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: Add named hierarchy disabling to cgroup_no_v1 boot param
        cgroup: fix parsing empty mount option string
        cpuset: Remove set but not used variable 'cs'
        cgroup: fix CSS_TASK_ITER_PROCS
        cgroup: Add .__DEBUG__. prefix to debug file names
        cpuset: Minor cgroup2 interface updates
        cpuset: Expose cpuset.cpus.subpartitions with cgroup_debug
        cpuset: Add documentation about the new "cpuset.sched.partition" flag
        cpuset: Use descriptive text when reading/writing cpuset.sched.partition
        cpuset: Expose cpus.effective and mems.effective on cgroup v2 root
        cpuset: Make generate_sched_domains() work with partition
        cpuset: Make CPU hotplug work with partition
        cpuset: Track cpusets that use parent's effective_cpus
        cpuset: Add an error state to cpuset.sched.partition
        cpuset: Add new v2 cpuset.sched.partition flag
        cpuset: Simply allocation and freeing of cpumasks
        cpuset: Define data structures to support scheduling partition
        cpuset: Enable cpuset controller in default hierarchy
        cgroup: remove unnecessary unlikely()
      6f9d71c9
    • Linus Torvalds's avatar
      Merge branch 'for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu · 55db91fb
      Linus Torvalds authored
      Pull percpu update from Dennis Zhou:
       "Michael Cree noted generic UP Alpha has been broken since v3.18. This
        is a small fix for locking in UP percpu code that fixes the issue"
      
      * 'for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:
        percpu: convert spin_lock_irq to spin_lock_irqsave.
      55db91fb
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20181228' of git://github.com/jcmvbkbc/linux-xtensa · 9ef10340
      Linus Torvalds authored
      Pull Xtensa updates from Max Filippov:
      
       - switch to generated syscall table
      
       - switch ptrace to regsets, use regsets for core dumps
      
       - complete tracehook implementation
      
       - add syscall tracepoints support
      
       - add jumplabels support
      
       - add memtest support
      
       - drop unused/duplicated code from entry.S, ptrace.c, coprocessor.S,
         elf.h and syscall.h
      
       - clean up warnings caused by WSR/RSR macros
      
       - clean up DTC warnings about SPI controller node names in xtfpga.dtsi
      
       - simplify coprocessor.S
      
       - get rid of explicit 'l32r' instruction usage in assembly
      
      * tag 'xtensa-20181228' of git://github.com/jcmvbkbc/linux-xtensa: (25 commits)
        xtensa: implement jump_label support
        xtensa: implement syscall tracepoints
        xtensa: implement tracehook functions and enable HAVE_ARCH_TRACEHOOK
        xtensa: enable CORE_DUMP_USE_REGSET
        xtensa: implement TIE regset
        xtensa: implement task_user_regset_view
        xtensa: call do_syscall_trace_{enter,leave} selectively
        xtensa: use NO_SYSCALL instead of -1
        xtensa: define syscall_get_arch()
        Move EM_XTENSA to uapi/linux/elf-em.h
        xtensa: support memtest
        xtensa: don't use l32r opcode directly
        xtensa: xtfpga.dtsi: fix dtc warnings about SPI
        xtensa: don't clear cpenable unconditionally on release
        xtensa: simplify coprocessor.S
        xtensa: clean up WSR*/RSR*/get_sr/set_sr
        xtensa: drop unused declarations from elf.h
        xtensa: clean up syscall.h
        xtensa: drop unused coprocessor helper functions
        xtensa: drop custom PTRACE_{PEEK,POKE}{TEXT,DATA}
        ...
      9ef10340
    • Linus Torvalds's avatar
      Merge tag 'nds32-for-linus-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux · 889bb743
      Linus Torvalds authored
      Pull nds32 updates from Greentime Hu:
      
       - Perf support
      
       - Power management support
      
       - FPU support
      
       - Hardware prefetcher support
      
       - Build error fixed
      
       - Performance enhancement
      
      * tag 'nds32-for-linus-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux:
        nds32: support hardware prefetcher
        nds32: Fix the items of hwcap_str ordering issue.
        math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning
        math-emu/op-2.h: Use statement expressions to prevent negative constant shift
        nds32: support denormalized result through FP emulator
        nds32: Support FP emulation
        nds32: nds32 FPU port
        nds32: Remove duplicated include from pm.c
        nds32: Power management for nds32
        nds32: Add document for NDS32 PMU.
        nds32: Add perf call-graph support.
        nds32: Perf porting
        nds32: Fix bug in bitfield.h
        nds32: Fix gcc 8.0 compiler option incompatible.
        nds32: Fill all TLB entries with kernel image mapping
        nds32: Remove the redundant assignment
      889bb743
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-4.21-rc1' of... · 903b77c6
      Linus Torvalds authored
      Merge tag 'linux-kselftest-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest updates from Shuah Khan:
      
       - fixes and improvements to the framework, and individual tests
      
       - a new media test for IR encoders from Sean Young
      
       - a new watchdog test option to find time left on a timer
      
      * tag 'linux-kselftest-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: Fix test errors related to lib.mk khdr target
        fix dma-buf/udmabuf selftest
        selftests: watchdog: fix spelling mistake "experies" -> "expires"
        selftests: watchdog: Add gettimeleft command line arg
        selftests: do not macro-expand failed assertion expressions
        selftests/ftrace: Fix invalid SPDX identifiers
        selftests: gpio: Find libmount with pkg-config if available
        selftests: firmware: add CONFIG_FW_LOADER_USER_HELPER_FALLBACK to config
        selftests: firmware: remove use of non-standard diff -Z option
        media: rc: self test for IR encoders and decoders
      903b77c6
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 457fa346
      Linus Torvalds authored
      Pull char/misc driver updates from Greg KH:
       "Here is the big set of char and misc driver patches for 4.21-rc1.
      
        Lots of different types of driver things in here, as this tree seems
        to be the "collection of various driver subsystems not big enough to
        have their own git tree" lately.
      
        Anyway, some highlights of the changes in here:
      
         - binderfs: is it a rule that all driver subsystems will eventually
           grow to have their own filesystem? Binder now has one to handle the
           use of it in containerized systems.
      
           This was discussed at the Plumbers conference a few months ago and
           knocked into mergable shape very fast by Christian Brauner. Who
           also has signed up to be another binder maintainer, showing a
           distinct lack of good judgement :)
      
         - binder updates and fixes
      
         - mei driver updates
      
         - fpga driver updates and additions
      
         - thunderbolt driver updates
      
         - soundwire driver updates
      
         - extcon driver updates
      
         - nvmem driver updates
      
         - hyper-v driver updates
      
         - coresight driver updates
      
         - pvpanic driver additions and reworking for more device support
      
         - lp driver updates. Yes really, it's _finally_ moved to the proper
           parallal port driver model, something I never thought I would see
           happen. Good stuff.
      
         - other tiny driver updates and fixes.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (116 commits)
        MAINTAINERS: add another Android binder maintainer
        intel_th: msu: Fix an off-by-one in attribute store
        stm class: Add a reference to the SyS-T document
        stm class: Fix a module refcount leak in policy creation error path
        char: lp: use new parport device model
        char: lp: properly count the lp devices
        char: lp: use first unused lp number while registering
        char: lp: detach the device when parallel port is removed
        char: lp: introduce list to save port number
        bus: qcom: remove duplicated include from qcom-ebi2.c
        VMCI: Use memdup_user() rather than duplicating its implementation
        char/rtc: Use of_node_name_eq for node name comparisons
        misc: mic: fix a DMA pool free failure
        ptp: fix an IS_ERR() vs NULL check
        genwqe: Fix size check
        binder: implement binderfs
        binder: fix use-after-free due to ksys_close() during fdget()
        bus: fsl-mc: remove duplicated include files
        bus: fsl-mc: explicitly define the fsl_mc_command endianness
        misc: ti-st: make array read_ver_cmd static, shrinks object size
        ...
      457fa346
    • Linus Torvalds's avatar
      Merge tag 'driver-core-4.21-rc1' of... · b07039b7
      Linus Torvalds authored
      Merge tag 'driver-core-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      Pull driver core updates from Greg KH:
       "Here is the "big" set of driver core patches for 4.21-rc1.
      
        It's not really big, just a number of small changes for some reported
        issues, some documentation updates to hopefully make it harder for
        people to abuse the driver model, and some other minor cleanups.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'driver-core-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        mm, memory_hotplug: update a comment in unregister_memory()
        component: convert to DEFINE_SHOW_ATTRIBUTE
        sysfs: Disable lockdep for driver bind/unbind files
        driver core: Add missing dev->bus->need_parent_lock checks
        kobject: return error code if writing /sys/.../uevent fails
        driver core: Move async_synchronize_full call
        driver core: platform: Respect return code of platform_device_register_full()
        kref/kobject: Improve documentation
        drivers/base/memory.c: Use DEVICE_ATTR_RO and friends
        driver core: Replace simple_strto{l,ul} by kstrtou{l,ul}
        kernfs: Improve kernfs_notify() poll notification latency
        kobject: Fix warnings in lib/kobject_uevent.c
        kobject: drop unnecessary cast "%llu" for u64
        driver core: fix comments for device_block_probing()
        driver core: Replace simple_strtol by kstrtoint
      b07039b7
    • Linus Torvalds's avatar
      Merge tag 'staging-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 02061181
      Linus Torvalds authored
      Pull staging/IIO driver updates from Greg KH:
       "Here is the big staging and iio driver pull request for 4.21-rc1.
      
        Lots and lots of tiny patches here, nothing major at all. Which is
        good, tiny cleanups is nice to see. No new huge driver removal or
        addition, this release cycle, although there are lots of good IIO
        driver changes, addtions, and movement from staging into the "real"
        part of the kernel, which is always great.
      
        Full details are in the shortlog, and all of these have been in
        linux-next for a while with no reported issues"
      
      * tag 'staging-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (553 commits)
        staging: mt7621-mmc: Correct spelling mistakes in comments
        staging: wilc1000: fix missing read_write setting when reading data
        mt7621-mmc: char * array declaration might be better as static const
        mt7621-mmc: return statement in void function unnecessary
        mt7621-mmc: Alignment should match open parenthesis
        mt7621-mmc: Removed unnecessary blank lines
        mt7621-mmc: Fix some coding style issues
        staging: android: ashmem: doc: Fix spelling
        staging: rtl8188eu: cleanup brace coding style issues
        staging: rtl8188eu: add spaces around '&' in rtw_mlme_ext.c
        staging: rtl8188eu: change return type of is_basicrate() to bool
        staging: rtl8188eu: simplify null array initializations
        staging: rtl8188eu: change order of declarations to improve readability
        staging: rtl8188eu: make some arrays static in rtw_mlme_ext.c
        staging: rtl8188eu: constify some arrays
        staging: rtl8188eu: convert unsigned char arrays to u8
        staging: rtl8188eu: remove redundant declaration in rtw_mlme_ext.c
        staging: rtl8188eu: remove unused arrays WFD_OUI and WMM_INFO_OUI
        staging: rtl8188eu: remove unnecessary parentheses in rtw_mlme_ext.c
        staging: rtl8188eu: remove unnecessary comments in rtw_mlme_ext.c
        ...
      02061181
    • Linus Torvalds's avatar
      Merge tag 'tty-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 117eda8f
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Here is the large TTY/Serial driver set of patches for 4.21-rc1.
      
        A number of small serial driver changes along with some good tty core
        fixes for long-reported issues with locking. There is also a new
        console font added to the tree, for high-res screens, so that should
        be helpful for many.
      
        The last patch in the series is a revert of an older one in the tree,
        it came late but it resolves a reported issue that linux-next was
        having for some people.
      
        Full details are in the shortlog, and all of these, with the exception
        of the revert, have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (85 commits)
        Revert "serial: 8250: Default SERIAL_OF_PLATFORM to SERIAL_8250"
        serial: sccnxp: Allow to use non-standard baud rates
        serial: sccnxp: Adds a delay between sequential read/write cycles
        tty: serial: qcom_geni_serial: Fix UART hang
        tty: serial: qcom_geni_serial: Fix wrap around of TX buffer
        serial: max310x: Fix tx_empty() callback
        dt-bindings: serial: sh-sci: Document r8a774c0 bindings
        dt-bindings: serial: sh-sci: Document r8a774a1 bindings
        Fonts: New Terminus large console font
        dt-bindings: serial: lpuart: add imx8qxp compatible string
        serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly
        serial: uartps: Fix error path when alloc failed
        serial: uartps: Check if the device is a console
        serial: uartps: Add the device_init_wakeup
        tty: serial: samsung: Increase maximum baudrate
        tty: serial: samsung: Properly set flags in autoCTS mode
        tty: Use of_node_name_{eq,prefix} for node name comparisons
        tty/serial: do not free trasnmit buffer page under port lock
        serial: 8250: Rate limit serial port rx interrupts during input overruns
        dt-bindings: serial: 8250: Add rate limit for serial port input overruns
        ...
      117eda8f
    • Linus Torvalds's avatar
      Merge tag 'usb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · c0ea81b4
      Linus Torvalds authored
      Pull USB/PHY updates from Greg KH:
       "Here is the big set of USB and PHY driver patches for 4.21-rc1.
      
        All of the usual bits are in here:
      
        - loads of USB gadget driver updates and additions
      
        - new device ids
      
        - phy driver updates
      
        - xhci reworks and new features
      
        - typec updates
      
        Full details are in the shortlog.
      
        All of these have been in linux-next for a long time with no reported
        issues"
      
      * tag 'usb-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (142 commits)
        USB: serial: option: add Fibocom NL678 series
        cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader.
        usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable()
        usb: typec: tcpm: Extend the matching rules on PPS APDO selection
        usb: typec: Improve Alt Mode documentation
        usb: musb: dsps: fix runtime pm for peripheral mode
        usb: musb: dsps: fix otg state machine
        USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays
        usb: renesas_usbhs: add support for RZ/G2E
        usb: ehci-omap: Fix deferred probe for phy handling
        usb: roles: Add a description for the class to Kconfig
        usb: renesas_usbhs: mark PM functions as __maybe_unused
        usb: core: Remove unnecessary memset()
        usb: host: isp1362-hcd: convert to DEFINE_SHOW_ATTRIBUTE
        phy: qcom-qmp: Expose provided clocks to DT
        dt-bindings: phy-qcom-qmp: Move #clock-cells to child
        phy: qcom-qmp: Utilize fully-specified DT registers
        dt-bindings: phy-qcom-qmp: Fix register underspecification
        phy: ti: fix semicolon.cocci warnings
        phy: dphy: Add configuration helpers
        ...
      c0ea81b4
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 4d6ad6fb
      Linus Torvalds authored
      Pull HSI update from Sebastian Reichel:
       "omap-ssi: use DEFINE_SHOW_ATTRIBUTE"
      
      * tag 'hsi-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: omap_ssi: Change to use DEFINE_SHOW_ATTRIBUTE macro
      4d6ad6fb
    • Linus Torvalds's avatar
      Merge tag 'for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 579a7003
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
      
       - New core support:
          - battery internal resistance
          - battery OCV capacity lookup table
          - support for custom sysfs attributes
      
       - Convert all drivers to use power-supply core support for custom sysfs
         attributes
      
       - bq24190-charger: bq24196 support
      
       - axp20x-charger: AXP813 support
      
       - sc27xx-battery: new fuel gauge driver
      
       - gpio-poweroff: support for specific active and inactive delays
      
       - Misc fixes
      
      * tag 'for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (53 commits)
        power: supply: bq25890: fix BAT_COMP field definition
        power: supply: gpio-charger: Do not use deprecated POWER_SUPPLY_TYPE_USB_*
        power: supply: ds2781: switch to devm_power_supply_register
        power: supply: ds2780: switch to devm_power_supply_register
        power: supply: ds2781: fix race-condition in bin attribute registration
        power: supply: ds2780: fix race-condition in bin attribute registration
        power: supply: pcf50633: fix race-condition in sysfs registration
        power: supply: charger-manager: fix race-condition in sysfs registration
        power: supply: charger-manager: simplify generation of sysfs attribute group name
        power: supply: bq24257: fix race-condition in sysfs registration
        power: supply: bq24190_charger: fix race-condition in sysfs registration
        power: supply: lp8788: fix race-condition in sysfs registration
        power: supply: ds2781: fix race-condition in sysfs registration
        power: supply: ds2780: fix race-condition in sysfs registration
        power: supply: bq2415x: fix race-condition in sysfs registration
        power: supply: core: add support for custom sysfs attributes
        power: supply: sc27xx: Save last battery capacity
        power: reset: at91-poweroff: move shdwc related data to one structure
        power: supply: sc27xx: Add suspend/resume interfaces
        power: supply: sc27xx: Add fuel gauge low voltage alarm
        ...
      579a7003
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 030672ae
      Linus Torvalds authored
      Pull Devicetree updates from Rob Herring:
       "The biggest highlight here is the start of using json-schema for DT
        bindings. Being able to validate bindings has been discussed for years
        with little progress.
      
         - Initial support for DT bindings using json-schema language. This is
           the start of converting DT bindings from free-form text to a
           structured format.
      
         - Reworking of initrd address initialization. This moves to using the
           phys address instead of virt addr in the DT parsing code. This
           rework was motivated by CONFIG_DEV_BLK_INITRD causing unnecessary
           rebuilding of lots of files.
      
         - Fix stale phandle entries in phandle cache
      
         - DT overlay validation improvements. This exposed several memory
           leak bugs which have been fixed.
      
         - Use node name and device_type helper functions in DT code
      
         - Last remaining conversions to using %pOFn printk specifier instead
           of device_node.name directly
      
         - Create new common RTC binding doc and move all trivial RTC devices
           out of trivial-devices.txt.
      
         - New bindings for Freescale MAG3110 magnetometer, Cadence Sierra
           PHY, and Xen shared memory
      
         - Update dtc to upstream version v1.4.7-57-gf267e674d145"
      
      * tag 'devicetree-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (68 commits)
        of: __of_detach_node() - remove node from phandle cache
        of: of_node_get()/of_node_put() nodes held in phandle cache
        gpio-omap.txt: add reg and interrupts properties
        dt-bindings: mrvl,intc: fix a trivial typo
        dt-bindings: iio: magnetometer: add dt-bindings for freescale mag3110
        dt-bindings: Convert trivial-devices.txt to json-schema
        dt-bindings: arm: mrvl: amend Browstone compatible string
        dt-bindings: arm: Convert Tegra board/soc bindings to json-schema
        dt-bindings: arm: Convert ZTE board/soc bindings to json-schema
        dt-bindings: arm: Add missing Xilinx boards
        dt-bindings: arm: Convert Xilinx board/soc bindings to json-schema
        dt-bindings: arm: Convert VIA board/soc bindings to json-schema
        dt-bindings: arm: Convert ST STi board/soc bindings to json-schema
        dt-bindings: arm: Convert SPEAr board/soc bindings to json-schema
        dt-bindings: arm: Convert CSR SiRF board/soc bindings to json-schema
        dt-bindings: arm: Convert QCom board/soc bindings to json-schema
        dt-bindings: arm: Convert TI nspire board/soc bindings to json-schema
        dt-bindings: arm: Convert TI davinci board/soc bindings to json-schema
        dt-bindings: arm: Convert Calxeda board/soc bindings to json-schema
        dt-bindings: arm: Convert Altera board/soc bindings to json-schema
        ...
      030672ae
    • Linus Torvalds's avatar
      Merge tag 'gpio-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 24dc8363
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.21 kernel series.
      
        Core changes:
      
         - Some core changes are already in outside of this pull request as
           they came through the regulator tree, most notably
           devm_gpiod_unhinge() that removes devres refcount management from a
           GPIO descriptor. This is needed in subsystems such as regulators
           where the regulator core need to take over the reference counting
           and lifecycle management for a GPIO descriptor.
      
         - We dropped devm_gpiochip_remove() and devm_gpio_chip_match() as
           nothing needs it. We can bring it back if need be.
      
         - Add a global TODO so people see where we are going. This helps
           setting the direction now that we are two GPIO maintainers.
      
         - Handle the MMC CD/WP properties in the device tree core. (The bulk
           of patches activating this code is already merged through the
           MMC/SD tree.)
      
         - Augment gpiochip_request_own_desc() to pass a flag so we as
           gpiochips can request lines as active low or open drain etc even
           from ourselves.
      
        New drivers:
      
         - New driver for Cadence GPIO blocks.
      
         - New driver for Atmel SAMA5D2 PIOBU GPIO lines.
      
        Driver improvements:
      
         - A major refactoring of the PCA953x driver - this driver has been
           around for ages, and is now modernized to reduce code duplication
           that has stacked up and is using regmap to read write and cache
           registers.
      
         - Intel drivers are now maintained in a separate tree and start with
           a round of cleanups and unifications"
      
      * tag 'gpio-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (99 commits)
        gpio: sama5d2-piobu: Depend on OF_GPIO
        gpio: Add Cadence GPIO driver
        dt-bindings: gpio: Add bindings for Cadence GPIO
        gpiolib-acpi: remove unused variable 'err', cleans up build warning
        gpio: mxs: read pin level directly instead of using .get
        gpio: aspeed: remove duplicated statement
        gpio: add driver for SAMA5D2 PIOBU pins
        dt-bindings: arm: atmel: describe SECUMOD usage as a GPIO controller
        gpio/mmc/of: Respect polarity in the device tree
        dt-bindings: gpio: rcar: Add r8a774c0 (RZ/G2E) support
        memory: omap-gpmc: Get the header of the enum
        ARM: omap1: Fix new user of gpiochip_request_own_desc()
        gpio: pca953x: Add regmap dependency for PCA953x driver
        gpio: raspberrypi-exp: decrease refcount on firmware dt node
        gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB
        gpio: pca953x: Restore registers after suspend/resume cycle
        gpio: pca953x: Zap single use of pca953x_read_single()
        gpio: pca953x: Zap ad-hoc reg_output cache
        gpio: pca953x: Zap ad-hoc reg_direction cache
        gpio: pca953x: Perform basic regmap conversion
        ...
      24dc8363
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2018-12-27' of git://anongit.freedesktop.org/drm/drm · 7e59fad9
      Linus Torvalds authored
      Pull more drm updates from Dave Airlie:
       "Daniel collected a couple of pulls after I want on holidays, back for
        a couple of days, so may as well send them out.
      
        This has exynos and etnaviv work for 4.21.
      
        exynos:
         - plane alpha and blending configurability
      
        etnaviv:
         - mostly cleanups in prep for new features"
      
      * tag 'drm-next-2018-12-27' of git://anongit.freedesktop.org/drm/drm:
        drm/etnaviv: remove lastctx member from gpu struct
        drm/etnaviv: replace header include with forward declaration
        drm/etnaviv: remove unnecessary local irq disable
        drm/exynos: fimd: Make pixel blend mode configurable
        drm/exynos: fimd: Make plane alpha configurable
        drm/etnaviv: Replace drm_dev_unref with drm_dev_put
        drm/etnaviv: consolidate hardware fence handling in etnaviv_gpu
        drm/etnaviv: kill active fence tracking
      7e59fad9
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 87540403
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "The big change in this series is for the most part automatic:
        Introducing SENSOR[_DEVICE]_ATTR_{RO,RW,WO} variants and conversion of
        various drivers to use it. This is similar to DEVICE_ATTR variants.
      
        Other than that, we have
      
         - Some conversions of S_<PERMS> with octal values, also automated
      
         - Added support for Hygon Dhyana CPUs to k10temp driver
      
         - Added support for STLM75 to lm75 driver
      
         - B57891S0103 to ntc_thermistor
      
         - Added pm-runtime support to ina3221 driver
      
         - Support for PowerPC On-Chip Controller (OCC)
      
         - Various minor bug fices and improvements"
      
      * tag 'hwmon-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (80 commits)
        hwmon: (lm80) fix a missing check of bus read in lm80 probe
        hwmon: (lm80) fix a missing check of the status of SMBus read
        hwmon: (asus_atk0110) Fix debugfs_simple_attr.cocci warnings
        hwmon: (ftsteutates) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (fschmd) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (emc6w201) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (emc2103) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (emc1403) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (ds620) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (ds1621) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (dell-smm-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (da9055-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (da9052-hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (coretemp) Replace S_<PERMS> with octal values
        hwmon: (asus_atk0110) Replace S_<PERMS> with octal values
        hwmon: (aspeed-pwm-tacho) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (applesmc) Replace S_<PERMS> with octal values
        hwmon: (amc6821) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (adt7x10) Use permission specific SENSOR[_DEVICE]_ATTR variants
        hwmon: (adt7475) Use permission specific SENSOR[_DEVICE]_ATTR variants
        ...
      87540403
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.21-rc1' of git://github.com/awilliam/linux-vfio · 1984f65c
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Replace global vfio-pci lock with per bus lock to allow concurrent
         open and release (Alex Williamson)
      
       - Declare mdev function as static (Paolo Cretaro)
      
       - Convert char to u8 in mdev/mtty sample driver (Nathan Chancellor)
      
      * tag 'vfio-v4.21-rc1' of git://github.com/awilliam/linux-vfio:
        vfio-mdev/samples: Use u8 instead of char for handle functions
        vfio/mdev: add static modifier to add_mdev_supported_type
        vfio/pci: Parallelize device open and release
      1984f65c
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · f346b0be
      Linus Torvalds authored
      Merge misc updates from Andrew Morton:
      
       - large KASAN update to use arm's "software tag-based mode"
      
       - a few misc things
      
       - sh updates
      
       - ocfs2 updates
      
       - just about all of MM
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (167 commits)
        kernel/fork.c: mark 'stack_vm_area' with __maybe_unused
        memcg, oom: notify on oom killer invocation from the charge path
        mm, swap: fix swapoff with KSM pages
        include/linux/gfp.h: fix typo
        mm/hmm: fix memremap.h, move dev_page_fault_t callback to hmm
        hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race
        hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization
        memory_hotplug: add missing newlines to debugging output
        mm: remove __hugepage_set_anon_rmap()
        include/linux/vmstat.h: remove unused page state adjustment macro
        mm/page_alloc.c: allow error injection
        mm: migrate: drop unused argument of migrate_page_move_mapping()
        blkdev: avoid migration stalls for blkdev pages
        mm: migrate: provide buffer_migrate_page_norefs()
        mm: migrate: move migrate_page_lock_buffers()
        mm: migrate: lock buffers before migrate_page_move_mapping()
        mm: migration: factor out code to compute expected number of page references
        mm, page_alloc: enable pcpu_drain with zone capability
        kmemleak: add config to select auto scan
        mm/page_alloc.c: don't call kasan_free_pages() at deferred mem init
        ...
      f346b0be
    • Linus Torvalds's avatar
      Merge tag 'mmc-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 00d59fde
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "This time, this pull request contains changes crossing subsystems and
        archs/platforms, which is mainly because of a bigger modernization of
        moving from legacy GPIO to GPIO descriptors for MMC (by Linus
        Walleij).
      
        Additionally, once again, I am funneling changes to
        drivers/misc/cardreader/* and drivers/memstick/* through my MMC tree,
        mostly due to that we lack a maintainer for these.
      
        Summary:
      
        MMC core:
         - Cleanup BKOPS support
         - Introduce MMC_CAP_SYNC_RUNTIME_PM
         - slot-gpio: Delete legacy slot GPIO handling
      
        MMC host:
         - alcor: Add new mmc host driver for Alcor Micro PCI based cardreader
         - bcm2835: Several improvements to better recover from errors
         - jz4740: Rework and fixup pre|post_req support
         - mediatek: Add support for SDIO IRQs
         - meson-gx: Improve clock phase management
         - meson-gx: Stop descriptor on errors
         - mmci: Complete the sbc error path by sending a stop command
         - renesas_sdhi/tmio: Fixup reset/resume operations
         - renesas_sdhi: Add support for r8a774c0 and R7S9210
         - renesas_sdhi: Whitelist R8A77990 SDHI
         - renesas_sdhi: Fixup eMMC HS400 compatibility issues for H3 and M3-W
         - rtsx_usb_sdmmc: Re-work card detection/removal support
         - rtsx_usb_sdmmc: Re-work runtime PM support
         - sdhci: Fix timeout loops for some variant drivers
         - sdhci: Improve support for error handling due to failing commands
         - sdhci-acpi/pci: Disable LED control for Intel BYT-based controllers
         - sdhci_am654: Add new SDHCI variant driver to support TI's AM654 SOCs
         - sdhci-of-esdhc: Add support for eMMC HS400 mode
         - sdhci-omap: Fixup reset support
         - sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures
         - sdhci-msm: Fixup sporadic write transfers issues for SDR104/HS200
         - sdhci-msm: Fixup dynamical clock gating issues
         - various: Complete converting all hosts into using slot GPIO descriptors
      
        Other:
         - Move GPIO mmc platform data for mips/sh/arm to GPIO descriptors
         - Add new Alcor Micro cardreader PCI driver
         - Support runtime power management for memstick rtsx_usb_ms driver
         - Use USB remote wakeups for card detection for rtsx_usb misc driver"
      
      * tag 'mmc-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (99 commits)
        mmc: mediatek: Add MMC_CAP_SDIO_IRQ support
        mmc: renesas_sdhi_internal_dmac: Whitelist r8a774c0
        dt-bindings: mmc: renesas_sdhi: Add r8a774c0 support
        mmc: core: Cleanup BKOPS support
        mmc: core: Drop redundant check in mmc_send_hpi_cmd()
        mmc: sdhci-omap: Workaround errata regarding SDR104/HS200 tuning failures (i929)
        dt-bindings: sdhci-omap: Add note for cpu_thermal
        mmc: sdhci-acpi: Disable LED control for Intel BYT-based controllers
        mmc: sdhci-pci: Disable LED control for Intel BYT-based controllers
        mmc: sdhci: Add quirk to disable LED control
        mmc: mmci: add variant property to set command stop bit
        misc: alcor_pci: fix spelling mistake "invailid" -> "invalid"
        mmc: meson-gx: add signal resampling
        mmc: meson-gx: align default phase on soc vendor tree
        mmc: meson-gx: remove useless lock
        mmc: meson-gx: make sure the descriptor is stopped on errors
        mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver
        dt-bindings: mmc: sdhci-of-arasan: Add deprecated message for AM65
        dt-bindings: mmc: sdhci-am654: Document bindings for the host controllers on TI's AM654 SOCs
        mmc: sdhci-msm: avoid unused function warning
        ...
      00d59fde
  2. 28 Dec, 2018 17 commits
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 75f95da0
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "The vast bulk of this update is the new support for the security
        capabilities of some nvdimms.
      
        The userspace tooling for this capability is still a work in progress,
        but the changes survive the existing libnvdimm unit tests. The changes
        also pass manual checkout on hardware and the new nfit_test emulation
        of the security capability.
      
        The touches of the security/keys/ files have received the necessary
        acks from Mimi and David. Those changes were necessary to allow for a
        new generic encrypted-key type, and allow the nvdimm sub-system to
        lookup key material referenced by the libnvdimm-sysfs interface.
      
        Summary:
      
         - Add support for the security features of nvdimm devices that
           implement a security model similar to ATA hard drive security. The
           security model supports locking access to the media at
           device-power-loss, to be unlocked with a passphrase, and
           secure-erase (crypto-scramble).
      
           Unlike the ATA security case where the kernel expects device
           security to be managed in a pre-OS environment, the libnvdimm
           security implementation allows key provisioning and key-operations
           at OS runtime. Keys are managed with the kernel's encrypted-keys
           facility to provide data-at-rest security for the libnvdimm key
           material. The usage model mirrors fscrypt key management, but is
           driven via libnvdimm sysfs.
      
         - Miscellaneous updates for api usage and comment fixes"
      
      * tag 'libnvdimm-for-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (21 commits)
        libnvdimm/security: Quiet security operations
        libnvdimm/security: Add documentation for nvdimm security support
        tools/testing/nvdimm: add Intel DSM 1.8 support for nfit_test
        tools/testing/nvdimm: Add overwrite support for nfit_test
        tools/testing/nvdimm: Add test support for Intel nvdimm security DSMs
        acpi/nfit, libnvdimm/security: add Intel DSM 1.8 master passphrase support
        acpi/nfit, libnvdimm/security: Add security DSM overwrite support
        acpi/nfit, libnvdimm: Add support for issue secure erase DSM to Intel nvdimm
        acpi/nfit, libnvdimm: Add enable/update passphrase support for Intel nvdimms
        acpi/nfit, libnvdimm: Add disable passphrase support to Intel nvdimm.
        acpi/nfit, libnvdimm: Add unlock of nvdimm support for Intel DIMMs
        acpi/nfit, libnvdimm: Add freeze security support to Intel nvdimm
        acpi/nfit, libnvdimm: Introduce nvdimm_security_ops
        keys-encrypted: add nvdimm key format type to encrypted keys
        keys: Export lookup_user_key to external users
        acpi/nfit, libnvdimm: Store dimm id as a member to struct nvdimm
        libnvdimm, namespace: Replace kmemdup() with kstrndup()
        libnvdimm, label: Switch to bitmap_zalloc()
        ACPI/nfit: Adjust annotation for why return 0 if fail to find NFIT at start
        libnvdimm, bus: Check id immediately following ida_simple_get
        ...
      75f95da0
    • Linus Torvalds's avatar
      Merge tag 'for-4.21/dm-changes' of... · 4ed7bdc1
      Linus Torvalds authored
      Merge tag 'for-4.21/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Eliminate a couple indirect calls from bio-based DM core.
      
       - Fix DM to allow reads that exceed readahead limits by setting
         io_pages in the backing_dev_info.
      
       - A couple code cleanups in request-based DM.
      
       - Fix various DM targets to check for device sector overflow if
         CONFIG_LBDAF is not set.
      
       - Use u64 instead of sector_t to store iv_offset in DM crypt; sector_t
         isn't large enough on 32bit when CONFIG_LBDAF is not set.
      
       - Performance fixes to DM's kcopyd and the snapshot target focused on
         limiting memory use and workqueue stalls.
      
       - Fix typos in the integrity and writecache targets.
      
       - Log which algorithm is used for dm-crypt's encryption and
         dm-integrity's hashing.
      
       - Fix false -EBUSY errors in DM raid target's handling of check/repair
         messages.
      
       - Fix DM flakey target's corrupt_bio_byte feature to reliably corrupt
         the Nth byte in a bio's payload.
      
      * tag 'for-4.21/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: do not allow readahead to limit IO size
        dm raid: fix false -EBUSY when handling check/repair message
        dm rq: cleanup leftover code from recently removed q->mq_ops branching
        dm verity: log the hash algorithm implementation
        dm crypt: log the encryption algorithm implementation
        dm integrity: fix spelling mistake in workqueue name
        dm flakey: Properly corrupt multi-page bios.
        dm: Check for device sector overflow if CONFIG_LBDAF is not set
        dm crypt: use u64 instead of sector_t to store iv_offset
        dm kcopyd: Fix bug causing workqueue stalls
        dm snapshot: Fix excessive memory usage and workqueue stalls
        dm bufio: update comment in dm-bufio.c
        dm writecache: fix typo in error msg for creating writecache_flush_thread
        dm: remove indirect calls from __send_changing_extent_only()
        dm mpath: only flush workqueue when needed
        dm rq: remove unused arguments from rq_completed()
        dm: avoid indirect call in __dm_make_request
      4ed7bdc1
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 5d24ae67
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This has been a fairly typical cycle, with the usual sorts of driver
        updates. Several series continue to come through which improve and
        modernize various parts of the core code, and we finally are starting
        to get the uAPI command interface cleaned up.
      
         - Various driver fixes for bnxt_re, cxgb3/4, hfi1, hns, i40iw, mlx4,
           mlx5, qib, rxe, usnic
      
         - Rework the entire syscall flow for uverbs to be able to run over
           ioctl(). Finally getting past the historic bad choice to use
           write() for command execution
      
         - More functional coverage with the mlx5 'devx' user API
      
         - Start of the HFI1 series for 'TID RDMA'
      
         - SRQ support in the hns driver
      
         - Support for new IBTA defined 2x lane widths
      
         - A big series to consolidate all the driver function pointers into a
           big struct and have drivers provide a 'static const' version of the
           struct instead of open coding initialization
      
         - New 'advise_mr' uAPI to control device caching/loading of page
           tables
      
         - Support for inline data in SRPT
      
         - Modernize how umad uses the driver core and creates cdev's and
           sysfs files
      
         - First steps toward removing 'uobject' from the view of the drivers"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (193 commits)
        RDMA/srpt: Use kmem_cache_free() instead of kfree()
        RDMA/mlx5: Signedness bug in UVERBS_HANDLER()
        IB/uverbs: Signedness bug in UVERBS_HANDLER()
        IB/mlx5: Allocate the per-port Q counter shared when DEVX is supported
        IB/umad: Start using dev_groups of class
        IB/umad: Use class_groups and let core create class file
        IB/umad: Refactor code to use cdev_device_add()
        IB/umad: Avoid destroying device while it is accessed
        IB/umad: Simplify and avoid dynamic allocation of class
        IB/mlx5: Fix wrong error unwind
        IB/mlx4: Remove set but not used variable 'pd'
        RDMA/iwcm: Don't copy past the end of dev_name() string
        IB/mlx5: Fix long EEH recover time with NVMe offloads
        IB/mlx5: Simplify netdev unbinding
        IB/core: Move query port to ioctl
        RDMA/nldev: Expose port_cap_flags2
        IB/core: uverbs copy to struct or zero helper
        IB/rxe: Reuse code which sets port state
        IB/rxe: Make counters thread safe
        IB/mlx5: Use the correct commands for UMEM and UCTX allocation
        ...
      5d24ae67
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 938edb8a
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly update of the usual drivers: smarpqi, lpfc, qedi,
        megaraid_sas, libsas, zfcp, mpt3sas, hisi_sas.
      
        Additionally, we have a pile of annotation, unused variable and minor
        updates.
      
        The big API change is the updates for Christoph's DMA rework which
        include removing the DISABLE_CLUSTERING flag.
      
        And finally there are a couple of target tree updates"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (259 commits)
        scsi: isci: request: mark expected switch fall-through
        scsi: isci: remote_node_context: mark expected switch fall-throughs
        scsi: isci: remote_device: Mark expected switch fall-throughs
        scsi: isci: phy: Mark expected switch fall-through
        scsi: iscsi: Capture iscsi debug messages using tracepoints
        scsi: myrb: Mark expected switch fall-throughs
        scsi: megaraid: fix out-of-bound array accesses
        scsi: mpt3sas: mpt3sas_scsih: Mark expected switch fall-through
        scsi: fcoe: remove set but not used variable 'port'
        scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown()
        scsi: smartpqi: fix build warnings
        scsi: smartpqi: update driver version
        scsi: smartpqi: add ofa support
        scsi: smartpqi: increase fw status register read timeout
        scsi: smartpqi: bump driver version
        scsi: smartpqi: add smp_utils support
        scsi: smartpqi: correct lun reset issues
        scsi: smartpqi: correct volume status
        scsi: smartpqi: do not offline disks for transient did no connect conditions
        scsi: smartpqi: allow for larger raid maps
        ...
      938edb8a
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.21' of git://git.infradead.org/users/hch/dma-mapping · af7ddd8a
      Linus Torvalds authored
      Pull DMA mapping updates from Christoph Hellwig:
       "A huge update this time, but a lot of that is just consolidating or
        removing code:
      
         - provide a common DMA_MAPPING_ERROR definition and avoid indirect
           calls for dma_map_* error checking
      
         - use direct calls for the DMA direct mapping case, avoiding huge
           retpoline overhead for high performance workloads
      
         - merge the swiotlb dma_map_ops into dma-direct
      
         - provide a generic remapping DMA consistent allocator for
           architectures that have devices that perform DMA that is not cache
           coherent. Based on the existing arm64 implementation and also used
           for csky now.
      
         - improve the dma-debug infrastructure, including dynamic allocation
           of entries (Robin Murphy)
      
         - default to providing chaining scatterlist everywhere, with opt-outs
           for the few architectures (alpha, parisc, most arm32 variants) that
           can't cope with it
      
         - misc sparc32 dma-related cleanups
      
         - remove the dma_mark_clean arch hook used by swiotlb on ia64 and
           replace it with the generic noncoherent infrastructure
      
         - fix the return type of dma_set_max_seg_size (Niklas Söderlund)
      
         - move the dummy dma ops for not DMA capable devices from arm64 to
           common code (Robin Murphy)
      
         - ensure dma_alloc_coherent returns zeroed memory to avoid kernel
           data leaks through userspace. We already did this for most common
           architectures, but this ensures we do it everywhere.
           dma_zalloc_coherent has been deprecated and can hopefully be
           removed after -rc1 with a coccinelle script"
      
      * tag 'dma-mapping-4.21' of git://git.infradead.org/users/hch/dma-mapping: (73 commits)
        dma-mapping: fix inverted logic in dma_supported
        dma-mapping: deprecate dma_zalloc_coherent
        dma-mapping: zero memory returned from dma_alloc_*
        sparc/iommu: fix ->map_sg return value
        sparc/io-unit: fix ->map_sg return value
        arm64: default to the direct mapping in get_arch_dma_ops
        PCI: Remove unused attr variable in pci_dma_configure
        ia64: only select ARCH_HAS_DMA_COHERENT_TO_PFN if swiotlb is enabled
        dma-mapping: bypass indirect calls for dma-direct
        vmd: use the proper dma_* APIs instead of direct methods calls
        dma-direct: merge swiotlb_dma_ops into the dma_direct code
        dma-direct: use dma_direct_map_page to implement dma_direct_map_sg
        dma-direct: improve addressability error reporting
        swiotlb: remove dma_mark_clean
        swiotlb: remove SWIOTLB_MAP_ERROR
        ACPI / scan: Refactor _CCA enforcement
        dma-mapping: factor out dummy DMA ops
        dma-mapping: always build the direct mapping code
        dma-mapping: move dma_cache_sync out of line
        dma-mapping: move various slow path functions out of line
        ...
      af7ddd8a
    • Linus Torvalds's avatar
      Merge tag 'for-4.21/libata-20181221' of git://git.kernel.dk/linux-block · fe2b0cda
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "Here are the libata changes for this merge window. Nothing major in
        here. This contains:
      
         - GPIO descriptor conversions (Linus Walleij)
      
         - rcar deferred probing fix (Sergei Shtylyov)"
      
      * tag 'for-4.21/libata-20181221' of git://git.kernel.dk/linux-block:
        sata_rcar: fix deferred probing
        ata: palmld: Introduce state container
        ata: palmld: Convert to GPIO descriptors
        ata: rb532_cf: Convert to use GPIO descriptors
        ata: sata_highbank: Convert to use GPIO descriptors
        ata: pxa: Drop <linux/gpio.h> include
      fe2b0cda
    • Linus Torvalds's avatar
      Merge tag 'for-4.21/aio-20181221' of git://git.kernel.dk/linux-block · 956eb6cb
      Linus Torvalds authored
      Pull aio updates from Jens Axboe:
       "Flushing out pre-patches for the buffered/polled aio series. Some
        fixes in here, but also optimizations"
      
      * tag 'for-4.21/aio-20181221' of git://git.kernel.dk/linux-block:
        aio: abstract out io_event filler helper
        aio: split out iocb copy from io_submit_one()
        aio: use iocb_put() instead of open coding it
        aio: only use blk plugs for > 2 depth submissions
        aio: don't zero entire aio_kiocb aio_get_req()
        aio: separate out ring reservation from req allocation
        aio: use assigned completion handler
      956eb6cb
    • Linus Torvalds's avatar
      Merge tag 'for-4.21/block-20181221' of git://git.kernel.dk/linux-block · 0e9da3fb
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "This is the main pull request for block/storage for 4.21.
      
        Larger than usual, it was a busy round with lots of goodies queued up.
        Most notable is the removal of the old IO stack, which has been a long
        time coming. No new features for a while, everything coming in this
        week has all been fixes for things that were previously merged.
      
        This contains:
      
         - Use atomic counters instead of semaphores for mtip32xx (Arnd)
      
         - Cleanup of the mtip32xx request setup (Christoph)
      
         - Fix for circular locking dependency in loop (Jan, Tetsuo)
      
         - bcache (Coly, Guoju, Shenghui)
            * Optimizations for writeback caching
            * Various fixes and improvements
      
         - nvme (Chaitanya, Christoph, Sagi, Jay, me, Keith)
            * host and target support for NVMe over TCP
            * Error log page support
            * Support for separate read/write/poll queues
            * Much improved polling
            * discard OOM fallback
            * Tracepoint improvements
      
         - lightnvm (Hans, Hua, Igor, Matias, Javier)
            * Igor added packed metadata to pblk. Now drives without metadata
              per LBA can be used as well.
            * Fix from Geert on uninitialized value on chunk metadata reads.
            * Fixes from Hans and Javier to pblk recovery and write path.
            * Fix from Hua Su to fix a race condition in the pblk recovery
              code.
            * Scan optimization added to pblk recovery from Zhoujie.
            * Small geometry cleanup from me.
      
         - Conversion of the last few drivers that used the legacy path to
           blk-mq (me)
      
         - Removal of legacy IO path in SCSI (me, Christoph)
      
         - Removal of legacy IO stack and schedulers (me)
      
         - Support for much better polling, now without interrupts at all.
           blk-mq adds support for multiple queue maps, which enables us to
           have a map per type. This in turn enables nvme to have separate
           completion queues for polling, which can then be interrupt-less.
           Also means we're ready for async polled IO, which is hopefully
           coming in the next release.
      
         - Killing of (now) unused block exports (Christoph)
      
         - Unification of the blk-rq-qos and blk-wbt wait handling (Josef)
      
         - Support for zoned testing with null_blk (Masato)
      
         - sx8 conversion to per-host tag sets (Christoph)
      
         - IO priority improvements (Damien)
      
         - mq-deadline zoned fix (Damien)
      
         - Ref count blkcg series (Dennis)
      
         - Lots of blk-mq improvements and speedups (me)
      
         - sbitmap scalability improvements (me)
      
         - Make core inflight IO accounting per-cpu (Mikulas)
      
         - Export timeout setting in sysfs (Weiping)
      
         - Cleanup the direct issue path (Jianchao)
      
         - Export blk-wbt internals in block debugfs for easier debugging
           (Ming)
      
         - Lots of other fixes and improvements"
      
      * tag 'for-4.21/block-20181221' of git://git.kernel.dk/linux-block: (364 commits)
        kyber: use sbitmap add_wait_queue/list_del wait helpers
        sbitmap: add helpers for add/del wait queue handling
        block: save irq state in blkg_lookup_create()
        dm: don't reuse bio for flushes
        nvme-pci: trace SQ status on completions
        nvme-rdma: implement polling queue map
        nvme-fabrics: allow user to pass in nr_poll_queues
        nvme-fabrics: allow nvmf_connect_io_queue to poll
        nvme-core: optionally poll sync commands
        block: make request_to_qc_t public
        nvme-tcp: fix spelling mistake "attepmpt" -> "attempt"
        nvme-tcp: fix endianess annotations
        nvmet-tcp: fix endianess annotations
        nvme-pci: refactor nvme_poll_irqdisable to make sparse happy
        nvme-pci: only set nr_maps to 2 if poll queues are supported
        nvmet: use a macro for default error location
        nvmet: fix comparison of a u16 with -1
        blk-mq: enable IO poll if .nr_queues of type poll > 0
        blk-mq: change blk_mq_queue_busy() to blk_mq_queue_inflight()
        blk-mq: skip zero-queue maps in blk_mq_map_swqueue
        ...
      0e9da3fb
    • Linus Torvalds's avatar
      Merge tag 'y2038-for-4.21' of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground · b12a9124
      Linus Torvalds authored
      Pull y2038 updates from Arnd Bergmann:
       "More syscalls and cleanups
      
        This concludes the main part of the system call rework for 64-bit
        time_t, which has spread over most of year 2018, the last six system
        calls being
      
          - ppoll
          - pselect6
          - io_pgetevents
          - recvmmsg
          - futex
          - rt_sigtimedwait
      
        As before, nothing changes for 64-bit architectures, while 32-bit
        architectures gain another entry point that differs only in the layout
        of the timespec structure. Hopefully in the next release we can wire
        up all 22 of those system calls on all 32-bit architectures, which
        gives us a baseline version for glibc to start using them.
      
        This does not include the clock_adjtime, getrusage/waitid, and
        getitimer/setitimer system calls. I still plan to have new versions of
        those as well, but they are not required for correct operation of the
        C library since they can be emulated using the old 32-bit time_t based
        system calls.
      
        Aside from the system calls, there are also a few cleanups here,
        removing old kernel internal interfaces that have become unused after
        all references got removed. The arch/sh cleanups are part of this,
        there were posted several times over the past year without a reaction
        from the maintainers, while the corresponding changes made it into all
        other architectures"
      
      * tag 'y2038-for-4.21' of ssh://gitolite.kernel.org:/pub/scm/linux/kernel/git/arnd/playground:
        timekeeping: remove obsolete time accessors
        vfs: replace current_kernel_time64 with ktime equivalent
        timekeeping: remove timespec_add/timespec_del
        timekeeping: remove unused {read,update}_persistent_clock
        sh: remove board_time_init() callback
        sh: remove unused rtc_sh_get/set_time infrastructure
        sh: sh03: rtc: push down rtc class ops into driver
        sh: dreamcast: rtc: push down rtc class ops into driver
        y2038: signal: Add compat_sys_rt_sigtimedwait_time64
        y2038: signal: Add sys_rt_sigtimedwait_time32
        y2038: socket: Add compat_sys_recvmmsg_time64
        y2038: futex: Add support for __kernel_timespec
        y2038: futex: Move compat implementation into futex.c
        io_pgetevents: use __kernel_timespec
        pselect6: use __kernel_timespec
        ppoll: use __kernel_timespec
        signal: Add restore_user_sigmask()
        signal: Add set_user_sigmask()
      b12a9124
    • Matthew Wilcox's avatar
      Fix failure path in alloc_pid() · 1a80dade
      Matthew Wilcox authored
      The failure path removes the allocated PIDs from the wrong namespace.
      This could lead to us inadvertently reusing PIDs in the leaf namespace
      and leaking PIDs in parent namespaces.
      
      Fixes: 95846ecf ("pid: replace pid bitmap implementation with IDR API")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMatthew Wilcox <willy@infradead.org>
      Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1a80dade
    • YueHaibing's avatar
      kernel/fork.c: mark 'stack_vm_area' with __maybe_unused · 0f4991e8
      YueHaibing authored
      Fixes gcc '-Wunused-but-set-variable' warning when CONFIG_VMAP_STACK is
      not set:
      
      kernel/fork.c: In function 'dup_task_struct':
      kernel/fork.c:843:20: warning:
       variable 'stack_vm_area' set but not used [-Wunused-but-set-variable]
      
      Link: http://lkml.kernel.org/r/1545965190-2381-1-git-send-email-yuehaibing@huawei.comSigned-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0f4991e8
    • Michal Hocko's avatar
      memcg, oom: notify on oom killer invocation from the charge path · 7056d3a3
      Michal Hocko authored
      Burt Holzman has noticed that memcg v1 doesn't notify about OOM events via
      eventfd anymore.  The reason is that 29ef680a ("memcg, oom: move
      out_of_memory back to the charge path") has moved the oom handling back to
      the charge path.  While doing so the notification was left behind in
      mem_cgroup_oom_synchronize.
      
      Fix the issue by replicating the oom hierarchy locking and the
      notification.
      
      Link: http://lkml.kernel.org/r/20181224091107.18354-1-mhocko@kernel.org
      Fixes: 29ef680a ("memcg, oom: move out_of_memory back to the charge path")
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.com>
      Reported-by: default avatarBurt Holzman <burt@fnal.gov>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com
      Cc: <stable@vger.kernel.org>	[4.19+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7056d3a3
    • Huang Ying's avatar
      mm, swap: fix swapoff with KSM pages · 7af7a8e1
      Huang Ying authored
      KSM pages may be mapped to the multiple VMAs that cannot be reached from
      one anon_vma.  So during swapin, a new copy of the page need to be
      generated if a different anon_vma is needed, please refer to comments of
      ksm_might_need_to_copy() for details.
      
      During swapoff, unuse_vma() uses anon_vma (if available) to locate VMA and
      virtual address mapped to the page, so not all mappings to a swapped out
      KSM page could be found.  So in try_to_unuse(), even if the swap count of
      a swap entry isn't zero, the page needs to be deleted from swap cache, so
      that, in the next round a new page could be allocated and swapin for the
      other mappings of the swapped out KSM page.
      
      But this contradicts with the THP swap support.  Where the THP could be
      deleted from swap cache only after the swap count of every swap entry in
      the huge swap cluster backing the THP has reach 0.  So try_to_unuse() is
      changed in commit e0709829 ("mm, THP, swap: support to reclaim swap
      space for THP swapped out") to check that before delete a page from swap
      cache, but this has broken KSM swapoff too.
      
      Fortunately, KSM is for the normal pages only, so the original behavior
      for KSM pages could be restored easily via checking PageTransCompound().
      That is how this patch works.
      
      The bug is introduced by e0709829 ("mm, THP, swap: support to reclaim
      swap space for THP swapped out"), which is merged by v4.14-rc1.  So I
      think we should backport the fix to from 4.14 on.  But Hugh thinks it may
      be rare for the KSM pages being in the swap device when swapoff, so nobody
      reports the bug so far.
      
      Link: http://lkml.kernel.org/r/20181226051522.28442-1-ying.huang@intel.com
      Fixes: e0709829 ("mm, THP, swap: support to reclaim swap space for THP swapped out")
      Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Tested-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Shaohua Li <shli@kernel.org>
      Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
      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>
      7af7a8e1
    • Kyle Spiers's avatar
    • Dan Williams's avatar
      mm/hmm: fix memremap.h, move dev_page_fault_t callback to hmm · 063a7d1d
      Dan Williams authored
      The kbuild robot reported the following on a development branch that used
      memremap.h in a new path:
      
         In file included from arch/m68k/include/asm/pgtable_mm.h:148:0,
                           from arch/m68k/include/asm/pgtable.h:5,
                           from include/linux/memremap.h:7,
                           from drivers//dax/bus.c:3:
          arch/m68k/include/asm/motorola_pgtable.h: In function 'pgd_offset':
       >> arch/m68k/include/asm/motorola_pgtable.h:199:11: error: dereferencing pointer to incomplete type 'const struct mm_struct'
            return mm->pgd + pgd_index(address);
                     ^~
      
      The ->page_fault() callback is specific to HMM.  Move it to 'struct
      hmm_devmem' where the unusual asm/pgtable.h dependency can be contained in
      include/linux/hmm.h.  Longer term refactoring this dependency out of HMM
      is recommended, but in the meantime memremap.h remains generic.
      
      Link: http://lkml.kernel.org/r/154534090899.3120190.6652620807617715272.stgit@dwillia2-desk3.amr.corp.intel.com
      Fixes: 5042db43 ("mm/ZONE_DEVICE: new type of ZONE_DEVICE memory...")
      Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      Reviewed-by: default avatar"Jérôme Glisse" <jglisse@redhat.com>
      Cc: Logan Gunthorpe <logang@deltatee.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      063a7d1d
    • Mike Kravetz's avatar
      hugetlbfs: Use i_mmap_rwsem to fix page fault/truncate race · c86aa7bb
      Mike Kravetz authored
      hugetlbfs page faults can race with truncate and hole punch operations.
      Current code in the page fault path attempts to handle this by 'backing
      out' operations if we encounter the race.  One obvious omission in the
      current code is removing a page newly added to the page cache.  This is
      pretty straight forward to address, but there is a more subtle and
      difficult issue of backing out hugetlb reservations.  To handle this
      correctly, the 'reservation state' before page allocation needs to be
      noted so that it can be properly backed out.  There are four distinct
      possibilities for reservation state: shared/reserved, shared/no-resv,
      private/reserved and private/no-resv.  Backing out a reservation may
      require memory allocation which could fail so that needs to be taken into
      account as well.
      
      Instead of writing the required complicated code for this rare occurrence,
      just eliminate the race.  i_mmap_rwsem is now held in read mode for the
      duration of page fault processing.  Hold i_mmap_rwsem longer in truncation
      and hold punch code to cover the call to remove_inode_hugepages.
      
      With this modification, code in remove_inode_hugepages checking for races
      becomes 'dead' as it can not longer happen.  Remove the dead code and
      expand comments to explain reasoning.  Similarly, checks for races with
      truncation in the page fault path can be simplified and removed.
      
      [mike.kravetz@oracle.com: incorporat suggestions from Kirill]
        Link: http://lkml.kernel.org/r/20181222223013.22193-3-mike.kravetz@oracle.com
      Link: http://lkml.kernel.org/r/20181218223557.5202-3-mike.kravetz@oracle.com
      Fixes: ebed4bfc ("hugetlb: fix absurd HugePages_Rsvd")
      Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Prakash Sangappa <prakash.sangappa@oracle.com>
      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>
      c86aa7bb
    • Mike Kravetz's avatar
      hugetlbfs: use i_mmap_rwsem for more pmd sharing synchronization · b43a9990
      Mike Kravetz authored
      While looking at BUGs associated with invalid huge page map counts, it was
      discovered and observed that a huge pte pointer could become 'invalid' and
      point to another task's page table.  Consider the following:
      
      A task takes a page fault on a shared hugetlbfs file and calls
      huge_pte_alloc to get a ptep.  Suppose the returned ptep points to a
      shared pmd.
      
      Now, another task truncates the hugetlbfs file.  As part of truncation, it
      unmaps everyone who has the file mapped.  If the range being truncated is
      covered by a shared pmd, huge_pmd_unshare will be called.  For all but the
      last user of the shared pmd, huge_pmd_unshare will clear the pud pointing
      to the pmd.  If the task in the middle of the page fault is not the last
      user, the ptep returned by huge_pte_alloc now points to another task's
      page table or worse.  This leads to bad things such as incorrect page
      map/reference counts or invalid memory references.
      
      To fix, expand the use of i_mmap_rwsem as follows:
      
      - i_mmap_rwsem is held in read mode whenever huge_pmd_share is called.
        huge_pmd_share is only called via huge_pte_alloc, so callers of
        huge_pte_alloc take i_mmap_rwsem before calling.  In addition, callers
        of huge_pte_alloc continue to hold the semaphore until finished with the
        ptep.
      
      - i_mmap_rwsem is held in write mode whenever huge_pmd_unshare is
        called.
      
      [mike.kravetz@oracle.com: add explicit check for mapping != null]
      Link: http://lkml.kernel.org/r/20181218223557.5202-2-mike.kravetz@oracle.com
      Fixes: 39dde65c ("shared page table for hugetlb page")
      Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: Prakash Sangappa <prakash.sangappa@oracle.com>
      Cc: Colin Ian King <colin.king@canonical.com>
      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>
      b43a9990