1. 07 Apr, 2020 4 commits
    • Li Xinhai's avatar
      mm: set vm_next and vm_prev to NULL in vm_area_dup() · e39a4b33
      Li Xinhai authored
      Set ->vm_next and ->vm_prev to NULL to prevent potential misuse from the
      new duplicated vma.
      
      Currently, only in fork path there are misuse for handling anon_vma.  No
      other bugs been revealed with this patch applied.
      Signed-off-by: default avatarLi Xinhai <lixinhai.lxh@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Rik van Riel <riel@redhat.com>
      Link: http://lkml.kernel.org/r/1581150928-3214-4-git-send-email-lixinhai.lxh@gmail.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e39a4b33
    • Li Xinhai's avatar
      Revert "mm/rmap.c: reuse mergeable anon_vma as parent when fork" · 23ab76bf
      Li Xinhai authored
      This reverts commit 4e4a9eb9 ("mm/rmap.c: reuse mergeable
      anon_vma as parent when fork").
      
      In dup_mmap(), anon_vma_fork() is called for attaching anon_vma and
      parameter 'tmp' (i.e., the new vma of child) has same ->vm_next and
      ->vm_prev as its parent vma.  That causes the anon_vma used by parent been
      mistakenly shared by child (In anon_vma_clone(), the code added by that
      commit will do this reuse work).
      
      Besides this issue, the design of reusing anon_vma from vma which has gone
      through fork should be avoided ([1]).  So, this patch reverts that commit
      and maintains the consistent logic of reusing anon_vma for
      fork/split/merge vma.
      
      Reusing anon_vma within the process is fine.  But if a vma has gone
      through fork(), then that vma's anon_vma should not be shared with its
      neighbor vma.  As explained in [1], when vma gone through fork(), the
      check for list_is_singular(vma->anon_vma_chain) will be false, and
      don't share anon_vma.
      
      With current issue, one example can clarify more.  Parent process do
      below two steps:
      
      1. p_vma_1 is created and p_anon_vma_1 is prepared;
      
      2. p_vma_2 is created and share p_anon_vma_1; (this is allowed,
         becaues p_vma_1 didn't gothrough fork()); parent process do fork():
      
      3. c_vma_1 is dup from p_vma_1, and has its own c_anon_vma_1
         prepared; at this point, c_vma_1->anon_vma_chain has two items, one
         for p_anon_vma_1 and one for c_anon_vma_1;
      
      4. c_vma_2 is dup from p_vma_2, it is not allowed to share
         c_anon_vma_1, because
      
      c_vma_1->anon_vma_chain has two items.
      [1] commit d0e9fe17 ("Simplify and comment on anon_vma re-use for
          anon_vma_prepare()") explains the test of "list_is_singular()".
      
      Fixes: 4e4a9eb9 ("mm/rmap.c: reuse mergeable anon_vma as parent when fork")
      Signed-off-by: default avatarLi Xinhai <lixinhai.lxh@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Rik van Riel <riel@redhat.com>
      Link: http://lkml.kernel.org/r/1581150928-3214-3-git-send-email-lixinhai.lxh@gmail.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      23ab76bf
    • Li Xinhai's avatar
      mm: don't prepare anon_vma if vma has VM_WIPEONFORK · 93949bb2
      Li Xinhai authored
      Patch series "mm: Fix misuse of parent anon_vma in dup_mmap path".
      
      This patchset fixes the misuse of parenet anon_vma, which mainly caused by
      child vma's vm_next and vm_prev are left same as its parent after
      duplicate vma.  Finally, code reached parent vma's neighbor by referring
      pointer of child vma and executed wrong logic.
      
      The first two patches fix relevant issues, and the third patch sets
      vm_next and vm_prev to NULL when duplicate vma to prevent potential misuse
      in future.
      
      Effects of the first bug is that causes rmap code to check both parent and
      child's page table, although a page couldn't be mapped by both parent and
      child, because child vma has WIPEONFORK so all pages mapped by child are
      'new' and not relevant to parent.
      
      Effects of the second bug is that the relationship of anon_vma of parent
      and child are totallyconvoluted.  It would cause 'son', 'grandson', ...,
      etc, to share 'parent' anon_vma, which disobey the design rule of reusing
      anon_vma (the rule to be followed is that reusing should among vma of same
      process, and vma should not gone through fork).
      
      So, both issues should cause unnecessary rmap walking and have unexpected
      complexity.
      
      These two issues would not be directly visible, I used debugging code to
      check the anon_vma pointers of parent and child when inspecting the
      suspicious implementation of issue #2, then find the problem.
      
      This patch (of 3):
      
      In dup_mmap(), anon_vma_prepare() is called for vma has VM_WIPEONFORK, and
      parameter 'tmp' (i.e., the new vma of child) has same ->vm_next and
      ->vm_prev as its parent vma.  That allows anon_vma used by parent been
      mistakenly shared by child (find_mergeable_anon_vma() will do this reuse
      work).
      
      Besides this issue, call anon_vma_prepare() should be avoided because we
      don't copy page for this vma.  Preparing anon_vma will be handled during
      fault.
      
      Fixes: d2cd9ede ("mm,fork: introduce MADV_WIPEONFORK")
      Signed-off-by: default avatarLi Xinhai <lixinhai.lxh@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Link: http://lkml.kernel.org/r/1581150928-3214-2-git-send-email-lixinhai.lxh@gmail.comSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      93949bb2
    • Chris Down's avatar
      mm, memcg: bypass high reclaim iteration for cgroup hierarchy root · 4bf17307
      Chris Down authored
      The root of the hierarchy cannot have high set, so we will never reclaim
      based on it.  This makes that clearer and avoids another entry.
      Signed-off-by: default avatarChris Down <chris@chrisdown.name>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Roman Gushchin <guro@fb.com>
      Cc: Michal Hocko <mhocko@kernel.org>
      Link: http://lkml.kernel.org/r/20200312164137.GA1753625@chrisdown.nameSigned-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4bf17307
  2. 06 Apr, 2020 11 commits
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7e634208
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "Additional ACPI updates.
      
        These update the ACPICA code in the kernel to the 20200326 upstream
        revision, fix an ACPI-related CPU hotplug deadlock on x86, update
        Intel Tiger Lake device IDs in some places, add a new ACPI backlight
        blacklist entry, update the "acpi_backlight" kernel command line
        switch documentation and clean up a CPPC library routine.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to upstream revision 20200326
           including:
            * Fix for a typo in a comment field (Bob Moore)
            * acpiExec namespace init file fixes (Bob Moore)
            * Addition of NHLT to the known tables list (Cezary Rojewski)
            * Conversion of PlatformCommChannel ASL keyword to PCC (Erik
              Kaneda)
            * acpiexec cleanup (Erik Kaneda)
            * WSMT-related typo fix (Erik Kaneda)
            * sprintf() utility function fix (John Levon)
            * IVRS IVHD type 11h parsing implementation (Michał Żygowski)
            * IVRS IVHD type 10h reserved field name fix (Michał Żygowski)
      
         - Fix ACPI-related CPU hotplug deadlock on x86 (Qian Cai)
      
         - Fix Intel Tiger Lake ACPI device IDs in several places (Gayatri
           Kammela)
      
         - Add ACPI backlight blacklist entry for Acer Aspire 5783z (Hans de
           Goede)
      
         - Fix documentation of the "acpi_backlight" kernel command line
           switch (Randy Dunlap)
      
         - Clean up the acpi_get_psd_map() CPPC library routine (Liguang
           Zhang)"
      
      * tag 'acpi-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        x86: ACPI: fix CPU hotplug deadlock
        thermal: int340x_thermal: fix: Update Tiger Lake ACPI device IDs
        platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
        ACPI: Update Tiger Lake ACPI device IDs
        ACPI: video: Use native backlight on Acer Aspire 5783z
        ACPI: video: Docs update for "acpi_backlight" kernel parameter options
        ACPICA: Update version 20200326
        ACPICA: Fixes for acpiExec namespace init file
        ACPICA: Add NHLT table signature
        ACPICA: WSMT: Fix typo, no functional change
        ACPICA: utilities: fix sprintf()
        ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support
        ACPICA: Change PlatformCommChannel ASL keyword to PCC
        ACPICA: Fix IVRS IVHD type 10h reserved field name
        ACPICA: Implement IVRS IVHD type 11h parsing
        ACPICA: Fix a typo in a comment field
        ACPI: CPPC: clean up acpi_get_psd_map()
      7e634208
    • Linus Torvalds's avatar
      Merge tag 'pm-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ef05db16
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "Additional power management updates.
      
        These fix a corner-case suspend-to-idle wakeup issue on systems where
        the ACPI SCI is shared with another wakeup source, add a kernel
        command line option to set pm_debug_messages via the kernel command
        line, add a document desctibing system-wide suspend and resume code
        flows, modify cpufreq Kconfig to choose schedutil as the preferred
        governor by default in a couple of cases and do some assorted
        cleanups.
      
        Specifics:
      
         - Fix corner-case suspend-to-idle wakeup issue on systems where the
           ACPI SCI is shared with another wakeup source (Hans de Goede).
      
         - Add document describing system-wide suspend and resume code flows
           to the admin guide (Rafael Wysocki).
      
         - Add kernel command line option to set pm_debug_messages (Chen Yu).
      
         - Choose schedutil as the preferred scaling governor by default on
           ARM big.LITTLE systems and on x86 systems using the intel_pstate
           driver in the passive mode (Linus Walleij, Rafael Wysocki).
      
         - Drop racy and redundant checks from the PM core's device_prepare()
           routine (Rafael Wysocki).
      
         - Make resume from hibernation take the hibernation_restore() return
           value into account (Dexuan Cui)"
      
      * tag 'pm-5.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
        ACPI: PM: Add acpi_[un]register_wakeup_handler()
        Documentation: PM: sleep: Document system-wide suspend code flows
        cpufreq: Select schedutil when using big.LITTLE
        PM: sleep: Add pm_debug_messages kernel command line option
        PM: sleep: core: Drop racy and redundant checks from device_prepare()
        PM: hibernate: Propagate the return value of hibernation_restore()
        cpufreq: intel_pstate: Select schedutil as the default governor
      ef05db16
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.7-rc1' of git://github.com/c-sky/csky-linux · f183d269
      Linus Torvalds authored
      Pull csky updates from Guo Ren:
      
       - Add kproobes/uprobes support
      
       - Add lockdep, rseq, gcov support
      
       - Fixup init_fpu
      
       - Fixup ftrace_modify deadlock
      
       - Fixup speculative execution on IO area
      
      * tag 'csky-for-linus-5.7-rc1' of git://github.com/c-sky/csky-linux:
        csky: Fixup cpu speculative execution to IO area
        csky: Add uprobes support
        csky: Add kprobes supported
        csky: Enable LOCKDEP_SUPPORT
        csky: Enable the gcov function
        csky: Fixup get wrong psr value from phyical reg
        csky/ftrace: Fixup ftrace_modify_code deadlock without CPU_HAS_ICACHE_INS
        csky: Implement ftrace with regs
        csky: Add support for restartable sequence
        csky: Implement ptrace regs and stack API
        csky: Fixup init_fpu compile warning with __init
      f183d269
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b6ff1070
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "This implements the fanotify FAN_DIR_MODIFY event.
      
        This event reports the name in a directory under which a change
        happened and together with the directory filehandle and fstatat()
        allows reliable and efficient implementation of directory
        synchronization"
      
      * tag 'fsnotify_for_v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fanotify: Fix the checks in fanotify_fsid_equal
        fanotify: report name info for FAN_DIR_MODIFY event
        fanotify: record name info for FAN_DIR_MODIFY event
        fanotify: Drop fanotify_event_has_fid()
        fanotify: prepare to report both parent and child fid's
        fanotify: send FAN_DIR_MODIFY event flavor with dir inode and name
        fanotify: divorce fanotify_path_event and fanotify_fid_event
        fanotify: Store fanotify handles differently
        fanotify: Simplify create_fd()
        fanotify: fix merging marks masks with FAN_ONDIR
        fanotify: merge duplicate events on parent and child
        fsnotify: replace inode pointer with an object id
        fsnotify: simplify arguments passing to fsnotify_parent()
        fsnotify: use helpers to access data by data_type
        fsnotify: funnel all dirent events through fsnotify_name()
        fsnotify: factor helpers fsnotify_dentry() and fsnotify_file()
        fsnotify: tidy up FS_ and FAN_ constants
      b6ff1070
    • Linus Torvalds's avatar
      Merge tag 'for_v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 74e934ba
      Linus Torvalds authored
      Pull ext2/udf updates from Jan Kara:
       "Cleanups and fixes for ext2 and one cleanup for udf"
      
      * tag 'for_v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: fix empty body warnings when -Wextra is used
        ext2: fix debug reference to ext2_xattr_cache
        udf: udf_sb.h: Replace zero-length array with flexible-array member
        ext2: xattr.h: Replace zero-length array with flexible-array member
        ext2: Silence lockdep warning about reclaim under xattr_sem
      74e934ba
    • Linus Torvalds's avatar
      Merge tag '9p-for-5.7' of git://github.com/martinetd/linux · e14679b6
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
       "Not much new, but a few patches for this cycle:
      
         - Fix read with O_NONBLOCK to allow incomplete read and return
           immediately
      
         - Rest is just cleanup (indent, unused field in struct, extra
           semicolon)"
      
      * tag '9p-for-5.7' of git://github.com/martinetd/linux:
        net/9p: remove unused p9_req_t aux field
        9p: read only once on O_NONBLOCK
        9pnet: allow making incomplete read requests
        9p: Remove unneeded semicolon
        9p: Fix Kconfig indentation
      e14679b6
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 77a73eec
      Linus Torvalds authored
      Pull vfs pathwalk fix from Al Viro:
       "Dumb braino in legitimize_path()..."
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix a braino in legitimize_path()
      77a73eec
    • Al Viro's avatar
      fix a braino in legitimize_path() · 5bd73286
      Al Viro authored
      brown paperbag time... wrong order of arguments ended up confusing
      the values to check dentry and mount_lock seqcounts against.
      Reported-by: default avatarkernel test robot <rong.a.chen@intel.com>
      Fixes: 2aa38470 ("non-RCU analogue of the previous commit")
      Tested-by: default avatarkernel test robot <rong.a.chen@intel.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5bd73286
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-cppc', 'acpi-video' and 'acpi-drivers' · 33ae7f71
      Rafael J. Wysocki authored
      * acpi-cppc:
        ACPI: CPPC: clean up acpi_get_psd_map()
      
      * acpi-video:
        ACPI: video: Use native backlight on Acer Aspire 5783z
        ACPI: video: Docs update for "acpi_backlight" kernel parameter options
      
      * acpi-drivers:
        thermal: int340x_thermal: fix: Update Tiger Lake ACPI device IDs
        platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID
        ACPI: Update Tiger Lake ACPI device IDs
      33ae7f71
    • Rafael J. Wysocki's avatar
      Merge branch 'acpica' · fd036058
      Rafael J. Wysocki authored
      * acpica:
        ACPICA: Update version 20200326
        ACPICA: Fixes for acpiExec namespace init file
        ACPICA: Add NHLT table signature
        ACPICA: WSMT: Fix typo, no functional change
        ACPICA: utilities: fix sprintf()
        ACPICA: acpiexec: remove redeclaration of acpi_gbl_db_opt_no_region_support
        ACPICA: Change PlatformCommChannel ASL keyword to PCC
        ACPICA: Fix IVRS IVHD type 10h reserved field name
        ACPICA: Implement IVRS IVHD type 11h parsing
        ACPICA: Fix a typo in a comment field
      fd036058
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-sleep' and 'pm-cpufreq' · 54032b86
      Rafael J. Wysocki authored
      * pm-sleep:
        Documentation: PM: sleep: Document system-wide suspend code flows
        PM: sleep: Add pm_debug_messages kernel command line option
        PM: sleep: core: Drop racy and redundant checks from device_prepare()
        PM: hibernate: Propagate the return value of hibernation_restore()
      
      * pm-cpufreq:
        cpufreq: Select schedutil when using big.LITTLE
        cpufreq: intel_pstate: Select schedutil as the default governor
      54032b86
  3. 05 Apr, 2020 11 commits
    • Linus Torvalds's avatar
      Merge tag 'for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · a10c9c71
      Linus Torvalds authored
      Pull power supply and reset changes from Sebastian Reichel:
       "Core:
         - Nothing
      
        Drivers:
         - at91-reset: cleanups, proper handling for sam9x60
         - sc27xx, charger-manager: allow building as module
         - sc27xx: add support to read current charge capacity
         - axp288: more quirks for weird hardware
         - misc fixes"
      
      * tag 'for-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (26 commits)
        power: reset: sc27xx: Allow the SC27XX poweroff driver building into a module
        power: reset: sc27xx: Change to use cpu_down()
        power: reset: sc27xx: Power off the external subsystems' connection
        power: twl4030: Use scnprintf() for avoiding potential buffer overflow
        power: supply: bq27xxx_battery: Silence deferred-probe error
        power: reset: at91-reset: handle nrst async for sam9x60
        power: reset: at91-reset: get rid of at91_reset_data
        power: reset: at91-reset: keep only one reset function
        power: reset: at91-reset: make at91sam9g45_restart() generic
        power: reset: at91-reset: introduce ramc_lpr to struct at91_reset
        power: reset: at91-reset: use r4 as tmp argument
        power: reset: at91-reset: introduce args member in at91_reset_data
        power: reset: at91-reset: introduce struct at91_reset_data
        power: reset: at91-reset: devm_kzalloc() for at91_reset data structure
        power: reset: at91-reset: pass rstc base address to at91_reset_status()
        power: reset: at91-reset: convert reset in pointer to struct at91_reset
        power: reset: at91-reset: add notifier block to struct at91_reset
        power: reset: at91-reset: add sclk to struct at91_reset
        power: reset: at91-reset: add ramc_base[] to struct at91_reset
        power: reset: at91-reset: introduce struct at91_reset
        ...
      a10c9c71
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c48b0722
      Linus Torvalds authored
      Pull more perf updates from Thomas Gleixner:
       "Perf updates all over the place:
      
        core:
      
         - Support for cgroup tracking in samples to allow cgroup based
           analysis
      
        tools:
      
         - Support for cgroup analysis
      
         - Commandline option and hotkey for perf top to change the sort order
      
         - A set of fixes all over the place
      
         - Various build system related improvements
      
         - Updates of the X86 pmu event JSON data
      
         - Documentation updates"
      
      * tag 'perf-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        perf python: Fix clang detection to strip out options passed in $CC
        perf tools: Support Python 3.8+ in Makefile
        perf script: Fix invalid read of directory entry after closedir()
        perf script report: Fix SEGFAULT when using DWARF mode
        perf script: add -S/--symbols documentation
        perf pmu-events x86: Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
        perf events parser: Add missing Intel CPU events to parser
        perf script: Allow --symbol to accept hexadecimal addresses
        perf report/top TUI: Fix title line formatting
        perf top: Support hotkey to change sort order
        perf top: Support --group-sort-idx to change the sort order
        perf symbols: Fix arm64 gap between kernel start and module end
        perf build-test: Honour JOBS to override detection of number of cores
        perf script: Add --show-cgroup-events option
        perf top: Add --all-cgroups option
        perf record: Add --all-cgroups option
        perf record: Support synthesizing cgroup events
        perf report: Add 'cgroup' sort key
        perf cgroup: Maintain cgroup hierarchy
        perf tools: Basic support for CGROUP event
        ...
      c48b0722
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5ca3273
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two timer subsystem fixes:
      
         - Prevent a use after free in the new lockdep state tracking for
           hrtimers
      
         - Add missing parenthesis in the VF pit timer driver"
      
      * tag 'timers-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/timer-vf-pit: Add missing parenthesis
        hrtimer: Don't dereference the hrtimer pointer after the callback
      d5ca3273
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e5adbd6e
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "Two reverts addressing regressions of the Xilinx interrupt controller
        driver which affected the PPC users"
      
      * tag 'irq-urgent-2020-04-05' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "irqchip/xilinx: Enable generic irq multi handler"
        Revert "irqchip/xilinx: Do not call irq_set_default_host()"
      e5adbd6e
    • Linus Torvalds's avatar
      sysfs: remove redundant __compat_only_sysfs_link_entry_to_kobj fn · 70fbdfef
      Linus Torvalds authored
      Commit 9255782f ("sysfs: Wrap __compat_only_sysfs_link_entry_to_kobj
      function to change the symlink name") made this function a wrapper
      around a new non-underscored function, which is a bit odd.  The normal
      naming convention is the other way around: the underscored function is
      the wrappee, and the non-underscored function is the wrapper.
      
      There's only one single user (well, two call-sites in that user) of the
      more limited double underscore version of this function, so just remove
      the oddly named wrapper entirely and just add the extra NULL argument to
      the user.
      
      I considered just doing that in the merge, but that tends to make
      history really hard to read.
      
      Link: https://lore.kernel.org/lkml/CAHk-=wgkkmNV5tMzQDmPAQuNJBuMcry--Jb+h8H1o4RA3kF7QQ@mail.gmail.com/
      Cc: Sourabh Jain <sourabhjain@linux.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      70fbdfef
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · d38c07af
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "Slightly late as I had to rebase mid-week to insert a bug fix:
      
         - A large series from Nick for 64-bit to further rework our exception
           vectors, and rewrite portions of the syscall entry/exit and
           interrupt return in C. The result is much easier to follow code
           that is also faster in general.
      
         - Cleanup of our ptrace code to split various parts out that had
           become badly intertwined with #ifdefs over the years.
      
         - Changes to our NUMA setup under the PowerVM hypervisor which should
           hopefully avoid non-sensical topologies which can lead to warnings
           from the workqueue code and other problems.
      
         - MAINTAINERS updates to remove some of our old orphan entries and
           update the status of others.
      
         - Quite a few other small changes and fixes all over the map.
      
        Thanks to: Abdul Haleem, afzal mohammed, Alexey Kardashevskiy, Andrew
        Donnellan, Aneesh Kumar K.V, Balamuruhan S, Cédric Le Goater, Chen
        Zhou, Christophe JAILLET, Christophe Leroy, Christoph Hellwig, Clement
        Courbet, Daniel Axtens, David Gibson, Douglas Miller, Fabiano Rosas,
        Fangrui Song, Ganesh Goudar, Gautham R. Shenoy, Greg Kroah-Hartman,
        Greg Kurz, Gustavo Luiz Duarte, Hari Bathini, Ilie Halip, Jan Kara,
        Joe Lawrence, Joe Perches, Kajol Jain, Larry Finger, Laurentiu Tudor,
        Leonardo Bras, Libor Pechacek, Madhavan Srinivasan, Mahesh Salgaonkar,
        Masahiro Yamada, Masami Hiramatsu, Mauricio Faria de Oliveira, Michael
        Neuling, Michal Suchanek, Mike Rapoport, Nageswara R Sastry, Nathan
        Chancellor, Nathan Lynch, Naveen N. Rao, Nicholas Piggin, Nick
        Desaulniers, Oliver O'Halloran, Po-Hsu Lin, Pratik Rajesh Sampat,
        Rasmus Villemoes, Ravi Bangoria, Roman Bolshakov, Sam Bobroff,
        Sandipan Das, Santosh S, Sedat Dilek, Segher Boessenkool, Shilpasri G
        Bhat, Sourabh Jain, Srikar Dronamraju, Stephen Rothwell, Tyrel
        Datwyler, Vaibhav Jain, YueHaibing"
      
      * tag 'powerpc-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (158 commits)
        powerpc: Make setjmp/longjmp signature standard
        powerpc/cputable: Remove unnecessary copy of cpu_spec->oprofile_type
        powerpc: Suppress .eh_frame generation
        powerpc: Drop -fno-dwarf2-cfi-asm
        powerpc/32: drop unused ISA_DMA_THRESHOLD
        powerpc/powernv: Add documentation for the opal sensor_groups sysfs interfaces
        selftests/powerpc: Fix try-run when source tree is not writable
        powerpc/vmlinux.lds: Explicitly retain .gnu.hash
        powerpc/ptrace: move ptrace_triggered() into hw_breakpoint.c
        powerpc/ptrace: create ppc_gethwdinfo()
        powerpc/ptrace: create ptrace_get_debugreg()
        powerpc/ptrace: split out ADV_DEBUG_REGS related functions.
        powerpc/ptrace: move register viewing functions out of ptrace.c
        powerpc/ptrace: split out TRANSACTIONAL_MEM related functions.
        powerpc/ptrace: split out SPE related functions.
        powerpc/ptrace: split out ALTIVEC related functions.
        powerpc/ptrace: split out VSX related functions.
        powerpc/ptrace: drop PARAMETER_SAVE_AREA_OFFSET
        powerpc/ptrace: drop unnecessary #ifdefs CONFIG_PPC64
        powerpc/ptrace: remove unused header includes
        ...
      d38c07af
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 31c0aa87
      Linus Torvalds authored
      Pull /dev/random updates from Ted Ts'o:
      
       - Improve getrandom and /dev/random's support for those arm64
         architecture variants that have RNG instructions.
      
       - Use batched output from CRNG instead of CPU's RNG instructions for
         better performance.
      
       - Miscellaneous bug fixes.
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: avoid warnings for !CONFIG_NUMA builds
        random: fix data races at timer_rand_state
        random: always use batched entropy for get_random_u{32,64}
        random: Make RANDOM_TRUST_CPU depend on ARCH_RANDOM
        arm64: add credited/trusted RNG support
        random: add arch_get_random_*long_early()
        random: split primary/secondary crng init paths
      31c0aa87
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 9c94b395
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
      
       - Replace ext4's bmap and iopoll implementations to use iomap.
      
       - Clean up extent tree handling.
      
       - Other cleanups and miscellaneous bug fixes
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (31 commits)
        ext4: save all error info in save_error_info() and drop ext4_set_errno()
        ext4: fix incorrect group count in ext4_fill_super error message
        ext4: fix incorrect inodes per group in error message
        ext4: don't set dioread_nolock by default for blocksize < pagesize
        ext4: disable dioread_nolock whenever delayed allocation is disabled
        ext4: do not commit super on read-only bdev
        ext4: avoid ENOSPC when avoiding to reuse recently deleted inodes
        ext4: unregister sysfs path before destroying jbd2 journal
        ext4: check for non-zero journal inum in ext4_calculate_overhead
        ext4: remove map_from_cluster from ext4_ext_map_blocks
        ext4: clean up ext4_ext_insert_extent() call in ext4_ext_map_blocks()
        ext4: mark block bitmap corrupted when found instead of BUGON
        ext4: use flexible-array member for xattr structs
        ext4: use flexible-array member in struct fname
        Documentation: correct the description of FIEMAP_EXTENT_LAST
        ext4: move ext4_fiemap to use iomap framework
        ext4: make ext4_ind_map_blocks work with fiemap
        ext4: move ext4 bmap to use iomap infrastructure
        ext4: optimize ext4_ext_precache for 0 depth
        ext4: add IOMAP_F_MERGED for non-extent based mapping
        ...
      9c94b395
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 34761956
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "There's not much to see in the core framework this time around.
        Instead the majority of the diff is the normal collection of driver
        additions for new SoCs and non-critical clk data fixes and updates.
        The framework must be middle aged.
      
        The two biggest directories in the diffstat show that the Qualcomm and
        Unisoc support added a handful of big drivers for new SoCs but that's
        not really the whole story because those new drivers tend to add large
        numbers of lines of clk data. There's a handful of AT91 clk drivers
        added this time around too and a bunch of improvements to drivers like
        the i.MX driver. All around lots of updates and fixes in various clk
        drivers which is good to see.
      
        The core framework has only one real major change which has been
        baking in next for the past couple months. It fixes the framework so
        that it stops caching a clk's phase when the phase clk_op returns an
        error. Before this change we would consider some negative errno as a
        phase and that just doesn't make sense.
      
        Core:
         - Don't show clk phase when it is invalid
      
        New Drivers:
         - Add support for Unisoc SC9863A clks
         - Qualcomm SM8250 RPMh and MSM8976 RPM clks
         - Qualcomm SM8250 Global Clock Controller (GCC) support
         - Qualcomm SC7180 Modem Clock Controller (MSS CC) support
         - EHRPWM's TimeBase clock(TBCLK) for TI AM654 SoCs
         - Support PMC clks on at91sam9n12, at91rm9200, sama5d3, and
           at91sam9g45 SoCs
      
        Updates:
         - GPU GX GDSC support on Qualcomm sc7180
         - Fixes and improvements for the Marvell MMP2/MMP3 SoC clk drivers
         - A series from Anson to convert i.MX8 clock bindings to json-schema
         - Update i.MX pll14xx driver to include new frequency entries for
           pll1443x table, and return error for invalid PLL type
         - Add missing of_node_put() call for a number of i.MX clock drivers
         - Drop flag CLK_IS_CRITICAL from 'A53_CORE' mux clock, as we already
           have the flag on its child cpu clock
         - Fix a53 cpu clock for i.MX8 drivers to get it source from ARM PLL
           via CORE_SEL slice, and source from A53 CCM clk root when we need
           to change ARM PLL frequency. Thus, we can support core running
           above 1GHz safely
         - Update i.MX pfdv2 driver to check zero rate and use determine_rate
           for getting the best rate
         - Add CLKO2 for imx8mm, SNVS clock for imx8mn, and PXP clock for
           imx7d
         - Remove PMC clks from Tegra clk driver
         - Improved clock/reset handling for the Renesas R-Car USB2 Clock
           Selector
         - Conversion to json-schema of the Renesas CPG/MSSR DT bindings
         - Add Crypto clocks on Renesas R-Car M3-W/W+, M3-N, E3, and D3
         - Add RPC (QSPI/HyperFLASH) clocks on Renesas R-Car H3, M3-W/W+, and
           M3-N
         - Update Amlogic audio clock gate hierarchy for meson8 and gxbb
         - Update Amlogic g12a spicc clock sources
         - Support for Ingenic X1000 TCU clks"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (146 commits)
        clk: sprd: fix to get a correct ibias of pll
        dt-bindings: imx8mm-clock: Fix the file path
        dt-bindings: imx8mq-clock: Fix the file path
        clk: qcom: rpmh: Drop unnecessary semicolons
        clk: qcom: rpmh: Simplify clk_rpmh_bcm_send_cmd()
        clk: tegra: Use NULL for pointer initialization
        clk: sprd: add clocks support for SC9863A
        clk: sprd: support to get regmap from parent node
        clk: sprd: Add macros for referencing parents without strings
        clk: sprd: Add dt-bindings include file for SC9863A
        dt-bindings: clk: sprd: add bindings for sc9863a clock controller
        dt-bindings: clk: sprd: rename the common file name sprd.txt to SoC specific
        clk: sprd: add gate for pll clocks
        MAINTAINERS: dt: update reference for arm-integrator.txt
        clk: mmp2: Fix bit masks for LCDC I/O and pixel clocks
        clk: mmp2: Add clock for fifth SD HCI on MMP3
        dt-bindings: marvell,mmp2: Add clock id for the fifth SD HCI on MMP3
        clk: mmp2: Add clocks for the thermal sensors
        dt-bindings: marvell,mmp2: Add clock ids for the thermal sensors
        clk: mmp2: add the GPU clocks
        ...
      34761956
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · aa1a8ce5
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "New tracing features:
      
         - The ring buffer is no longer disabled when reading the trace file.
      
           The trace_pipe file was made to be used for live tracing and
           reading as it acted like the normal producer/consumer. As the trace
           file would not consume the data, the easy way of handling it was to
           just disable writes to the ring buffer.
      
           This came to a surprise to the BPF folks who complained about lost
           events due to reading. This is no longer an issue. If someone wants
           to keep the old disabling there's a new option "pause-on-trace"
           that can be set.
      
         - New set_ftrace_notrace_pid file. PIDs in this file will not be
           traced by the function tracer.
      
           Similar to set_ftrace_pid, which makes the function tracer only
           trace those tasks with PIDs in the file, the set_ftrace_notrace_pid
           does the reverse.
      
         - New set_event_notrace_pid file. PIDs in this file will cause events
           not to be traced if triggered by a task with a matching PID.
      
           Similar to the set_event_pid file but will not be traced. Note,
           sched_waking and sched_switch events may still be traced if one of
           the tasks referenced by those events contains a PID that is allowed
           to be traced.
      
        Tracing related features:
      
         - New bootconfig option, that is attached to the initrd file.
      
           If bootconfig is on the command line, then the initrd file is
           searched looking for a bootconfig appended at the end.
      
         - New GPU tracepoint infrastructure to help the gfx drivers to get
           off debugfs (acked by Greg Kroah-Hartman)
      
        And other minor updates and fixes"
      
      * tag 'trace-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (27 commits)
        tracing: Do not allocate buffer in trace_find_next_entry() in atomic
        tracing: Add documentation on set_ftrace_notrace_pid and set_event_notrace_pid
        selftests/ftrace: Add test to test new set_event_notrace_pid file
        selftests/ftrace: Add test to test new set_ftrace_notrace_pid file
        tracing: Create set_event_notrace_pid to not trace tasks
        ftrace: Create set_ftrace_notrace_pid to not trace tasks
        ftrace: Make function trace pid filtering a bit more exact
        ftrace/kprobe: Show the maxactive number on kprobe_events
        tracing: Have the document reflect that the trace file keeps tracing enabled
        ring-buffer/tracing: Have iterator acknowledge dropped events
        tracing: Do not disable tracing when reading the trace file
        ring-buffer: Do not disable recording when there is an iterator
        ring-buffer: Make resize disable per cpu buffer instead of total buffer
        ring-buffer: Optimize rb_iter_head_event()
        ring-buffer: Do not die if rb_iter_peek() fails more than thrice
        ring-buffer: Have rb_iter_head_event() handle concurrent writer
        ring-buffer: Add page_stamp to iterator for synchronization
        ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
        ring-buffer: Have ring_buffer_empty() not depend on tracing stopped
        tracing: Save off entry when peeking at next entry
        ...
      aa1a8ce5
    • afzal mohammed's avatar
      clocksource/drivers/timer-vf-pit: Add missing parenthesis · 760a5376
      afzal mohammed authored
      Recently all usage of setup_irq() was replaced by request_irq(). The
      replacement in timer-vf-pit.c missed closing parentheses resulting in a build
      error (vf610m4_defconfig). Fix it.
      
      Fixes: cc2550b4 ("clocksource: Replace setup_irq() by request_irq()")
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarafzal mohammed <afzal.mohd.ma@gmail.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lkml.kernel.org/r/20200323061130.GA6286@afzalpc
      760a5376
  4. 04 Apr, 2020 14 commits
    • Linus Torvalds's avatar
      Merge tag 'keys-fixes-20200329' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 4c205c84
      Linus Torvalds authored
      Pull keyrings fixes from David Howells:
       "Here's a couple of patches that fix a circular dependency between
        holding key->sem and mm->mmap_sem when reading data from a key.
      
        One potential issue is that a filesystem looking to use a key inside,
        say, ->readpages() could deadlock if the key being read is the key
        that's required and the buffer the key is being read into is on a page
        that needs to be fetched.
      
        The case actually detected is a bit more involved - with a filesystem
        calling request_key() and locking the target keyring for write - which
        could be being read"
      
      * tag 'keys-fixes-20200329' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        KEYS: Avoid false positive ENOMEM error on key read
        KEYS: Don't write out to userspace while holding key semaphore
      4c205c84
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-04-03-1' of git://anongit.freedesktop.org/drm/drm · ea9448b2
      Linus Torvalds authored
      Pull drm hugepage support from Dave Airlie:
       "This adds support for hugepages to TTM and has been tested with the
        vmwgfx drivers, though I expect other drivers to start using it"
      
      * tag 'drm-next-2020-04-03-1' of git://anongit.freedesktop.org/drm/drm:
        drm/vmwgfx: Hook up the helpers to align buffer objects
        drm/vmwgfx: Introduce a huge page aligning TTM range manager
        drm: Add a drm_get_unmapped_area() helper
        drm/vmwgfx: Support huge page faults
        drm/ttm, drm/vmwgfx: Support huge TTM pagefaults
        mm: Add vmf_insert_pfn_xxx_prot() for huge page-table entries
        mm: Split huge pages on write-notify or COW
        mm: Introduce vma_is_special_huge
        fs: Constify vma argument to vma_is_dax
      ea9448b2
    • Linus Torvalds's avatar
      Merge branch 'work.exfat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 83eb69f3
      Linus Torvalds authored
      Pull exfat filesystem from Al Viro:
       "Shiny new fs/exfat replacement for drivers/staging/exfat"
      
      * 'work.exfat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        exfat: update file system parameter handling
        staging: exfat: make staging/exfat and fs/exfat mutually exclusive
        MAINTAINERS: add exfat filesystem
        exfat: add Kconfig and Makefile
        exfat: add nls operations
        exfat: add misc operations
        exfat: add exfat cache
        exfat: add bitmap operations
        exfat: add fat entry operations
        exfat: add file operations
        exfat: add directory operations
        exfat: add inode operations
        exfat: add super block operations
        exfat: add in-memory and on-disk structures and headers
      83eb69f3
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.7' of git://git.linux-nfs.org/projects/cel/cel-2.6 · b3d8e422
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
      
       - Fix EXCHANGE_ID response when NFSD runs in a container
      
       - A battery of new static trace points
      
       - Socket transports now use bio_vec to send Replies
      
       - NFS/RDMA now supports filesystems with no .splice_read method
      
       - Favor memcpy() over DMA mapping for small RPC/RDMA Replies
      
       - Add pre-requisites for supporting multiple Write chunks
      
       - Numerous minor fixes and clean-ups
      
      [ Chuck is filling in for Bruce this time while he and his family settle
        into a new house ]
      
      * tag 'nfsd-5.7' of git://git.linux-nfs.org/projects/cel/cel-2.6: (39 commits)
        svcrdma: Fix leak of transport addresses
        SUNRPC: Fix a potential buffer overflow in 'svc_print_xprts()'
        SUNRPC/cache: don't allow invalid entries to be flushed
        nfsd: fsnotify on rmdir under nfsd/clients/
        nfsd4: kill warnings on testing stateids with mismatched clientids
        nfsd: remove read permission bit for ctl sysctl
        NFSD: Fix NFS server build errors
        sunrpc: Add tracing for cache events
        SUNRPC/cache: Allow garbage collection of invalid cache entries
        nfsd: export upcalls must not return ESTALE when mountd is down
        nfsd: Add tracepoints for update of the expkey and export cache entries
        nfsd: Add tracepoints for exp_find_key() and exp_get_by_name()
        nfsd: Add tracing to nfsd_set_fh_dentry()
        nfsd: Don't add locks to closed or closing open stateids
        SUNRPC: Teach server to use xprt_sock_sendmsg for socket sends
        SUNRPC: Refactor xs_sendpages()
        svcrdma: Avoid DMA mapping small RPC Replies
        svcrdma: Fix double sync of transport header buffer
        svcrdma: Refactor chunk list encoders
        SUNRPC: Add encoders for list item discriminators
        ...
      b3d8e422
    • Hans de Goede's avatar
      platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler() · 767191db
      Hans de Goede authored
      The Power Management Events (PMEs) the INT0002 driver listens for get
      signalled by the Power Management Controller (PMC) using the same IRQ
      as used for the ACPI SCI.
      
      Since commit fdde0ff8 ("ACPI: PM: s2idle: Prevent spurious SCIs from
      waking up the system") the SCI triggering, without there being a wakeup
      cause recognized by the ACPI sleep code, will no longer wakeup the system.
      
      This breaks PMEs / wakeups signalled to the INT0002 driver, the system
      never leaves the s2idle_loop() now.
      
      Use acpi_register_wakeup_handler() to register a function which checks
      the GPE0a_STS register for a PME and trigger a wakeup when a PME has
      been signalled.
      
      Fixes: fdde0ff8 ("ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system")
      Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Acked-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      767191db
    • Hans de Goede's avatar
      ACPI: PM: Add acpi_[un]register_wakeup_handler() · ddfd9dcf
      Hans de Goede authored
      Since commit fdde0ff8 ("ACPI: PM: s2idle: Prevent spurious SCIs from
      waking up the system") the SCI triggering without there being a wakeup
      cause recognized by the ACPI sleep code will no longer wakeup the system.
      
      This works as intended, but this is a problem for devices where the SCI
      is shared with another device which is also a wakeup source.
      
      In the past these, from the pov of the ACPI sleep code, spurious SCIs
      would still cause a wakeup so the wakeup from the device sharing the
      interrupt would actually wakeup the system. This now no longer works.
      
      This is a problem on e.g. Bay Trail-T and Cherry Trail devices where
      some peripherals (typically the XHCI controller) can signal a
      Power Management Event (PME) to the Power Management Controller (PMC)
      to wakeup the system, this uses the same interrupt as the SCI.
      These wakeups are handled through a special INT0002 ACPI device which
      checks for events in the GPE0a_STS for this and takes care of acking
      the PME so that the shared interrupt stops triggering.
      
      The change to the ACPI sleep code to ignore the spurious SCI, causes
      the system to no longer wakeup on these PME events. To make things
      worse this means that the INT0002 device driver interrupt handler will
      no longer run, causing the PME to not get cleared and resulting in the
      system hanging. Trying to wakeup the system after such a PME through e.g.
      the power button no longer works.
      
      Add an acpi_register_wakeup_handler() function which registers
      a handler to be called from acpi_s2idle_wake() and when the handler
      returns true, return true from acpi_s2idle_wake().
      
      The INT0002 driver will use this mechanism to check the GPE0a_STS
      register from acpi_s2idle_wake() and to tell the system to wakeup
      if a PME is signaled in the register.
      
      Fixes: fdde0ff8 ("ACPI: PM: s2idle: Prevent spurious SCIs from waking up the system")
      Cc: 5.4+ <stable@vger.kernel.org> # 5.4+
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ddfd9dcf
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · bdabb689
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "More cleanup this cycle, with the final goal of removing the
        rtc_time_to_tm and rtc_tm_to_time wrappers. All the drivers that have
        been modified for this now are ready for the end of times (whether it
        happens in 2033, 2038, 2106, 2127 or even 4052). There is also a
        single new driver and the usual fixes and features.
      
        Summary:
      
        Subsystem:
      
         - The rtc_time_to_tm and rtc_tm_to_time wrappers have finally been
           removed and only the 64bit version remain.
      
         - hctosys now works with drivers compiled as modules
      
        New driver:
      
         - MediaTek MT2712 SoC based RTC
      
        Drivers:
      
         - set range for 88pm860x, au1xxx, cpcap, da9052, davinci, ds1305,
           ds1374, mcp5121, pl030, pl031, pm8xxx, puv3, sa1100, sirfsoc,
           starfire, sun6i
      
         - ds1307: DS1388 oscillator failure detection and watchdog support
      
         - jz4740: JZ4760 support
      
         - pcf85063: clock out pin support
      
         - sun6i: external 32k oscillator is now optional, the range is now
           handled by the core, providing a solution for 2034"
      
      * tag 'rtc-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (87 commits)
        rtc: ds1307: check for failed memory allocation on wdt
        rtc: class: remove redundant assignment to variable err
        rtc: remove rtc_time_to_tm and rtc_tm_to_time
        rtc: sun6i: let the core handle rtc range
        rtc: sun6i: switch to rtc_time64_to_tm/rtc_tm_to_time64
        rtc: ds1307: add support for watchdog timer on ds1388
        rtc: da9052: switch to rtc_time64_to_tm/rtc_tm_to_time64
        rtc: da9052: set range
        rtc: da9052: convert to devm_rtc_allocate_device
        rtc: imx-sc: Align imx sc msg structs to 4
        rtc: fsl-ftm-alarm: report alarm to core
        rtc: pcf85063: Add pcf85063 clkout control to common clock framework
        rtc: make definitions in include/uapi/linux/rtc.h actually useful for user space
        rtc: class: avoid unnecessary lookup in hctosys
        dt-bindings: rtc: Convert and update jz4740-rtc doc to YAML
        rtc: jz4740: Rename vendor-specific DT properties
        rtc: jz4740: Add support for JZ4760 SoC
        rtc: class: support hctosys from modular RTC drivers
        rtc: pm8xxx: clear alarm register when alarm is not enabled
        rtc: omap: drop unused dt-bindings header
        ...
      bdabb689
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 828907ef
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO development for the v5.7 kernel cycle.
      
        Core and userspace API:
      
         - The userspace API KFIFOs have been imoproved with locks that do not
           block interrupts. This makes us better at getting events to
           userspace without blocking or disturbing new events arriving in the
           same time. This was reviewed by the KFIFO maintainer Stefani. This
           is a generic improvement which paves the road for similar
           improvements in other subsystems.
      
         - We provide a new ioctl() for monitoring changes in the line
           information, such as when multiple clients are taking lines and
           giving them back, possibly reconfiguring them in the process: we
           can now monitor that and not get stuck with stale static
           information.
      
         - An example tool 'gpio-watch' is provided to showcase this
           functionality.
      
         - Timestamps for events are switched to ktime_get_ns() which is
           monotonic. We previously had a 'realtime' stamp which could move
           forward and *backward* in time, which probably would just cause
           silent bugs and weird behaviour. In the long run we see two
           relevant timestamps: ktime_get_ns() or the timestamp sometimes
           provided by the GPIO hardware itself, if that exists.
      
         - Device Tree overlay support for GPIO hogs. On systems that load
           overlays, these overlays can now contain hogs, and will then be
           respected.
      
         - Handle pin control interaction with nonexisting pin ranges in the
           GPIO library core instead of in the individual drivers.
      
        New drivers:
      
         - New driver for the Mellanox BlueField 2 GPIO controller.
      
        Driver improvements:
      
         - Introduce the BGPIOF_NO_SET_ON_INPUT flag to the generic MMIO GPIO
           library and use this flag in the MT7621 driver.
      
         - Texas Instruments OMAP CPU power management improvements, such as
           blocking of idle on pending GPIO interrupts"
      
      * tag 'gpio-v5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (59 commits)
        Revert "gpio: eic-sprd: Use devm_platform_ioremap_resource()"
        pinctrl: Unconditionally assign .request()/.free()
        gpio: Unconditionally assign .request()/.free()
        gpio: export of_pinctrl_get to modules
        pinctrl: Define of_pinctrl_get() dummy for !PINCTRL
        gpio: Rename variable in core APIs
        gpio: Avoid using pin ranges with !PINCTRL
        gpiolib: Remove unused gpio_chip parameter from gpio_set_bias()
        gpiolib: Pass gpio_desc to gpio_set_config()
        gpiolib: Introduce gpiod_set_config()
        tools: gpio: Fix out-of-tree build regression
        gpio: gpiolib: fix a doc warning
        gpio: tegra186: Add Tegra194 pin ranges for GG.0 and GG.1
        gpio: tegra186: Add support for pin ranges
        gpio: Support GPIO controllers without pin-ranges
        ARM: integrator: impd1: Use GPIO_LOOKUP() helper macro
        gpio: brcmstb: support gpio-line-names property
        tools: gpio: Fix typo in gpio-utils
        tools: gpio-hammer: Apply scripts/Lindent and retain good changes
        gpiolib: gpio_name_to_desc: factor out !name check
        ...
      828907ef
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.7' of git://git.infradead.org/users/hch/dma-mapping · 6f43bae3
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - fix an integer overflow in the coherent pool (Kevin Grandemange)
      
       - provide support for in-place uncached remapping and use that for
         openrisc
      
       - fix the arm coherent allocator to take the bus limit into account
      
      * tag 'dma-mapping-5.7' of git://git.infradead.org/users/hch/dma-mapping:
        ARM/dma-mapping: merge __dma_supported into arm_dma_supported
        ARM/dma-mapping: take the bus limit into account in __dma_alloc
        ARM/dma-mapping: remove get_coherent_dma_mask
        openrisc: use the generic in-place uncached DMA allocator
        dma-direct: provide a arch_dma_clear_uncached hook
        dma-direct: make uncached_kernel_address more general
        dma-direct: consolidate the error handling in dma_direct_alloc_pages
        dma-direct: remove the cached_kernel_address hook
        dma-coherent: fix integer overflow in the reserved-memory dma allocation
      6f43bae3
    • Linus Torvalds's avatar
      Merge tag 'threads-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 1e396a5d
      Linus Torvalds authored
      Pull thread updates from Christian Brauner:
       "The main change for this cycle was the extension for clone3() to
        support spawning processes directly into cgroups via CLONE_INTO_CGROUP
        (commit ef2c41cf: "clone3: allow spawning processes
        into cgroups").
      
        But since I had to touch kernel/cgroup/ quite a bit I had Tejun route
        that through his tree this time around to make it easier for him to
        handle other changes.
      
        So here is just the unexciting leftovers: a regression test for the
        ENOMEM regression we fixed in commit b26ebfe1 ("pid: Fix error
        return value in some cases") verifying that we report ENOMEM when
        trying to create a new process in a pid namespace whose init
        process/subreaper has already exited"
      
      * tag 'threads-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        selftests: add pid namespace ENOMEM regression test
      1e396a5d
    • Linus Torvalds's avatar
      Merge tag 'vfio-v5.7-rc1' of git://github.com/awilliam/linux-vfio · 2fb732b3
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - vfio-pci SR-IOV support (Alex Williamson)
      
       - vfio DMA read/write interface (Yan Zhao)
      
       - Fix vfio-platform erroneous IRQ error log (Eric Auger)
      
       - Fix shared ATSD support for NVLink on POWER (Sam Bobroff)
      
       - Fix init error without CONFIG_IOMMU_DMA (Andre Przywara)
      
      * tag 'vfio-v5.7-rc1' of git://github.com/awilliam/linux-vfio:
        vfio: Ignore -ENODEV when getting MSI cookie
        vfio-pci/nvlink2: Allow fallback to ibm,mmio-atsd[0]
        vfio/pci: Cleanup .probe() exit paths
        vfio/pci: Remove dev_fmt definition
        vfio/pci: Add sriov_configure support
        vfio: Introduce VFIO_DEVICE_FEATURE ioctl and first user
        vfio/pci: Introduce VF token
        vfio/pci: Implement match ops
        vfio: Include optional device match in vfio_device_ops callbacks
        vfio: avoid inefficient operations on VFIO group in vfio_pin/unpin_pages
        vfio: introduce vfio_dma_rw to read/write a range of IOVAs
        vfio: allow external user to get vfio group from device
        vfio: platform: Switch to platform_get_irq_optional()
      2fb732b3
    • Linus Torvalds's avatar
      Merge tag 's390-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · ad0bf4eb
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Update maintainers. Niklas Schnelle takes over zpci and Vineeth
         Vijayan common io code.
      
       - Extend cpuinfo to include topology information.
      
       - Add new extended counters for IBM z15 and sampling buffer allocation
         rework in perf code.
      
       - Add control over zeroing out memory during system restart.
      
       - CCA protected key block version 2 support and other
         fixes/improvements in crypto code.
      
       - Convert to new fallthrough; annotations.
      
       - Replace zero-length arrays with flexible-arrays.
      
       - QDIO debugfs and other small improvements.
      
       - Drop 2-level paging support optimization for compat tasks. Varios mm
         cleanups.
      
       - Remove broken and unused hibernate / power management support.
      
       - Remove fake numa support which does not bring any benefits.
      
       - Exclude offline CPUs from CPU topology masks to be more consistent
         with other architectures.
      
       - Prevent last branching instruction address leaking to userspace.
      
       - Other small various fixes and improvements all over the code.
      
      * tag 's390-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (57 commits)
        s390/mm: cleanup init_new_context() callback
        s390/mm: cleanup virtual memory constants usage
        s390/mm: remove page table downgrade support
        s390/qdio: set qdio_irq->cdev at allocation time
        s390/qdio: remove unused function declarations
        s390/ccwgroup: remove pm support
        s390/ap: remove power management code from ap bus and drivers
        s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
        s390/mm: cleanup arch_get_unmapped_area() and friends
        s390/ism: remove pm support
        s390/cio: use fallthrough;
        s390/vfio: use fallthrough;
        s390/zcrypt: use fallthrough;
        s390: use fallthrough;
        s390/cpum_sf: Fix wrong page count in error message
        s390/diag: fix display of diagnose call statistics
        s390/ap: Remove ap device suspend and resume callbacks
        s390/pci: Improve handling of unset UID
        s390/pci: Fix zpci_alloc_domain() over allocation
        s390/qdio: pass ISC as parameter to chsc_sadc()
        ...
      ad0bf4eb
    • Qian Cai's avatar
      x86: ACPI: fix CPU hotplug deadlock · 696ac2e3
      Qian Cai authored
      Similar to commit 0266d81e ("acpi/processor: Prevent cpu hotplug
      deadlock") except this is for acpi_processor_ffh_cstate_probe():
      
      "The problem is that the work is scheduled on the current CPU from the
      hotplug thread associated with that CPU.
      
      It's not required to invoke these functions via the workqueue because
      the hotplug thread runs on the target CPU already.
      
      Check whether current is a per cpu thread pinned on the target CPU and
      invoke the function directly to avoid the workqueue."
      
       WARNING: possible circular locking dependency detected
       ------------------------------------------------------
       cpuhp/1/15 is trying to acquire lock:
       ffffc90003447a28 ((work_completion)(&wfc.work)){+.+.}-{0:0}, at: __flush_work+0x4c6/0x630
      
       but task is already holding lock:
       ffffffffafa1c0e8 (cpuidle_lock){+.+.}-{3:3}, at: cpuidle_pause_and_lock+0x17/0x20
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #1 (cpu_hotplug_lock){++++}-{0:0}:
       cpus_read_lock+0x3e/0xc0
       irq_calc_affinity_vectors+0x5f/0x91
       __pci_enable_msix_range+0x10f/0x9a0
       pci_alloc_irq_vectors_affinity+0x13e/0x1f0
       pci_alloc_irq_vectors_affinity at drivers/pci/msi.c:1208
       pqi_ctrl_init+0x72f/0x1618 [smartpqi]
       pqi_pci_probe.cold.63+0x882/0x892 [smartpqi]
       local_pci_probe+0x7a/0xc0
       work_for_cpu_fn+0x2e/0x50
       process_one_work+0x57e/0xb90
       worker_thread+0x363/0x5b0
       kthread+0x1f4/0x220
       ret_from_fork+0x27/0x50
      
       -> #0 ((work_completion)(&wfc.work)){+.+.}-{0:0}:
       __lock_acquire+0x2244/0x32a0
       lock_acquire+0x1a2/0x680
       __flush_work+0x4e6/0x630
       work_on_cpu+0x114/0x160
       acpi_processor_ffh_cstate_probe+0x129/0x250
       acpi_processor_evaluate_cst+0x4c8/0x580
       acpi_processor_get_power_info+0x86/0x740
       acpi_processor_hotplug+0xc3/0x140
       acpi_soft_cpu_online+0x102/0x1d0
       cpuhp_invoke_callback+0x197/0x1120
       cpuhp_thread_fun+0x252/0x2f0
       smpboot_thread_fn+0x255/0x440
       kthread+0x1f4/0x220
       ret_from_fork+0x27/0x50
      
       other info that might help us debug this:
      
       Chain exists of:
       (work_completion)(&wfc.work) --> cpuhp_state-up --> cpuidle_lock
      
       Possible unsafe locking scenario:
      
       CPU0                    CPU1
       ----                    ----
       lock(cpuidle_lock);
                               lock(cpuhp_state-up);
                               lock(cpuidle_lock);
       lock((work_completion)(&wfc.work));
      
       *** DEADLOCK ***
      
       3 locks held by cpuhp/1/15:
       #0: ffffffffaf51ab10 (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x69/0x2f0
       #1: ffffffffaf51ad40 (cpuhp_state-up){+.+.}-{0:0}, at: cpuhp_thread_fun+0x69/0x2f0
       #2: ffffffffafa1c0e8 (cpuidle_lock){+.+.}-{3:3}, at: cpuidle_pause_and_lock+0x17/0x20
      
       Call Trace:
       dump_stack+0xa0/0xea
       print_circular_bug.cold.52+0x147/0x14c
       check_noncircular+0x295/0x2d0
       __lock_acquire+0x2244/0x32a0
       lock_acquire+0x1a2/0x680
       __flush_work+0x4e6/0x630
       work_on_cpu+0x114/0x160
       acpi_processor_ffh_cstate_probe+0x129/0x250
       acpi_processor_evaluate_cst+0x4c8/0x580
       acpi_processor_get_power_info+0x86/0x740
       acpi_processor_hotplug+0xc3/0x140
       acpi_soft_cpu_online+0x102/0x1d0
       cpuhp_invoke_callback+0x197/0x1120
       cpuhp_thread_fun+0x252/0x2f0
       smpboot_thread_fn+0x255/0x440
       kthread+0x1f4/0x220
       ret_from_fork+0x27/0x50
      Signed-off-by: default avatarQian Cai <cai@lca.pw>
      Tested-by: default avatarBorislav Petkov <bp@suse.de>
      [ rjw: Subject ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      696ac2e3
    • Ingo Molnar's avatar
      Merge tag 'perf-urgent-for-mingo-5.7-20200403' of... · 7dc41b9b
      Ingo Molnar authored
      Merge tag 'perf-urgent-for-mingo-5.7-20200403' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes and improvements from Arnaldo Carvalho de Melo:
      
      perf python:
      
        Arnaldo Carvalho de Melo:
      
        - Fix clang detection to strip out options passed in $CC.
      
      build:
      
        He Zhe:
      
        - Normalize gcc parameter when generating arch errno table, fixing
          the build by removing options from $(CC).
      
        Sam Lunt:
      
        - Support Python 3.8+ in Makefile.
      
      perf report/top:
      
        Arnaldo Carvalho de Melo:
      
        - Fix title line formatting.
      
      perf script:
      
        Andreas Gerstmayr:
      
        - Fix SEGFAULT when using DWARF mode.
      
        - Fix invalid read of directory entry after closedir(), found with valgrind.
      
        Hagen Paul Pfeifer:
      
        - Introduce --deltatime option.
      
        Stephane Eranian:
      
        - Allow --symbol to accept hexadecimal addresses.
      
        Ian Rogers:
      
        - Add -S/--symbols documentation
      
        Namhyung Kim:
      
        - Add --show-cgroup-events option.
      
      perf python:
      
        Arnaldo Carvalho de Melo:
      
        - Include rwsem.c in the python binding, needed by the cgroups improvements.
      
      build-test:
      
        Arnaldo Carvalho de Melo:
      
        - Honour JOBS to override detection of number of cores
      
      perf top:
      
        Jin Yao:
      
        - Support --group-sort-idx to change the sort order
      
        - perf top: Support hotkey to change sort order
      
      perf pmu-events x86:
      
        Jin Yao:
      
        - Use CPU_CLK_UNHALTED.THREAD in Kernel_Utilization metric
      
      perf symbols arm64:
      
        Kemeng Shi:
      
        - Fix arm64 gap between kernel start and module end
      
      kernel perf subsystem:
      
        Namhyung Kim:
      
        - Add PERF_RECORD_CGROUP event and Add PERF_SAMPLE_CGROUP feature,
          to allow cgroup tracking, saving a link between cgroup path and
          its id number.
      
      perf cgroup:
      
        Namhyung Kim:
      
        - Maintain cgroup hierarchy.
      
      perf report:
      
        Namhyung Kim:
      
        - Add 'cgroup' sort key.
      
      perf record:
      
        Namhyung Kim:
      
        - Support synthesizing cgroup events for pre-existing cgroups.
      
        - Add --all-cgroups option
      
      Documentation:
      
        Tony Jones:
      
        - Update docs regarding kernel/user space unwinding.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      7dc41b9b