Permalink
Commits on Oct 5, 2017
  1. Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel…

    torvalds committed Oct 5, 2017
    …/git/arm/arm-soc
    
    Pull ARM SoC fixes from Olof Johansson:
     "Our first batch of fixes this release cycle, unfortunately a bit
      noisier than usual. Two major groups stand out:
    
       - Some pinctril dts/dtsi changes for stm32 due to a new driver being
         merged during the merge window, and this aligns the DT contents
         between the old format and the new. This could arguably be moved to
         the next merge window but it also seemed relatively harmless to
         include now.
    
       - Amlogic/meson had driver changes merged that required devicetree
         changes to avoid functional/performance regressions. I've already
         asked them to be more careful about this going forward, and making
         sure drivers are compatible with older DTs when they make these
         kind of changes. The platform is actively being upstreamed so
         there's a few things in flight, we've seen this happen before and
         sometimes it's hard to catch in time.
    
      Besides that there is the usual mix of minor fixes"
    
    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (33 commits)
      ARM: dts: stm32: use right pinctrl compatible for stm32f469
      ARM: dts: stm32: Fix STMPE1600 binding on stm32429i-eval board
      ARM: defconfig: update Gemini defconfig
      ARM: defconfig: FRAMEBUFFER_CONSOLE can no longer be =m
      arm64: dts: rockchip: add the grf clk for dw-mipi-dsi on rk3399
      reset: Restrict RESET_HSDK to ARC_SOC_HSDK or COMPILE_TEST
      ARM: dts: da850-evm: add serial and ethernet aliases
      ARM: dts: am43xx-epos-evm: Remove extra CPSW EMAC entry
      ARM: dts: am33xx: Add spi alias to match SOC schematics
      ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both
      ARM: dts: dra7: Set a default parent to mcasp3_ahclkx_mux
      ARM: OMAP2+: dra7xx: Set OPT_CLKS_IN_RESET flag for gpio1
      ARM: dts: nokia n900: drop unneeded/undocumented parts of the dts
      arm64: dts: rockchip: Correct MIPI DPHY PLL clock on rk3399
      arm64: dt marvell: Fix AP806 system controller size
      MAINTAINERS: add Macchiatobin maintainers entry
      ARC: reset: remove the misleading v1 suffix all over
      ARC: reset: add missing DT binding documentation for HSDKv1 reset driver
      ARC: reset: Only build on archs that have IOMEM
      ARM: at91: Replace uses of virt_to_phys with __pa_symbol
      ...
  2. Update James Hogan's email address

    James Hogan committed with torvalds Oct 4, 2017
    Update my imgtec.com and personal email address to my kernel.org one in
    a few places as MIPS will soon no longer be part of Imagination
    Technologies, and add mappings in .mailcap so get_maintainer.pl reports
    the right address.
    
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Oct 4, 2017
  1. Merge tag 'stm32-dt-fixes-for-v4.14' of git://git.kernel.org/pub/scm/…

    olofj committed Oct 4, 2017
    …linux/kernel/git/atorgue/stm32 into fixes
    
    STM32 fixes for v4.14:
    ---------------------
    
    -Fix STMPE1600 bindings for stm32429i-eval board
    -Use right compatible for stm32f469 pinctrl. It implies to use
    pinctrl dedicated files for F4 SoCs.
    
    * tag 'stm32-dt-fixes-for-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
      ARM: dts: stm32: use right pinctrl compatible for stm32f469
      ARM: dts: stm32: Fix STMPE1600 binding on stm32429i-eval board
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  2. Merge tag 'amlogic-dt64-3' of git://git.kernel.org/pub/scm/linux/kern…

    olofj committed Oct 4, 2017
    …el/git/khilman/linux-amlogic into fixes
    
    Amlogic 64-bit DT updates for v4.14 (round 3)
    - updates for new MMC driver features/fixes
    - support high-speed modes
    
    * tag 'amlogic-dt64-3' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
      ARM64: dts: meson-gxbb: nanopi-k2: enable sdr104 mode
      ARM64: dts: meson-gxbb: nanopi-k2: enable sdcard UHS modes
      ARM64: dts: meson-gxbb: p20x: enable sdcard UHS modes
      ARM64: dts: meson-gxl: libretech-cc: enable high speed modes
      ARM64: dts: meson-gxl: libretech-cc: add card regulator settle times
      ARM64: dts: meson-gxbb: nanopi-k2: add card regulator settle times
      ARM64: dts: meson: add mmc clk gate pins
      ARM64: dts: meson: remove cap-sd-highspeed from emmc nodes
      ARM64: dts: meson-gx: Use correct mmc clock source 0
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  3. Merge branch 'akpm' (patches from Andrew)

    torvalds committed Oct 4, 2017
    Merge misc fixes from Andrew Morton:
     "A lot of stuff, sorry about that. A week on a beach, then a bunch of
      time catching up then more time letting it bake in -next. Shan't do
      that again!"
    
    * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (51 commits)
      include/linux/fs.h: fix comment about struct address_space
      checkpatch: fix ignoring cover-letter logic
      m32r: fix build failure
      lib/ratelimit.c: use deferred printk() version
      kernel/params.c: improve STANDARD_PARAM_DEF readability
      kernel/params.c: fix an overflow in param_attr_show
      kernel/params.c: fix the maximum length in param_get_string
      mm/memory_hotplug: define find_{smallest|biggest}_section_pfn as unsigned long
      mm/memory_hotplug: change pfn_to_section_nr/section_nr_to_pfn macro to inline function
      kernel/kcmp.c: drop branch leftover typo
      memremap: add scheduling point to devm_memremap_pages
      mm, page_alloc: add scheduling point to memmap_init_zone
      mm, memory_hotplug: add scheduling point to __add_pages
      lib/idr.c: fix comment for idr_replace()
      mm: memcontrol: use vmalloc fallback for large kmem memcg arrays
      kernel/sysctl.c: remove duplicate UINT_MAX check on do_proc_douintvec_conv()
      include/linux/bitfield.h: remove 32bit from FIELD_GET comment block
      lib/lz4: make arrays static const, reduces object code size
      exec: binfmt_misc: kill the onstack iname[BINPRM_BUF_SIZE] array
      exec: binfmt_misc: fix race between load_misc_binary() and kill_node()
      ...
  4. Merge branch 'fixes-v4.14-rc4' of git://git.kernel.org/pub/scm/linux/…

    torvalds committed Oct 4, 2017
    …kernel/git/jmorris/linux-security
    
    Pull smack fix from James Morris:
     "It fixes a bug in xattr_getsecurity() where security_release_secctx()
      was being called instead of kfree(), which leads to a memory leak in
      the capabilities code. smack_inode_getsecurity is also fixed to behave
      correctly when called from there"
    
    * 'fixes-v4.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
      lsm: fix smack_inode_removexattr and xattr_getsecurity memleak
  5. Merge tag 'trace-v4.14-rc1-3' of git://git.kernel.org/pub/scm/linux/k…

    torvalds committed Oct 4, 2017
    …ernel/git/rostedt/linux-trace
    
    Pull tracing fixlets from Steven Rostedt:
     "Two updates:
    
       - A memory fix with left over code from spliting out ftrace_ops and
         function graph tracer, where the function graph tracer could reset
         the trampoline pointer, leaving the old trampoline not to be freed
         (memory leak).
    
       - The update to Paul's patch that added the unnecessary READ_ONCE().
         This removes the unnecessary READ_ONCE() instead of having to
         rebase the branch to update the patch that added it"
    
    * tag 'trace-v4.14-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      rcu: Remove extraneous READ_ONCE()s from rcu_irq_{enter,exit}()
      ftrace: Fix kmemleak in unregister_ftrace_graph
  6. ARM: dts: stm32: use right pinctrl compatible for stm32f469

    atorgue committed Oct 4, 2017
    Currently, same stm32f429-pinctrl driver is used for stm32f429 and
    stm32f469. As pin map is different between those 2 MCUs,
    a stm32f469-pinctrl driver has been recently added.
    This patch
     -allows to use stm32f469-pinctrl driver for stm32f469 boards
     -reworks stm32 devicetree files to fit with stm32f429 / stm32f469
    
    In the same time it fixes an issue when only MACH_STM32F469 flag is
    selected in menuconfig.
    
    Fixes: d28bcd5 ("ARM: stm32: Introduce MACH_STM32F469 flag")
    Reported-by: Nicolas Pitre <nicolas.pitre@linaro.org>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
  7. ARM: dts: stm32: Fix STMPE1600 binding on stm32429i-eval board

    atorgue committed Oct 4, 2017
    To declare gpio interrupt line for STMPE1600, 2 possibilities are offered:
    -use gpio binding (and then the gpiolib interface inside driver)
    -use interrupt binding as each gpio-controller are also interrupt controller
     on stm32f429.
    
    In STMPE 1600 node both (gpio and interrupt) bindings are defined.
    This patch fixes this issue and use only interrupt binding.
    
    Fixes: c04b2e7 ("ARM: dts: stm32: Enable STMPE1600 gpio expander of STM32F429-EVAL board")
    Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
  8. lsm: fix smack_inode_removexattr and xattr_getsecurity memleak

    cschaufler committed with James Morris Sep 19, 2017
    security_inode_getsecurity() provides the text string value
    of a security attribute. It does not provide a "secctx".
    The code in xattr_getsecurity() that calls security_inode_getsecurity()
    and then calls security_release_secctx() happened to work because
    SElinux and Smack treat the attribute and the secctx the same way.
    It fails for cap_inode_getsecurity(), because that module has no
    secctx that ever needs releasing. It turns out that Smack is the
    one that's doing things wrong by not allocating memory when instructed
    to do so by the "alloc" parameter.
    
    The fix is simple enough. Change the security_release_secctx() to
    kfree() because it isn't a secctx being returned by
    security_inode_getsecurity(). Change Smack to allocate the string when
    told to do so.
    
    Note: this also fixes memory leaks for LSMs which implement
    inode_getsecurity but not release_secctx, such as capabilities.
    
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Reported-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: stable@vger.kernel.org
    Signed-off-by: James Morris <james.l.morris@oracle.com>
  9. Merge tag 'omap-for-v4.14/fixes-rc3' of git://git.kernel.org/pub/scm/…

    olofj committed Oct 4, 2017
    …linux/kernel/git/tmlind/linux-omap into fixes
    
    Fixes for omaps for v4.14-rc cycle
    
    Few minor fixes for omaps, mostly just boot time warning fixes:
    
    - Drop undocumented camera binding that got merged during the merge window by
      accident as I applied before Sakari's comments
    
    - Fix soft reset warning for dra7 kexec boot for gpio1 as the optional clocks
      need to be enabled for reset
    
    - Fix dra7 kexec boot clock rate for McASP as the rate is no longer the default
      rate after kexec
    
    - Fix omap3 pandora MMC warning during boot
    
    - Add am33xx SPI alias like we have on other SoCs
    
    - Remove node for non-existing CPSW EMAC Ethernet on am43xx-epos-evm
    
    * tag 'omap-for-v4.14/fixes-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
      ARM: dts: am43xx-epos-evm: Remove extra CPSW EMAC entry
      ARM: dts: am33xx: Add spi alias to match SOC schematics
      ARM: OMAP2+: hsmmc: fix logic to call either omap_hsmmc_init or omap_hsmmc_late_init but not both
      ARM: dts: dra7: Set a default parent to mcasp3_ahclkx_mux
      ARM: OMAP2+: dra7xx: Set OPT_CLKS_IN_RESET flag for gpio1
      ARM: dts: nokia n900: drop unneeded/undocumented parts of the dts
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  10. Merge tag 'v4.14-rockchip-dts64fixes-1' of git://git.kernel.org/pub/s…

    olofj committed Oct 4, 2017
    …cm/linux/kernel/git/mmind/linux-rockchip into fixes
    
    Adding the operating points on rk3368 like they were did not end up well
    for the boards as all of them are missing their cpu supplies, the OPPs
    actually need to follow the <target min max> format as the regulator is
    shared between both clusters and the one rk3368 board I have, somehow also
    doesn't like the higher opps at all - all of which I only realized after
    I brought my rk3368 board online again, after its bootloader broke.
    So we revert that OPP addition for now.
    
    And also two fixes for the mipi dsi controller on rk3399, which was
    referencing a clock to high up in the clock-tree so that an intermediate
    gate could be disabled inadvertently and also needs a clock for its area
    in the general register files of the rk3399 soc.
    
    * tag 'v4.14-rockchip-dts64fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
      arm64: dts: rockchip: add the grf clk for dw-mipi-dsi on rk3399
      arm64: dts: rockchip: Correct MIPI DPHY PLL clock on rk3399
      Revert "arm64: dts: rockchip: Add basic cpu frequencies for RK3368"
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  11. Merge tag 'mvebu-fixes-4.14-1' of git://git.infradead.org/linux-mvebu…

    olofj committed Oct 4, 2017
    … into fixes
    
    mvebu fixes for 4.14 (part 1)
    
    Update MAINTAINERS for the Macchiatobin board (Armada 8K based)
    Fix AP806 system controller size on Armada 7K/8K
    
    * tag 'mvebu-fixes-4.14-1' of git://git.infradead.org/linux-mvebu:
      arm64: dt marvell: Fix AP806 system controller size
      MAINTAINERS: add Macchiatobin maintainers entry
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  12. Merge tag 'reset-fixes-for-4.14' of git://git.pengutronix.de/git/pza/…

    olofj committed Oct 4, 2017
    …linux into fixes
    
    Reset controller fixes for v4.14
    
    - Remove misleading HSDK v1 suffix, as there is no v2 planned
    - Add missing DT binding documentation for HSDK reset driver
    - Fix HSDK reset driver dependencies
    
    * tag 'reset-fixes-for-4.14' of git://git.pengutronix.de/git/pza/linux:
      reset: Restrict RESET_HSDK to ARC_SOC_HSDK or COMPILE_TEST
      ARC: reset: remove the misleading v1 suffix all over
      ARC: reset: add missing DT binding documentation for HSDKv1 reset driver
      ARC: reset: Only build on archs that have IOMEM
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  13. Merge tag 'davinci-fixes-for-v4.14' of git://git.kernel.org/pub/scm/l…

    olofj committed Oct 4, 2017
    …inux/kernel/git/nsekhar/linux-davinci into fixes
    
    A fix for random ethernet mac address problem
    on DA850 EVM.
    
    * tag 'davinci-fixes-for-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
      ARM: dts: da850-evm: add serial and ethernet aliases
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  14. Merge tag 'at91-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…

    olofj committed Oct 4, 2017
    …it/nferre/linux-at91 into fixes
    
    Fixes for 4.14:
    - three DT fixes for the newly introduced sama5d27_som1_ek board
    - one treewide modification that didn't touch this new PM code: we
      synchronize now to be coherent with the other ARM platforms
    
    * tag 'at91-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91:
      ARM: at91: Replace uses of virt_to_phys with __pa_symbol
      ARM: dts: at91: sama5d27_som1_ek: fix USB host vbus
      ARM: dts: at91: sama5d27_som1_ek: fix typos
      ARM: dts: at91: sama5d27_som1_ek: update pinmux/pinconf for LEDs and USB
    
    Signed-off-by: Olof Johansson <olof@lixom.net>
  15. ARM: defconfig: update Gemini defconfig

    linusw committed with olofj Sep 17, 2017
    This updates the Gemini defconfig with drivers merged
    for v4.13 or v4.14:
    - ATA driver is merged
    - DMA driver is merged
    - RTC driver gets selected from default Kconfig
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Olof Johansson <olof@lixom.net>
  16. ARM: defconfig: FRAMEBUFFER_CONSOLE can no longer be =m

    arndb committed with olofj Sep 18, 2017
    It is no longer possible to load this at runtime, so let's
    change the few remaining users to have it built-in all
    the time.
    
    arch/arm/configs/zeus_defconfig:115⚠️ symbol value 'm' invalid for FRAMEBUFFER_CONSOLE
    arch/arm/configs/viper_defconfig:116⚠️ symbol value 'm' invalid for FRAMEBUFFER_CONSOLE
    arch/arm/configs/pxa_defconfig:474⚠️ symbol value 'm' invalid for FRAMEBUFFER_CONSOLE
    
    Reported-by: kernelci.org bot <bot@kernelci.org>
    Fixes: 6104c37 ("fbcon: Make fbcon a built-time depency for fbdev")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Olof Johansson <olof@lixom.net>
  17. include/linux/fs.h: fix comment about struct address_space

    rppt committed with torvalds Oct 3, 2017
    Before commit 9c5d760 ("mm: split gfp_mask and mapping flags into
    separate fields") the private_* fields of struct adrress_space were
    grouped together and using "ditto" in comments describing the last
    fields was correct.
    
    With introduction of gpf_mask between private_lock and private_list
    "ditto" references the wrong description.
    
    Fix it by using the elaborate description.
    
    Link: http://lkml.kernel.org/r/1507009987-8746-1-git-send-email-rppt@linux.vnet.ibm.com
    Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  18. checkpatch: fix ignoring cover-letter logic

    stffrdhrn committed with torvalds Oct 3, 2017
    Currently running checkpatch on a directory with a cover-letter.patch
    file reports the following error:
    
      -----------------------------------------
      patches/smp-v2/v2-0000-cover-letter.patch
      -----------------------------------------
    
      ERROR: Does not appear to be a unified-diff format patch
    
    The logic to suppress the unified-diff check for cover letters is there
    but is checking $file instead of $filename.  Fix the variable to use the
    correct one.
    
    Link: http://lkml.kernel.org/r/20170909090406.31523-1-shorne@gmail.com
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Acked-by: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  19. m32r: fix build failure

    sudipm-mukherjee committed with torvalds Oct 3, 2017
    The allmodconfig build of m32r is failing with the error:
    
      lib/mpi/mpih-div.o: In function 'mpihelp_divrem':
      mpih-div.c:(.text+0x40): undefined reference to 'abort'
      mpih-div.c:(.text+0x40): relocation truncated to fit:
    	R_M32R_26_PCREL_RELA against undefined symbol 'abort'
    
    The function 'abort' was never defined for the m32r architecture.
    
    Create 'abort' as is done in other arch like 'arm' and 'unicore32'.
    
    Link: http://lkml.kernel.org/r/1506727220-6108-1-git-send-email-sudip.mukherjee@codethink.co.uk
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  20. lib/ratelimit.c: use deferred printk() version

    Sergey Senozhatsky committed with torvalds Oct 3, 2017
    printk_ratelimit() invokes ___ratelimit() which may invoke a normal
    printk() (pr_warn() in this particular case) to warn about suppressed
    output.  Given that printk_ratelimit() may be called from anywhere, that
    pr_warn() is dangerous - it may end up deadlocking the system.  Fix
    ___ratelimit() by using deferred printk().
    
    Sasha reported the following lockdep error:
    
     : Unregister pv shared memory for cpu 8
     : select_fallback_rq: 3 callbacks suppressed
     : process 8583 (trinity-c78) no longer affine to cpu8
     :
     : ======================================================
     : WARNING: possible circular locking dependency detected
     : 4.14.0-rc2-next-20170927+ #252 Not tainted
     : ------------------------------------------------------
     : migration/8/62 is trying to acquire lock:
     : (&port_lock_key){-.-.}, at: serial8250_console_write()
     :
     : but task is already holding lock:
     : (&rq->lock){-.-.}, at: sched_cpu_dying()
     :
     : which lock already depends on the new lock.
     :
     :
     : the existing dependency chain (in reverse order) is:
     :
     : -> #3 (&rq->lock){-.-.}:
     : __lock_acquire()
     : lock_acquire()
     : _raw_spin_lock()
     : task_fork_fair()
     : sched_fork()
     : copy_process.part.31()
     : _do_fork()
     : kernel_thread()
     : rest_init()
     : start_kernel()
     : x86_64_start_reservations()
     : x86_64_start_kernel()
     : verify_cpu()
     :
     : -> #2 (&p->pi_lock){-.-.}:
     : __lock_acquire()
     : lock_acquire()
     : _raw_spin_lock_irqsave()
     : try_to_wake_up()
     : default_wake_function()
     : woken_wake_function()
     : __wake_up_common()
     : __wake_up_common_lock()
     : __wake_up()
     : tty_wakeup()
     : tty_port_default_wakeup()
     : tty_port_tty_wakeup()
     : uart_write_wakeup()
     : serial8250_tx_chars()
     : serial8250_handle_irq.part.25()
     : serial8250_default_handle_irq()
     : serial8250_interrupt()
     : __handle_irq_event_percpu()
     : handle_irq_event_percpu()
     : handle_irq_event()
     : handle_level_irq()
     : handle_irq()
     : do_IRQ()
     : ret_from_intr()
     : native_safe_halt()
     : default_idle()
     : arch_cpu_idle()
     : default_idle_call()
     : do_idle()
     : cpu_startup_entry()
     : rest_init()
     : start_kernel()
     : x86_64_start_reservations()
     : x86_64_start_kernel()
     : verify_cpu()
     :
     : -> #1 (&tty->write_wait){-.-.}:
     : __lock_acquire()
     : lock_acquire()
     : _raw_spin_lock_irqsave()
     : __wake_up_common_lock()
     : __wake_up()
     : tty_wakeup()
     : tty_port_default_wakeup()
     : tty_port_tty_wakeup()
     : uart_write_wakeup()
     : serial8250_tx_chars()
     : serial8250_handle_irq.part.25()
     : serial8250_default_handle_irq()
     : serial8250_interrupt()
     : __handle_irq_event_percpu()
     : handle_irq_event_percpu()
     : handle_irq_event()
     : handle_level_irq()
     : handle_irq()
     : do_IRQ()
     : ret_from_intr()
     : native_safe_halt()
     : default_idle()
     : arch_cpu_idle()
     : default_idle_call()
     : do_idle()
     : cpu_startup_entry()
     : rest_init()
     : start_kernel()
     : x86_64_start_reservations()
     : x86_64_start_kernel()
     : verify_cpu()
     :
     : -> #0 (&port_lock_key){-.-.}:
     : check_prev_add()
     : __lock_acquire()
     : lock_acquire()
     : _raw_spin_lock_irqsave()
     : serial8250_console_write()
     : univ8250_console_write()
     : console_unlock()
     : vprintk_emit()
     : vprintk_default()
     : vprintk_func()
     : printk()
     : ___ratelimit()
     : __printk_ratelimit()
     : select_fallback_rq()
     : sched_cpu_dying()
     : cpuhp_invoke_callback()
     : take_cpu_down()
     : multi_cpu_stop()
     : cpu_stopper_thread()
     : smpboot_thread_fn()
     : kthread()
     : ret_from_fork()
     :
     : other info that might help us debug this:
     :
     : Chain exists of:
     :   &port_lock_key --> &p->pi_lock --> &rq->lock
     :
     :  Possible unsafe locking scenario:
     :
     :        CPU0                    CPU1
     :        ----                    ----
     :   lock(&rq->lock);
     :                                lock(&p->pi_lock);
     :                                lock(&rq->lock);
     :   lock(&port_lock_key);
     :
     :  *** DEADLOCK ***
     :
     : 4 locks held by migration/8/62:
     : #0: (&p->pi_lock){-.-.}, at: sched_cpu_dying()
     : #1: (&rq->lock){-.-.}, at: sched_cpu_dying()
     : #2: (printk_ratelimit_state.lock){....}, at: ___ratelimit()
     : #3: (console_lock){+.+.}, at: vprintk_emit()
     :
     : stack backtrace:
     : CPU: 8 PID: 62 Comm: migration/8 Not tainted 4.14.0-rc2-next-20170927+ #252
     : Call Trace:
     : dump_stack()
     : print_circular_bug()
     : check_prev_add()
     : ? add_lock_to_list.isra.26()
     : ? check_usage()
     : ? kvm_clock_read()
     : ? kvm_sched_clock_read()
     : ? sched_clock()
     : ? check_preemption_disabled()
     : __lock_acquire()
     : ? __lock_acquire()
     : ? add_lock_to_list.isra.26()
     : ? debug_check_no_locks_freed()
     : ? memcpy()
     : lock_acquire()
     : ? serial8250_console_write()
     : _raw_spin_lock_irqsave()
     : ? serial8250_console_write()
     : serial8250_console_write()
     : ? serial8250_start_tx()
     : ? lock_acquire()
     : ? memcpy()
     : univ8250_console_write()
     : console_unlock()
     : ? __down_trylock_console_sem()
     : vprintk_emit()
     : vprintk_default()
     : vprintk_func()
     : printk()
     : ? show_regs_print_info()
     : ? lock_acquire()
     : ___ratelimit()
     : __printk_ratelimit()
     : select_fallback_rq()
     : sched_cpu_dying()
     : ? sched_cpu_starting()
     : ? rcutree_dying_cpu()
     : ? sched_cpu_starting()
     : cpuhp_invoke_callback()
     : ? cpu_disable_common()
     : take_cpu_down()
     : ? trace_hardirqs_off_caller()
     : ? cpuhp_invoke_callback()
     : multi_cpu_stop()
     : ? __this_cpu_preempt_check()
     : ? cpu_stop_queue_work()
     : cpu_stopper_thread()
     : ? cpu_stop_create()
     : smpboot_thread_fn()
     : ? sort_range()
     : ? schedule()
     : ? __kthread_parkme()
     : kthread()
     : ? sort_range()
     : ? kthread_create_on_node()
     : ret_from_fork()
     : process 9121 (trinity-c78) no longer affine to cpu8
     : smpboot: CPU 8 is now offline
    
    Link: http://lkml.kernel.org/r/20170928120405.18273-1-sergey.senozhatsky@gmail.com
    Fixes: 6b1d174 ("ratelimit: extend to print suppressed messages on release")
    Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  21. kernel/params.c: improve STANDARD_PARAM_DEF readability

    jdelvare committed with torvalds Oct 3, 2017
    Align the parameters passed to STANDARD_PARAM_DEF for clarity.
    
    Link: http://lkml.kernel.org/r/20170928162728.756143cc@endymion
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Suggested-by: Ingo Molnar <mingo@kernel.org>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  22. kernel/params.c: fix an overflow in param_attr_show

    jdelvare committed with torvalds Oct 3, 2017
    Function param_attr_show could overflow the buffer it is operating on.
    
    The buffer size is PAGE_SIZE, and the string returned by
    attribute->param->ops->get is generated by scnprintf(buffer, PAGE_SIZE,
    ...) so it could be PAGE_SIZE - 1 long, with the terminating '\0' at the
    very end of the buffer.  Calling strcat(..., "\n") on this isn't safe, as
    the '\0' will be replaced by '\n' (OK) and then another '\0' will be added
    past the end of the buffer (not OK.)
    
    Simply add the trailing '\n' when writing the attribute contents to the
    buffer originally.  This is safe, and also faster.
    
    Credits to Teradata for discovering this issue.
    
    Link: http://lkml.kernel.org/r/20170928162602.60c379c7@endymion
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  23. kernel/params.c: fix the maximum length in param_get_string

    jdelvare committed with torvalds Oct 3, 2017
    The length parameter of strlcpy() is supposed to reflect the size of the
    target buffer, not of the source string.  Harmless in this case as the
    buffer is PAGE_SIZE long and the source string is always much shorter than
    this, but conceptually wrong, so let's fix it.
    
    Link: http://lkml.kernel.org/r/20170928162515.24846b4f@endymion
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  24. mm/memory_hotplug: define find_{smallest|biggest}_section_pfn as unsi…

    yishimatsu committed with torvalds Oct 3, 2017
    …gned long
    
    find_{smallest|biggest}_section_pfn()s find the smallest/biggest section
    and return the pfn of the section.  But the functions are defined as int.
    So the functions always return 0x00000000 - 0xffffffff.  It means if
    memory address is over 16TB, the functions does not work correctly.
    
    To handle 64 bit value, the patch defines
    find_{smallest|biggest}_section_pfn() as unsigned long.
    
    Fixes: 815121d ("memory_hotplug: clear zone when removing the memory")
    Link: http://lkml.kernel.org/r/d9d5593a-d0a4-c4be-ab08-493df59a85c6@gmail.com
    Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Xishi Qiu <qiuxishi@huawei.com>
    Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  25. mm/memory_hotplug: change pfn_to_section_nr/section_nr_to_pfn macro t…

    yishimatsu committed with torvalds Oct 3, 2017
    …o inline function
    
    pfn_to_section_nr() and section_nr_to_pfn() are defined as macro.
    pfn_to_section_nr() has no issue even if it is defined as macro.  But
    section_nr_to_pfn() has overflow issue if sec is defined as int.
    
    section_nr_to_pfn() just shifts sec by PFN_SECTION_SHIFT.  If sec is
    defined as unsigned long, section_nr_to_pfn() returns pfn as 64 bit value.
    But if sec is defined as int, section_nr_to_pfn() returns pfn as 32 bit
    value.
    
    __remove_section() calculates start_pfn using section_nr_to_pfn() and
    scn_nr defined as int.  So if hot-removed memory address is over 16TB,
    overflow issue occurs and section_nr_to_pfn() does not calculate correct
    pfn.
    
    To make callers use proper arg, the patch changes the macros to inline
    functions.
    
    Fixes: 815121d ("memory_hotplug: clear zone when removing the memory")
    Link: http://lkml.kernel.org/r/e643a387-e573-6bbf-d418-c60c8ee3d15e@gmail.com
    Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Xishi Qiu <qiuxishi@huawei.com>
    Cc: Reza Arbab <arbab@linux.vnet.ibm.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  26. kernel/kcmp.c: drop branch leftover typo

    cyrillos committed with torvalds Oct 3, 2017
    The else branch been left over and escaped the source code refresh.  Not
    a problem but better clean it up.
    
    Fixes: 0791e36 ("kcmp: add KCMP_EPOLL_TFD mode to compare epoll target files")
    Link: http://lkml.kernel.org/r/20170917165838.GA1887@uranus.lan
    Reported-by: Eugene Syromiatnikov <esyr@redhat.com>
    Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
    Acked-by: Andrei Vagin <avagin@virtuozzo.com>
    Cc: Pavel Emelyanov <xemul@virtuozzo.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  27. memremap: add scheduling point to devm_memremap_pages

    Michal Hocko committed with torvalds Oct 3, 2017
    devm_memremap_pages is initializing struct pages in for_each_device_pfn
    and that can take quite some time.  We have even seen a soft lockup
    triggering on a non preemptive kernel
    
      NMI watchdog: BUG: soft lockup - CPU#61 stuck for 22s! [kworker/u641:11:1808]
      [...]
      RIP: 0010:[<ffffffff8118b6b7>]  [<ffffffff8118b6b7>] devm_memremap_pages+0x327/0x430
      [...]
      Call Trace:
        pmem_attach_disk+0x2fd/0x3f0 [nd_pmem]
        nvdimm_bus_probe+0x64/0x110 [libnvdimm]
        driver_probe_device+0x1f7/0x420
        bus_for_each_drv+0x52/0x80
        __device_attach+0xb0/0x130
        bus_probe_device+0x87/0xa0
        device_add+0x3fc/0x5f0
        nd_async_device_register+0xe/0x40 [libnvdimm]
        async_run_entry_fn+0x43/0x150
        process_one_work+0x14e/0x410
        worker_thread+0x116/0x490
        kthread+0xc7/0xe0
        ret_from_fork+0x3f/0x70
    
    fix this by adding cond_resched every 1024 pages.
    
    Link: http://lkml.kernel.org/r/20170918121410.24466-4-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Johannes Thumshirn <jthumshirn@suse.de>
    Tested-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Dan Williams <dan.j.williams@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  28. mm, page_alloc: add scheduling point to memmap_init_zone

    Michal Hocko committed with torvalds Oct 3, 2017
    memmap_init_zone gets a pfn range to initialize and it can be really
    large resulting in a soft lockup on non-preemptible kernels
    
      NMI watchdog: BUG: soft lockup - CPU#31 stuck for 23s! [kworker/u642:5:1720]
      [...]
      task: ffff88ecd7e902c0 ti: ffff88eca4e50000 task.ti: ffff88eca4e50000
      RIP: move_pfn_range_to_zone+0x185/0x1d0
      [...]
      Call Trace:
        devm_memremap_pages+0x2c7/0x430
        pmem_attach_disk+0x2fd/0x3f0 [nd_pmem]
        nvdimm_bus_probe+0x64/0x110 [libnvdimm]
        driver_probe_device+0x1f7/0x420
        bus_for_each_drv+0x52/0x80
        __device_attach+0xb0/0x130
        bus_probe_device+0x87/0xa0
        device_add+0x3fc/0x5f0
        nd_async_device_register+0xe/0x40 [libnvdimm]
        async_run_entry_fn+0x43/0x150
        process_one_work+0x14e/0x410
        worker_thread+0x116/0x490
        kthread+0xc7/0xe0
        ret_from_fork+0x3f/0x70
    
    Fix this by adding a scheduling point once per page block.
    
    Link: http://lkml.kernel.org/r/20170918121410.24466-3-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Johannes Thumshirn <jthumshirn@suse.de>
    Tested-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Dan Williams <dan.j.williams@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  29. mm, memory_hotplug: add scheduling point to __add_pages

    Michal Hocko committed with torvalds Oct 3, 2017
    Patch series "mm, memory_hotplug: fix few soft lockups in memory
    hotadd".
    
    Johannes has noticed few soft lockups when adding a large nvdimm device.
    All of them were caused by a long loop without any explicit cond_resched
    which is a problem for !PREEMPT kernels.
    
    The fix is quite straightforward.  Just make sure that cond_resched gets
    called from time to time.
    
    This patch (of 3):
    
    __add_pages gets a pfn range to add and there is no upper bound for a
    single call.  This is usually a memory block aligned size for the
    regular memory hotplug - smaller sizes are usual for memory balloning
    drivers, or the whole NUMA node for physical memory online.  There is no
    explicit scheduling point in that code path though.
    
    This can lead to long latencies while __add_pages is executed and we
    have even seen a soft lockup report during nvdimm initialization with
    !PREEMPT kernel
    
      NMI watchdog: BUG: soft lockup - CPU#11 stuck for 23s! [kworker/u641:3:832]
      [...]
      Workqueue: events_unbound async_run_entry_fn
      task: ffff881809270f40 ti: ffff881809274000 task.ti: ffff881809274000
      RIP: _raw_spin_unlock_irqrestore+0x11/0x20
      RSP: 0018:ffff881809277b10  EFLAGS: 00000286
      [...]
      Call Trace:
        sparse_add_one_section+0x13d/0x18e
        __add_pages+0x10a/0x1d0
        arch_add_memory+0x4a/0xc0
        devm_memremap_pages+0x29d/0x430
        pmem_attach_disk+0x2fd/0x3f0 [nd_pmem]
        nvdimm_bus_probe+0x64/0x110 [libnvdimm]
        driver_probe_device+0x1f7/0x420
        bus_for_each_drv+0x52/0x80
        __device_attach+0xb0/0x130
        bus_probe_device+0x87/0xa0
        device_add+0x3fc/0x5f0
        nd_async_device_register+0xe/0x40 [libnvdimm]
        async_run_entry_fn+0x43/0x150
        process_one_work+0x14e/0x410
        worker_thread+0x116/0x490
        kthread+0xc7/0xe0
        ret_from_fork+0x3f/0x70
      DWARF2 unwinder stuck at ret_from_fork+0x3f/0x70
    
    Fix this by adding cond_resched once per each memory section in the
    given pfn range.  Each section is constant amount of work which itself
    is not too expensive but many of them will just add up.
    
    Link: http://lkml.kernel.org/r/20170918121410.24466-2-mhocko@kernel.org
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Johannes Thumshirn <jthumshirn@suse.de>
    Tested-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Dan Williams <dan.j.williams@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  30. lib/idr.c: fix comment for idr_replace()

    ebiggers committed with torvalds Oct 3, 2017
    idr_replace() returns the old value on success, not 0.
    
    Link: http://lkml.kernel.org/r/20170918162642.37511-1-ebiggers3@gmail.com
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Cc: Matthew Wilcox <mawilcox@microsoft.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  31. mm: memcontrol: use vmalloc fallback for large kmem memcg arrays

    hnaz committed with torvalds Oct 3, 2017
    For quick per-memcg indexing, slab caches and list_lru structures
    maintain linear arrays of descriptors.  As the number of concurrent
    memory cgroups in the system goes up, this requires large contiguous
    allocations (8k cgroups = order-5, 16k cgroups = order-6 etc.) for every
    existing slab cache and list_lru, which can easily fail on loaded
    systems.  E.g.:
    
      mkdir: page allocation failure: order:5, mode:0x14040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)
      CPU: 1 PID: 6399 Comm: mkdir Not tainted 4.13.0-mm1-00065-g720bbe532b7c-dirty #481
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-20170228_101828-anatol 04/01/2014
      Call Trace:
       ? __alloc_pages_direct_compact+0x4c/0x110
       __alloc_pages_nodemask+0xf50/0x1430
       alloc_pages_current+0x60/0xc0
       kmalloc_order_trace+0x29/0x1b0
       __kmalloc+0x1f4/0x320
       memcg_update_all_list_lrus+0xca/0x2e0
       mem_cgroup_css_alloc+0x612/0x670
       cgroup_apply_control_enable+0x19e/0x360
       cgroup_mkdir+0x322/0x490
       kernfs_iop_mkdir+0x55/0x80
       vfs_mkdir+0xd0/0x120
       SyS_mkdirat+0x6c/0xe0
       SyS_mkdir+0x14/0x20
       entry_SYSCALL_64_fastpath+0x18/0xad
      Mem-Info:
      active_anon:2965 inactive_anon:19 isolated_anon:0
       active_file:100270 inactive_file:98846 isolated_file:0
       unevictable:0 dirty:0 writeback:0 unstable:0
       slab_reclaimable:7328 slab_unreclaimable:16402
       mapped:771 shmem:52 pagetables:278 bounce:0
       free:13718 free_pcp:0 free_cma:0
    
    This output is from an artificial reproducer, but we have repeatedly
    observed order-7 failures in production in the Facebook fleet.  These
    systems become useless as they cannot run more jobs, even though there
    is plenty of memory to allocate 128 individual pages.
    
    Use kvmalloc and kvzalloc to fall back to vmalloc space if these arrays
    prove too large for allocating them physically contiguous.
    
    Link: http://lkml.kernel.org/r/20170918184919.20644-1-hannes@cmpxchg.org
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Reviewed-by: Josef Bacik <jbacik@fb.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  32. kernel/sysctl.c: remove duplicate UINT_MAX check on do_proc_douintvec…

    Luis R. Rodriguez committed with torvalds Oct 3, 2017
    …_conv()
    
    do_proc_douintvec_conv() has two UINT_MAX checks, we can remove one.
    This has no functional changes other than fixing a compiler warning:
    
      kernel/sysctl.c:2190]: (warning) Identical condition '*lvalp>UINT_MAX', second condition is always false
    
    Fixes: 4f2fec0 ("sysctl: simplify unsigned int support")
    Link: http://lkml.kernel.org/r/20170919072918.12066-1-mcgrof@kernel.org
    Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
    Reported-by: David Binderman <dcb314@hotmail.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  33. include/linux/bitfield.h: remove 32bit from FIELD_GET comment block

    masahir0y committed with torvalds Oct 3, 2017
    I do not see anything that restricts this macro to 32 bit width.
    
    Link: http://lkml.kernel.org/r/1505921975-23379-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>