Subject: CVE-2024-47667: PCI: keystone: Add workaround for Errata #i2037 (AM65x SR 1.0)

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

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

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

PCI: keystone: Add workaround for Errata #i2037 (AM65x SR 1.0)

Errata #i2037 in AM65x/DRA80xM Processors Silicon Revision 1.0
(SPRZ452D_July 2018_Revised December 2019 [1]) mentions when an
inbound PCIe TLP spans more than two internal AXI 128-byte bursts,
the bus may corrupt the packet payload and the corrupt data may
cause associated applications or the processor to hang.

The workaround for Errata #i2037 is to limit the maximum read
request size and maximum payload size to 128 bytes. Add workaround
for Errata #i2037 here.

The errata and workaround is applicable only to AM65x SR 1.0 and
later versions of the silicon will have this fixed.

[1] -> https://www.ti.com/lit/er/sprz452i/sprz452i.pdf

The Linux kernel CVE team has assigned CVE-2024-47667 to this issue.

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

	Fixed in 5.4.284 with commit cfb006e185f6
	Fixed in 5.10.226 with commit ebbdbbc580c1
	Fixed in 5.15.167 with commit 135843c351c0
	Fixed in 6.1.110 with commit af218c803fe2
	Fixed in 6.6.51 with commit 576d0fb6f8d4
	Fixed in 6.10.10 with commit dd47051c76c8
	Fixed in 6.11 with commit 86f271f22bbb

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-2024-47667
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/pci/controller/dwc/pci-keystone.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/cfb006e185f64edbbdf7869eac352442bc76b8f6
	https://git.kernel.org/stable/c/ebbdbbc580c1695dec283d0ba6448729dc993246
	https://git.kernel.org/stable/c/135843c351c08df72bdd4b4ebea53c8052a76881
	https://git.kernel.org/stable/c/af218c803fe298ddf00abef331aa526b20d7ea61
	https://git.kernel.org/stable/c/576d0fb6f8d4bd4695e70eee173a1b9c7bae9572
	https://git.kernel.org/stable/c/dd47051c76c8acd8cb983f01b4d1265da29cb66a
	https://git.kernel.org/stable/c/86f271f22bbb6391410a07e08d6ca3757fda01fa