Subject: CVE-2023-52834: atl1c: Work around the DMA RX overflow issue

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

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

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

atl1c: Work around the DMA RX overflow issue

This is based on alx driver commit 881d0327db37 ("net: alx: Work around
the DMA RX overflow issue").

The alx and atl1c drivers had RX overflow error which was why a custom
allocator was created to avoid certain addresses. The simpler workaround
then created for alx driver, but not for atl1c due to lack of tester.

Instead of using a custom allocator, check the allocated skb address and
use skb_reserve() to move away from problematic 0x...fc0 address.

Tested on AR8131 on Acer 4540.

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

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

	Fixed in 5.15.140 with commit c29a89b23f67
	Fixed in 6.1.64 with commit 57e44ff9c2c9
	Fixed in 6.5.13 with commit 54a6152da499
	Fixed in 6.6.3 with commit 32f08b7b430e
	Fixed in 6.7 with commit 86565682e905

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-52834
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/net/ethernet/atheros/atl1c/atl1c.h
	drivers/net/ethernet/atheros/atl1c/atl1c_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/c29a89b23f67ee592f4dee61f9d7efbf86d60315
	https://git.kernel.org/stable/c/57e44ff9c2c9747b2b1a53556810b0e5192655d6
	https://git.kernel.org/stable/c/54a6152da4993ec8e4b53dc3cf577f5a2c829afa
	https://git.kernel.org/stable/c/32f08b7b430ee01ec47d730f961a3306c1c7b6fb
	https://git.kernel.org/stable/c/86565682e9053e5deb128193ea9e88531bbae9cf