Subject: CVE-2023-52493: bus: mhi: host: Drop chan lock before queuing buffers

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

bus: mhi: host: Drop chan lock before queuing buffers

Ensure read and write locks for the channel are not taken in succession by
dropping the read lock from parse_xfer_event() such that a callback given
to client can potentially queue buffers and acquire the write lock in that
process. Any queueing of buffers should be done without channel read lock
acquired as it can result in multiple locks and a soft lockup.

[mani: added fixes tag and cc'ed stable]

The Linux kernel CVE team has assigned CVE-2023-52493 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 5.10.210 with commit 20a6dea2d1c6
	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 5.15.149 with commit 6e4c84316e2b
	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 6.1.76 with commit 3c5ec66b4b3f
	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 6.6.15 with commit eaefb9464031
	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 6.7.3 with commit b8eff20d8709
	Issue introduced in 5.7 with commit 1d3173a3bae7 and fixed in 6.8 with commit 01bd694ac2f6

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2023-52493
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/bus/mhi/host/main.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/20a6dea2d1c68d4e03c6bb50bc12e72e226b5c0e
	https://git.kernel.org/stable/c/6e4c84316e2b70709f0d00c33ba3358d9fc8eece
	https://git.kernel.org/stable/c/3c5ec66b4b3f6816f3a6161538672e389e537690
	https://git.kernel.org/stable/c/eaefb9464031215d63c0a8a7e2bfaa00736aa17e
	https://git.kernel.org/stable/c/b8eff20d87092e14cac976d057cb0aea2f1d0830
	https://git.kernel.org/stable/c/01bd694ac2f682fb8017e16148b928482bc8fa4b