1. 27 Jan, 2023 2 commits
  2. 19 Jan, 2023 4 commits
    • Bart Van Assche's avatar
      scsi: device_handler: alua: Remove a might_sleep() annotation · 0bfe63d0
      Bart Van Assche authored
      The might_sleep() annotation in alua_rtpg_queue() is not correct since the
      command completion code may call this function from atomic context.
      Calling alua_rtpg_queue() from atomic context in the command completion
      path is fine since request submitters must hold an sdev reference until
      command execution has completed. This patch fixes the following kernel
      complaint:
      
      BUG: sleeping function called from invalid context at drivers/scsi/device_handler/scsi_dh_alua.c:992
      Call Trace:
       dump_stack_lvl+0xac/0x100
       __might_resched+0x284/0x2c8
       alua_rtpg_queue+0x3c/0x98 [scsi_dh_alua]
       alua_check+0x122/0x250 [scsi_dh_alua]
       alua_check_sense+0x172/0x228 [scsi_dh_alua]
       scsi_check_sense+0x8a/0x2e0
       scsi_decide_disposition+0x286/0x298
       scsi_complete+0x6a/0x108
       blk_complete_reqs+0x6e/0x88
       __do_softirq+0x13e/0x6b8
       __irq_exit_rcu+0x14a/0x170
       irq_exit_rcu+0x22/0x50
       do_ext_irq+0x10a/0x1d0
      
      Link: https://lore.kernel.org/r/20230118180557.1212577-1-bvanassche@acm.orgReported-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Reviewed-by: default avatarMartin Wilck <mwilck@suse.com>
      Tested-by: default avatarSteffen Maier <maier@linux.ibm.com>
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      0bfe63d0
    • Mike Christie's avatar
      scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress · f484a794
      Mike Christie authored
      If during iscsi_sw_tcp_session_create() iscsi_tcp_r2tpool_alloc() fails,
      userspace could be accessing the host's ipaddress attr. If we then free the
      session via iscsi_session_teardown() while userspace is still accessing the
      session we will hit a use after free bug.
      
      Set the tcp_sw_host->session after we have completed session creation and
      can no longer fail.
      
      Link: https://lore.kernel.org/r/20230117193937.21244-3-michael.christie@oracle.comSigned-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Reviewed-by: default avatarLee Duncan <lduncan@suse.com>
      Acked-by: default avatarDing Hui <dinghui@sangfor.com.cn>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      f484a794
    • Mike Christie's avatar
      scsi: iscsi_tcp: Fix UAF during logout when accessing the shost ipaddress · 6f1d64b1
      Mike Christie authored
      Bug report and analysis from Ding Hui.
      
      During iSCSI session logout, if another task accesses the shost ipaddress
      attr, we can get a KASAN UAF report like this:
      
      [  276.942144] BUG: KASAN: use-after-free in _raw_spin_lock_bh+0x78/0xe0
      [  276.942535] Write of size 4 at addr ffff8881053b45b8 by task cat/4088
      [  276.943511] CPU: 2 PID: 4088 Comm: cat Tainted: G            E      6.1.0-rc8+ #3
      [  276.943997] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
      [  276.944470] Call Trace:
      [  276.944943]  <TASK>
      [  276.945397]  dump_stack_lvl+0x34/0x48
      [  276.945887]  print_address_description.constprop.0+0x86/0x1e7
      [  276.946421]  print_report+0x36/0x4f
      [  276.947358]  kasan_report+0xad/0x130
      [  276.948234]  kasan_check_range+0x35/0x1c0
      [  276.948674]  _raw_spin_lock_bh+0x78/0xe0
      [  276.949989]  iscsi_sw_tcp_host_get_param+0xad/0x2e0 [iscsi_tcp]
      [  276.951765]  show_host_param_ISCSI_HOST_PARAM_IPADDRESS+0xe9/0x130 [scsi_transport_iscsi]
      [  276.952185]  dev_attr_show+0x3f/0x80
      [  276.953005]  sysfs_kf_seq_show+0x1fb/0x3e0
      [  276.953401]  seq_read_iter+0x402/0x1020
      [  276.954260]  vfs_read+0x532/0x7b0
      [  276.955113]  ksys_read+0xed/0x1c0
      [  276.955952]  do_syscall_64+0x38/0x90
      [  276.956347]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [  276.956769] RIP: 0033:0x7f5d3a679222
      [  276.957161] Code: c0 e9 b2 fe ff ff 50 48 8d 3d 32 c0 0b 00 e8 a5 fe 01 00 0f 1f 44 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 ec 28 48 89 54 24
      [  276.958009] RSP: 002b:00007ffc864d16a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
      [  276.958431] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f5d3a679222
      [  276.958857] RDX: 0000000000020000 RSI: 00007f5d3a4fe000 RDI: 0000000000000003
      [  276.959281] RBP: 00007f5d3a4fe000 R08: 00000000ffffffff R09: 0000000000000000
      [  276.959682] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000020000
      [  276.960126] R13: 0000000000000003 R14: 0000000000000000 R15: 0000557a26dada58
      [  276.960536]  </TASK>
      [  276.961357] Allocated by task 2209:
      [  276.961756]  kasan_save_stack+0x1e/0x40
      [  276.962170]  kasan_set_track+0x21/0x30
      [  276.962557]  __kasan_kmalloc+0x7e/0x90
      [  276.962923]  __kmalloc+0x5b/0x140
      [  276.963308]  iscsi_alloc_session+0x28/0x840 [scsi_transport_iscsi]
      [  276.963712]  iscsi_session_setup+0xda/0xba0 [libiscsi]
      [  276.964078]  iscsi_sw_tcp_session_create+0x1fd/0x330 [iscsi_tcp]
      [  276.964431]  iscsi_if_create_session.isra.0+0x50/0x260 [scsi_transport_iscsi]
      [  276.964793]  iscsi_if_recv_msg+0xc5a/0x2660 [scsi_transport_iscsi]
      [  276.965153]  iscsi_if_rx+0x198/0x4b0 [scsi_transport_iscsi]
      [  276.965546]  netlink_unicast+0x4d5/0x7b0
      [  276.965905]  netlink_sendmsg+0x78d/0xc30
      [  276.966236]  sock_sendmsg+0xe5/0x120
      [  276.966576]  ____sys_sendmsg+0x5fe/0x860
      [  276.966923]  ___sys_sendmsg+0xe0/0x170
      [  276.967300]  __sys_sendmsg+0xc8/0x170
      [  276.967666]  do_syscall_64+0x38/0x90
      [  276.968028]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      [  276.968773] Freed by task 2209:
      [  276.969111]  kasan_save_stack+0x1e/0x40
      [  276.969449]  kasan_set_track+0x21/0x30
      [  276.969789]  kasan_save_free_info+0x2a/0x50
      [  276.970146]  __kasan_slab_free+0x106/0x190
      [  276.970470]  __kmem_cache_free+0x133/0x270
      [  276.970816]  device_release+0x98/0x210
      [  276.971145]  kobject_cleanup+0x101/0x360
      [  276.971462]  iscsi_session_teardown+0x3fb/0x530 [libiscsi]
      [  276.971775]  iscsi_sw_tcp_session_destroy+0xd8/0x130 [iscsi_tcp]
      [  276.972143]  iscsi_if_recv_msg+0x1bf1/0x2660 [scsi_transport_iscsi]
      [  276.972485]  iscsi_if_rx+0x198/0x4b0 [scsi_transport_iscsi]
      [  276.972808]  netlink_unicast+0x4d5/0x7b0
      [  276.973201]  netlink_sendmsg+0x78d/0xc30
      [  276.973544]  sock_sendmsg+0xe5/0x120
      [  276.973864]  ____sys_sendmsg+0x5fe/0x860
      [  276.974248]  ___sys_sendmsg+0xe0/0x170
      [  276.974583]  __sys_sendmsg+0xc8/0x170
      [  276.974891]  do_syscall_64+0x38/0x90
      [  276.975216]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
      
      We can easily reproduce by two tasks:
      1. while :; do iscsiadm -m node --login; iscsiadm -m node --logout; done
      2. while :; do cat \
      /sys/devices/platform/host*/iscsi_host/host*/ipaddress; done
      
                  iscsid              |        cat
      --------------------------------+---------------------------------------
      |- iscsi_sw_tcp_session_destroy |
        |- iscsi_session_teardown     |
          |- device_release           |
            |- iscsi_session_release  ||- dev_attr_show
              |- kfree                |  |- show_host_param_
                                      |             ISCSI_HOST_PARAM_IPADDRESS
                                      |    |- iscsi_sw_tcp_host_get_param
                                      |      |- r/w tcp_sw_host->session (UAF)
        |- iscsi_host_remove          |
        |- iscsi_host_free            |
      
      Fix the above bug by splitting the session removal into 2 parts:
      
       1. removal from iSCSI class which includes sysfs and removal from host
          tracking.
      
       2. freeing of session.
      
      During iscsi_tcp host and session removal we can remove the session from
      sysfs then remove the host from sysfs. At this point we know userspace is
      not accessing the kernel via sysfs so we can free the session and host.
      
      Link: https://lore.kernel.org/r/20230117193937.21244-2-michael.christie@oracle.comSigned-off-by: default avatarMike Christie <michael.christie@oracle.com>
      Reviewed-by: default avatarLee Duncan <lduncan@suse.com>
      Acked-by: default avatarDing Hui <dinghui@sangfor.com.cn>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      6f1d64b1
    • Johan Hovold's avatar
      scsi: ufs: core: Fix devfreq deadlocks · ba810437
      Johan Hovold authored
      There is a lock inversion and rwsem read-lock recursion in the devfreq
      target callback which can lead to deadlocks.
      
      Specifically, ufshcd_devfreq_scale() already holds a clk_scaling_lock
      read lock when toggling the write booster, which involves taking the
      dev_cmd mutex before taking another clk_scaling_lock read lock.
      
      This can lead to a deadlock if another thread:
      
        1) tries to acquire the dev_cmd and clk_scaling locks in the correct
           order, or
      
        2) takes a clk_scaling write lock before the attempt to take the
           clk_scaling read lock a second time.
      
      Fix this by dropping the clk_scaling_lock before toggling the write booster
      as was done before commit 0e9d4ca4 ("scsi: ufs: Protect some contexts
      from unexpected clock scaling").
      
      While the devfreq callbacks are already serialised, add a second
      serialising mutex to handle the unlikely case where a callback triggered
      through the devfreq sysfs interface is racing with a request to disable
      clock scaling through the UFS controller 'clkscale_enable' sysfs
      attribute. This could otherwise lead to the write booster being left
      disabled after having disabled clock scaling.
      
      Also take the new mutex in ufshcd_clk_scaling_allow() to make sure that any
      pending write booster update has completed on return.
      
      Note that this currently only affects Qualcomm platforms since commit
      87bd0501 ("scsi: ufs: core: Allow host driver to disable wb toggling
      during clock scaling").
      
      The lock inversion (i.e. 1 above) was reported by lockdep as:
      
       ======================================================
       WARNING: possible circular locking dependency detected
       6.1.0-next-20221216 #211 Not tainted
       ------------------------------------------------------
       kworker/u16:2/71 is trying to acquire lock:
       ffff076280ba98a0 (&hba->dev_cmd.lock){+.+.}-{3:3}, at: ufshcd_query_flag+0x50/0x1c0
      
       but task is already holding lock:
       ffff076280ba9cf0 (&hba->clk_scaling_lock){++++}-{3:3}, at: ufshcd_devfreq_scale+0x2b8/0x380
      
       which lock already depends on the new lock.
      [  +0.011606]
       the existing dependency chain (in reverse order) is:
      
       -> #1 (&hba->clk_scaling_lock){++++}-{3:3}:
              lock_acquire+0x68/0x90
              down_read+0x58/0x80
              ufshcd_exec_dev_cmd+0x70/0x2c0
              ufshcd_verify_dev_init+0x68/0x170
              ufshcd_probe_hba+0x398/0x1180
              ufshcd_async_scan+0x30/0x320
              async_run_entry_fn+0x34/0x150
              process_one_work+0x288/0x6c0
              worker_thread+0x74/0x450
              kthread+0x118/0x120
              ret_from_fork+0x10/0x20
      
       -> #0 (&hba->dev_cmd.lock){+.+.}-{3:3}:
              __lock_acquire+0x12a0/0x2240
              lock_acquire.part.0+0xcc/0x220
              lock_acquire+0x68/0x90
              __mutex_lock+0x98/0x430
              mutex_lock_nested+0x2c/0x40
              ufshcd_query_flag+0x50/0x1c0
              ufshcd_query_flag_retry+0x64/0x100
              ufshcd_wb_toggle+0x5c/0x120
              ufshcd_devfreq_scale+0x2c4/0x380
              ufshcd_devfreq_target+0xf4/0x230
              devfreq_set_target+0x84/0x2f0
              devfreq_update_target+0xc4/0xf0
              devfreq_monitor+0x38/0x1f0
              process_one_work+0x288/0x6c0
              worker_thread+0x74/0x450
              kthread+0x118/0x120
              ret_from_fork+0x10/0x20
      
       other info that might help us debug this:
        Possible unsafe locking scenario:
              CPU0                    CPU1
              ----                    ----
         lock(&hba->clk_scaling_lock);
                                      lock(&hba->dev_cmd.lock);
                                      lock(&hba->clk_scaling_lock);
         lock(&hba->dev_cmd.lock);
      
        *** DEADLOCK ***
      
      Fixes: 0e9d4ca4 ("scsi: ufs: Protect some contexts from unexpected clock scaling")
      Cc: stable@vger.kernel.org      # 5.12
      Cc: Can Guo <quic_cang@quicinc.com>
      Tested-by: default avatarAndrew Halaney <ahalaney@redhat.com>
      Signed-off-by: default avatarJohan Hovold <johan+linaro@kernel.org>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Link: https://lore.kernel.org/r/20230116161201.16923-1-johan+linaro@kernel.orgSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      ba810437
  3. 18 Jan, 2023 1 commit
  4. 14 Jan, 2023 1 commit
  5. 12 Jan, 2023 2 commits
  6. 07 Jan, 2023 2 commits
  7. 30 Dec, 2022 2 commits
  8. 25 Dec, 2022 2 commits
    • Linus Torvalds's avatar
      Linux 6.2-rc1 · 1b929c02
      Linus Torvalds authored
      1b929c02
    • Steven Rostedt (Google)'s avatar
      treewide: Convert del_timer*() to timer_shutdown*() · 292a089d
      Steven Rostedt (Google) authored
      Due to several bugs caused by timers being re-armed after they are
      shutdown and just before they are freed, a new state of timers was added
      called "shutdown".  After a timer is set to this state, then it can no
      longer be re-armed.
      
      The following script was run to find all the trivial locations where
      del_timer() or del_timer_sync() is called in the same function that the
      object holding the timer is freed.  It also ignores any locations where
      the timer->function is modified between the del_timer*() and the free(),
      as that is not considered a "trivial" case.
      
      This was created by using a coccinelle script and the following
      commands:
      
          $ cat timer.cocci
          @@
          expression ptr, slab;
          identifier timer, rfield;
          @@
          (
          -       del_timer(&ptr->timer);
          +       timer_shutdown(&ptr->timer);
          |
          -       del_timer_sync(&ptr->timer);
          +       timer_shutdown_sync(&ptr->timer);
          )
            ... when strict
                when != ptr->timer
          (
                  kfree_rcu(ptr, rfield);
          |
                  kmem_cache_free(slab, ptr);
          |
                  kfree(ptr);
          )
      
          $ spatch timer.cocci . > /tmp/t.patch
          $ patch -p1 < /tmp/t.patch
      
      Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      Acked-by: Pavel Machek <pavel@ucw.cz> [ LED ]
      Acked-by: Kalle Valo <kvalo@kernel.org> [ wireless ]
      Acked-by: Paolo Abeni <pabeni@redhat.com> [ networking ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      292a089d
  9. 23 Dec, 2022 14 commits
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 72a85e2b
      Linus Torvalds authored
      Pull spi fix from Mark Brown:
       "One driver specific change here which handles the case where a SPI
        device for some reason tries to change the bus speed during a message
        on fsl_spi hardware, this should be very unusual"
      
      * tag 'spi-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: fsl_spi: Don't change speed while chipselect is active
      72a85e2b
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v6.2-rc1' of... · 0a023cbb
      Linus Torvalds authored
      Merge tag 'regulator-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fixes from Mark Brown:
       "Two core fixes here, one for a long standing race which some Qualcomm
        systems have started triggering with their UFS driver and another
        fixing a problem with supply lookup introduced by the fixes for devm
        related use after free issues that were introduced in this merge
        window"
      
      * tag 'regulator-fix-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: core: fix deadlock on regulator enable
        regulator: core: Fix resolve supply lookup issue
      0a023cbb
    • Linus Torvalds's avatar
      Merge tag 'coccinelle-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux · 2c91ce92
      Linus Torvalds authored
      Pull coccicheck update from Julia Lawall:
       "Modernize use of grep in coccicheck:
      
        Use 'grep -E' instead of 'egrep'"
      
      * tag 'coccinelle-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux:
        scripts: coccicheck: use "grep -E" instead of "egrep"
      2c91ce92
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.2-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 51094a24
      Linus Torvalds authored
      Pull kernel hardening fixes from Kees Cook:
      
       - Fix CFI failure with KASAN (Sami Tolvanen)
      
       - Fix LKDTM + CFI under GCC 7 and 8 (Kristina Martsenko)
      
       - Limit CONFIG_ZERO_CALL_USED_REGS to Clang > 15.0.6 (Nathan
         Chancellor)
      
       - Ignore "contents" argument in LoadPin's LSM hook handling
      
       - Fix paste-o in /sys/kernel/warn_count API docs
      
       - Use READ_ONCE() consistently for oops/warn limit reading
      
      * tag 'hardening-v6.2-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        cfi: Fix CFI failure with KASAN
        exit: Use READ_ONCE() for all oops/warn limit reads
        security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6
        lkdtm: cfi: Make PAC test work with GCC 7 and 8
        docs: Fix path paste-o for /sys/kernel/warn_count
        LoadPin: Ignore the "contents" argument of the LSM hooks
      51094a24
    • Linus Torvalds's avatar
      Merge tag 'pstore-v6.2-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · edb23125
      Linus Torvalds authored
      Pull pstore fixes from Kees Cook:
      
       - Switch pmsg_lock to an rt_mutex to avoid priority inversion (John
         Stultz)
      
       - Correctly assign mem_type property (Luca Stefani)
      
      * tag 'pstore-v6.2-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore: Properly assign mem_type property
        pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
        pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
      edb23125
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-2022-12-23' of git://git.infradead.org/users/hch/dma-mapping · 59d2c635
      Linus Torvalds authored
      Pull dma-mapping fixes from Christoph Hellwig:
       "Fix up the sound code to not pass __GFP_COMP to the non-coherent DMA
        allocator, as it copes with that just as badly as the coherent
        allocator, and then add a check to make sure no one passes the flag
        ever again"
      
      * tag 'dma-mapping-2022-12-23' of git://git.infradead.org/users/hch/dma-mapping:
        dma-mapping: reject GFP_COMP for noncoherent allocations
        ALSA: memalloc: don't use GFP_COMP for non-coherent dma allocations
      59d2c635
    • Linus Torvalds's avatar
      Merge tag '9p-for-6.2-rc1' of https://github.com/martinetd/linux · e3b862ed
      Linus Torvalds authored
      Pull 9p updates from Dominique Martinet:
      
       - improve p9_check_errors to check buffer size instead of msize when
         possible (e.g. not zero-copy)
      
       - some more syzbot and KCSAN fixes
      
       - minor headers include cleanup
      
      * tag '9p-for-6.2-rc1' of https://github.com/martinetd/linux:
        9p/client: fix data race on req->status
        net/9p: fix response size check in p9_check_errors()
        net/9p: distinguish zero-copy requests
        9p/xen: do not memcpy header into req->rc
        9p: set req refcount to zero to avoid uninitialized usage
        9p/net: Remove unneeded idr.h #include
        9p/fs: Remove unneeded idr.h #include
      e3b862ed
    • Linus Torvalds's avatar
      Merge tag 'sound-6.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · a27405b2
      Linus Torvalds authored
      Pull more sound updates from Takashi Iwai:
       "A few more updates for 6.2: most of changes are about ASoC
        device-specific fixes.
      
         - Lots of ASoC Intel AVS extensions and refactoring
      
         - Quirks for ASoC Intel SOF as well as regression fixes
      
         - ASoC Mediatek and Rockchip fixes
      
         - Intel HD-audio HDMI workarounds
      
         - Usual HD- and USB-audio device-specific quirks"
      
      * tag 'sound-6.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (54 commits)
        ALSA: usb-audio: Add new quirk FIXED_RATE for JBL Quantum810 Wireless
        ALSA: azt3328: Remove the unused function snd_azf3328_codec_outl()
        ASoC: lochnagar: Fix unused lochnagar_of_match warning
        ASoC: Intel: Add HP Stream 8 to bytcr_rt5640.c
        ASoC: SOF: mediatek: initialize panic_info to zero
        ASoC: rt5670: Remove unbalanced pm_runtime_put()
        ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
        ASoC: Intel: soc-acpi: update codec addr on 0C11/0C4F product
        ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume()
        ASoC: wm8994: Fix potential deadlock
        ASoC: mediatek: mt8195: add sof be ops to check audio active
        ASoC: SOF: Revert: "core: unregister clients and machine drivers in .shutdown"
        ASoC: SOF: Intel: pci-tgl: unblock S5 entry if DMA stop has failed"
        ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend
        ALSA: hda/hdmi: set default audio parameters for KAE silent-stream
        ALSA: hda/hdmi: fix i915 silent stream programming flow
        ALSA: hda: Error out if invalid stream is being setup
        ASoC: dt-bindings: fsl-sai: Reinstate i.MX93 SAI compatible string
        ASoC: soc-pcm.c: Clear DAIs parameters after stream_active is updated
        ASoC: codecs: wcd-clsh: Remove the unused function
        ...
      a27405b2
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2022-12-23' of git://anongit.freedesktop.org/drm/drm · 55c7d6a9
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Holiday fixes!
      
        Two batches from amd, and one group of i915 changes.
      
        amdgpu:
         - Spelling fix
         - BO pin fix
         - Properly handle polaris 10/11 overlap asics
         - GMC9 fix
         - SR-IOV suspend fix
         - DCN 3.1.4 fix
         - KFD userptr locking fix
         - SMU13.x fixes
         - GDS/GWS/OA handling fix
         - Reserved VMID handling fixes
         - FRU EEPROM fix
         - BO validation fixes
         - Avoid large variable on the stack
         - S0ix fixes
         - SMU 13.x fixes
         - VCN fix
         - Add missing fence reference
      
        amdkfd:
         - Fix init vm error handling
         - Fix double release of compute pasid
      
        i915
         - Documentation fixes
         - OA-perf related fix
         - VLV/CHV HDMI/DP audio fix
         - Display DDI/Transcoder fix
         - Migrate fixes"
      
      * tag 'drm-next-2022-12-23' of git://anongit.freedesktop.org/drm/drm: (39 commits)
        drm/amdgpu: grab extra fence reference for drm_sched_job_add_dependency
        drm/amdgpu: enable VCN DPG for GC IP v11.0.4
        drm/amdgpu: skip mes self test after s0i3 resume for MES IP v11.0
        drm/amd/pm: correct the fan speed retrieving in PWM for some SMU13 asics
        drm/amd/pm: bump SMU13.0.0 driver_if header to version 0x34
        drm/amdgpu: skip MES for S0ix as well since it's part of GFX
        drm/amd/pm: avoid large variable on kernel stack
        drm/amdkfd: Fix double release compute pasid
        drm/amdkfd: Fix kfd_process_device_init_vm error handling
        drm/amd/pm: update SMU13.0.0 reported maximum shader clock
        drm/amd/pm: correct SMU13.0.0 pstate profiling clock settings
        drm/amd/pm: enable GPO dynamic control support for SMU13.0.7
        drm/amd/pm: enable GPO dynamic control support for SMU13.0.0
        drm/amdgpu: revert "generally allow over-commit during BO allocation"
        drm/amdgpu: Remove unnecessary domain argument
        drm/amdgpu: Fix size validation for non-exclusive domains (v4)
        drm/amdgpu: Check if fru_addr is not NULL (v2)
        drm/i915/ttm: consider CCS for backup objects
        drm/i915/migrate: fix corner case in CCS aux copying
        drm/amdgpu: rework reserved VMID handling
        ...
      55c7d6a9
    • Linus Torvalds's avatar
      Merge tag 'mips_6.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 06d65a6f
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
       "Fixes due to DT changes"
      
      * tag 'mips_6.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: dts: bcm63268: Add missing properties to the TWD node
        MIPS: ralink: mt7621: avoid to init common ralink reset controller
      06d65a6f
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2022-12-22-14-34' of... · 699aee7b
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2022-12-22-14-34' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull hotfixes from Andrew Morton:
       "Eight fixes, all cc:stable. One is for gcov and the remainder are MM"
      
      * tag 'mm-hotfixes-stable-2022-12-22-14-34' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        gcov: add support for checksum field
        test_maple_tree: add test for mas_spanning_rebalance() on insufficient data
        maple_tree: fix mas_spanning_rebalance() on insufficient data
        hugetlb: really allocate vma lock for all sharable vmas
        kmsan: export kmsan_handle_urb
        kmsan: include linux/vmalloc.h
        mm/mempolicy: fix memory leak in set_mempolicy_home_node system call
        mm, mremap: fix mremap() expanding vma with addr inside vma
      699aee7b
    • Luca Stefani's avatar
      pstore: Properly assign mem_type property · beca3e31
      Luca Stefani authored
      If mem-type is specified in the device tree
      it would end up overriding the record_size
      field instead of populating mem_type.
      
      As record_size is currently parsed after the
      improper assignment with default size 0 it
      continued to work as expected regardless of the
      value found in the device tree.
      
      Simply changing the target field of the struct
      is enough to get mem-type working as expected.
      
      Fixes: 9d843e8f ("pstore: Add mem_type property DT parsing support")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLuca Stefani <luca@osomprivacy.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/20221222131049.286288-1-luca@osomprivacy.com
      beca3e31
    • John Stultz's avatar
      pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES · 2f4fec59
      John Stultz authored
      In commit 76d62f24 ("pstore: Switch pmsg_lock to an rt_mutex
      to avoid priority inversion") I changed a lock to an rt_mutex.
      
      However, its possible that CONFIG_RT_MUTEXES is not enabled,
      which then results in a build failure, as the 0day bot detected:
        https://lore.kernel.org/linux-mm/202212211244.TwzWZD3H-lkp@intel.com/
      
      Thus this patch changes CONFIG_PSTORE_PMSG to select
      CONFIG_RT_MUTEXES, which ensures the build will not fail.
      
      Cc: Wei Wang <wvw@google.com>
      Cc: Midas Chien<midaschieh@google.com>
      Cc: Connor O'Brien <connoro@google.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Anton Vorontsov <anton@enomsg.org>
      Cc: Colin Cross <ccross@android.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: kernel test robot <lkp@intel.com>
      Cc: kernel-team@android.com
      Fixes: 76d62f24 ("pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarJohn Stultz <jstultz@google.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/20221221051855.15761-1-jstultz@google.com
      2f4fec59
    • Sami Tolvanen's avatar
      cfi: Fix CFI failure with KASAN · cf801640
      Sami Tolvanen authored
      When CFI_CLANG and KASAN are both enabled, LLVM doesn't generate a
      CFI type hash for asan.module_ctor functions in translation units
      where CFI is disabled, which leads to a CFI failure during boot when
      do_ctors calls the affected constructors:
      
        CFI failure at do_basic_setup+0x64/0x90 (target:
        asan.module_ctor+0x0/0x28; expected type: 0xa540670c)
      
      Specifically, this happens because CFI is disabled for
      kernel/cfi.c. There's no reason to keep CFI disabled here anymore, so
      fix the failure by not filtering out CC_FLAGS_CFI for the file.
      
      Note that https://reviews.llvm.org/rG3b14862f0a96 fixed the issue
      where LLVM didn't emit CFI type hashes for any sanitizer constructors,
      but now type hashes are emitted correctly for TUs that use CFI.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/1742
      Fixes: 89245600 ("cfi: Switch to -fsanitize=kcfi")
      Reported-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Link: https://lore.kernel.org/r/20221222225747.3538676-1-samitolvanen@google.com
      cf801640
  10. 22 Dec, 2022 10 commits
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8395ae05
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "Mostly small bug fixes and small updates.
      
        The only things of note is a qla2xxx fix for crash on hotplug and
        timeout and the addition of a user exposed abstraction layer for
        persistent reservation error return handling (which necessitates the
        conversion of nvme.c as well as SCSI)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: qla2xxx: Fix crash when I/O abort times out
        nvme: Convert NVMe errors to PR errors
        scsi: sd: Convert SCSI errors to PR errors
        scsi: core: Rename status_byte to sg_status_byte
        block: Add error codes for common PR failures
        scsi: sd: sd_zbc: Trace zone append emulation
        scsi: libfc: Include the correct header
      8395ae05
    • Linus Torvalds's avatar
      Merge tag 'afs-next-20221222' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · ff75ec43
      Linus Torvalds authored
      Pull afs update from David Howells:
       "A fix for a couple of missing resource counter decrements, two small
        cleanups of now-unused bits of code and a patch to remove writepage
        support from afs"
      
      * tag 'afs-next-20221222' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Stop implementing ->writepage()
        afs: remove afs_cache_netfs and afs_zap_permits() declarations
        afs: remove variable nr_servers
        afs: Fix lost servers_outstanding count
      ff75ec43
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.2-2-2022-12-22' of... · d1ac1a2b
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.2-2-2022-12-22' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
       "perf tools fixes and improvements:
      
         - Don't stop building perf if python setuptools isn't installed, just
           disable the affected perf feature.
      
         - Remove explicit reference to python 2.x devel files, that warning
           is about python-devel, no matter what version, being unavailable
           and thus disabling the linking with libpython.
      
         - Don't use -Werror=switch-enum when building the python support that
           handles libtraceevent enumerations, as there is no good way to test
           if some specific enum entry is available with the libtraceevent
           installed on the system.
      
         - Introduce 'perf lock contention' --type-filter and --lock-filter,
           to filter by lock type and lock name:
      
              $ sudo ./perf lock record -a -- ./perf bench sched messaging
      
              $ sudo ./perf lock contention -E 5 -Y spinlock
               contended  total wait   max wait  avg wait      type  caller
      
                     802     1.26 ms   11.73 us   1.58 us  spinlock  __wake_up_common_lock+0x62
                      13   787.16 us  105.44 us  60.55 us  spinlock  remove_wait_queue+0x14
                      12   612.96 us   78.70 us  51.08 us  spinlock  prepare_to_wait+0x27
                     114   340.68 us   12.61 us   2.99 us  spinlock  try_to_wake_up+0x1f5
                      83   226.38 us    9.15 us   2.73 us  spinlock  folio_lruvec_lock_irqsave+0x5e
      
              $ sudo ./perf lock contention -l
               contended  total wait  max wait  avg wait           address  symbol
      
                      57     1.11 ms  42.83 us  19.54 us  ffff9f4140059000
                      15   280.88 us  23.51 us  18.73 us  ffffffff9d007a40  jiffies_lock
                       1    20.49 us  20.49 us  20.49 us  ffffffff9d0d50c0  rcu_state
                       1     9.02 us   9.02 us   9.02 us  ffff9f41759e9ba0
      
              $ sudo ./perf lock contention -L jiffies_lock,rcu_state
               contended  total wait  max wait  avg wait      type  caller
      
                      15   280.88 us  23.51 us  18.73 us  spinlock  tick_sched_do_timer+0x93
                       1    20.49 us  20.49 us  20.49 us  spinlock  __softirqentry_text_start+0xeb
      
              $ sudo ./perf lock contention -L ffff9f4140059000
               contended  total wait  max wait  avg wait      type  caller
      
                      38   779.40 us  42.83 us  20.51 us  spinlock  worker_thread+0x50
                      11   216.30 us  39.87 us  19.66 us  spinlock  queue_work_on+0x39
                       8   118.13 us  20.51 us  14.77 us  spinlock  kthread+0xe5
      
         - Fix splitting CC into compiler and options when checking if a
           option is present in clang to build the python binding, needed in
           systems such as yocto that set CC to, e.g.: "gcc --sysroot=/a/b/c".
      
         - Refresh metris and events for Intel systems: alderlake.
           alderlake-n, bonnell, broadwell, broadwellde, broadwellx,
           cascadelakex, elkhartlake, goldmont, goldmontplus, haswell,
           haswellx, icelake, icelakex, ivybridge, ivytown, jaketown,
           knightslanding, meteorlake, nehalemep, nehalemex, sandybridge,
           sapphirerapids, silvermont, skylake, skylakex, snowridgex,
           tigerlake, westmereep-dp, westmereep-sp, westmereex.
      
         - Add vendor events files (JSON) for AMD Zen 4, from sections
           2.1.15.4 "Core Performance Monitor Counters", 2.1.15.5 "L3 Cache
           Performance Monitor Counter"s and Section 7.1 "Fabric Performance
           Monitor Counter (PMC) Events" in the Processor Programming
           Reference (PPR) for AMD Family 19h Model 11h Revision B1
           processors.
      
           This constitutes events which capture op dispatch, execution and
           retirement, branch prediction, L1 and L2 cache activity, TLB
           activity, L3 cache activity and data bandwidth for various links
           and interfaces in the Data Fabric.
      
         - Also, from the same PPR are metrics taken from Section 2.1.15.2
           "Performance Measurement", including pipeline utilization, which
           are new to Zen 4 processors and useful for finding performance
           bottlenecks by analyzing activity at different stages of the
           pipeline.
      
         - Greatly improve the 'srcline', 'srcline_from', 'srcline_to' and
           'srcfile' sort keys performance by postponing calling the external
           addr2line utility to the collapse phase of histogram bucketing.
      
         - Fix 'perf test' "all PMU test" to skip parametrized events, that
           requires setting up and are not supported by this test.
      
         - Update tools/ copies of kernel headers: features,
           disabled-features, fscrypt.h, i915_drm.h, msr-index.h, power pc
           syscall table and kvm.h.
      
         - Add .DELETE_ON_ERROR special Makefile target to clean up partially
           updated files on error.
      
         - Simplify the mksyscalltbl script for arm64 by avoiding to run the
           host compiler to create the syscall table, do it all just with the
           shell script.
      
         - Further fixes to honour quiet mode (-q)"
      
      * tag 'perf-tools-for-v6.2-2-2022-12-22' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (67 commits)
        perf python: Fix splitting CC into compiler and options
        perf scripting python: Don't be strict at handling libtraceevent enumerations
        perf arm64: Simplify mksyscalltbl
        perf build: Remove explicit reference to python 2.x devel files
        perf vendor events amd: Add Zen 4 mapping
        perf vendor events amd: Add Zen 4 metrics
        perf vendor events amd: Add Zen 4 uncore events
        perf vendor events amd: Add Zen 4 core events
        perf vendor events intel: Refresh westmereex events
        perf vendor events intel: Refresh westmereep-sp events
        perf vendor events intel: Refresh westmereep-dp events
        perf vendor events intel: Refresh tigerlake metrics and events
        perf vendor events intel: Refresh snowridgex events
        perf vendor events intel: Refresh skylakex metrics and events
        perf vendor events intel: Refresh skylake metrics and events
        perf vendor events intel: Refresh silvermont events
        perf vendor events intel: Refresh sapphirerapids metrics and events
        perf vendor events intel: Refresh sandybridge metrics and events
        perf vendor events intel: Refresh nehalemex events
        perf vendor events intel: Refresh nehalemep events
        ...
      d1ac1a2b
    • Arnaldo Carvalho de Melo's avatar
      perf python: Fix splitting CC into compiler and options · 09e6f9f9
      Arnaldo Carvalho de Melo authored
      Noticed this build failure on archlinux:base when building with clang:
      
        clang-14: error: optimization flag '-ffat-lto-objects' is not supported [-Werror,-Wignored-optimization-argument]
      
      In tools/perf/util/setup.py we check if clang supports that option, but
      since commit 3cad53a6 ("perf python: Account for multiple words
      in CC") this got broken as in the common case where CC="clang":
      
        >>> cc="clang"
        >>> print(cc.split()[0])
        clang
        >>> option="-ffat-lto-objects"
        >>> print(str(cc.split()[1:]) + option)
        []-ffat-lto-objects
        >>>
      
      And then the Popen will call clang with that bogus option name that in
      turn will not produce the b"unknown argument" or b"is not supported"
      that this function uses to detect if the option is not available and
      thus later on clang will be called with an unknown/unsupported option.
      
      Fix it by looking if really there are options in the provided CC
      variable, and if so override 'cc' with the first token and append the
      options to the 'option' variable.
      
      Fixes: 3cad53a6 ("perf python: Account for multiple words in CC")
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Fangrui Song <maskray@google.com>
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: John Keeping <john@metanate.com>
      Cc: Khem Raj <raj.khem@gmail.com>
      Cc: Leo Yan <leo.yan@linaro.org>
      Cc: Michael Petlan <mpetlan@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: Sedat Dilek <sedat.dilek@gmail.com>
      Link: http://lore.kernel.org/lkml/Y6Rq5F5NI0v1QQHM@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      09e6f9f9
    • David Howells's avatar
      afs: Stop implementing ->writepage() · a9eb558a
      David Howells authored
      We're trying to get rid of the ->writepage() hook[1].  Stop afs from using
      it by unlocking the page and calling afs_writepages_region() rather than
      folio_write_one().
      
      A flag is passed to afs_writepages_region() to indicate that it should only
      write a single region so that we don't flush the entire file in
      ->write_begin(), but do add other dirty data to the region being written to
      try and reduce the number of RPC ops.
      
      This requires ->migrate_folio() to be implemented, so point that at
      filemap_migrate_folio() for files and also for symlinks and directories.
      
      This can be tested by turning on the afs_folio_dirty tracepoint and then
      doing something like:
      
         xfs_io -c "w 2223 7000" -c "w 15000 22222" -c "w 23 7" /afs/my/test/foo
      
      and then looking in the trace to see if the write at position 15000 gets
      stored before page 0 gets dirtied for the write at position 23.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: Christoph Hellwig <hch@lst.de>
      cc: Matthew Wilcox <willy@infradead.org>
      cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/r/20221113162902.883850-1-hch@lst.de/ [1]
      Link: https://lore.kernel.org/r/166876785552.222254.4403222906022558715.stgit@warthog.procyon.org.uk/ # v1
      a9eb558a
    • Gaosheng Cui's avatar
      afs: remove afs_cache_netfs and afs_zap_permits() declarations · b3d3ca55
      Gaosheng Cui authored
      afs_zap_permits() has been removed since
      commit be080a6f ("afs: Overhaul permit caching").
      
      afs_cache_netfs has been removed since
      commit 523d27cd ("afs: Convert afs to use the new fscache API").
      
      so remove the declare for them from header file.
      Signed-off-by: default avatarGaosheng Cui <cuigaosheng1@huawei.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/r/20220909070353.1160228-1-cuigaosheng1@huawei.com/
      b3d3ca55
    • Colin Ian King's avatar
      afs: remove variable nr_servers · 318b83b7
      Colin Ian King authored
      Variable nr_servers is no longer being used, the last reference
      to it was removed in commit 45df8462 ("afs: Fix server list handling")
      so clean up the code by removing it.
      Signed-off-by: default avatarColin Ian King <colin.i.king@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/r/20221020173923.21342-1-colin.i.king@gmail.com/
      318b83b7
    • David Howells's avatar
      afs: Fix lost servers_outstanding count · 36f82c93
      David Howells authored
      The afs_fs_probe_dispatcher() work function is passed a count on
      net->servers_outstanding when it is scheduled (which may come via its
      timer).  This is passed back to the work_item, passed to the timer or
      dropped at the end of the dispatcher function.
      
      But, at the top of the dispatcher function, there are two checks which
      skip the rest of the function: if the network namespace is being destroyed
      or if there are no fileservers to probe.  These two return paths, however,
      do not drop the count passed to the dispatcher, and so, sometimes, the
      destruction of a network namespace, such as induced by rmmod of the kafs
      module, may get stuck in afs_purge_servers(), waiting for
      net->servers_outstanding to become zero.
      
      Fix this by adding the missing decrements in afs_fs_probe_dispatcher().
      
      Fixes: f6cbb368 ("afs: Actively poll fileservers to maintain NAT or firewall openings")
      Reported-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Tested-by: default avatarMarc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      Link: https://lore.kernel.org/r/167164544917.2072364.3759519569649459359.stgit@warthog.procyon.org.uk/
      36f82c93
    • Takashi Iwai's avatar
      Merge tag 'asoc-v6.2-3' of... · 6bf5f9a8
      Takashi Iwai authored
      Merge tag 'asoc-v6.2-3' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Updates for v6.2
      
      Some more small fixes and board quirks that came in since my last
      update, the main one being the fixes from Kai for issues around the
      attempts to get kexec working well on SOF based systems.
      6bf5f9a8
    • Jaroslav Kysela's avatar
      ALSA: usb-audio: Add new quirk FIXED_RATE for JBL Quantum810 Wireless · fd28941c
      Jaroslav Kysela authored
      It seems that the firmware is broken and does not accept
      the UAC_EP_CS_ATTR_SAMPLE_RATE URB. There is only one rate (48000Hz)
      available in the descriptors for the output endpoint.
      
      Create a new quirk QUIRK_FLAG_FIXED_RATE to skip the rate setup
      when only one rate is available (fixed).
      
      BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=216798Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20221215153037.1163786-1-perex@perex.czSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      fd28941c