1. 12 Mar, 2020 6 commits
  2. 11 Mar, 2020 7 commits
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · e6e6ec48
      Linus Torvalds authored
      Pull fscrypt fix from Eric Biggers:
       "Fix a bug where if userspace is writing to encrypted files while the
        FS_IOC_REMOVE_ENCRYPTION_KEY ioctl (introduced in v5.4) is running,
        dirty inodes could be evicted, causing writes could be lost or the
        filesystem to hang due to a use-after-free. This was encountered
        during real-world use, not just theoretical.
      
        Tested with the existing fscrypt xfstests, and with a new xfstest I
        wrote to reproduce this bug. This fix does expose an existing bug with
        '-o lazytime' that Ted is working on fixing, but this fix is more
        critical and needed anyway regardless of the lazytime fix"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: don't evict dirty inodes after removing key
      e6e6ec48
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2020-03-10' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · addcb1d0
      Linus Torvalds authored
      Pull thread fix from Christian Brauner:
       "This contains a single fix for a regression which was introduced when
        we introduced the ability to select a specific pid at process creation
        time.
      
        When this feature is requested, the error value will be set to -EPERM
        after exiting the pid allocation loop. This caused EPERM to be
        returned when e.g. the init process/child subreaper of the pid
        namespace has already died where we used to return ENOMEM before.
      
        The first patch here simply fixes the regression by unconditionally
        setting the return value back to ENOMEM again once we've successfully
        allocated the requested pid number. This should be easy to backport to
        v5.5.
      
        The second patch adds a comment explaining that we must keep returning
        ENOMEM since we've been doing it for a long time and have explicitly
        documented this behavior for userspace. This seemed worthwhile because
        we now have at least two separate example where people tried to change
        the return value to something other than ENOMEM (The first version of
        the regression fix did that too and the commit message links to an
        earlier patch that tried to do the same.).
      
        I have a simple regression test to make sure we catch this regression
        in the future but since that introduces a whole new selftest subdir
        and test files I'll keep this for v5.7"
      
      * tag 'for-linus-2020-03-10' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        pid: make ENOMEM return value more obvious
        pid: Fix error return value in some cases
      addcb1d0
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 36feb996
      Linus Torvalds authored
      Pull ftrace fix from Steven Rostedt:
       "Have ftrace lookup_rec() return a consistent record otherwise it can
        break live patching"
      
      * tag 'trace-v5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace: Return the first found result in lookup_rec()
      36feb996
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_5.6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · c7f26a0c
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
       "A few MIPS fixes:
      
         - DT fixes for CI20
      
         - Fix command line handling
      
         - Correct patchwork URL"
      
      * tag 'mips_fixes_5.6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MAINTAINERS: Correct MIPS patchwork URL
        MIPS: DTS: CI20: fix interrupt for pcf8563 RTC
        MIPS: DTS: CI20: fix PMU definitions for ACT8600
        MIPS: Fix CONFIG_MIPS_CMDLINE_DTB_EXTEND handling
      c7f26a0c
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · a6ff4631
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Some pin control fixes for the v5.6 series.
      
        It comes down to memory leaks in the core and driver fixes. Some
        should have been sent earlier but they kept piling up and the world is
        just so full of distractions these days.
      
         - Fix some inverted pins in the Meson GLX driver.
      
         - Align the i.MX SC message structs causing warnings from KASan.
      
         - Balance the kref in pinctrl hogs so they are actually free:d when
           removing a pin control module. We haven't seen it before as people
           don't use modules for pin control that much, I think.
      
         - Add a missing call to pinctrl_unregister_mappings() another memory
           leak when using modules.
      
         - Fix the fwspec parsing in the Qualcomm driver.
      
         - Fix a syntax error in the Falcon driver.
      
         - Assign .irq_eoi conditionally in the Qualcomm driver, fixing a bug
           affecting elder Qualcomm platforms"
      
      * tag 'pinctrl-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: qcom: Assign irq_eoi conditionally
        pinctrl: falcon: fix syntax error
        pinctrl: qcom: ssbi-gpio: Fix fwspec parsing bug
        pinctrl: madera: Add missing call to pinctrl_unregister_mappings
        pinctrl: core: Remove extra kref_get which blocks hogs being freed
        pinctrl: imx: scu: Align imx sc msg structs to 4
        pinctrl: meson-gxl: fix GPIOX sdio pins
      a6ff4631
    • Christoph Hellwig's avatar
      driver code: clarify and fix platform device DMA mask allocation · e3a36eb6
      Christoph Hellwig authored
      This does three inter-related things to clarify the usage of the
      platform device dma_mask field. In the process, fix the bug introduced
      by cdfee562 ("driver core: initialize a default DMA mask for
      platform device") that caused Artem Tashkinov's laptop to not boot with
      newer Fedora kernels.
      
      This does:
      
       - First off, rename the field to "platform_dma_mask" to make it
         greppable.
      
         We have way too many different random fields called "dma_mask" in
         various data structures, where some of them are actual masks, and
         some of them are just pointers to the mask. And the structures all
         have pointers to each other, or embed each other inside themselves,
         and "pdev" sometimes means "platform device" and sometimes it means
         "PCI device".
      
         So to make it clear in the code when you actually use this new field,
         give it a unique name (it really should be something even more unique
         like "platform_device_dma_mask", since it's per platform device, not
         per platform, but that gets old really fast, and this is unique
         enough in context).
      
         To further clarify when the field gets used, initialize it when we
         actually start using it with the default value.
      
       - Then, use this field instead of the random one-off allocation in
         platform_device_register_full() that is now unnecessary since we now
         already have a perfectly fine allocation for it in the platform
         device structure.
      
       - The above then allows us to fix the actual bug, where the error path
         of platform_device_register_full() would unconditionally free the
         platform device DMA allocation with 'kfree()'.
      
         That kfree() was dont regardless of whether the allocation had been
         done earlier with the (now removed) kmalloc, or whether
         setup_pdev_dma_masks() had already been used and the dma_mask pointer
         pointed to the mask that was part of the platform device.
      
      It seems most people never triggered the error path, or only triggered
      it from a call chain that set an explicit pdevinfo->dma_mask value (and
      thus caused the unnecessary allocation that was "cleaned up" in the
      error path) before calling platform_device_register_full().
      
      Robin Murphy points out that in Artem's case the wdat_wdt driver failed
      in platform_device_add(), and that was the one that had called
      platform_device_register_full() with pdevinfo.dma_mask = 0, and would
      have caused that kfree() of pdev.dma_mask corrupting the heap.
      
      A later unrelated kmalloc() then oopsed due to the heap corruption.
      
      Fixes: cdfee562 ("driver core: initialize a default DMA mask for platform device")
      Reported-bisected-and-tested-by: default avatarArtem S. Tashkinov <aros@gmx.com>
      Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e3a36eb6
    • Artem Savkov's avatar
      ftrace: Return the first found result in lookup_rec() · d9815bff
      Artem Savkov authored
      It appears that ip ranges can overlap so. In that case lookup_rec()
      returns whatever results it got last even if it found nothing in last
      searched page.
      
      This breaks an obscure livepatch late module patching usecase:
        - load livepatch
        - load the patched module
        - unload livepatch
        - try to load livepatch again
      
      To fix this return from lookup_rec() as soon as it found the record
      containing searched-for ip. This used to be this way prior lookup_rec()
      introduction.
      
      Link: http://lkml.kernel.org/r/20200306174317.21699-1-asavkov@redhat.com
      
      Cc: stable@vger.kernel.org
      Fixes: 7e16f581 ("ftrace: Separate out functionality from ftrace_location_range()")
      Signed-off-by: default avatarArtem Savkov <asavkov@redhat.com>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      d9815bff
  3. 10 Mar, 2020 5 commits
    • Linus Torvalds's avatar
      Merge tag 'clang-format-for-linus-v5.6-rc6' of git://github.com/ojeda/linux · f35111a9
      Linus Torvalds authored
      Pull clang-format update from Miguel Ojeda:
       "Another update for the .clang-format macro list
      
        It has been a while since the last time I sent one!"
      
      * tag 'clang-format-for-linus-v5.6-rc6' of git://github.com/ojeda/linux:
        clang-format: Update with the latest for_each macro list
      f35111a9
    • Linus Torvalds's avatar
      Merge tag 'auxdisplay-for-linus-v5.6-rc6' of git://github.com/ojeda/linux · 2a48b379
      Linus Torvalds authored
      Pull auxdisplay updates from Miguel Ojeda:
       "A few minor auxdisplay improvements:
      
         - charlcd: replace zero-length array with flexible-array member
           (kernel-wide cleanup by Gustavo A. R. Silva)
      
         - img-ascii-lcd: convert to devm_platform_ioremap_resource (Yangtao
           Li)
      
         - Fix Kconfig indentation (Krzysztof Kozlowski)
      
      * tag 'auxdisplay-for-linus-v5.6-rc6' of git://github.com/ojeda/linux:
        auxdisplay: charlcd: replace zero-length array with flexible-array member
        auxdisplay: img-ascii-lcd: convert to devm_platform_ioremap_resource
        auxdisplay: Fix Kconfig indentation
      2a48b379
    • Linus Torvalds's avatar
      Merge branch 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · e9414845
      Linus Torvalds authored
      Pull cgroup fixes from Tejun Heo:
      
       - cgroup.procs listing related fixes.
      
         It didn't interlock properly with exiting tasks leaving a short
         window where a cgroup has empty cgroup.procs but still can't be
         removed and misbehaved on short reads.
      
       - psi_show() crash fix on 32bit ino archs
      
       - Empty release_agent handling fix
      
      * 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup1: don't call release_agent when it is ""
        cgroup: fix psi_show() crash on 32bit ino archs
        cgroup: Iterate tasks that did not finish do_exit()
        cgroup: cgroup_procs_next should increase position index
        cgroup-v1: cgroup_pidlist_next should update position index
      e9414845
    • Linus Torvalds's avatar
      Merge branch 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 2c1aca4b
      Linus Torvalds authored
      Pull workqueue fixes from Tejun Heo:
       "Workqueue has been incorrectly round-robining per-cpu work items.
        Hillf's patch fixes that.
      
        The other patch documents memory-ordering properties of workqueue
        operations"
      
      * 'for-5.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: don't use wq_select_unbound_cpu() for bound works
        workqueue: Document (some) memory-ordering properties of {queue,schedule}_work()
      2c1aca4b
    • Hillf Danton's avatar
      workqueue: don't use wq_select_unbound_cpu() for bound works · aa202f1f
      Hillf Danton authored
      wq_select_unbound_cpu() is designed for unbound workqueues only, but
      it's wrongly called when using a bound workqueue too.
      
      Fixing this ensures work queued to a bound workqueue with
      cpu=WORK_CPU_UNBOUND always runs on the local CPU.
      
      Before, that would happen only if wq_unbound_cpumask happened to include
      it (likely almost always the case), or was empty, or we got lucky with
      forced round-robin placement.  So restricting
      /sys/devices/virtual/workqueue/cpumask to a small subset of a machine's
      CPUs would cause some bound work items to run unexpectedly there.
      
      Fixes: ef557180 ("workqueue: schedule WORK_CPU_UNBOUND work on wq_unbound_cpumask CPUs")
      Cc: stable@vger.kernel.org # v4.5+
      Signed-off-by: default avatarHillf Danton <hdanton@sina.com>
      [dj: massage changelog]
      Signed-off-by: default avatarDaniel Jordan <daniel.m.jordan@oracle.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      aa202f1f
  4. 09 Mar, 2020 15 commits
  5. 08 Mar, 2020 7 commits