1. 07 Jul, 2021 1 commit
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle', 'pm-sleep' and 'pm-domains' · 843372db
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle: qcom: Add SPM register data for MSM8226
        dt-bindings: arm: msm: Add SAW2 for MSM8226
      
      * pm-sleep:
        PM: sleep: Use ktime_us_delta() in initcall_debug_report()
      
      * pm-domains:
        PM: domains: Shrink locking area of the gpd_list_lock
      843372db
  2. 05 Jul, 2021 1 commit
    • Stephen Boyd's avatar
      PM: domains: Shrink locking area of the gpd_list_lock · 40ba55e4
      Stephen Boyd authored
      On trogdor devices I see the following lockdep splat when stopping
      youtube with lockdep enabled in the kernel.
      
       ======================================================
       WARNING: possible circular locking dependency detected
       5.13.0-rc2 #71 Not tainted
       ------------------------------------------------------
       ThreadPoolSingl/3969 is trying to acquire lock:
       ffffff80d4d5c080 (&inst->lock#3){+.+.}-{3:3}, at: vdec_buf_cleanup+0x3c/0x17c [venus_dec]
      
       but task is already holding lock:
       ffffff80d3c3c4f8 (&q->mmap_lock){+.+.}-{3:3}, at: vb2_core_reqbufs+0xe4/0x390 [videobuf2_common]
      
       which lock already depends on the new lock.
      
       the existing dependency chain (in reverse order) is:
      
       -> #5 (&q->mmap_lock){+.+.}-{3:3}:
              __mutex_lock_common+0xcc/0xb88
              mutex_lock_nested+0x5c/0x68
              vb2_mmap+0xf4/0x290 [videobuf2_common]
              v4l2_m2m_fop_mmap+0x44/0x50 [v4l2_mem2mem]
              v4l2_mmap+0x5c/0xa4
              mmap_region+0x310/0x5a4
              do_mmap+0x348/0x43c
              vm_mmap_pgoff+0xfc/0x178
              ksys_mmap_pgoff+0x84/0xfc
              __arm64_compat_sys_aarch32_mmap2+0x2c/0x38
              invoke_syscall+0x54/0x110
              el0_svc_common+0x88/0xf0
              do_el0_svc_compat+0x28/0x34
              el0_svc_compat+0x24/0x34
              el0_sync_compat_handler+0xc0/0xf0
              el0_sync_compat+0x19c/0x1c0
      
       -> #4 (&mm->mmap_lock){++++}-{3:3}:
              __might_fault+0x60/0x88
              filldir64+0x124/0x3a0
              dcache_readdir+0x7c/0x1ec
              iterate_dir+0xc4/0x184
              __arm64_sys_getdents64+0x78/0x170
              invoke_syscall+0x54/0x110
              el0_svc_common+0xa8/0xf0
              do_el0_svc_compat+0x28/0x34
              el0_svc_compat+0x24/0x34
              el0_sync_compat_handler+0xc0/0xf0
              el0_sync_compat+0x19c/0x1c0
      
       -> #3 (&sb->s_type->i_mutex_key#3){++++}-{3:3}:
              down_write+0x94/0x1f4
              start_creating+0xb0/0x174
              debugfs_create_dir+0x28/0x138
              opp_debug_register+0x88/0xc0
              _add_opp_dev+0x84/0x9c
              _add_opp_table_indexed+0x16c/0x310
              _of_add_table_indexed+0x70/0xb5c
              dev_pm_opp_of_add_table_indexed+0x20/0x2c
              of_genpd_add_provider_onecell+0xc4/0x1c8
              rpmhpd_probe+0x21c/0x278
              platform_probe+0xb4/0xd4
              really_probe+0x140/0x35c
              driver_probe_device+0x90/0xcc
              __device_attach_driver+0xa4/0xc0
              bus_for_each_drv+0x8c/0xd8
              __device_attach+0xc4/0x150
              device_initial_probe+0x20/0x2c
              bus_probe_device+0x40/0xa4
              device_add+0x22c/0x3fc
              of_device_add+0x44/0x54
              of_platform_device_create_pdata+0xb0/0xf4
              of_platform_bus_create+0x1d0/0x350
              of_platform_populate+0x80/0xd4
              devm_of_platform_populate+0x64/0xb0
              rpmh_rsc_probe+0x378/0x3dc
              platform_probe+0xb4/0xd4
              really_probe+0x140/0x35c
              driver_probe_device+0x90/0xcc
              __device_attach_driver+0xa4/0xc0
              bus_for_each_drv+0x8c/0xd8
              __device_attach+0xc4/0x150
              device_initial_probe+0x20/0x2c
              bus_probe_device+0x40/0xa4
              device_add+0x22c/0x3fc
              of_device_add+0x44/0x54
              of_platform_device_create_pdata+0xb0/0xf4
              of_platform_bus_create+0x1d0/0x350
              of_platform_bus_create+0x21c/0x350
              of_platform_populate+0x80/0xd4
              of_platform_default_populate_init+0xb8/0xd4
              do_one_initcall+0x1b4/0x400
              do_initcall_level+0xa8/0xc8
              do_initcalls+0x5c/0x9c
              do_basic_setup+0x2c/0x38
              kernel_init_freeable+0x1a4/0x1ec
              kernel_init+0x20/0x118
              ret_from_fork+0x10/0x30
      
       -> #2 (gpd_list_lock){+.+.}-{3:3}:
              __mutex_lock_common+0xcc/0xb88
              mutex_lock_nested+0x5c/0x68
              __genpd_dev_pm_attach+0x70/0x18c
              genpd_dev_pm_attach_by_id+0xe4/0x158
              genpd_dev_pm_attach_by_name+0x48/0x60
              dev_pm_domain_attach_by_name+0x2c/0x38
              dev_pm_opp_attach_genpd+0xac/0x160
              vcodec_domains_get+0x94/0x14c [venus_core]
              core_get_v4+0x150/0x188 [venus_core]
              venus_probe+0x138/0x444 [venus_core]
              platform_probe+0xb4/0xd4
              really_probe+0x140/0x35c
              driver_probe_device+0x90/0xcc
              device_driver_attach+0x58/0x7c
              __driver_attach+0xc8/0xe0
              bus_for_each_dev+0x88/0xd4
              driver_attach+0x30/0x3c
              bus_add_driver+0x10c/0x1e0
              driver_register+0x70/0x108
              __platform_driver_register+0x30/0x3c
              0xffffffde113e1044
              do_one_initcall+0x1b4/0x400
              do_init_module+0x64/0x1fc
              load_module+0x17f4/0x1958
              __arm64_sys_finit_module+0xb4/0xf0
              invoke_syscall+0x54/0x110
              el0_svc_common+0x88/0xf0
              do_el0_svc_compat+0x28/0x34
              el0_svc_compat+0x24/0x34
              el0_sync_compat_handler+0xc0/0xf0
              el0_sync_compat+0x19c/0x1c0
      
       -> #1 (&opp_table->genpd_virt_dev_lock){+.+.}-{3:3}:
              __mutex_lock_common+0xcc/0xb88
              mutex_lock_nested+0x5c/0x68
              _set_required_opps+0x74/0x120
              _set_opp+0x94/0x37c
              dev_pm_opp_set_rate+0xa0/0x194
              core_clks_set_rate+0x28/0x58 [venus_core]
              load_scale_v4+0x228/0x2b4 [venus_core]
              session_process_buf+0x160/0x198 [venus_core]
              venus_helper_vb2_buf_queue+0xcc/0x130 [venus_core]
              vdec_vb2_buf_queue+0xc4/0x140 [venus_dec]
              __enqueue_in_driver+0x164/0x188 [videobuf2_common]
              vb2_core_qbuf+0x13c/0x47c [videobuf2_common]
              vb2_qbuf+0x88/0xec [videobuf2_v4l2]
              v4l2_m2m_qbuf+0x84/0x15c [v4l2_mem2mem]
              v4l2_m2m_ioctl_qbuf+0x24/0x30 [v4l2_mem2mem]
              v4l_qbuf+0x54/0x68
              __video_do_ioctl+0x2bc/0x3bc
              video_usercopy+0x558/0xb04
              video_ioctl2+0x24/0x30
              v4l2_ioctl+0x58/0x68
              v4l2_compat_ioctl32+0x84/0xa0
              __arm64_compat_sys_ioctl+0x12c/0x140
              invoke_syscall+0x54/0x110
              el0_svc_common+0x88/0xf0
              do_el0_svc_compat+0x28/0x34
              el0_svc_compat+0x24/0x34
              el0_sync_compat_handler+0xc0/0xf0
              el0_sync_compat+0x19c/0x1c0
      
       -> #0 (&inst->lock#3){+.+.}-{3:3}:
              __lock_acquire+0x248c/0x2d6c
              lock_acquire+0x240/0x314
              __mutex_lock_common+0xcc/0xb88
              mutex_lock_nested+0x5c/0x68
              vdec_buf_cleanup+0x3c/0x17c [venus_dec]
              __vb2_queue_free+0x98/0x204 [videobuf2_common]
              vb2_core_reqbufs+0x14c/0x390 [videobuf2_common]
              vb2_reqbufs+0x58/0x74 [videobuf2_v4l2]
              v4l2_m2m_reqbufs+0x58/0x90 [v4l2_mem2mem]
              v4l2_m2m_ioctl_reqbufs+0x24/0x30 [v4l2_mem2mem]
              v4l_reqbufs+0x58/0x6c
              __video_do_ioctl+0x2bc/0x3bc
              video_usercopy+0x558/0xb04
              video_ioctl2+0x24/0x30
              v4l2_ioctl+0x58/0x68
              v4l2_compat_ioctl32+0x84/0xa0
              __arm64_compat_sys_ioctl+0x12c/0x140
              invoke_syscall+0x54/0x110
              el0_svc_common+0x88/0xf0
              do_el0_svc_compat+0x28/0x34
              el0_svc_compat+0x24/0x34
              el0_sync_compat_handler+0xc0/0xf0
              el0_sync_compat+0x19c/0x1c0
      
       other info that might help us debug this:
      
       Chain exists of:
         &inst->lock#3 --> &mm->mmap_lock --> &q->mmap_lock
      
        Possible unsafe locking scenario:
      
              CPU0                    CPU1
              ----                    ----
         lock(&q->mmap_lock);
                                      lock(&mm->mmap_lock);
                                      lock(&q->mmap_lock);
         lock(&inst->lock#3);
      
        *** DEADLOCK ***
      
       1 lock held by ThreadPoolSingl/3969:
        #0: ffffff80d3c3c4f8 (&q->mmap_lock){+.+.}-{3:3}, at: vb2_core_reqbufs+0xe4/0x390 [videobuf2_common]
      
       stack backtrace:
       CPU: 2 PID: 3969 Comm: ThreadPoolSingl Not tainted 5.13.0-rc2 #71
       Hardware name: Google Lazor (rev3+) with KB Backlight (DT)
       Call trace:
        dump_backtrace+0x0/0x1b4
        show_stack+0x24/0x30
        dump_stack+0xe0/0x15c
        print_circular_bug+0x32c/0x388
        check_noncircular+0x138/0x140
        __lock_acquire+0x248c/0x2d6c
        lock_acquire+0x240/0x314
        __mutex_lock_common+0xcc/0xb88
        mutex_lock_nested+0x5c/0x68
        vdec_buf_cleanup+0x3c/0x17c [venus_dec]
        __vb2_queue_free+0x98/0x204 [videobuf2_common]
        vb2_core_reqbufs+0x14c/0x390 [videobuf2_common]
        vb2_reqbufs+0x58/0x74 [videobuf2_v4l2]
        v4l2_m2m_reqbufs+0x58/0x90 [v4l2_mem2mem]
        v4l2_m2m_ioctl_reqbufs+0x24/0x30 [v4l2_mem2mem]
        v4l_reqbufs+0x58/0x6c
        __video_do_ioctl+0x2bc/0x3bc
        video_usercopy+0x558/0xb04
        video_ioctl2+0x24/0x30
        v4l2_ioctl+0x58/0x68
        v4l2_compat_ioctl32+0x84/0xa0
        __arm64_compat_sys_ioctl+0x12c/0x140
        invoke_syscall+0x54/0x110
        el0_svc_common+0x88/0xf0
        do_el0_svc_compat+0x28/0x34
        el0_svc_compat+0x24/0x34
        el0_sync_compat_handler+0xc0/0xf0
        el0_sync_compat+0x19c/0x1c0
      
      The 'gpd_list_lock' is nominally named as such to protect the 'gpd_list'
      from concurrent access and mutation. Unfortunately, holding that mutex
      around various OPP framework calls leads to lockdep splats because now
      we're doing various operations in OPP core such as registering with
      debugfs while holding the list lock. We don't need to hold any list
      mutex while we're calling into OPP, so let's shrink the locking area of
      the 'gpd_list_lock' so that lockdep isn't triggered. This also helps
      reduce contention on this lock, which probably doesn't matter much but
      at least is nice to have.
      
      Cc: Len Brown <len.brown@intel.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <linux-pm@vger.kernel.org>
      Cc: Viresh Kumar <vireshk@kernel.org>
      Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      40ba55e4
  3. 01 Jul, 2021 7 commits
  4. 30 Jun, 2021 7 commits
  5. 29 Jun, 2021 22 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3563f55c
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add hybrid processors support to the intel_pstate driver and
        make it work with more processor models when HWP is disabled, make the
        intel_idle driver use special C6 idle state paremeters when package
        C-states are disabled, add cooling support to the tegra30 devfreq
        driver, rework the TEO (timer events oriented) cpuidle governor,
        extend the OPP (operating performance points) framework to use the
        required-opps DT property in more cases, fix some issues and clean up
        a number of assorted pieces of code.
      
        Specifics:
      
         - Make intel_pstate support hybrid processors using abstract
           performance units in the HWP interface (Rafael Wysocki).
      
         - Add Icelake servers and Cometlake support in no-HWP mode to
           intel_pstate (Giovanni Gherdovich).
      
         - Make cpufreq_online() error path be consistent with the CPU device
           removal path in cpufreq (Rafael Wysocki).
      
         - Clean up 3 cpufreq drivers and the statistics code (Hailong Liu,
           Randy Dunlap, Shaokun Zhang).
      
         - Make intel_idle use special idle state parameters for C6 when
           package C-states are disabled (Chen Yu).
      
         - Rework the TEO (timer events oriented) cpuidle governor to address
           some theoretical shortcomings in it (Rafael Wysocki).
      
         - Drop unneeded semicolon from the TEO governor (Wan Jiabing).
      
         - Modify the runtime PM framework to accept unassigned suspend and
           resume callback pointers (Ulf Hansson).
      
         - Improve pm_runtime_get_sync() documentation (Krzysztof Kozlowski).
      
         - Improve device performance states support in the generic power
           domains (genpd) framework (Ulf Hansson).
      
         - Fix some documentation issues in genpd (Yang Yingliang).
      
         - Make the operating performance points (OPP) framework use the
           required-opps DT property in use cases that are not related to
           genpd (Hsin-Yi Wang).
      
         - Make lazy_link_required_opp_table() use list_del_init instead of
           list_del/INIT_LIST_HEAD (Yang Yingliang).
      
         - Simplify wake IRQs handling in the core system-wide sleep support
           code and clean up some coding style inconsistencies in it (Tian
           Tao, Zhen Lei).
      
         - Add cooling support to the tegra30 devfreq driver and improve its
           DT bindings (Dmitry Osipenko).
      
         - Fix some assorted issues in the devfreq core and drivers (Chanwoo
           Choi, Dong Aisheng, YueHaibing)"
      
      * tag 'pm-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (39 commits)
        PM / devfreq: passive: Fix get_target_freq when not using required-opp
        cpufreq: Make cpufreq_online() call driver->offline() on errors
        opp: Allow required-opps to be used for non genpd use cases
        cpuidle: teo: remove unneeded semicolon in teo_select()
        dt-bindings: devfreq: tegra30-actmon: Add cooling-cells
        dt-bindings: devfreq: tegra30-actmon: Convert to schema
        PM / devfreq: userspace: Use DEVICE_ATTR_RW macro
        PM: runtime: Clarify documentation when callbacks are unassigned
        PM: runtime: Allow unassigned ->runtime_suspend|resume callbacks
        PM: runtime: Improve path in rpm_idle() when no callback
        PM: hibernate: remove leading spaces before tabs
        PM: sleep: remove trailing spaces and tabs
        PM: domains: Drop/restore performance state votes for devices at runtime PM
        PM: domains: Return early if perf state is already set for the device
        PM: domains: Split code in dev_pm_genpd_set_performance_state()
        cpuidle: teo: Use kerneldoc documentation in admin-guide
        cpuidle: teo: Rework most recent idle duration values treatment
        cpuidle: teo: Change the main idle state selection logic
        cpuidle: teo: Cosmetic modification of teo_select()
        cpuidle: teo: Cosmetic modifications of teo_update()
        ...
      3563f55c
    • Linus Torvalds's avatar
      Merge tag 'x86-entry-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1dfb0f47
      Linus Torvalds authored
      Pull x86 entry code related updates from Thomas Gleixner:
      
       - Consolidate the macros for .byte ... opcode sequences
      
       - Deduplicate register offset defines in include files
      
       - Simplify the ia32,x32 compat handling of the related syscall tables
         to get rid of #ifdeffery.
      
       - Clear all EFLAGS which are not required for syscall handling
      
       - Consolidate the syscall tables and switch the generation over to the
         generic shell script and remove the CFLAGS tweaks which are not
         longer required.
      
       - Use 'int' type for system call numbers to match the generic code.
      
       - Add more selftests for syscalls
      
      * tag 'x86-entry-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/syscalls: Don't adjust CFLAGS for syscall tables
        x86/syscalls: Remove -Wno-override-init for syscall tables
        x86/uml/syscalls: Remove array index from syscall initializers
        x86/syscalls: Clear 'offset' and 'prefix' in case they are set in env
        x86/entry: Use int everywhere for system call numbers
        x86/entry: Treat out of range and gap system calls the same
        x86/entry/64: Sign-extend system calls on entry to int
        selftests/x86/syscall: Add tests under ptrace to syscall_numbering_64
        selftests/x86/syscall: Simplify message reporting in syscall_numbering
        selftests/x86/syscall: Update and extend syscall_numbering_64
        x86/syscalls: Switch to generic syscallhdr.sh
        x86/syscalls: Use __NR_syscalls instead of __NR_syscall_max
        x86/unistd: Define X32_NR_syscalls only for 64-bit kernel
        x86/syscalls: Stop filling syscall arrays with *_sys_ni_syscall
        x86/syscalls: Switch to generic syscalltbl.sh
        x86/entry/x32: Rename __x32_compat_sys_* to __x64_compat_sys_*
      1dfb0f47
    • Linus Torvalds's avatar
      Merge tag 'x86-irq-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a22c3f61
      Linus Torvalds authored
      Pull x86 interrupt related updates from Thomas Gleixner:
      
       - Consolidate the VECTOR defines and the usage sites.
      
       - Cleanup GDT/IDT related code and replace open coded ASM with proper
         native helper functions.
      
      * tag 'x86-irq-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kexec: Set_[gi]dt() -> native_[gi]dt_invalidate() in machine_kexec_*.c
        x86: Add native_[ig]dt_invalidate()
        x86/idt: Remove address argument from idt_invalidate()
        x86/irq: Add and use NR_EXTERNAL_VECTORS and NR_SYSTEM_VECTORS
        x86/irq: Remove unused vectors defines
      a22c3f61
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a941a034
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Time and clocksource/clockevent related updates:
      
        Core changes:
      
         - Infrastructure to support per CPU "broadcast" devices for per CPU
           clockevent devices which stop in deep idle states. This allows us
           to utilize the more efficient architected timer on certain ARM SoCs
           for normal operation instead of permanentely using the slow to
           access SoC specific clockevent device.
      
         - Print the name of the broadcast/wakeup device in /proc/timer_list
      
         - Make the clocksource watchdog more robust against delays between
           reading the current active clocksource and the watchdog
           clocksource. Such delays can be caused by NMIs, SMIs and vCPU
           preemption.
      
           Handle this by reading the watchdog clocksource twice, i.e. before
           and after reading the current active clocksource. In case that the
           two watchdog reads shows an excessive time delta, the read sequence
           is repeated up to 3 times.
      
         - Improve the debug output and add a test module for the watchdog
           mechanism.
      
         - Reimplementation of the venerable time64_to_tm() function with a
           faster and significantly smaller version. Straight from the source,
           i.e. the author of the related research paper contributed this!
      
        Driver changes:
      
         - No new drivers, not even new device tree bindings!
      
         - Fixes, improvements and cleanups and all over the place"
      
      * tag 'timers-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        time/kunit: Add missing MODULE_LICENSE()
        time: Improve performance of time64_to_tm()
        clockevents: Use list_move() instead of list_del()/list_add()
        clocksource: Print deviation in nanoseconds when a clocksource becomes unstable
        clocksource: Provide kernel module to test clocksource watchdog
        clocksource: Reduce clocksource-skew threshold
        clocksource: Limit number of CPUs checked for clock synchronization
        clocksource: Check per-CPU clock synchronization when marked unstable
        clocksource: Retry clock read if long delays detected
        clockevents: Add missing parameter documentation
        clocksource/drivers/timer-ti-dm: Drop unnecessary restore
        clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround
        clocksource/drivers/arm_global_timer: Remove duplicated argument in arm_global_timer
        clocksource/drivers/arm_global_timer: Make symbol 'gt_clk_rate_change_nb' static
        arm: zynq: don't disable CONFIG_ARM_GLOBAL_TIMER due to CONFIG_CPU_FREQ anymore
        clocksource/drivers/arm_global_timer: Implement rate compensation whenever source clock changes
        clocksource/drivers/ingenic: Rename unreasonable array names
        clocksource/drivers/timer-ti-dm: Save and restore timer TIOCP_CFG
        clocksource/drivers/mediatek: Ack and disable interrupts on suspend
        clocksource/drivers/samsung_pwm: Constify source IO memory
        ...
      a941a034
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 21edf509
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the interrupt subsystem:
      
        Core changes:
      
         - Cleanup and simplification of common code to invoke the low level
           interrupt flow handlers when this invocation requires irqdomain
           resolution. Add the necessary core infrastructure.
      
         - Provide a proper interface for modular PMU drivers to set the
           interrupt affinity.
      
         - Add a request flag which allows to exclude interrupts from spurious
           interrupt detection. Useful especially for IPI handlers which
           always return IRQ_HANDLED which turns the spurious interrupt
           detection into a pointless waste of CPU cycles.
      
        Driver changes:
      
         - Bulk convert interrupt chip drivers to the new irqdomain low level
           flow handler invocation mechanism.
      
         - Add device tree bindings for the Renesas R-Car M3-W+ SoC
      
         - Enable modular build of the Qualcomm PDC driver
      
         - The usual small fixes and improvements"
      
      * tag 'irq-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
        dt-bindings: interrupt-controller: arm,gic-v3: Describe GICv3 optional properties
        irqchip: gic-pm: Remove redundant error log of clock bulk
        irqchip/sun4i: Remove unnecessary oom message
        irqchip/irq-imx-gpcv2: Remove unnecessary oom message
        irqchip/imgpdc: Remove unnecessary oom message
        irqchip/gic-v3-its: Remove unnecessary oom message
        irqchip/gic-v2m: Remove unnecessary oom message
        irqchip/exynos-combiner: Remove unnecessary oom message
        irqchip: Bulk conversion to generic_handle_domain_irq()
        genirq: Move non-irqdomain handle_domain_irq() handling into ARM's handle_IRQ()
        genirq: Add generic_handle_domain_irq() helper
        irqchip/nvic: Convert from handle_IRQ() to handle_domain_irq()
        irqdesc: Fix __handle_domain_irq() comment
        genirq: Use irq_resolve_mapping() to implement __handle_domain_irq() and co
        irqdomain: Introduce irq_resolve_mapping()
        irqdomain: Protect the linear revmap with RCU
        irqdomain: Cache irq_data instead of a virq number in the revmap
        irqdomain: Use struct_size() helper when allocating irqdomain
        irqdomain: Make normal and nomap irqdomains exclusive
        powerpc: Move the use of irq_domain_add_nomap() behind a config option
        ...
      21edf509
    • Linus Torvalds's avatar
      Merge tag 'smp-urgent-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 62180152
      Linus Torvalds authored
      Pull CPU hotplug fix from Thomas Gleixner:
       "A fix for the CPU hotplug and cpusets interaction:
      
        cpusets delegate the hotplug work to a workqueue to prevent a lock
        order inversion vs. the CPU hotplug lock. The work is not flushed
        before the hotplug operation returns which creates user visible
        inconsistent state. Prevent this by flushing the work after dropping
        CPU hotplug lock and before releasing the outer mutex which serializes
        the CPU hotplug related sysfs interface operations"
      
      * tag 'smp-urgent-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Cure the cpusets trainwreck
      62180152
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 371fb854
      Linus Torvalds authored
      Pull CPU hotplug cleanup from Thomas Gleixner:
       "A simple cleanup for the CPU hotplug code to avoid per_cpu_ptr()
        reevaluation"
      
      * tag 'smp-core-2021-06-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Simplify access to percpu cpuhp_state
      371fb854
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · e563592c
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Add %pt[RT]s modifier to vsprintf(). It overrides ISO 8601 separator
         by using ' ' (space). It produces "YYYY-mm-dd HH:MM:SS" instead of
         "YYYY-mm-ddTHH:MM:SS".
      
       - Correctly parse long row of numbers by sscanf() when using the field
         width. Add extensive sscanf() selftest.
      
       - Generalize re-entrant CPU lock that has already been used to
         serialize dump_stack() output. It is part of the ongoing printk
         rework. It will allow to remove the obsoleted printk_safe buffers and
         introduce atomic consoles.
      
       - Some code clean up and sparse warning fixes.
      
      * tag 'printk-for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: fix cpu lock ordering
        lib/dump_stack: move cpu lock to printk.c
        printk: Remove trailing semicolon in macros
        random32: Fix implicit truncation warning in prandom_seed_state()
        lib: test_scanf: Remove pointless use of type_min() with unsigned types
        selftests: lib: Add wrapper script for test_scanf
        lib: test_scanf: Add tests for sscanf number conversion
        lib: vsprintf: Fix handling of number field widths in vsscanf
        lib: vsprintf: scanf: Negative number must have field width > 1
        usb: host: xhci-tegra: Switch to use %ptTs
        nilfs2: Switch to use %ptTs
        kdb: Switch to use %ptTs
        lib/vsprintf: Allow to override ISO 8601 date and time separator
      e563592c
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20210629' of... · b694011a
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
       "Just a few minor enhancement patches and bug fixes"
      
      * tag 'hyperv-next-signed-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv()
        Drivers: hv: Move Hyper-V extended capability check to arch neutral code
        drivers: hv: Fix missing error code in vmbus_connect()
        x86/hyperv: fix logical processor creation
        hv_utils: Fix passing zero to 'PTR_ERR' warning
        scsi: storvsc: Use blk_mq_unique_tag() to generate requestIDs
        Drivers: hv: vmbus: Copy packets sent by Hyper-V out of the ring buffer
        hv_balloon: Remove redundant assignment to region_start
      b694011a
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-domains' and 'pm-devfreq' · 22b65d31
      Rafael J. Wysocki authored
      * pm-domains:
        PM: domains: Drop/restore performance state votes for devices at runtime PM
        PM: domains: Return early if perf state is already set for the device
        PM: domains: Split code in dev_pm_genpd_set_performance_state()
        PM: domains: fix some kernel-doc issues
      
      * pm-devfreq:
        PM / devfreq: passive: Fix get_target_freq when not using required-opp
        dt-bindings: devfreq: tegra30-actmon: Add cooling-cells
        dt-bindings: devfreq: tegra30-actmon: Convert to schema
        PM / devfreq: userspace: Use DEVICE_ATTR_RW macro
        PM / devfreq: imx8m-ddrc: Remove DEVFREQ_GOV_SIMPLE_ONDEMAND dependency
        PM / devfreq: tegra30: Support thermal cooling
        PM / devfreq: imx-bus: Remove imx_bus_get_dev_status
        PM / devfreq: Add missing error code in devfreq_add_device()
      22b65d31
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-cpuidle' · ed562d28
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: Make cpufreq_online() call driver->offline() on errors
        cpufreq: loongson2: Remove unused linux/sched.h headers
        cpufreq: sh: Remove unused linux/sched.h headers
        cpufreq: stats: Clean up local variable in cpufreq_stats_create_table()
        cpufreq: intel_pstate: hybrid: Fix build with CONFIG_ACPI unset
        cpufreq: sc520_freq: add 'fallthrough' to one case
        cpufreq: intel_pstate: Add Cometlake support in no-HWP mode
        cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode
        cpufreq: intel_pstate: hybrid: CPU-specific scaling factor
        cpufreq: intel_pstate: hybrid: Avoid exposing two global attributes
      
      * pm-cpuidle:
        cpuidle: teo: remove unneeded semicolon in teo_select()
        cpuidle: teo: Use kerneldoc documentation in admin-guide
        cpuidle: teo: Rework most recent idle duration values treatment
        cpuidle: teo: Change the main idle state selection logic
        cpuidle: teo: Cosmetic modification of teo_select()
        cpuidle: teo: Cosmetic modifications of teo_update()
        intel_idle: Adjust the SKX C6 parameters if PC6 is disabled
      ed562d28
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-core' and 'pm-sleep' · afe94fb8
      Rafael J. Wysocki authored
      * pm-core:
        PM: runtime: Clarify documentation when callbacks are unassigned
        PM: runtime: Allow unassigned ->runtime_suspend|resume callbacks
        PM: runtime: Improve path in rpm_idle() when no callback
        PM: runtime: document common mistake with pm_runtime_get_sync()
      
      * pm-sleep:
        PM: hibernate: remove leading spaces before tabs
        PM: sleep: remove trailing spaces and tabs
        PM: hibernate: fix spelling mistakes
        PM: wakeirq: Set IRQF_NO_AUTOEN when requesting the IRQ
      afe94fb8
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · fff3df4b
      Rafael J. Wysocki authored
      * pm-opp:
        opp: Allow required-opps to be used for non genpd use cases
        opp: use list_del_init instead of list_del/INIT_LIST_HEAD
      fff3df4b
    • Rafael J. Wysocki's avatar
      Merge branch 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm · d5ddd4c9
      Rafael J. Wysocki authored
      Pull operating performance points (OPP) framework updates for v5.14
      from Viresh Kumar:
      
      "This pull request:
      
      - allows partial use of required-opps for non-genpd users.
      
      - does a minor cleanup and uses list_del_init()."
      
      * 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm:
        opp: Allow required-opps to be used for non genpd use cases
        opp: use list_del_init instead of list_del/INIT_LIST_HEAD
      d5ddd4c9
    • Petr Mladek's avatar
      Merge branch 'printk-rework' into for-linus · 94f2be50
      Petr Mladek authored
      94f2be50
    • Petr Mladek's avatar
      d8c03214
    • Petr Mladek's avatar
      80ae5529
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · c54b245d
      Linus Torvalds authored
      Pull user namespace rlimit handling update from Eric Biederman:
       "This is the work mainly by Alexey Gladkov to limit rlimits to the
        rlimits of the user that created a user namespace, and to allow users
        to have stricter limits on the resources created within a user
        namespace."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        cred: add missing return error code when set_cred_ucounts() failed
        ucounts: Silence warning in dec_rlimit_ucounts
        ucounts: Set ucount_max to the largest positive value the type can hold
        kselftests: Add test to check for rlimit changes in different user namespaces
        Reimplement RLIMIT_MEMLOCK on top of ucounts
        Reimplement RLIMIT_SIGPENDING on top of ucounts
        Reimplement RLIMIT_MSGQUEUE on top of ucounts
        Reimplement RLIMIT_NPROC on top of ucounts
        Use atomic_t for ucounts reference counting
        Add a reference to ucounts for each cred
        Increase size of ucounts to atomic_long_t
      c54b245d
    • Linus Torvalds's avatar
      Merge tag 'array-bounds-fixes-5.14-rc1' of... · e17c120f
      Linus Torvalds authored
      Merge tag 'array-bounds-fixes-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull array-bounds fixes from Gustavo Silva:
       "Fix an out-of-bounds warning in the media subsystem.
      
        This is part of the ongoing efforts to globally enable -Warray-bounds"
      
      * tag 'array-bounds-fixes-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()
      e17c120f
    • Linus Torvalds's avatar
      Merge tag 'fallthrough-fixes-clang-5.14-rc1' of... · 8ec035ac
      Linus Torvalds authored
      Merge tag 'fallthrough-fixes-clang-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull fallthrough fixes from Gustavo Silva:
       "Fix many fall-through warnings when building with Clang 12.0.0 and
        '-Wimplicit-fallthrough' so that we at some point will be able to
        enable that warning by default"
      
      * tag 'fallthrough-fixes-clang-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux: (26 commits)
        rxrpc: Fix fall-through warnings for Clang
        drm/nouveau/clk: Fix fall-through warnings for Clang
        drm/nouveau/therm: Fix fall-through warnings for Clang
        drm/nouveau: Fix fall-through warnings for Clang
        xfs: Fix fall-through warnings for Clang
        xfrm: Fix fall-through warnings for Clang
        tipc: Fix fall-through warnings for Clang
        sctp: Fix fall-through warnings for Clang
        rds: Fix fall-through warnings for Clang
        net/packet: Fix fall-through warnings for Clang
        net: netrom: Fix fall-through warnings for Clang
        ide: Fix fall-through warnings for Clang
        hwmon: (max6621) Fix fall-through warnings for Clang
        hwmon: (corsair-cpro) Fix fall-through warnings for Clang
        firewire: core: Fix fall-through warnings for Clang
        braille_console: Fix fall-through warnings for Clang
        ipv4: Fix fall-through warnings for Clang
        qlcnic: Fix fall-through warnings for Clang
        bnxt_en: Fix fall-through warnings for Clang
        netxen_nic: Fix fall-through warnings for Clang
        ...
      8ec035ac
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 07bdc074
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "Use normal block device I/O path for pstore/blk. (Christoph Hellwig,
        Kees Cook, Pu Lehui)"
      
      * tag 'pstore-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/blk: Include zone in pstore_device_info
        pstore/blk: Fix kerndoc and redundancy on blkdev param
        pstore/blk: Use the normal block device I/O path
        pstore/blk: Move verify_size() macro out of function
        pstore/blk: Improve failure reporting
      07bdc074
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 616ea5cc
      Linus Torvalds authored
      Pull seccomp updates from Kees Cook:
      
       - Add "atomic addfd + send reply" mode to SECCOMP_USER_NOTIF to better
         handle EINTR races visible to seccomp monitors. (Rodrigo Campos,
         Sargun Dhillon)
      
       - Improve seccomp selftests for readability in CI systems. (Kees Cook)
      
      * tag 'seccomp-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        selftests/seccomp: Avoid using "sysctl" for report
        selftests/seccomp: Flush benchmark output
        selftests/seccomp: More closely track fds being assigned
        selftests/seccomp: Add test for atomic addfd+send
        seccomp: Support atomic "addfd + send reply"
      616ea5cc
  6. 28 Jun, 2021 2 commits
    • Linus Torvalds's avatar
      Merge tag 'docs-5.14' of git://git.lwn.net/linux · 233a806b
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "This was a reasonably active cycle for documentation; this includes:
      
         - Some kernel-doc cleanups. That script is still regex onslaught from
           hell, but it has gotten a little better.
      
         - Improvements to the checkpatch docs, which are also used by the
           tool itself.
      
         - A major update to the pathname lookup documentation.
      
         - Elimination of :doc: markup, since our automarkup magic can create
           references from filenames without all the extra noise.
      
         - The flurry of Chinese translation activity continues.
      
        Plus, of course, the usual collection of updates, typo fixes, and
        warning fixes"
      
      * tag 'docs-5.14' of git://git.lwn.net/linux: (115 commits)
        docs: path-lookup: use bare function() rather than literals
        docs: path-lookup: update symlink description
        docs: path-lookup: update get_link() ->follow_link description
        docs: path-lookup: update WALK_GET, WALK_PUT desc
        docs: path-lookup: no get_link()
        docs: path-lookup: update i_op->put_link and cookie description
        docs: path-lookup: i_op->follow_link replaced with i_op->get_link
        docs: path-lookup: Add macro name to symlink limit description
        docs: path-lookup: remove filename_mountpoint
        docs: path-lookup: update do_last() part
        docs: path-lookup: update path_mountpoint() part
        docs: path-lookup: update path_to_nameidata() part
        docs: path-lookup: update follow_managed() part
        docs: Makefile: Use CONFIG_SHELL not SHELL
        docs: Take a little noise out of the build process
        docs: x86: avoid using ReST :doc:`foo` markup
        docs: virt: kvm: s390-pv-boot.rst: avoid using ReST :doc:`foo` markup
        docs: userspace-api: landlock.rst: avoid using ReST :doc:`foo` markup
        docs: trace: ftrace.rst: avoid using ReST :doc:`foo` markup
        docs: trace: coresight: coresight.rst: avoid using ReST :doc:`foo` markup
        ...
      233a806b
    • Linus Torvalds's avatar
      Merge tag 'for-5.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 122fa8c5
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "A normal mix of improvements, core changes and features that user have
        been missing or complaining about.
      
        User visible changes:
      
         - new sysfs exports:
            - add sysfs knob to limit scrub IO bandwidth per device
            - device stats are also available in
                 /sys/fs/btrfs/FSID/devinfo/DEVID/error_stats
      
         - support cancellable resize and device delete ioctls
      
         - change how the empty value is interpreted when setting a property,
           so far we have only 'btrfs.compression' and we need to distinguish
           a reset to defaults and setting "do not compress", in general the
           empty value will always mean 'reset to defaults' for any other
           property, for compression it's either 'no' or 'none' to forbid
           compression
      
        Performance improvements:
      
         - no need for full sync when truncation does not touch extents,
           reported run time change is -12%
      
         - avoid unnecessary logging of xattrs during fast fsyncs (+17%
           throughput, -17% runtime on xattr stress workload)
      
        Core:
      
         - preemptive flushing improvements and fixes
            - adjust clamping logic on multi-threaded workloads to avoid
              flushing too soon
            - take into account global block reserve, may help on almost full
              filesystems
            - continue flushing when there are enough pending delalloc and
              ordered bytes
      
         - simplify logic around conditional transaction commit, a workaround
           used in the past for throttling that's been superseded by ticket
           reservations that manage the throttling in a better way
      
         - subpage blocksize preparation:
            - submit read time repair only for each corrupted sector
            - scrub repair now works with sectors and not pages
            - free space cache (v1) works with sectors and not pages
            - more fine grained bio tracking for extents
            - subpage support in page callbacks, extent callbacks, end io
              callbacks
      
         - simplify transaction abort logic and always abort and don't check
           various potentially unreliable stats tracked by the transaction
      
         - exclusive operations can do more checks when started and allow eg.
           cancellation of the same running operation
      
         - ensure relocation never runs while we have send operations running,
           e.g. when zoned background auto reclaim starts
      
        Fixes:
      
         - zoned: more sanity checks of write pointer
      
         - improve error handling in delayed inodes
      
         - send:
            - fix invalid path for unlink operations after parent
              orphanization
            - fix crash when memory allocations trigger reclaim
      
         - skip compression of we have only one page (can't make things
           better)
      
         - empty value of a property newly means reset to default
      
        Other:
      
         - lots of cleanups, comment updates, yearly typo fixing
      
         - disable build on platforms having page size 256K"
      
      * tag 'for-5.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (101 commits)
        btrfs: remove unused btrfs_fs_info::total_pinned
        btrfs: rip out btrfs_space_info::total_bytes_pinned
        btrfs: rip the first_ticket_bytes logic from fail_all_tickets
        btrfs: remove FLUSH_DELAYED_REFS from data ENOSPC flushing
        btrfs: rip out may_commit_transaction
        btrfs: send: fix crash when memory allocations trigger reclaim
        btrfs: ensure relocation never runs while we have send operations running
        btrfs: shorten integrity checker extent data mount option
        btrfs: switch mount option bits to enums and use wider type
        btrfs: props: change how empty value is interpreted
        btrfs: compression: don't try to compress if we don't have enough pages
        btrfs: fix unbalanced unlock in qgroup_account_snapshot()
        btrfs: sysfs: export dev stats in devinfo directory
        btrfs: fix typos in comments
        btrfs: remove a stale comment for btrfs_decompress_bio()
        btrfs: send: use list_move_tail instead of list_del/list_add_tail
        btrfs: disable build on platforms having page size 256K
        btrfs: send: fix invalid path for unlink operations after parent orphanization
        btrfs: inline wait_current_trans_commit_start in its caller
        btrfs: sink wait_for_unblock parameter to async commit
        ...
      122fa8c5